Friday, 27 July 2007

"Do you have a .net version?"

A reasonably common question we get asked these days in tender documents or over the phone is "is your product written in .net?" or similarly "do you have a .net version of your software?". At this point I bite my tongue, take a breath and try to find out exactly why they've asked such a ridiculous question.

Do they understand what they're asking for? Usually not. A .net "version"? As if we have a normal version AND a special .net version?

At what point did .net become a selling point for software? At what point did .net leave the workshops and magazines and conferences and become something that customers actually believed was a feature? At what point did software resellers start putting on their website "written using .net, Microsoft's latest development platform"?


.net isn't a new platform, it's a "framework" for developers. The end user wouldn't be able to tell if software was written in .net or Win32 because there is no difference to the end-user. There's nothing new in it, nothing fancy or magical, it's just a well-designed foundation for developers to work with. The same one that we as Delphi developers have been using for years. Microsoft brought together years of different technologies and brought them under one roof. Designed by the very man who designed Delphi's OO framework. Nothing new: just the old stuff, revamped and rebadged (oh yeah, with garbage collection added). It's for us, not them.

Another misconception from users/customers/managers is that it's something to do with the internet. I can see why, because the name .net is simply one of the most misleading names in software history. The "net" in .net is a misnomer. It isn't about putting your software into a browser, it's just a rewrite of the Windows development framework. ASP.Net allows you to develop websites, but so did ASP.

A post last year on the Delphi Developer's Group newsgroups asked "Has this whole .net thing been a marketing strategy by MS to boost sales of Visual Studio? Did MS decide Borland, Eclipse and others were encroaching rather too much on the developer tools market and in a brilliant coup de grace has shattered the competition?".

Someone replied, "The thing that annoys me is that .NET is now seen as the latest must-have".

I replied saying how customers are asking if we have a ".net" version and this was well-received as generally the sort of thing customers are asking about.


I'm encouraged, by looking at competitor websites, that almost none of them are developing using .net (or at least their system requirements don't state the .net framework). The more we fight it, the longer they'll have to leave Win32 alone. After all, MS aren't planning to bring the majority of their flagship products across either.

8 comments:

Bamboo Dreams said...

I am not sure what we are trying to establish here...

Customers ask for a specific development platform for various reasons, many of them very legitimate. For e.g may be the customer was asking about the .net version because they want to implement a domain wide verifiable security policy.

Assuming that US developers know everything about everything is a fast fading trait, for a very good reason. Software development is not an exotic art anymore. It is ok to let out the big secret about what we use to develop their software.

The argument that, since Anders Hejlsberg was the architect of .net there is nothing new in .Net from Delphi is a bit of overstretching, and an insult to Hejlsberg.

Delphi, when it was released, was a very innovative development environment, and defined what an IDE should be. But Borland managed to erode most of its original charm by mismanaging and mismarketing. Right now, even with version 2007, Delphi Win32 and the IDE is way behind Eclipse, IntelliJ or Visual Studio. It is sad, but that is the fact.

Dana said...

Excellent Blog! I've been saying this for the past 2 years. Couldn't have said it better!

Unknown said...

You didn't get the point at last. .NET definetly IS a feature for the end consumer. There are just a few things to mention: cross platform interoperability. I can run my ASP.NET web pages on Linux / Apache / Mono as well as on Windows / IIS or Apache / Mono or .NET runtime.

Then: Code access security. We are writing software which is used in pharmaceutical firms. The administrators don't accept "insecure by platform" software anymore. So thats a no-go for applications that connect to the internet when there written in unmanaged code. The only thing they accept is .NET or Java, because remotely injecting hazardous code through buffer overflows is nearly impossible here.

And of course .NET is for us. I just say: x64, Windows Mobile, Web applications, third party components. Everything that is in either positive or negative way known to us delphi developers. We cannot develop in other platforms because of target restrictions in our compiler. We could with .NET. We need a lot of code to develop web applications. With ASP.NET we could be far more efficient.

.NET is a plus for both sides, and as CodeGear refuses to see that, I feel sad about it, but if they don't want to be a player in the development business anymore - it's their choice.

Native code applications will die in 5 to 10 years, as 16 bit applications died a long time ago. There are some methusalixe's out there, but they're number is near to zero and they're beging maintained with development tools that were state of the art some years before the rest of the 16 bit apps vanished.

So CodeGear is building an IDE that in 7, 8 years will be used only to maintain old native apps. They won't need a new IDE by then. That's the point where Delphi is going to die if they don't provide full .NET support (with an easy WPF designer, a Workflow designer and LINQ) up to the second quarter of 2008.

That's what I say from a developers and business side of view.

Anonymous said...

@Jason:
as for some economic matters, it's a cyclic evolution. Every 5-10 years, peoples do move their mind from "native and local software" to "network and ASP application" and back.
Just have to wait for the next WinAPI revival ;)

@Sebastian:
I'm sorry, I totally disagree: DotNet isn't a feature for the customer. It is a gimmick by a vendor.

Many facts do confirm this. Among other things:
- Java provides the same feature since years = no "need" for a new philosophy.

- native Object (Free)Pascal deploys well on many more platforms than .Net, though without any framework requirements

- "unmanaged code" is primarily a MS issue, not a cross platform one. This isn't a general argument and doesn't value DotNet up.

- .net "frameworked" applications simply cannot cover all needs (in terms of speed, simplicity of deployment ...)

Well, you're truly right on one point: .Net is, as seen from the business side of view, a "moneymoneymoney" maker.

.Net isn't evil.
.Net is good for targeted purposes.
but
.Net is just not and won't ever be the "ultimate solution" :)

Unknown said...

To you all, I genuinely welcome your comments whether you agree with me or not. After all, that's the point of this: to generate the discussion, not to just expect you to read my view and accept it as read.

My original point was that the stupidity in the question was not "is it developed in .net" but "do you have a .net VERSION", as if implying we have a separate product developed using .net. But once I got going, my indifference to .net came through and in the end it showed that I'm, in no small terms, not a fan.

Whilst I agree with the points about "managed code" and secure applications, these terms were not mainstream before .net was created. This is a creation designed to frighten users into thinking that if it is "managed", it's "unmanaged" and therefore uncontrollable and dangerous. This is classic FUD.

And I don't buy into platform interoperability either. Java manages that (at a push) and .net is and never was never going to make it onto non-MS devices such as Macs and Linux. It works for Windows PCs and Windows Mobile and that's it. This isn't platform independence. They're MS platforms and Apple and the various Linuz distros were never going to play with MS's ball on this one. After all, Java has eben doing that for years.

As for ASP.Net, it doesn't provide any more platform interop than any other server side language because most ISPs support all configurations anyway, so it's just another installation they've had to make on their servers. Needlessly. ASP.Net websites stand out a mile and, the ones that are public facing (i.e. not intranet sites which are fine IMO) and so noticeably ASP.Net websites because they're so slow. And can do nothing that I couldn't have done is ASP, PHP, Ruby, et al.

I guess I agree with Lois's last paragraph in which it suits some people some of the time but I don't think it ever brought anything new to the table, just things that MS didn't control before.

Anonymous said...

.NET, like the Delphi VCL brings advantages to developers and thus indirectly to the end users.

.NET was designed by Anders just as Delphi and the VCL were, and there are some similarities, just as a Buick and a Ferrari are both cars. They both have a purpose, but one is faster, and more enjoyable to use.

.NET is what Delphi would have become had Anders stayed with Borland, Borland had learned to market, acquired a huge amount of cash to spend, and broke down all the barriers that prevented it from acting on a coherent product strategy in the best interest of it's customers.

While I am not the biggest fan of Visual Studio (for that matter Microsoft tools in general), .NET itself is a great piece of work. For any developer to dismiss it for any reason, or say that .NET is not the future of development, then they are either not much of a developer (unable to see all the benefits of .NET), or they simply don't want to evolve their skills. You can develop a product with Delphi, and it's not necessarily a bad idea as Win32/Win64 will be around for a long time to come, but the days are numbered, and like it or not, customers do care what technology products are developed in because it affects their sustainability. As a consultant, if you don't know .NET, you are limiting your development contracts and that trend will continue...

Larry Shepard said...

It is interesting to read these comments from developers who have chosen "sides" for various reasons. I have chosen (for the time being) a non .NET approach. Why? I basically agree with the comment that the "so called" innovations in .NET , like managed code, are really fixes for pre-existing shortcomings. Efficiency, performance, simplicity and fear of the programmer-hanging monster that is MS, keeps me running from .NET. One question that I always ask is, if I hang my hat on a particular .NET feature, how long will it be before it is snatched away or no longer supported? Many VB developers are suffering today because of the monster.

When I get to the point where I need to do something that I cannot do without .NET, I may be forced to "switch". Meanwhile I will continue running from the monster (See my blog entry, “Larry and the Monster at the link below).

http://larrysdelphiblog.blogspot.com/2007/06/my-first-bog-larry-and-monster.html

Randy Magruder said...

"The end user wouldn't be able to tell if software was written in .net or Win32 because there is no difference to the end-user."

Except, of course, that there is a big install footprint and the app runs noticeably slower, draws slower, etc. I can see why users would want to know if you had a .net version -- so they could AVOID IT! :)

"There's nothing new in it, nothing fancy or magical, it's just a well-designed foundation for developers to work with."

I might take a few issues with "well-designed". The .net framework suffers from a 'too many cooks' approach to solving development problems.

"Designed by the very man who designed Delphi's OO framework. "

Um, no. Although Anders lent some of his ideas and thoughts to the framework team, he was FIRST and foremost the main designer of the C# language, not the underlying framework.

Just wanted to correct a few mistakes in the OP.

Randy