(Not logged on) | Register | Log On

You can subscribe to this discussion group using an RSS feed reader. The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
TechInterview.org
CityDesk
FogBugz
Fog Creek Copilot


The Old Forum


Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Delphi - what's the catch ?

After reading more about Nick Bradbury and his Delphi based applications, I downloaded a trial copy of Delphi 7 and started playing around with it.

My overall impression of the language and IDE is that it is VB on steroids - a true OO language (Object Pascal) coupled with a slick RAD IDE and NO runtime deployment nightmares a la VB or .Net.

So... why has Delphi never caught on in a big way?

Is the marketing department mightier than the code?
OneFlew
Tuesday, March 29, 2005
 
 
Microsoft had the might to spend billions to tout thier product and gobble any competitor in their niche. I believe that is why. However, I am just bogarting with home-grown ideas.
Raise both your hands
Tuesday, March 29, 2005
 
 
I've also read that the Borland people are a bit slack when it comes to marketing their own stuff - that's bad bad bad when your main competition is MS.
OneFlew
Tuesday, March 29, 2005
 
 
We use it, and think it's great. One theory of have heard of is that Pascal isn't as popular in the USA as it is (was) in Europe, and so, didn't gain a large enough share of the biggest marketplace.
Ian H Send private email
Tuesday, March 29, 2005
 
 
I would have to say that Borland's marketing department failed.  It is a pretty solid product we use it at my job for all of our desktop applications.  It is far better than VB IMHO. 

I have also heard that it is more popular in Europe than here in the States, for whatever reason.
Mike
Tuesday, March 29, 2005
 
 
I wish it had automatic memory management / garbage collection.
Pythonic Send private email
Tuesday, March 29, 2005
 
 
The marketing department is indeed mightier than the code.  I'm a C++ evangelist, but I haven't seen anything more efficient than Delphi for turning out a good looking Windows app that works the way people expect.  I work with it every day and love it.
Clay Dowling Send private email
Tuesday, March 29, 2005
 
 
To me, the early marketing at the user level was excellent. They would give away the personal edition on one of the most popular UK magazines (PC Plus). Along with the disc would be a multi-age article about it. Many business licences were purchased because of "bottom up" pressure within the company. I don't have any details about the top down marketing went with the pointy haired bosses though? By the looks of thing, this wasn't so successful.

They then went mad and let the suites take charge. To announce this to the world they re-branded Borland as Imprise. They instantly lost the respect of their user base, which had thought of Borland as the company that produces no-nonsense high quality tools. They are still struggling to recover from this.
.
Ian H Send private email
Tuesday, March 29, 2005
 
 
Was Borland slack at marketing, or is it just that Microsoft's monopoly fed the Microsoft marketing machine with enough cash to out market the world?  If you did your best you weren't slacking in my opionion.
Crusty Admin
Tuesday, March 29, 2005
 
 
Delphi saved our company.

If our competition had been using Delphi, we would be out of business.

(Please don't tell anyone else about Delphi :-)
IHopeItSurvives
Tuesday, March 29, 2005
 
 
Borland was always behind the power curve, when it came to Microsoft.  Microsoft had the OS, and left certain parts undocumented.  Thus people had to re-engineer the OS in order to take advantage of the undocumented parts.

Borland started out with Turbo Pascal -- a wonderful language for $50 when Microsoft's languages cost $300 each.  Borland had the best C on the market also -- and had one of the best early C++ compilers as well.

Borland also fell into this expensive 'upgrade' cycle.  I tried to keep up with them through version 4 and 5, but then it got too expensive.  Also, their 'widget' or 'object' set was different from any Standard Library I ever saw.  You had a choice in the early 90's -- you could follow Borland into an ever more expensive ghetto which employers wouldn't pay for, or you could go with Microsoft's tools.
AllanL5
Tuesday, March 29, 2005
 
 
I think the combination of crap Borland/Inprise marketing and Pascal not being perceived as being as sexy/modern/trendy as Java did for Delphi. It didn't help that most people thought it was Pascal from their school days and not Object Pascal. Apparently the language is called Delphi now, but that's just confusing matters.

A great shame because the IDE and component model rocked. The most fun I've ever had programming was when using Delphi to knock out silly little desktop utilities.
John Topley Send private email
Tuesday, March 29, 2005
 
 
Clay,

If you're a C++ evangelist and a Delphi fan then do you use C++Builder as your dev environment? I downloaded that too and the IDE looks almost identical to the Delphi one.

Ian H,

Now I remember the Inprise debacle and yes I think Borland damaged their brand badly.

I also wonder why on earth they are pushing a C# IDE. Why would a C# developer want to use anything but VS.Net I can understand using C++ Builder but C# is like VB - a Microsoft proprietary language.
OneFlew
Tuesday, March 29, 2005
 
 
Delphi is a harder language than VB (see VB.Net for some background on this).

VB used to come with no components, which meant a good field for competition among vendors. Like VB, most Delphi people don't create their own components, so this feature of Delphi allowing you create the components in Delphi itself (unlike C++ for VB), was never a big plus with the masses.

The Basic language used to be used throughout the Microsoft technologies (unlike in DotNet, where it's seen as a dark sheep), so it's just natural that one would tend to use a Basic-like language when available.

Maybe the VC++ and VB were made for each other, so overall one was a good deal for the other.

In the end, I think what made Delphi a relative success was what made it a failure, that is, it was controlled by a single company.

The masses go where they are told to go, so no whining will change that. :-) It's hard to make choices:
http://www.itconversations.com/shows/detail252.html
Yeah
Tuesday, March 29, 2005
 
 
CBuilder is A Good Thing.

I believe CBuilder C++ will reappear within Delphi 2005 but meanwhile I plug along with an earlier version.

Single EXEs suit me just fine.
trollop
Tuesday, March 29, 2005
 
 
OneFlew writes:

"So... why has Delphi never caught on in a big way?"

I don't think I can sing enough of Delphi's praises, but I have a *theory* that programmers can be divided into two camps -- the "purists" who use C++, inline assembler, pointers, and the command line, who write their own data structures (for fun), and the "I want a component to do this for me crowd"... you know, like a remote control where you simply click a button and are rewarded with instant gratification...

The "I want a component to do this for me crowd" tends to gravitate towards VB, and the "purists" tend to gravitate towards C++, usually a cross platform C++ compiler like gcc, but Visual C++ if they need to develop Win32 apps...

It's a shame really, because both camps could have their respective cake and eat it too -- if they would just give Delphi a chance to prove itself...

I had a friend of mine (about 7 years ago) who was a Visual C++ programmer.  I said "try Delphi, you'll like it!".  He tried it, and he *hated* it.  He didn't have problems dropping controls on forms or anything, he just *didn't like* the object pascal syntax! 

That was before the days of C++ Builder, however.  These days I'd recommend he try C++ Builder (yes, I know it's being "rolled into" Delphi under the Delphi name), but I haven't talked to him about it since about 7 years ago...
But, then he'd get the C++ syntax that he liked so much.

