August 19, 2017

Why I Don’t Like Open Source

open-source-software
I am not sure if I had posted about this before, but it is something I would like to say more than a few times.

As I said before, I don’t intend to be different just for the sake of being different. But it just happens quite so often that people are wrong and being wrong together. I feel strongly that open source is a case of that.

Before getting into the topic of open source, I want to make it clear about my attitude toward a phenomenon going on everywhere (not just in technology), it’s like this: when a few people, mostly from academic area, find something needs to be done in the sociaty, they turn it into action of movement. Once it gets support from the public, usually they do, it is raised to the level of absolute correctness. It will never be wrong, anything or anyone against it would be wrong, and prohibited. The problem with this is: once this happens, people no longer put the subject into reasoning anymore, since it is absolutely correct, there is no questioning anymore.

You see, absolute correctness doesn’t exist in this world, even for Newton’s law of moment and Einstein’s theory of relativity, and it is harmful. It reminds me of dictatorship, anything that’s is against it should not exist. We know environmental issues have raised itself to this level, and many other things, I rather not to say.

The greatest value of the modern civilization is: we don’t passively follow traditional understanding anymore. We think. we research. we verify. That’s why we are where we are now.

So, what does open source has to do with this? Well, open source movement is following the same path. Even though it has not got to the same level, but it is half way there.

What’s even more troubling for open source is: that’s provocation on the wrong cause. I support environmentalists, I just don’t like the way people put it like it is abusolutely right, and anything against is wrong. But at least they are doing it for the a good cause, for open source, the cause is wrong too.

Open Source Is Anti-engineering

The industrial revolution started more than a century ago, it has changed the world tremendously. Almost every aspects of the world is based on the result of the industrial revolution. The center of the industrial revolution is engineering. Open source is anti-engineering. Engineering process consists of trained and properly organized engineers, they follows engineering rules and stardards. And there is a established process to verify and the engineering results. Open source process consists of talented code craft masters. They have superb skills in crafting code but may or may not have the engineering diciplines required for large scale systems. They are loosely organized individules. They take no responsiblities if anything goes wrong. They don’t have established process to verify the correctness and performance of their work results.

The distinctive changes happened during industrial revolution is engineering replaced crafting.

I was fortunate enough to have attended Dr. David Parnas’s Professional Software Development course. The first slide of the course material had only one line:

Software engineers are not engineers.

What this line says is: our current so-called software engineers are coders, not engineers. Dr. Parnas would take a test to become an autorized engineer. Maybe he is the only software engineer who is actually an engineer. A mechnical engineer needs to be certified to be an engineer. Today’s software engineers, on the other hand, need only skill of coding. They don’t even need a degree in computer/electrical science or engineering. However comparing to the open source crafting masters, they are still working in a psudo-engineering environment. They are organized. They take responsibilities for their work. There is quality control that are making efforts to make sure the products work.

The point is: it is the engineering process that makes a product/service great, not the skills of each individules. The time of reliance on individule skills is long gone. We admire some super brains that can memorize PI in 200th digits, but in today’s world, that’s practically useless. Your brain can’t beat a computer’s memory. 200 years ago, a master shoe maker will a lot money out of their crafting skills in shoe making, no longer the case in today’s world.

I know some people from the open source community would argue: many of the open source projects like the ones from Apache, Sendmail, Postfix, OpenLdap, OpenSSL, … ect. are more than good. They have indeeded formed the foundation of the connected world. There is no argument about that. “So, you said open source is anti-engineering rules, why those projects can be so good?” Now let take a look at reasons behind.

There are four major reasons for those projects to be successful.

First, the software industry is still in its infancy. It is far less mature than traditional industies like mechnical engineering, material engineering, or even electrical engineering. Crafting became the only way to write a software at the beginning. Second, write a piece of software is too easy to start with, and so accessible. Delivering a software product is so easy, just post it some where on the Internet. You don’t need the trouble of registering a business, getting a permit, hiring people to do the sales.

However the biggest reason is when those projects started, software system were not as complicated as today. Many features were added over the years. It only took a few master minds to craft a mail server at that time. When software gets bigger, engineering diciplines, standards and processes are required, large scale open source projects are less and less possible. There are still some projects started as commerial efforts, latter released as open source, like Eclipse. Also there are many open source projects are actively worked on by sponsoring companies, but that’s not a validation of open source. Actually, that’s an invalidation of open source as a software development mechnism. No matter how it appears, the open sourcing mechnism is fundamentally flawed.

The Open Source Community Has a Stinky Attitude

People who support open source tend to be experts in something, especially in coding. They are so proud of who they are, to the extend that evolves to a negative attitude.

They are all about open, they hates anything that is not open. There is nothing wrong if you have great work, and you want to share with the public. But you have realize it is also prefectly fine if someone don’t want to share their work. They want to make money out of it. They start companies, they hire people, they run businesses like many people do. Businesses are what we make a living on, including those open source masters.

They admire their skills so much that they want to keep the advantage forever. That’s why they don’t like easy things. They are obessesed with cammand line UI, they hate graphical UI. They love keyboards, they hate mice. They think a graphical user interface is for begginners, the real reason they hate GUI is, those things make their advantage disappear. “Computer belongs to a few elites like us, not some random people”, that’s the hidden text in their minds. They have inner desire to make things complicated. Look at jQuery, the way they code javascript, anonymous functions, the big messy chunk of garbage that they call code.

Programmers should get out of the obessesion of personal skills. The process of coding should be as easy as possible. The four years training in computer science in colledge is not about coding. If all those Bachelors and Masters of computer science graduates all become coders, that’s sad. If I want the skills of laying bricks, I would hire construction workers, not architectual engineers. If you see many self educated coders are doing better jobs than the Masters of Computer Science, or Masters of Software Engineering in software development, that’s sadly true, you know something is wrong.

 

 

  • Ilichnoise Torres

    You are talking about much about persons ,no about opensource.Maybe the software enginners that you know the only thing that they know is coding (You or me as software enginner must know escentially Grammatical Theory,Advanced Maths,Discrete Maths) , Richard Stallman for example he is physicist and have contributed to port the C compiler(GCC) to Unix-like systems including on Mac ,he is the founder of free software foundation,he is so radically about open source because he supports free software ,a lot of people are confused with these two terms http://www.gnu.org/philosophy/free-software-for-freedom.html.Well In my point of view open source is a kind of methodology for developing ,you can do awsome stuff with a lot of observers.Thats why microsoft and apple are realising some code with open source licenses.Open source its winning the battle.You as developer have the rigth to do do private software ,but if you want that your project grows with a low cost $$ you can decide for Open software or free software.I rember you that Android and part of Mac OS is open software.