On Thu, Aug 9, 2012 at 10:50 AM, Hendrik Boom <[email protected]> wrote: [...] > It survives because of inertia. It's the systems language most people > use, so most systems programs are written in it, and so most programmers > have to learn it, because a lot of programming deals with changes to > existing software, not writing new. Because most programmers know it, > most new programs get written in it.
Can you explain why you think C is obsolete? What issues makes it so? Please provide examples, alternatives, solutions. IMHO, no amount of convenience of programming (e.g. easy to code in, or easy to learn), or nice features like garbage collection and whatnot amount for the flexibility and power that C provides. Yes, it's complicated, yes, it's definitely not always the right choice for just any project, and yes, you have more than enough rope to shoot yourself in the foot with when you use C... ;) But it remains that all languages have different purposes, different strengths and weaknesses. Cobol is clearly an obsolete language that is still sticking around due to inertia -- most people aren't writing new things in it, but are forced to maintain existing complex systems because of the cost of rewriting from scratch. C however, *is* being used for new projects. It's being taught in schools (though definitely not everywhere), and is a clear choice, at least to be considered, when building complex systems. It's not only used for new projects because most programmers know it -- but because it really works. I've seen a definite shift in schools from teaching C to teaching other programming languages, at least in CEGEPs. I have yet to see other languages that provide the level of reliability and speed of execution of well-written C. I have also yet to see any language (other than C++) that makes it as easy to leak memory and make hard to debug, painful mistakes as C. Don't get me wrong -- I'd just as well use Python for most things I'd write, and I wouldn't hesitate to use Java or god-forbid, ocaml should it clearly be the right tool for the job; but I totally disagree that C is obsolete, and you haven't brought evidence to support your position. [...] > Modula 3's specific handicap is that it's distributed under a > free-sofware licence that happens to be incompatible with the GPL and > after a series of corporate takeovers, the entity that now owns the > copyright no longer has any interest in it, so it's impossible to get > the licence changed. And it's not popular enough to make it worth-while > to write a new implementation. I had never heard of Modula. But again, there are so many different languages out there, it's impossible to know them all. Why has it not gained in popularity? It's highly likely that there are very good reasons for that. Maybe it's just really good at one specific thing, and its use can't be generalized to just about any problem? The licensing is a definite issue. There are so many "free" languages to choose from, all of them particularly well designed and that have proven their efficiency and reliability, that there is no reason to choose a "private" implementation for anything. If only just the fact that then, the pool of people that have designed and have seen the internals is so small, you're absolutely in your right to question whether it's really going to do the job right in the long run, or if it's just a matter of time before it explodes. > But you're right. No one is about to rewrite the Linux kernel in > another language. It's too much work. I don't think the amount of work required is the real blocker in open source projects. People have tried re-implementing X. Everyone knows just how complex X is and how much work it would be to rewrite it from scratch. It hasn't stopped various re-implementations to spring up, like Wayland. / Matt _______________________________________________ mlug mailing list [email protected] https://listes.koumbit.net/cgi-bin/mailman/listinfo/mlug-listserv.mlug.ca