Joel complains about the lack of a standardized string type in C++, well, in Delphi, you've got a string type that is lifetime managed, FAST (passed by pointers), reference counted, automatically copy-on-write (if multiple references exist and it's written to), and not zero-terminated (Length is out-of-band signaled -- a VERY good thing because you never worry about reading or writing the trailing '0'...).  And you can treat one as an array of bytes too, just by putting [] after the string's variable name!  And it responds to the standard '+' operators for catenatation, like:

MyString3 := MyString1 + MyString2 + MyString3;

You can even PASS them to Win32 API functions that *do* expect zero terminated strings as PChar(MyString), and Delphi will make a behind-the-scenes copy of your string (the copy being zero terminated!), and pass *that* copy!

Infomerical Announcer: "Now how much would you pay?!?!?!"

VB has similar string functionality, and I'm sure .NET has that these days, but Delphi *had* that since late 1994 (as in, more than 10 years ago).  Actually, it had it since Turbo Pascal, its mid 80's-early 90's predecessor, but we won't go back that far...

And here's the other thing.  I have NEVER had a problem with the Delphi compiler itself.  NEVER.  I've had many times when I've come across a bug, and said to myself, "Hey, there must be a compiler problem here, because I *swear* I've done everything right, and it's not working". 
But upon further investigation and debugging, the error was with *my code*, NOT with the Delphi compiler!!! EVERY single time!  And I do a lot of inline assembler and pointer stuff, stuff that the average business-app coder would stay *far* away from...

Now all of the above being said, I'd like everyone to know that I'm not saying what I said to "win recruits" for the Delphi camp.  Personally I don't care what programming language a person chooses or uses.  I happen to like Perl, PHP, Ruby, Python, Haskell, Lisp, and I don't have anything against Visual C++ or VB,  Java, or the .NET languages.  Not only that, but I'm sure if I used the latter ones more, I'd probably like them.

Remember, computers (below the CPU level) have only 2 characteristics -- STATE (memory) and STATE CHANGERS (CPU).  These can be abstracted in ANY programming language.  I could probably write a compiler or do image processing in one of the xBase Dialects, using tables to hold stacks and variable names.  Would it work?  Probably.  Would it be slow?  Probably slower than heck, but that's not the point.  The point is, if someone wants to be a "black belt programmer", they'll study all of the postives and negatives of each language/platform/os/methodology/paradigm irrespective of marketing hype, and irrespective of whether employers are hiring or not.

If any programmer considers programming a form of art,
not merely a way to earn a livelihood, they owe it to themselves to at least *try* Delphi.  (They should try Lisp, Python and Ruby too), but *try* Delphi as well.

For pure, fast Win32 executables, developed in a VB-style IDE, it's hard to beat!

The downside?  Object pascal's syntax *can* be a little tricky while you're learning it.  For example, types are placed AFTER variable declarations, whereas in C++ it's BEFORE variable declarations.  Still, it shouldn't make someone just give up because they don't like where the type declarations are placed, relative to the variable names...
Peter Sherman Send private email
Tuesday, March 29, 2005
 
 
This discussion is very confusing. :)
wannabeboy-2 Send private email
Tuesday, March 29, 2005
 
 
Thanks for your comment Peter.
wannabeboy-2 Send private email
Tuesday, March 29, 2005
 
 
OneFlew,

C++ Builder doesn't just look like Delphi, it is Delphi.  The only difference is that they ship BCB, the C++ compiler, with it.  You can compile Delphi component source in C++ Builder. It just won't auto-create Delphi units for you.

Borland seems to have abandoned writing their own compiler.  This is frankly a good thing, since they aren't quite up to the level of the other compilers.  CBuilderX doesn't ship with the Borland compiler, but the mingw32 port of the GCC tools.  As far as I'm concerned that's all to the good because those tools are the same that I'll be using on other operating systems. 

