C#, .NET, VB.NET, Vista, etc. So What is the Point?



What great user requirements are being met by the software and tech world being
so insistent on constant change? Were there scads of users of software that
were unable to get their tasks done on Win32 machines using native Win32 code?
I don't recall having come across a single user that said, "I can't get
anything done on computers, until they implement software that needs a separate
20MB download in order to work, or a total reinstallation of a new operating
system, or written using a 'new' language that is just a rehashing of old
language elements that were already found in C++, Object Pascal or Java."

Maybe if the software development world were smarter they would spend time
perfecting what they have, instead of cranking out more complicated buggy crap
that nobody needed in the first place. Given the speed with which software
developers leap headlong into supposedly "new" technologies and languages,
you'd think they had already mastered pre-existing technologies. Wake up call:
most existing software is crap. And not just crap, but really bad, incredibly
aromatic, pungent, decadent befouling crap that oozes out into the world to
putrefy anything it touches. Those who dare to release such stuff into the
world have no right to arrogantly demand that the world wait while they rewrite
their crap in the latest and greatest "new" language or framework, or produce
even fouler crap while they start from scratch learning another language or
framework in which to write crap.

If this keeps up, at some point the rest of the world is going to say to hell
with us, and they will stop upgrading. Already, many businesses have adopted
just such a stance, insisting on running their Windows 95 boxes until they
can't run anymore. Yes, you read that right. There ARE people that ran pre-2000
software right through the supposed Y2K Armageddon without anything happening
to them. They learned as a result that the IT world is full of crap about this
need to continually upgrade.

In fact, I will go so far as to say that this continual upgrading is one of the
biggest rip-offs in the history of mankind. And here is the part that almost
every software developer reading this will hate: if you write new software to
the latest technology to come out of Redmond or Silicon Valley instead of
fixing pre-existing software, you are an accessory to this crime. Why? Because
it is the forced obsolescence of software that forces the rest of the world
into this upgrade debacle.

I'll give you a perfect example, in fact it is the situation that got me
annoyed enough to write this post. For years I've been successfully using
Quicken to manage my budget and pay my bills online. It's been working fine for
this purpose and there is no technical reason why it could not continue to
fulfill this role for years to come, except for one thing. Even though I paid
for it, and was not told at the time that it was time-limited software, it will
now expire in April. Not because the hardware on which it depends is now
obsolete or non-operative. Not because of any upgrade to my PC, or the
operating system on which it depends. It is solely because the company that
sells Quicken wants to sell me and all other users a new copy. This is amazing,
but perfectly par for the course in the software world, where instantaneous
obsolescence is such a part of the culture that it is now seen as a sellers'
right.

I've been thinking a lot lately about my newsreader. This is a software project
I've been working on over weekends and nights for a few years. Lately I've had
to admit to myself that it is a hobby, because quite frankly, I don't think
enough people would pay money for a newsreader for it to be worth the effort it
takes to turn a functioning piece of software into a finished product that you
can sell. Don't get me wrong. This newsreader works very well. It is
intelligently multi-threaded, fast, and very solid. But the icons are just what
I could find for free, several screens don't have that professional polish or
consistency, some messages are not user friendly, etc. And the user-feedback
from the worker threads is not as complete or informative as I'd like it to be.
In addition, I never did write a help file or manual for it, nor choose a real
product name. And so on.

