I basically agree with everything said so far. If someone just wants to read the NeoLemmix code, then I would suggest learning Python, too.
For someone who wants to actually code in Delphi and modify the NeoLemmix source code, I would recommend learning at least a little bit of either D, C# or Java as well. Just to get to know how up-to-date languages solve some progamming problems.
Ok, and why is this helpful? Most of the code was written with Delphi 7, which is alread about 15 years old and we switched only recently to the 3-years old Delphi XE6. So much of the NeoLemmix code is written in an ugly round-about way compared to what is/should be possible now. If you just dive into the NeoLemmix code you will never learn or see the new and better ways to solve the problems, but if someone has already seen some of the nice ways in other languages, it should feel much more natural to search for these solutions.
If you don't want to learn two languages before modifying the NeoLemmix code, then I would rather recommend C# or Java, than D (or Python). The reason is mainly, that there aren't that many example code snippets in D floating around (at least compared to C# or Java). Of course one can always bug Simon with questions... But as a second language, D is certainly a very valid option.
Regarding some specifics of the NeoLemmix source code:
- There are some low-level parts that use C or even Assembler code, especially in the Graphics32 library. But as these are mostly used for bit-shifting to modify bitmaps in a fast way, these parts shouldn't be modified anyway. So you can safely ignore such stuff.
- The refactoring done by namida and myself over the last few years removed essentially all uses of pointers in the NeoLemmix code. So one can safely ignore pointers at first, even though they are useful for a deeper understanding. Hence there is no need to look at C or C++ to properly learn them.
Regarding some specifics of Delphi:
- Not only C#, but also Delphi XE6 requires the .NET framework. This is the major roadblock to compile NeoLemmix for Linux. While C# has the compiler&IDE Mono for Linux, which people seem to very fond of, Delphi has only Lazarus. namida tried compiling the NeoLemmix code in Lazarus, but some parts seem to be incompatible with Lazarus...
- Delphi has (compared to other languages) an abysmal documentation. The best resource seems to be
http://www.delphibasics.co.uk/, but unfortunately this is outdated and somtimes even wrong regarding XE6. So I definitely want to stress that Delphi is a very
bad choice to learn as a very first language.
- Delphi has no free compiler or IDE and the official one is rather expensive. Of course there are (somewhat illegal) ways around this...