Hacker News new | ask | show | jobs
by fooblitzky 2336 days ago
I use it, mostly for toy stuff (work is 80% Java).

Once you get used to it, Smalltalk is really the most amazing development environment. It's hard to describe how it feels to work with live objects - it's an incredible speed boost, because instead of grepping logs or stepping through code, you just interact with the objects directly, you can examine the state of instance variables, add new methods, or change code while the code is running. The feedback loop is so short, you get amazing productivity.

There's a great video floating around somewhere of someone debugging an Asteroids game while the game is running.

From what I've read, the downside is that working on larger programs in a team is challenging. It takes a lot more communication to keep the code base consistent and structured.

3 comments

I worked on a large legacy application (in production since 1996) implemented in Smalltalk for a couple of years. I don't feel we had any particular issues keeping the codebase consistent due to Smalltalk itself (there were some issues due to the Smalltalk system's version control system which was pretty terrible), but Smalltalk enabled us to implement new features in the application very smoothly, and debugging issues was simply a joy compared to other systems I've worked in. Finally, we could also fix bugs in the platform itself, which was quite useful since the vendor stopped supporting this particular Smalltalk compiler around 2000; I did a couple of small but quite important fixes like this while working on the project.
Are you using VSE? I've wondered what happened to all the folks on it. I assumed most converted to VisualWorks, but it would be interesting if Pharo becomes an option.
Yeah, VSE is the culprit. I think the main reason the application was never moved off VSE is that the application is developed by a consultancy firm (my employer at the time) for a public-sector client, and the leadership of the client isn't interested in investing in long-term stuff for this particular program, they'd rather try to get an extraordinary allocation on the order of a few hundred million USD and do a massive, more buzzword-compliant rewrite of a big portion of their application portfolio. Never mind that the application in question is strategically important for their ability to do their job and it's already suffering under a rather long period of under-funding and general mismanagement from the client's side. Replacing VSE would have been nice, Pharo even better (but then you need to do something about almost 25 years of GUI made in WindowBuilder...).

The funny part is that even though VSE isn't a very good Smalltalk, it's one of the most productive environments I've ever worked in.

>There's a great video floating around somewhere of someone debugging an Asteroids game while the game is running.

That would be this: https://www.youtube.com/watch?v=L2rD2YSTMV4&list=PL62E3E45E6...

>From what I've read, the downside is that working on larger programs in a team is challenging. It takes a lot more communication to keep the code base consistent and structured.

I don't think that's an inherent limitation of image based development -- just that the current systems don't offer facilities for syncing etc.

Maybe grandpa already knows, but in Pharo's case, there is Iceberg. It's a Git interface that's included in default Pharo images that understands Pharo's packages, and so on. You can push your stuff to Github etc. and teams can work together that way.

I've never worked in a team in a Pharo projects, but I imagine it works well somehow. There's ~75 contributors to the 8.0 release.