4 ms·
> And old Delphi Pascal suffers from similar things as 90ies C or C++: it skips modern features and uses a style that is contrary to what people now learn, expe
by badsectoracula 6y ago
> And old Delphi Pascal suffers from similar things as 90ies C or C++: it skips modern features and uses a style that is contrary to what people now learn, expect or even enforce.
Eh, even Delphi 1 has a lot more features than modern C and while there are new features added in Free Pascal over the years, the old stuff never got outdated or obsolete the same way that (theoretically) nobody writes C++98 (though in practice many do anyway, but they do it at night, hidden from all eyes :-P). Pretty much all Delphi-like Object Pascal compilers (Delphi itself, Free Pascal, Oxygen and i think a couple of others) use Delphi 7 as a common denominator and the main thing missing from Delphi 7 as a language is support for generics (but it still has a few collection classes).
If you read a book about even, say, Delphi 3, most of it (outside the Borland-specific database stuff) will be valid in Lazarus. You'll just miss some additional features modern Free Pascal and Lazarus provides, but the older stuff aren't really obsolete or invalidated (this is also a neat thing about Free Pascal and Lazarus - the time you invest in learning them won't be wasted because the developers decided that now they'll try to do the same stuff but in a different way).
- brnt 6y agoI meant, from a modern day perspective of the respective languages. Oh and people write old dialects, the old Delphi geezers at the previous workplace also wrote pre C++98 C++, today. Impressive isn't it ;) Bigco's are all about decades old code bases.
- badsectoracula 6y agoRight, that is what i meant too. You are more likely to find today people not using C++98 in their new C++ codebases than you are to find people not using Free Pascal 0.99-era code in their new Free Pascal codebases - largely because there haven't been any dramatic changes in the language over the years that require changing how you work with it. When you get new stuff they enable new features, but rarely things change in how they work - at most you get more conveniences (e.g. you can use a for-each loop in iterators instead of a manual for I:=0 to iterator.count - 1 do..., but that is just a convenience, it doesn't change anything).