Yes. That said, it took me a while using it to figure out that one non-obvious key feature here is that “easy” means that they’ve made it cheap enough where one automatically changes their behavior and actually does create ubiquitous custom tools, where in other systems extension is more an afterthought, or at least distinct from “regular programming”
Ugh, do I fall into that rabbit hole often! The thing with GT, though, is that the cost of creating visualizations is so low - a few seconds - that it’s rarely a distraction
Wow, I love the idea of using GT for reverse engineering. That would’ve been life-changing for my last experience, where I worked mostly in a hex editor. The context switching and slow feedback cycle were brutal. Documenting my growing understanding/implementation with live custom visualizations would’ve been awesome. Unfortunately, that was twenty years before I discovered GT!
The writer couldn’t do something in a new system after 10 minutes of searching, so sure it must be “some kind of weird cult” ;-) Seriously though, I hear them about the lack of UI painter. Many of us have been longing for one but as always it’s a case of FOSS and limited resources. The Spec framework does make GUI creation pretty easy, but obviously not as satisfying as a painter. That said, after many years in many languages I haven’t found a system as powerful as Pharo with a community/libraries with critical mass. And GToolkit on top has been a game changer
> Dismissing weak arguments is easy. Try imagining what a strong argument for the author's point would look like, and then respond to that.
This is great advice for going beyond the tiny world - limited by bias, habit, etc - in which I (and all people) live! It also is a communication formula guaranteeing better relationships and more civil and productive discussions.
While a bit outdated, hyperbolic, and with the familiar trade offs of c2’s wonderful community editing experiment (e.g. incoherency), there is some real gold there. Just the references (e.g. to Ivan Sutherland) are a passport to a much better alternate universe
One click on the "Documentation" tab provides links to several screencasts/tutorials. Are you looking for something specific? "Hello world" doesn't cleanly map to an environment as comprehensive as Pharo because there are so many options. Do you want "hello world" to output to the terminal (Stdio stdout << 'Hello world')? A window? A growl-style popup (UIManager default inform: 'Hello world')? The transcript (Transcript show: 'Hello world')?
Due to Pharo/Smalltalk being not just a language, but a language/libraries/IDE, I think it's important to distinguish between API instability (which IHMO is better called evolution) vs. bugginess. API evolution is a core part of Pharo's mission. I've personally upgraded projects from Pharo 1.x all the way to Pharo 7 and have been very willing to trade a small amount of effort porting for big increases in productivity.
> I've personally upgraded projects from Pharo 1.x all the way to Pharo 7 and have been very willing to trade a small amount of effort porting for big increases in productivity.
Wow, any chance you've written about the upgrade process?
I don't exactly have a playbook. I generally just fix as I go. I try to install the project, fix any errors, run the test, fix the errors, etc. I can say that some version jumps have been almost no work and probably the max time I've spent is an hour to get everything working. It used to be a bit harder, but nowadays Pharo has automatic refactoring for deprecated methods, which helps...