Though in the right hands Lazarus is a great tool since relatively complex project could be completed just by one developer. E.g here is our game engine map editor:
https://github.com/vcmi/vcmi_editor
Another thing to note is that FPC provide good performance and even used for game development and memory footprint is small. There is RTS on Steam called Cossacks 3 and it's fully in Pascal (though no idea if they using FPC outside of Linux):
http://store.steampowered.com/app/333420/Cossacks_3/
PS: Another example would be open source Hedgewars of course.
I have a rather different opinion on OP that it has a needlessly verbose syntax.
Pythonic it is definitely not. Even C# (which is another creation of Anders Hejlsberg, after MS poached him from Borland) has a better, readable and concise syntax.
I used to be a Delphi evangelist in it's glory days. Now I bristle when I read Pascal source code, there's so much unnecessary visual noise. Of course if your brain is habituated enough to parse Pascal code, eventually you will tend to filter out the begin..end's.
Pascal syntax belongs to C family of language.
As regards to Python-like syntax, I think you are referring to the Nim language, whose syntax happens to be similar to that of Pascal.
It can't possibly, seeing how it predates C.
There are specific differences that set them apart, too. For example, the fact that Pascal has statement separators rather than statement terminators (and using a separator in a terminal position is usually an error, e.g. before "else").
Pascal rather belongs to the Algol family of languages, together with C. Algol-60 is where "begin" and "end" come from.
The verbosity is an indicator that it does not require a huge cliff of learning to understand the syntax. (It also means the compiler can absolutely fly, which Delphi did.)
I like the conciseness of later language structures, but they all need to be learnt in order to read or write in them.
The only solution to the verbosity of Delphi was to increase your typing speed or use an IDE add-in that provided shortcuts :)
So I suppose my argument is that the syntax is not needlessly verbose. The verbosity helped the speed of compilation by the simplicity of its grammar, and the learnability of the language is quite speedy as a result of fewer grammatical options.
Python is being run on microcontrollers these days; I actually wrestle with the non-adoption of Python (or Ruby, or Javascript, or Tcl) as 1st-class citizen language for desktop and mobile; it does not make sense for me. Certainly writing desktop/web apps in C++ or Pascal make even less sense.
Perhaps I am forgetting the big number of fellow developers that work on ERP systems and outdated software, for them it is a blessing to have free tools, while in the 90s such a tool could cost $3k.
So does Pascal and its descendent Oberon, including FPGAs.
https://www.mikroe.com/mikropascal/
http://www.astrobe.com/default.htm
Natively compiled to machine code, safe, without any help of C.
Oh boy, I hadn't heard about Harbour until now; earlier today I was looking at the Wikipedia page for id Tech 5, and it says it uses Clipper so I was really scratching my head wondering how they pulled that off and why. Now I know, thanks for mentioning it. :- )
Hard to say, bots usually have usernames, so probably a person.
https://en.wikipedia.org/wiki/Special:Contributions/99.100.1...
They also seem to have added a similar section to the id Tech 6 article, it's possible they're just an insider.
https://en.wikipedia.org/w/index.php?title=2015&diff=prev&ol...
But looking at other edits from this address it sees like they might just be a vandal; or at least somebody who is very confused about how Wikipedia works.
C# has amazingly easy-to-read syntax, but maybe I'm biased because I'm most comfortable with C-like syntaxes.
Happy that recent languages like Go and Kotlin have learned the lesson and are going the Pascal way again.
FWIW, I took over maintenance of an in-house application written in Delpi/ObjectPascal, with practically no prior experience with Pascal (but one fun weekend looking at Ada), and I had almost no problems reading the code that were caused by Pascal's syntax. It might be because the guy initially wrote the application did a good job, but I found the code very easy to read.
I like how you say python-like syntax... as so many borrow from Pascal
Example:
IMyInterface = interface
procedure Foo;
end;
TMyClass = class(TInterfacedObject, IMyInterface)
procedure Foo;
end;
procedure TMyClass.Foo;
begin
WriteLn('Foo');
end;
procedure DoTheFoo(AObj: IMyInterface);
begin
AObj.Foo;
end;
procedure SomeMethod;
var
LObj: TMyClass;
begin
LObj := TMyClass.Create;
DoTheFoo(LObj);
LObj.Foo; // <-- Will cast nil pointer exception,
// as object was freed when AObj in DoTheFoo went
// out of scope
end;
I work with Delphi in my day job.The 5th chapter from "The Garbage Collection Handbook", http://gchandbook.org/, one of the most renowned books in the field, there are of course other equally renowned sources I can refer to.
You will know when memory gets deleted, but not how long it will take, nor how much stack space the destructors will require to run.
Enjoy Herb Sutter's "Leak-Freedom in C++... By Default." at CppCon 2016, where he explains how those issues affect C++ and goes on to implement a tracing GC.
var
LObj: IMyInterface;
begin
LObj := TMyClass.Create;
DoTheFoo(LObj);
LObj.Foo;
end;I remember Delphi being fun back in the day and it still compiles way faster than C++, but C++ is evolving and maybe with modules even the compilation speed gap will disappear...
[x] Statically compiled
[x] Native UI on Linux/Mac/Win
[x] Typically compiled without code changes on Linux/Mac/Win
[x] Small binaries
[x] No GC
[x] Readable, somewhat python-like syntax
[x] Still, doesn't rely on indentation for nested blocks
[ ] (Fill in)