|Some reflections about nimrod 2012-05-25 20:14:38|
I'd like to share some of my thoughts about nimrod programming language. I have been hacking with c/c++ for the last 15-20 years or so (and basic+6502 assembler before that), both professionally and for hobby. I need not to tell anyone in this forum that c++ causes brain damage, but it has been the only option for larger projects with rigorous performance demands (i'm in the CAD/CAM industry).
The last 4-5 years i have been working a lot with c# as well, and I have to say, although a polished surface and a huge standard library, it has many problems: Huge memory footprint, slow startup times and a totally bloated and huge framework. Theoretically the c#+clr is cross platform. But only theoretically.
The last few years many programming languages have popped up like mushroms, and I have investigated virtually every one of them. Not many matches what I want, which includes:
The D language from digital mars is close to thoose specifications. The problem with D is that it overcomplicates things since it tries to do everything c++ does. I really like D but i think its totally overkill for real world applications. And I say this of long experience: Keep it simple. By the way, nimrod through gcc outperforms digital mars dmd compiler a whole lot when talking performance.
To conclude it all, I think Nimrod has a bright future and would like to share what I think is needed for it to succeed (that is more important than a good name (o: )
Because I like Nimrod a lot I will do what I can to help. Happy coding out there!
|Re: Some reflections about nimrod 2012-05-26 00:28:59|
Thank you for the kind words!
An IDE is in the works and the compiler is growing features to support auto-completion, etc.
It is planned to have this as Nimrod's standard UI library. Small examples already work but I'm working on closures first so that the library can get a reasonable callback structure. If you want to help feel free to take over Claro and port it gradually over to Nimrod.
|Re: Some reflections about nimrod 2012-05-26 07:57:06|
ventor3000: "I found nimrod through a random google search"
I found it through a random post on the D language forums. One note on your benchmarking: There are GCC and LLVM backends for D as well. Especially for floating point, GCC optimizes a lot better than DMD. Generally, it is preferred to use the same compiler backend when doing benchmarks. DMD on the other hand is a very fast compiler, which makes it an ideal choice during development.
Good tools and GUI library support (Delphi is all in one) is of course a problem that any language faces. The most advanced IDEs I know are VisualStudio and Eclipse, both funded by major IT companies. Similarly I think that Qt (Trolltech/Nokia) is well designed with typical use cases in mind. Funding and man power will accelerate the development of any new language. But a company will be more likely to support a language's development when it proves stable and practical for daily use + they see an area of development that would make it the 'perfect' productivity/security/performance enhancement.
I find it difficult to settle for the right mix of maturity and features to attract more developers from other fields. While D's scope guards and array slices are universally useful, transitive const/immutability helps multi-threaded design or optimization, but annoys OO programmers coming from C++ every now and then, that are used to subverting const for caching, lazy initialization or just plain hacks .
That said, Pascal and Java are probably amongst the cleanest languages because they didn't try to support every paradigm under the sun. The effect is that there are few features that can collide and cause problems in understanding the code or implementing a compiler. E.g. does a.sort() call a method of object a or a library function that takes an object as first parameter? On the other hand, Java would need a long-winded solution to get functional code like this done: myList.map(a => a.value).sort.unique