freenode/#sicl - IRC Chatlog
Search
5:06:41
no-defun-allowed
Gnuxie 💜🐝 is asleep right now, but I'm sure she'll read the logs in a while.
5:25:25
beach
Gnuxie[m]: You have already received some elements of response from jackdaniel and Shinmera. What they say is true, of course. Let me just see if I can put it in some other perspective.
5:26:23
beach
Gnuxie[m]: First, we must distinguish between companies/organizations of different sizes. Let's simplify and say that there are only "small" and "large" companies.
5:28:52
beach
Small companies can indeed be more efficient and use better techniques. However, being efficient is not a necessity for small companies. Innovation is more important. So they have no particular incentive to be efficient. A small company can not dominate the industry though, because there is a lot of work to be done and a large part of that work requires big organizations.
5:31:02
beach
So my analysis is more relevant to large companies. I don't think it is possible to just decide to start a large company that uses better techniques. I don't think that is possible. Large companies grew out of small ones, with existing customers, expanded product offerings, etc.
5:33:15
beach
So now to the main difficulty. Knowledge of better and more efficient techniques is not widespread. It starts at our universities. Teachers are themselves products of universities. As such, they are also researchers, and they have specialized very early on, at the level of a masters program.
5:39:12
beach
So a typical teacher knows a lot about one domain, like deep learning, facial recognition, game development, parallel computing, fault tolerance, bio informatics, etc. Perhaps they have even followed a specialty called "software engineering", but then it was probably about things like formal program-proof techniques or type theory. In computer science, there will also be specialties like graph theory (disguised as networking
5:41:06
beach
But almost no university teacher has been taught anything about algorithms and data structures beyond what an undergraduate student knows, and almost no teacher knows anything about memory management techniques beyond "best fit" and "first fit".
5:41:24
beach
They know nothing about garbage collection techniques, so they are left guessing that garbage collection must be inefficient.
5:42:09
beach
Nothing about compilation techniques beyond parsing and generating three-address codes.
5:43:42
beach
They know a little about modular programming in the form of traditional class-based object orientation, but only the technology for it. They have no experience in the design and construction of large software systems.
5:47:51
beach
So, to undergraduates, these teachers teach whatever they were taught as undergraduates by their teachers who taught what they were taught, etc. And there is no incentive for continuing education in the general subjects. Therefore, things like taking into account the difference in processor speed and memory access time in the algorithms class is not done.
5:49:31
beach
So the number of graduates having knowledge about efficient techniques, or even the knowledge about how to compare different techniques, is very limited.
5:52:40
beach
Therefore, the possibilities of creating the kind of organization you were wondering about are very slim.
6:37:34
beach
Gnuxie[m]: Now let's take a look at the structure of the software industry. Your hypothetical dominating organization suggests a perfect market (i.e. "perfect" as taught in "macro economics 101"). In such a market, you have lots of interchangeable producers with essentially the same product. A producer capable of better and more efficient methods will have no problem penetrating the market, and other producers who can't produce as
6:39:35
beach
First, the software companies don't all produce the same thing. Most companies are centered around one or a few products that they have for historical reasons. Often the software is coupled with some device that manufacture. So a single organization can not dominate all of the software industry unless it is the size of the combined sizes of existing companies (minus what better efficiency allows in terms of size reduction).
6:40:19
beach
At best, this hypothetical organization could compete with a few existing inefficient companies and drive them out of business.
6:40:49
beach
However, software is interesting in that it has zero production cost. This fact turns the software industry into a "winner takes all" market.
6:44:42
beach
Let's say we have a product that takes on the order of a million annual currency units to produce and maintain. Furthermore, let's say there is an established company that sells 10000 units per year, either new ones or new versions. The total annual cost per unit for producing and maintaining that product is 100 currency units. So if it is sold for more than that, the rest is just profit.
6:46:12
beach
Now, let's imagine wanting to compete with this established company. We think we can do it because we use techniques that make us twice as productive. So we could produce and maintain a similar product for 500k currency units per year.
6:47:39
beach
There is very little incentive for customers to do so, so initially, we will have very few customers, let's say 1000.
6:48:44
beach
Unless we want to go bankrupt, we must charge at least that, i.e. 5 times as much as the established product. Very few customers are going to switch then.
6:49:58
beach
Essentially the only way it can be done is to sell our product cheaper than the established product until we have reached a market share that allows us to recover our cost.
8:55:32
jackdaniel
ACTION is glad that beach agress with him, that universe is unfolding as it should ;-)