A brief, incomplete, and mostly wrong history of programming languages (2009)
james-iry.blogspot.com
james-iry.blogspot.com
1990 - A committee formed by Simon Peyton-Jones, Paul Hudak, Philip Wadler, Ashton Kutcher, and People for the Ethical Treatment of Animals creates Haskell, a pure, non-strict, functional language.
1995 - Brendan Eich reads up on every mistake ever made in designing a programming language, invents a few more, and creates LiveScript. Later, in an effort to cash in on the popularity of Java the language is renamed JavaScript. Later still, in an effort to cash in on the popularity of skin diseases the language is renamed ECMAScript.
This article should be updated to include TypeScript, Rust, Zig, Nim etc.
Lmaoo
"Jacquard's loom wasn't concurrent? It was pretty thoroughly multithreaded, I'd have thought!"
At age 12?
> Lambdas are relegated to relative obscurity until Java makes them popular by not having them
>Brad Cox and Tom Love create Objective-C, announcing "this language has all the memory safety of C combined with all the blazing speed of Smalltalk." Modern historians suspect the two were dyslexic.
Like how cereal was invented by a joint US Army/Navy programme to invent a resilient, easily transportable, high nutrient non-perishable food product for wartime use on ships and in the trenches. The programme of course being run by Admiral Kellogg and General Mills.
2023 Rust, then the "most liked programming language", gets forked off as "Crap" by a subgroup of haters in brown t-shirts, so that they can have a proper in-fight. In an interview, an anonymous rebel leader states "I guess I got bored of the vi vs. Emacs debate a bit, so I was looking for something new."
2012 - Microsoft asks, "What would JavaScript be, if it were C#?" and releases TypeScript
2012 - Google asks, "What would C is be, if i̶d̶i̶o̶t̶s̶ Ivy grads could use it?" and releases Go.
Programming Scala is the closest to just expressing how I think. For people who love C#, it has all the best C# features and an even more expressive type system.
Everytime I have to write Go, Python or C++ at work I'm missing features from Scala. :(
Kotlin has been nothing but great for me though. (Different company). It’s largely the best parts of Scala for me and without the headaches that come from some allowed patterns.
That's a great point, and probably one of the biggest downfalls of Scala. Not only did it allow for both 'java++' style programming, it also had full on almost 'haskell' style as well, and the community was split on which way was better!
So yeah, any given codebase in the company could be a very tight, neat, compact monad transformer heavy functional program, or it could be a mess of untyped actors passing messages around to mutable state ridden monstrosities!
I've just started a new project and we are using Scala 3. It's wonderful. (Admittedly, it's blank-slate, so no dependencies to previous Scala, e.g. the old Scala approach to meta-programming.)
> expressing how I think.
What you are saying is basically that you like ML-family languages, which also include Haskell, Ocaml, Rust, Kotlin. Increasingly, other languages take the ML-family lessons from 1973 on board!
For me as a long time practitioner of many languages, one of the telling points is that most/all of the new entries I might write for any of the newer languages would lack personality. Historically, languages had opinions about things. C was common assembler. Smalltalk was objects. Lisp was lists. You could easily riff on these languages “first principles.”
Modern languages feel more like political committees trying to keep as many constituents happy as possible.
Too true, but C++ is rare in that, while being opinionated, it is strongly opinionated in multiple directions (multiple opinions?).
Yeah, but it didn't create any of its own, it just inherited them ;-)
https://web.archive.org/web/20230625182521/http://james-iry....
my favorite part:
> Haskell gets some resistance due to the complexity of using monads to control side effects. Wadler tries to appease critics by explaining that "a monad is a monoid in the category of endofunctors, what's the problem?"I was sharing an office a few floors down with Roko of Basilisk fame, who was the category theory guy. He thought about it for a few minutes and then took us through the proof on the board.
well done
this is not only true of COBOL, my friend.
My favorite part of SICP is this quote:
> It is no exaggeration to regard this as the most fundamental idea in programming:
The evaluator, which determines the meaning of expressions in a programming language, is just another program.
>To appreciate this point is to change our images of ourselves as programmers. We come to see ourselves as designers of languages, rather than only users of languages designed by others.
For me, Arc primarily being used for writing HN is not a sign of failure, but a great example of why Lisps are cool and can really lead to revolutionary thinking.
Hahahhaha oh my
A Brief, Incomplete, and Mostly Wrong History of Programming Languages - https://news.ycombinator.com/item?id=33001242 - Sept 2022 (1 comment)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages (2009) - https://news.ycombinator.com/item?id=27559618 - June 2021 (31 comments)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages (2009) - https://news.ycombinator.com/item?id=11936058 - June 2016 (24 comments)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages (2009) - https://news.ycombinator.com/item?id=7796142 - May 2014 (13 comments)
A Brief And Mostly Wrong History Of Programming Languages - https://news.ycombinator.com/item?id=7149634 - Jan 2014 (22 comments)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages (2009) - https://news.ycombinator.com/item?id=6953863 - Dec 2013 (12 comments)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages (2009) - https://news.ycombinator.com/item?id=6504217 - Oct 2013 (8 comments)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages (2009) - https://news.ycombinator.com/item?id=5695816 - May 2013 (33 comments)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages - https://news.ycombinator.com/item?id=3503896 - Jan 2012 (45 comments)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages - https://news.ycombinator.com/item?id=1327746 - May 2010 (13 comments)
A Brief, Incomplete, and Mostly Wrong History of Programming Languages - https://news.ycombinator.com/item?id=1310127 - May 2010 (1 comment)
A brief, incomplete and mostly wrong history of programming languages - https://news.ycombinator.com/item?id=599164 - May 2009 (14 comments)
2004 - The Google team realizes they're sitting on a pile of user data bigger than the Eiffel tower and starts the development of MapReduce, because finding pictures of cats among a petabyte of data is harder than finding a needle in a haystack.
2005 - David Heinemeier Hansson takes a break from blogging about how much money he has to create Ruby on Rails, a framework designed for developers who want to turn coffee into web apps. A vibrant community of hipsters who can't code in PHP quickly forms around it.
2006 - Guido van Rossum wakes up from a fever dream and decides that Python needs to be harder to write. Thus, Python 3 is born. Many developers remain happily in Python 2, ignoring the encroaching darkness.
2007 - Amazon sees that people are having a hard time storing and retrieving their data, so it introduces Amazon Web Services (AWS) to the world. Developers around the globe rejoice, then promptly get lost in the labyrinthine AWS Management Console.
2009 - Ryan Dahl combines JavaScript, the most misunderstood language, with server development, the most misunderstood part of software development, and creates Node.js. Programmers are finally given the opportunity to write callback hell on the server side.
2010 - Instagram is created by Kevin Systrom and Mike Krieger, offering filters to make your bad photos look vintage. It's quickly discovered that the Valencia filter is the most efficient way to generate envy in your followers.
2011 - After creating C++, Bjarne Stroustrup decides that it isn't complex enough. He proposes C++11, an update that adds enough features to make any sane developer's head spin.
2012 - Facebook, faced with maintaining the world's most visited website, accidentally creates React, a JavaScript framework designed to solve problems no one knew existed. It quickly becomes popular among developers who are tired of enjoying their job.
2013 - John-David Dalton releases Lodash, a library that brings sanity to JavaScript developers by giving them the ability to write code that can actually be understood by humans.
2014 - Apple, tired of Objective-C's quirky syntax and all the fun developers are having with memory management, announces Swift. It's hailed as "Objective-C without the C," though it soon becomes clear that it's also "Objective-C without the fun."
2015 - A group of developers decides JavaScript hasn't been overused enough and creates Electron, a framework for building desktop apps with web technologies. The world rejoices as their RAM is consumed by hundreds of Slack threads.
2016 - Google invents TensorFlow, its AI and machine learning framework. In a surprise twist, nobody understands it. Still, cat identification accuracy skyrockets.
2017 - The Bitcoin bubble inflates to its maximum size. Suddenly, everyone and their grandmother becomes a cryptocurrency expert. Developers use their GPUs for mining rather than gaming, sparking widespread panic in the gaming community.
2018 - The world finally admits that managing state in JavaScript apps is horrifying. Dan Abramov gives us Redux, so we can be horrified about state management in a structured and predictable way.
2019 - TypeScript becomes mainstream, as JavaScript developers realize that sometimes it's nice to know if your function is going to explode before you run it.
2020 - COVID-19 hits, and developers around the world discover they can work from home, leading to a surge of productivity and innovation, until they realize Netflix has all of Friends.
2021 - Rust, a language developed by Mozilla, has its time in the sun as developers scramble to write more efficient and less buggy code. Meanwhile, a group of committed enthusiasts prepares a secret plot to rewrite everything in Rust, including this text.