Hacker News new | ask | show | jobs
by CodexArcanum 1133 days ago
I always feel like I should be doing more with Pharo. I love smalltalks and there's something really fun and playful about working with it, even those with a more "professional" shine on them like Pharo. I've been experimenting with Godot recently and I feel like there's a lot of that spirit in modern gamedev, where the tool is written in itself and gives you all of the same parts to play and build with.

I guess I don't really know what my usecase for Pharo is, like what niche is it filling? Maybe I need to build my next web...thing with it and see how it works out?

3 comments

IMO it's a good tool for web scraping. The reason: you can do web scraping with Parasol (i.e. Selenium [1]) and then if you need visualization tools then you can immediately use Roassal [2]. The thing is: Pharo and the fact that it's more GUI-oriented than other programming languages, allows for data visualization a bit easier. Also: you don't need to know database specific. You can just store the data and save the image. Super useful for small web scraping projects.

Another use-case is: open-source software where you want to encourage users to just open up "the damn code engine" and hack straight into it, seeing it change on the fly. Like, can you just right click in Windows on a pixel and change the code that underlies it? In Pharo you can! Commercial parties would find this horrible, but it's amazing for full open-source software. Note: I don't think any other language is capable of this!

For web apps, B2B works quite well. B2C, I see scalability issues.

[1] https://github.com/SeasideSt/Parasol

[2] https://github.com/ObjectProfile/Roassal3

I find it useful for scripty things once you come to terms with not needing to write to stdout. Although there are ways to do that and call into the image from shebang scripts. Also, as long as you leave the image running you can setup cron like jobs in the image.

The reason I like it for this type of thing is that all you need resides in the image instead of shell scripts scattered hither and yawn. Also, the development for these types of things I find much easier because of the ability to inspect results of every step in the workspace/playground before stitching it all together in a class. I guess in that regard it’s a similar flow to Lisp.

What about trying the Godotalk [1]?

[1] https://pharoweekly.wordpress.com/2021/02/03/godotalk/