On Average

Apr 21, 2015 23:45

SO mentioned today that the npm packages have low quality standard than NuGet ones. User of a package usually need to specify a version, or one must prepare for unexpected breakage. This is so true that even npm or NuGet itself can upgrade without taking any kind of compatibility measure, a best approach of using NuGet is usually first "nuget --update self", which does not always work. SO also mentioned that a company should not spend too much effort on improving the platform, which unfortunately is becoming harder because all the trending open source projects have fewer commercial support than before.

What happened?

Software is become easier because the number of tools, documents, workers, are exploding. Previously only a few people can define a language, create standard libraries, debate on standards. Now everything has to be fast because so many people are doing it. Make a prototype, make it run on most cases, and then move on because it is obsoleted on the day it is created. It is a great time to have so many alternatives, it is also a bad time that few can get consolidated and perfected.

On the other hand, software is becoming personal. Previously when we use any commercial company backed software, such as CLR, there is not a single name related with it. There must be lots of genius developers and talented teams, but in the end what user will know is the M$ company product. There was no such thing as using a company's product to build a personal brand. I remember many books will introduce authors as "have ever worked on core CLR" or something similar, and that is the best those authors can get. How about now? Anything is backed by a concrete person. When there is a nice npm library, it often does not have its own website, but comes from some GitHub repository belonged to someone, who often created it single-handedly. Software is no longer a mystery. It used to be hard to know who voted for and implemented which feature in a standard library. But now the process is largely open, the commit history is there to read, there are ways to know and reach out to a name, and -- not only look up to those genius that made all kinds of decisions -- but debate and fork and do many more, or simply watch for stupidity/failure of a giant. The software world is so large and there are so many hero to worship, then people stopped to worship heros anymore.

In the age of "thinking in Java" or "thinking in C++", there are handful of authors who can write such books, capitalize all the knowledge before a new standard for better C++ can be made. Nowadays who is going to write such books for each new technology? Even a minor version change can have huge updates in design. No one should wait until a book is published to learn a technology. Read the documents or even source code is faster. That is another level of destruction. One way to look at this is on average the worker's quality is steadly rising. When everyone is thinking in something and get reasonable understanding, such books are no longer catch-all or ultimate sources of information.

Going forward, people will waste fewer time to think, because the high level of education will make learning new technology so easy, also the new technology will be so easy to use. And new things will come out even more quickly, have more personal color (which means user have to tolerate more instability, but enjoy more specialized enhancements.) The competition goes that way. Andrew gives, Bill takes. In the near future we'll see a project referenced not by its pet name, but simply by an author name plus the year/month it is made, and it is perfect for that moment and for nothing else.

fedora

Previous post Next post
Up