No enough jobs in the market. Of the 800+ posts in this month's who-is-hiring thread none mentions Smalltalk. I can imagine you were hoping for insights into the syntax, data structures, speed or available library but for a lot of people job prospects/making money will be a reason not to start to learn or use Smalltalk.
I enjoy the interactive development experience, but the idea of stashing all this code around a running system in a large team in a way that makes it hard to tell exactly what you have strikes me as dangerous.
Even c or c++, the traditional "just a text file" languages offer interactive experiences with gdb. Adding an interactive enviro doesn't preclude source files and git.
Not familiar with smalltalk but I bet you can use source files, and run a script akin to a make file to build the system.
I poked around at it in the past, and the biggest impediment I found was the need for opaque and specialized development tools. This may not be universally true, but from what I saw, most Smalltalk environments require you to use their specific IDE/editor, and then it saves your code in some proprietary (binary?) format. So it's not as simple as just editing a file with Emacs or Vim and running
#> smalltalk myfile.smtlk
or whatever.
Beyond that, it's just quite a bit different from a lot of other languages people might be familiar with, like, say, C or Python. OTOH, it's not any more different than Lisp.
I always heard good things about Smalltalk, but there was never anything so compelling that it swayed me into investing the time to learn it. But I'm open to being convinced, even now.
Take a look at Pharo. I did and Pharo is now my primary personal development tool. Another thing that convinced me were videos by Laurent Laffont. Laffont uses Pharo, IMHO, the way it is supposed to be used - he uses the debugger intensively during development to prompt him to for the next step. His development workflow is guided by a general outline in his mind, and the details are filled in by the debugger prompts. His videos can be found at Pharocasts.
Yes, it's true. Most Smalltalk dialects use a special IDE. This is because the biggest advantage of using Smalltalk for development is the "live" programming environment where you can examine any object in the executing program (thanks to Smalltalk's astonishing reflection capabilities) and you can alter the running code and watch the results in real time. This is not possible with conventional, file-based tools such as Emacs or Eclipse.
Smalltalk development is a fundamentally different paradigm from the conventional, file-based development process. It does require you to adapt to a new way of doing things, but this confers fantastic benefits. The combination of super-simple and elegant syntax with a powerful IDE makes developers much more productive than programming in Java or C++ [1]. Having a simple syntax minimizes the cognitive load on the programmer, making it very easy to master the programming tool. When you master your tools, you work at maximum efficiency and effectiveness.
However, if you really must use your file-based tools, there is a command-line Smalltalk called Gnu Smalltalk. IMO, however, giving up on live programming is too great a sacrifice just for this obsession with file-based editors and tools.
Since Obj-C is considered a descendent of Smalltalk, it's pros and cons are briefly mentioned as to the motivation behind Obj-C.
Here's an excerpt:
But there was a problem, once again, with this idea of the whole image that took over everything. You had to really swallow the whole Smalltalk build, you had to go all the way in to this world, and you were going to give up everything you had ever done before to become part of the Smalltalk image. Then, when you were done, you would ship this image to people, they would start it up on their computers, and it would take over everything.
I use Pharo as my primary personal projects development language (Racket is a close second). What slows me down is the lack of documentation. This has had the effect of making me seriously consider contributing to the project, given time and energy of course.
I am building several small web applications based on Seaside, JQuery, Bootstrap and SQLite. With very cheap hosting (e.g., Pharocloud, DigitalOcean) I am planning to throw lots of these things up and see which ones stick. I like this strategy better than the usual start-up strategy of spending lots of time and energy on one thing at a time. With Pharo, this is comparitively faster - reuse is easy, deploying an image is easy, and building apps with Pharo is easy. I love Pharo.
10 comments
[ 143 ms ] story [ 1843 ms ] threadNot familiar with smalltalk but I bet you can use source files, and run a script akin to a make file to build the system.
#> smalltalk myfile.smtlk
or whatever.
Beyond that, it's just quite a bit different from a lot of other languages people might be familiar with, like, say, C or Python. OTOH, it's not any more different than Lisp.
I always heard good things about Smalltalk, but there was never anything so compelling that it swayed me into investing the time to learn it. But I'm open to being convinced, even now.
Smalltalk development is a fundamentally different paradigm from the conventional, file-based development process. It does require you to adapt to a new way of doing things, but this confers fantastic benefits. The combination of super-simple and elegant syntax with a powerful IDE makes developers much more productive than programming in Java or C++ [1]. Having a simple syntax minimizes the cognitive load on the programmer, making it very easy to master the programming tool. When you master your tools, you work at maximum efficiency and effectiveness.
However, if you really must use your file-based tools, there is a command-line Smalltalk called Gnu Smalltalk. IMO, however, giving up on live programming is too great a sacrifice just for this obsession with file-based editors and tools.
[1] https://smalltalkrenaissance.wordpress.com/2015/02/16/smallt...
https://news.ycombinator.com/item?id=10003438
Since Obj-C is considered a descendent of Smalltalk, it's pros and cons are briefly mentioned as to the motivation behind Obj-C.
Here's an excerpt:
I am building several small web applications based on Seaside, JQuery, Bootstrap and SQLite. With very cheap hosting (e.g., Pharocloud, DigitalOcean) I am planning to throw lots of these things up and see which ones stick. I like this strategy better than the usual start-up strategy of spending lots of time and energy on one thing at a time. With Pharo, this is comparitively faster - reuse is easy, deploying an image is easy, and building apps with Pharo is easy. I love Pharo.