Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have a soft spot for Delphi but this is odd.

Delphi has seen its day. Any number of other languages can be taught for free... python is probably a more relevant choice.



> python is probably a more relevant choice.

Python doesn't have any standard graphical IDE or even GUI widgets. No modern language can create GUI applications with the ease of use of Delphi, except maybe .NET (which is based on Delphi).


Building desktop GUI apps is pretty niche these days compared with building browser apps.


The key question is: should it be so? Or: wouldn't the world be a better place if we had some equilibrium between web and desktop apps?


No.

But I can see this thread is populated with Delphi diehards.


I'm definitely not a Delphi diehard, but I tend to think it's a good thing to have computation done on my largely powerful enough, instead of it being done on a small VM at the other side of the world which doesn't provide me with any control over my data.


I have nothing to do with Delphi. But I miss the time when users were in control of their data, and you could still use your computer normally offline.


tkinter wants to have a word. See also wxPython, PyQt, etc. Not saying they’re as easy as Delphi.


> No modern language can create GUI applications with the ease of use of Delphi

Swift and Interface Buikder?


We do have webbrowsers for GUI widgets and beyond these days. By that metric, Javascript would definitely be a more relevant option.


Try to create a browser gui application using javascript, see how many resources it uses and how much time it takes you compared with Delphi, and just then, get out of my lawn.


Indeed it would - very easy to start with; and, today’s web browsers are extremely powerful VMs.


.NET is definitely the easiest possible way to do a widget UI, but it's not based on Delphi in any meaningful sense. Its closest ancestor is Java, via the short lived "J++" https://en.wikipedia.org/wiki/Visual_J%2B%2B

(Android later did basically the same thing with Dalvik)


I think the parent comment meant "philosophically" based on Delphi since Anders Hejlsberg, the creator of C#, was also the creator of Turbo Pascal and chief architect of Delphi. He left Borland for Microsoft in the mid-90s.


Let’s not forget that the original chief architect of Delphi and the lead architect of C# since its beginnings are the same person so I would dare to say there had ro be some influence sneaking in.


Most Delphi devs were hired by Microsoft to build .net. Thats why .NET libs and the Delphi VCL are very very similar.


Delphi is still very relevant when building desktop applications.


Not only that but Delphi has tremendous educational potential due to fast feedback loops. There was a blog post once on HN where one of Delphi authors discussed how they designed IDE and the language to be friendly for newcomers.

One could ask why not invest in https://www.lazarus-ide.org/ instead of commercial Delphi though?


Leace: "Not only that but Delphi has tremendous educational potential due to fast feedback loops."

Agreed completely!

Not only that, but an argument could be made that the TIME that a given body of source code takes to compile -- can have a huge impact (positive or negative) on programmer productivity...

Case in point: The Linux Kernel (written in C)...

You make a change, even a small one, and you're probably going to wait for HOURS for it to compile...

HOURS...

Before you can run it, to know what your change accomplished (or didn't accomplish!)...

HOURS...

If the Linux Kernel was written in Delphi, compilation would take no more than a few MINUTES, even on a modest machine, and possibly a lot less, possibly seconds, depending on the dependencies of the code that was modified...

That's the technological beauty of a single-pass compiler that caches precompiled source and its associated symbol tables (and only recompiles what's needed, only when it's needed)...

Which change-compile-test-feedback loop do you think would make a programmer more productive?

?

Hint: Even a non-programmer could easily know the difference...

Yes, there are languages which are more popular, more attuned to web development, more Lambda-esque in nature, and these things are virtuous, to be sure -- but in terms of raw compilation/run/test/change/iterate speed (aka productivity), Delphi smokes all of them...

For a programming job in the U.S., with many employers using differing technologies, it may be a loss, but for education, for the ability to learn how to think (as a programmer) and subsequently grow into other tools/technologies, it's a big WIN.


> Case in point: The Linux Kernel (written in C)...

> You make a change, even a small one, and you're probably going to wait for HOURS for it to compile...

I've done this before. For a small change in a .c file, it takes less than a couple of minutes in a not-so-fast computer. It only has to recompile that .c file, do a partial link of the subsystem, do a final link of the whole kernel, and a few other auxiliary processing steps. It takes more time to reboot the machine or VM with the new kernel.

Even compiling the kernel from scratch is fast. Looking at a Phoronix benchmark (https://openbenchmarking.org/showdown/pts/build-linux-kernel), it takes less than 15 minutes on all systems tested. Some systems can compile the whole kernel from scratch in less than half a minute.


I try Lazarus every year; it is still instable. Did it improve over the past year?


In what OS and with what projects are you trying it? I'm using Lazarus since 2006 or so and the last time i remember it being unstable was back in 2008-2009. It has been a very long time since i even saw the IDE crashing, let alone getting a feeling that it is unstable.

(note that i'm using Windows and mainly with my own projects and components and i only use the components that come with Lazarus)


Nope, still unstable, you still need to chase and file small bugs, still no devexpress, either. But I have to admit they have done great work with the IDE during the past 5 years.


Is it? Can it compete with c# or swift for desktop applications?


It depends on your use cases, are you just going to pop up a message box? Are you going to develop an ERP? c# and delphi both have devexpress, so apart from delphi's execution speed being faster (in my experience) they aren't really that different. Delphi does require you to manually cleanup memory at finally blocks, unlike c# which does garbage collection. Delphi has a design-time mode which is unique among the languages and is able to show live data from a database while developing master-detail forms and grids.


Yes. In the sense that neither C# nor, especially, Swift are suitable as teaching languages. (Nor is Python, BTW.)


I remember studying with Delphi, don't remember any specific advantage for studying compared to let's say Java. On the other hand I remember many things seemed illogical.


Swift isn’t suitable?

Then why is it being used as a teaching language in many US schools?

https://www.apple.com/education/docs/everyone-can-code-curri...

A bit more relevant and marketable than Delphi. And with Swift playgrounds, students can even practice using an iPad.


Which is rather not where the world has been going towards in the last decade or so.


The number of small scale desktop applications (like restaurant accounting/billing or tax management) in Turkey or similar markets exceeds all forms of mobile/web apps combined. In my home town in Iran, C# desktop developer is the number one job offer for the last 10-15 years. The market is full of small businesses that need simple desktop apps to run the business.


Why would you want to build a restaurant accounting/billing app as a desktop app instead of a browser app?


Just a few things that come to mind:

- Because you still need to bill your customers even when the net is down or slow,

- It works faster and more reliable on old, low on memory PC that you probably have. Also can work with old printers, barcode readers and pretty much anything out there,

- Power of habit (a big deal),

- Don't want to keep your accounting details on a remote server. This is probably of less importance for restaurants, but very important point for various trading companies, as it's not uncommon for someone to bribe accounting firms to leak info on competition.


Because that's what the jobs that are hiring are for in the place the GP lives? I mean, I'd rather browse HN than do work all day, but nobody's going to pay me for that.

I was an early web developer who transitioned into a modern one as time passed but I've moved back to desktop application development as of late because that's what was hiring in my area at the time I was looking for a job and I simply am not married to a particular technology.


Obviously there are people involved in the process of building these desktop apps who aren't the ones who decide they'll be desktop apps. But somebody is making that decision. I'm asking what leads that person to make that choice. Is it beneficial to the restaurant as a business? How?

I'm not asking about why people are willing to do what their boss asks for or their customers offer to pay for.


Because you can do more with a desktop app than a browser app. Not everything is or should be in the goddamned cloud.


Sure you can, Brian, but those things aren't relevant to a simple line of business app like that. And I agree that it shouldn't be in the cloud; it should be on a Raspberry Pi in the back room of the restaurant, next to the Wi-Fi. Or, well, a Chinese clone, since you wouldn't want an Iranian restaurant to be dependent on imports from England.


I'd ask the opposite question.


Why would you want to build it as a browser app? Well, a guy named Paul Graham wrote an essay about that. Maybe you've heard of it?


Especially as Lazarus exists: https://www.lazarus-ide.org/

Or maybe Lazarus isn't as good as its website makes out? I haven't used it, but used Delphi for a couple of years in the late 1990s.




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

Search: