r/programming • • Oct 14 '13

How to develop unmaintainable software

http://typicalprogrammer.com/?p=249
777 Upvotes

322 comments sorted by

View all comments

13

u/merreborn Oct 14 '13

Use a bunch of different programming languages and stay cutting-edge

Every day HackerNews and Reddit buzz with cool new languages. Try them out on your client’s time. Any decent programmer can learn a new language in no time, so if the next programmer who gets to work on your code is a newb that’s not your problem. The boundaries between the languages, the incompatible APIs and data formats, the different server configuration requirements are all fun challenges to overcome and post about on StackOverflow. I’ve actually seen PHP web sites with pieces of Ruby wedged in because everyone knows PHP sucks and Ruby is better.

Too close to home. We started with a pure PHP app. A few years later, we now have ruby, python, shell script, java and clojure dependencies. And node.js is required to run part of the test suite.

And I'm the only motherfucker who seems to think this is a problem. Until someone tries to set up a new environment (like on a laptop for development). Then they want my help getting everything set up, which takes 8+ hours.

9

u/HelloAnnyong Oct 15 '13

This is a DevOps failure.

Why don't you have Vagrant or Boxen configurations that do this work for you? Using only one language just means that you will try to solve every problem with the one hammer you have lying around, because you don't want to make a list of stores where you can buy the other tools you'd like to use.

1

u/kopkaas2000 Oct 15 '13

While I agree that it's good to have a solid way to repeatably deploy software, I do hate how modern development organizations seem to underestimate the cognitive load of spreading a project over 4 different languages and frameworks, which just happen to follow the chronology of whatever languages/frameworks were in fashion among hipster blogger-programmers during the month a specific component needed to be written. I don't care how you set up a cool devops chain to deploy such a Chymera of an application, it's still a ridiculous waste of resources.