What's the most *innovative* programming language from the last ~30 years?
I ask because I look around, and it seems like so many—admitidly great!—recent-ish programming languages are just remixed/polished versions of old ideas. #rust, #go, #Clojure, #kotlin; they all seem to be bringing the old ideas in a more polished form.
Am I missing something *truly* innovative?
@codesections What do you think about Ruby on Rails & Ruby? They had some fairly big changes to web deployment/development
@codesections Ooh, and if I can be super cheeky getting a 25 year old language in, R?
You might think it's fairly generic, but doing array maths/programming *by default* is actually pretty innovative.
I'd also sneak Julia in there under the same guidelines, 7 years old and pretty weird - it's like how Haskell is for mathematicians, but Julia is but for statisticians
@Eden Those are all really good points—and R and Julia are two languages that I know *very* little about, so I may well have not given them enough credit.
After spending ~10 minutes on the R Wikipedia page to see what you mean by "doing array maths by default", though, I'm not *sure* I'd say that wasn't already in APL.
The R expression
1:6 + 1:6
seems directly equivalent to the APL:
(⍳ 6) + ⍳ 6
And APL is definitely build around Arrays as its foundational data type.
@codesections I think that's fair, I realised after I'd said it that was a big feature in MATLAB etc.
@codesections sure, many of the concepts are old, but implementation counts, too. LINQ in C# brought concepts like Monads to a broader audience. Rails made MVC work on the web. Etc. I would say those are innovative, whereas APL and Forth were inventive.
@codesections as another example, Smalltalk to invented many OOP concepts; then Java, C++, etc. on the one side and Objective-C and Ruby on the other took different paths on how to implement them, culminating in a 2000s-era “everything is an object” hype that has by now led to a saner approach where we mix concepts from OOP and FP. Those steps were necessary parts of the journey.
@codesections haskell? erlang?
- Looks like Python
- But is compiled, statically typed, with type inference
- Compiles to C/C++/JS
- Mixes with C/C++/JS libs
- Strong meta programming features (templates, macros)
- Generic types, procs
- Inbuilt doc generator
- So much more!
Perhaps, Coq which is just under 30 years old. Coq is built for writing mathematically verified proofs, but it can also be used for writing mathematically verified programs.
Also, if you aren't familiar with esoteric programming languages consider reading about them: https://esolangs.org/wiki/Main_Page
Also, Inform 7 is another weird language. Though it is a domain specific language meant for interactive fiction.
@codesections I guess it getting harder to produce anything new in programming without a fundamental change in architecture beneath.
This was tried in the early 80s with the Inmos Transputer and the Occam programming language. Distributed program execution, at that time, was very avant-garde and it was seen as too niche.
If it were to be released now, who knows?
@codesections dependently typed languages are seeing a fair bit of research in recent times and a space I’m planning to learn more about starting with Idris. See also Agda. This post is interesting https://www.azavea.com/blog/2019/03/11/the-power-of-types-in-idris/. Also check out Prolog and Mercury. This video is a good demo of the former https://m.youtube.com/watch?v=G_eYTctGZw8
@codesections Possibly relevant: https://idlewords.com/talks/web_design_first_100_years.htm which can answer the question "Where's the 747 and Concorde of the post-1990s?"
Thanks for that link—*definitely* relevant to the state of software innovation. I haven't finished it yet, but I plan to when I get a bit more time. And I'm already pretty sure it's a must-read for thinking about these issues
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.