I’ve been noticing that stuff that I could have built in three days by myself (SQL data model, HTML templates, some scripts to bridge the two) now takes a team of multiple programmers weeks or months. The result is far prettier than the clunky rendered-by-Mosaic-or-Netscape sites of the 1990s but the function is about the same.
“The Sad State of Web Development” by Drew Hamlett is a fun read (I learned about it from Dave Winer’s comment on the article). It seems that the same forces that led the world of computer nerdism down the J2EE path in the 1990s are still at work:
The web (specifically the Javascript/Node community) has created some of the most complicated, convoluted, over engineered tools ever conceived.
At times, I think where web development is at this point is some cruel joke played on us by Ryan Dahl. You see, to get into why web development is so terrible, you have to start at Node.
You see the Node.js philosophy is to take the worst fucking language ever designed and put it on the server. Combine that with all the magpies that were using Ruby at the time, and you have the perfect fucking storm. Lets take everything that was great in Ruby and re write it in Javascript, I think was the official motto.
Most of the smart magpies have moved on to Go at this point, but the people who have stayed in the Node community have undoubtedly created the most over engineered eco system that has ever appeared. No one can create a library that does anything. Every project that creeps up is even more ambitious than the next. It all starts with a core module and 400 plugins for this module. No one will build something that actually does anything. I just don’t understand. The only thing I can think, is people are just constantly re writing Node.js apps over and over.
React: Facebook couldn’t create a notification indicator on Facebook.com, so they create this over engineered dump pile to solve that problem. Now they can tell you how many unread posts you have while downloading 15 terabytes of Javascript.
How does rewriting your interface in the latest framework get you to the next customer? Or the next 50 customers. Does it actually make your customers happier?
A [single-page application] will lock you into a framework that has the shelf life of a hamster dump. When you think you need a SPA, just stop thinking. Just don’t. Your users just don’t fucking care.
The code examples in my 1990s book on web development still run! So does the open-source software that we distributed starting in the mid-1990s. This code doesn’t respond differently to a request from a tablet or a mobile phone, but the browser software on those devices is smart enough to make all of the pages usable. I wouldn’t advise a developer building something new today to use Perl scripts linked to the Oracle C library as I did in 1994 for the Boston Children’s Hospital web-based electronic medical record system (see JAMIA paper that I co-authored unknowingly). But on the other hand I haven’t seen any new development tools that are obviously more productive.
Readers: Are tools for building straightforward web-database applications getting worse or better?
Separately, a youngish programmer friend was telling me that he thinks discriminating against older programmers is rational because programmers usually learn about new tools during evenings or while doing uncompensated side projects. He thinks that older programmers, e.g., due to family responsibilities or reduced energy levels, are less likely to build stuff without being paid and thus employers assume that they won’t know about Node.js and the other frameworks mentioned above.
Full post, including comments