Fog Creek Software
Discussion Board

Windows Application Development

After reading "Working on CityDesk, Part Three" I can't decide what would be better for developing a Windows GUI application: C#, VB, or VB.NET?

I'm a pretty experienced Perl developer (but I don't have any experience with any Microsoftish languages) and I want to learn how to develop Windows GUI applications but don't know enough about the differences/weaknesses/advantages between C#, VB, or VB.NET.
After working with languages like Perl/JavaScript I really don't want to get messy with stuff like MFC/C++.

Any suggestions/recommendations?

Guy Malachi
Wednesday, July 31, 2002

The easiest path is to learn VB (version 6), as a bonus you get VBA (Office VB) for free. The down side is that VB6 is being replaced by VB.NET (future OfficeXX will use VBA and not .NET, or so I've been told by little elves)

Also I should mention that VB.NET is somewhat more difficult to learn than VB6.

C# vs VB.NET is really a matter of taste, it's just a set of syntax that later on is turned into IL code. Either one will do.

I'd go with VB6.

Joachim Hartmann
Wednesday, July 31, 2002

I wouldn't go with VB6, although MS have said they will support it until 2008 it really is obsolete now. Demand for skills in it will only decrease in the future.

With the huge runtime and lack of support for Win95 .Net doesn't look that favourable for shrinkwrap desktop applications.

Why not look at Delphi?

Tony E (Not a Delphi programmer)
Wednesday, July 31, 2002

I know even less about Delphi than I know about VB.

I assume that VB.Net with become more popular in the future and the transition from VB to VB.Net will probably be pretty smooth (I'm assuming here).

So even though VB is becoming less popular wouldn't it be a good starting point?

Guy Malachi
Wednesday, July 31, 2002

VC++ was the de-facto standard; until (and IF) C# picks up the market, VC++ will still be what hard-core programmers program in.

-- Note:  Matt H. is the former president of the Grand Rapids Perl Mongers (no kidding) and now a VC++ programmer ...

Matt H.
Wednesday, July 31, 2002

You don't necessarily need to abandon C++ for C# to use .NET. Visual C++ .NET 2002 (aka Visual Studio 7) can build both managed and unmanaged object code from C++ sources. So your legacy C++ code can run on the .NET CLR, be garbage collected, and interact with other .NET libraries. Sounds like a good transition strategy to me..

Zwarm Monkey
Wednesday, July 31, 2002

I'd say it depends on your strategy for your application.

If it's a one-off, "tactical" project that's needed yesterday, I'd go with VB6.

But if you want to build a strategic architecture that's going to be the basis of your development for the next five years, it's probably worth looking at .NET (the language you choose is just a matter of taste - it's even possible to integrate PERL).

.NET lacks maturity, and it's large runtime makes distribution a problem (however this isn't a factor if you're developing internally within a corporation). However, VB6 is a platform that's reached the end of the line, and if you develop a project with it and end up having to port it to .NET in a couple of years, it will be a lot of extra effort.


James Shields
Wednesday, July 31, 2002

I am not sure the large runtime will be a problem in the future, I am sure MS will include it in service packs, new copies of Windows. 

In the future the dot net runtime will probably be more difficult to avoid than AOL cd's.  It is the early adopters that may experience a little trouble because the runtime is not yet in place everywhere.

Thursday, August 1, 2002

So assuming the runtime isn't a problem what do you guys think is better to learn now: VB.Net or VB6?

Another issue I heard about is that the .Net Visual Studio isn't as stable as the previous version of Visual Studio (and needs a pretty powerful machine to run on).

Oh yea, I'd also rather write in a C-like language rather than learn a brand new syntax, so maybe C# should be the way to go for me?

Back to square one....

Guy Malachi
Friday, August 2, 2002

I like C#. Never did VB though, so I can't compare. VS.NET runs fine on my PIII 500/384Mb

Just me (Sir to you)
Friday, August 2, 2002

So since I don't know VB and a I prefer a C-like language then C# sounds good.

Are there any advantages to VB.Net over C#?

Any remarks about the stability of VS.Net?

Guy Malachi
Sunday, August 4, 2002

If you're developing for .net I recommend C#.

If you're developing for Win32 I strongly recommend Delphi.

Monday, August 5, 2002


Robert Chevallier
Monday, August 5, 2002

And back to the main question: should I develop for .Net or Win32?
(I don't have and real-world restrictions since this is a learning experience)

Guy Malachi
Tuesday, August 6, 2002

Well Guy... your question is not one that can be answered by environment or language.

Any possible answer would have to include functionality.

Joe AA
Tuesday, August 6, 2002

I'm an experienced Delphi programmer and through the years it has been my experience that the Delphi development suite (Delphi version 7, for example) is by FAR superior over any of the aforementioned programming environments.

Using Delphi is easier, leads to far better code, the code will be more accessible and better maintainable.

Delphi has object oriented approach from its birth, while the object oriented constructs are artificially added to for example C# and visual studio.

The programming language Perl may be very powerful but it is also very easy to make a program in Perl that is completely unreadable (spaghetti code).

adriaan bakker
Monday, August 30, 2004

*  Recent Topics

*  Fog Creek Home