The newsreader was written in Delphi, and it now comprises a lot of units and
when all third-party components are included, over a million lines of code in a
full build. This is a significant code base. If my goal was still a product
that I would sell, I would keep it in Delphi and finish it up, no doubt about
it. D2006 is by far and away the best tool to use for developing Windows
software for 32-bit Windows. But the time I use to finish it up in Win32 does
me little good when I go looking for a job. Most current Delphi jobs are either
end-of-life maintenance, or conversions to C#, neither of which portends much
promise for long-term Delphi usage. So I've been trying to figure out what
language to learn/review in order to keep the paychecks coming in over the
long-term. I've had constant employment doing Delphi only, since 2001, and
Delphi mixed with C++ before that. But the future of Delphi jobs is uncertain.
I need to find an alternative language, and perhaps write a significant piece
of software in that language to prove it is not just a checkmark on a resume.
I'm looking, therefore, to rewrite the newsreader in either C++ or C#. The
advantage of C++/CLI would be that I can use native code for
performance-sensitive activities and managed code for the GUI and other parts.
I could then directly reuse lots of existing code samples in C++ that are so
easy to find online. I was doing C++ for years before Delphi came out, and for
several years since as well. It probably would not be too difficult to get back
into it. Plus, with my background in economics and my work experience in the
financial industry, I'd be well-placed to get a good job in the financial
sector in Chicago, which is primarily C++ and Java country. On the other hand,
a combination of Delphi and C# skills may be just the ticket to ride, what with
all the Delphi-to-C# conversions currently under way, or destined to occur over
the next few years as existing code bases drift into perceived obsolescence.
I've not yet decided, so I've been looking into what it would take to write a
newsreader in .NET 2.0 using C++ or C#.

Well, here is where it gets depressing. .NET 2.0 is definitely a step backward
from Delphi when it comes to the extent and quality of the components that come
in the box. A lot of .NET components don't have user-draw, and there are no
..NET equivalents for several useful VCL components. In addition, there are
literally thousands of useful free components for Delphi. No such thing exists
for .NET. So, I either have to spend a lot of money, or I have to make do with
the components that come with .NET 2.0. In addition, there is not a single
feature that a newsreader needs that is not possible to write in native Win32
Delphi code, and .NET 2.0 does not offer anything in the user experience that
was not just as easy or even easier to write using Win32 Delphi. Sure, a
newsreader that I write in .NET 2.0 will probably eventually be better than the
current Win32 version, simply because I've learned a few very useful things
along the way about how to architect a good multi-threaded app. But it is
inevitable that the first few versions will be worse, because they will not
have yet been fully debugged through several iterations like the current Win32
version is. If I had end users, I would be doing them a huge disservice,
arguably almost to the point of fraud, if I rewrote the app in .NET 2.0,
because of the inevitable bugs that are a part of any software construction
project. The first few versions of a complete rewrite can never be as solid as
the next iteration of a previous architecture.

Read that last paragraph again. Think about the full implications for all the
rewrites going on across the software development world in reaction to the
introduction of .NET, and the massive disservice thereby being done to
end-users. The first few .NET versions of software will be WORSE than the
existing Win32 versions, even though they may be architecturally superior,
because of the inevitable bugs. It is inevitable and anyone that doesn't think
so is fooling themselves.

In conclusion, I will once again pose the question in the subject line. .NET
and C# are nice and all, but what is the point? Are they really solving
anything?

--

***Free Your Mind***


.



Relevant Pages

  • Re: Is Delphi 8 dangerous ?
    ... I've got a very old newsreader that already uses threads. ... (wether or not there are many servers and clients), ... IMO this is where the split occurs: between those that use Delphi for Enterprise, ... that use it as an all-purpose language and development tool (like a VC++ with Delphi ...
    (borland.public.delphi.non-technical)
  • Re: Why Delphi is not More Popular
    ... proffer a hypothesis as to why Delphi is not more popular. ... I suppose you could summarize this whole post in a single sentence: Delphi ... makes it too easy for crappy programmers to produce their crap. ... I've seen plenty of crap code in *every* language I've studied. ...
    (borland.public.delphi.non-technical)
  • Re: Over 100 Microsoft MVPs Have Signed Online Petition - Give Us Back VB!!
    ... My prime interest is *language* stability. ... "VB data controls" are com controls, ... > I wouldn't ever want to use them in Delphi - or in VB; ... My code is core to the app, business logic that is focused on the market I ...
    (borland.public.delphi.non-technical)
  • Re: VB6, VB2005, or Something Else?
    ... up" the language rather than any requirement of the platform change. ... the site seems to have articles from Borland too. ... don't understand is that you are moving completely to Delphi. ... including a fundamental data type. ...
    (microsoft.public.vb.general.discussion)
  • Re: Definition of outdated...
    ... There are often a reference to a programming language to be 'outdated', ... Looking strictly at the wording, then Java is more outdated than Delphi, ... What imo should be outdated is how money controls hype that controls ...
    (borland.public.delphi.non-technical)