Hacker News new | ask | show | jobs
by keyle 253 days ago
I tries to answer the question "Why do we design new programming languages?" but it forgets the simplest of answers:

Because we can. Because a compiler is nothing more than a fancy text translator.

5 comments

Because what we know about programming has progressed, and new languages appear to take advantage of that.
Many new languages are still recycling ideas from the 1970's research labs.

Outside affine types, all the praise for Rust's type system traces back to Standard ML from 1976.

The heretic of doing systems programming in GC enabled programming languages (GC in the CS sense, including RC), goes back to research at Xerox PARC, DEC and ETHZ, late 1970's, early 1980's.

Other things that we know, like dependent types, effects, formal proofs, capabilities, linear and affine type systems, are equally a few decades old from 1980's, early 1990's.

Unfortunely while we have progressed, it seems easier to sell stuff like ChatGPT than better ways to approach software development.

It seams like most things boil down to ideas from the 70's. The internet, distributed computing, AI, etc...
> most things boil down to ideas from the 70's

Rather from the sixties. E.g. OOP including dynamic dispatch, late binding, GC etc. appeared 1967 with Simula.

GC was a bit earlier. :)
Earlier than the sixties? All elements of OOP were known before 1967, but their combination, which we still use today under the title OOP, appeared in Simula 67 for the first time. I think the first appearance of a GC in literature was in 1960.
Indeed, everything old is new again.
Yes, but ideas are (mostly) worthless. I mean, they are necessary, but that's the easy part, building the technical foundation that make it possible is the hard part.

The internet needs wires and routers, distributed computing need a good network (i.e. the internet), current-day AI needs GPUs and GPUs need silicon chips that defy the laws of physics. Really, looking at the EUV lithography process makes all of computer science feel insignifiant by comparison, everything about it is absurd.

The real progress is that now, we can implement the ideas from the 70s, the good ones at least. I don't want to diminish the work of the founders of computer science, there is real genius here, but out of the billions of people on this planet, individual geniuses are not in short supply, but the real progress come from the millions of people that worked on the industrial complex, supply chains and trade that lead to modern GPUs, among everything that define modern computing.

As for this measure, Software is worthless as well, which is basically fully specified ideas.
"Fully specified" is the important part here, and the work that went into making the idea fully specified is where the value lies.

For this, we could look at intellectual property laws. Ideas are not protected. Neither by patents, nor copyright, nor trademark. If you want to make your idea worthy with regard to the law, you have to "fully specify" it, turning it into an invention (patent), or code (copyright).

Aside from bringing in the groundbreaking feature, Rust doesn't bring in any groundbreaking changes. It could be argued that bringing in lesser known features to more people is a good thing in it's own right.
Hey Walter, while we have you. Have you ever had the itch to make a newer D that takes all the fancy constructs while retaining the good parts?
We're doing just that by introducing an "Editions" feature that will streamline the feature set.
Really fancy one, when it gets to what translation actually means in implementation effort.
Hehe, it was tongue-in-cheek. It takes a buttload of efforts to make a good one.
I'm not a 'native' programmer, but even I can agree with that.

As it became easier to abstract away from pure assembly, people did just that. Some ideas stuck, some converged, and the ones with the most tenacious, adaptable and attractive communities remained.

Before I learned to code, no programming language was even remotely readable to me. But the more I learned, the more I could shed the notion that this was purely my fault, and accept that sometimes things are a certain way because someone found it interesting or useful. Applies to natural languages and mathematics, too.

Because we can, because it's fun, and because some of us are compulsively obsessed.
linguistic constructs will direct your brain when solving problems and may help you discover solutions spaces you wouldn't with another set of idioms

not to promote FP but imperative stateful vs closures/function oriented is quite a strong example of that

a different paradigm can really be a massive intellectual tool