- Go does not have inheritance (it is not an object-oriented language);
- Go does not have virtual methods (just interfaces);
- Go does not have enumerated types definition (by the way, I'm still amazed how C# is bad at handling enumerates, in regard to C);
- Go immutable strings are a concern to me (the copy-on-write and multi-charset/types paradigm of Delphi sound better);
- Go has garbage-collector only memory, and no ARC model;
- Go lacks of generics.
The Go FAQ is worth a read, before starting any trolling subject.
But it is a fact that the Go language sounds much more attractive than
object pascal, among developers.
For 95% of coders, pascal is a dead / old / unknown paradigm...
Most young coders learn with Java or C#, so do not know how to manage memory or how code is executed. C/C++ is the worse part of their studies, and are now pushing into using Python, or any other scripts languages. Some young nerds still like to know assembler, and code efficiency, but they are not hired in most software companies, only to develop niche software for embedded devices or provide Linux-kernel commits.
This is why I like the Go attempt to be a compiled, strong typed language, with abilities to develop low-level features. Despite the garbage collector, we may be able to write a Go OS, whereas any attempt in C# or Java was not a so good idea. Note that pascal-based OS are more a proof of concept, due to the lack of drivers, and are waiting for developers. But since they have no garbage collector, they are fast and stable.
I definitively feel like an old schmo those days.
I have the feeling that most today's coding is at the level of good old basic interpreters, with the addition of poorly defined objects and over-sized architectures. But I'm still convinced that enforcing to manage memory, pre-declare variables and still have reference-counted types like string or dynamic arrays can help make better code. This is what I like in object pascal.
Objective C has its drawbacks and weird syntax, but sounds definitively closer to the Delphi world than C# / Java / scripts.
Of course, you can use Delphi to write inefficient code, and make wonders in
Java or C#, using a pool of pre-allocated POCO/POJO objects and other
But I still prefer Delphi and un-managed code, with no framework dependency or overheads.
I would certainly let go Go, at least in its current 1 version...