Nimrod: The Return of Pascal
steved-imaginaryreal.blogspot.sg
steved-imaginaryreal.blogspot.sg
I mean, it's frustrating when a program suddenly fails at runtime. Especially when it can be proved at compile time that values won't (actually, can't) get out of bounds.
Nice project though.
Delphi got me my first paying programming jobs. I remember when later versions came bundled with Delphi 1.0 so you could still build 16-bit applications with it :)
A longer thread about Nimrod: http://news.ycombinator.com/item?id=6272600.
In particular, I don't like the fact the for-loops are often used in first examples. I had that issue when I looked at tutorials for D and Go for the first time. My initial reaction was "Seriously?"
One thing I like about python loops, which CoffeeScript and Ruby, and apparently Nimrod, have adopted as well, is that they make you iterate over a data structure, rather than the C-style of providing start, finish, and step. Iterating over a data structure provides a better guarantee that the loop will terminate without errors (whereas, in Java for example, you could fall off the end of a linked list or an array if you're not careful about your ending test or update step). This ends up being conceptually similar to a map, which is how Ruby's each method works anyway.
for (Foo foo : foos) {
...
}