My beef with Smalltalk is that it's far too much a world onto itself for my taste. Java is already a bad enough citizen of Unix but Smalltalk takes it to a new level. If Lisp and Scheme can integrate well into Unix, why can't Smalltalk?
Pharo, the Modern Smalltalk
71–80 of 178 posts
Re: Pharo, the Modern Smalltalk
#72Is there a snippet of example code to look at? I browsed the pharo.org website, but couldn't find an example to give me a taste. I even tried googling "pharo example" and with a brief look at the results didn't find an example. Today, there are hundreds of programming languages competing for attention. It is in your interest to put an example front and center of why one should spend time looking into yet another prog…
Re: Pharo, the Modern Smalltalk
#73My beef with Smalltalk is that it's far too much a world onto itself for my taste. Java is already a bad enough citizen of Unix but Smalltalk takes it to a new level. If Lisp and Scheme can integrate well into Unix, why can't Smalltalk?
Re: Pharo, the Modern Smalltalk
#74Earlier quoted context omitted.
Simply a) keep a copy of the original image [clean slate] b) keep a copy of your changes/additions [use version control if you like] c) import b into a. Repeat daily or weekly as you please. > You always modify code on the fly Since back in the '70s when Smalltalk was being created at Xerox PARC and used there for experimental systems development, changes were automagically recorded in a changes .cha text file. For m…
> Simply a) keep a copy of the original image [clean slate] b) keep a copy of your changes/additions [version control] c) import b into a. Really? So we're back to "MyImage.img.bak.2.old.works", "MyImage.img.bak.3.works", "MyImage.img.bak.2.test"? Now that is an experience I do not want to ever have to experience again.
Re: Pharo, the Modern Smalltalk
#75Earlier quoted context omitted.
> There's no excuse for not having any examples of a programming language… https://pharo.org/ I see examples on their home page.
There is an image showing many IDE windows, one of which does actually show code you would find if you already knew what the code you were looking for looked like. You could still not copy and paste it. Then there is a textual example consisting of two lines of Posix shell, embedded in which is indeed a tiny Pharo program in a string. The parent's point mostly stands. (Oh, and there is a frickin' popup for a frickin'…
Why would you copy and paste code before you'd done anything more than glance at a language home page?
Perhaps the better comparison is with some other languge IDE:
Re: Pharo, the Modern Smalltalk
#76Is there a snippet of example code to look at? I browsed the pharo.org website, but couldn't find an example to give me a taste. I even tried googling "pharo example" and with a brief look at the results didn't find an example. Today, there are hundreds of programming languages competing for attention. It is in your interest to put an example front and center of why one should spend time looking into yet another prog…
[source code] -> [interpreter] -> [running program]
Instead Smalltalk is more like [running program] + [auto persistence] + [editing tools]
So you don't modify large gobs of source code files, you modify the running program from within - aka live editing. The running program consists of a network of interconnected objects. You use the textual syntax also - but only to modify parts of the already live program (e.g. you could 'install' a new method on an existing class object). You inspect the running program using graphical browsers (typically also part of the same program) - and everything you modify is live immediately.The syntax of Smalltlak is interesting (can be seen here https://en.wikipedia.org/wiki/Smalltalk#Syntax). But the more interesting aspects of the experience are the live editing, working with network of objects, hybrid text/non-text ways of modifying these objects, etc.
Re: Pharo, the Modern Smalltalk
#77Re: Pharo, the Modern Smalltalk
#78Earlier quoted context omitted.
Oddly, I'm more fascinated that I'll be able to learn French reading through the materials of that course. Perhaps Smalltalk will follow on the side :)
You're probably joking, but fwiw I'm 7 weeks into Duolingo's French lessons right now and found most of this course page to be easily readable without reference to the English. It's much easier than Le Petit Prince, a children's book for which I still need to hit the dictionary a lot.
Re: Pharo, the Modern Smalltalk
#79Is there a snippet of example code to look at? I browsed the pharo.org website, but couldn't find an example to give me a taste. I even tried googling "pharo example" and with a brief look at the results didn't find an example. Today, there are hundreds of programming languages competing for attention. It is in your interest to put an example front and center of why one should spend time looking into yet another prog…
This may not be immediately apparent, but I discovered that Smalltalk did not fit into the 'programming language' concepts in my head. I think of a typical bytecode VM language as [source code] -> [interpreter] -> [running program] Instead Smalltalk is more like [running program] + [auto persistence] + [editing tools] So you don't modify large gobs of source code files, you modify the running program from within - ak…
How do you use TDD when coding like this?
Re: Pharo, the Modern Smalltalk
#80Earlier quoted context omitted.
There is an image showing many IDE windows, one of which does actually show code you would find if you already knew what the code you were looking for looked like. You could still not copy and paste it. Then there is a textual example consisting of two lines of Posix shell, embedded in which is indeed a tiny Pharo program in a string. The parent's point mostly stands. (Oh, and there is a frickin' popup for a frickin'…
> You could still not copy and paste it. Why would you copy and paste code before you'd done anything more than glance at a language home page? Perhaps the better comparison is with some other languge IDE: https://www.jetbrains.com/go/