Older Borland compilers also had a way of not being standards compliant.  I spent six months working on an app that had been built with Borland C++ 5.02.  The app was completely locked in to that specific version of the compiler.  That was a feature which did not endear the compiler to me.
Clay Dowling Send private email
Tuesday, March 29, 2005
 
 
There is another kind of programmer: the kind that wants to be productive - that is, develop software as fast as possible. For this kind of programmer, Delphi is the perfect fit.

Regarding components, there are lots and lots of Delphi components, some free, some commercial - check out http://www.torry.net/

The reason why Delphi is not more popular...

1. Borland didn't know how to market the product properly.

2. Borland Delphi had a higher price than Microsoft Visual Basic.

3. Microsoft and Sun were extremely good at marketing:

- Microsoft offers MSDN - a full package of software (including Office, Visual Basic, SQL Server, Windows, and a lot of other stuff) at a LOW price.. so businesses bought MSDN and when developers needed something to develop with, managemed just shoved VB down their throats.. bad for developers but BRILLIANT marketing tactic for Microsoft.

- Sun managed to generate a lot of hype around Java, riding on the back of the great Internet wave. The fact that they gave away Java for free also helped a lot.
Insomnia
Tuesday, March 29, 2005
 
 
I have been a sort of Delphi evangelist for the past 9 years. I have generally recommended it to clients in favor of VB for software product development.

I believe, as stated several times in the thread, that Delphi's poor standing is due to Borland's inept marketing and their changes of direction. Plus Borland not only does not know who their friends are, but they say "f u" to their 'real' friends.

I agree most with Ian H. In the late 90s Borland was rebranded as Inprise, and "Inprise" began acquisition of "enterprise" type companies such as Visigenic. It was all a suit specific strategy. Suits didn't pay a bit of attention.

Borland's strength has always been at the grass roots, as a reliable and cost effective tool for developers who are willing to look beyond the marketing. Borland screwed the pooch by rejecting hacker-friendliness. It really had the appearance of someone trying to leave the slums and distance themselves from their old friends.

I think pricing is also another big deal. Delphi has always been expensive. It's possible to buy 'everything' Microsoft has in MSDN Universal for mid $2000s, and just Visual Studio alone is about 1/2 that. Delphi has free trials and an "affordable" hobbyist level package that doesn't connect to any databases. Their client/server package, with a decent SQL Server driver, is about the cost of MSDN Universal with several times as much "reach" into in-demand technology areas.
Bored Bystander Send private email
Tuesday, March 29, 2005
 
 
Delphi performed miracles for me in the 90's...my competitors were releasing klunky VB and Powerbuilder desktop apps (and C++ just wasn't productive at all on Windows) and I simply married a single Delphi .exe to the Jet database engine. Perfection.

These days, the creators of Delphi have been hired by Microsoft. C# is the result, and for that reason alone I am interested in learning it. Meanwhile, Borland continues to treat developers like me as some kind of second class citizen. It is STILL Inprise if you ask me. Hmph!
Teller Send private email
Tuesday, March 29, 2005
 
 
Oh, and another thing: the transition from VB to Delphi is FAR easier than the transition from VB to VB.NET. Yes, Delphi is more difficult. But the class library makes *sense*, is relatively compact, and you can ignore the stuff you don't want to deal with.

I ran into VB people in the 90s who wanted to put severed goat's heads with candles inserted into them on my front porch in retribution for recommending Deplhi. Going to VB.NET has to be much, much more of a culture shock than embracing Delphi would have been...

And Delphi has generally not orphaned current bases of code. I observed people migrate Delphi 1 (16 bit Windows 3.x compatible) apps to 32 bit Delphi and it was 90% plug and play with a few minor differences in string data types.
Bored Bystander Send private email
Tuesday, March 29, 2005
 
 
Many of the comments about inept marketing by Borland may be true.  But there are a couple of things to remember:

(1)  Borland has been going up against the behemoths of MS and Sun.  Borland (at least the Borland of the last 10 or 15 years) is in comparison a tiny company with very limited resources.  I guess Borland could have done a better job of marketing, but I'm not sure by how much.  They're marketing efforts are simply constrained by too limited resources.  Could Borland have done better? Sure.  But I'm not sure the company would be doing that much better even if they'd made perfect marketing decisions.

(2)  Despite its (supposed?) marketing ineptitude, Borland has been around for 20+ years and Delphi for more than 10.  How many other software companies have been born and died within that time?

In my opinion, the main reason not to go with Delphi right now would be if you think Borland's going to tank in the near future.  But there have been Borland naysayers for years and Borland has just kept plugging away.  So I generally take it with a grain of salt when I hear people say that Borland is doomed.

Given the might of MS and the fact that C#/VS.NET has borrowed (and even improved on) many of the best features of Delphi, I wouldn't be terribly sad if Borland failed and I had to switch languages.  I won't be going that route anytime soon, though, unless I have to.  I like working with a non-MS product.  The combined Win32 and .NET compatibility of Delphi is currently a big plus. 

And you'd be surprised how nice it feels to be comforted by all those 'Begin' and 'End' delimiters. ;)
Herbert Sitz Send private email
Tuesday, March 29, 2005
 
 
Delphi is a Desktop technology. It's like Powerbuilder to many right now. Too bad. :-)
Yeah
Tuesday, March 29, 2005
 
 
What about FreePASCAL??
wannabeboy-2 Send private email
Tuesday, March 29, 2005
 
 
I wish they would bring back Turbo Prolog.
Peter
Tuesday, March 29, 2005
 
 
What I always find funny is all the C# evangalists who compare C# to C++, basically citing all the VB-like benefits "Winforms is easier to work with", etc.


And, yet, they could have gotten all those benefits from Delphi 10 years ago.

I think the comment about the split between "low level coders" and "high level vb programmers" is spot on.

I'm in the middle. A pragmatist. Make mine Delphi.

Borland is missing a HUGE opportunity as many VB6 programmers look for thier next language. This is a DISCONTINUITY. Delphi can compete on a level playing field. (If you were moving from VB3 you'd choose VB6 b/c the syntax was the same. Not so with vb.net. Delphi is easier to pick up than .net).

Borland could be commissioning articles on the VB6 to delphi transition, it could be touting the commercial VB6 to Delphi translator.

But what do we hear from Borland? Nothing.
Mr. Analogy {uISV owner} Send private email
Tuesday, March 29, 2005
 
 
"Delphi is a Desktop technology."

Actually, I think that's a bit of a misconception.  There are many Delphi users who have tried both and prefer one of the Win32 Delphi Web Frameworks to ASP.NET. 

See Intraweb:  http://www.atozed.com/intraWeb/  (now versions exist for .NET and Java but it has its roots in Delphi)

and Developer Express' Express Web Framework:  http://www.devexpress.com/Products/VCL/EWF/  (essentially a clone of ASP.NET on Delphi, has some big plusses over .NET like (1) Kylix compatibility, so you can deploy on Linux or Windows, (2) with add-on from RemObjects (below) you can create an entire webserver app that can be deployed in a single .exe.

Also, since Delphi 8 and Delphi 2005 also include .NET versions of Delphi you can write ASP.NET apps with Delphi just like you can with C# or VB.NET.

Also, Delphi has a number of excellent remoting frameworks that make it easy to develop n-tier internet apps with rich Win32 clients.  I use one of these (kbmMW:  http://www.components4developers.com ).  Another excellent one is RemObjects/DataAbstract (http://www.remobjects.com ).  Asta has probably been around the longest: http://www.astatech.com.

Actually I'm happy if people continue to think Delphi is an old-school "desktop technology" solution.  But the fact is that for many web projects Delphi offers productivity advantages over more well-known development tools just as it does for Win32 desktop apps.  I don't think Delphi's advantages are as great in Web arena, but even when Delphi doesn't have clear cut advantage over ASP.NET, Java, PHP it is almost certainly competitive.
Herbert Sitz Send private email
Tuesday, March 29, 2005
 
 
There's definitely a catch.

First impression: a decent syntax (pascal), pointers, possibility to choose between pascal- and null-terminated strings, rapid compile time, decent intellisense.

Now for the catch:
a) Abysmal help files. They don't contain any useful information, and the win32 API isn't documented at all. Luckily, I can use MSDN to look up almost everything and C code works in Delphi, which is great. Once you know how to do everything it's not an issue anymore, but it can be a pain in the ass.

b) Debugging? Forget it. Moving your mouse over a variable will rarely give you the actual value as tooltip text. The watch window is clunky. Breakpoints don't work as expected (no: even if you turn optimization off it still refuses to break at some points), etc, etc. The debugger is only marginally better than using message boxes or printf/writeln. This really is a shame, because applications can be put together extremely quickly, but much time is lost because debugging is so inefficient.

Your millage may vary.
Zorg
Tuesday, March 29, 2005
 
 
Actually, when you write PChar(Str) where Str is a Delphi string, the compiler just returns the pointer to the first character. This works because all Delphi strings are always automatically null-terminated, and they also have a 32-bit length field.
Frederik Slijkerman Send private email
Tuesday, March 29, 2005
 
 
"a) Abysmal help files. They don't contain any useful information,"

Hmmm.. I've found that there are more EXAMPLES in Delphi 7 than in vb6 (and certainly vb.net ) help.

 "and the win32 API isn't documented at all. "

Very true. But, as you say, you can use the C documentation b/c Pascal is pretty compatible.


"Moving your mouse over a variable will rarely give you the actual value as tooltip text."

Hmm... Delphi 7 always works for me.  UNLESS you're hovering over an optimized bit of code. I.e., if you set  X:=5; and then never use X again, it's optimized out.


"Breakpoints don't work as expected (no: even if you turn optimization off it still refuses to break at some points), etc, etc. The debugger is only marginally better than using message boxes or printf/writeln. "

You may be using a free version of Delphi (D6 personal was free). Doesn't have all the bells and whistles (dumb move on Borland's part. )

Haven't tried turning off optimization, so not sure about that.  But the local variable window is great. Shows you automatically all the current context variable values.

Never had a problem with break points.
Mr. Analogy {uISV owner} Send private email
Tuesday, March 29, 2005
 
 
----"They then went mad and let the suites take charge."----

Yep, when you talk taking orders from a sofa, you're really in trouble.
Stephen Jones Send private email
Tuesday, March 29, 2005
 
 
There are plenty of reasons why Delphi was never a big hit in the US. I know that Delphi is a hit in Europe and South America.

I think this is due to the same reason why Microsoft rules in the US but it is challenged everywhere else. Many businesses in the US are not savvy technological decision makers. Often decisions are based solely on who's behind the tool and not on its merits.
AlanF Send private email
Tuesday, March 29, 2005
 
 
Delphi's IDE has some problems in displaying the current context when an exception happens. I generally can't see variables. Also, compiled components without source will be problematic to debug through, especially if such a component is calling your event handler. But these could all be said of Visual Studio too.

