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.

We'll go for VC++

We've decided to use Visual C++.

Major reasons:

1. job perspective, Delphi/BCB's market are very small.
2. uncertainty of the future of Borland's IDE business.
3. no need to buy Delphi license, we already have VS2005

After tried both, we knew Delphi is a far more advanced RAD than VC, but above reasons which are unrelated to the technologies have us to move to the VC.

Now, any suggestions on books for VC++/MFC. Some one told us that  Jeff Prosise's Programming Windows With MFC is a very good one,

any other?
Wonderer
Thursday, April 13, 2006
 
 
I've read Richard Jones (good introduction if you know nothing about MFC), Kruglinsky (not bad, not great), Blasziak or whatever his name is (not very exciting either).

I would stickt to Jones and Prosise.

Good luck!
Fritz Huber Send private email
Thursday, April 13, 2006
 
 
I've taken from your original post that you would need to learn both Delphi and MFC. Since Delphi has major productivity advantages to MFC, the cost of the Delphi IDE should be of no concern.  The productivity gains will negate the cost of the IDE.

I realize you've already made your decision, but why must there only be one choice?  Why not consider using more than one language/tool to build your app.  Each tool has its advantages over another.  My last Deskop app uses C#, ATL, and even some legacy C DLLs.
cipher
Thursday, April 13, 2006
 
 
What kind of app are you going to build?
Fritz Huber Send private email
Thursday, April 13, 2006
 
 
A desktop application to catalog files and documents by fetching related information from internet.
I know Delphi is superior in many senses, I may also learn some when I get time. But the learning materials seem very hard to get. There are only one or two books about it.
Wonderer
Thursday, April 13, 2006
 
 
MFC? You're a glutton for punishment ;-)

I’d go Visual Basic 6 before I’d touch MFC again.
MBJ Send private email
Thursday, April 13, 2006
 
 
Oh god, it hurts to watch you making such a big mistake...
Delphi is PERFECTLY suited for such a task. Especially all that internet-related stuff is so darn easy with it. The only reason for me not to do that in Delphi were if I needed some xplatform stuff. Maybe I'm a little sensitive right now, cause I've been trying to write a simple standalone webservice with gSoap now for an hour or so. This would have taken me about 50 seconds in Delphi, but I need it to run on embedded Linux so Delphi is out of the game here.

As for the books I've got Mastering Delphi 6, Delphi 6 Developer Guide, Writing Custom Components and some german books. Those english books are great and contain by far less fluff as most .NET books I've read so far.

If you've got questions, there are the great borland newsgroups and some really good forums where a lot of experienced people answer all your questions (even the chief developer hangs out at the newsgroup quite often).

As for job security, I don't think that MFC is the way to go. Only if you want to maintain old, messy, almost unmaintainable crap (like I do most of the time).

OK, I'll stop my plead for Delphi right now (got carried away a little). Great software can be written in any language and environment anyway...
Fritz Huber Send private email
Thursday, April 13, 2006
 
 
Wonderer,

Why is .NET out of the question for this app? Performance concerns?  Runtime overhead?  Reverse engineering of code?  Some of these have solutions or aren't really problems to begin with.

Though your concern about Borland's IDE business is a valid one,  consider that since MS dropped support for VB6 (the most popular RAD tool for Win32), whose to say it won't dump support for MFC in the next few years?
cipher
Thursday, April 13, 2006
 
 
Ciper,

This will be a downloadable application for consumers. I don't want the download file size larger than, say, 5 MB. So there is why .Net is out. I am using C#/.Net every day, I know how easy it is to create rich interface using it. I just hope there will be a .Net without runtime or Microsoft would force every windows user to install .Net 2.0 one day.
Wonderer
Thursday, April 13, 2006
 
 
> Microsoft would force every windows user to install .Net 2.0 one day

XP SP2 anyone? ;)
Biran
Thursday, April 13, 2006
 
 
Microsoft doesn't support Windows 2000 anymore, should we stop using that too?
Wayne B Send private email
Thursday, April 13, 2006
 
 
Actually, there's some concern that once Vista ships, supporting all of the different flavors of Microsoft Windows and the .Net framework, will become a huge headache. The only saving grace is that Microsoft promises to ease the burden somewhat with the next version of Visual Studio.
TheDavid
Thursday, April 13, 2006
 
 
MFC is hugely bloated and permeates every corner of your design with an outdated monolothic 2-tier architectural model ("document/view"). If you're just talking about dialog boxes or frames with some buttons and menus, and don't need the non-GUI parts of MFC like the database and internet functions, use WTL instead which is an extension to ATL and more COM friendly. It is MFC-like although easier to learn than MFC, doesn't add bloat, and is more modularizable. That was originally going to be the replacement for MFC until they decided to go with .NET. But I think most serious companies that can't use .NET for one reason or another have switched to WTL anyway.
Jim
Thursday, April 13, 2006
 
 
Woops and by "not being able to use .NET" I mean need to use C++ and can't use .NET... I agree with the person above if you can't use Delphi and don't absolutely need C++, VB6 is your next best bet... followed by WTL.
Jim
Thursday, April 13, 2006
 
 
I'm confused:  You are comparing Delphi to VC but in the OP he states Delphi/BCB.

Truth be known that both Delphi and BCB (C++ Builder) use VCL.  So what you are really saying is VCL's future is uncertain.

This is apples vs oranges comparison.  You are not talking about the same thing.

You need to choose your tool that is best for the job.  In other words, if you are a C++ developer, then it makes no sense to use Delphi.  Your comparison then is to look at BCB/VCL and VC/MFC.

VCL's future does seem uncertain but I have a hard time believing that such a large company with such a large following is going to just drop VCL.  Bottom line, someone will pick up the technology because there is money in them thar hills -- with the existing customer base.

VCL is far superior to MFC.  In fact, I read some where that Microsoft hired the lead developer of the VCL concept who helped develop .NET -- I forget the guy's name and I don't, off hand, recall where I read this.

my 2 cents
Eric
Thursday, April 13, 2006
 
 
I think you made the right choice.

It's many years since I used Borland products, but they were good when I used them.  But that aside, do not underestimate the value of

1. Knowing your language will be supported in future.

2. Knowing your language will be available in future, on the platforms you want.

If you are writing throw away programs, you only care about the now, and the above may not matter.


But if you do care about the above:  Apart from what happens to Delphi if Borland divest it, another concern must be it is a proprietary programming language (whereas C++ is not), which means you are totally at the mercy of a single vendor (including when they release updates, whether they break code from previous versions, etc., etc.)

If you are writing programs that may be recycled, reused in future, and there is real value in the code base itself,  then you want to control when your code base becomes obsolete, not have it dictated to you, because your vendor has left Delphi island.
S. Tanna
Thursday, April 13, 2006
 
 
I agree that it would be preferable to use non proprietary languges. Which would mean not using the MFC, but going for open technologies a la WTL, STL, etc...
Fritz Huber Send private email
Friday, April 14, 2006
 
 
Eric

>>VCL's future does seem uncertain but I have a hard time believing that such a large company with such a large following is going to just drop VCL

Maybe not VCL, but they did try to drop C++ Builder\VCL.  It was only the dismal failure of Builder X and a campaign by BCB users that caused a U-turn.
Orson Kart
Friday, April 14, 2006
 
 
>>Maybe not VCL, but they did try to drop C++ Builder\VCL.  It was only the dismal failure of Builder X and a campaign by BCB users that caused a U-turn.<<

Well they hired a new compiler engineer for C++ and some former engineer decided to return (this is a very good sign I'd say)...

http://blogs.borland.com/
fritz Send private email
Friday, April 14, 2006
 
 
>>VCL's future does seem uncertain but I have a hard time believing that such a large company with such a large following is going to just drop VCL

Tell that to anybody who had a substantial investment in any of the following:  dBase for Windows, Paradox, Turbo Pascal, Turbo Prolog, Turbo Basic, that program generator from flow charts which I forget the name of (all Borland products at one time or another) -- or for that matter  -- Quick Basic, Quick Pascal (Microsoft products) -- or for that matter --- Superbase, Clipper, Clarion, etc., etc.

All the above had substantial followings

Some people made substantial investments in all the above

But today, all their code is effectively junked, whether they like it or not.


For future-proofing:

Best: Non-proprietary language with non-proprietary libraries  (you can take everything with you)

Next Best: Non-proprietary language with proprietary libraries (at least you have a hope of re-implementing the libraries if you go elsewhere, OR working round the problem, OR at very worst, you can modularize your code base, so (say) your GUI that depends on a proprietary library but your app's engine doesn't)

Worst: Proprietary language.
S. Tanna
Friday, April 14, 2006
 
 
After all the fuss made about Delphi, a few weeks ago I managed to get hold of a copy of Delphi 7. Frankly I thought it was crap. It also crashed twice in half an hour.
el
Friday, April 14, 2006
 
 
For that matter, I few days ago I threw away lots of unused CDs, and among them I had Delphi 5 and 7, VS.Net 2003 and maybe another one a little older.

Things change. I feel like we need to let go of certain things so we can worry about the new market choices. Given enough time, the burden of carrying on with old things becomes too heavy.
Lostacular
Friday, April 14, 2006
 
 
Why not use qt? It's much more advanced than VCL as I know...
AqD Send private email
Friday, April 14, 2006
 
 
If you go C++/Windows API over C#/.NET there will be a lot of extra costs and much longer time to market.  You weighed those against the lost revenue with a larger download and fewer customers and it still worked out better?

Friday, April 14, 2006
 
 
If you do decide to go MFC (may the deity of your choice help you) you will also need the "MFC Answer book" it tells you how to do all the things in MFC that the docs strangley forgot to mention.
Martin Send private email
Friday, April 14, 2006
 
 
MFC is crap. CRAP I tell you! :) I can't believe anyone would start a new project in it today. The whole MFC/classwizard thing is just excruciatingly primitive.
Bored Bystander Send private email
Friday, April 14, 2006
 
 
So is WTL now the defacto C++ class library for Win32 development?  How much more productive is it over MFC?
cipher
Friday, April 14, 2006
 
 
>So is WTL now the defacto C++ class library for Win32
> development?  How much more productive is it over MFC?

MFC isn't such a bad choice for rich client apps.
You can easily find MFC experienced programmers and by now everry knows all the tricks and work arounds.
You can get libraries/add-ins/components easily.
The IDE is as good (or bad) as it ever was at producing MFC apps.
MS isn't introducing new features to MFC - but they aren't about to ban it.

WTL needs you to either find someone with experience, or spend time learning, there are fewer books articles and tutporials to learn from.
It doesn't have many real advantages over MFC other than being more modern C++ design. And it is just as obsolete as MFC. MS are not about to re-launch WTL as a major toolkit to replace Windows Forms and WPF.
Martin Send private email
Saturday, April 15, 2006
 
 
How about using wxWidgets to get cross platform capability?
Orson Kart
Saturday, April 15, 2006
 
 
Dude, you're building a cataloging application. The UI is not going to be that complex. Just use what you know and get-r-done already :D
Wayne B Send private email
Saturday, April 15, 2006
 
 
Wonderer > We've decided to use Visual C++.

Did you check how widespread .Net among your potential customers', and, if it's not that widespread, how many have broadband (.Net = only a one-time, 22Meg download)?

If most of them either have it or have links fast enough to make this 22Meg download a breeze, it'd make a lot more sense to use .Net, in which case it doesn't matter whether you go C++, C#, or Delphi.Net.
Fred
Saturday, April 15, 2006
 
 
> in which case it doesn't matter whether you go C++, C#, or Delphi.Net.

Choosing between C++, C# or Delphi, sure matters if you have a preference for programming language based on your team's skills, or based on utilitizing existing source code bases or libraries, or if you care about whether you're using a proprietary (i.e. non future proof) or non-proprietary language.

I've never seen so much claimed for a virtual machine.
S. Tanna
Saturday, April 15, 2006
 
 
S. Tanna > Choosing between C++, C# or Delphi, sure matters if you have a preference for programming language based on your team's skills, or based on utilitizing existing source code bases or libraries, or if you care about whether you're using a proprietary (i.e. non future proof) or non-proprietary language.

I meant that if the OP decides to go .Net over a Win32-based tool, it doesn't matter as much. Needless to say, if you're confortable with C++, go for C++ for .Net, if you're familiar with Delphi go Delphi.Net, etc.
Fred
Monday, April 17, 2006
 
 
> Microsoft doesn't support Windows 2000 anymore, should we stop using that too?

What will you do when a component that your application relies on has a major security flaw, and the fix will only be issued to people running Vista?

Wednesday, April 19, 2006
 
 
wxWidgets for crossplatform?

If you want to target Windows and Linux, it's fine. 

But don't bank on having an OS X version that anyone will buy.  Mac users are far more critical of deviant interfaces than users of any other platform.  They hate wxWidgets UIs and, for that matter, Qt.

If you want to target OS X, you have to suck it up and use Cocoa.  Mac users are picky, but I'll say this:  if you make something good, Mac users will buy it and stick with you.  It makes for a nice consistent revenue stream.
XPlatformGUIsStink
Friday, April 21, 2006
 
 

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

Other recent topics Other recent topics
 
Powered by FogBugz