[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)