Fog Creek Software
Discussion Board




VB will never die!

Throughout many religious discussions in the past, ignorant developers have thumped their various bibles claiming that "VB will survive, because MS is firmly committed to it!".

C# and .NET proves that they were wrong.

However, it's interesting to see how easily Joel dismisses Delphi now. He obviously knows nothing about the tool, seeing as he mistakenly chose a mixture of VB/VC++ and even VBScript for his current projects (as mentioned in "Our .NET Strategy"), and yet, when his VB project finally hits the final fan and even he realises VB is doomed, he again chooses to go with MS' solutions.

MS never produced a commercial application implemented in VB, and AFAIK still have nothing to show implemented in C#, yet here Joel is, ready to hitch up his wagon once more.

Impressive.

And what, deep down, is C#? Its syntax, look and feel is closely related to C/C++ as far as I can tell. C is a language invented to make sure source code didn't occupy the larger portion of the developer's available memory. That was back in the early 70s when 4KB of RAM was plenty and 16KB was pure and irresponsible luxury. C is hard to read, and even compilers have problems reading the code (C compilers are slow and "smart linking" is seldom very smart at all). Heck, most C developers don't know how to declare a simple function pointer without looking it up somewhere (I felt bad about that myself once, until I discovered that none of my colleagues could do it either).

And this is what Joel chooses to base his next generation projects on? Some of his articles make interesting points, but this shades a rather dim light on the fella. Obviously he's very fond of spending hours coding, because that's what he's doing: Spending lots of time writing and debugging code that could've been better spent doing something else had he chosen a proper tool...

As for the "talent has left the building"... Well, Borland have somehow magically managed to churn out Delphi versions even after Anders' departure. One version per year on average. Granted, more than two years passed between Delphi 5 and 6, but that's because time was spent getting Kylix (Delphi for Linux) out the door. No small feat (be it with or without Anders).

It's nice to see Anders gets some recognition in the MS camp. It's also strange to see that he wasn't officially recognised by the same persons while working for Borland. Had Excel been developed in Delphi (or even Borland Pascal), it would've shipped years before, contained more features and required less resources to do its stuff. (but I bet actually delivering the product on time would've meant no tropical vacation for the lazy MS team)

Just look at Borland Quattro. Borland tried to implement a spreadsheet using C++. It was late, over budget and finally the team recognised that Turbo Pascal was the right tool for the job and nailed it ahead of schedule. ("the only way to ship a C++ project on schedule is to implement it in Object Pascal instead")

It was the right tool then, and although APIs have changed and operating systems have come and gone, it's still the right tool today for a surprisingly wide range of applications. Be it Web Services, NT services or full blown GUI applications, Delphi certainly does better than any combination of VB and VC++.

I usually tense up when I hear a competitor has released a new product, but when I discover that they've used Java, C++ or eventually C#; I relax. Our product is a 2MB download and requires 10MB of memory, whereas our competitors tend to prefer 10MB downloads and 40+MB memory requirement with half the features to show for themselves. :-) (and they usually boast of having used atleast ten developers, whereas we're at most five developers who sometimes spend time on other projects as well)

.NET as far as Borland is concerned is just another target platform. (http://borland.com/net/) They'll be there as well, and I'd be very surprised if the old rule "Borland makes better use of MS technology than MS themselves" is suddenly broken.

Joel, you presumably still have MS insider contacts, ask the old platform guys what the best development tool is. After all, who came up with the best support for MTS first? Borland or MS? :-)

--
Rune

Rune Moberg
Saturday, April 13, 2002

Well, one minor correction. Microsoft certainly has produced commercial applications written partially in VB. For example some of the components in Office are written in VB. And if you count VBA as VB, even more Office components are written in VBA. If you look at Office as a collection of pieces, you'll find that different languages were chosen for different pieces (C/C++/VB/VBA -- and probably others), depending on which was appropriate for the task at hand.

Mike Gunderloy
Saturday, April 13, 2002

I'm not sure if this counts or not but I believe that most of .NET itself (certainly the framework) has been written in C#...

A.Coward
Saturday, April 13, 2002

And the O/S looks like C and C++.

Christopher Wells
Saturday, April 13, 2002

And now Anders is ggoing to be the keynote speaker at Borcon http://www.borland.com/conf2002/keynote.html

He's still got his liking to Borland :-)

Sunish
Sunday, April 14, 2002

