7 ms·
I work with Delphi professionally. And we maintain a code base of about 150,000 lines of Pascal and about 300,000 lines of T-SQL (written to work in both Sybas
by Svip 10y ago
I work with Delphi professionally. And we maintain a code base of about 150,000 lines of Pascal and about 300,000 lines of T-SQL (written to work in both Sybase and Microsoft SQL).
Delphi may be easy, but it's not simple. Once you get into the meat of things, Delphi's ecosystem truly becomes a limitation.
Delphi's main drawback is its lack of library availability. If you are in the marked for modern technology, using Delphi is a major hindrance. And if you do find something, it's usually not of the same quality as the alternatives for other languages.
I have nothing against Pascal, per say, but I do feel that I am being deliberately terse for the sake of the compiler, rather than for clarity. Indeed, having to declare all variables at the beginning of a method doesn't necessarily make it more clear, sometimes the reverse.
Even a popular tool like Indy for Delphi doesn't correctly implement the HTTP protocol, and therefore doesn't respond as you'd expect on malformed headers, so you have to handle those calls yourselves.
Delphi was leading the pack in the 1990s, but has since fallen behind greatly.
I've written a web server - and maintain a web server - in Delphi, and it's not something I would wish on anyone else.
- clouddrover 10y ago> I've written a web server - and maintain a web server - in Delphi Are you using a framework for that or is it your own implementation? I've found mORMot to be useful: https://synopse.info/fossil/wiki?name=SQLite3+Framework https://synopse.info/fossil/wiki?name=SQLite3+Framework
- Svip 10y agoTo truly understand and appreciate a language, I believe one must write these features first without a framework (that at least let's someone appreciate the point of a framework more). However, in this case, this is our own implementation. And unfortunately, this is due to a large number of corner cases we need to handle (such as Sybase support, own SQL driver support, because of multiple result sets, etc.), I don't believe a framework could replace our implementation. Trust me, though, if we were to rewrite this all from scratch, a completely new approach would be taken. But generally speaking, if a company is still using Delphi, it's probably because they don't have the liquidity to actually re-write their code base.
- clouddrover 10y ago> To truly understand and appreciate a language Personally I just want to Get Stuff Done. > I don't believe a framework could replace our implementation. It's pretty easy to use as much or as little of mORMot as you like. I use it for its webserver and websocket implementation but I don't, for example, use its database layer (using FireDAC in preference).
- traviscj 10y agoDifferent goals are allowed to have different execution strategies.
- chadcmulligan 10y agoIndy is problematic there are other (commercial quality) http libraries around. Indy works and has source available and has a great set of maintainers but it's quality is variable. There are some great sets of component libraries around though - tmssoftware and devexpress are very good, and of course you can always use c.
- Svip 10y agoThank you for the information, as we do use some TMS components. I suppose it was just natural for us to simply pick Indy, but perhaps looking into commercial ones might be something to consider. Although, at this point, we have worked around most of Indy's quirks, so it may not be viable later.
- chadcmulligan 10y agoThis is the one that I'd probably investigate seriously apart from indy for any comms http://www.nsoftware.com/platforms/delphi/ http://www.nsoftware.com/platforms/delphi/. I looked at it many years ago and it seems the best supported.
- johansch 10y agoThis makes me think of when I was writing CGI web apps in Turbo Pascal 6.0 running on Windows 95 using AOLserver (I think) in 1995 or so. (Even back then I remember that it felt odd, like two worlds of computing colliding in an unexpected manner. This was just before I got into Linux/SunOS/Unix - perhaps mostly because it felt like it was the way to for the web backend, and the web obviously seemed like something to bet on.) Turbo Pascal fealt great then (everything was coherent, relatively well-designed, speedy, etc), but after recently looking back at the code from then.. ehh.. we have better things now. (Except perhaps in ease of getting started - for beginners.)
- noonespecial 10y agoThat was always my biggest disappointment with Delphi. Things that were simple, free, and of very high quality in other languages would lead you into a thicket of shady, low quality nagware VCL components that had a tangle restrictions on use and usually a magic DLL blob you were then forced to distribute along with your app. It was a constant infuriating disappointment. Delphi should have been so much more.
- candiodari 10y agoI find that just the default component library of Delphi vastly exceeds what you get these days, for instance in Android or IOS, or (shudder) on the web. Hell, I miss it. Very much.
- mamcx 10y agoDynamic languages have the edge for web development. Web is nasty, badly/poorly "designed", or more exactly, patched to barely work for app development. BTW, Synapse is better (IMHO) than Indy. One of the biggest damages of MS (yes I blame MS first) is that turn anything in a monster of complexity, I don't know if trying to mimic Java or as side-effect that a big company like MS can't understand how do lean app development. Then the management idiots at borland follow MS (like everyone else) and the rest follow both. That is how you get something like Indy and other libraries. Was WAY LATER with the arrival of python/ruby that that become more popular the idea of simple/good design on libraries. Some of it is returning back to Delphi, however, because management price Delphi out of the equation of many of his own customers not exist a good ecosystem to rely on. --- P.D: Still do good web development in languages with static types is a bit harder (even F# struggle with it); and I'm unsure what language of this family show a great experience here.
- mailslot 10y agoI'm not following re: lack of library support. Pascal links with C. ??
- int_19h 10y agoIt does, but you still need to manually declare all the types and functions. And then, since it's C, you also have to deal with low-level stuff like memory management for strings and other buffers. Whereas someone working with, say, C# or Java, can just go and find a library that's native to their language, ready to use out of the box (even if internally it wraps that very same C library). It's the usual curse of a small ecosystem. Things were different back when Delphi was popular.
- mailslot 10y agoOh. I used SWIG to automate a lot of that. It'll build the wrappers for you. The upside with it is that you don't have to wait for package maintainers to update your bindings.
- mailslot 10y agoI'm not following re: lack of library support. Pascal links with C. ??
- brynlewis 10y agoHave you seen http://realthinclient.com http://realthinclient.com ? Easy, fast Delphi based web server. No affiliation, just a happy customer.