I ask myself the same question all of the time. Lots of programmer time is being dumped into backfilling a language like C that doesn't exactly help much with string management, memory management etc.
There are a TON of people that haven't bothered to learn about other languages, including C++.
The other issue I see (from embedded software development) is that some companies are using some really constrained systems that can't support virtual machines or interpreted languages.
Posted Jun 30, 2012 8:56 UTC (Sat) by khim (subscriber, #9252)
[Link]
I ask myself the same question all of the time. Lots of programmer time is being dumped into backfilling a language like C that doesn't exactly help much with string management, memory management etc.
Joel answers it best, as usual: I am actually physically disgusted that so many computer science programs think that Java is a good introductory language, because it's "easy" and you don't get confused with all that boring string/malloc stuff but you can learn cool OOP stuff which will make your big programs ever so modular. This is a pedagogical disaster waiting to happen. Generations of graduates are descending on us and creating Shlemiel The Painter algorithms right and left and they don't even realize it, since they fundamentally have no idea that strings are, at a very deep level, difficult, even if you can't quite see that in your perl script.
There are a TON of people that haven't bothered to learn about other languages, including C++.
That's separate issue. People often forget that efficiency or the program in not the target function. Target function is "efficiency of programmers PLUS efficiency of user of said program". If there are millions of users then C makes perfect sense, but when there are only dozens of users (e.g. when said users are programmers involved in the same project) then efficiency of programmer becomes more important and there are plethora or languages which try to improve it (at the expense of resulting program efficiency and thus efficiency of user).
The other issue I see (from embedded software development) is that some companies are using some really constrained systems that can't support virtual machines or interpreted languages.
This, again, shows the same basic misunderstanding. It may be cheaper to buy dozen of high-end appliances and save on programming time. But if you want to produce millions of them then additional month spending on C programming can easily save millions of dollars in the end.