Gerald Jay Sussman
(author of SICP
) about Why MIT switched from Scheme to Python
in their introductionary computer science course:
In 1980, good programmers spent a lot of time thinking, and then produced spare code that they thought should work. [...] But programming today isn't like that. Nowadays you muck around with incomprehensible or nonexistent man pages for software you don’t know who wrote. You have to do basic science on your libraries to see how they work, trying out different inputs and seeing how the code reacts. This is a fundamentally different job...
Software (and hardware as well) today is a low-cost business. You usually have time and money limits that you cannot exceed.
This has the good consequence
that today computers are cheap. When I was a school boy in the early 1970s I still had to learn math using a slide rule
and table books
because even simple pocket calculators
were too expensive. Computers at that time were multi-million dollar machines that only were used at the NASA
and similar organisations, because normal people did not have the money to pay such machines.
This has the bad consequence
that today computers (hardware and software) must be
cheap, otherwise only a very small group of people will buy them. If you have deveolpment costs of say one million dollars (arbitrary amount) and you sell one million pieces, then the development costs are one dollar per piece, what is cheap. If you sell only thousand pieces, then the development costs suddenly are thousand dollars per piece, what is rather expensive. This is the main reason why the price of high-quality but low-quantity products is excessively higher than the price of low-quality but high-quantity mass products. In reality the development costs of both are not much different, it's mainly the estimated number of sellable pieces that makes the price difference per piece. The customer in the store of course only sees the price difference without knowing how it came to be, and then usually chooses the cheaper product.
This has the sad consequence
that quality is (and ever was) an elitist business. The mass market consumers are either satisfied with low-level quality or they just simply do not have the money to buy high-quality products. But under the laws of economics it's not possible to produce low-cost high-quality products, because there are not enough buyers to keep the costs per piece low. Sometimes economics can have silly consequences.
If you're looking for a quality job you must look really hard and often go through a series of minor-quality jobs to find what you're looking for. I've never found a good job on the first try. Hopefully you're more lucky than me.
The increasing numer of web-based software has a different reason. Since the first appearance of home computers and digital CD-players in the early 1980s it's clearly forseeable that radio, television, telephone, and everything that has to do with audio, video, text and data transmission will end up in one single machine. This happened first via the internet and desktop PCs, and now the internet has entered the mobile phones. This has to the consequence that today GUIs must be capable to run not only on the screens of desktop PCs but also in web browsers and on the small screens of mobile phones, otherwise a GUI will have no chance on the future market, where the transmission network itself will be the main future technology, not a specific hardware platform. That's why many software companies meanwhile shy away from investing money in hardware-specific software development.
I don't really like the "new" web look of many GUIs either. At home I'm still using FVWM
, one of the oldest window managers still alive. But in real life it's the mass market that dictates the business, not the developer or the repair-man. Only at home you're free to use whatever you want.
At least this is my experience of the last 30 years in the electronics business.
RFT = radio/television broadcast technician = analog and digital audio/video hardware electrician