Whenever I write about the overwhelming behind-the-scenes complexity of modern systems, and the developer frustration that comes with it, I get mail from computer science students asking “Am I studying the right field? Should I switch to something else?”
It seems somewhere between daunting and impossible to build anything with modern technology if it’s that much of a mess. But despite endless claims by knowledgeable insiders as to the extraordinary difficulty and deeply flawed nature of software development, there’s no end impressive achievements at are at odds with that pessimism.
How could anyone manage to build an operating system out of over ten million lines of error prone C and C++? Yet I can cite three easy examples: Windows, OS X, and Linux.
How could anyone craft an extravagant 3D video game with pointers and manual memory management woven throughout a program that has triple the number of lines as the one in the space shuttle’s main computer? Yet dozens of such games are shipped each year.
How could anyone write an executable specification of a superscalar, quad-core CPU with 730,000,000 transistors? One that includes support for oddball instructions that almost made sense in the 1970s, multiple floating point systems (stack-based and vector-based), and in addition to 32-bit and 64-bit environments also includes a full 16-bit programming model that hasn’t been useful since the mid 1990s? Yet the Intel i7 powers millions of laptops and desktops.
If you wallow in the supposed failure of software engineering, then you can convince yourself that none of these examples should actually exist. While there’s much to be said for smallness and simpleness, it’s clearly not a requirement when it comes to changing the world. And perhaps there’s comfort in knowing that if those crazy people working on their overwhelmingly massive systems are getting them to work, then life is surely much easier for basement experimenters looking to change the world in smaller ways.
(If you liked this, you might enjoy Building Beautiful Apps from Ugly Code.)
Categories: Blogs Programming in the 21st Century
Erlang on Twitter
» IiansArdians (iian sparkled™ ): @gojekGentho Kenopo yo sebagian cah wedok nek foto karo nyekeli dodo? *spaneng
@Erlang_Bolank7 @harri_tm @monztersuck @monomalvano
@gojekGentho Kenopo yo sebagian cah wedok nek foto karo nyekeli dodo? *spaneng
» clofresh (Carlo Cabanilla): Fascinating description of how Erlang scheduling works http://t.co/bc20GVnApr
Fascinating description of how Erlang scheduling works http://t.co/bc20GVnApr
» Muh_Erlang (M. Erlangga Pangestu): @Etha_Yummy @brendagracee yakin kalian jam 4?? Bleknyo pcak mlem nian kamu. Plaju glak macet lwat jam segitu
@Etha_Yummy @brendagracee yakin kalian jam 4?? Bleknyo pcak mlem nian kamu. Plaju glak macet lwat jam segitu
» brendagracee (Brenda Grace): @Muh_Erlang @Etha_Yummy wkwkwk men slh satu dk pck dpp la apo ? men undur2 lg gek dk slesai x_x
@Muh_Erlang @Etha_Yummy wkwkwk men slh satu dk pck dpp la apo ? men undur2 lg gek dk slesai x_x
» Muh_Erlang (M. Erlangga Pangestu): @Etha_Yummy @brendagracee tanyolh alvin sm martin bsonyo jam brp mrka
@Etha_Yummy @brendagracee tanyolh alvin sm martin bsonyo jam brp mrka
» brendagracee (Brenda Grace): @Etha_Yummy @Muh_Erlang jam 4 aku gereja wkwk
@Etha_Yummy @Muh_Erlang jam 4 aku gereja wkwk
» brendagracee (Brenda Grace): @Etha_Yummy @Muh_Erlang jam brp dl ? kwkw
@Etha_Yummy @Muh_Erlang jam brp dl ? kwkw
Number of aggregated posts: 10650
Most recent article: May 20, 2013
» Moraru on This is Why You Spent All that Time Learning to Program: It is true that computer science was a pain in the back at time that i’ve had to learn it…
» Commercial hand dryers on Couchbase Meetup at new HQ: Buy online from here where you will get so much of variety in Commercial hand dryers for people. If you…
» Fort McMurray Homes on Motivated Reasoning and Erlang vs Python vs Node: I don’t really understand why this post is motivational? I don’t even see a post, just a title. Fort McMurray…