The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Ok, Old Question,Still Confusion, .NET or .NOT?

Hello,

I was interviewing a person who refused to work on VB6 rather than VB.NET saying companies should work on .NET now.

The big issue still with .NET is same for ISV,asking users to download and install the framework.

Like, our product Mobile-Spy (www.mobile-spy.com) is made in .NET CF and requires the F/M to be up and running. Perhaps people dont like downloading a huge framework to run the trial on their Windows Mobile phones.

Right now we are making a system utilities pack, mostly in VB6, Delphi, VC++ (Yeah, we use CodeJock/Teebo etc).

But is it so that most people are now refusing to work on NON-.NET

What you think?
Zeeshan Alam
Zeeshan Send private email
Saturday, June 09, 2007
 
 
At this point, I'd have to be pretty desperate to take a VB6 job, and I'd leave it as soon as I possibly could.
Robert Rossney Send private email
Saturday, June 09, 2007
 
 
<RANT>

Why are people so fanatical about using the latest fad/framework? Surely the answer is to select the right tool for the job? Use some objective methods to determine what's important for your particular problem space. .NET will be replaced in a few years with something new so MS keeps getting their paychecks.

In my mind programmers who are more interested in using the latest fad than in the actual product have the wrong agenda. This is one reason why I normally prefer to hire engineers than programmers, engineers seem to be much more results focussed.

I think one of the biggest reasons that advances in software are so remarkably behind advances in hardware is because uptight programmers push their own 'I wanna play with the new toy' agendas in so many places.

One of my home computer's processors is at least 200 times faster than what I had when going through uni. It has 100 times the RAM, 100 times the disk space, and so on. The net result I get is probably only a 4 fold increase in speed to edit documents or browse the web. This is purely thanks to the software, which has chewed up the 50 fold increase in speed by doing... nothing.

</RANT>
Coopsnakes Send private email
Saturday, June 09, 2007
 
 
@Coopsnake, is your rant addressed to development shops that dictate the development tool as much as it is to developers? If so, I partially agree with you...but (being a C# developer) I haven't found too many instances where .Net hasn't been a good choice for the development tool. No problems getting folks to download the .Net framework.
ScottC Send private email
Saturday, June 09, 2007
 
 
Until Microsoft starts using .NET for major applications (not just example-ware) I don't see why anybody else should take the leap. MS is pushing .NET and C# as the be-all and end-all, but they still use C++ (and, even, C and assembly, for crying out loud) in their own application products. How is anyone supposed to take this seriously?

When major Micrsoft applications (like Word or Excel) are transitioned to .NET and C#, then other people will be able to trust that the language, libraries and frameworks are reasonably stable. Only then will it really make sense to move from a proven and stable platform onto .NET and C#.
Jeffrey Dutky Send private email
Saturday, June 09, 2007
 
 
I am still not using ANY .NET app on a daily basis. Are you? Is anybody?

.NET's place is in enterprise's intranet CRUD apps.

Native apps rule the desktop. LAMP stacks rule the server.
Nick++
Saturday, June 09, 2007
 
 
In all honesty, why should Microsoft migrate older apps to .NET?  And how can VB programmers call .NET a fad?  I have a feeling you guys aren't old enough to really remember when VB first arrived on the scene.
Grinder Send private email
Saturday, June 09, 2007
 
 
If I were MSFT, I would do it (convert Word, etc. to .NET) in some superficial way, just to prove that .NET apps really are working out in the wild; and also to force the issue of installation of the framework on every PC. (It's no big deal, installing the framework, right? Or so everyone keeps saying).

I would guesstimate that of every 100 PC's running the .NET framework, 70+ of them are owned by developers. I don't know the real statistic, but I do know that none of the family/friend PC's that I am exposed to outside of work have it.
Greg Send private email
Saturday, June 09, 2007
 
 
Here's a posting from 2.5 years ago that lists some Microsoft products that are at least partially in .NET:

http://blogs.msdn.com/vsdata/archive/2004/11/01/250823.aspx

I have to guess there are more such products now, not fewer.

I hear this thing about the size of the runtime all the time, but do people who are content to use dial-up really download software anyway?  It seems like if you're the downloading type, you'd get broadband.
Kyralessa Send private email
Saturday, June 09, 2007
 
 
In my opinion there are a lot of people on this thread confusing the purpose of .NET.

I for one am glad that the Office suite is not in .NET - it would be much slower to use than now.

.NET is, to my mind, designed to allow applications developers a tool to develop CRUD apps quickly.  It is not designed nor intended for what I call "systems-level applications," those applications such as Office which are in such wide use that they are effectively part of the Windows O/S.  These kinds of apps must execute as fast as possible because the speed of the user experience is critical.  C, C++ and Delphi are ideal for these kinds of apps because they compile to native code and don't require extensive and memory-expensive runtimes to work.  They are also in such wide use that the relatively higher development and maintenance costs incurred because they are written in lower-level languages can be distributed to a much wider user base than with enterprise apps.

The kind of application that most developers write, however, is for enterprise use, one that is going to be used by very few people.  Even our application, with over 200 current installations and probably 500 over the company's 20 year history, has probably only been touched by about 10,000 people.  As a consequence, the cost in development time of the development language used is a critical factor in deciding which language to use.  It would be ludicrous for us to attempt to use C to write our applications.

Another factor is that most enterprise applications don't require huge amounts of computing resources.  Users repeatedly fill in a few fields on a form, and a database does most of the back-end processing using SQL or some other highly optimized database query language.

So we chose Visual Basic (the company has always been very pro-Microsoft and never considered Delphi, a pity in my opinion).  Applications written in it still execute relatively quickly but more importantly can be developed relatively quickly.  Since the prime motivator for us as a company and for our users is that features come out regularly, and execution speed is not nearly as important as that, using VB makes a lot of sense.

Microsoft relatively recently woke up and realized how inadequate VB6 was and fixed that with VB7 (.NET) by adding true object-oriented features and a lot of other ease-of-use features for developers.  However, they also "broke" a lot of stuff compared with VB6 so a relatively heavy retraining effort is required for any development organization which wants to move to .NET, not to mention the cost of refactoring the code while converting the app to .NET.

I think that the typical development company in a niche market (what do you think: 70% of the developers in the world?  80%?) is chronically short of cash and has lots of demands from customers who are comparing their product to the competition so is always behind in trying to improve the product they've got, so moving from VB6 to VB.NET is a chancy and expensive proposition.  Companies who started in the past few years, since .NET came out are in an advantageous position because they don't have this legacy codebase - but they have the disadvantage of not having any following from long-time users.

Which brings me, finally, to answering the OP's question: there is still a LOT of VB6 work being done, it will continue for some time yet, and developers who refuse to use it are putting themselves at a disadvantage.  The slow deployment of .NET applications is probably less due to it being an inferior technology than from it being relatively expensive to switch to for small, cash-strapped companies who already have more than they can handle just maintaining their legacy codebase.

Our company is currently looking for someone who has a lot of .NET experience but would be willing to work in VB6.  We want to move to .NET and could use a senior developer to help with the transition but we have about eight months of development backlog in VB6 before we will be ready to start a heavy .NET conversion effort.
Karl Perry Send private email
Saturday, June 09, 2007
 
 
Microsoft Office Accounting 2007 is a .NET application.
Grinder Send private email
Saturday, June 09, 2007
 
 
I know that the Exchange 2007 Management Console is built on top of .Net, and is built with PowerShell!
*myName
Saturday, June 09, 2007
 
 
> Why are people so fanatical about using the latest fad/framework?

Er, so they can secure the best future for their family? That makes more sense than sticking with your COBOL fetish.
son of parnas
Sunday, June 10, 2007
 
 
>Er, so they can secure the best future for their family? That makes more sense than sticking with your COBOL fetish.

When you take a job, you should really be thinking about the job after that.

That is, no matter how sweet the deal is, ask yourself, will this job help me find the job after that?

A number of times I have not asked myself that question and my career has suffered badly as a result.
dot for this one
Sunday, June 10, 2007
 
 
One one the main reasons why I'd give VB6 a second look now would be future OS support, starting from Vista... What's the guarantee that M$ will keep on supporting the old VB for future OS releases? On the other hand, old school stuff like Delphi will give you the best of both worlds.

As for applications written using .NET, you gusys are even crazy expecting M$ re-write their core cash cows using .NET. Forget deployment issues for the time being...

First of all, there's the cost of re-writing, anyone knows, if it ain't broke, don't fix it.

Second of all, and the most important thing that little thing called garbage collection. The power of languages like C/C++ comes from the fact that you can write code and predict the deterministic behavior, specially deterministic freeing of resources.

Unless something miraculous happens, that's a long way off in the .NET world... How would you feel in the middle computing come complex formula over many thousand rows Excel freezes all of a sudden because Mr. Garbabe Collector thought now was a good time free up memory for those images that you had loaded previously in another worksheet?
Tz Send private email
Sunday, June 10, 2007
 
 
I see the anti-.NET foolishness on JoS has reached a new height.  Getting hysterical out of fear for being left behind, are we?

"Until Microsoft starts using .NET for major applications (not just example-ware) I don't see why anybody else should take the leap."

Gee, I hope you use C++ exclusively because Microsoft isn't using VB6 for any major applications either!  I'd say there's already more MS code written in C# than in any pre-.NET VB version.  This thread started with a VB6 vs VB.NET question, and if this is your reason for not using .NET you shouldn't be using VB6 either.  Or Delphi for that matter -- how many major apps did Borland ever write in Delphi?

"I am still not using ANY .NET app on a daily basis. Are you? Is anybody?"

Yes, not everybody is living under a rock.  RSS Bandit and Paint.NET are my default RSS reader and paint application, respectively.  And while I don't have an ATI graphics card their current drivers have a .NET frontend.  Obviously there's a bunch of stuff on the developer side that's written in .NET, and Windows PowerShell is based on .NET 2.0.

"Unless something miraculous happens, that's a long way off in the .NET world..."

Actually it already exists.  The specific example you give was never a problem.  Whenever you unload an MDI document you simply do a garbage collection right away.  That way you won't get any mysterious slowdowns during later operations.  The "small" GCs that happen very frequently are really unnoticeable.
Chris Nahr
Sunday, June 10, 2007
 
 
> RSS Bandit and Paint.NET are my default RSS reader and paint application, respectively.

Interesting. I have native, integrated RSS clients in Thunderbird, Firefox and IE7. I use Gimp along with lots of other smaller tools (like ImageMagik) for image processing.

> ATI graphics card their current drivers have a .NET frontend

Funny you should mention it, that is the absolute worst  and most hated piece of software on my computer. Useless, slow and buggy. Now I know why. There are people avoiding ATI cards specifically because of their driver experience.

Bottom line is: I use non-native apps only if I have no choice. I will jump ship as soon as a native app with the required feature set shows up. Because speed and native integration IS a competitive advantage.

And so would most other users. That is why I would only write .net to captive audiences, i.e. enterprises. I have yet to see that supposedly faster development in .net - where is that .net application with so many features in so little time that no native competitor is able to keep up?

Of course, I would not use VB6 either. But at least that one had a smaller runtime and less versioning issues.
Nick++
Sunday, June 10, 2007
 
 
"Microsoft starts using .NET for major applications"

Well Microsoft Dynamics Nav looks like it is moving to .Net as the development platform rather than the bizarre technology that they got from Navision.

Plenty of other cases too where new products are gradually moving over to .Net. The pace that Microsoft are moving over to .Net appears to be about right.
Arethuza
Sunday, June 10, 2007
 
 
"Or Delphi for that matter -- how many major apps did Borland ever write in Delphi?"

Borland/CodeGear wrote most of their apps in Delphi when applicable. Applications that were aquired from other companies may not have been written in Delphi, low level apps like compilers were mostly written in C because that is exactly what it was designed for and Java dev tools were mostly written in Java, but one the whole BorGear use Delphi plenty.
Craig Send private email
Sunday, June 10, 2007
 
 
I am a C programmer and I am not going to switch to .NET anytime soon.  In fact I have written a Javascript compiler and bytecode interpretter inside my software and use javascript to program at a higher level than C.  Programming in javascript is much faster than writing directly in C.  But still I am a fan of C and anything I want to be done fast I go back to C, code it and call it from javascript.  Of course with all these additions of numerous constructs, it is hardly recognizable as javascript anymore.  But I want to bring your attention to this essay:

 http://www.paulgraham.com/avg.html

Quoting from that essay:
"After a certain age, programmers rarely switch languages voluntarily. Whatever language people happen to be used to, they tend to consider just good enough.

Programmers get very attached to their favorite languages, and I don't want to hurt anyone's feelings, so to explain this point I'm going to use a hypothetical language called Blub. Blub falls right in the middle of the abstractness continuum. It is not the most powerful language, but it is more powerful than Cobol or machine language.

And in fact, our hypothetical Blub programmer wouldn't use either of them. Of course he wouldn't program in machine language. That's what compilers are for. And as for Cobol, he doesn't know how anyone can get anything done with it. It doesn't even have x (Blub feature of your choice).

As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. ****But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up****. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.

****When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.****

By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs.

I know this from my own experience, as a high school kid writing programs in Basic. That language didn't even support recursion. ****It's hard to imagine writing programs without using recursion, but I didn't miss it at the time. I thought in Basic. And I was a whiz at it. Master of all I surveyed****."

You might remember this point the next time you come across a new language.
Donald Duck
Sunday, June 10, 2007
 
 
Apologies up front for the length of this one. You should probably just ignore it :-)

Hi, Donald. I like your *Blub* post and I share your experience with older programmers getting stuck on their favorite language. It's part of getting old, you begin to fear change and look at new fads as foolish time-wasters of the young. Of course, every now and then it's actually a little bit of wisdom, as opposed to changeaphobia!

The point of my post was not to rubbish .NET, and I'm sorry if that's how it sounded. I believe in selecting the right tool for the job. We use .NET for RAD concepts and small one-off jobs or demos. We don't use it where we have to compete with other products (a faster product with smaller/simpler install is a competitive advantage) or where performance is an issue (which seems to be any product seen by more than 100 customers).

I also agree with a previous poster, I actually disabled my ATI video card control program because it delayed the start of my machine by 20 seconds (considering it boots in 40 that's serious) and was really buggy. I suggest that it's primarily poor programming at fault here, combined with the way over-engineered runtime.

.NET is a good idea. Just like Java. They are easy to learn languages and frameworks (that's the main point of their existence) so no-one who's programmed at a lower level should be scared of picking them up when their use makes sense. They hide a lot of pesky details away from the programmer so they can focus on the so called important stuff.

In fact, a few more iterations of these frameworks and we won't need programmers at all anymore (at least for business applications) right? Algorithms, data structures, OO-concepts, etc. just won't matter. The business guys will draw it up in UML version 11.4 and deploy it. No problems.

Back to the OP. If you buy into the MS paradigm then you will have to transition your VB code eventually. MS will retire the support and no 3rd party components will be available. The false economy of fast upfront coding time will now be paid for (probably in double) by being forced to transition to a new language and recode everything again. This time at least you'll budget into the product's cost that in 5 years time you'll have to do the same again...

A little side anecdote. A few years ago I took over a department with a large product written in C for HP-UX. The customer wanted the product to run faster and didn't like being stuck on the expensive HP-UX platform. The team had been trying to port it to VB (the MS fad of the time) and with four people and 6 months had gone nowhere.

I halted the development and lead a team of two who transitioned this 15 year old product from HP-UX to Linux on a standard PC. It was around 80,000 lines of code and the whole project took 6 weeks. That includes the time to buy the new hardware and install it in the customer's environment. They were amazed, their software now worked on standard modern PCs and ran nearly 100 times faster. I then took the team and used their time to add the features the customer was missing and resolve all the outstanding bugs. Happy days.

Since I left they've been trying to rewrite the program again. New guys have come in and extolled the virtues of <insert your favorite language here> and sold to management the need for change. I've been gone for nearly six years and it's still not working and not deployed. They started in VB6, then realized they had to go to .NET. The prototypes they have working are MUCH slower than the existing product and the customer is asking (quite rightly) why they should go backwards to a slower version? Sigh. The programmers have been pushing their own agendas on the customer again.

To all those guys who won't take a job in VB because .NET is the future - good luck. I've always stuck with looking after the customer, regardless of languages or tools, and my career has blossomed. I'll write in assembler, .NET, Java or even Lisp if it's the right choice for the product.
Coopsnakes Send private email
Sunday, June 10, 2007
 
 
Me, I don't care about .NET - I'm still so terrified of being left behind that I'm frantically rewriting all code I've ever seen in Java.  If I don't have that on my resume I'll be unemployable!

Also, fear of being Blubbed to unemployment is quite cute, but, well, by the time you've learned the dozen languages/frameworks that have been hyped as the next big thing, at least 10 of them will be the new Blub anyway, and there'll still be someone telling you how awful you are for Blubbing.

Being open to new ideas is important, but actually achieving results is more important than an obsession with being at the front of the bleeding edge.

So, I don't feel bad about missing the Java boat, and either .NET is a fad or it'll be around for a while, so I'll still be able jump on when it seems useful enough for an actual specific reason, if nothing better has come along.
yeah, that is nuts
Sunday, June 10, 2007
 
 
I'd guess that a lot of developers don't want to work in VB6 because it's almost career suicide these days. 

VB6 is old and dying.  Why would any developer want to spend the next few years working in VB6 when they're going to end up with a dead technology at the top spot on their resume? 

Take a look at any job site and tell me how many VB6 jobs you see compared to VB.NET.  A quick search at Dice for US jobs shows 2553 VB.NET listings and 346 VB6 listings.  Many of those VB6 listings are looking for VB6/VB.NET experience to port VB6 code to VB.NET.  It's not unreasonable to expect the VB6 listings to keep dropping.
SomeBody Send private email
Sunday, June 10, 2007
 
 
We faced the same dilemma (without the worry of a big download).  Why switch from a pretty decent VB6 to .NET?  Especially if VB6 was a block against the type of primadonna coder that cared more about the language than important issues?

A year ago, the issue was forced on me.

http://profitdesk.com/content/2006/07/02/snared-in-net/

In retrospect, I'm happy we converted.  Not only are the coders having an easier time, but the third party tools seem far better. 

Mike
A regular Send private email
Monday, June 11, 2007
 
 
+1 to dot and Somebody.

Desktop applications written in VB6 are considered a mature space. There's still some considerable activity there but much of it is tied up in vertical industries that already have a sizeable investment in it. Developers at those companies are generally happy there and will only leave when they retire.

As a result, we're at an awkward moment in time where there's not much opportunity to change jobs if we have to. If you're a VB6 developer and you get fired, you're pretty much stuck sitting around waiting for other developers to die off before those jobs become plentiful again. I'm not saying those jobs don't exist, I'm saying there's maybe one VB6 job for every one thousand VB.NET jobs out there.

I have no idea what the Windows Mobile business is like, but I'd be scared to take a VB6 job the rapidly changing cell phone field. If something were to happen to the company (such as our technologies becoming obselete overnight or being sued for patent violations), it would be hard to find another job.

On the other hand, I'd feel more comfortable taking a VB6 job at a government agency, in a financial field or a health care field. Not only do they move so slowly that it's easier keeping skills up to date, there's also substantially more job security.
TheDavid
Monday, June 11, 2007
 
 
> To all those guys who won't take a job in VB because .NET
> is the future - good luck.

I think I was the first person in this thread to say I wouldn't take a job in VB.  It's not because .NET is the future.  It's because .NET is superior to VB6 in every conceivable dimension.  There is no VB6 software project I can think of that couldn't be accomplished faster and better in C#.

I was a VB developer for the better part of a decade.  I've written hundreds of thousands of lines of VB code.  I've trained VB programmers and managed teams of them.  I've developed single-user desktop apps and web apps for thousands of simultaneous users.

At this point, the sole advantage VB6 has is that its framework has a smaller footprint.  It falls short in every other conceivable dimension:  speed of development, performance, ease of deployment, usability of UIs, interoperability, security, data access, XML support, networking, internationalization and localization, everything.

When I said I would have to be pretty desperate to take a VB6 job, what I meant is that I would have to be pretty desperate to tie my fortunes to those of people who don't know how much trouble they're in.
Robert Rossney Send private email
Monday, June 11, 2007
 
 
<Karl Perry>
.NET is, to my mind, designed to allow applications developers a tool to develop CRUD apps quickly.  It is not designed nor intended for what I call "systems-level applications," those applications such as Office which are in such wide use that they are effectively part of the Windows O/S.  These kinds of apps must execute as fast as possible because the speed of the user experience is critical.

...

Another factor is that most enterprise applications don't require huge amounts of computing resources.  Users repeatedly fill in a few fields on a form, and a database does most of the back-end processing using SQL or some other highly optimized database query language.
</Karl Perry>

You might be interested to know that MS SQL Server hosts an instance of the .NET runtime for executing stored procedures (which can be written in C#, or any other MSIL-compiled language). The new SQL Server data-mining extensions also host an instance of the .NET runtime, where users can install their own pluggable machine-learning classifiers.

I agree with some of the previous opinions, that the reason MS Office et al aren't ported to .NET isn't because it would be impossible, or because the applications would be too slow, but because there's no real motivation to discard millions of lines of working code just to rewrite the apps in .NET.
BenjiSmith Send private email
Monday, June 11, 2007
 
 
Is this a new project, or is it in maintenance mode?  You can't even legally buy VB6.0 anymore; that's a good a reason as any to not use it on new projects.
Grant Send private email
Monday, June 11, 2007
 
 
I'm going to agree with Robert Rossney on this one. I was a VB6.0 developer for 7+ years and can honestly say that I would need to see a hugh increase in pay to go back to it. This makes sense to me as it would require more work on my part to develop an application than to do so with C#.

All I can say to those who are reluctant/scared to change is that you need to first understand your fears and get part them. I was worried about dumping everything I knew to learn vb.net but found that it wasn't nearly as hard as I made it out to be. After that, I decided to switch to C# and was again pleasantly surprised. I think that is really what this debate is about (people who are worried that they can't figure out .net and are making excuses to justify thier fears).

Don't knock it till you try it.
Bobby S Send private email
Friday, June 15, 2007
 
 
>Why are people so fanatical about using the latest
>fad/framework? Surely the answer is to select the right
>tool for the job? Use some objective methods to determine
>what's important for your particular problem space. .NET
>will be replaced in a few years with something new so MS
>keeps getting their paychecks.

An eight year old, third generation platform is "the latest fad"?  Microsoft switch in a few years?  The next generation of .Net development tools will be out next year, it would take at least four more to replace .Net with something better.  By that point, .Net will have 13 years -- longer than (the windows version of) Visual Basic had.  VB1 to VB6 lasted ten years.
JSmith Send private email
Monday, July 02, 2007
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz