📜 ⬆️ ⬇️

I hate almost all software.

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. Mostly translation is quite frank. I hope you will be interested. The release date of the article is October 2011. The release date of NodeJS is May 27, 2009.

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

Over the past year, I think I finally came to understand the ideals of Unix: file descriptors and processes are orchestrated by C. This is a great idea. But this is not what we are dealing with. The 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 over 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 doing, this is my addition of complexity! Users - those who want to see a web page - they don’t care. They don't care how we organize / usr, it doesn't matter how the zombie processes work, it doesn't matter how the addition of commands works in bash, just like zlib is linked to Node statically or dynamically. The moment will come 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 goes to the trash. We can flush boost and glib and autoconf to the toilet and never recall them.

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

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

Source: https://habr.com/ru/post/454214/


All Articles