It was the first library that worked consistently well across the board, provided an easy-to-use CSS-selector based experience to query and manipulate the DOM, and had very solid documentation.
I feel like jQuery is/was a mainstay of the web and although we've seen it lose popularity over the years it's still one of the biggest game changers in my web development tooling.
He also is a key player at Khan Academy* which is one of the best online learning resources to date.
All-in-all I think the guy is an excellent example of an entrepreneurial engineer and I would fanboy so hard if I ever met him.
* Not founder of Khan Academy (doh!)
I've always admired the clarity of thought of Rich Hickey [1], creator of Clojure. I wish I could point to a single article or post that outlines his philosophy, but they're all over the Internet. I used to spend hours in the early 2010s scouring the web for his writings/videos.
What I find admirable about Rich is that he was originally trained as a musician, yet has an impressive theoretical grasp of software concepts and is tempered in his designs by way of a battle-tested pragmatism (stemming from his having written software for real-world systems).
I've never written a single line of Clojure (and it's unlikely I will ever do so), but his thinking process has been an inspiration to me.
[1] https://www.red-gate.com/simple-talk/opinion/geek-of-the-wee...
Writing a full just-in-time compiler for a dynamic language (Lua) [1] that was not only much faster than contemporary browser Javascript engines, but also faster than the Android JVM (at the time) [2].
Also porting that compiler to emit x86, x64, ARM, PPC, MIPS. All as one person.
It was so impressive that I'm actually a little curious what he's been working on now, since he's mostly moved on from the project and has (I'm sure deliberately) little online presence. Maybe some company has some amazing secret project that we'll find out about someday.
Notable: no social media, nothing like that. Just shows up occasionally with something that would take another dev probably a couple years to do.
- He reflects on the experience of programming.
- He identifies and can articulate what's wrong with our tools, conventions, and thinking.
- He builds and advocates abstractions that don't suffer from those problems.
Even if Clojure and Datomic remain obscure, he'll have taught me what I want to be when I grow up.
Kai Krause - Early Photoshop pioneer, designer of Kai's Power Tools, Bryce. I see him as a kind of artist/programmer, who demonstrated that application software development wasn't just about cranking out features, but about creating an experience for the user, a particular window onto this amazing digital world.
Matthew Dillon - Developer of Dragonfly BSD and prominent old-school Amiga hacker. Absolutely solid programmer. Wish he did more interviews.
Rich Hickey - I don't yet have a reason to use Clojure or Datomic, but I watch every Rich Hickey talk or interview I can get my hands on. Hammock Driven Development is the only development ideology that appeals to me :)
He created the Elm language. While other people ported Haskell-like languages to the web (Purescript, GHCJS, Fay, ... ), Evan found a way to tame the complexity of the web with an evolving architecture that start with something like FRP / Rx and ended up with the Elm Architecture, which hits a sweet spot. You can even use T.E.A. without using Elm! Although it's best using a functional language that supports immutability, otherwise there is more work trying to not mutate things.
T.E.A. has been copied to a number of different languages and is manifested inside the Redux pattern. I think time will hopefully tell that his work will have big influence on UI and Web development in the 2020's, whether we are directly using Elm or something based on those ideas.
T.E.A. is:
A global state.
A set of defined messages that can be sent to update the global state.
An update function - given a message, and the global state returns a new global state and any asynchronous "commands" to execute. Commands go off and do something then post a message once done.
A view function - given a global state returns a representation of how to render the UI. This representation includes messages to send on events such as "onclick".
Subscriptions - these produce messages when things happen in the real world, for example local storage state changes.
http://iquilezles.org/www/index.htm
Here's 'Elevated' a four-kilobyte demo he did (along with others):
https://www.youtube.com/watch?v=jB0vBmiTr6o
And here's the writeup:
http://iquilezles.org/www/material/function2009/function2009...
And no, they are simply not '10x' programmers, they're just standing on the shoulders of giants like Ritchie as well as all other programmers are standing on their shoulders too.
It bows me away. That, to me at least is a rockstar programmer.
Him, Jose Valim of the Eixir project and the guy who wrote Asciinema (one of the best examples of a web / systems project written in elixir and phoenix).
Co-Inventor with Sanjay Ghemawat on:
- MapReduce - Spanner - BigTable - Tensorflow
Jeff Dean Facts: https://www.quora.com/What-are-all-the-Jeff-Dean-facts
Icer Addis of Bloodlust Software had a pretty spectacular run in the '90s with at least 3 high quality emulators.
As for current times, Andrew Gallant, (BurntSushi (ripgrep and related software)) writes very high quality code that is very usable.
Though i have not read all their works (nor completely understood their ideas) just the way of exposition and breadth of their thoughts, the insistence on mathematical rigour and formalism etc. always makes me think that i don't yet understand what "programming" is all about. Just slinging code is NOT enough. The idea of programming to a specification using "correctness by design" methodologies (eg. Hoare triples and logic) seems to me to be fundamental to programming. And yet most of us only follow "trial and error" methodology limited by our own lack of knowledge and discipline.
I suppose that one could argue by writing things for other programmers their productivity using your tools can be seen as an extension of yours - that without John Resig many people would have been less productive therefor he derives a little bit of productivity from each person who uses his library. But maybe it is just because these are the programmers you are most likely to be familiar with.
Derek Sivers is a great developer because he shared his experiences learning (at the time Ruby on Rails was brand new). He's doing that same sharing now with a higher level of abstraction, sharing about how to think.
He designed Kernel Programming Language, a very neat lisp that allow to exploit and reason about the semantics powers that lisp has binged over the years (symbolic, continuations, encapsulation …).
I also highly appreciates the articles that he writes in his blog, they gave me “insights” ...
Chris Sawyer. Built a fun, complex game in Assembly that most people can't do with JavaScript.
Barbara Liskov. Lay the foundation for object oriented back when there was nothing to start with.
Tarn Adams. Lots of room for improvement, but incredible, incredible stamina and understanding of mathematics and procedural generation.
He compares the Tesla to the iPhone and his system Comma AI to the Android.
Alexander Stepanov. (I once pointed out to him a bug in the first version of the STL. Me, a nobody that he had never heard of before. He emailed me three generations of bug fixes in the next two hours.)
I know him a little IRL and, although he hasn't done anything that has made him famous, I believe he's in the same league.
They could argue with grace, they could see what was needed and build it.
And even the projects that were built quickly were easy for other people to work on and extend.
Two programmers that are still not fully-appreciated are:
1) Monty Widenius (MySQL, the foundation of both Web 1.0 and 2.0)
2) Antirez (Redis, also the foundation of Web 2.0)