I just looked on the key jobs web site in the UK, 1655 VB jobs and only 190 for Delphi. Its about time you Delphi people started to realise the commercial reality.

Tony E
Sunday, April 14, 2002

an agreement to Tony here....

when the $$ speak, the guy with the most $$ speaks the loudest.  Isn't it a truism that "The Customer is always right"?  Who are a programmer's customers?

Hoang Do
Sunday, April 14, 2002

LOL,  if you've learned ANYTHING here, it's that Delphi people have little concept of market realities.  Recall, Betamax was a much superior format than VHS. 

Only the most stubborn remain.  I would say most Delphi coders are just maintaining software creat during the late 90's client/server boom.  Anyone creating new software in Delphi is a detriment to their employer.  I'm sure they have all bunched together at the 5 or so firms that still use it,.

Bella
Sunday, April 14, 2002

Bella -

Here's the reality: end users don't give a crap what software is written in. I've been writing multi-user, n-tier software for 5 years in Delphi, and had SOAP services (clients and servers) running a year ago using Delphi 6.

To contract, Visual Studio.NET just came out a few weeks ago.

Delphi provides an environment that makes it faster to produce better work, without compromizing speed or flexibility. Sure, there may not be a lot of jobs listed on xyzjobs.com, but the products that are built with Delphi have a signifigant staying power.

As for a brain drain, one of the biggest assets that Delphi (and Borland) has is Danny Thorpe. It is often overlooked that this is The Guy, and he's forgotten more about programming than most people will ever know. His contributions to Delphi are massive, and continue today.

So stick it out with Java, C#, C++, Basic, whatever. I'll be writing better products in less time, and cashing my cheques while you're still tracking down an obscure bug in the .NET core.

Competitive advantage: Delphi.

Tim Sullivan
Sunday, April 14, 2002

Tim: Competitive advantage: Delphi?

Maybe you write commercial software for your own company, and you're the boss, so perhaps in your extremely rare case, it's true.

But I'm a developer, not an business owner (maybe later).  I work for people as a contractor right now, and those people write my checks.

I have (among many minors) VB, C++, Delphi, Java, and now C# / .Net on my resume.  In what field do I find contracts?

My last placing round, my choices were: 5 sites for C# / VB.NET, 4 for VB 6,  1 for C++, and 5 for Java.  Oh, and 0 for Delphi.  In fact, I have tried to specifically find Delphi contracts to keep my skills current on my resume. No luck.

So, while a few of you may tout the competitive advantage of Delphi,  I have to give in to the market: If a friend asked what language was better to learn, c# or Java would win hands down. 

Notice I didn't make any references to what language was better designed, or did what with how much memory : It doesn't matter.

VB6 (and perhaps now .NET) has always done the job acceptably or better, and has a huge pool of talent to draw from.  Delphi has also done the job acceptably or better, and has almost NO pool of talent to draw from.  So as a manager, what would you choose to do your projects in?  Your best developer says Delphi, but no one else on the team knows it - or you only have two, and they both know it, but how long will those two be around - and how easy will they be to replace?

Now, let's score up the "Competitive advantage in the actual, real-life business world" 

Philip Rieck
Sunday, April 14, 2002

I reject the argument that Delphi is somehow better because SOAP support has been available for a year and you could develop applications using it.  There has been a solid and usable toolkit for SOAP available from Microsoft for over a year as well, long before Visual Studio .NET came out.  In fact, its pretty darn close to 2 years at this point.

In addition, .NET has been usable for developing applications in a managed environment (e.g. IT departments, internal tools for development groups, etc.) for about a year now as well.  Just because the final version of the IDE and a number of obscure bug fixes have been resolved through a lengthy release process doesn't mean that the core technology hasn't been effective.

I'm not attempting to debate the merits of Delphi, because I don't have much experience with it.  I can say that if you're wanting to debate the merits though, you need to have a better understanding of the support on the MS platform for the technologies you're talking about. 

Randy Holloway
Sunday, April 14, 2002

Philip Rieck said:
"but how long will those two be around"

It shouldn't matter.  If you are hiring good people,
then they will be able to pick up delphi with no problem.
Writing business apps in a high level language ain't exactly
rocket science.

mlr
Sunday, April 14, 2002

Geez guys are we talking about the same Delphi?
You know, the horrible one with the clunky IDE and bizzarro Pascal syntax thing? Oh and the not quite Windows standard UI gadgets?
Does anyone still care?
Enough Already.

