@acbaile If you used SML, it would be even funnier, because the keyword there is just
fun I agree about the keywords. Another point is that even though they might seem redundant, they make it easier to read for humans as well. The moment you see the keyword, you immediately know what you are dealing with, as opposed to having to read the whole line (or more). The difference is tiny, but it is still there, I'd say.
On the topic of variable keyword, I'd say it depends on the language. In languages Rust, SML, OCaml and Reason, that have some form of type inference, the
let or
val keywords work pretty well. The line is shorter, clearer and tells us what we need, with optional explicit type specification being just
: Type away.
However, so long as C2 doesn't have variable type inference (or any inference for that matter) I think that not having a
var keyword is a much better idea. I remember from the days of yore, when I still used AS3, that declarations like this felt pretty cluttered (taken from graphicscorelib):
internal var _spriteSheet : GPUSpriteSheet;
internal var _vertexData : Vector.<Number>;
internal var _indexData : Vector.<uint>;
internal var _uvData : Vector.<Number>;
protected var _context3D : Context3D;
protected var _parent : GPUSpriteRenderStage;
protected var _children : Vector.<GPUSprite>;
protected var _indexBuffer : IndexBuffer3D;
protected var _vertexBuffer : VertexBuffer3D;
protected var _uvBuffer : VertexBuffer3D;
protected var _shaderProgram : Program3D;
protected var _updateVBOs : Boolean;
If we were able to see type earlier, I feel like it would have been cleaner.