My employer has a multi-million line codebase in Delphi which is still under active development. I mostly do web development, but every once in a while I go back in to build a feature on the Delphi side of the fence.
The IDE itself is dated and no longer competitive with the best of the modern IDE's. The language and API however is updated and productive. You just need to get over Pascal-style syntax instead of C-style, and you are just as productive in it as if you were using C#.
Why is delphi still hanging on?
1. It delivers executables that need no dependencies. No VM's, no runtimes, no add-on dll's. Underneath it only needs x86 and win32 (unless you're building for mac, android or iOS, which it also supports). I wouldn't be surprised if our software still ran on windows 2000. Since the code is native, performance is never a problem even with wildly inefficient code.
2. It lets you build GUI software really quickly. Productivity in delphi for someone used to it matches any "modern" GUI development platform. Sure, the IDE misses a few features that competing IDE's have, but on the plus side it compiles ridiculously fast (a full build of 2 million lines takes less than a minute on a single core).
3. Delphi is the easiest platform by far to have legacy code on, because the maintenance cost is very low. Delphi's contemporaries (classic VB, MFC) have all gone through major upheavals. Delphi has managed to modernize the API's without breaking legacy code too badly (they even managed to elegantly retrofit unicode into the platform). This is why codebases that are based on Delphi somehow never get ported away from it.
Delphi's competitive with other desktop and mobile development platforms, even at what they're charging for it. What they're charging for it is the problem though. Only people already using delphi buy delphi, and so the perception is maintained that delphi is effectively dead, even when it isn't.
I am not entirely convinced that unicode has been retrofitted elegantly into Delphi. A lot of legacy functions using string (read: what is now AnsiString) have been modified to still support string; so AnsiPos() for instance takes string, unless you use AnsiStrings unit. And that's just confusing.
In a code base like the one I work with all the way back to Delphi 3, there are other legacy issues as well; such as the late arrival of TBytes, which meant that in olden days you had to handle binary data in strings. Now suddenly they are unicode strings are far less reliable for unicode.
Of course, the compiler doesn't warn you about that, because it isn't clear what you were doing back then. Still, took us a year to get our code from Delphi 2007 to XE3.
I am not saying Delphi is the worst thing ever, but I wouldn't say its legacy support is as elegant as you put it. There are issues, that are not noted by the compiler (unlike the deprecated flag for old functions and the like).
Also the fact that it used to have both {$ENDIF} and {$IFEND} is amusing, but at least now they only want one; but you cannot change it because then it would break code that needs to be compiled in an older version of Delphi.
Edit: But I will say this: I do believe unicode was introduced into Delphi as elegantly as possible. It's very hard to do truly elegantly, I'd imagine.
The great thing about Object Pascal is that, unlike C or C++, it was designed to compile really fast. Pascal units completely remove the burden of C++ header files. In the end, you are almost as productive as with a dynamic language and you still have compiled code. I haven't seen another language to get even close to the balance achieved by Delphi in this respect.
After building gui apps in c++/mfc, I tried delphi. It was amazingly productive. The closest thing I can compare it to is going from java/tomcat to rails; that feeling of getting so much actual work done is what makes delphi (and rails) stick.
If you want to try Delphi Lazarus with Free Pascal (http://www.lazarus.freepascal.org/) makes for a pretty close FOSS reimplementation of the same Object Pascal language and the RAD IDE functionality. The IDE is reasonably mature but sadly not fully compatible with Borland Delphi 7, so you can't quite rely on a Delphi tutorial. It is cross-platform. The language combines reference counting and manual memory management, has modules and handling strings in it is pleasant compared to (vanilla) C or even C++ (which it is meant to compete with). Unfortunately, last I checked the Unicode support was imperfect.
One thing I've been wondering about lately is if Free Pascal is a good alternative to C or Go for shipping self-contained static binaries to run on *nix. I haven't tried it yet but the small(ish) static binaries the Free Pascal compiler produces and the lack of libc dependencies in theory make it an attractive option if you want to write something to run on OpenWrt on your router. Has anyone here used FPC for that? How are the MIPS and ARM backends?
I pick up Lazarus ever so often because I loved Delphi (it was my competitive edge; everyone was doing VC++ and I ate their lunches. And dinners.) back in the day. Lazarus as being FPC + libraries is great, but the IDE is still really bad in my opinion. It is unstable to say the least. I wish it was more solid or that Embarcadero would just get smart and open source the whole thing so it actually would have a chance. I'll keep checking though...
I've used various Delphi versions, a little, for personal projects [1], off on on, and liked it. A pity that the free Turbo Delphi Explorer version was discontinued. (TDE was released and then stopped when Borland was in its CodeGear incarnation some years ago.) As others have said, hope Embarcadero comes out with a low-end free or low cost version of Delphi. (They did have a Delphi XE Starter Edition, not sure if it is still there.) I've also read off and on that Delphi (and other Borland products) were/are big in Germany and other European countries.
If you want to compile static Linux binaries, Musl libc is your best bet. http://www.musl-libc.org/ - works with most things, and it is small. It has Mips and Arm support.
I wrote DDJ's first review of Delphi back in 1995. Maybe it deserves to die, or not, but I get a kick out of the fact that it is still around and sparking discussion. At the time of release its features were quite innovative, and very accessible to the Turbo Pascal programmers (like me!) who were a big part of Borland's customer base for tools. If I recall correctly a lot of Delphi's DNA ended up in C++ builder, and then a lot of the C++ Builder guys ended up at Microsoft... so Delphi has earned its place in the anthropology of our business.
Software has got to be one of the most interesting industries, where among genuinely skilled people you can have such shockingly divergent opinions on really quite simple questions.
From the article:
> Being highly productive has seen single Delphi developers produce software that would otherwise require a team of 5 developers. I’ve been in a team of 3 developers that out programmed a corporate wide application by having it up and running in a few months compared to another team I know of over 30 Java developers who 18 months later still had not produced their application.
I believe this to be completely true. At least for boring internal enterprise apps within corporations, the new languages/platforms and especially modern program design paradigms with their multiple tiers & supporting libraries, multiple levels of indirection resulting in 30 level deep call stacks, etc results in productivity perhaps 1/4 of what you could achieve with a product like Delphi.
Now this is just my opinion, and it is shared by many others, but there are even more who would vehemently disagree. Yet this isn't some "eternal mystery" class of a disagreement, for the type of application that Delphi is appropriate (very important), it can be very easily demonstrated if it is or is not more productive for the task at hand - the differences are so stark that the conclusion is undeniable. Yet, if you were to propose Delphi as a development platform, it would in most cases be career suicide.
I would suggest some of the main reasons for this are:
- as a developer, choosing Delphi is virtually career (skillset) suicide
- it lacks much of the more modern "cool" language features developers so love to play with
- (as a result) choosing Delphi as a platform is risky due to the small and shrinking developer base
Well, even considering the world outside of a PC and Windows was probably OS/2, which I know nothing about, or the incredibly fragmented Unix world (Linux was still a wannabe) with Motif/CDE/xlib, C++ without working compilers, an infinite number of #ifdefs, (Linux) threads implemented as a userspace hack, a.out binaries, primitive TCL and Perl as the high-productivity alternatives...
The lead architect of the VCL went-on to work for Microsoft on .Net and most of the venerable (and still working, if not actively maintained) Winforms API is really reminiscent of the VCL, albeit corrupted by the win32 API leaking through.
Maybe it is rose-tinted glasses, but I remember having a significantly more pleasant experience working wight the VCL (through C++ Builder) than with Winforms.
I never liked C, because I already knew a few Turbo Pascal versions before getting to learn C.
So the language was always meh for me, but then Borland blew it up with their schizophrenics moves and allowed C and C++ usage to grow in the PC world.
Delphi was designed by the same architect that later designed .NEt. Microsoft snatched him from Borland. Borland tools were always great, but this was the era of mighty MS.
http://en.wikipedia.org/wiki/Anders_Hejlsberg
The compiler was lightning fast, and produced fast code. The IDE was fast. It did a beautiful code/visual synchronization that still hasn't been done better. It had good libraries, and did effective programming the large.
Not cross-platform, didn't have automatic memory management, though, and was never going to be able to compete with the advance of free IDEs.
About a million years ago I wrote the Delphi Container and Algorithm Library (DeCAL). Good times :)
This is one reason why I see Go compilation speed as PR.
Anyone of us that had the luck to work with tooling in the Amiga/Atari/PC world back in the day C mostly still only relevant on UNIX, knows there were a few languages with very fast compilers available.
It was crossplatform for a time, kylix ( http://en.wikipedia.org/wiki/Kylix_(software) ) was delphi for linux, it worked okay but compared to delphi the produced binaries was not dependency free.
I used Delphi 5 for a long time. The IDE was as easy as it gets, the sample code on the net was rampant, and it produced single little EXE files I could send to people and they had a full-on Windows application.
The closest thing I've found since then that allows me to do something similar minus the IDE is BlitzMax, but the IDE was what made the process so silky smooth in Delphi, and I miss it.
Yes yes yes. Delphi was amazing and still is really. I remember seeing it for the first time at a Borland conference and trying to explain what I saw to my team at the time. Just an amazing product. And super fast.
I think Delphi got right the "Visual Programming" paradigm. I am surprised that we don't have something similar on newer environments. Perhaps is that multi-user RDBMS with SQL and/or the Web broke the model. I don't know, but it is an interesting question.
Also, Delphi didn't have a completely "Visual Programming" paradigm, if you mean it in the sense of some of those experimental tools that claim that all programming can be done visually/graphically, simply by drawing diagrams, dragging and dropping components onto a window, connecting them visually, etc. The visual part of programming with Delphi and similar tools like Visual Basic, was restricted mainly to designing/creating the UI, iteratively and visually, by dragging and dropping widgets like text boxes, labels, drop-down lists, gauges, graph controls, etc., onto a form (a window), setting those widgets' properties such as font, text foreground and background color, enabled/disabled, tab order, etc. etc. Also, data-aware widgets were useful; they would show the back-end database data represented by each widget, live, at UI design time (not just at run time). E.g. a grid widget could show the rows and fields of a table, live. But the rest of the code (widget event handling, business logic, etc.) still had to written in a text editor by the developer.
I don't think the advent of mult-user RDBMS/SQL broke it. There was a time frame (some years) when client-server apps were all the rage - Visual Basic / Delphi / PowerBuilder / Gupta SQL as the front-end tools, talking over a LAN or even sometimes a WAN to back-end databases like Oracle, Sybase, SQL Server, Informix, etc. I've worked on some projects of that type earlier. The technical discussions used to be about things like thin client vs. thick client, database transaction isolation levels, whether to use record locking vs. time-stamping, etc., use of stored procedures and triggers, etc. ... :-)
I first touched Delphi as a teenager (I was 14 or 15 at the time), and it was Delphi 6. I had already tried different languages by that time.
I had already programmed in BASIC as a child and it was great, for a kid like me who didn't have Internet access and named text files to .COM and .EXE in the hope they would do something, this was awesome. But I still wanted .EXE files and I then tried Pascal, which gave that to me. I also tried few examples of C, but the code I had access to was in Pascal, and I didn't have the doc or internet, so I kept tweaking.
And then I discovered Visual Basic (in its DOS and Windows) and I was able to do buttons and forms and tigers..
Yet, with Visual Basic, there was always this bloated feeling.. I mean, you had to make an installer for your programs with files like VBRUNXXX.DLL and error messages yelling at you, and depending 16bits or 32bits, VB4 or VB6, so ... it's even fuzzy in my head.
And then I found Delphi 6. The first time I tried it, I thought "Hmm, this is Pascal !". I compiled my first thing, and I automatically looked of parasitic files VB style.. Nope. It was that .EXE..
So I took that .EXE file to another computer and ran it, and it ran. It didn't need any other files. I didn't have to make an installer for it with WISE or something. It just worked. I was happy.
When my brother who was in CS and was doing image processing (tumors, edge detection, etc), he did his project in Delphi and I'd hang around, and he'd ask me how to do this or that, since I started programming in it before he did, and it was so easy for him to implement stuff and build the application.
So maybe that's why it lasted so long. Easy enough for a kid to do stuff with it. It needed not a lot of knowledge to make buttons and forms, etc. I just make the layout, then program what each button does, etc.. And it was simple.
I may be a biggot, since I tried Embarcadero but it smelled nasty since it was, at least for me, an utter mess. I prefer Delphi 6. It may be nostalgia, but I don't htink it's only nostalgia.
Delphi is a great RAD tool, but it's also slowly dying and has lower and lower market share, 100% of my income come from Delphi contracting at the moment, and I love Delphi, but its not a great choice if you're just starting your programming career and have to choose the language to go with. I've been sticking to Delphi for whole my programming career (3 years professionaly, 10+ years hobby programming, i'm 24 now), but its more and more occuring to me that I have to learn some new tech ASAP if I want to progress further. Delphi has no proper crossplatform support and it's a big minus. Also it has ridiculous price.
Was once in a similar situation myself. One path is to identify a future customer pain point that will occur if they continue to use Delphi. You can direct the solution to a language/platform you wish to learn, and work like a dog to develop the new skills and build a great piece of software in this new language.
In terms of job availability it's been dead a long time. I see a single job posted on craigslist every 6 months in city with 50 daily job postings.
Part of the problem is the kind of corporate windows CRUD apps that Delphi excelled at are better implemented as web apps. Which leaves it relegated to hobby developers and 1 man software vendors.
Even weirder is that in 2002 the Delphi community developed a python 2.7/3 type schism over UI changes and .NET inclusion and a large portion of the community refused to adopt new releases. It's pretty telling when a vendor isn't even able to get many of it's own supporters (many of which are these "Delphi will never die" types) to buy new version of their software in over a decade.
The insanely high prices aren't helping either though. Yes yes, they are not 'high' if you are a fortune 1000, however, they are high compared to what everyone is used to now. They didn't step on the train of making for instance a version free if you are an open source dev. Or doing low monthly payments. Or do anything 'cool', like turn up and give a demo on how to implement reactive manifesto complaint software client/server with a few clicks / lines of code. That kind of thing would be relevant and interesting to devs now; if you can do a dashboard in Mac OS X, Windows, iOS, Android with all the backend & frontend stuff smoothly working together, smoothly tested and smoothly deployed, showing off those 6000 datapoints per second coming into the server and the client and still have a responsive interface companies would listen. But they don't; they just don't 'do' anything people want now besides turning up to the mobile parties way too late.
I kind of wonder how many devs still are working on Delphi and if they are not only just bugfixing...
> the Delphi community developed a python 2.7/3 type schism over UI changes and .NET inclusion and a large portion of the community refused to adopt new releases.
Not quite the way I remembered it. It was more like, "if we're going to develop in .NET then we're going to develop in C#." We liked Delphi for its native compile and unencumbered executable. No point in adding all the .NET baggage and not learning/using it's native language too.
I spent the first years of my non-school life developing things in Delphi, including CGI binaries in the end. I can't say how much I loved the language and the IDE. In fact, XCode is still somehow trying but falling far short of providing the same amenities for developers (maybe on purpose).
Since I rediscovered dynamic languages in the early 2000s and haven't (except for some experiments in C) looked back.
It's funny how you can selectively remember the good aspects of a language and forget how much better life has become since you dumped it. Out of nostalgia I checked out Lazarus and I'm glad it has a somewhat thriving community. However, for me it was clear immediately that the time of Delphi/Pascal has passed for good.
I used delphi extensively in the mid 90's, from the 1.0 release until about 2001. Those were probably some of the most enjoyable and productive times of my life.
IMHO, nothing comes close to the syntactic clarity of object Pascal. This has a ton of knock on effects for long term maintainability.
Plus, the early versions of the Delphi component model were insanely clear and well documented. My first delphi program was a reimplementation of a 6 month long (4 programmer) access database/vb application. I completely reimplemented a 2 man year project in about 24 hours with it using little more than the help docs. After a quick demo at work on Monday, everyone pretty much agreed to kick MS Access/vb to the curb and pick up my code base.
The data aware components were a life saver, and to this day programming in a wide range of languages I am constantly reminded how painful doing things that were simple 20 years ago is. It drives a fundamental distaste into my mouth every time I'm hacking an AJAX app to do basic sorting/filtering of a simple result set. Usually doable with delphi in a matter of a few mouse clicks.
Plus, by the late '90s there were a ton of 3rd party component libraries that nailed just about every GUI interaction an average program might need. The integration of reporting components made generating nice paper printouts a snap too.
So, this is probably why its still being used. Reimplementing a delphi application of a hundred thousand lines is probably a thousand man year project with a "modern" web stack. And so, much like the mainframes running in the data centers of banks/insurance/etc companies, delphi is probably still driving a fair number of business logic applications. I know that some of the applications I wrote in the 90's are still in use at government agencies.
BTW: I used BC builder too, and hated it even though I tend to like C++. The C++ syntax was simply to unwieldy vs pascal.
I have periodically tried out more recent version of delphi or lazurus http://www.lazarus.freepascal.org/ and they don't seem to be nearly as elegant as the early versions. Seems all the effort to make it cross platform (kylix) or match up with the .net component models cluttered up the early clarity of implementation.
I look at tools for DOM manipulation right now - and I look at what people dream of doing with the DOM, especially with apps.
Then I think back to what Delphi was doing in early 90s - then I wonder if just some of that magic was available for building apps on the DOM we'd be in a better place.
Now that time has moved on, I no longer use Delphi at all, and rarely use FreePascal. My currently active projects are C, Node.js, and Browser Javascript. For game projects I prefer Haxe. For future large scale projects. I'm eyeing Rust. When the time comes I'll probably be weighing up the relative maturity of Haxe and Rust. They are developing from different directions, Rust being more idealistic and Haxe being more pragmatic, but I think they'll grow aspects of the other over time.
I remember the same feeling with VB6/VC6. Sure, with VC6, you could do More Stuff, and theoretically, it would be Better Stuff. But in an afternoon with VB6, I could bang out a good first prototype for SO many projects that in many cases, ended up being "good enough" that we never needed to go back and re-do it "properly" in VC6.
PowerBuilder, though... Man, that can't die fast enough.
That's how I sold Delphi; I applied for VC projects and then talked them into a 'fast prototype' in Delphi. They never rewrote and I had happy clients for many years. It worked especially well in companies who where forced into VC by higher management and already did a few (long, painful usually) projects in it; they could now show off something much faster and with more features.
Delphi had one of the best and most useful help documentations I've ever used. In my eyes it was a huge winner for Delphi over Visual Studio products, although I never really liked the pascal syntax...
One of the great things about Delphi and its predecessor Object Pascal were, besides what other HNers have mentioned, was AOT compilation, being memory safe and allowing systems programming at the same time.
No need for VMs.
Luckly Go, Rust, D and now .NET Native might make younger generations aware of it.
Delphi is the IDE and compiler, Object Pascal is the language (Free Pascal Compiler and GNU Pascal are two other compilers, both exhibit the same quick and safe compilation).
I always gravitated to it because it was a fantastic painless (mostly) wrapper for the beastly win32 API. As a unix programmer, it was great when I "just needed a quick windows GUI" for something.
Delphi has been my secret weapon for more than a decade now.
[+] [-] Joeri|12 years ago|reply
The IDE itself is dated and no longer competitive with the best of the modern IDE's. The language and API however is updated and productive. You just need to get over Pascal-style syntax instead of C-style, and you are just as productive in it as if you were using C#.
Why is delphi still hanging on?
1. It delivers executables that need no dependencies. No VM's, no runtimes, no add-on dll's. Underneath it only needs x86 and win32 (unless you're building for mac, android or iOS, which it also supports). I wouldn't be surprised if our software still ran on windows 2000. Since the code is native, performance is never a problem even with wildly inefficient code.
2. It lets you build GUI software really quickly. Productivity in delphi for someone used to it matches any "modern" GUI development platform. Sure, the IDE misses a few features that competing IDE's have, but on the plus side it compiles ridiculously fast (a full build of 2 million lines takes less than a minute on a single core).
3. Delphi is the easiest platform by far to have legacy code on, because the maintenance cost is very low. Delphi's contemporaries (classic VB, MFC) have all gone through major upheavals. Delphi has managed to modernize the API's without breaking legacy code too badly (they even managed to elegantly retrofit unicode into the platform). This is why codebases that are based on Delphi somehow never get ported away from it.
Delphi's competitive with other desktop and mobile development platforms, even at what they're charging for it. What they're charging for it is the problem though. Only people already using delphi buy delphi, and so the perception is maintained that delphi is effectively dead, even when it isn't.
[+] [-] Svip|12 years ago|reply
In a code base like the one I work with all the way back to Delphi 3, there are other legacy issues as well; such as the late arrival of TBytes, which meant that in olden days you had to handle binary data in strings. Now suddenly they are unicode strings are far less reliable for unicode.
Of course, the compiler doesn't warn you about that, because it isn't clear what you were doing back then. Still, took us a year to get our code from Delphi 2007 to XE3.
I am not saying Delphi is the worst thing ever, but I wouldn't say its legacy support is as elegant as you put it. There are issues, that are not noted by the compiler (unlike the deprecated flag for old functions and the like).
Also the fact that it used to have both {$ENDIF} and {$IFEND} is amusing, but at least now they only want one; but you cannot change it because then it would break code that needs to be compiled in an older version of Delphi.
Edit: But I will say this: I do believe unicode was introduced into Delphi as elegantly as possible. It's very hard to do truly elegantly, I'd imagine.
[+] [-] coliveira|12 years ago|reply
[+] [-] x0x0|12 years ago|reply
[+] [-] pedrosorio|12 years ago|reply
Remarkable!
[+] [-] huhtenberg|12 years ago|reply
Courtesy of its simple precedence grammar ... as we all undoubtedly remember ;)
http://en.wikipedia.org/wiki/Simple_precedence_grammar
[+] [-] Havoc|12 years ago|reply
Yeah the build times were stupidly fast.
Lead to some bad habits though - e.g. Why debug when you can trial & error 10 solutions per minute (on a weak box)?
The first time I used VB/C++ I thought the IDE had crashed because it took so long to build...
[+] [-] zura|12 years ago|reply
[+] [-] hyp0|12 years ago|reply
[+] [-] networked|12 years ago|reply
One thing I've been wondering about lately is if Free Pascal is a good alternative to C or Go for shipping self-contained static binaries to run on *nix. I haven't tried it yet but the small(ish) static binaries the Free Pascal compiler produces and the lack of libc dependencies in theory make it an attractive option if you want to write something to run on OpenWrt on your router. Has anyone here used FPC for that? How are the MIPS and ARM backends?
[+] [-] tluyben2|12 years ago|reply
[+] [-] vram22|12 years ago|reply
I saw just recently, via SourceForge's email newsletter, that Free Pascal made it to SourceForge Project Of The Month (POTM):
http://sourceforge.net/blog/april-2014-project-of-the-month-...
I've used various Delphi versions, a little, for personal projects [1], off on on, and liked it. A pity that the free Turbo Delphi Explorer version was discontinued. (TDE was released and then stopped when Borland was in its CodeGear incarnation some years ago.) As others have said, hope Embarcadero comes out with a low-end free or low cost version of Delphi. (They did have a Delphi XE Starter Edition, not sure if it is still there.) I've also read off and on that Delphi (and other Borland products) were/are big in Germany and other European countries.
[1] http://jugad2.blogspot.in/2010/08/digital-clock-v10-in-3-lin...
[+] [-] justincormack|12 years ago|reply
[+] [-] markbnj|12 years ago|reply
[+] [-] mistermann|12 years ago|reply
From the article:
> Being highly productive has seen single Delphi developers produce software that would otherwise require a team of 5 developers. I’ve been in a team of 3 developers that out programmed a corporate wide application by having it up and running in a few months compared to another team I know of over 30 Java developers who 18 months later still had not produced their application.
I believe this to be completely true. At least for boring internal enterprise apps within corporations, the new languages/platforms and especially modern program design paradigms with their multiple tiers & supporting libraries, multiple levels of indirection resulting in 30 level deep call stacks, etc results in productivity perhaps 1/4 of what you could achieve with a product like Delphi.
Now this is just my opinion, and it is shared by many others, but there are even more who would vehemently disagree. Yet this isn't some "eternal mystery" class of a disagreement, for the type of application that Delphi is appropriate (very important), it can be very easily demonstrated if it is or is not more productive for the task at hand - the differences are so stark that the conclusion is undeniable. Yet, if you were to propose Delphi as a development platform, it would in most cases be career suicide.
I would suggest some of the main reasons for this are:
- as a developer, choosing Delphi is virtually career (skillset) suicide
- it lacks much of the more modern "cool" language features developers so love to play with
- (as a result) choosing Delphi as a platform is risky due to the small and shrinking developer base
[+] [-] sehugg|12 years ago|reply
* An insanely fast compiler
* Statically linked binaries -- no DLL hell (still important for certain kinds of applications)
* A proper module system, no need for precompiled header nonsense
* A UI framework/designer as easy to use as WinForms, at a time when the alternatives were MFC or Win32
* An easy upgrade path to 32-bit Windows
As long as you were ignorant of the world outside of a PC and Windows, it was nirvana.
[+] [-] zorked|12 years ago|reply
Turbo Pascal/Delphi was probably nirvana.
[+] [-] QuadDamaged|12 years ago|reply
Maybe it is rose-tinted glasses, but I remember having a significantly more pleasant experience working wight the VCL (through C++ Builder) than with Winforms.
[+] [-] pjmlp|12 years ago|reply
I never liked C, because I already knew a few Turbo Pascal versions before getting to learn C.
So the language was always meh for me, but then Borland blew it up with their schizophrenics moves and allowed C and C++ usage to grow in the PC world.
[+] [-] visarga|12 years ago|reply
Ever since, I've been using prints and command line. :-(
Why was there no linux port of BP7?
[+] [-] bdamm|12 years ago|reply
[+] [-] DodgyEggplant|12 years ago|reply
[+] [-] QuadDamaged|12 years ago|reply
[+] [-] rossjudson|12 years ago|reply
Not cross-platform, didn't have automatic memory management, though, and was never going to be able to compete with the advance of free IDEs.
About a million years ago I wrote the Delphi Container and Algorithm Library (DeCAL). Good times :)
[+] [-] pjmlp|12 years ago|reply
Anyone of us that had the luck to work with tooling in the Amiga/Atari/PC world back in the day C mostly still only relevant on UNIX, knows there were a few languages with very fast compilers available.
[+] [-] msh|12 years ago|reply
[+] [-] tiquorsj|12 years ago|reply
[+] [-] dpcan|12 years ago|reply
I used Delphi 5 for a long time. The IDE was as easy as it gets, the sample code on the net was rampant, and it produced single little EXE files I could send to people and they had a full-on Windows application.
The closest thing I've found since then that allows me to do something similar minus the IDE is BlitzMax, but the IDE was what made the process so silky smooth in Delphi, and I miss it.
[+] [-] tonetheman|12 years ago|reply
[+] [-] huherto|12 years ago|reply
[+] [-] vram22|12 years ago|reply
[+] [-] pjmlp|12 years ago|reply
The frankenstein model of CSS/JavaScrip/HTML cannot provide the same RAD capabilites as native applications.
[+] [-] vram22|12 years ago|reply
[+] [-] Jugurtha|12 years ago|reply
I had already programmed in BASIC as a child and it was great, for a kid like me who didn't have Internet access and named text files to .COM and .EXE in the hope they would do something, this was awesome. But I still wanted .EXE files and I then tried Pascal, which gave that to me. I also tried few examples of C, but the code I had access to was in Pascal, and I didn't have the doc or internet, so I kept tweaking.
And then I discovered Visual Basic (in its DOS and Windows) and I was able to do buttons and forms and tigers..
Yet, with Visual Basic, there was always this bloated feeling.. I mean, you had to make an installer for your programs with files like VBRUNXXX.DLL and error messages yelling at you, and depending 16bits or 32bits, VB4 or VB6, so ... it's even fuzzy in my head.
And then I found Delphi 6. The first time I tried it, I thought "Hmm, this is Pascal !". I compiled my first thing, and I automatically looked of parasitic files VB style.. Nope. It was that .EXE..
So I took that .EXE file to another computer and ran it, and it ran. It didn't need any other files. I didn't have to make an installer for it with WISE or something. It just worked. I was happy.
When my brother who was in CS and was doing image processing (tumors, edge detection, etc), he did his project in Delphi and I'd hang around, and he'd ask me how to do this or that, since I started programming in it before he did, and it was so easy for him to implement stuff and build the application.
So maybe that's why it lasted so long. Easy enough for a kid to do stuff with it. It needed not a lot of knowledge to make buttons and forms, etc. I just make the layout, then program what each button does, etc.. And it was simple.
I may be a biggot, since I tried Embarcadero but it smelled nasty since it was, at least for me, an utter mess. I prefer Delphi 6. It may be nostalgia, but I don't htink it's only nostalgia.
[+] [-] re1ser|12 years ago|reply
[+] [-] swinnipeg|12 years ago|reply
[+] [-] crypt1d|12 years ago|reply
[+] [-] redstripe|12 years ago|reply
Part of the problem is the kind of corporate windows CRUD apps that Delphi excelled at are better implemented as web apps. Which leaves it relegated to hobby developers and 1 man software vendors.
Even weirder is that in 2002 the Delphi community developed a python 2.7/3 type schism over UI changes and .NET inclusion and a large portion of the community refused to adopt new releases. It's pretty telling when a vendor isn't even able to get many of it's own supporters (many of which are these "Delphi will never die" types) to buy new version of their software in over a decade.
[+] [-] tluyben2|12 years ago|reply
I kind of wonder how many devs still are working on Delphi and if they are not only just bugfixing...
[+] [-] commentzorro|12 years ago|reply
Not quite the way I remembered it. It was more like, "if we're going to develop in .NET then we're going to develop in C#." We liked Delphi for its native compile and unencumbered executable. No point in adding all the .NET baggage and not learning/using it's native language too.
[+] [-] Udo|12 years ago|reply
Since I rediscovered dynamic languages in the early 2000s and haven't (except for some experiments in C) looked back.
It's funny how you can selectively remember the good aspects of a language and forget how much better life has become since you dumped it. Out of nostalgia I checked out Lazarus and I'm glad it has a somewhat thriving community. However, for me it was clear immediately that the time of Delphi/Pascal has passed for good.
[+] [-] StillBored|12 years ago|reply
IMHO, nothing comes close to the syntactic clarity of object Pascal. This has a ton of knock on effects for long term maintainability.
Plus, the early versions of the Delphi component model were insanely clear and well documented. My first delphi program was a reimplementation of a 6 month long (4 programmer) access database/vb application. I completely reimplemented a 2 man year project in about 24 hours with it using little more than the help docs. After a quick demo at work on Monday, everyone pretty much agreed to kick MS Access/vb to the curb and pick up my code base.
The data aware components were a life saver, and to this day programming in a wide range of languages I am constantly reminded how painful doing things that were simple 20 years ago is. It drives a fundamental distaste into my mouth every time I'm hacking an AJAX app to do basic sorting/filtering of a simple result set. Usually doable with delphi in a matter of a few mouse clicks.
Plus, by the late '90s there were a ton of 3rd party component libraries that nailed just about every GUI interaction an average program might need. The integration of reporting components made generating nice paper printouts a snap too.
So, this is probably why its still being used. Reimplementing a delphi application of a hundred thousand lines is probably a thousand man year project with a "modern" web stack. And so, much like the mainframes running in the data centers of banks/insurance/etc companies, delphi is probably still driving a fair number of business logic applications. I know that some of the applications I wrote in the 90's are still in use at government agencies.
BTW: I used BC builder too, and hated it even though I tend to like C++. The C++ syntax was simply to unwieldy vs pascal.
I have periodically tried out more recent version of delphi or lazurus http://www.lazarus.freepascal.org/ and they don't seem to be nearly as elegant as the early versions. Seems all the effort to make it cross platform (kylix) or match up with the .net component models cluttered up the early clarity of implementation.
[+] [-] mtkd|12 years ago|reply
Then I think back to what Delphi was doing in early 90s - then I wonder if just some of that magic was available for building apps on the DOM we'd be in a better place.
[+] [-] Lerc|12 years ago|reply
http://screamingduck.com/Article.php?ArticleID=43&Show=ABCE
Now that time has moved on, I no longer use Delphi at all, and rarely use FreePascal. My currently active projects are C, Node.js, and Browser Javascript. For game projects I prefer Haxe. For future large scale projects. I'm eyeing Rust. When the time comes I'll probably be weighing up the relative maturity of Haxe and Rust. They are developing from different directions, Rust being more idealistic and Haxe being more pragmatic, but I think they'll grow aspects of the other over time.
[+] [-] DanHulton|12 years ago|reply
PowerBuilder, though... Man, that can't die fast enough.
[+] [-] tluyben2|12 years ago|reply
[+] [-] ivanhoe|12 years ago|reply
[+] [-] pjmlp|12 years ago|reply
No need for VMs.
Luckly Go, Rust, D and now .NET Native might make younger generations aware of it.
[+] [-] nolok|12 years ago|reply
Delphi is the IDE and compiler, Object Pascal is the language (Free Pascal Compiler and GNU Pascal are two other compilers, both exhibit the same quick and safe compilation).
[+] [-] noonespecial|12 years ago|reply
Delphi has been my secret weapon for more than a decade now.