Otherwise, it's fine, and highly productive. The debugger is pretty much identical in capabilities with MS tools. Just different keystrokes.
Bored Bystander Send private email
Tuesday, March 29, 2005
 
 
The only big "problem" with Delphi is that it taints you for looking for new jobs. Employers and clients don't want to hear what your C++ background is, they hear about one tool that they don't like and they assume that you're a dumbass and uneducable and undesirable.

IE, it is assumed on the hiring side that you won't do the work at hand if they see an "incompatible" tool listed in your resume.
Bored Bystander Send private email
Tuesday, March 29, 2005
 
 
"Borland could be commissioning articles on the VB6 to delphi transition, it could be touting the commercial VB6 to Delphi translator."

This was posted by one of the R&D guys on his official Borland blog:

http://blogs.borland.com/stevet/archive/2005/03/15/3145.aspx

They definitely should be pushing things like this more into the public eye.
JT
Tuesday, March 29, 2005
 
 
In the city where I live, in Brazil, we have a lot of Small ISVs, most of them founded by ex-students of the local University.

Back on the old days, one would learn how to program in Pascal at the University, so everybody knew Pascal when Delphi was released, but very few at that point were really doing Windows development.  VB was already there, but no one took it very seriously because, after all, it was BASIC <g>.

So Delphi really had a great start.  The offer of Delphi programmers here was huge.  The older companies were starting to migrate their software for Windows, and most of them chose Delphi for the task.  The new companies also used Delphi.

In a few years,  they started teaching OO with Delphi at the University, instead of C++ as they used too.  Then, later they started using JAVA, and now everybody is migrating for Web applications in JAVA.
Ricardo Antunes da Costa Send private email
Tuesday, March 29, 2005
 
 
"The only big "problem" with Delphi is that it taints you for looking for new jobs. Employers and clients don't want to hear what your C++ background is, they hear about one tool that they don't like and they assume that you're a dumbass and uneducable and undesirable.

IE, it is assumed on the hiring side that you won't do the work at hand if they see an "incompatible" tool listed in your resume."

This was the main reason I had to leave Delphi, and that there are only 4 companies in the whole state (Utah) that hire Delphi programmers consistently.
Slartibartfast Send private email
Tuesday, March 29, 2005
 
 
"Abysmal help files. They don't contain any useful information, and the win32 API isn't documented at all."

Up through Delphi 7 the product actually came with helpful manuals in addition to help files.  I've found the slim Delphi language reference to be a great tool.  It's really a beautiful document.  I still work with Delphi 7, but from what I've heard docs aren't as good in Delphi 8 and Delphi 2005.  No hard copy manuals.  And a lot of the .NET help is ported from MS help and uses C# code. 

I wouldn't even expect that a compiler from Borland would document the Win32 API. Besides the fact that majority of Delphi programmers delve into Win32 API only rarely, isn't documenting the Win32 API Microsoft's responsibility? 

"b) Debugging? Forget it. Moving your mouse over a variable will rarely give you the actual value as tooltip text."

Not sure what you mean here.  I've never had a problem.  You can't get values if your program has halted because of an exception, but I can always get them when stepping through when halted from a breakpoint.

"The watch window is clunky."

I agree here, but no big deal.

"Breakpoints don't work as expected (no: even if you turn optimization off it still refuses to break at some points), etc, etc."

Breakpoints work as expected for me.  Of course, you can't set breakpoints on lines of code that aren't executable, e.g., on a uses clause.  Or, rather, if you set a breakpoint there it will never break because that's not a line that's ever executed.

There is one obscure bug that occurs in some really huge units.  Ordinarily after compilation in IDE you will see little blue dots to left of each line that is executable; in rare case of some huge units you won't see these little blue dots for all or part of code in the unit.  Breakpoints work only if set on lines that have blue dot.  I've had this happen once or twice and you can revise unit so that things work. 

"The debugger is only marginally better than using message boxes or printf/writeln. This really is a shame, because applications can be put together extremely quickly, but much time is lost because debugging is so inefficient."

For me the debugger seems at least as capable and easy to use as debugger for VB.  (And Delphi's exception handling is much, much better.)  Plus as usual there are add-on products for Delphi that make debugging even better:

Codesite, a sort of "super-logger":  http://www.raize.com/DevTools/CodeSite/Default.asp

Various add-on exception handlers that provide excellent logging and debugging info in error messages:
http://www.eurekalog.com
http://help.madshi.net/madExcept.htm 
http://www.scalabium.com (smLogging component)
Herbert Sitz Send private email
Tuesday, March 29, 2005
 
 
"The only big "problem" with Delphi is that it taints you for looking for new jobs. "

I agree with this.  This is the big catch with Delphi.

Delphi is great choice if you run small shop and can make your own dev tool decisions.  But there are relatively few larger businesses that have standardized on Delphi so if you're working as a hired hand you'll have slim pickings.

Borland's marketing emphasis for last couple of years has been to move away from small developers and try to get into corporations with "Application Lifecycle Management" tools that work in combination with their compilers and IDE's.  If they're successful you might see a few more Delphi jobs out there, but I wouldn't hold my breath.
Herbert Sitz Send private email
Tuesday, March 29, 2005
 
 
Zorg Writes:
"b) Debugging? Forget it. Moving your mouse over a variable will rarely give you the actual value as tooltip text. The watch window is clunky. Breakpoints don't work as expected (no: even if you turn optimization off it still refuses to break at some points), etc, etc. The debugger is only marginally better than using message boxes or printf/writeln. This really is a shame, because applications can be put together extremely quickly, but much time is lost because debugging is so inefficient."

While debugging, turn optimization off, and make sure all of the checkboxes for debugging are checked (except "Definitions Only"), then do a "Build project" (not a simple compile or run).

For breakpoints, after you do a "build project", the permitted breakpoints will be little blue dots on the left hand side of the editor.  Some places that you thought you might have been able to break you won't be able to -- this is because the code was not necessary, and removed by the smart linker.

If you want to _coerce_ a breakpoint, this will do it for you:

if SomeCondition then
asm
  int 3;
end;

Int 3 is the "take me to the debugger" interrupt.  Now when SomeCondition is true, you're forcing Delphi to take you into the debugger no matter what!  (You'll want to remove or $IFDEF this code out for your non-debug version).

