3 ms·
Not everyone has the same usage case. For general user applications, yeah, performance isn't that big of a deal. That's not the entirety of computing though.
by jstewartmobile 10y ago
Not everyone has the same usage case. For general user applications, yeah, performance isn't that big of a deal. That's not the entirety of computing though.
Some people do things where performance is crucial. This is probably why Intel is moving into the FPGA space and Google is making their own accelerators for machine learning.
- sdegutis 10y agoIn fact, C (with SDL2) seems perfect for writing a retro video game. Memory leaks aren't usually a concern, because most memory is allocated up-front to save time and give very predictable and consistent performance. And most video game logic is very simple to do using simple functions, pointers, and structs, without the need for higher-level constructs like closures and GC which make a lot more sense for a mobile TODO-list app than for a video game. At least that's my experience, but obligatory disclaimer: I've never finished writing a video game (yet!) :D
- nine_k 10y agoAbsolutely. People who write games or audio / video software sometimes even do hand-written assembly fragments. The very high-performance things are a relatively narrow area, and an area where C can easily lose to e.g. Fortran. Also, for ML stuff you likely don't have a huge entrenched C codebase yet. You are freer to choose a more expressive language, and only hand-optimize / rewrite in C a small amount of hot paths.
- shepardrtc 10y agoRegardless of what glue language you use to write ML stuff, if you follow it down to its core, most of it is going to use a BLAS library to do matrix multiplication. That's where the heavy lifting is. And BLAS libraries are in C/C++ or Fortran. For example, OpenBLAS or Intel MKL.
- nine_k 10y agoBLAS Level 1 was released in 1979, thirty seven years ago. There was no other comparable language to implement it in besides Fortran. C was a newcomer at the time, like Rust currently is. The amount of optimization and edge-case handling work that went into BLAS since then is enormous. BTW, Fortran, being mostly aliasing-free, is a safer language than C, and more optimizaton-friendly.
- Gracana 10y agoI thought Fortran's aliasing-free rule was just an assumption of the compiler, not something that it actually enforced.. so you could very easily write code that contained aliasing bugs.
- lgeek 10y ago> For general user applications, yeah, performance isn't that big of a deal. Maybe if you use recent, powerful machines and don't particularly care about energy efficiency. In my experience with less powerful machines, the applications which tend to be noticeably slow are exactly the widely used 'general user applications': of the ones I use, Firefox, Chromium, LibreOffice and Thunderbird.