by open-source-ux on 8/21/23, 3:09 PM with 111 comments
by rileyphone on 8/21/23, 7:36 PM
by malkia on 8/21/23, 5:12 PM
Couple of observations:
- Using C (Borland or Microsoft) required two floppy disks - one for the compiler, one for the linker. With most of the Pascal versions you end up just needing one floppy disk, later it didn't matter as we moved to HDD.
- First "terrible" experience (by a friend) - he moved from Pascal to C and placed all his code in the .h-eader file, and was wondering why it takes so much to compile (oh, yes nowadays it's fashionable to have header-only libs, lol), but then it was awful.
- Pascal Units enforced you (as explained in the article) to figure out cyclic dependencies, unfortunately lots of us thought of this as a limitation, which C/C++ did not had. How wrong we were!
- There was barely any use of preprocessor (yes there was), and it was more into the language, than some external pre-processor.
- Mark/Release was superior, but also harder to understand the idea than plain old malloc/free
* Mark - "Records the state of the heap in a pointer variable".
* Release - "Returns the heap to a given state".
* So you can quickly release memory in one hop (like nowadays what json parser might need to do).
- Turbo Pascal 3.0 was only 30-40kb - Even later Borland could keep up to a single disk. Assembly was approachable from it
- Peephole optimization!
by panki27 on 8/21/23, 4:25 PM
Delphi was what I had to use in my first apprenticeship/job, over 7 years ago now.
Came home after the first day and my dad told me that's what he made his first Windows programs with, too - but 25+ years ago!
After learning other languages, I still have to say it's great for quickly putting together GUIs and filling them with life. The community is rather thin these days though.
END
by superdisk on 8/21/23, 4:25 PM
by smokel on 8/21/23, 8:56 PM
by unsubstantiated on 8/21/23, 9:39 PM
More recently, C# 9 and 10 have returned the concept of `records` (preferably immutable objects) along with the `with` keyword for making copies with some of the properties changed from the source to the dest object.
It has been an interesting decade watching HN metaphorically (and sometimes literally i'm sure) shift around uncomfortable in their chair as the all-encompassing-nightmare M$FT creates two languages that are more and more dominating of developer marketshare - C# and TypeScript.
by ilyt on 8/21/23, 7:14 PM
by ivanhoe on 8/22/23, 8:15 AM
Borland Delphi had the best and the most useful documentation/help system that I ever used - and those were times before Google or even access to Internet for many of us, so reading manuals played a huge role in learning.
by xamomax on 8/21/23, 10:35 PM
Too bad, as I really liked it, especially the language. I liked the AMIGA as well, which also was ahead of its time and seemed to suffer a similar fate.
by sema4hacker on 8/21/23, 6:02 PM
What was/is particularly nice about Delphi is the library of GUI objects, single .EXE output with no dependencies, and the ease with which arbitrary-length strings can be used.
by Delphiza on 8/22/23, 8:49 AM
Data binding to client-server databases was a big deal at the time, and data-bound controls such as grids and TreeViews (which we all thought were the future) were pretty cool. It was an exciting and productive time to build data-based (enterprisey) apps that customers and users loved.
I remember when Borland launched C++ Builder, which was C++ using the Delphi component library (VCL) and IDE. Everyone was very excited during the demo until build and run (F9?) when compiling started and in the demo, in front of a couple of hundred people, my friend had to talk for a couple of minutes until the app ran - something that would have taken seconds in Delphi.
In it's day, Delphi was pretty cool.
by mike_hearn on 8/21/23, 5:05 PM
Delphi could have potentially navigated into the web era quickly enough, but was slow to do so. It was essentially a Windows product at its core. They made a half-hearted attempt to port it to Linux but did so using Wine(lib) which back then was very rough, so Kylix had a poor UX and of course the problem was that the Delphi widget toolkit was the Windows toolkit which Linux didn't have. IIRC it was also quite slow to even get things like an HTTP stack, which had to be produced by a third party company.
The focus on visual componentization back then was kinda great though. That's definitely something that went AWOL somewhere along the line. The good database integration is also sorely missing in more modern languages and frameworks.
by dver on 8/21/23, 4:59 PM
by treprinum on 8/21/23, 9:42 PM
by HumblyTossed on 8/21/23, 8:33 PM
by codazoda on 8/22/23, 1:11 AM
I don’t know if this makes sense but I was feeling nostalgic for turtle graphics.
by idlemind on 8/21/23, 7:34 PM
by ddmf on 8/22/23, 9:40 AM
At the time I'd used VB but the runtime was the size of a floppy on its own, and the catalogue data pushed it over the size. I remember reading that Delphi didn't require a runtime and that was that.
I still use Delphi for LOB apps - so very quick to design a user interface and have a working program ready to roll out, for example so transport can update their haulier quickly, or the accounting software has a shoddy smtp implementation that doesn't play well with our spam appliance so we create a tool that fires statements via mapi and let outlook deal with retries.
by dvh on 8/21/23, 8:26 PM
by fregonics on 8/22/23, 2:41 AM
But I heavily disagree with the author's positivity about Delphi in general.
The UI builder excels on wiring up small utilities, but when you are looking to build applications with more complex UIs, with custom components and/or devices with different screens, the complexity increases exponentially and the UI preview becomes just a small suggestion, I think only in the last release (10.5) in 2022 they addressed this.
The component system is clunky, and very prone to breaking. In my entire time working with it I never once had a completely functional development environment, because components installation never had the same result. To work in some parts of the project i had to just ignore the IDE and edit the text files directly. Also, Delphi updates required reinstalling everything, and solving the many problems that would arise, and then all dev environments would have to be reconfigured (and troubleshooted) manually.
Talking about editing, the IDE's performance is not very good, and the Intellisense is not asynchronous, the suggestions and error checking took their time to load, and the IDE becomes unresponsive while it processes, and sometimes windows would just kill the application because it was not responding. I had to turn it all off to be able to work. Oh.. And the bugs, the IDE had bugs just everywhere!
The above exposes a problem in the language itself, it did not have good asynchronous behavior, and I never understood it completely, the only way to make sure you would not block the main thread in some way was to spawn a new process to run background stuff.
The standard components are outdated, the WebView they used was Internet Explorer's one until the 10.4 release, in 2021, they just recently started to adopt WinUI, so you were stuck with 00's user experience, their JSON parser was not very standard (it didn't support the number type, for instance). And when I searched community components to implement things I usually found only something very outdated and unmaintained, or just didn't find anything.
I think essentially it had some quite good ideas in the beginning, but this is the important fact, it "had". Delphi stopped improving on itself, and is just trying to convince the same community of people who fell in love with it when it was still good and dedicated their entire careers to it that they are cool now, adding things that sound cool, while nothing important really improves.
by goodbyesf on 8/22/23, 1:57 AM
by cthalupa on 8/22/23, 4:23 AM
The whole point of Mark Antony's speech is that he was, in fact, praising Caesar, despite the line stating otherwise. Flipping it around removes the entire impact of the speech.