I hate almost all software

Original author: Ryan Dahl
  • Transfer
Note translator:

Recently, NodeJS creator Rain Dahl opened the HolyJS conference in St. Petersburg. And I remembered that I had an unpublished translation from his blog and decided to publish it. In some places, the translation is quite frank. I hope you will be interested. The release date for this article is October 2011. The release date for NodeJS is May 27, 2009.

It is unnecessary and complicated on almost every layer. The best I can do is congratulate someone for the quick and easy solution to the problem, given the shit that they supply. The only software that I love is that I can easily understand, and it solves my problems. The amount of difficulty that I agree to endure is proportional to the size of the problem that needs to be solved.

Over the past year, I think I have finally come to understand Unix ideals: file descriptors and processes are orchestrated using C. This is a great idea. But this is not what we are dealing with. Complexity was not implied. On the contrary, I have to deal with DBus, / usr / lib, Boost, ioctls, SMF, signals, volatile variables, prototype inheritance, _C99_FEATURES_, dpkg and autoconf.

Those of us who write software on top of these systems add complexity. Now you need to know not only $ LD_LIBRARY_PATH to make the system work, but also $ NODE_PATH - know, this is my business, this is my added complexity! Users - those who want to see a web page - they don’t care at all. They don’t care how we organize / usr, they don’t care how zombie processes work, anyway the addition of commands in bash works, no matter how zlib is linked statically or dynamically to Node. There will come a time when the accumulated complexity of our existing systems will be greater than the complexity of creating a new one. When this moment comes all this shit will go to the trash. We can flush boost and glib and autoconf to the toilet and never think of them.

Those of you who still enjoy learning the details of, say, a programming language — for example, those who are happy to know how to say whether NaN is null or not — you don’t even understand how fucking it is. If you think it would be nice to align all the equal characters in your code, if you spend time setting up your window manager or editor, if you insert unicode check marks in the test runner, if you add unnecessary hierarchies in your code folders, if you do at least something other than solving the problem - you don’t understand how dull it is. No one cares about the glib object model.

One thing that matters in software development is how the user feels (experience of the user).

Also popular now: