Live data from Hacker News

Pharo, the Modern Smalltalk

medium.com

121–130 of 178 posts

Re: Pharo, the Modern Smalltalk

#121

Earlier quoted context omitted.

Lots of other languages work/worked that way. System images were a common feature of many Lisp systems and some Forth systems in the 1980s.

The image is just one reason why compiling an SBCL executable results in such a large file. It has state as well...or so I've read.

When you load Lisp files, they get compiled; this compilation is saved as binary files (often, "fast load files"), that do what it says on the tin: They allow you to, next time, load your program really quickly.

Now, your program also has state. If you want, you can also save the state of the program (i.e. by using the "save-lisp-and-die" command). This can create large files, because this allows you not only to quickly "run" the program again, but to also run it with the same state that it had when you did the save.

Re: Pharo, the Modern Smalltalk

#122
post #9

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?

What you mean is, why can't you take everything that makes Smalltalk great away, and make it work like every other file based language. The answer is, because then it would suck.

>like every other file based language

As I mentioned above, Smalltalk is also file-based; when you distribute a smalltalk program source, you distribute a set of source text files.

Just like any other typical programming language.

Re: Pharo, the Modern Smalltalk

#123
I enjoyed playing around with Pharo a few years back, and often look at what else the people working on it have been thinking of lately.

Having said that, the PharoJS website mentioned in the article could use some love, I just get an unstyled webpage[0]. Now, I love avoiding website bloat as much as the next guy, but from the point of view of a web developer who might be interested in exploring what Pharo and Smalltalk in general might have to offer, that seems a bit too minimal.

Amber, by comparison, runs a full SmallTalk on the website itself, which is pretty cool[1]. Doesn't seem to have maintained momentum beyond 2014 though.

[0] https://pharojs.github.io/

[1] http://www.amber-lang.net/index.html

Re: Pharo, the Modern Smalltalk

#124
post #100

Earlier quoted context omitted.

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…

So, how do you distribute the program you've just written? That's the issue I have with image based languages.

Well, Pharo seems to have quite a few contributors, so they probably figured something out. Let me have a look..

So, based on these slides about Pharo 6[0], it seems that they use multiple things. First, they have a tool called Epicea, which is a more modern way of tracking changes to an image[1]. Then, for git integration, they have a bunch of tools at pharo-vcs, specifically Iceberg[2].

[0] https://www.slideshare.net/pharoproject/pharo-6

[1] http://smalltalkhub.com/#!/~MartinDias/Epicea

[2] https://github.com/pharo-vcs, https://github.com/pharo-vcs/iceberg

Re: Pharo, the Modern Smalltalk

#125

Earlier quoted context omitted.

If you look at the actual semantics of classes and objects in C++ and Java, they're arguably closer to Simula than they are to Smalltalk. In C++, this is even more evident by the fact that even some of the syntax is reused, such as "virtual" (although in Simula it originally meant what we today call "abstract"). The difference between the two is that Smalltalk methods semantics are message passing . In Simula, method…

I just provided direct quotes from one of the creators of Java, sorry but you're simply wrong to argue you know better what inspired them than they did. Java is a decedent of Smalltalk via Objective C, that is simply a fact. It's well known and accepted they took syntax from C++ as deliberate attempt to entice C++ programmers into Java, that is not evidence they didn't base their inspiration on Smalltalk. And I quote…

Perhaps what inspired them and what their creation most resembles are not necessarily the same thing. It would do some good if both you and your parent poster could agree or disagree with that statement.

Re: Pharo, the Modern Smalltalk

#126

Earlier quoted context omitted.

What you mean is, why can't you take everything that makes Smalltalk great away, and make it work like every other file based language. The answer is, because then it would suck.

> like every other file based language As I mentioned above, Smalltalk is also file-based; when you distribute a smalltalk program source, you distribute a set of source text files. Just like any other typical programming language.

I'm a Smalltalk'er, and that's completely disingenuous and frankly intellectually dishonest.

What Smalltalk does is not remotely what you do in other languages and when we say file based we're referring to that difference, file oriented programming vs image oriented programming.

A Smalltalk program is not a collection of files one works with, it doesn't fit into the standard file based workflow, you cannot without jumping through many hoops, work on a Smalltalk program from your standard editor using your standard unix tools and file based workflow. So when we say file based, it's this we're referring to, do not lie to people and claim Smalltalk is file based, it is not. Smalltalk is image based, you work with its dev tools on a running object model in an image; having the option to export that to a file after the fact is not remotely the same as being file based; that the image stores source code in a changes file, or that we share code between each other with st exports does not a file based language make.

St files by the way are a serialization format, they are not meant to be hand editable and are not treated as such and contain all kinds of non-Smalltalk stuff related to the serialization format; we don't edit st files and compile them, we edit in the image and import/export st files to share code between images.

Re: Pharo, the Modern Smalltalk

#127
This language is a drama queen. "I languish I languish". O cruel cuts of an ignorant world or a language still in search of timely niche to call home. Could've been a contender on the browser but missed that boat too and we're now stuck with Javascript -- I still can not believe it -- and so what are you good for honey? Die already.

Re: Pharo, the Modern Smalltalk

#128
post #100

Earlier quoted context omitted.

So, how do you distribute the program you've just written? That's the issue I have with image based languages.

Well, Pharo seems to have quite a few contributors, so they probably figured something out. Let me have a look.. So, based on these slides about Pharo 6[0], it seems that they use multiple things. First, they have a tool called Epicea , which is a more modern way of tracking changes to an image[1]. Then, for git integration, they have a bunch of tools at pharo-vcs , specifically Iceberg [2]. [0] https://www.slideshar…

You seem to be answering the question - How do you distribute the software development? - and I read the question as - How do you distribute the finished app?

Re: Pharo, the Modern Smalltalk

#129

Earlier quoted context omitted.

> like every other file based language As I mentioned above, Smalltalk is also file-based; when you distribute a smalltalk program source, you distribute a set of source text files. Just like any other typical programming language.

I'm a Smalltalk'er, and that's completely disingenuous and frankly intellectually dishonest. What Smalltalk does is not remotely what you do in other languages and when we say file based we're referring to that difference, file oriented programming vs image oriented programming. A Smalltalk program is not a collection of files one works with, it doesn't fit into the standard file based workflow, you cannot without ju…

The IDE keeps the text files, and that's​ what your source code is made of. Go to any Smalltalk github project and you will find .st files, which are plain text files, and there's your code.

I'm a Lisper, i do know what Image-based development is, because that's what I use*

You're misunderstanding Smalltalk, probably​ because of hype mongers like the author of this article. Source is text files as usual. This is not the same as the image. Your environment, and the compiled classes, are contained in the image, but the IDE also keeps the source, text files.

>St files by the way are a serialization format, they are not meant to be hand editable and are not treated as such and contain all kinds

.st __source__ files are text files. You are confusing them with the image files.

Re: Pharo, the Modern Smalltalk

#130
post #11

They need to work on the presentation. How do you get started ? How does the code look like ? etc. Not just "download this program and buy this book"

FWIW the PDF of the book "Pharo By Example" is available for free. It has also been revised for version 5 - I tried using edition 1 with Pharo 4 and kept having to look up the new names for things, to the point where it was frustrating to try and follow. They appear to have put a lot of work into updating the guide.

And here it is!

http://files.pharo.org/books-pdfs/updated-pharo-by-example/2...

Post reply on HN