5 ms·
Pick the right tool for each job. C is fantastic for small and very optimized components. If you want it portable, from microcontrolers to GPUs, it is the best
by diego_moita 7y ago
Pick the right tool for each job.
C is fantastic for small and very optimized components. If you want it portable, from microcontrolers to GPUs, it is the best choice too.
But if you need rapid prototyping, large scale projects within an organization or some libraries and tools to make the perfect, animated, templated and themed user interface you should think twice before choosing C. Java and .Net are freaking good at database integration and memory allocation/dealocation. Erlang is fantastic for multitasking and multithreading. Ruby on Rails or Python on Django are much better to prototype a website nannying a database.
You already know the saying "if your only tool is an hammer..."
- Delmania 7y agoCame to make a similar point. There's lot of love for C and belief it's some superior language to modern ones. The reality is that C hasn't aged well as hardware has evolved. It's not that good as parallel programming, which is more prevalent considering most CPUs are multi-core. The ACM did a great write-up on this, https://queue.acm.org/detail.cfm?id=3212479 https://queue.acm.org/detail.cfm?id=3212479 The bottom line is to echo your first statement, C is a tool, good for some tasks, not so good for others. Choose accordingly.
- Koshkin 7y agoThat's one of the good points about using C today. Unlike, say, Fortran (or any other language with a high-level semantics) C may be hard for a compiler to optimize for a modern CPU.