Hacker News new | ask | show | jobs
by orclev 3485 days ago
> It looks more like Smalltalk, which actually isn't known for being easy to read.

That's sort of one of my points though. They're going to come up with basically one of two things:

A) Something that's conceptually simple (so the average person can understand it without needing to take a bunch of programming classes) but which leads to most programs being very hard to read because they have to implement all the complexity in the program.

or

B) Something that's conceptually complex (and which will require a bunch of programming classes to understand) but allows for simple and easy to understand programs (once you understand the language).

All the horrible Excel and Access code out there (not to mention some of the worst Javascript out there) are basically the first category, while most serious programs and programming languages are the second category, or somewhere in-between the two.

Smalltalk is somewhere between the two. It uses a number of relatively complex concepts but tries to hide them behind some fancy tooling. It was a hugely influential language and pioneered a number of interesting, although perhaps ultimately misguided, concepts and abstractions. Personally I think the message passing concept Smalltalk pioneered (the predecessor to todays actor model and one of the originators of the OO concept) is going to go down as an evolutionary dead end that's poorly suited as a model for general purpose programming (it has certain niche uses that it's very well suited for but shouldn't be applied to the general case).

1 comments

There is a ton of low-hanging fruit in just making the basic logistical details of programming more accessible. (Try to imagine explaining npm to the average Excel user.) Now this project may go after that and produce an incremental improvement that finds a niche in education or wherever, or it may pursue a re-invent computer science, boil the oceans strategy and end up with a smoldering heap of nothing after much effort.
Well now you're talking about something else. If they just want to put some better tooling around an existing language (or maybe apply a slight tweak to one) that would be great, more power to them, although that's not at all what their manifesto seems to be talking about. That said for the love of Turing please don't put yet another build system on node. Haven't we poured enough effort into the garbage fire that is Javascript yet?
What I mean is that the best way to encourage software literacy is probably not going to start by designing a totally new language and development environment.

(Also, the hate JS gets is unfair and diminishes your point.)

Going to ignore the main point of your comment for now, I somewhat disagree but that's a long a nuanced discussion that has more to do with education reform than it does programming. Instead I'd like to focus on your aside about Javascript.

The problem with JS is that we don't have any choice about it. For a quick and dirty scripting language that you're going to write some throw away code in JS isn't too bad, it's basically on par with something like lua (although I think lua is designed a bit better). The problem is that by being the lingua franca of the web browser we're now forced to contend with it even when we really should be using a more powerful language, hence all the hate.

To add further insult to injury someone went and decided to make node which is going the exact opposite direction from where we should be going, we shouldn't be trying to put Javascript everywhere, we should be trying to rip Javascript out of the browsers (or at least provide some kind of alternative). All the churn we see in the Javascript community is basically a symptom of the fact that Javascript is being used for something it really has no business being used for. Javascript sucks as a language for writing applications in, so everyone is constantly trying to "fix" it by putting various layers on top, but you can't fix a broken design by plastering things on top like that (talking about frameworks and libraries here, a transpiler is something a little different). Fundamentally there are two root problems with JS, first it lacks a sane type system, and second it lacks a proper module or namespacing system. They're attempting to fix the later with ES6 modules but it remains to be seen how good that solution is going to be. Typescript goes a long way towards fixing the former problem although it's only capable of so much so it's still more of a bandaid than a real solution. In the meantime we have to contend with the constant churn of new tools and frameworks that are all trying to "fix" Javascript by building on its broken foundation instead of ripping it out and using something that's solid from the beginning.

As an aside to the above, for what it was originally designed for Javascript wasn't a bad solution but it needs to grow up now, and the work being done for things like ES6 really does help. It's just frustrating to see the plodding pace of this evolutionary solution to the problem rather than a more disruptive but faster revolutionary solution.

TL;DR: until the Javascript language itself changes all the frameworks, libraries, and build systems are just window dressing. Right now ES6 and transpilers like Typescript are leading the charge in an evolutionary fix to the language, but a revolutionary one would be much faster.

I basically agree with you here. However, JavaScript is a better language than most people think. Ignorance and trying to treat it like something it isn't is responsible for much of the hate. Obviously it being the only choice in the browser is part of it. However it's a better language than many of the ones that people (or at least groups) use by choice.

The frameworks and build systems are largely necessary because the web platform is rather weak, and of course to add language features.

A type system would help a lot, as will modules once they are universally used. Typescript, Flow, etc will probably settle on something useful. Evolution is generally better than revolution in language design. It's a bit slower for JS because of the nature of the web.