Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yes last time I checked they had their own versioning system as well... it's one thing to learn a language but having to learn a whole new set of tools put me off in the end. I guess I can see the argument that the Smalltalk files are not plain text but rather images (or something), but having to basically download a second OS within the OS just to write Hello World was off putting. I realise that that's also can make Smalltalk so powerful, at least in principle.

Also lack of retina display support put me off. Of course it is purely cosmetic but when it's literally the only app I used that looks like shit, it is sufficient to nudge me away. Maybe fixed now, not sure.



> Yes last time I checked they had their own versioning system as well...

Using git with Pharo: https://books.pharo.org/booklet-ManageCode/pdf/2020-05-12-Ma...


> to learn a whole new set of tools

The tools are how we find functionality that can be re-used and re-purposed to do what we need. A lot of exploring and reading existing stuff, less writing new stuff.

> Smalltalk files are not plain text but rather images (or something)

Mostly Smalltalk files are plain text files!

There's a plain text log file with a replayable record of what you've been doing. There's a sources file with the source code. There are plain text file outs and change sets.

There's the VM like the JVM — not a plain text file.

There's the image, a cache of byte code (like Java .class files, Python .pyc files) and application state — not a plain text file.

With a previous Pharo version:

    $ bin/pharo --headless Pharo10-SNAPSHOT-64bit-502addc.image hello.st
pharo is the VM.

Pharo10-SNAPSHOT-64bit-502addc.image is the image.

hello.st is a plain text file.

    $ cat hello.st
    Stdio stdout 
        nextPutAll: 'hello world'; 
        nextPut: Character lf.!
    SmalltalkImage current snapshot: false andQuit: true!


That's fine, I understand that a lot of my criticisms are arguably actually advantages, but after doing the MOOC about 8 years ago I just couldn't stick with it. Fun though, and a great way to really learn OOP at the time when I was just starting out programming.


That's fine, people have some strange ideas about Smalltalk, both +ve & -ve.


Funnily enough, I'd compare the image and versioning differences to managing Postgres rather than non-image based languages.

Postgres has to deal with images (backups) and versions (migrations). Maybe selling image-based systems in both cases needs a little work or formalisation (best practices and all that)?

Image-based systems seem more about data management rather than code management. Just some random thoughts


In the beginning source code in text files :-)

"Within each project, a set of changes you make to class descriptions is maintained. … Using a browser view of this set of changes, you can find out what you have been doing. Also, you can use the set of changes to create an external file containing descriptions of the modifications you have made to the system so that you can share your work with other users."

1984 "Smalltalk-80 The Interactive Programming Environment" page 46

"At the outset of a project involving two or more programmers: Do assign a member of the team to be the version manager. … The responsibilities of the version manager consist of collecting and cataloging code files submitted by all members of the team, periodically building a new system image incorporating all submitted code files, and releasing the image for use by the team. The version manager stores the current release and all code files for that release in a central place, allowing team members read access, and disallowing write access for anyone except the version manager."

1984 "Smalltalk-80 The Interactive Programming Environment" page 500

https://rmod-files.lille.inria.fr/FreeBooks/TheInteractivePr...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: