Delphi Turns 10
NavySpy writes "Today is Delphi's Tenth Birthday! The launch of Delphi 1.0 occurred on February 14th, 1995 at the Software Development '95 conference at the Moscone Center in San Francisco. Numerous links are commemorating the event, including a recorded interview with Zach Urlocker and Gary Whizin, members of the original management team. Zack's original Product Definintion document is here. An attendee at the original event reminisces about the launch."
Alas, my experience at Borland left me with a total aversion to the whole scene. It wasn't just that Borland is badly managed, or that everybody who works there seems to have a bad case of "I know what I'm doing, the rest of you can fuck off." It's how great Borland could be if they just developed a general sense of teamwork. There isn't an IDE on the planet that could compete it, if it were just a little more user friendly, a lot better documented, and sanely marketed.
Nowadays I find it unbearably depressing to even fire up my copy of Delphi. I've been boning up on Java...
I haven't done any delphi work in a couple years, and have never heard anyone talking about kylix. Anyone have any experience with it?
Delphi is the one and only language I wrote something in, for Windows. IIRC, I wrote a simple text editor.
.
Then, I decided programming wasn't my thing, and moved on to OS whoring.
Oh, the good ol' days . .
Pretty Pictures!
The combination lets developers whip up full-featured GUI apps in minutes. This concept was hyped as "RAD" -- rapid application development: Create a new form. Put a tabular editor widget on it. Put a data source component on it. Hook the table widget visually to the data source. Now you have a table containing your database's data.
Delphi later wooed COM/DCOM and CORBA, and added these two systems as first-class citizens in the language, similar to RMI or Distributed Ruby -- suddenly it was a snap to write an app whose objects lived in a separate process or on a remote machine. It was part of an ill-fated strategy to capture the "middleware" market.
Borland's Java product, JBuilder, tried to be "Delphi for Java", but failed to live up to the "just works"-quality of its parent product. Even later, Delphi has gone after .NET, but I stopped paying attention long before that.
Delphi could have been big. It was a masterpiece in engineering. Sadly, Borland shot themselves in the foot in several ways:
Part of Borland's fall from grace may be blamed on greed -- greed and the dot-com era. They were originally a development tools company. But even after the Philippe Kahn-era attempt to compete with Microsoft (Quattro Pro, etc.) failed, the execs made a similar mistake by going after the gold mine that is the enterprise consultancy business.
They renamed their company Inprise, touted a bunch of half-assed products, and drowned their web site and communication in buzzwords about enterprise middleware, B2B, application servers and other stuff that were the obvious product of executives, not visionary engineers. They were not just a product company any more, but now also a "solutions" company. And rather than going after common-sense technologies, they went where the hype was. Their new products were also not up to the quality that customers knew and loved from previous products. In the end, they had the arrogance suited for the business, but not the savvy. So they failed.
Borland have refocused in recent years, and the effort is commendable, but they have not regained their former reputation. For one, I don't know anyone who uses Delphi anymore.
Perhaps most sign
Unfortunately, Kylix sucks as much as Delphi rocks; the code is not stable, as it reportedly uses WINE to run. And the basic "free" Kylix version is practically crippled as it does not includes the database components.
2. Blazing-fast compiles -- there is nothing out there like it, not even the IBM Jikes Java compiler comes close.
3. Great string handling. They even extended their dynamically-allocated string idiom to arrays of primitive types.
4. Made Pascal more C-like -- the PChar C-like null-terminated string (they had to introduce it to be compatible with Windows, but now that they have "gone .NET", they are deprecating it). While it made Pascal less safe, the "I can write a 2-line C program that takes pages of Pascal" kind of went away. You can cast types, pointers, etc, to "remove the safety locks" if need be.
5. You don't have to use the VCL -- you can program to the Windows API if you are so inclined.
6. Good debugger, {$APPTYPE CONSOLE} compiler pragma allows opening a console Window in a Windows app for logging traces, etc.
7. While the support for COM and ActiveX not nearly as seemless as the VCL, a lot better than MFC/ATL.
What don't I like? I am old Pascal hand, but all that typing is getting a little tiresome after doing work in Java and C++. Also, an ActiveX control is this single .OCX file, and it works across Windows versions. To distribute .VCL controls, you have to have a freakin differnt version for each version of Delphi (Delphi version upgrades break more stuff than Windows upgrades).
Only 8 more years and I can kick it out.
Borland already had a VB killer and it was called Visual dBASE.
Now only a shell of what it once was - dBASE at the time was more RAD and more OOP than VB.
dBASE had back in 90-91:
- 2 way design tools
- A subclassable component model
- XDML (xBase database manipulation language)
- A Basic-like syntax
- And more
Borland messed up by thinking all those "visual beginners" could understand basically an academic language (which was Pascal).Every review I ever read of Delphi said basically the same thing: "Better than VB - IF you want to learn Pascal".
They should have tarketed Visual dBASE at the VB market and Delphi at the C++ market (which they also lost).
Things that are written in a "weaker" language, such as Visual Basic, tend to have the top level or the parts you are having your newbie app developer write in the "weaker" language, and they tend to have an "industrial-strength" language (such as C++) "under the hood." Visual Basic consumes ActiveX controls that are written by specialist developers in C++. Now in later versions of Visual Basic you could write ActiveX controls in VB, but am I correct in saying that using an ActiveX is considered "easy", but generating an ActiveX is considered pretty hard core, even with all of the VC++ "wizards" to generate the program skeletons?
You have this type of dichotomy in the "scripting" languages -- you write the app in Python but you write C/C++ extension modules to do the hardcore, time-critical, low-level stuff. The other extreme is Common Lisp, Smalltalk, and Java. While these are considered "easy" languages (not saying Lisp is "easy", but Paul Graham claims he can do much more stuff more quickly with it) -- you are encouraged to do everything in Lisp if you are using Lisp, everything in Java if you are using Java, and while Java has the JNI, its use is discouraged by the official Sun party line. I see Python working on growing from "just being a scripting language" to an attempt, with the right libraries, to make Python another Common Lisp, Smalltalk, or a Java.
I think that Borland went for the unified approach -- the Visual Form Designer allowed programming with drag and drop, it automatically wrote the Pascal, and you weren't really supposed to touch the Pascal very much. In fact, the generated Pascal was so parsimonious, I was afraid of it because I didn't know what was going on -- a lot of what was going on was that objects were initializing themselves and connecting themselves in the form/control hierarchy by reading in state information from the .DFM files (which you can view as ASCII text -- this forms the "second Delphi" language which is a kind of Pascal-syntax XML).
Then you had component development, which was supposed to be done by object inheritance and by writing some hard-core Pascal code -- there were (at least a first) no wizards to guide this, and extending a class by inheritance is a much tougher programming job and the code writer-driven composition of a top-level Delphi app.
Of course, the component developers were supposed to be the hard core programmers, and they could be fewer in number because they would publish their components for reuse for the vast army of Delphi Form Designer weenies. But if the Form Designer weenies were to use dBase Basic, there would have to be a Pascal/C++ other product (at least in the first iteration) to do component developement.
The argument for a single-language universe is its uniformity. The argument for multiple languages (VB.NET /C#.NET doesn't count as those are simply syntax "skins", but Managed C++ may count) is that different languages are suited for the different levels of an app.
http://www.freepascal.org/
"The language syntax is semantically compatible with TP 7.0 as well as most versions of Delphi (classes, rtti, exceptions, ansistrings, widestrings, interfaces). Furthermore Free Pascal supports function overloading, operator overloading, global properties and other such features."
There is an associated project that aims to duplicate the VCL called FCL:
http://www.freepascal.org/fcl/fcl.html
Finally, there is the related Delphi-like IDE to go with it:
http://www.lazarus.freepascal.org/
It's actually quite good.
Also, I consider Java to be an academic/learning language (and I think most universities today would agree), designed to demonstrate (and steer one into) OOP and its benefits, without the potential frustration and turn-off of getting hung up on details like pointers and freeing (some) resources, or from crashing the machine. And yet it's certainly very successful. But it too may dwindle in popularity at some point, and be superceded by The Next Big Thing.
Attention zealots and haters: 00100 00100
I was listening to talk radio today. Borland Delphi was found dead in its Scotts Valley home at the age of 10. Even if you weren't an Object Pascal anti-Microsoft contrarian raging against the forces of the marketplace, there's no denying its contribution to popular culture. Truly an American icon.
One CPU cycle wasted on digital restrictions management is ONE TOO MANY.
Delphi was a great language for building windows applications. It's VCL managed to abstract out most of the windows hideousness, enough so that beginners had to learn *nothing* about all of that to make quite good looking, and well behaved applications. If you became more expert, it didn't get in your way either. I stuck with Borland products for years, from Turbo Pascal onwards. Their early products were fast, well structured, high quality beasts that were leaders in their day. The developer community was fantastic.
But Borland, the company, what can I say. And let's just agree to politely ignore the "Inprise" episode. Over many years I reported several critical bugs in the VCL and IDE using their bug reporting tools, with fixes and workarounds provided, and nothing was done - over several product releases. In my last role, we switched from Delphi to C++ Builder, and that did it for me. Buggy, unstable and zero support, even for critical compiler and linker bugs that prevented us from building our applications for weeks at a time.
I feel like a valued friend developed Alzheimers. I still miss the old Borland...