Have a Banana
Sunday, April 14, 2002

Most Delphi guys are self employed people who by nature do not believe in dependencies. If they can't find a job, they create a job of their own. Its also true that most of them are fanatics in their own way. They learn stuff with the help of a good community that promotes each other. Now you just look at Torry or DSP and you will find more freeware components than commercial ones. End result is that you end up taking lesser time and money in developing any app. For the commercial big companies well this may not be the way to go.

Sunish
Monday, April 15, 2002

I don't understand this Delphi religious debate.  If someone can't learn basic ins & outs of Delphi in a couple months, despite knowing the similar MS product and being mentored by the company, then I wouldn't want him working with me.

Who can compare tools from completely different platforms intelligently, when the situation is entirely assymmetric?  I use Java, and think Jython is the productivity tool of the century.  But how do I compare it with VB, a totally different beast?

Michel
Monday, April 15, 2002

Tony wrote:
"I just looked on the key jobs web site in the UK, 1655 VB jobs and only 190 for Delphi. Its about time you Delphi people started to realise the commercial reality. "

Which hasn't changed much since Delphi first appeared.

There's nothing new here.

However, the main value of Delphi is that it helps projects scale. You don't need the amount of manpower that you might be tempted to add to a failing VB project in order to meet an unrealistic deadline set on the basis that VB is a proper tool (it ain't).

