Hacker News new | ask | show | jobs
by sevnin 1475 days ago
What do you mean by that?
1 comments

In Smalltalk there is no such thing as source files. Your program is an image which can be freely modified and dumped. Look at Pharo[1] which is a modern Smalltalk environment. You start it up and create classes in the IDE, but never do you create "source files".

[1] https://pharo.org/

"6.18 Saving code in a file" Pharo 9 by Example, page 75

https://books.google.com/books?id=hfpwEAAAQBAJ&lpg=PA75&ots=...

> In Smalltalk there is no such thing as source files...

    $ cat fact.st
    Stdio stdout 
        nextPutAll: 100 factorial printString; 
        nextPut: Character lf.!
    SmalltalkImage current snapshot: false andQuit: true!

    $ bin/pharo --headless Pharo10-SNAPSHOT-64bit-502addc.image fact.st
    93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
I was obviously simplifying it for my explanation as I didn't want to write a story. Yes you can file-out and file-in but thats not the primary mode of operation when working with the IDE.
Look where that wrong explanation leads —

"#1 it's a burden of knowledge to shift from the Unix filesystem to the Smalltalk runtime. There... are no files."

https://news.ycombinator.com/item?id=31474424

"Pharo by Example" doesn't need a wrong explanation —

"It may seem like the image file should be the key mechanism for storing and managing software projects, but in practice that is not the case at all. There are much better tools for managing code and sharing software that is developed in a team. Images are useful, but you should be very cavalier about creating and throwing away images."

"2.5 Saving, quitting and restarting a Pharo session" Pharo 9 by Example, page 14

https://books.google.com/books?id=hfpwEAAAQBAJ&lpg=PA75&dq=p...

Damn, that sounds really cool. The IDE has some amazing features too. The IDE states that you can modify the program while it's running is that actually working well? Cause it seems like a very volatile feature that can go very poorly.
> The IDE states that you can modify the program while it's running is that actually working well? Cause it seems like a very volatile feature that can go very poorly.

It's actually a paradigm that works well in many programming languages besides Smalltalk such as Common Lisp, but for some reason seems to be forgotten with "modern" and "trendy" programming languages. Except for.... JavaScript!

Just because you can doesn't mean you must — it depends on your process.

https://en.wikipedia.org/wiki/Hot_swapping#Software