Rough Overview of Programming Languages

Java is mainly large enterprise back end systems, and some android, and quite a lot of embedded stuff (nominally what it was invented for), and, worryingly, quite a lot of client side GUI stuff.
C++ is used for legacy systems and where you need speed.

C is used where you need speed, have simple programs and memory constraints, and old fashioned unix software.

C# is for windows programming and .net

Javascript is for browser programming and Node, and some general scripting, where someone has used it as their system’s internal scripting language (see also lua)

PHP is used for relatively simple web stuff, because it’s easy and works and has wide library support

Python is used for what PHP is by better developers, and has brilliant maths libraries so is increasingly used for anything maths related where esoteric things like matlab and R and F# are unhelpfully niche.

Haskell is used for academic curiosity, and some maths stuff.

Perl is dying out, but is still used for unix automation a fair bit.



Regarding “Art and Chaos”

Adi Da wrote an essay called “Art and Chaos“. Here is a sentence that I really like:

The conceptual aspect of all art is the mental animation of the intrinsic self-apprehension of order.

Art is making sense out of chaos.


Basic Web Development

Tai Chi
Learning to code can be like learning Tai Chi.

Q: Web development—with the wide range of backend and frontend languages, frameworks, and all of the tools and dependencies developers deal with on a day-to-day basis building apps and sites—is inherently complex. What advice do you give folks who are just starting out in web development?

 1) When someone is getting started in web development, I usually focus on three things. First, you have to learn your foundations. Get good at HTML, responsive CSS3, and vanilla JavaScript. This will be of use to you no matter where you’re working.

2) Second, pick something and get good at it. Pick a single frontend framework and a single backend framework and get to know them well. Try a variety of projects in them; find the places they annoy you; get to know the communities; dig in deep; give back.

–by Matt Stauffer


Update on the Google Library Project

Sad update on the problems of trying to scan all the books in the world, and make them available.


The Smartphone is “Digitizing” More and More of the World

Quotes from a talk by Twilio CEO Jeff Lawson: A Lesson From Amazon’s Bezos:

I remember one of these all-hands meetings, somebody asked a question, and I don’t even remember what the question was,” said Lawson. “But I remember what Jeff’s response was. Jeff said, ‘We are a software company, just as much as that other company down in Redmond,’” a reference to Microsoft (MSFT).

What a great definition of what it is to be a software person: people who solve business problems with magnetic particles; not just developers, but people throughout a company who are able to see business problems who are trying to solve them through this lens. Software people fundamentally believe any problem can be solved once you pull that problem into the realm of software.”

And, “It’s a great time to be a software developer,” said Lawson. That’s because the smartphone is “digitizing” more and more of the world, bringing into into the domain of software.