What programming languages and cars have in common:
🧐 Everyone uses them but few are enthusiasts
✨ Engineering meets design

For a timeline cleanse, here's a thread of programming languages as cars.

First up: Python as the Honda Civic. Practical; ubiquitous; not the fastest.
Go: the Mazda 3 of programming languages. Decently well designed, surprisingly good 0-to-60, and gets you where you need to go.
Rust: the Tesla Model 3. High cost to adoption, but more affordable than some other things. Very safe. Status symbol among tech people.
Haskell is the Maserati of programming languages. Major status symbol. Looks pretty. Experts will debate bang for your buck. Often featured in popular culture.
Javascript is the Ford Focus. Accessible; used everywhere; gets a lot of complaints but is surprisingly reasonable for its price point.
Idris is the Karma Revero. Cutting edge of engineering and design. Turns heads wherever it goes. Too obscure to be properly a status symbol.
Java: the Toyota Camry of programming languages. Decently accessible; gets the job down; not particularly sexy.
Scala: a modded Toyota Supra. Looks very fast and slick but, at the end of the day, has a Toyota/Java chassis.
C is the Mustang Shelby GT350. Extremely powerful but you'll need racing lessons to keep that much horsepower under control.
Coq is the Lotus Elise of programming languages. You can do a lot with it if you know what you're doing. It's also not seen in action all that much, so when you see one on the road you take pictures.
PHP: the Ford Bronco of programming languages. Easy to drive. Some people thought it would have gone away in the 90s, but it's been staging a comeback. Today, people like it because of all the options it provides.
OCaml is the Porsche 911. Not the lowest-cost to adopt, but impeccably engineered and surprisingly practical. Favored by bankers around the world.
Julia: the Alfa Romeo Giulia Quadrifoglio. Powerful, precise, and fun to drive. A beautiful machine.
Ruby is the Mazda Miata. Fun and easy to drive. Looks a lot faster than it actually is. Fans are obsessed with it.

β€’ β€’ β€’

Missing some Tweet in this thread? You can try to force a refresh
γ€€

Keep Current with Jean Yang

Jean Yang Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @jeanqasaur

18 Oct 20
When I was and undergrad and junior grad student, I regularly burned myself out on deadlines. I actually work WAY harder now. And I'm able to do it because I learned to manage my energy better. Here are some lessons I learned.

Thread. πŸ‘‡
The most important thing I learned was to recognize if I'm not working productively on something and step away. To make a sports analogy, pushing through fatigue is how you get better but you shouldn't push through injury. Taking a break early can give you a lot more time back.
Another lesson was to take recovery seriously. Previously, this meant sitting in a catatonic state after I had overworked myself. I now have processes for winding myself down daily, weekly, monthly, and annually. They include meditation, yoga, writing, and doing non-work things.
Read 6 tweets
11 Aug 20
Taylor Swift as important papers in programming languages, a thread.

"An Axiomatic Basis for Computer Programming," C.A.R. Hoare, 1969. Introduced Hoare Logic for proving program properties.

cs.cmu.edu/~crary/819-f09…
"Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints," Cousot & Cousot, 1977. Introduced abstract interpretation for statically analyzing program properties. Now used by Airbus.

di.ens.fr/~cousot/COUSOT…
"Design and synthesis of synchronization skeletons using branching time temporal logic," Clarke & Emerson, 1981. The first paper on model checking for program correctness. Led to the 2007 Turing Award.

cs.cmu.edu/~emc/papers/In…
Read 10 tweets
5 Aug 20
Ok I couldn't resist. Taylor Swift as classic programming textbooks, a thread.
Read 9 tweets
4 May 20
Programming constructs as cats, at thread. 🐱

GOTO
Tail recursion
Strong static typing
Read 6 tweets
27 Apr 20
Just had an good conversation with @panmanphil about data flows:
🧐 Why enforcing privacy/access policies in software is hard
😫 Why static and dynamic analysis aren't the solutions of people's dreams
πŸ›£οΈ Why data visibility/data mapping is The Way

THREAD πŸ‘‡
@panmanphil 🧐 Enforcing security/privacy policies on data flows is not as simple as checking a rule as data leaves the database. *Which* rule you check for *what* data matters and is hard to keep track of. Either devs need to track this or software needs to track this. It's hard for devs.
@panmanphil 😫 Automatic policy enforcement requires automatic data tracking. Tracking data at runtime comes with unappealing performance overheads. Tracking it statically, before you run, gives you way too many false positives. Anything short of this leaves major gaps.
Read 7 tweets
25 Apr 19
Taylor Swift as iconic computers, a thread
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!