Live data from Hacker News

Pharo, the Modern Smalltalk

medium.com

131–140 of 178 posts

Re: Pharo, the Modern Smalltalk

#131

Earlier quoted context omitted.

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…

No I'm not misunderstanding Smalltalk, that Smalltalk now has a git plugin to be able to expose itself in that manner is exactly the kind of jumping through hoops I was referring to, it's taken many years for that to become stable and most of us still don't use it, we use Monticello. And both of those are for sharing code, not for developing, we don't work on those st files, we export them.

Don't tell me what I'm thinking and because of who, I make my living with Smalltalk (Squeak and now Pharo) and have for well over a decade and have done hundreds of millions in revenue through my Smalltalk apps.

> .st source files are text files.

I didn't say they weren't, they're still a plain text serialization format that is not directly what Smalltalk looks like and we still don't work on code by editing those files.

> You are confusing them with the image files.

No I'm not, if you actually read what I wrote, you'd see that.

Lisp is not Smalltalk, do not confuse how Lisp does image based development with how Smalltalk does it; they are not the same. When you have a few years experience actually working with Smalltalk doing production level stuff, then come talk to me, right now you're repeating nonsense that you're inferring based on apparently some light reading and no actual experience in the culture of and use of an actual Smalltalk.

Re: Pharo, the Modern Smalltalk

#132

Earlier quoted context omitted.

Sorry to be that guy but a lot of what we've come to know as OO is more directly descended from Simula because that was a big inspiration for Bjarne. As such, C++, Java and C#, which constitute a significant chunk of OO programming, are probably better thought of as descended from Simula (and C). There's a clearer lineage to the likes of Ruby and Objective-C, and to a lesser extent Javascript and Python. I would defi…

Well, I'll be that guy, I don't care what inspired Bjarne, Simula created the idea of an object, but it wasn't until Smalltalk that object orientation became a paradigm: Smalltalk created OO, not Simula. Object != Object Orientation, Simula was and is a procedural language with objects bolted on after the fact. C# is a Java clone so I need only address your Java misstatement, Java was far more influenced by Objective…

Java was far more influenced by Objective C and Smalltalk than by C++ as far as OO goes

Objective-C is message-passing, Java and C++ are not.

Re: Pharo, the Modern Smalltalk

#133

Earlier quoted context omitted.

Well, I'll be that guy, I don't care what inspired Bjarne, Simula created the idea of an object, but it wasn't until Smalltalk that object orientation became a paradigm: Smalltalk created OO, not Simula. Object != Object Orientation, Simula was and is a procedural language with objects bolted on after the fact. C# is a Java clone so I need only address your Java misstatement, Java was far more influenced by Objective…

Java was far more influenced by Objective C and Smalltalk than by C++ as far as OO goes Objective-C is message-passing, Java and C++ are not.

You apparently don't know Java's history.

To start Java's interfaces are loosey based on Objective-C protocols.

As for the rest,

https://cs.gmu.edu/~sean/stuff/java-objc.html

Re: Pharo, the Modern Smalltalk

#134

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.

Please don't post unless it's going to be within the guidelines, like we've asked before.

https://news.ycombinator.com/newsguidelines.html

Re: Pharo, the Modern Smalltalk

#135

Earlier quoted context omitted.

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…

No I'm not misunderstanding Smalltalk, that Smalltalk now has a git plugin to be able to expose itself in that manner is exactly the kind of jumping through hoops I was referring to, it's taken many years for that to become stable and most of us still don't use it, we use Monticello. And both of those are for sharing code, not for developing, we don't work on those st files, we export them. Don't tell me what I'm thi…

[deleted]

Re: Pharo, the Modern Smalltalk

#136

Smalltalk’s use of live coding is easy and elegant; not even Common Lisp, Forth, nor Java (hot swapping) can lay claim to that. Does anyone understand what this is talking about? I may not understand exactly what is meant by "live coding", but I think I do it in Common Lisp (via SLIME) all the time. How is it better in Smalltalk?

In Smalltalk, you can pause your application and inspect the objects alive in a stack at the time you paused it, go backwards and forwards in the stack, change them to see an alternative future, make changes and resume. It is the weirdest shit.

Re: Pharo, the Modern Smalltalk

#137

Earlier quoted context omitted.

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…

No I'm not misunderstanding Smalltalk, that Smalltalk now has a git plugin to be able to expose itself in that manner is exactly the kind of jumping through hoops I was referring to, it's taken many years for that to become stable and most of us still don't use it, we use Monticello. And both of those are for sharing code, not for developing, we don't work on those st files, we export them. Don't tell me what I'm thi…

Smalltalk's image file(s) contain only the compiled code, not the original source code, which is on the changes and source files. You could decompile the image and get most of the source but not in its original, complete form.

If your image crashes it gets reconstructed from those two files.

It would be great if you Smalltalk fans would explain its source handling in these terms above, instead of promoting "image based" as some sort of magic where there aren't any text files, because in this forum some programmers are getting (needlessly) scared about the image-based system and (needlessly) fearing it.

Re: Pharo, the Modern Smalltalk

#138
post #65

For those wondering what it's like to program in Pharo or why there aren't a lot of code snippets floating around in Pharo materials: it's because the way you program in Pharo somewhat different than most languages. Pharo is an IDE in the true sense, i.e. while it's technically possible to open up a workspace (text editor) window and write a new class all on one screen this is not how things are done in practice. Pro…

>This is the essence of the other common Pharo workflow: write some partial code and then fill it in incrementally in the debugger until you have a fully functional and bug-free application.

This way of developing, called by some as "Living in the Debugger", is strangely not promoted all that much by the Pharo community as far as I can see. It is quite astounding for productivity. In essence, you write some very high level code in a space, "do it", and Pharo will prompt you all the way for what it needs to make that high level code work. So you end up with code you need and no more. I have changed my whole thinking about writing software according to this pattern, even when writing in other languages (Guile, Erlang, Ada, Lua...). My Pharo remains my favourite.

Re: Pharo, the Modern Smalltalk

#139

Earlier quoted context omitted.

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 quic…

Thanks for clarifying my comment with actual experience. Much appreciated!

Re: Pharo, the Modern Smalltalk

#140

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 Smallt…

FYI for anyone reading / interested: Amber is apparently still under active development, but they moved from Github to a self hosted platform [1]. Last code update was 3 days ago.

[1] https://lolg.it/amber/amber

Post reply on HN