Also, Delphi is so _fast_ that it's easy to unit test functions or objects, one by one, with simple apps.  God does that save debugging time!  Instead of writeln, I simply write output to a memo that I plop on the test app's main form.  And voila!  Instant debugging!  Then reintegrate tested code with my main app.

But all this being said, I'll admit that yeah, Delphi's Debugger and can be perplexing at times... it was for me when I first started using it.  90% of your problems can probably be solved by doing a 'Build project', and then looking for the blue dots, and clicking on one of them to set a breakpoint... 

Let me know how it goes...
Peter Sherman Send private email
Tuesday, March 29, 2005
 
 
Delphi is basically a dead-end technology at this point, and it really exists to cater to the maintainers and the pure hobbyists. Few real projects are going to be entered into using .NET. It had a small glimmer of hope with the whole cross-platform thing, but that fizzled.

Having said that, I totally disagree with the negative comments concerning Delhi's debugging capabilities. The only time I ever had any real problems with Delphi's debugger was when I forgot to turn optimizations off, or when I was using optimized packages and foolishly tried to debug into them.
Dennis Forbes Send private email
Tuesday, March 29, 2005
 
 
"Delphi is basically a dead-end technology at this point..."

troll bait.

But, I'm glad that you are helping to keep my competition away from Delphi.
HandicappedCompetitionIsGood
Tuesday, March 29, 2005
 
 
In the 80's Borland had the best C compiler out. It had the most market share etc. Turbo Pascal was use a tremendous amount for DOS programs.

Come Windows 3.0, Borland did not get a windows compiler out or a windows version of Pascal.

Windows 3.1 Borland had OWL for the windows class library, but most people were using MFC 1.0 since they used it for Windows 3.0, Pascal still not a windows app, though it could produce windows code.

Windows 95, what is Borland?

Delphi is a decent language, but it got crushed as windows programming went to C/C++ from Microsoft, so 'real' developers did not use it. VB came out for the 'average' user and Pascal was still considered one of those 'real' languages, except by those 'real' programmers.

I worked a job in Delphi 5/6 and I hated it. It did not have destructors and objects created on the stack did not clean themselves up, after using C++ this hurt.

Not to mention the whole rebranding debaucle that others talked about.
Lorad
Tuesday, March 29, 2005
 
 
I used to work at Borland doing tech support for Delphi.

The lack of success of Delphi is solely the fault of Borland's management.

Simply put, they marketed it poorly and were inconsistant about supporting it.  They overpriced it at exactly the wrong times.  They dissed it themselves when they wanted to go after the whole "Enterprise" market.  When I worked there, Delphi 4 was the red-headed stepchild and JBuilder was getting all the love from management.  As JBuilder and java in general was horribly inadequate for writing decent GUI apps, Borland lost out in a big way to MS in those years.

No big or medium organizations wanted to go with Delphi because it was a single-vendor product, that vendor (Borland) had an unsure future, and that vendor didn't even seem to commit to the long-term viability of the product.
Richard P
Tuesday, March 29, 2005
 
 
"Delphi is basically a dead-end technology at this point, and it really exists to cater to the maintainers and the pure hobbyists."


I think you're over generalizing.  The TECHNOLOGY isn't deadend. The JOB PROSPECTS may be a dead end.

Delphi 2005 lets you write Win 32 or C # apps.

There are plenty of companies sticking with VB6, for good reasons, and it's far more dead end. (Officially no longer supported, right?)
Mr. Analogy {uISV owner} Send private email
Tuesday, March 29, 2005
 
 
VB6 will have Runtime support for the time being (up to 7 years from now?). It's a good deal for the people that have VB6 programs.

If you really, really need Desktop applications, you need to make your own choices. Most companies are after the "Enterprise" market these days.

There are many open source cross-platform solutions. Java has multimedia support, for example. My opinion is that Java is becoming the VB of the old days. It's funny, because the Java people used to complain a lot of the slowness of Swing, but now they need to use it a lot.

Besides Java, there are other solutions like the SDL and wxWidgets:
http://www.libsdl.org/index.php
http://www.wxwidgets.org/

You really don't want to depend on a single company again, do you?

The Desktop is alive, but it is not as marktable with peers as it used to be -- it's as fragmented as hell.

When I think of Delphi, I think of Java and DotNet as well. So why bother?
Yeah
Tuesday, March 29, 2005
 
 
"So... why has Delphi never caught on in a big way?
Is the marketing department mightier than the code?"

