5 ms·
Sean misses the irony that he would have given up on writing a lot of software if he tried to do it in Ada rather than C. I think C is an excellent and useful
by microcolonel 10y ago
Sean misses the irony that he would have given up on writing a lot of software if he tried to do it in Ada rather than C.
I think C is an excellent and useful language which doesn't attempt to change the way you program. While one can argue that one shouldn't be able to compile mistakes; the cost of avoiding mistakes often exceeds the cost of amending them. A sort of personal “It's easier to ask for forgiveness than for permission” situation.
I often ponder whether the time I spend debugging C programs is worth it. Each time I conclude that I wouldn't have bothered to write it without C.
- PeCaN 10y agoIt depends what you're writing. I wrote an incremental generational garbage collector in C, and rather regretted the time I spent debugging it. If I wanted it to be at all concurrent, I think I would've given up doing it in C. Right tool for the right job and all that. But lately I've strongly been preferring Rust, Ada, and ATS for anything I'd use C for.
- microcolonel 10y agoFair enough, I do like ATS as well; but there are a lot of programs which are just too frustrating to write at all without being paid a lot of money for a decade.
- pjmlp 10y agoSomehow I managed to write lots of software between 1986 and 1993, the year I used C for the first time with Turbo C 2.0 for MS-DOS. Turbo Basic, Turbo Pascal, Modula-2 did the job just fine.
- microcolonel 10y agoNo disagreement here. :-) Turbo Pascal, Turbo BASIC, and Modula-2 don't have any of the ugly formality of Ada though. I'm not making the point that C and C alone is the only language less frustrating than Ada. I'm saying that for many systems, the comfort and simplicity of C allow you to solve problems which would be too frustrating to solve in Ada. I find Modula-2 pretty dreamy; it's a shame that it's mostly dead.
- Animats 10y agoI used to use Modula 2 for embedded work on small CPUs. It's hard to get programs to compile, but then they usually work. This is important when your target doesn't have much debug capability.