I have been used .NET for few years. Before that I used Delphi (VCL) for
many years. My conclusing is that .NET is much worse than VCL. Here are
the reasons:
Why are you posting them here? Isn't there a VCL newsgroup where you
could post, where you wouldn't wind up looking like a jerk for trolling
the people who on a daily basis use and enjoy the thing you are bitching
about?
As far as your specific conclusions go, I like the way you ordered them,
because you left the most important, easiest one for last. Let's look at
them all...
1) VCL comes with full source code. .NET has none. Even if the
documetation
is good nothing beat source code that you can use to check how framework
really works
I agree that's it's nice to have source code. But there are lots of
examples of places where you don't have the source code, and people get
by. The biggest one being the operating system API. This is not only for
Windows, but for a variety of other operating systems as well. Yet,
people still manage to successfully write excellent applications for those
platforms.
Beyond that, I think it's unreasonable to expect Microsoft to release the
source code for .NET. It's not an open source project and they have a
vested interest in making sure that .NET remains primarily a Windows
thing. Release the source code would make it a lot easier for projects
like Mono to exist, and would undermine Microsoft's intellectual property
ownership benefits they enjoy today.
2) No possibility to include 3rd party libraries inside the EXE. Delphi
can
put eveything inside one EXE. No need to deploy and maintain several
DLLs.
I don't know what you mean here. I compile multiple projects into a
single .exe on a semi-regular basis. I can deploy a DLL if I want to, but
there doesn't seem to be a problem creating a project that simply links
statically into my .exe.
If the third-party libraries aren't provided to you as non-DLL libraries,
then that would prevent you from doing what you want. But that's an issue
you have with the third-party developer, not .NET. Complain about them,
not .NET.
3) .NET needs huge and exactly right runtime enviroment. VCL produces
plain
and simple WIN32 EXEs
I guess ~20MB is still "huge"? I do remember the days when a 1MB
application was considered _enormous_. But these days? 20MB really isn't
all that big, and the simpler applications I ship are tens or hundreds of
_kilobytes_ in size. IMHO, it's an advantage to have a single 20MB
install that multiple applications can use, allowing each of those to be
very small.
Perhaps you prefer having multiple megabyte-sized applications installed
on your computer. I don't.
By the way, very few .NET applications require a specific version of the
..NET runtime. Some do take advantage of features in more recent versions,
but that's no different than an application only running on XP and not
Win9x. For those few .NET applications that are tied to a specific
version of the runtime, that's the application's fault, not the runtime's.
4) Localization support for .NET is a joke. .resx format is very bad. It
does not contains complete imformation about the form (e.g hierarcy). VCL
DFM contains eveything your need. In .NEt you have to actually disassebly
.EXE or analyze source code to dig out all the information needed for
proper
localization. Also this Localizable property is bad. You have to turn it
on
every for single form. In VCL eveything is localizable by default. Also
satellite assembly must be in a separate sub directory.
Again, this sounds like you simply don't know the tools. I've seen a
number of people comment on how .NET enables localization for them in a
relatively easy way. If you are having trouble, it's probably because you
are not taking advantage of the features .NET offers.
For sure, if you are complaining about the file format, that strongly
suggests you're going about things the wrong way. Why should you have to
touch the internals of the file format at all? There are tools available
for localization that handle that for you.
5) 3rd party controls are hard to install manually and really huge
compared
to VCL's counterparts.
Again, you need to complain to the third-party developers then. I have
written a number of custom controls for my own use, and they are not hard
to install, nor are they "huge" in any possible interpretation. In fact,
they enjoy the same efficiency of size that my .NET applications
themselves enjoy.
There is some many things .NET that is fundamentally flaw. I am unhappy
to
the fact this this is the enviroment we have to cope for the next 10-15
years.
And here is the "easy" comment to which I referred (not like your others
were all that hard to refute, but still)...
If you are forced to "cope with" .NET, then I guess that means that
Delphi/VCL is no longer a viable development platform. Why in the world
would you want to commit yourself to a development platform with no future
of support? Why post a diatribe about some other development platform,
extolling the supposed virtues of another, when that other one has
apparently been abandoned, leaving you to "swing in the breeze", so to
speak.
Conversely, you yourself admit that .NET is likely to be around for
another 10-15 years, which in the computer industry is a _remarkable_
degree of longevity. There are operating system APIs that don't last that
long (see Mac OS). Longevity is one of the most important aspects to a
development platform. You don't want to commit your development resources
to something, only to find that in a few years you have to pull up your
stakes and start all over.
So, by your own assertion, .NET has one of the most important attribtues
of a development platform in its favor: guaranteed long-term viability.
Pete