[HN Gopher] It's 29--Delphi, I mean
       ___________________________________________________________________
        
       It's 29--Delphi, I mean
        
       Author : andsoitis
       Score  : 53 points
       Date   : 2024-02-21 08:43 UTC (1 days ago)
        
 (HTM) web link (blog.marcocantu.com)
 (TXT) w3m dump (blog.marcocantu.com)
        
       | frfl wrote:
       | Free Pascal and Lazarus seem really really great, and I wanted to
       | really look into the ecosystem, but doing a bit of surface
       | researched revealed some concerns that held me back from going
       | any deeper
       | 
       | - Pascal seems like a mature language but looks like it's got its
       | warts and being a language of the 80/90s may not offer the
       | niceties of languages that came after it. One concrete criticism
       | I came across was some inconsistencies in the language design
       | meaning you want to be careful as some things work one way and
       | others another way, and some things don't work as you expect (at
       | the syntax/semantics level if I recall correctly).
       | 
       | - GTK support is still work in progress according to wiki pages I
       | could find: mainly GTK3(??) and GTK4 which aren't 100% stable. If
       | you want to use GTK2 that seems fully supported. Given the Linux
       | GTK based distros are on GTK3 and moving to 4, seems less than
       | ideal. I'm not sure if/how much the situation is better in the QT
       | bindings.
        
         | graemep wrote:
         | It looks like a relatively easy to learn language.
         | 
         | The QT bindings are pretty up to date according to the wiki:
         | 
         | https://wiki.lazarus.freepascal.org/Qt5_Interface
         | 
         | https://wiki.lazarus.freepascal.org/Qt6_Interface
        
           | frfl wrote:
           | Have you used Lazarus or FreePascal for any significant
           | project?
           | 
           | I was hoping to get some insight from someone who's deeply
           | familiar with it and can provide their experience and opinion
           | after using it for a reasonable amount.
        
             | squarefoot wrote:
             | Here's a list of projects using FP+Lazarus.
             | 
             | https://wiki.freepascal.org/Projects_using_Free_Pascal
        
         | bitwize wrote:
         | The Lazarus ide always felt jank to me, esp. on Linux. The FPC
         | textmode "Turbo Vision" like ide is fine, but I don't see how
         | someone used to Delphi or VB can tolerate building anything
         | with Lazarus. The polish isn't there.
        
           | brnt wrote:
           | I don't know what you are comparing to, but Delphi this year
           | and age is far from polished either.
        
           | badsectoracula wrote:
           | > The FPC textmode "Turbo Vision" like ide is fine
           | 
           | Fun fact, recently an attempt to add unicode support to Free
           | Vision (and related units) was submitted to the repository
           | and while that worked, it broke a bunch of things and
           | introduced extra jank (and a massive performance regression,
           | even if you are not using the unicode-aware units) to it
           | (including the textmode IDE, which -e.g.- crashes the second
           | time you try to build something).
           | 
           | But this is in the development version from the repository
           | and there are no plans currently to make a new release soon,
           | so chances are by the time a new release is made this will be
           | fixed.
           | 
           | > I don't see how someone used to Delphi or VB can tolerate
           | building anything with Lazarus. The polish isn't there.
           | 
           | Personally i find Lazarus much more polished than Visual
           | Basic ever was.
        
         | badsectoracula wrote:
         | > One concrete criticism I came across was some inconsistencies
         | in the language design
         | 
         | Yeah that is a valid criticism, Free Pascal (and Delphi's
         | Object Pascal, but because Free Pascal supports multiple
         | dialects it is more pronounced there) isn't so much "designed"
         | as "organically grown". On the other hand, you could say the
         | same for any language that has been around for a long time and
         | tried to add new functionality without breaking existing code.
         | 
         | In practice while you may come across the occasional 'gotcha',
         | you won't really have much of a problem. E.g. in Free Pascal -
         | and Pascal since Borland's Turbo Pascal - the function result
         | is actually a hidden parameter passed by reference (this helps
         | to avoid costly copies if you return records/structures). I've
         | been writing Pascal code since the 90s and yet it was only very
         | recently that this caused a bug in my code. TBH if you have
         | written in C#, C++, Java, or any other "unexcitingly
         | mainstream" language you'll be fine writing Free Pascal too.
         | 
         | The biggest issue with the language i have is the three
         | different compound types ("record", "object", "class") and
         | really it is mainly about how you can't do things with two of
         | them ("record" and "object") that you can do with the third
         | ("class") for seemingly arbitrary reasons (especially since
         | under the hood the compiler treats them all the same). But it
         | is largely an annoyance that you can almost always work around,
         | not a roadblock.
         | 
         | > GTK support is still work in progress according to wiki pages
         | I could find: mainly GTK3(??) and GTK4 which aren't 100%
         | stable. If you want to use GTK2 that seems fully supported.
         | Given the Linux GTK based distros are on GTK3 and moving to 4,
         | seems less than ideal. I'm not sure if/how much the situation
         | is better in the QT bindings.
         | 
         | For Gtk3 the main issue is the developer who mainly worked on
         | the Gtk backends got tired of the Gtk developers breaking the
         | API every new major version just as he was getting things
         | working and decided to just abandon the effort. I think someone
         | else is providing patches for Gtk3 nowadays though. Personally
         | i contribute the occasional fix to Gtk2 as not only it is the
         | most stable but also i prefer Gtk2 apps to Gtk3 apps. I also
         | keep Gtk1 working (one neat aspect with Gtk1 is that you can
         | statically link against it and thus make a binary that only
         | relies on X11 - and OpenGL if you use that - like, e.g., the
         | binary i have here[0])
         | 
         | However there is a lot of development on the Qt backend (AFAIK
         | including the guy who used to work on Gtk3) to the point that
         | it might become the default in the future. You can try the
         | binaries of a tool i wrote from [0] that are built with Gtk1
         | (statically), Gtk2 (dynamically) and Qt6 (links to the Qt
         | bindings statically but to Qt6 libraries dynamically) and see
         | how they look like in practice (note that ironically the Gtk2
         | one might actually have issues - i built it from the repository
         | version, not any official release). Note that i compiled this
         | on my Linux PC running openSUSE Tumbleweed so it was linked
         | against fairly recent versions (e.g. you need Qt 6.6 - a friend
         | of mine running Debian couldn't run it because none of the
         | repositories had it).
         | 
         | [0] http://runtimeterror.com/tools/piecemod/
        
       | Narishma wrote:
       | The HN title makes no sense without the exclamation point that
       | was in the original.
        
         | layer8 wrote:
         | It's still quite unintelligible even with the exclamation mark.
         | 
         | You can read "29 Delphi" similar to "29 AD", and it almost
         | works.
        
           | bmacho wrote:
           | I think it's legible. I'd definitely write/say that way.
        
           | trealira wrote:
           | It sounds like something the author exclaimed out loud and
           | then wrote down.
           | 
           | A more formal of writing what they said is "It--that is,
           | Delphi--is 29 years old."
           | 
           | Edit: The title read "It's 29 Delphi, I mean" at first. Now
           | it reads "It's 29--Delphi, I mean"
        
         | Georgelemental wrote:
         | I thought "29 Delphi" was the name of a star
        
           | jdougan wrote:
           | If it isn't, it should be.
        
       | hvs wrote:
       | 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.
        
         | netule wrote:
         | 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.
        
         | simpaticoder wrote:
         | 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.
        
           | badsectoracula wrote:
           | > 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.
        
           | expazl wrote:
           | > 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).
        
           | aleph_minus_one wrote:
           | > 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.
        
           | hvs wrote:
           | Oh, I remember. I built client-server applications in Delphi.
           | Distribution was a huge pain. Easily the worst part (as you
           | mentioned).
        
       | thriftwy wrote:
       | I always wondered how awesome would it be if they thrown away
       | Pascal from it somehow and replaced with Python.
       | 
       | The same topic with VB6 and putting Perl instead.
        
         | badsectoracula wrote:
         | You'd basically get Boa Constructor[0][1] and the fact that it
         | mentions that it is based on "wxWindows"[2] and the last
         | release was in 2007 is probably a good indicator of how much
         | Python developers would be interested in such a program.
         | 
         | (incidentally there was also Visual Tcl[3] which was quite
         | interesting in that while it had a
         | Delphi/Lazarus/BoaConstructor-like interface, you could modify
         | the program while it was running)
         | 
         | [0] https://boa-constructor.sourceforge.net/Screenshots/
         | 
         | [1] (the name is probably a play on C++ Builder)
         | 
         | [2] old name of wxWidgets before Microsoft asked them to change
         | it
         | 
         | [3] https://vtcl.sourceforge.net/
        
       | mooreds wrote:
       | Wow, the author is also working on a book that is just released:
       | https://blog.marcocantu.com/blog/2024-february-expertdelphi2...
       | 
       | No technology ever truly dies.
        
         | layer8 wrote:
         | HD DVD is pretty dead. ;)
        
           | mooreds wrote:
           | Fair fair:
           | https://www.techtarget.com/searchstorage/definition/HD-DVD
        
         | fuzztester wrote:
         | He has written many versions of that book. He is one of the
         | Delphi old-timers.
        
       | GMoromisato wrote:
       | My goal with GridWhale is to build something like Delphi (a RAD
       | platform) for web apps.
       | 
       | I wanted something integrated (UI, storage, business logic) but
       | with real code (not a no-code platform like Bubble.io).
       | 
       | Will it succeed? I don't know. Maybe no one wants RAD anymore. Or
       | maybe no-code platforms are good enough. Or maybe AI will be a
       | better answer.
       | 
       | Still, I have to try.
        
         | russnewcomer wrote:
         | The web is crying out for true RAD. GridWhale is promising, I
         | have been casting around for a project I could use it with.
         | 
         | If you can pull it off, I guess we'll grudgingly forgive you
         | for not finishing Vault of the Galaxy yet. :)
        
           | askvictor wrote:
           | Have you had a look at Anvil? https://anvil.works
        
       | VonGuard wrote:
       | I heard a rumor years ago that Russian train systems still run on
       | Delphi.
        
         | thriftwy wrote:
         | A lot of industrial automation around the world, but especially
         | in Russia, likely run on Delphi.
         | 
         | Of course we're talking about stuff like rail yard management,
         | not ticket booking. That used to be mainframe based, but is
         | likely Enterprise Java for the last two decades or so.
        
       | marcodiego wrote:
       | https://www.lazarus-ide.org/
        
       | Scubabear68 wrote:
       | I worked with an energy company who has a huge custom accounting
       | package written in Delphi. They got a lot of bang for the buck
       | out of it over the years but is causing obvious problems now with
       | all the logic embedded in the client.
        
       | finnjohnsen2 wrote:
       | Second Pascal -thing I've seen on front HN this week. Is it
       | nostalgia or is it because it's useful and cool stuff even in
       | 2024?
       | 
       | I'm nostalgic about Pascal because it was my first real
       | professional full-time payed programming language and I loved it
       | passionately for years. But now, I kinda don't trust myself when
       | I just see old dated stuff compared to what we use now. It is the
       | past for me, but maybe it's not the case for people without my
       | baggage
        
         | mikestew wrote:
         | _Is it nostalgia or is it because it 's useful and cool stuff
         | even in 2024?_
         | 
         | Or maybe because Wirth died recently?
         | 
         | https://news.ycombinator.com/item?id=39473042
         | 
         | (Why NYT is just getting around to an obit, I do not know.)
        
       | glimshe wrote:
       | Delphi = Make Pascal Great Again!
        
       | a-r-t wrote:
       | Delphi was the first GUI-based development experience for me back
       | in '96-'97. It was the next step after learning Turbo Pascal and
       | writing command line programs. I still get warm feelings every
       | time I see it mentioned somewhere. The built-in and third-party
       | components were my favorite part.
        
       | timfsu wrote:
       | I'm still maintaining Delphi software that my dad wrote in the
       | 90s and is actively used today. Delphi (and Windows, which can
       | still run it!) is pretty amazing, even if writing Pascal is less
       | pleasant than most modern languages due to things like having to
       | pre-define all the variables at the top of a block.
        
       | woodylondon wrote:
       | I feel old - remember having access to Delphi 1 alpha as we were
       | one of the first third-party VCL components. I was moving from
       | VB3 and Delphi felt like a major upgrade and super cool!
        
       | drgo wrote:
       | Hard not to feel old when you've developed apps using Delphi 1 on
       | Windows 3.1.
        
       ___________________________________________________________________
       (page generated 2024-02-22 23:01 UTC)