162 karma · joined November 27, 2011
Complicated dynamical systems usually involve solving PDEs and for that you need to discretize your domain. How you choose to do so will drastically affect the numerical properties of your simulation. Most "real-physics" simulators tend to be specialized to a given task or even a given domain (for example simulating heat diffusion in an engine part). There's a whole literature on finite element methods to simulate various physical phenomena though it can be quite dense.
The generic game physics engines use very simple models of mechanics and allow for numerical issues (e.g. by using finite differences) in exchange for being real-time. If you're looking to simulate more advanced physical phenomena for a game, you're going to have to make similar trade-offs and will have to choose which ones make for the best gameplay.
They frequently list delays when there are none and don't list them when the subway is running very behind. I wonder if it's just hard to get this kind of real-time data from MTA.
SOURCE: I work at HP-Labs writing systems software for the machine.
It powers your OS, your VM instance running your flashy new CRUD app, your network protocols, your game engines, your browser, the interpreter or compiler you use to run your high level languages, and much, much more.
Programs such as these need high performance, low level access to hardware, or the ability to manage resources in a custom way. Languages like C, and C++ are very well suited for this. Sure, I wouldn't write a web-app in C++, but then again, I wouldn't write a javascript jit-compiler in javascript (okay maybe in asm.js for kicks).
Personally, when I see the growth of higher-level languages like these, I don't attribute it to the fall of low-level languages, but instead to the availability of new languages good for certain tasks.
In 2014, we have the luxury of being able to write applications at higher levels of abstraction, and this is a good thing. But tools like C, and C++ are still, and will be widely used by anybody who needs to develop something with requirements such as those I have mentioned. Layers of abstraction need to be built on top of something, and that something needs to work efficiently and quickly.