VB.NET vs. Delphi What's all that hype about?


"Mulder, Is that a brainwash?" - Said Scully

Since Microsoft 1999 PDC conference, a lot has been said about the .NET strategies. At that point referred as DNA platform. The DNA was used to describe how MS wanted to implement distributed networking applications, but also to make a parallel with the DNA strings (I guess), and the way it interacts with your body. The apps will be built and will interact to each other just like regular pieces of information.

And they came with new environments, new languages and tools that held the promise to move the systems development one step ahead in the project's design and implementation evolution.

But was only after the PDC 2001 that this whole movement took a worldwide impulse, with the presentation of the final beta-release and the firsts 'real' implementations of the .NET platform in websites worldwide.

Well, the brainwash is in the sense that MS is trying to give new clothes, new names, and a new perfume to things that basically already exists in the programmer's world.

Analyzing some of the VB.Net good points we can see:

cross-platform interoperability: we already see this in such nice languages as C++ and Delphi

variable scope: now you can set a variable that works only inside a for...loop block, which is very impressive and nice to see.

all the variables are objets:  This way you can do this: Dim X as string and after read X.Lenght. Great!

date values: Is much better now, with specific functions to add subtract and etc. will be treated as integer, like delphi. But no more conversion to double type exists

Threads: Now threads are free. It means that they runs following the cpu clock and OS permits, just like delphi. (welcome VB programmers! to the real programming world)
Thread's sad point: The difference between those threads and delphi threads is that, unfortunately, the procedures or methods you use in the thread can not use arguments or return values. the only workaround for this is using global variables (argh!)

garbage collection: for some reason, when you call a destructor, the memory is not released immediately, it remains in memory. .NET framework has a garbage collector that runs from time to time cleaning up the memory for unused objects. Also you can call the garbage collector by command.

Hun...If you could excuse me..I will reserve myself the right to compare only with Delphi, which is a very nice, stylized and elegant language. I will not even bother comparing it with C, because some people might say "ok, but C++ development's costs are higher...". So, please let me take this comparison to something "cheaper" and closer.

namespaces: they are the same 'uses' in delphi

control anchoring: in delphi, since the beginning of the times

'visual' inheritance: you can inherit classes and forms and by rebuilding them you can see the results immediately...nothing new in Delphi's world

setting tab order: just like delphi. and another feature, you can visualize the tab order in the control by itself, which is just like the dead Borland visual dbase.

optional parameters: vb.net accepts optional parameters. in delphi we can replace that feature with function overloading. And I agree when somebody says it is more 'elegant'

new Boolean called 'andalso': which is sounds stupid. lazy workaround for x=1 andalso x<>1

passing parameter byval is default now: all the parameters are now passed by value in default. this might sound strange, but they justify this telling that in between remote processes this is the faster way to go. (which does not justify, because they must correct their programming habits instead of opening the language for more this one technical/academic fault)

And the lists goes on.. the new return value, constructors and destructors, overriding and overloading...

For me, the brainwash is trying to sell to the people that .NET platform is (once more) the cure for cancer...but if you take your time (and of course, your professional experience) you will see that there is nothing new in the kingdom of the new-miraculous-MS-development tool/language.

And now, they (MS) just change the hailstorm project, put new colors and a new hairdress and they rebaptism it as 'MyWebservices'...what's new on that?? For me...nothing.

But what can explain the excitement and the hype about this whole .NET thing??

I would say: excellent marketing, sandstorm propaganda against the competitors, a probable worldwide trend, and ...(why not?) a little brainwash.

If even I feel good and pride when I dress my PDC t-shirt, imagine those who haven't seen basic and DOS and now are seeing .NET and windows.

And now, we can see that PC Magazine/dec-2001 gave a technical excellence award to .NET.

And they say there are over 2 million developers using .NET beta !!! I do not believe that Borland/Inprise ever sold this number of copies with Delphi.

Delphi is great. Very nice, very clear and objective... but there is no reason so become an ambulant cemetery by thinking in the past. Delphi is gone. And you know what? Those days I was talking to a friend about which language are we going to use in the next years. Do you think I told him to use Delphi+Linux+WebSnap? of course NO. I said, "Let's go  .NET, let's become skilled and worthy in the market "..We both agreed on this. That's what is all about (I am not a Borland marketing-preacher guy, neither MS...)

And besides, VB has grown up A LOT!! Nowadays, I don't believe that there is such a development tool that can beat MS Visual Studio.

I can not (and I should not, neither know this) answer the questions that If VB programmers are still going to be treated as 'second class' people in the coding realm...the world will tell. But the path, after 6 versions, is already paved and stable, and leads to a much better tool than any other in our viewfinder.

After this all, what is my final statement about the C# vs. VB.NET thing?

whatever, I just want to use a language, with good productivity, well accepted in the market, elegant and high skilled and that makes me feel free and powerful...just like a Jedi with a Visual Studio-laser saber. And in this matter, both are excellent options.

Edge