6 ms·
No side projects yet, but I chose to learn Pharo [0] because I believe it'll make me hyper productive for certain side projects [1]. The reason: I use the debug
by melvinroest 5y ago
No side projects yet, but I chose to learn Pharo [0] because I believe it'll make me hyper productive for certain side projects [1]. The reason: I use the debugger and REPLs a lot when programming. Pharo is a language with a debugger + REPL + language reflection tools on steroids. Also, I want to see up close what Alan Kay went on and on about.
From what I've seen, Pharo has a few things that would make Bret Victor proud. But it's still early days for me, I'm still getting the hang of the language.
And while the language is obscure there seems to be at least one SaaS company that is hiring for remote European software engineers [2]. There are some other examples, but IMO [2] seems to be the best one among all the examples [3].
[0] https://pharo.org/features https://pharo.org/features
[1] I know that niche languages can have very weird issues, but there are enough side projects where these issues won't be much of an issue.
[2] https://yesplan.be/en https://yesplan.be/en
[3] https://pharo.org/success https://pharo.org/success
- nsm 5y agoI would also really like to use Pharo more. I tried it for Advent of Code last year [0]. However, I just can't get over the unmanageable custom windowing system going on within the main window. Their isn't an easy way to iterate through windows, find windows, close windows and stop them from overlapping with each other all the time! It would be great to have some kind of Jetbrains/VSCode/modern IDE style layout where all the ancillary structures become panes that are always in a particular position and can be toggled on and off. That and the lack of a vim editing mode (sorry, but I find it very hard to write code in an editor without vim style bindings, even though I don't use vim itself most of the time), make it a pretty painful experience. In general, while Smalltalk the environment is a great idea, I think its UI could use some improvements and be much more keyboard driven. Also, namespaces/modules please. [0] https://nikhilism.com/post/2021/experiencing-smalltalk/ https://nikhilism.com/post/2021/experiencing-smalltalk/
- abecedarius 5y agoWould https://github.com/unchartedworks/SmalltalkVimMode https://github.com/unchartedworks/SmalltalkVimMode help with your vim needs? (I'm not into vim so I have no idea if that's the best place to start.)
- nsm 5y agoThanks! However it requires Pharo 6.1, and Pharo is at v9 now.
- melvinroest 5y agoI agree, nothing is stopping you to change that though ;-) Though, I've been looking through Calypso a bit (the window browser) and for me it seems really difficult to add anything at the moment. If it gets any easier, I'll create some tutorials. Loading in your own code to append to an image is doable via a .bashrc style mechanism. As in, you put your code in a file, open a playground and load it in, and your image is appended.
- transfire 5y agoGreat choice. Pharo deserves more attention for those wanting to do OOP.
- melvinroest 5y agoI have some idea behind the OOP now and it's insane how everything is an object. I wouldn't call Pharo OOP. I'd call Pharo live OOP. Normally, objects in languages are asleep like a bear in hibernation or something only to wake up when spring arrives (or when you click "compile"). But in Pharo they are awake when you edit them. If I was a DJ/producer, I'd try to see if it makes sense as a music tool.
- jacquesm 5y agoNo, Pharo is OOP. The other stuff that people call OOP isn't.
- deleted 5y ago[deleted]
- melvinroest 5y agoYou mean to say that OOP needs to have live objects by design? (in order to be called OOP)
- jacquesm 5y agoThat was the original meaning. Roughly until 'Java' came around and started calling everything an object. We used to call structures with data and pointers to functions just that: structures.