I'm not sure what kind of job you want (or indeed have) Tony, but I sure as h--- do not want to work as a grunt on a large team writing simple UI code. There's absolutely  no challenge in that, and the rewards are close to zero. (that's the kind of VB jobs that are on offer, and that's the kind of people they're seeking)

I'd be more worried had there been a large number of Delphi jobs on offer. That implies that Delphi as a tool isn't doing the stuff we Delphi users think it's good for. (put bluntly -- YMMV) Delphi is supposedly more efficient than any other development tool out there, for a wide range of applications. It'd make little sense if it needed the same amount of manpower as other development tools do.

And perhaps that's why some developers shy away from Delphi? They're afraid of their jobs. When their bosses throw out their obfuscated C++ code and unmaintainable VB code, then what's left for them? Early retirement is what I suspect they fear.

Borland Delphi is still Borland's #1 product. Ahead of C++ Builder (which is an excellent tool for you C++ heads out there) and JBuilder. I believe it still outsells those other two combined...

--
Rune

Rune Moberg
Monday, April 15, 2002

Rune wrote:

>I sure as h--- do not want to work as a grunt on a large team writing simple UI code. There's absolutely no challenge in that, and the rewards are close to zero.

I am not to crazy about working on UI code myself, but that is mostly due to the fact that we develop all of our application with C++ and the MFC and the MFC is a real pain in the a... if you ask me. But I would not say that writing 'simple' UI code offers no challenge. From a usability point of view the UI is _the_ important part of an application, because it is the part that is visible to the user.
Creating a good UI surely is a challenge. Another good thing about UI implementation is the reward that comes from being directly able to see (and feel) the results of your work. Furthermore, a good UI leads to satisfied users. Surely 'rewarding' in its own right.

It is true that UI design and implementation is still largely underestimated by developers and managers (on both, the customer and the developer side), though, and this might also show in the salary. I have no data to back this up, but I would suppose that a pure UI developer earns less than someone who codes low level functions (unfair as this might be).

Have fun,

Jutta Jordans
Monday, April 15, 2002

Does Borland still exist?  Or are they Inprise?  Or did they fold. 

Trivia:  How many of these companies still exist:
Sybase
Ingress
Novell
Banyan
Informix
Powerbuilder
Borland
Inprise
Symantec

Bella
Monday, April 15, 2002

Let me rephrase what I said earlier WRT UI code.

What I was referring to was the kind of mindless drivel you were forced to write in VB3 to get anything done. If you created a database client, then you didn't have master-detail relationships between tables and you were pretty much forced to populate listboxes manually and do all sorts of sneaky things...

Creating a visual component on the fly was done by keeping a hidden control somewhere on the form, and then create a copy of it, and pay special attention to the index parameter of its event handlers... (and you could forget about having a common event handler for a wide range of components, such as a click event for labels and edit controls -- and still be able to uniquely identify the control inside the event handler)

Etc...

Mindless code chores like that tends to get old pretty soon.

And it seems that many people (atleast during the .com era) call themselves VB developers, and all they know is how to put a button on a form and have it change the caption to "Hello world" when clicked (if they even know that much).

It's a problem finding good developers, whether you standardise on VB, Delphi, C#, C++ or Java. But which tool will allow you to get along efficiently with the few (and hopefully competent) developers you already have? Now that's the relevant and important question if you're a manager IMO.

--
Rune

Rune Moberg
Monday, April 15, 2002

And the moral of today's story is:  Don't feed the trolls.

Malachi Brown
Monday, April 15, 2002

There seems to be a simple argument by Delphi people that the language is somehow better than VB. It may very well be. However, a simply my language is better than yours argument here really accomplishes nothing, and can go on forever.

I have not seen a good paper, or argument as to why Delphi developer is more productive than is a VB developer. In other words, my ears are open, but I need more than some personal testimony by an individual.

If Delphi can produce commercial software in less time than can VB, then I would think that Delphi would be more popular. Writing software is all about turning code into $$. What the heck do we need Kylix for then? Hum? (Kylix is a great idea...and is what ms-access is to VB).

I have not used Pascal for a good many years. I liked the language a lot, and did write a payroll system in UCSD Pascal. It is ironic that both BASIC and Pascal have their roots in a language being created for training. How much of a handicap does Pascal (or Delphi) today caries over from it’s roots I don’t know.

However, for *many* years, there have been a number of papers floating around as to why Pascal is a very poor development lanauge. Here is a rather famous one:

http://www.threedee.com/jcm/psystem/whypascal.html


Albert D. Kallal
Edmonton, Alberta Canada
Kallal@msn.com

Al
Saturday, April 20, 2002

Delphi does carry the good things and its not Pascal anymore, its object Pascal.

Sunish
Sunday, April 21, 2002

>its not Pascal anymore, its object Pascal.

Sounds like a small difference when reading the words, but believe me, it's a huge difference when using the tool.  Very similar to how C++ is different from plain old vanilla C.

Sonny
Monday, April 22, 2002

Yep...
The market wants VB. This is one fact.
But Delphi is much, much better... Another fact.
Use both and u will understand what I mean.
The only way MS found to make a real good dev.
tool was getting people from Borland.

Paulo
Friday, November 15, 2002

I managed two projects trying to get products into the market. The first time it was VB. The second time with Delphi.

Delphi is better than VB for product development.

Number 1 reason. The development tool for component development and application development is the same. Most Delphi components ship with source code. If you need a critical change in a component you can simply inherit and make the changes. You dont have to jump hoops through ATL and C++ and VB. It is one language. Read what Joel himself has to say in http://www.joelonsoftware.com/articles/LeakyAbstractions.html
  and http://www.joelonsoftware.com/articles/LordPalmerston.html

If he was using Delphi he would not have to do all that. Joel calls it the hockey stick. I really think Delphi flattens the hockey stick.

The other reasons. The UI is easier. Delphi has a concept of bottom align, right align and client align which makes resolution independant UI a no brainer. 
It has the concepts of actions. For e.g. you create an action called save and write an event handler for this. Then you can simultaneously attach a Menu item, a button and toolbar to this action. If you say action Save is disabled the button, toolbar button and the menu are disabled.
Lots of little things like this make it easier to write a good solid product.

Easier to avoid DLL hell. So you dont have to pay Desaware tons of money to make sure your product works right.

This is why I feel Delphi IS better for products.

When it comes to products maybe not till Delphi 7.
But with Delphi 7 architect even that is changing. I have not yet used it in a project but BOLD is revolutionary.

Old time VB guys will remember that in the earlier versions of VB you did not have Data Aware components so you had to write a lot code to get info into and out of the UI objects. Data Aware controls made programming so much easier.  You just made changes to the recordset and the UI components would automatically reflect the change. ADO made it easier still by allowing you to write code in the events of the recordset instead of the UI events.

Now imagine you had set of UI compoents which were not data aware but rather they were UML model aware. So now you can make changes to the UML model and the the UI components will reflect that change in terms of enabling of controls, validations etc. Delphi 7 has that. They are known as BOLD aware controls.
So you set up your UML model and the program is ready. You make changes to the UML model and the UI reflects that change.
Vendors are releasing BOLD aware components for desktop applications, Web applications etc.

My views anyway

Govindkrishna
Monday, December 30, 2002

*  Recent Topics

*  Fog Creek Home