Hacker News new | ask | show | jobs
by Qem 1427 days ago
A nice thing about Smalltalk and derived languages, like Pharo, is that they manage being written in themselves nearly down to metal, and that improves learnability a lot, as one can dive deep only knowing the language itself. I code mostly in Python, but sometimes is hard to take a deep dive there without smashing one's head against the C bedrock underneath, at least for somebody like me, that doesn't really know C.
2 comments

Our brains adore consistency.

Smalltalk embraced that from the surface of its skin to the deeps of its soul:

From Dan Ingalls Design Principles Behind Smalltalk https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk....

"Uniform Metaphor: A language should be designed around a powerful metaphor that can be uniformly applied in all areas."

"Personal Mastery: If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual."

"Messages: Computing should be viewed as an intrinsic capability of objects that can be uniformly invoked by sending messages."

I can see why this is frustrating, especially to someone with no C exposure. But bear in mind that the C underpinnings are part of the reason why these languages are popular in the first place -- like Perl used to be before Python.

In a very real sense, the entire concept of an interpreted language in the modern sense is such an ugly kludge (much cleaner to "go all in" on the language, LISP machines being the notable predecessor) -- but do be aware of the tradeoff.

I cannot make heads or tails of what this person is trying to say
There's a fair amount to unpack here.

> I can see why this is frustrating, especially to someone with no C exposure. But bear in mind that the C underpinnings are part of the reason why these languages are popular in the first place -- like Perl used to be before Python.

I the idea GP is proposing here is that because C is so cumbersome, that is why scripting languages became prominent in the first place. I don't think this many would argue with this.

> In a very real sense, the entire concept of an interpreted language in the modern sense is such an ugly kludge

Here GP is implying that if C were nicer/better, or if some other low level language would have risen to prominence, the scripting langauges would not have been "necessary" or desirable in the same way.

> (much cleaner to "go all in" on the language, LISP machines being the notable predecessor) -- but do be aware of the tradeoff.

Here I assume GP is referring to the work in the 80s on Lisp machines where the idea was to build machines from the ground up more suited to a different paradigm. And thus obviating the need for a cumbersome language such as C.

I personally wonder if GP is familiar the "worse is better" essay?

Wow, I should work on my prose, that comment I wrote was really bad :-(

> I personally wonder if GP is familiar the "worse is better" essay?

I am, it was more or less the idea I was trying to get to. The comment I replied to was along the lines of "I'd like a uniform environment where everything is lisp/smalltalk/pharo/etc". My intention was to point out how that idea isn't as free from compromises as it might seem, which explains the dominant model of high-level scripting languages invoking components written mostly in C/C++. Which is a total eyesore, but also extremely practical.

My guess: C underpinning -> easy c bindings my guess. At least th, can easily write bottleneck parts in C. (why python is popular.)
I read your username just after finishing reading this comment of yours.

I'm taking your question as genuine, but you provided some fun value with that hehehehehe

You can ask them a question instead of insinuating that what they said did not make sense.