18 ms·
I miss Delphi
Why can't web development be as simple as delphi?
- dvh 10y ago- empty form will have 24+16 lines of code in 2 files - you will have to pay 3000 per seat per 6 months to make a website - it only works on windows - hello world have full access to all user's data - you paid 3000 and it still cannot reliably add main icon to your app (XE6) - you cannot increment build number from command line - no job posting in last 12 months - nobody is using it
- jlebrech 10y agofair point, still no one is in the RAD market anymore.
- eb0la 10y agoI guess the RAD market vanished with Rails and its competitors. Back in 1998 - suddenly - it was possible to develop quickly a web application with a CRUD web scaffold behind to start feeding data. The problem we have now we is the need to maintain loads of dependencies and libraries nobody knows who's in charge its development: they're just "popular" and have some documentation. That's the bad part.
- seanp2k2 10y agoVB6 and Planet Source Code also have lots of nostalgia for me. Fun times with AIM toolz, Half-Life cheats, and crackme.exes.
- frik 10y agoHave fond memory of PSC as well. It was cool and featureful before Sourceforge and later Github came along.
- mixedCase 10y ago> you paid 3000 and it still cannot reliably add main icon to your app (XE6) You just gave me a humongous rush of nostalgia from when I was 12 and always had Resource Hacker open to make my apps look "professional" on every compilation. Thank you.
- TimJYoung 10y ago1) I assume that you're talking about code that is generated by the IDE. 2) Agreed, the pricing needs some changes, it's still way too expensive for what they're including in the Professional version: https://www.embarcadero.com/app-development-tools-store/delphi https://www.embarcadero.com/app-development-tools-store/delp... For hobbyists and those on a budget, there's always Lazarus/Free Pascal. 3) Not true, unless you're talking about the IDE. However, there are all sorts of Object Pascal IDEs such as Lazarus (cross-platform IDE) and Oxygene (uses Visual Studio) that can use the same/similar Object Pascal code. 4) I'm not even sure what you're talking about here. Privileges under Windows, etc. has nothing to do with Delphi specifically. 5) Also not sure what you're describing here. You can add an icon to your application pretty easily via the Project Options dialog. One of our best-selling products is developed in XE6, and we don't have any issues with the application icon. 6) This is a build system issue. Most build systems handle version info/manifest generation without issue. 7) Zero ? I think that's pretty easy to disprove. 8) Definitely not true. If what you say is true, then we wouldn't be in business. There are still a lot of companies making a lot of money using Delphi, primarily because they didn't spend a better part of the 00's trying to rewrite their flagship application(s) in C#, just for kicks. Having said all that, yes Delphi is definitely not in the same position it was in the early 00's, but it didn't all of a sudden get a crappier compiler or component library. If you invested in Delphi then for your business, then your applications could still be compiled today on Windows 10 without major issues or re-writes. It's hard to quantify that kind of value, but it's still important. It's the same reason why so many businesses stick with Windows - there's a lot of value in being able to run applications that are a decade old on newer versions of the OS. The fact of the matter is that there are only two major options for writing LOB Windows applications fast today: Delphi and C#. Anything else isn't going to be anywhere near as productive. And, if you're writing applications that need to be distributed to a lot of seats and work on every version of Windows from the past decade, then using .NET is going to be somewhat problematic.
- Gys 10y ago> - nobody is using it There is a lot of legacy Delphi code out there. I make a good living by supporting some companies. And they have no intention at all to replace / rebuild any of it because that will be much more expensive. As is often with legacy code.
- TurboHaskal 10y agoWhat I miss is Pascal. Delphi and other drag & drop RAD tools are easy, not simple.
- hjahre 10y agoWhat about Lazarus [http://www.lazarus-ide.org http://www.lazarus-ide.org] or Free Pascal [http://www.freepascal.org http://www.freepascal.org]?
- TurboHaskal 10y agoIt's pretty cool.
- dozzie 10y agoI never understood why would anybody choose Pascal over Ada when talking about languages alone.
- pjmlp 10y agoBecause Ada compilers used to be targeted to the military, aviation and corporations with big pockets. Only in the last decade we saw the language getting an usable open source version thanks to the work of Ada Core and their contributions to GNAT. All other surviving Ada compilers are commercial, following the same price practices as usual. So many of us in the Pascal golden days were only able to buy Pascal compilers. Just to put this in perspective, Turbo Pascal for Windows 1.5, the last TP version before Delphi was created, would be around 100 € on today's money. An Ada compiler would be at very least 5K €. Also despite the famous "Why Pascal Is Not My Favorite Programming Language" assay from Brian Kernighan, the majority of Pascal compilers supported the UCSD, Apple and Borland extensions, so the actual Pascal dialect used by most of us was quite close to Ada83 in terms of features (minus generics). In 2017, given the existance of GNAT, SPARK and updated Ada standards, Ada would be probably a better option.
- candiodari 10y ago
- jarjoura 10y agoDelphi had its place in 2001 along with NeXT's WebObjects. Products of their time for sure. However, the developer inspectors alone inside of Chrome and Safari are 100x more powerful than any of those old UI tools of the past.
- hboon 10y ago100x more powerful than the Visual Builder in VisualAge suite of products [1] and Dolphin Smalltalk's MVP-based tool and code browsers [2]? While those (along with Delphi's VCL) are now a shadow of their past or completely defunct, I doubt anything comes close to them technically, let alone 100x more powerful than them. PS: I just missed that this is about Web development though. Will just leave the comment here for posterity. [1] http://www.edm2.com/index.php/VisualAge_for_Java_Professional http://www.edm2.com/index.php/VisualAge_for_Java_Professiona... [2] http://www.samadhiweb.com/blog/2015.12.31.dolphin.nbsqlite3.html http://www.samadhiweb.com/blog/2015.12.31.dolphin.nbsqlite3....
- acqq 10y agoHave you tried to use VAJava at that time (middle nineties of the previous century)? Or maybe you were involved in producing it, or simply like Smalltalk? "As mentioned before, VAJava is written in SmallTalk. As expected, the environment is not going to set any speed records for Java performance" "I used the JGL benchmarks to test the performance of the Java virtual machine. When running under VAJava, the benchmarks took significantly longer to run than they did under version 1.1.5 of Sun's JDK. Therefore, I would not recommend VAJava for testing applications which are primarily computational." I've tried something from VisualAge at that time and it was a pure catastrophe. My conclusion was that it was bought only by the enterprises who decided to force their developers to "use IBM" no matter what. Maybe VAJava was different?
- hboon 10y agoI only have experience with VA Smalltalk and VA Java. I used their WebSphere suite of products years later. > I've tried something from VisualAge at that time and it was a pure catastrophe. My conclusion was that it was bought only by the enterprises who decided to force their developers to "use IBM" no matter what. On the contrary, VAS and VAJ was one of the most non-IBM-like products, compared to say Rational Rose or Eclipse (ironically, Eclipse was supposed to be a descendent of VAJ) or WSAD which is built on it. > Maybe VAJava was different? VAJ is basically the Java language bolted on the Smalltalk paradigm - code browsers, workspace, method-level versioning, etc. Smalltalk is an acquired taste, so I can see how VAJ can be a turn off for some. > it was a pure catastrophe. Do you remember why it felt that way?
- pjmlp 10y agoMe too, that is why I try to stick with native development with Java, .NET (all its variants), Android, iOS stacks whenever possible.
- pron 10y agoI recently had to write a desktop GUI app, and chose Electron[1] because I figured that for once I'd try something new and hip with lots of OSS libraries because it wasn't too critical and I needed to pass it on to someone else and figured there are lots of frontend web devs around. Well, it's kinda OK, but man, that thing is held together with spit and baling wire, and you feel like it's all going to come down with the slightest breeze. The previous GUI app I'd built was in Java/Swing, and while I wouldn't call the experience particularly pleasant, at least it felt solid. [1]: + TypeScript + Polymer
- pjmlp 10y agoWhat I mostly hate in webdev is exactly that, helding together with spit and baling wire, a pile of HTML tags meant for document publishing, CSS and JavaScript, while pretending the browser is a proper application VM. Than switching browsers, including the same one but a different version, and start implementing workarounds. Multiplying this experience for each browser/version/OS required by the customer.
- jug 10y agoIt's at least better than it once was, heck everything is better with modern Javascript etc., transpiling from TypeScript, tooling or whatever. But yeah, the issues with the underpinnings is in my opinion still funny enough exactly as readily apparent as ever.
- pron 10y agoThe only thing that pleasantly surprised me while working on that project was Typescript and its IDE support (vscode). Java is still easier overall, but given what they have to integrate with (untyped libraries and legacy code, separate type declaration files) it's pretty damn impressive.
- partycoder 10y agoYou have major open source libraries like GTK, wxWidgets, Qt. Also .NET, Java which offer multiple ways of doing forms that are tied to the target platform. In addition, RealBasic (now Xojo) and... Delphi. After Borland, other companies continued working with Delphi, namely, Embarcadero: https://www.embarcadero.com/products/delphi https://www.embarcadero.com/products/delphi Now, the prices can be a bit prohibitive. I would try one of the open source ones.
- insertnickname 10y agoNote that Vala is apparently more or less dead.
- pjmlp 10y agoYep, GNOME seems to be adopting Rust, with librsvg and GNOME Builder being the first places to spot it.
- partycoder 10y agoAwesome. I will take a look at it, it seems I haven't kept up with the times. From what I see, it comes with a profiler, which is an excellent addition and the UI seems to be very similar to XCode.
- deleted 10y ago[deleted]
- mindcrash 10y agoAfter Borland, other companies continued working with Delphi, namely, Embarcadero You mean after Borland destroyed themselves with a over-the-top business strategy Embarcadero could swoop in and buy several Borland assets and trademarks (Delphi, C++ Builder, Interbase) rather cheaply. Most of the people I knew who worked with Delphi moved on to .NET and Visual Studio. Main reason being that working with Windows Forms or WPF and the .NET BCL in combination with C# is pretty similar to working with the VCL and Object Pascal. Common factor being Anders Hejlsberg [0]; one of the biggest drivers behind both the Delphi and .NET ecosystem. [0] https://en.wikipedia.org/wiki/Anders_Hejlsberg https://en.wikipedia.org/wiki/Anders_Hejlsberg
- oneweekwonder 10y agoMe to! I'm still of the opinion Lazarus apps looks the best cross-platform, compared to QT, GTK, wxWidgets. I wonder if there is work out there for objects pascal. Because I would like to apply. But for now... twoottwoot* hybrid train, here we come :'(
- pjmlp 10y ago> I wonder if there is work out there for objects pascal. Because I would like to apply. Delphi is still kind of popular in Europe, we even have conferences. https://entwickler-konferenz.de/ https://entwickler-konferenz.de/
- petra 10y agoWant simple development ? go for low-code environments, that simplify a lot and use gui tools where possible(models, workflows, forms,etc). There are plenty tools of those sort, and at least the best of them(mendix/outsystems) may scale pretty well in complexity of applications created in them.
- realharo 10y agoSimple is subjective. I find the React way of making web UIs, where you just write a `render` function, way simpler than manually mutating existing UI widgets to match the data every time it changes. Or some weird manual data binding via model wrappers. Maybe it's a tiny bit more code in the very beginning, but it becomes worth it very soon (as soon as you get past hello world pretty much). That being said, we could always have better tooling, even for this paradigm.
- muraiki 10y agoYou may be surprised to learn that React's paradigm is basically how Windows GUI apps have been written from 1.0 up through at least Windows 7: https://bitquabit.com/post/the-more-things-change/ https://bitquabit.com/post/the-more-things-change/
- realharo 10y agoMaybe there's a similarity in how it worked under the hood, but the users of those APIs most definitely could not write UIs in that style. In Win32 code, you still have persistent windows with child "windows" (UI controls/widgets) on them, that have UI-specific internal state (such as text, position, links to their own child windows, etc.) that is different and separate from your application's state (variables, data structures). Then you have to manually mutate (SetWindowText, ListView_InsertItem, CreateWindowEx, DestroyWindow etc.) the UI when something in your application's data changes. Unless you don't use any native UI controls and just draw everything manually I guess, but people generally didn't do that.
- candiodari 10y ago> In Win32 code, you still have persistent windows with child "windows" (UI controls/widgets) on them, that have UI-specific internal state (such as text, position, links to their own child windows, etc.) that is different and separate from your application's state (variables, data structures). I don't get it. This is a property of every UI toolkit. In other words, this goes for the web as well. In the underlying structures, all data exists independently of your application. If you mean that there's libraries for the web (angular 1) that make it easy to pretend this isn't true, that the contents of your variables are really on screen, similar libraries exist for windows apps as well. Hell, all of those database things like Access, in a way, have just this concept (the language/tooling pretends that the form field for field X IS field X, through bidirectional synchronization). Also, except for windows 3.0 apps, nobody ever called things like SetWindowText themselves. Persistence, and the lack of options to turn it off is one the of major pain points with the web as a platform. Even canvas is persistent, which makes no sense at all to me. And for me at least, there's two huge differences. On windows, very big apps could work together and be open a dozen at a time. A dozen of single-page-app tabs will, on the other hand, slow my Xeon-backed chrome to a crawl. Secondly, I have never seen any webapps that approach the complexity of normal windows apps. The most complex web apps currently are things like Google Docs, and the average is something like a webform. How many years of the web platform do we need to conclude that it has found some way to prevent feature-full applications from being written ? I've developed plenty of applications for both windows desktop and for the web, and it's pretty clear to me: the web enforces extremely complex methods of doing things. Markup, javascript, RPC (can be HTTP), other language, another data language is the default layer. Adding a single field to a single record type requires knowing HTML, JavaScript, HTTP (how to use HTTP and encode stuff in it), and then backend language (let's say Java), then SQL. ALL of them need to be modified to just modify a record type. The web is extremely lacking in performance, and is far, far more complex than it needs to be. "Worse is better" ... Indeed.
- chadcmulligan 10y agoThere's this http://www.unigui.com http://www.unigui.com make all your web apps in Delphi :-), they've been in beta for a long time but seems to work.
- acqq 10y agoGood find. Some opinions: http://stackoverflow.com/questions/3649969/what-do-you-think-of-unigui-the-framework-for-creating-web-applications-and-win/3658904#3658904 http://stackoverflow.com/questions/3649969/what-do-you-think...
- chadcmulligan 10y agoit has some negatives imho: No source for bits of it which makes it risky since it seems there's only one guy developing it. Looking at it's comms it seems pretty lightweight, though it does generate a lot of messages. Last time I looked the Sencha library it used was fairly old That said if you've got a low-medium weight web app you want to build and don't care if it looks like windows, then it's dead easy (really 1 day or so, it's that easy).
- clouddrover 10y agoVirtualUI is another interesting way to have a remote web interface to a Win32 Delphi app. Not necessarily scalable to a large number of users but a nice option if it fits your requirements: http://www.cybelesoft.com/Thinfinity/VirtualUI/ http://www.cybelesoft.com/Thinfinity/VirtualUI/
- chadcmulligan 10y agoLooked at this a while ago and it had some problem, though can't remember what it was... Edit: maybe it was per seat licensing? - client didn't want that
- jlebrech 10y agothat's impressive. we need sometime like, for polymer one day?
- Joeboy 10y agoI guess this is rather tangential, but I recently returned to professional web development and I'm finding a shocking amount of the work is either rewriting websites according to the whims of SEO consultants, or updating things to new releases when the old versions stop getting security updates. Neither of which are really issues for Delphi projects.
- mtkd 10y agoIf anyone using Delphi to build big apps in early 90s was told that to do the same function in 25 years time they would need HTML, CSS, JS, Ruby or PHP or similar, some SQL, some Rust or Go and probably a few DSLs - it would take months longer to build - require multiple servers - and would need more test code than app code to get it 98% as stable - you wouldn't have believed a word of it. Every single time I have to use a grid control online I shake my head. I strongly suspect the generation after this will rediscover the power of desktop apps and some of the dev tools that were around at that time. Web interfaces just don't work efficiently for some roles - especially in enterprise environments.
- supercoder 10y agoYou're still using Rust / Go ? I've been using Luna on the Rocket stack, with Huston for distribution and Apollo for stack management, and it fixes mostly all the problems you've mentioned.
- hueving 10y agoI seriously can't tell if those are things or not. I'm so far behind!
- gpderetta 10y agoI invoke Poe's law. I'm out of the loop of the cutting edge of UI stacks, so I genuinely do not know whether you are sarcastic or sincere...
- Yetanfou 10y agoJust make sure to avoid Apollo release nr. 13 as it is rumoured to contain a nasty bug. Something with some storage method causing it to blow up I think it was.
- btschaegg 10y agoI thought someone proposed a fix for the AGC module? So, you should be safe with v. 11...
- kriro 10y agoI only wrote a couple of non-GUI toy programs in Pascal "back in the day" and did some disassembling for fun because someone told me it won't look like C disassemblies (they were right!) but tbh, Delphi from what I remember (only saw it used, never used it) isn't wow-ing me more than current state of the art GUI-builders (like say Storyboards for the Apple ecosystem) so I suppose it's mostly nostalgia? Not sure comparing it to web development is fair but (all those wicket corner cases aside) I actually like the simplicity of web layouting as well. With a decent reset or bootstrap or whatever (and maybe flexbox) I think pure HTML+CSS is very direct and can be prototyped rather quickly via "textfile change and see".
- Svip 10y agoI 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.
- Fredej 10y agoWe're maybe 50-100 Delphi developers and most of us can't wait to jump to C#. To each his own :)
- clouddrover 10y ago> most of us can't wait to jump to C# Why?
- nottorp 10y agoLittle historical fact, Microsoft nicked Andreas Hejlsberg, the creator of the Borland flavor of Pascal (starting from the Turbo Pascal days), and had him architect C#. So if you trust microsoft, or you're doing boring bussiness software where you don't care about anything but the paycheck, C# may be an improvement.
- pjmlp 10y agoYep, Delphi's soul lives a little bit in C#. Also a reason why I was quite disappointed of .NET being NGEN + JIT, instead of pure native compilation like Delphi. At least, WP 8.x brought us MDIL, followed by .NET Native and CoreRT. Also Anders and his team work on Typescript is quite good.
- jlebrech 10y agoyes, it's the same DNA. my missing Delphi I mean IDE that inherited from it's philosophy. text editors and command line scripts seem like a backwards step.
- erikbye 10y agoI'd happily write anything C# for a paycheck over anything .js.
- paulajohnson 10y agoThe problem with Delphi and its relatives is that they are walled gardens. As long as you are working on the kind of application envisaged by the designers (roughly, CRUD with a SQL backend) everything is easy. As soon as you step outside that domain your foot disappears into a sucking quagmire.
- barrkel 10y agoI don't really agree. Delphi made writing native code on Windows really pleasant, primarily because it had (a) a built-in string type with reference counting and (b) strong conventions around object ownership and construction / destruction. The built-in string type interacted really well with the Win32 API, and it was universal - there wasn't one string type to deal with the platform, and another string type for your own code, and yet another string type for third party code, all too common in C++, especially in the 90s. The object model - zero-initialized reference types with a Destroy method that was safe to call on null values - avoided one of the biggest pains in C++ exception safety, in particular safely destroying partially constructed instances. The idioms in Delphi don't catch all cases (e.g. if a destructor throws, you're potentially going to leak), but they work really well 99% of the time without convolutions or RAII wrappers. Delphi did exceptions very well too. Because of the strong conventions around try/finally to wrap creation and destruction of objects, exceptions never felt dangerous or uncontrolled. I don't think anyone who used Delphi in anger pined for nothrow, explicit exception specifications or wholesale replacement of exceptions with error codes. The point is that it was a high-level native language language that was far easier to use correctly than C++.
- anotherevan 10y agoTwenty years ago, I wrote an application for the taxation office to help businesses calculate payroll tax. It was written in Delphi for maximum portability, because it had to run on Windows 3.1x, 95 and NT and was distributed to 16,000 businesses on 3.5" diskettes. Talk about old school.
- bbcbasic 10y agoAh the days when you only had to care about Windows.
- Mister_Snuggles 10y agoWhile I don't necessarily want a Delphi-like thing for Web development, I do want a Delphi-like thing for developing GUI desktop applications. So far I've tried out a few things, but for some reason they don't "feel" the same as Delphi did. Maybe it's because I'm older and have moved on to different tools, or maybe it's because I haven't made the time to properly invest in these. Anyways, here's what I've played with: - NetBeans - Has a form builder, I'm comfortable with Java, it's cross-platform enough. I'm not sure why I've never used it for my personal GUI apps, even though I've built a bunch of little things to use for work. - SharpDevelop - Looks great, checks all the boxes for doing GUI development, but I'm not comfortable enough with C# or VB.NET to use it effectively. - Lazarus - Currently playing with this now. Feels a lot like Delphi (as it should!). I'm disappointed in how much Object Pascal/Delphi I've forgotten though. It brings back a lot of good memories though.
- inlineint 10y agoDid you try Qt? Creating GUI with qtdesigner is similar to Delphi, and Qt Studio is well integrated nowadays.
- Mister_Snuggles 10y agoI haven't yet, but it looks like something worth checking out. Thanks!
- kodablah 10y agoI think the primary downside people find with QT is the language support. People want cross-platform, native UI (i.e. not GTK) in a statically typed language higher level than C++. Even Go versions require a long compile time and don't work w/ the msvc toolchain and (IIRC) QT quick and QML are a bit hamstrung if you want to do advanced things with controls. I would love full QT with a modern, high-level static language that is not hobbled on Windows. .Net may be the first to get there with a quality cross platform UI (Mono's WinForms are a bit hobbled too).
- spangry 10y agoI'm a little embarrassed to admit it, but just today I was thinking about how I miss Visual Basic 6... Such a great IDE for slapping together a crummy GUI with buttons, textboxes and labels all slightly misaligned :) I'd love to have something similar for Python.
- swearfu 10y agoI miss C++ Builder
- novalis78 10y agome too
- pjmlp 10y agoI thought C++/CX + UWP could fill that gap, but it isn't quite the same, but still way better than VC++ + MFC/ATL ever was.
- zeroc8 10y agoDid you see C++/WinRT? https://msdn.microsoft.com/en-us/magazine/mt745094.aspx https://msdn.microsoft.com/en-us/magazine/mt745094.aspx Now that looks promising.
- pjmlp 10y agoYes, it is still pretty much work in progress, lacking many C++/UWP features to be usable for UWP applications, specially regarding VS XAML editor, Blend integration and UWP controls. Microsoft is promising feature parity with C++/CX when VS17 comes out, lets see. In any case, .NET tends to have the spotlight for app development on the MS stack, with C++ getting the low level high performance work, so C++/CX is nice, but as way to expose those low level APIs as UWP controls, just like C++/CLI does for .NET.
- laythea 10y agoBack in the day, this was nice!
- jlebrech 10y agoI'm missing any IDE with a tight integration with languages and libraries, especially when you can quickly whip up a form on top of some code.
- eweise 10y agoI miss Powerbuilder
- codr4life 10y agoI did professional development in Delphi for 13 years, writing and maintaining a sprawling 700k line reservation system. I don't miss it much. It was a great learning experience to have to fill in all the gaps in the standard libraries by twisting and turning Pascals rigid rules into something semi-useful; writing foreign function interfaces to WinSock to get around the limitations in the provided toy socket implementation; finding ways to convince the over-engineered pixie-dusty data-layer to issue effective SQL; and trying to keep up with Borland's, nay Inprise's, wait Embarcadero's, ever changing priorities and price hikes. I don't even find the GUI-builder that amazing. It's very easy to use, and up to a certain scale it's very convenient; but it encourages and rewards coupling the implementation to the interface at every turn, making any attempt to do the right thing an uphill struggle. One of the most painful memories I have from software, the stuff that haunts me in my dreams; is writing stored procedures for Delphi's favorite database, Interbase. Whenever you did something wrong, it would give you an error saying 'Error at BLR offset 283729' or similar, offset being the offset in the compiled code where the error supposedly happened; thereby forcing an inhuman level of discipline when making changes. I had to write and maintain thousands of lines of that bullshit; since by the time we dug that deep into the performance of the BDE, the entire application was fused to it on UI level. Switching meant going through every single stupid form in the application and carefully translating event logic, bindings and properties to pure SQL. Thank you Borland, but no thank you; I'm out.
- revanx_ 10y agoWhat language did you move to?
- codr4life 10y agoThat early experience gradually got me motivated enough to learn more powerful tools. These days, Common Lisp (https://github.com/codr4life/cl4l https://github.com/codr4life/cl4l) is my preferred tool for most problems; but I'm gradually learning to like Forth as an embedded DSL (https://github.com/codr4life/lifoo https://github.com/codr4life/lifoo) and might be convinced to write C (https://github.com/codr4life/libc4life https://github.com/codr4life/libc4life) under the right circumstances. I swore early on to never, ever settle for crumbles from the design table again. Then I kept on learning the same lesson over and over again through most languages in common use, until I finally accepted that nothing but simple, powerful, general purpose and free was going to work for me. Mysterious ways, indeed :)
- meredydd 10y agoI'd love to hear what you think of Anvil (https://anvil.works https://anvil.works) - it sounds like exactly what you're asking for. It's a very Delphi-like (or VB-like) tool for building web apps: Drag and drop for visual layout, then write code with a simple object model behind it. (It's 2017, so Python rather than Pascal - but more similar than it is different. Also built-in git repo, a built-in database, code completion, integration with services like Google Drive/auth/mail, etc.) I'm a cofounder, so I'm interested to know whether it scratches your itch.
- Mister_Snuggles 10y agoIf this could make desktop apps, I'd be all over this. A thing like Lazarus that uses Python as the language would be pretty interesting.
- degenerate 10y agoI just tried the demo "MyCorp" anvil app: https://secure-portal.anvilapp.net/ https://secure-portal.anvilapp.net/ It definitely feels bloated -- slow loading, tons of JS, overly engineered. Perhaps the demo should do something more substantial.
- meredydd 10y agoThanks - yeah, there's a lot of optimisation still to do on load times. (We need some JS to let you write client-side code in Python, but we know we can load it a lot faster.) I'm intrigued what smelt "overly engineered" to you, though. We're trying quite hard to keep the programming interface simple, so if something there offended you, that's good to know. (Or if it was another comment about load time, then...yeah. That just went up the bug tracker a bit.)
- degenerate 10y agoI mean the demo feels over-engineered. Create an account, activate account by email, and login... just to download a 1-page pdf. I understand that the point of the demo was to show the ability to create a working web-app, but a better demo would showcase something with more meat than a single file download. Perhaps a simple twitter clone with file attachments or something along those lines instead of a file download app that has no other functionality. Thanks for the reply!
- Entangled 10y agoI miss Visual FoxPro. I have never been more productive in my whole life. Of course compared to today's languages that's an abomination to say, but the tools, the data browser and the sql embedded in the language made it shine on its own merits.
- dragonbonheur 10y agoWhy are today's languages better when none of the tools have caught up with what we had then, both in terms of efficiency and simplicity?
- Entangled 10y agoThe languages have advanced in so many directions, I just took a look at old foxpro code and it was damn ugly, all caps and ENDIF ENDFOR everywhere. That's ugliness if I've seen it. Now tools, they were unbeatable in their simplicity and effectiveness as you say. A data browser is the most powerful UI and the ability to connect it with a data source by its cursor name can't get any simpler. Try doing that even in Swift and it is a rain dance of sorcery to make it work. A data source to a report, bam! As simple as that. A data source to a table, bam! to a form, bam! to any UI control, bam! That was productivity if I've ever seen it.
- int_19h 10y agoI miss FoxPro from pre-visual days (2.5).
- _pdp_ 10y agoBack in 98/99 I wrote an app on Delphi for my dad to run his business. He is still using it today (on a modern OS) although he reports bugs that I no longer can fix.
- TimJYoung 10y agoI hope that isn't considered too much self-promotion, but it's on topic. You can have what you want with our product, Elevate Web Builder. It creates single-page web applications in a Delphi-like IDE: http://www.elevatesoft.com/products?category=ewb&type=web http://www.elevatesoft.com/products?category=ewb&type=web (examples at the bottom) We're releasing version 2.06 shortly, and it has much-improved designer drawing performance and design-time/run-time layout performance. The layout performance improvements greatly improve the initial load performance. The Delphi RAD model of development is actually perfect for single-page web applications because you're inherently only writing one layer of the application, the UI.
- lallysingh 10y agoAFAIK, HN typically encourages plugging your own product.
- markoutso 10y agoThat's very impressive. Do you have an example for http://todomvc.com/ http://todomvc.com/?
- TimJYoung 10y agoGood question - the quick answer is no, but we hope to put one out soon.
- revanx_ 10y agoI couldn't help but notice that your component library doesn't include a TreeView component, do you have this planned for the near future?
- TimJYoung 10y agoYes, it's the one glaring hole right now in the component library, besides a charting control. Both will be addressed before summer. Our upcoming 2.06 release includes a new menu bar control (horizontal), which was also a sorely-missed control.
- gregmac 10y agoIn short: because the web is inherently stateless and it's much harder to deal with than stateful UIs. I last used Delphi back around the turn of the century, so I'm remembering it as a drag-and-drop Windows UI framework/builder. ASP.NET WebForms is the most similar thing I've used (and it's been at least 5 or 6 years since I last really used it). I would not recommend investing a lot of time in it. WebForms is great when you are starting. It is drag-and-drop, with 'controls' like text boxes, drop-downs, check boxes, grids, labels and pictures, and there are a ton of 3rd party control toolkits. WebForms abstracts away the stateless nature of the web, and attempts to make it look like it's stateless. The trouble is it's a leaky abstraction, and at some point it's unavoidable that you will have to deal with it either indirectly or directly. Indirectly, you deal with slow load times as a crazy amount of 'state' storage is required to maintain the abstraction. I dealt with an app at one point that had a grid with many text box controls in it, where the 'state' information was well over 1MB -- which gets sent as part of every request to the server. As your app gets more complicated, you start running into more direct problems. In my experience, as soon as you're build any type of interaction that's not something built-in (can be done by clicking in the IDE), you start fighting with the framework. The lifecycle is necessarily complicated in order to support the stateful abstraction, and you must understand it very deeply to know where to put your code. The lifecycle is a series of events that happen between initializing, loading posted data, rendering output, etc. At some point you realize the framework is getting in your way more than it is helping, and switch to just developing for stateless directly (which basically means MVC, or a stateful single-page app + stateless REST API).
- TimJYoung 10y agoSingle-page web applications that get loaded once and stay loaded, and are primarily driven by JS code, don't have any of these negative attributes. State is kept in memory, just as it is with a desktop application. There is no need to shuttle around large amounts of state, other than what is needed to authenticate against/communicate with the back-end APIs.
- bbcbasic 10y agoI remember having to hack new controls e.g. options that did away with the viewstate. Then had to roll my own event handling as the events which rrelied on comparing the viewstate will the latest value would no longer fire. Great times.
- cwbrandsma 10y agoThere is an inherent "HOLY SH*T" moment that happens to all desktop developers when they transition to Web. You are used to one type of interaction when doing native that is pretty simple and straight forward. The real killer is the move to asynchronous development for everything. In Delphi (and C# desktop), most calls can be made synchronously be default, and simply. No so in the web (yes, you can do synchronous web calls...but you shouldn't). And that is ignoring the whole statically-type-and-compiled language to JavaScript issue. And then dealing with a huge array of libraries, patterns, and best practices that are completely unknown. Then comes out "why can't this be simple like what I was used to?" Actually, what you were doing wasn't simple at all, you were just used to it. You understood the complexity, so it seems simple. Web development also becomes simple once you understand it. But first you have to be willing to learn again.
- mamcx 10y agoBecause web development is broken by design. Or more exactly, web development was turned (badly) into app development.
- pengo 10y agoI started developing in Delphi after Delphi 1 came out, have worked in Java and C++ along the way, but I've been largely a LAMP stack web developer for the last ten years. I've looked at the code output from various Delphi web builders; it's not pretty, not inherently responsive, not accessibility compliant. I still use Object Pascal in Lazarus for writing widgets and utilities. It cross-compiles to Linux, MacOS and Windows and lets me do things that would be difficult or impossible with a web app. But these get about 1% of my attention.
- stijnsanders 10y agoI do my web dev in Delphi: http://yoy.be/xxm/ http://yoy.be/xxm/
- peter_d_sherman 10y agoThis is why: https://www.joelonsoftware.com/2008/03/17/martian-headsets/ https://www.joelonsoftware.com/2008/03/17/martian-headsets/
- BatFastard 10y agoIf you haven't written apps in Delphi, you can't appreciate how easy it was to write interactive GUIs. It was a freaking miracle, and I wonder how we have managed to lose SO much ground.
- pjmlp 10y agoWe let the kids run the show and turn a platform for interactive documents into some sort of VM.
- TomMarius 10y agoWell the bigger problem is it's (apparently) what the customer demands. The problem being that we, the old and better developers, didn't come up with a better solution than these kids.
- Alex7691 10y agoActually, that's not what customers demand. Customers demand a SOLUTION. IT managers demand less work and that's why web is so prevalent. IT teams just need to run a script to release version 2.0 of your application, being used by hundreds, thousands or millions of users.
- robocat 10y agoWhat killed Delphi: 1. Embarcadero nee Borland always building new "cool" features (e.g. IoT) rather than core functionality (64 bit only recently, compiler slow, IDE crashes). 2. User base now mostly supporting old applications so require high level levels of backwards compatibility (with poor or broken APIs). 3. Loss of good libraries. Originally they had good libraries (and culturally the source was available for a few extra $$). Now libraries are poor, there is little incentive to make new libs, and the target is fragmented for library writers (many Devs are stuck on a variety of older versions - upgrades are costly, and upgrade reliability is erratic).
- michalpt 10y agoI loved Delphi as well. I remember developing games with Delphix and then GLScene :)
- jcalfucura 10y agoIn Delphi, IT IS that simple to create Web Apps: - For fast drag and drop RAD style development use UNIGUI, great interfaces, plain and simple delphi development. - If you want a modern, optimized and responsive Web UI in full javascript (but with typed and gentle Object Pascal), use "Smart Pascal Studio", it´s like typescript but includes a GUI editor, widgets, node.js backend etc. check out their full js desktop https://www.youtube.com/watch?v=ee_kXdueV_4&feature=youtu.be https://www.youtube.com/watch?v=ee_kXdueV_4&feature=youtu.be (impressive). - If you want to bring your existing client-server delphi apps to the web, use Thinfinity. - For a incredibly fast, low resource consumption, REST ready ORM, use MORMOT. - For a nice, elegant and simple ORM use TMS Aurelius. Please keep an eye in Smart Pascal Studio, it shares some ideas with Typescript but their tools are way ahead in development, they started some time before Typescript, it is a glimpse into the future of Web-desktop-mobile development. And don't forget FMX.