3 ms·
1. Dart is less liberal than JS. For example, it is early bound. This fact alone allows the IDEs to do a much better job with less complexity. As I mentioned,
by cromwellian 14y ago
1. Dart is less liberal than JS. For example, it is early bound. This fact alone allows the IDEs to do a much better job with less complexity.
As I mentioned, Carmack and Sweeney make engines, the artist interface is UnrealScript, or Lua, etc. But that's besides the point: performance matters. Carmack isn't trying to build yet another Box2D casual game (the Iphone Angry Birds uses a C implementation of Box2D, and Lua for game logic)
For someone like John Carmack, they are trying to push the state of the art, and starting off implementing say, idTech 7 in Python would yield unrealistic data if you're trying to see how feasible a given new rendering technique works on the large scale.
C is a typed language, there's no getting around it. It is in fact, a manifestly typed language, the types aren't optional. The fact that you can freely cast your way out of any situation doesn't really make it a dynamic language, anymore than Java reflection or bytecode rewriting makes Java a dynamic language.
The basic fact remains, the Mars rover is a highly performance critical piece of software with hard real time requirements, and it's simply not going to be written in a language that doesn't allow precise control over numeric types and memory allocation behavior. It's really those guarantees that many people associate with strongly typed systems programming languages, not the compile time checking.
Game programmers are very liberal, they want to escape straight jackets, and get deterministic and low level control over everything, often breaking the rules of the system. And in this regard, dynamic languages often taken away some freedom -- the freedom to control memory, stack, and cache behavior. They are conservative in a way.
- ajanuary 14y ago"C is a typed language, there's no getting around it. It is in fact, a manifestly typed language, the types aren't optional. The fact that you can freely cast your way out of any situation doesn't really make it a dynamic language, anymore than Java reflection or bytecode rewriting makes Java a dynamic language." C is statically and weakly typed language. That doesn't make it dynamic in the same sense as python or ruby, but it does make it a heck of a lot less safe, a heck of a lot more flexible, and thus a lot more liberal.