Live data from Hacker News

Pharo, the Modern Smalltalk

medium.com

161–170 of 178 posts

Re: Pharo, the Modern Smalltalk

#161

Earlier quoted context omitted.

The projects I'm talking about are closed source business apps. My app is listed on the Seaside.st success stories page, but I'd rather not talk about it here.

Thanks! The link might be dead...or at least was for several of the success stories. Best of luck in your endeavors.

My link isn't dead ;)

Re: Pharo, the Modern Smalltalk

#162
My personal experience has been that the live coding aspect makes a huge difference to my development speed. A while ago I was going through Project Euler in less-mainstream languages, just as a warm-up/distraction from work. I would do one problem at a time and then go back to work. One day I switched from Object Pascal (with Lazarus) to Pharo. I completed the problem (which I hadn't attempted before, so no prior knowledge) so quickly, that I proceeded to complete five problems in the time it usually took me to do one. Because everything was so immediate, it was really easy to maintain a flow state. I had to force myself to stop and get back to work.

The object inspector is really nice, also being able to redefine methods in the debugger and continue the current computation is super cool. Beats poring over Java stack traces.

It would be nice if there were more open source libraries available, but SmalltalkHub is getting better: http://smalltalkhub.com/list

Re: Pharo, the Modern Smalltalk

#163

Earlier quoted context omitted.

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.

Mind telling me why and pointing me to a correct resource?

Re: Pharo, the Modern Smalltalk

#164

Earlier quoted context omitted.

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

> remain rigid and stick to old, familiar ways

> Insulting people who don't use your language.

How am I insulting people??? I'm making a factual assertion, completely devoid of judgment.

Re: Pharo, the Modern Smalltalk

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

Here is a nice Pharo TDD video (thx Avi) from an author of several Ruby books, when he was trying Pharo... http://www.virtuouscode.com/2015/05/11/in-which-i-make-you-h...

Re: Pharo, the Modern Smalltalk

#166

Earlier quoted context omitted.

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

I'm sorry but you are really completely missing the point. You are conflating how Smalltalk is implemented under the hood (using files) with how Smalltalk is used for programming (using the image). Under the hood, Smalltalk has to adapt to the host platform, whether that be Windows, macOS, or Linux. In the original Smalltalk implementation over four decades ago, Smalltalk was the host platform (or operating system), so there were no files for source code.

Re: Pharo, the Modern Smalltalk

#167

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.

Capers Jones is a well-respected expert in software metrics. He's done some ground-breaking work in this area. Unless you're an expert too, I wouldn't denigrate him.

Re: Pharo, the Modern Smalltalk

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

Pharo doesn't need to be "installed". It can run from any directory. Typically your Image may be 30MB and the VM 5MB, so you just need to drop the two in the same folder via a zip file or whatever platform packaging tool you like.

Typically with Smalltalk you would have an Image live on and on and maybe forget how to create it from scratch. And depending on your audience, you may have wanted to strip out development tools, something like this old example for Squeak... http://squeak.preeminent.org/tut2007/html/205.html

Pharo has put a lot of effort into "bootstrapping" the Image via CI to address this weakness of Image based systems. So you only need to load the parts you want in a reproducible way.

Re: Pharo, the Modern Smalltalk

#169
post #54

Earlier quoted context omitted.

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.

The development workflow for Pharo is that every code change has a CI performs a bootstrap build of the whole system pulled from a git repository. Then your CI adds your production code on top of that.

So it doesn't get lost in the mass of other comments, here again is some info on Pharo's bootstrap process... http://www.esug.org/data/ESUG2016/04-Thursday/1000-1030%20Mi...

Re: Pharo, the Modern Smalltalk

#170
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…

You may be interested in the bootstrap work Pharo has been doing...

http://www.esug.org/data/ESUG2016/04-Thursday/1000-1030%20Mi...

Post reply on HN