Different tools for different needs
Seems that some of my comments in a session I presented at TechEd
caused quite a reaction. First of all, and before getting into details (although
it won't be too lengthy), I would like to say that I have been misquoted in
certain blog postings, and I in fact followed-up with quite a large number of
people that attended my session to double-check with them whether I had said
some of those things or even something that might have been interpreted as such.
However, that's beside the point since it doesn't matter what you say sometimes,
there's always something else you can make out of it, take something out of
context, you know, make "headlines".
I normally do not get into the soap
opera dramas going on in the forums or blogs, but in this case, I am going to
publicly post a note to give my exact thoughts on the matter, just as I did
during the session. To start, this was a whiteboard session, that is, there was
no prepared material or PowerPoint presentation. It was a technical session to
discuss issues when porting applications from the VCL to the FCL, be it going
from Delphi to C#, to VB or even to Delphi for .NET. Being a .NET conference,
with .NET developers, it's more or less accepted that people attending are
interested in .NET, and in this particular case, also interested in how to do
such a port. Considering that during the same time slot, there was a whiteboard
session by Anders Heijlsberg and one by Danny Thorpe, I'm sure that those who
attended my session didn't do it because they didn't find anything else
interesting to go to. Point being, nobody was "lured" into my session and nobody
was "brain washed" and this was not an "advertising stunt". As a developer who
has quite a bit of knowledge in both Win32 and .NET and having worked with both
the VCL and the FCL and having ported several of our products to .NET using both
technologies, I have had to overcome certain issues that I thought would be
interesting to share.
I'm not going to write a transcript of my session, but I will highlight
some of the points:
- One person was interested in VCL.NET. From my
humble point of view, I do not see VCL.NET (as it stands today) as a viable
platform for starting new projects. There's hardly any third-party market for
it, you're exclusively locked down to one vendor, and from my personal
experience, I've had my fair share of issues.
- Someone else
asked if they should port their existing application to .NET and if so, what to
use, Delphi for .NET or C#. Once it was clear that they really had no compelling
reason to port to .NET (other than some XML algorithm they had was inefficient),
I suggested to them that they should continue with Win32 and only create bridges
to interop with .NET if they really needed functionality, something they could
do with Delphi for .NET or any other .NET language.
- I also
mentioned in numerous occasions that there are so many applications and
scenarios where Win32 is the best viable option and as such, Delphi is the only
way to go since it outdoes everything else on the market. I did note however
that it would be great to get new language features in Win32 such as generics
that make a lot of tasks easier and more maintainable.
Now, one of the more controversial points where whether starting a new .NET
project, should it be done using Delphi for .NET or not. From my point of view,
and as such, I expressed, no it should not, taking into account how much more
.NET 2.0 (and now 3.0) offers us. You would be locked down to waiting on Delphi
to catch up to these new features and seeing the situation now, that is nearly a
year, if not 10 months out.
As for existing projects, I specifically
asked what the ROI would be for that particular project. If it was something
that needed porting to .NET fast and could be re-used, then Delphi for .NET
would be a good option, however I personally don't believe that actual
code-reuse is so beneficial for two reasons:
1. You can always improve,
that's what re-factoring is all about.
2. You reuse ideas, not
code.
If people, as some have mentioned, are disappointed in me giving my
honest opinion, then good for them, let them be. However, I will not endorse any
one tool for all purposes, and let alone endorse any single company. If you want
that, then go to Evangelists of the company you choose, not to me. I will, to
the best of my knowledge, give an independent and honest advice on what I think
is the best tool for the job at hand.