I think Borland faced two obstacles they were never able to overcome:

1. Overcomming Developer Perception
It is always about perception/presuppositions/prejudices absence of any real technological merit.  The C++ camp (Fundamentalists) always viewed Pascal with disdain and as a toy Language.  The VB camp (WithoutAClue) didn't even know what Delphi/Pascal was.  The VB camp was so overjoyed of being able to put a button on a form and calling msgbox function, that Delphi was too much overload for them and never made it on their radar.  I don't blame them, the little buggers get overly excited pretty fast. 

2. Overcomming Microsoft
Microsoft was always viewed was having the cutting edge technology (I'm not sure if VB ever fit in this catergory).  They have the strength of business acumen, marketeer's and technologists.  Borland only had the technologists strength and lost some of that when Microsoft poached it's employee's (i.e. Anders Helsberg, C#/.NET Architect).  I think Borland would've done better had they focused on their core constituency: DEVELOPERS.  But as many have mentioned, Borland has always been in a love/hate relationship with it's developer customers.

I think the strengths of Delphi have been the following:
Great, Lightining Fast Compiler
Excellent IDE
Vast Component Library
Excellent user group community. These guys are the best!
Applications that can compile to one statically linked exe

So to sum it up: Great Tool, Great User Community, Shitty Company.
Steve-O
Tuesday, March 29, 2005
 
 
Another vote for pricing as a disincentive.
Bob Riemersma
Tuesday, March 29, 2005
 
 
And, no one mentioned Kylix?

Great...cross platform...and a free download....whatever happend?
Albert D. Kallal Send private email
Tuesday, March 29, 2005
 
 
1) We need to look in the mirror. How many developers are even willing to consider anything not from MS. If we are members of a true profession then we should be helping to advance the profession once in a while and not just worrying  about brain dead jobs. To quote Felix Unger (and Shakespear) "The fault lies not in our stars but in ourselves".

2) Borland got beat so bad in the mid nineties that corporate memory refuses to allow it to take on MS face to face. Its too bad because now that open source has put cracks in the wall and MS can't seem to get anything new out the door there has never been a better time. But has Borland drank to much of the Java KoolAid?
Phil C Send private email
Tuesday, March 29, 2005
 
 
Open Source is eating at borland too. Eclipse is rapidly to taking market share away from J-Builder.
Steve-O
Tuesday, March 29, 2005
 
 
> And, no one mentioned Kylix? Great...
> cross platform...and a free download...
> whatever happend?

I have followed the Kylix development closely. Kylix is Delphi for Linux.

Borland discovered that the people who use Linux for free simply don't want to buy software. So Kylix brought them very little income, and they gave up.
Insomnia Send private email
Tuesday, March 29, 2005
 
 
Doesn't Kylix also have severe problems with running on more than a tiny hand selected number of Linux distributions? I mean both the IDE and the built applications have this problem.

Most Linux applications are OSS and are based upon configuring and re-making when first installed, to accomodate differences in Linux distributions... I could never see how a closed source tool could possibly track all the flavors of Linux in users' and developers' hands.
Bored Bystander Send private email
Tuesday, March 29, 2005
 
 
>> Open Source is eating at borland too. Eclipse is rapidly to taking market share away from J-Builder.

Excellent point Steve. Hopefully it will help to push Borland back to the Win32 world.
Phil C Send private email
Tuesday, March 29, 2005
 
 
Borland has a bad habit of screwing their longtime customers/supporters.  That last batch of releases of Delphi (Delphi 8 and Delphi 2005) have been terrible - Delphi 2005 in particular.  The (seemingly) dumped their entire C++Builder customers when they came out with C++BuilderX - no VCL!  What happened to C++BuilderX?  Beats the hell out of me - no new development.  Now we hear that C++ will be back in the Delphi IDE - but if it is in the Delphi 2005 IDE, which goes *poof* from time to time, who wants it?  The docs in the latest offerings flat out stink - help is broken everywhere, who ships shit like this anymore?

I have been listening to the Borland quarterly investor call for years.  The last one Dale Fuller said IDE sales are down 50%.  That pretty much tells you where that business is going - the tank.

Some of the Borland people on the Borland newsgroups are a pretty big reason not to use their tools - John Kaster in particular.  Most of the good people have left the company me thinks.  I notice Microsoft didn't hire Kaster.

All around, what a shame.
Old Guy shaking his head
Tuesday, March 29, 2005
 
 
"So Kylix brought them very little income, and they gave up." 

Kylix has never been officially abandoned.  Borland announced several years ago that they had suspended development and would take a "wait and see" approach regarding further development for Kylix.

There are signs of future Kylix development.  For example, a few months ago Danny Thorpe of Borland hinted at a Kylix update in a live chat interview: http://bdn.borland.com/article/0,1410,32789,00.html

A good number of the third-party tools are available in Kylix versions.  These include a databases (DBISAM, Accuracer, and others), remoting frameworks (kbmMW and RemObjects), Web application frameworks (Intraweb and ExpressWebFramework) as well as quite a few others. 

Moreover, there still seems to be a small but devoted group of Kylix developers.  Many maintain that Kylix is still the best development tool on Linux, at least for GUI apps, and if the newsgroup is any indication they seem to be able to finagle things to get it to run with many of the recent Linux distributions.

