Live data from Hacker News

Pharo, the Modern Smalltalk

medium.com

101–110 of 178 posts

Re: Pharo, the Modern Smalltalk

#101
post #79

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…

> [running program] + [auto persistence] + [editing tools] How do you use TDD when coding like this?

Others have answered but interestingly, TDD was 'built-in' to the Pharo tutorial I did a while back.

Basically you write a test first, say it calls an undefined method `x.somemethod()`. You push a button to run the test, as soon as the method call fails, the environment shows you a popup which lets you define the method right then and there, while you have all the details of the suspended execution. You can write the method and the 'resume' the execution from where it excepted.

Re: Pharo, the Modern Smalltalk

#102
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.

You distribute the image + interpreter. I presume you could strip the image, but haven't tried it.

Re: Pharo, the Modern Smalltalk

#103

Earlier quoted context omitted.

Smalltalk is not "yet another programming language"; Smalltalk is the language all those other OO programming languages copied. You should look into it because it is the source of the object oriented paradigm and it'll make you a better OO programmer in all of those other languages.

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 C and Smalltalk than by C++ as far as OO goes; it looked to C++ only for syntax. Java is semantically a direct descendant of Smalltalk and was inspired directly by Smalltalk as both of its creators knew Smalltalk and Objective C (another Smalltalk derivative). [1] Direct from the co-creator of java not to mention that Gosling himself was a Smalltalker.

So no, what we know as modern OO came directly from Smalltalk.

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

Re: Pharo, the Modern Smalltalk

#106

Earlier quoted context omitted.

Smalltalk is not "yet another programming language"; Smalltalk is the language all those other OO programming languages copied. You should look into it because it is the source of the object oriented paradigm and it'll make you a better OO programmer in all of those other languages.

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…

I love representations of language history like this one, https://calvinx.com/wp-content/uploads/2012/07/evo-prog-lang...

Re: Pharo, the Modern Smalltalk

#107

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…

I love representations of language history like this one, https://calvinx.com/wp-content/uploads/2012/07/evo-prog-lang...

Ditto, but that one is terribly wrong.

Re: Pharo, the Modern Smalltalk

#109

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…

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 calls are just that, function calls generalized to have a receiver. And Java follows that pattern.

If Java was a direct descendant of Smalltalk, it would look a lot different. For one thing, it would have a lot less syntax baked into the language, and a lot more closures, from the get go.

Re: Pharo, the Modern Smalltalk

#110
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?

Post reply on HN