4 ms·
Pros: Smalltalk is a very simple object oriented language, dynamically typed and GCed, it has closures (used everywhere!). It has NO keywords at all, and a very
by weddpros 13y ago
Pros: Smalltalk is a very simple object oriented language, dynamically typed and GCed, it has closures (used everywhere!). It has NO keywords at all, and a very simple syntax. Smalltalk is very readable. It also has amazing IDEs/debuggers. It's very easy to learn. And it was born in 1972, just like me!
Cons: aging technology with very little traction, no fast VM (compared to JVM), no multithreading...
I switched to Java in 1996 because the future of Smalltalk was cloudy. I'd switch back to Smalltalk if it could run with the same performance as Java.
It's a really amazing language.
- stcredzero 13y agono fast VM (compared to JVM), no multithreading Back in 1996 Smalltalk VMs were still outperforming Java VMs on real workloads, in large part due to not having multithreading. (Makes GC simpler and faster.) Also, there were multithreaded Smalltalks around.
- weddpros 13y agoYes, Java had no JIT in 1996... But it had corporate traction, and good marketing ("it's an internet technology!"). Nowadays, I choose the language I want to work with, but I don't switch back to Stk because of speed.
- pjmlp 13y agoYes, I got to play with VisualWorks at the university that time, but then Java took over the enterprise.
- kilon 13y agoPharo and Squeak use the CogVM , its a VM that supports JIT compilation and as such is very fast. Its not as fast as Java because afterall Java is static typed. However there is a way to get even faster than JAVA code. Pharo comes with a library named "Nativeboost". Nativeboost is essentially an inline assembler. But unlike C/C++'s inline assembler of using assembly syntax, the inline assembler of Nativeboost uses Pharo syntax as each assembly command is a Pharo object like everything inside Pharo. Also because VM will stop all execution when it executes assembly code, you can enjoy raw machine code speed. Thus you can have Pharo code that can outperform Java code. If Assembly is not your thing , Nativeboost can be used also as a FFI to call C dynamic libraries. Currently C++ is not support because of name mangling but its possible to compile a C++ library as C library to be used by Pharo. Also Nativeboost's FFI offers support for Objective C as well. There are also two projects to run smalltalk on Java, one is called redline smalltalk, the other's name eludes me now. There is also another project to bring Smalltalk to Java including even the Smalltalk IDE called "RTalk". But that project seems to be vaporware for now.
- erikj 13y agoIsn't Squeak VM very fast nowadays?
- e12e 13y agoThere's also redline smalltak for the jvm, but I'm not entirely sure of it's status: http://www.redline.st http://www.redline.st [edit: on the subject of performance, and interesting Smalltalks, I'd also recommend checking out Gemstone GLASS: http://seaside.gemtalksystems.com/ http://seaside.gemtalksystems.com/ They also made "maglev" ruby: http://maglev.github.io/ http://maglev.github.io/ ]