Hacker News new | past | comments | ask | show | jobs | submit login

From a developer viewpoint i can name three things that have stopped Delphi from competing with languages such as C# and JAVA.

1. No Garbage Collector. While some understanding of object lifetime is required, the constant need to manage allocation and de-allocation of objects takes a lot of energy away from the writing code.

2. Naming variables in a separate Var block. This is really cumbersome and detracts from the development experience. This was somewhat fixed in Delphi 10.3 which was released in 2018 or rather 23 years after the first Delphi version.

3. The unrealistic pricing of Delphi. The high cost of licensing has throughout the times meant that other programming languages have been chosen on this fact alone.

If (1) and (3) could be fixed then Delphi might stand a chance to gain significant market share.






I've probably spent a similar amount of time tracking down memory leaks in C# as I have with Delphi. Garbage collector or not - desktop gui app, with lots of event handlers can cause things to hold on to memory a lot longer than they should. Having a garbage collector in these cases just seems to give a false sense of security.

Agree with 3.

1 sounds like you need to get experience on more platforms though. Maybe try to work on a memory restricted platform using a GC language and see how it fucks you over. Anyway, look beyond the javascript "ecosystem".

And while 2 can be mildly annoying, there's a reason Borland compilers are so fast, and that's the somewhat restricted syntax of the language.


Don’t know what relevance the JavaScript ecosystem has. I would pick a language with a GC any day and then deal with issues later on, than to struggle every bit of the way without a GC IMO.

4. Irrelevant features: every release needed some cool sounding feature, that inevitably turned out to be no use.

> 1. No Garbage Collector

I somewhat disagree. Strings are refcounted which removes 90% of the potential pain. Interfaces could be used to ensure objects were freed at end of function scope. Full GC would have ruined Delphi IMHO (if you wanted GC you used VB, or Java which had downsides related to it’s GC. Delphi Apps worked great on low resource machines).




Applications are open for YC Summer 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: