Live data from Hacker News

Pharo 9

pharo.org

161–170 of 232 posts

Re: Pharo 9

#161

I've often heard two statements online from older programmers. "Delphi/TurboPascal was the peak of developer productivity" And "Smalltalk was the peak of developer productivity" I've only been programming about a decade so both of those languages were long before my time. Can anyone who has experience programming in Smalltalk share what was so special about it/what made it so productive to write programs in versus ot…

It's a very noisy datapoint, but compare performance VW Smalltalk to NodeJS: https://benchmarksgame-team.pages.debian.net/benchmarksgame/... VW Smalltalk is between 2x and 27x times slower than Javascript. And Pharo is slower yet than VW Smalltalk: https://benchmarksgame-team.pages.debian.net/benchmarksgame/... Nevertheless, as the front page the the Benchmarks Game is careful to mention, benchmark performance is 1)…

> Still, it's sad that Smalltalk & company haven't received the VM optimization attention that JS has.

Well...if you consider that the heritage of V8 in Node.js kind of goes back to StrongTalk, I'd say Smalltalk has received more of it than perhaps many people think. Unfortunately StrongTalk didn't really succeed on the market for the same reasons as many other Smalltalk implementations - proprietary nature and exclusivity doesn't really help you in the long run against worse-but-cheaper-and-more-accessible solutions.

Re: Pharo 9

#162
post #84

Earlier quoted context omitted.

I guess maybe because Pharo has moved beyond Smalltalk-80, and is its own thing nowadays, just like Raket is no longer just Scheme.

But the language itself is still Smalltalk with some extra classes, right?

Kind of. At the very least you get traits, dynamic array literals and such that you don't get in "classic" Smalltalk.

Re: Pharo 9

#163

I've often heard two statements online from older programmers. "Delphi/TurboPascal was the peak of developer productivity" And "Smalltalk was the peak of developer productivity" I've only been programming about a decade so both of those languages were long before my time. Can anyone who has experience programming in Smalltalk share what was so special about it/what made it so productive to write programs in versus ot…

It's a very noisy datapoint, but compare performance VW Smalltalk to NodeJS: https://benchmarksgame-team.pages.debian.net/benchmarksgame/... VW Smalltalk is between 2x and 27x times slower than Javascript. And Pharo is slower yet than VW Smalltalk: https://benchmarksgame-team.pages.debian.net/benchmarksgame/... Nevertheless, as the front page the the Benchmarks Game is careful to mention, benchmark performance is 1)…

Those benchmarks are quite old, from Pharo 5 in 2017. It would be interesting to see a updated version. Eliot Miranda and Clément Béra are working on speculative inlining for the JIT compiler. From http://www.mirandabanda.org/cogblog/about-cog/ - "With Clément Béra I’m working on adaptive optimisation (a.k.a. speculative inlining) at the image level, optimising from bytecode to bytecode. We call this project Sista, which stands for Speculative Inlining Smalltalk Architecture. Clément’s image-level (entirely in Smalltalk above the virtual machine) adaptive optimizer is called Scorch. Sista should offer about a -66% speed-up (3x) for conventional Smalltalk code. The combination of Spur and Sista should yield almost a 5x speedup over the original Cog."

Re: Pharo 9

#164

I've often heard two statements online from older programmers. "Delphi/TurboPascal was the peak of developer productivity" And "Smalltalk was the peak of developer productivity" I've only been programming about a decade so both of those languages were long before my time. Can anyone who has experience programming in Smalltalk share what was so special about it/what made it so productive to write programs in versus ot…

I haven't used it much myself, but I've watched a lot of Alan Kay videos and I've read his "Early History of Smalltalk" which I highly recommend. My take is that it is largely about creating a computing system from the smallest yet most fundamental/powerful building blocks. In smalltalk, "everything is an object", which means everything has the semantics of a "whole computer". These computers are networked together and can send/receive messages back and forth with each other. This creates a drastically different paradigm than simply creating a pipeline of functions to send data through (for example). It excels at modeling complex systems, it's really "OOP done right".

Of course there are other interesting features worth talking about, such as "images" and the introspection capabilities. Which are both great and often sorely missed in todays systems. But I think the big idea is to try to understand what Kay had in mind with OOP.

Another aspect of smalltalk that is important, beyond just the "language" is to recognize its role in advancing "personal computing". Smalltalk was essentially an operating system that empowered the user to create new media and tinker with the system.

If you want to see a modern web-browser based smalltalk-like system that uses javascript, check out Dan Ingalls' Lively Web. That will give you an idea into how smalltalk systems were meant to be used, in terms of "personal computing".

Re: Pharo 9

#165
post #151
post #135

Earlier quoted context omitted.

> stable commercial product by 1980 This is not true. Even the Smalltalk-80 Blue Book wasn't released until 1983. > If you can't build adoption with a 15+ year head start Historical context is important here. FOSS etc were not nearly as prevalent as they are now, and most major development environments had a price. The main Smalltalk players probably got it wrong by pricing out expensive licensing fees. But the head…

There was also the issue of "viral pricing". As the application was grown as a extension of the image, people were supposed in some schemes to not only pay for their own copy, but also for every copy of the software they wrote and shipped to customers, as it piggybacked on the original image. While free software thrived on copyleft, the first Smalltalks withered on "payleft".

Wouldn't that be payleftandright? ;)

Re: Pharo 9

#166

>In Pharo, everything is an object. This purity and uniformity in the system and language design makes Pharo clean and comfortable to learn. Does this mean Python and JS meet the same definition and are as "clean and comfortable"?

> Does this mean Python and JS meet the same definition and are as "clean and comfortable"?

Are things like message sends or activation records accessible and manipulable as objects in Python and JS?

Re: Pharo 9

#167

Earlier quoted context omitted.

JS is for me clean and comfortable, sometimes more than C# and for some others Python is, and everyone has their own answer to "what makes them so". Everything being an object may do the trick for you or not. I don't mind a marketing page (even for a programming language) being opinionated, as long as not borderline delusional.

Unlike most OOP languages, it's true, and not just marketing, for Smalltalk to make the claim that everything is in an object.

I was not talking about everything being an object. I was talking about that claim being the key to being nice and comfortable.

Many sibling comments, IMHO, miss the point of the parent and focus on the claim about python and js.

Python and js could perhaps have been completely object based. It still wouldn't make them comfortable for many.

Re: Pharo 9

#168
post #85

Earlier quoted context omitted.

Maybe Smalltalk sounds old like COBOL. It's hard to re-kindle interest in old tech in the eyes of new devs. It seems every generation of programmers want to have their "own" tools, even if they're worse than the previous ones.

You mean like C, born in 1972?

Sure. How many new devs do you see writing C?

Re: Pharo 9

#169
post #84

Earlier quoted context omitted.

I guess maybe because Pharo has moved beyond Smalltalk-80, and is its own thing nowadays, just like Raket is no longer just Scheme.

But the language itself is still Smalltalk with some extra classes, right?

Smalltalk is just a simple meta-language (like Lisp and Forth). In your system, you may have the same or very similar syntax and keep some degree of compatibility but be very different in many practical aspects. For example, Pharo has Collections API very similar to Smalltalk but very different Files API or UI API. It has another class building strategy with stateful traits, slots, some syntax extensions, different source files format etc.

Re: Pharo 9

#170
post #134
post #121

Earlier quoted context omitted.

> cost of ST licences back when was beyond a joke March 7, 1988 "Smalltalk/V 286 is available now and costs $199.95" https://books.google.com/books?id=CD8EAAAAMBAJ&pg=PA25&lpg=P... > nasty-looking non-native GUIs The "non-native GUI" was quite important because Smalltalk was running on MS-DOS — not on MS-Windows.

Well $200 in 1980s is something like $500 today. I don't think I own any piece of software costing that much.

That seems like an ahistorical objection.

$199 was a very reasonable price for a powerful dev tool in 1988. A lot of software at the time cost much, much more. Look up historical prices for just about any contemporaneous commercial software.

You can still argue they would have done better in the long run by marketing themselves as "Turbo Smalltalk" at $69.99. But that's a different argument than "wow that's way overpriced," which simply wasn't the case.

Post reply on HN