There's even someone putting together unofficial Kylix patches:
http://andy.jgknet.de/oss/kylix/wiki/index.php/Main_Page
Herbert Sitz Send private email
Tuesday, March 29, 2005
 
 
So when will C++ be in Delphi 2005? I could not find any info and it is somewhat contradicting since Delphi 2005 is already released...
Alex K Send private email
Tuesday, March 29, 2005
 
 
C++ in Delphi 2005?

Sooner than you might think ...
Mitch & Murray (from downtown)
Tuesday, March 29, 2005
 
 
Phil C Send private email
Tuesday, March 29, 2005
 
 
"Some of the Borland people on the Borland newsgroups are a pretty big reason not to use their tools - John Kaster in particular."

Care to elaborate?
Frederik Slijkerman Send private email
Wednesday, March 30, 2005
 
 
"I worked a job in Delphi 5/6 and I hated it. It did not have destructors..."

It's been a while, but I *definitely* remember Object Pascal having destructors.
John Topley Send private email
Wednesday, March 30, 2005
 
 
"Some of the Borland people on the Borland newsgroups are a pretty big reason not to use their tools - John Kaster in particular."

I disagree - I've always found John to be a paragon of decorum and professionalism. His is a difficult job, surrounded as he is in the newsgroups by hordes of screaming fanatics who threaten to throw the toys out of the pram if Borland doesn't support their favourite obscure technology like, yesterday.
Morgoth Send private email
Wednesday, March 30, 2005
 
 
"It's been a while, but I *definitely* remember Object Pascal having destructors."

It certainly does, so I do not know what the OP was on (about)...
Morgoth Send private email
Wednesday, March 30, 2005
 
 
>> I worked a job in Delphi 5/6 and I hated it. It did not have destructors and objects created on the stack did not clean themselves up, after using C++ this hurt.

Object Pascal is just close enough to C++ to be disorienting. Some things look C++ like but behave differently.

With OP there is no such thing as a stack based object. All objects are created on the heap, bar none. And only variables of built in data types are destroyed when they go out of scope (this includes strings.)

And, constructors and destructors DO exist but they must be chained together by code in inherited classes. For instance, a destructor must call the special keyword 'inherited' at the end in order to call the base class's destructor.

These are incredibly minor nits compared to the power and utility of the overall environment. I learned to adapt, and code written in Delphi can be extremely C++ like. But these issues drive some people nuts.
Bored Bystander Send private email
Wednesday, March 30, 2005
 
 
Also, the constructor and destructor of a base class can call virtual methods of derived classes, in contrast to C++. This works closely together with the fact that you have to call inherited constructors/destructors manually.

For example, suppose that TDerived derives from TBase and that ShowName is a virtual method:

constructor TBase.Create;
begin
  ShowName;
end;

constructor TDerived.Create;
begin
  FDerivedName := 'My derived name';
  inherited Create;
end;

procedure TDerived.ShowName;
begin
  ShowMessage(FDerivedName);
end;

This will show a dialog with 'My derived name' when the inherited constructor is called. This is often useful and there's no way to do it in C++.
Frederik Slijkerman Send private email
Wednesday, March 30, 2005
 
 
On the necessity of using destructors explicitly:

If you want objects that self-destruct when they are no longer referenced, you can define them as an Interface, which will be reference counted, like a native string.

These interfaced objects behave exactly like COM objects - in fact, they were created to enable COM in Delphi.

I use it often when my objects are going to "travel along" the code. You don't have to worry about freeing them at some other place.
Erik Springelkamp Send private email
Wednesday, March 30, 2005
 
 
<I worked a job in Delphi 5/6 and I hated it. It did not have destructors and objects created on the stack did not clean themselves up, after using C++ this hurt.>


Does not have destructors????  What kind of crack where you smoking on this job?

Delphi has had constructors and destructors from the begining (circa 1995) and even before if you count turbo pascal.

Delphi is still THE best RAD development environment out there, you can even create very stable and scalable servers with it.

Also there is NOTHING better for database development, NOTHING.
Tony Caduto Send private email
Saturday, April 02, 2005
 
 
Ok, Delphi does not automatically call the destructor for objects you must call free on the object. C++ stack created objects are destroyed when they go out of scope.
Lorad
Monday, April 04, 2005
 
 
Delphi used to be big.  Not as big as Visual Basic, but big enough.  Borland got very confused back in the late 1990s and started shooting for a nebulous enterprise market.  Later they took this further and killed off the devoted hobbyist market (by changing the license agreement on the low cost version).  That was a big mistake, because even though hobbyists were a small percentage of their income, they were running all the Delphi sites.

The core tech has always been very good.  Object Pascal is a nice language with a good balance of C++ power and readability.  A clean module system something that most Windows developers didn't even know existed until C# came along.  And Delphi compiles like lightning: before your finger is off of the hotkey for many projects.

The biggest drawback is that it's essentially Windows-only tech, which is scary any more.  Borland pushed for Delphi for Linux for a while (Kylix), but without much success.  And now, oh, those little iBooks are so nice that I don't want to touch anything that's not cross-platform.
j. Send private email
Tuesday, April 05, 2005
 
 
> And now, oh, those little iBooks are so nice that I don't want to touch anything that's not cross-platform.

there is a cross-platform, open source implementation of the delphi language: www.freepascal.org

Wednesday, April 06, 2005
 
 
To copy Delphi you need to copy more than the language.  So there's a companion open source project to FreePascal, the Lazarus Project, which is dedicated towards replicating an IDE similar to Delphi's:

http://www.lazarus.freepascal.org
Herbert Sitz Send private email
Saturday, April 09, 2005
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz