I thought this thread was a good example of the "Annie Get Your Gun
Syndrome"... "Anything you can do, I can do better..."
In a perfect world, code is written, stored in a safe place, fully
accessible only by those who need it. This code was well written, well
formatted & indented, richly filled with comments detailing every change
and the revision the changes belong to. It’s easy to read, easy to
retrieve. The comments in the code detailed function calls & Subs
called. It also listed every link to an external file and detailed the
use of same. If you had any question at all, the answer was spelled out
right there in the code. As a new developer, you had it all.
Unfortunately, this isn't real world.
Best Practices aside, not everyone implements them. Reasons usually are
cost driven. Most often, management understands they are throwing a
pair of dice something will not go wrong. So there isn't enough time to
document, the users want features implemented now, not a week later so
you can document your changes, verify backups, update change control and
document your database.
Look at .Net as a product. Not a development tool, a product that lives
and breathes on retail shelves. Where did some of the features come
from? Anyone ever notice that C# is pretty much Java? Why don't you
need to register DLL's any longer if you use .Net? I can remember way
back when I did my first website, I wanted a COM component installed on
the server. The host said "No, sorry, we don't install any 3rd party
COM components on OUR servers."
Part of the features of the .Net environment were created to get around
a lot of limitations website developers had with 3rd party hosting
companies. .Net provides a language that was easy to migrate from Java
(after all, why use that, it isn't Microsoft) and make it possible for
more and more websites to get from everything else and into .Net.
Software is a volume game. You need to sell lots and lots of copies to
make lots and lots of money. Selling software volume licenses isn't
enough, you need people buying retail copies. So forget cfm, php, asp,
etc, etc, etc. Move to .Net today. All you small developers, forget
Java and Cold Fusion, it's time to come up in the world and use .Net.
Unfortunately, there go those best practices again. .Net is high
maintenance. It is really for ENTERPRISE development where you can
maintain those Best Practices. Even then, it is still hard to migrate
from anything to .Net. I have spoken with dozens of .Net developers
over the years. Everyone that tried a large migration from VB 6 or ASP
Classic to .Net had problems from the start. In the end, everyone
started from scratch. And all those websites that are moving to .Net
every day? Some are still doing it after 3 years and aren't even half
complete. So that small one man shop maintaining a dozen sites for
clients? He probably won’t be moving any to .Net anytime soon. He’ll
play with it, start to make some changes to some sites to get a feel for
it. But I doubt very many of those guys are moving to .Net.
If you look at some sites, eBay comes to mind, they were a huge ASP
shop, using some heavy CGI implementations on the backend. They have
said no to .Net and moved from Windows to Java on Sun hardware. And
there is this one teeny tiny issue with .Net. Buy into it and you’re on
Windows Server. I’m not putting down Windows 2003 Server. I use it for
my websites. But with .Net, there isn’t any viable option for another
hardware and/or OS platform except windows. Yes, I know there are a few
options out there. Novell has Mono, the open source solution to run
..Net on Sun Solaris, Linyx and Mac. But these are too new and lack
sufficient field implementation for serious use. Time will tell with
these.
I contract for a LARGE phone company. Name starts with "V". You can
figure it out. A lot of the company has moved to .Net. A lot hasn't.
We are a 3 man IT shop (a Directror, 1 Developer, that’s me and 1 Help
Desk person) that works on it’s own without any direction from Corporate
IT. We work directly for a business unit. I work on an intranet site
that manages the work for a nationwide project. It's pure, classic ASP.
We considered moving to .Net. We ended up saying "No, stay in ASP".
Why? There go those damn "Best Practices" again getting in the way.
There isn't time to migrate to .Net. It would take us (as in me since
I’m the only developer) 9 dedicated months to build the framework. In
the meantime, the work continues in the field and the users want changes
to the application on a weekly basis to support the work. We implement
at least 20 enhancements a month to this application and about a dozen
changes and/or fixes due to business rule changes.
Unless you’re an Enterprise with a few million to throw at .Net, you
won’t be headed there anytime soon. Yeah, I know some small guys using
..Net by themselves. Go to any hosting company and ask them how many
sites served by a single server are using .Net. Not too many.
Like I said, “Anything you can do…” I can do it too. In some ways,
better or more efficiently than .Net. In other ways more efficiently
but not better, and some ways better than .Net but not as efficiently.
It’s a trade off. Because in the end, it doesn’t matter what platform
is better, the work still has a deadline that needs to be met. And you
use the tool that allows you to meet your customers needs now, not in 9
months. Because if you don’t, someone else surely will.