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

Delphi was a wonderful language in the late 90's for desktop application development. It was easy to build desktop applications quickly and was very fast for both compiling and the executables it generated. Definitely a product of its time, but I look back on it fondly.


It turned out the distribution (and to some extent, ownership) problems eclipsed every other problem in software. This is why the web won, because it solves distribution and ownership immediately.

The trade-off was/is that building software as easily as late 90's desktop applications is extremely difficult to do on the web; in fact, we're still not there. Surprisingly, no-one has made a Delphi (or Access) clone that runs on the web. It seems like we're getting there, but incredibly slowly and only asymptotically approaching that experience.

On the bright-side, webapps have invented some novel and useful ways of writing applications that are in some ways superior to the old ways - the ideas behind React (in particular, rendering application state as a single function), or Redux (modeling application state as a monolithic, immutable object against which reducers run) may not have arisen if not for this shift. I'd also credit JavaScript with making functional programming mainstream, a great example of "worse is better".

Another part of the issue may be that younger programmers are simply not aware of the DX of building with tools like Delphi or Access. And in turn, older programmers have forgotten the headaches of dealing with closed-source tools and the distribution headaches that came with them. (And the ones who are aware are themselves unaware of the DX of building with Smalltalk.) You cannot miss what you never experienced or do not know about.


> It turned out the distribution (and to some extent, ownership) problems eclipsed every other problem in software.

I have a different perspective. I see it more as a question about runtime environment. We still have 20y old Delphi applications in production, and distribution is trivial, corporate machines have software that just installs the apps the users need based on their roles, and they autoupdate etc. My team still hates them and want to replace them with webapps, even with no distribution or ownership issues.

For us the big issue is the "it's not working for me, what could be wrong?" cases where you have to dedicate half a day or more of expert time trying to figure out which absurd corner of microsoft windows is causing issues on the particular intersection of that one application on that one entirely unique computer configuration (even after corporate management of software/policies etc), and of cause that one particular user, because what could they have done?

Web apps have the benefit that they don't run on microsoft windows, they run on chrome (even if you use edge), and chrome is a much better operating system than windows will ever dream of being. It even fulfilled java's pipedream of being cross platform (well effectively from a user perspective anyway).


We've had a similar issue even with our sass webapp. It started with one user at one client where a single UI in our large SPA started encountered odd bugs. And then other employees in the same department started having the same exact issue. We spent a considerable amount of time investigating the issue with our company pushing back claiming it was an issue on their side. Eventually it escalated and we did a call with their users and management. I was able to successfully debug the issue, but their management was not that happy! The issue: Fantasy football Chrome extension their employees had installed which their IT department obviously did not authorize!


Indeed, webapps are not immune to distribution problems. Wayward and invasive browser extensions are a clear threat, as are 3rd-party dependencies (and their dependencies) loaded at runtime. Which is why companies like https://sentry.io exist. I think the difference is that webapps are "distributable by default" and it takes real work to break this. Versus having local desktop apps which require work to distribute. A potent example of the power of defaults.


Through the halls and chat rooms of every company populated by developers you hear constant groaning about software distribution problems (we call it deployment). Yes, we managed to fuck that up and a hundred other things along the way. So many hours wasted on that bullshit.

I left web development and have been having the time of my life. Web dev is nothing but stress and pain. The first relatively pain free web dev experience I had was using Vue3 (not counting Laravel ten years ago).


> Surprisingly, no-one has made a Delphi (or Access) clone that runs on the web.

There have been a couple attempts but they were all closed source from small developers that died (the projects) once the developers couldn't convince anyone to pay for them. Ironically one of these attempts used Pascal too (IIRC it was using a fork of Free Pascal).

There was also Microsoft's Web Forms which kinda did something similar in the early 2000s or so, though AFAIK it wasn't as "drop an exe and have it work" as programs made in Delphi for the desktop were.


To note that Blazor is the new Web Forms.


Oh, I remember. I built client-server applications in Delphi. Distribution was a huge pain. Easily the worst part (as you mentioned).


> It turned out the distribution (and to some extent, ownership) problems eclipsed every other problem in software.

Distribution is easy. It's just that in many companies it is hard to convince IT to distribute your software, while it is perfectly fine to have a web browser on the computer.


> in many companies it is hard to convince IT to distribute your software

Isn't that the definition of hard?


> Isn't that the definition of hard?

No, that is the definition of "a different problem":

- distribution: easy

- convincing an organization: hard


> Surprisingly, no-one has made a Delphi (or Access) clone that runs on the web.

Yes they have, but many aren't willing to pay for their tools, so only big corps get to see them, see OutSystems.

Also WebForms and now Blazor, are pretty much it.


There was some Delphi for PHP: https://en.wikipedia.org/wiki/RadPHP

renamed later to RadPHP and then abandoned.


At one time there was also Kylix, which was Delphi for Linux.

I had tried it out briefly, but dropped it because it was too buggy.

Later they killed it.

https://en.m.wikipedia.org/wiki/Borland_Kylix


Same here - Kylix was good for "hello world" projects, but when you trying to implement some coding stuff you'll see many small bugs that make future development impossible.


What does ownership mean here? And what does it mean on the web?

I like to make my software single html files whenever possible. People can just save them and run them locally. Havent met anyone who cares yet though.


> What does ownership mean here?

It means owning the code and the data. With webapps, the code and data are hosted and owned, the users do not own the code, cannot run it independently. This is a clear dileneation between owner and user, and the owners can use that clear line to create artificial scarcity of various kinds. (The most popular being the subscription SaaS model). It's also easier to defend your IP since end users never see your binaries.

> I like to make my software single html files whenever possible. People can just save them and run them locally. Havent met anyone who cares yet though.

I like that idea a lot, and I care. I think others care, but yes, it's a niche interest. Take a look at https://tiddlywiki.com/ for an example of a fairly successful project that uses the single html format running locally. However it suffers from limitations on File|Save which often requires a separate runtime of some kind to support.

Another project that approaches this ideal is https://redbean.dev/, @jart's tiny, performant, featureful single-file webserver. In this case the "single file" is a server executable + zip whose state must be updated on the command-line, but I think hits a sweet spot in terms of practicality, and a global minima when it comes to minimizing dependencies. (Redbean bundles SQLite and Lua so it's also possible to do through-the-web state updates as in a traditional webapp.)

My own project, Simpatico, aspires to be something along these lines.


I got started in QBASIC as a kid, but it wasn’t until Delphi 4 that programming became something that I wanted to pursue as more than just a hobby. Though it’s been over 20 years since I touched Pascal, I owe my entire career to Borland and Delphi.




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

Search: