Live data from Hacker News

Pharo, the Modern Smalltalk

medium.com

51–60 of 178 posts

Re: Pharo, the Modern Smalltalk

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

Pharo, like GNU Smalltalk, has a command line mode so that you can use your favourite editor. However, without the live coding IDE, you lose the biggest benefit of the language: highly accelerated development and enormous programmer productivity. Yes, Pharo (and Smalltalk) is a world unto itself but that's the price you pay for a highly productive, easy-to-program software development environment. How are you going t…

> Pharo, like GNU Smalltalk, has a command line mode so that you can use your favourite editor.

That's good news that does not appear in official documentation (last time I checked).

> Yes, Pharo (and Smalltalk) is a world unto itself but that's the price you pay for a highly productive, easy-to-program software development environment.

Users want standalone software. They don't want to be forced to run programs in your highly productive IDE. If your IDE is marketed to programmers as "a shiny IDE you will never be able to escape from", programmers won't use it for fear of not being able to deploy software in a way that users would accept.

> remain rigid and stick to old, familiar ways

You know what has never ever worked for promoting programming languages? Insulting people who don't use your language.

Re: Pharo, the Modern Smalltalk

#52
post #19
post #2

There's a Mooc starting in december by the INRIA ( French Institute for Research in Computer Science and Automation ) https://www.fun-mooc.fr/courses/course-v1:inria+41010+sessio...

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

#53

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

Here's a "Pharo Cheat Sheet" PDF from pharo.org http://files.pharo.org/media/pharoCheatSheet.pdf

Re: Pharo, the Modern Smalltalk

#54
post #38

Earlier quoted context omitted.

I've always found the 'image' environment to be far more interesting than the language of Smalltalk itself. If you do find just code snippets, you're missing out on what I, at least, see as the most significant feature of the whole thing. The way it goes about defining the code is clunky, but the overall structure of 'images' and the workflow involved with them is fascinating. I could easily see something similar bei…

That image environment sounds scary to me. I used to do a lot of hardware development, and what I love most about software is that you can always restart from the clean plate (by restarting the program) and/or undo your previous work (with version control). From what I understand, none of this applies to Smalltalk. You always modify code on the fly, so you may end up with properties which exists, but no current code…

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 more information on the primitive techniques from back in those days see -- "Managing the Evolution of Smalltalk-80 Systems" in Smalltalk-80: Bits of History, Words of Advice

http://sdmeta.gforge.inria.fr/FreeBooks/BitsOfHistory/BitsOf...

Re: Pharo, the Modern Smalltalk

#55
post #13

Earlier quoted context omitted.

Maybe a whole book is overkill. When I'm checking out a new language I like to see a couple of short, accessible examples to get a feel for the language. Like this clock[0]: Time now asValueHolder in: [ :clock | [ [ 1 second asDelay wait. clock value: Time now ] repeat ] fork. clock inspect ] [0] https://medium.com/concerning-pharo/elegant-pharo-code-bb590...

I have found that O'Reilly's "Nutshell" books tell me everything I need to know when learning most new languages, and then some. For some languages, though, they have features that might make this sort of overview challenging if you do not understand the core paradigms (such as Rust's ownership concepts).

Not really: https://rustbyexample.com/

There's no excuse for not having any examples of a programming language on that programming language's home page. Here are some languages that do it right:

https://ceylon-lang.org/

https://www.dartlang.org/

https://golang.org/

https://www.rust-lang.org/en-US/

Notice there at least one example (often executable!) on the home page of each site.

I'm actually pleasantly surprised how well all those sites do. Most smaller programming languages get this bit horribly wrong.

Re: Pharo, the Modern Smalltalk

#56
post #20

Earlier quoted context omitted.

Lisp and Scheme don't actually integrate with UNIX. Their UNIX versions are handicapped versions of themselves. Languages with rich runtimes and developer tooling are always shoehorned into POSIX model to "feel UNIX".

Could you explain?

As an example, Lisp has an amazingly full-featured condition system. It enables all sorts of stuff like detecting an error condition, changing arguments, rerunning code, replacing code while it's running &c. If it were plumbed all the way down into the OS, I could call lispy_mmap with the wrong arguments, detect that they're wrong, fix them and then return from lispy_mmap as though nothing had happened.

Instead, in a Lisp on Unix, I'll call mmap and either have to manually check for an error or use a wrapper which does that for me. If there is an error, I'll have to re-call mmap.

It's not terrible, and it's still a lot better than using e.g. C — but it's not as good as it could be in a Lisp-all-the-way-down system.

Re: Pharo, the Modern Smalltalk

#58

Earlier quoted context omitted.

I'm not really sure what you are claiming here. My experiences with Smalltalk ended 20 years ago with IBM Smalltalk and Digitalk Smalltalk/V. At that time, they both used the host operating system (Windows or OS/2) for UI widgets, windows, and such, and any applications you built in it could be packaged up to be launched as any other application. One could use such an application and have no particular sense of isola…

Take a look at the Pharo intro on youtube, you'll see what I mean: https://www.youtube.com/watch?v=WLoXXFxU8lw The images on the current website look very similar, so I don't it's changed much in this regard. This has been my typical experience with Smalltalk languages, with the exception of GNU Smalltalk whose specific goal is to integrate with POSIX instead of creating a walled garden.

Do you want to perhaps point to a specific time in that video, and compare it to a non-Smalltalk environment in a way that makes this purported isolation apparent, because I don't see what you mean.

I don't recognize whatever operating system the demo was done on, so if the Pharo system is not using native widgets I would not know, you'll have to explicitly state if this is the case.

Re: Pharo, the Modern Smalltalk

#59
post #54
post #38

Earlier quoted context omitted.

That image environment sounds scary to me. I used to do a lot of hardware development, and what I love most about software is that you can always restart from the clean plate (by restarting the program) and/or undo your previous work (with version control). From what I understand, none of this applies to Smalltalk. You always modify code on the fly, so you may end up with properties which exists, but no current code…

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

#60

I wouldn't take Capers Jones' estimates of SLOC/function point as evidence of anything. In most cases (including these two) this seems to be Jones taking a look at the language Wikipedia page and guessing a number.

> this seems to be

This seems to be you maligning Capes Jones without evidence.

Post reply on HN