4 ms·
I 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 le
by codr4life 10y ago
I 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 :)
- paxcoder 10y agoDon't know how to put this... The tech/tools you enumerate give me the impression that your problems are not directly related to (commercial) software development.
- codr4life 10y agoWhy not? They're tools, not fashion items. If you dig a bit deeper you'll find an entire category of people writing software using powerful, mature tools. The reason it's not as commercially feasible is that most problems are not really that difficult any more. And since the software won't break every three months because of moving targets, no one will call for your help once it's in place.
- paxcoder 10y agoThe world is big; you can find a few people doing whichever thing, even if weird. But unlike free software developers, companies are still mostly local (as opposed to remote). That's why I'm guessing you're indulging your intellect with these projects rather than building tools to support commercial software development. To be specific, I'd have a hard time imagining a "difficult problem" for which Forth would be the solution. As for Lisp, I realize Clojure is pretty successful, but my best guess for the reason is the JVM.
- i336_ 10y agoIf I was ever asked "why are you sitting around on the computer all day instead of going and doing something productive", I'd say that I was gaining exposure and experience. Limiting that exposure means less of a general ability to easily orient yourself when dropped into unfamiliar circumstances or situations. Driving around randomly uses gas and contributes to maintenance costs, but gives you an irreplaceable spatial idea of your environment that you can't get from scrabbling through a directory, and which you definitely can't absorb from Google Maps or a GPS. I only grasped these ideas quite recently, and have been rather motivating to get me to learn more about the academic aspects of CompSci.
- Sean1708 10y ago> 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 Wow, I didn't realise it was possible to have error messages worse than Oracle's.
- nostrademons 10y agoKinda like Winsock Error 10107, "A system call that should never fail has failed." I recall running into that one at my first job out of high school - once we'd looked up the error code, we had a good chuckle about how unhelpful it was. (It was actually our bug - we were doing a Winsock layered service provider, and the error code indicated that we'd failed to return SUCCESS and hadn't set any additional error info. At the time, though, Microsoft's documentation gave only the one sentence above as a description.)
- radarsat1 10y agoMy one brush with Borland C++'s GUI builder was that the developers were doing things like setting the colour of a UI component based on some state (like the background colour of a text box for example), and then elsewhere in the program, checking the colour of that component to make some decision... I don't blame this on Borland. Nonetheless.. I ran.
- jacquesm 10y agoWhen used well Borland C++ builder was one of the most productive tools for application development on windows. One day someone will make something like it for the web and make a few billion.
- jhoechtl 10y agoIt was called Dreamweaver
- diamondo25 10y agoOh the days of WYSIWYG HTML editors. I still find websites that have the Dreamweaver change-image-on-hover JavaScript. They still work on older browsers though...
- nobleach 10y agoI see jQuery-Jockey code like that all the time. It's indicative of a novice programmer. I can't blame Borland for that. Just teaching someone that the view should never be the source of truth, can go a long way.
- clouddrover 10y ago> 'Error at BLR offset 283729' or similar, offset being the offset in the compiled code where the error supposedly happened; Should have used madExcept or another tool like it. madExcept gives you runtime error logs which report the source code line of origin of any exception in your application. It's incredibly useful, particularly in the scenario you describe: http://madshi.net/madExceptDescription.htm http://madshi.net/madExceptDescription.htm
- mamcx 10y ago(I'm moderator on http://clubdelphi.com http://clubdelphi.com) You experience is more a reflex on the nose-dive that management than what the tool/language is; including the Interbase engine, that was open-sourced then become closed fast. Bad code is normal across enterprise applications, but even taking into account the RAD biased approach of the Delphi IDE is easy to do good coding. What is not easy is to have badly-trained developers doing massive amounts of code. I know, because as moderator in Club Delphi, we answer A LOT of question about VERY BASIC stuff. Is amazing the amount of people that use Delphi (or JS, or .NET or PHP... we have sections for that too!) without read even a basic book or some decent basic entry-level tutorials/documentation. I have thousands of answers that are mostly, "Please read http://www.delphibasics.co.uk/ http://www.delphibasics.co.uk/ (or similar)". And about databases? Dammit, I don't know who is the bastard to blame in turn one of the easiest thing to learn and convince everyone "Nah! how wanna spend 20 minute of basic SQL/Relational fundamentals? Just write sql dammit!". The other bulk of questions I help is about SQL...
- codr4life 10y agoMy experience is 13 years of trying really hard to do the right thing within a sinking ship. Yes, we where young and inexperienced; and yes the foundation of the system was built using what turned out to be the worst turds in Delphi; and yes, I agree that it's possible to build better software in Delphi. But no, really; enough is enough; unless you're absolutely forced to, I see no advantages in choosing Delphi these days.