3 ms·
Alas, Java advocates always fail to entertain. HotSpot was a Smalltalk VM that was bought by Sun and adapted to Java. Automatic refactorings were first implem
by cwp 11y ago
Alas, Java advocates always fail to entertain.
HotSpot was a Smalltalk VM that was bought by Sun and adapted to Java.
Automatic refactorings were first implemented in Smalltalk IDEs, and all major Smalltalk dialects have them today. Java's IDE's are direct descendants of Smalltalk IDEs. For example, Eclipse was a Java port of VisualAge Java, which had an IDE that could refactor Java even though it was implemented in Smalltalk. That in turn was based on VisualAge Smalltalk, which also had automatic refactoring.
I think advocacy is silly, but if you're going to do it, get your facts straight.
- incepted 11y agoThis is what's most baffling in these arguments about Smalltalk, the fact that even though these technologies are separated by twenty years, you automatically assume there has been no innovation nor improvement and that therefore, Smalltalk already did that twenty years ago. Going down that path, we could claim that Smalltalk hasn't invented anything since Simula. Not exactly a very honest approach, is it?
- cwp 11y agoI don't assume there's been no innovation. HotSpot today is faster than Strongtalk ever was. Java has lots more libraries than Smalltalk today. For a broad range purposes, it's a better choice than Smalltalk today. But a lot of what you wrote was just false. Smalltalk does have refactoring IDEs. It does have excellent debuggers. It does have fast JIT-compiling virtual machines. (Not as fast as Hotspot, but way faster than Ruby, Python, Perl and most other dynamic languages.) Note that I'm using the present tense here. We're not talking about technologies "separated by twenty years." Smalltalk has all these features today. I brought up the history because it's pretty cheeky to say that Java is better than Smalltalk because it has a refactoring IDE. There are big problems in the Smalltalk world, stemming from a small community and lack of corporate investment in the technology. As much as I like Smalltalk, I don't choose it for my day-to-day work because that would be a poor business strategy for my company. This is why I don't believe in advocacy. You make the right choice for your situation, and most of the time, somebody else can't make that choice for you. As for honesty, yes, I do think I'm being honest. For starters, everything I wrote was true.
- incepted 11y ago> Smalltalk does have refactoring IDEs. Yes, but very few of those are automated. Which is not surprising since the absence of types in Smalltalk can lead to refactorings that break your code, so user supervision is necessary. > I brought up the history because it's pretty cheeky to say that Java is better than Smalltalk because it has a refactoring IDE. Definitely, so it's a good thing I never said such a thing.
- cwp 11y ago> Yes, but very few of those are automated. Which is not surprising since the absence of types in Smalltalk can lead to refactorings that break your code, so user supervision is necessary. This is just not true. Go download a copy of VisualWorks. Try a Squeak image with OmniBrowser installed. They both have IDEs with automated refactorings. I have used both. I have contributed to the OmniBrowser implementation. What you say does apply to Ruby or Python. It does not apply to Smalltalk.
- incepted 11y ago> They both have IDEs with automated refactorings. Yes but they do not guarantee correctness. They can't, the IDE simply doesn't have enough type information for that.
- cwp 11y agoAs a matter of fact, they do. Unlike Java IDEs, Smalltalk dev tools are implemented via reflection on the running program. Between information available from the runtime data structures in the program and the fact that Smalltalk uses single dispatch polymorphism, static type declarations aren't necessary for correct automatic refactorings. This will be my last post in this thread.
- incepted 11y ago> static type declarations aren't necessary for correct automatic refactorings. They very much are, it's a scientific fact (look up the Curry-Howard isomorphism).