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...
Do you think Frank Borland is celebrating somewhere in the mountains? :)
So, I brought a Delphi disk, installed it on the class computer, and in 15 minutes demonstrated how you could create a relational database and have a visual application.
The class was impressed, the prof a bit less, until I showed him the executable which was actually a bona-fide compiled program, without a thousand attendant DLLs.
He was totally floored.
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.