Click here to Skip to main content
15,890,557 members

Survey Results

What technologies do you mostly use to develop desktop applications?   [Edit]

Survey period: 24 Jan 2011 to 31 Jan 2011

Are you a drag-and-drop kinda developer, or do you prefer to code to the metal? (Thanks to Ravi Bhavnani)

OptionVotes% 
ATL836.32
Cocoa181.37
Delphi534.03
Java1057.99
MFC29722.60
Qt705.33
Silverlight1047.91
VB61098.30
Win3229422.37
Windows Forms75257.23
WPF36127.47
Other755.71
I don't develop desktop applications705.33
Respondents were allowed to choose more than one answer; totals may not add up to 100%

View optional text answers (114 answers)


 
GeneralRe: ATL, MFC and Win32 Pin
Anna-Jayne Metcalfe25-Jan-11 2:21
Anna-Jayne Metcalfe25-Jan-11 2:21 
GeneralRe: ATL, MFC and Win32 Pin
Ajay Vijayvargiya25-Jan-11 21:40
Ajay Vijayvargiya25-Jan-11 21:40 
GeneralRe: ATL, MFC and Win32 Pin
Anna-Jayne Metcalfe25-Jan-11 22:10
Anna-Jayne Metcalfe25-Jan-11 22:10 
GeneralRe: ATL, MFC and Win32 Pin
Ajay Vijayvargiya26-Jan-11 0:06
Ajay Vijayvargiya26-Jan-11 0:06 
GeneralRe: ATL, MFC and Win32 Pin
Anna-Jayne Metcalfe26-Jan-11 1:48
Anna-Jayne Metcalfe26-Jan-11 1:48 
GeneralRe: ATL, MFC and Win32 Pin
Ajay Vijayvargiya26-Jan-11 2:42
Ajay Vijayvargiya26-Jan-11 2:42 
GeneralRe: ATL, MFC and Win32 Pin
Nemanja Trifunovic26-Jan-11 5:09
Nemanja Trifunovic26-Jan-11 5:09 
GeneralRe: ATL, MFC and Win32 Pin
Anna-Jayne Metcalfe26-Jan-11 6:00
Anna-Jayne Metcalfe26-Jan-11 6:00 
You really like a good debate don't you? Roll eyes | :rolleyes:

I must admit I'd generally prefer to have this sort of discussion over a pint in a decent pub than on a message board anyday, but assuming that's not an option for you (though I will be in Oxford with around 400 like minded devs for the ACCU Conference in April if you would care to carry on the discussion in person) I'll happily expand on the points I made. Poke tongue | ;-P

Ajay Vijayvargiya wrote:
How many times you need to have more-control? You would love to copy-paste the same code, rather than just let the development environment do it for you? And you don't lose any flexibility either, it is not like ATL/COM complex macros you cannot control - the entire generated code is there for you. Any MFC programmer, after gaining confidence over more-control part (after learning) would prefer automatic code generation; and would have the ability to change the code

Most of the time I do. Automated tools are very poor at formatting code, and tend to (for example) place new methods at the end of the file rather than organising it logically (overrides, operations, impl methods, handlers etc.), so I find I spend just as long moving and reformatting the auto-generated code as if I'd written it myself in the first place anyway (which would seem to defeat the point).

But that's just me. YMMV, of course.

Ajay Vijayvargiya wrote:
I don't count is as feature in even in MFC.

Why on earth not? Even if you don't use them all three are significant parts of the framework. I don't use OLE/compound documents (another area MFC has detailed support for but WTL lacks) but I certainly wouldn't claim they aren't important.
Ajay Vijayvargiya wrote:
MFC doesn't support MI for a reason. Have all classes which are NOT derived from CObject, except one, and you can achieve MI. Why would you need two CObject class participating in MI?
I did not understand about the help-functionality you mentioned!
With CSortListViewImplT, I think you meant a list-control's sorting. You can use virtual-list control! You always don't need callback mechanism for sorting. For less number of items in list-control, you just delete-all and then insert again! What Windows Hooks has to do with it

The reason MFC does not support MI is simple one - at the time it was designed (for Visual C++ 1.0) it was effectively theoretical - very few organisations used it, and those that did probably didn't do so effectively. That has changed dramatically since the advent of COM and templates - even the MFC CString class is now implemented in terms of templates and traits.

However, the CObject hieraracy is fundamentally incompatible with this sort of design. By contrast the WTL equivalent is far more straightforward to implement as the way messages are routed is more flexible and doesn't make any assumptions about the design of your code.

The reason I raised help functionality is because it is a simple and easy to replicate example. To implement it, you need to write message handlers, which in turn means the class must be CObject derived. Hence, you cannot write an MFC context help implementation which supports an arbitrary base class (not even both CDialog and CPropertyPage) without doing some pretty advanced window hooking or resorting to macros. So you invariably end up duplicating the code, and writing huge base classes which do absolutely eveything.

By the way, WTL::CSortListViewT does a lot more than a simple virtual list control - it handles sorting of items automatically for any list control/list view without any user intervention. As a template you can inject it (or any custom functionality you want to reuse) into any WTL list view with an arbitary base class - something that's next to impossible with MFC because of the CObject based nature of the message map implementation.

Ajay Vijayvargiya wrote:
Heavyweight. Compared to what? A template-based code that goes into multiple executables? I have developed hundreds of MFC apps, and that needed only one MFC DLL. You know what I am referring here.

MFC is referred to as heavyweight (and not just by me) in that it assumes certain things are always going to be there in your app (a simple example would be a CWinApp class, which believe me isn't something you want in a COM plug-in DLL for Visual Studio). In other words you can't easily pick and mix the bits you need, so in many applications the resulting executables are larger than their ATL/WTL equivalent. At the end of the day which is the right choice for you depends what you're building, and what experience you have.

It is also interesting to note that recent versions of MFC delegate quite a bit of their base implementation to ATL (of which WTL is effectively just a windowing extension written in the same style). For example, the MFC CString is now just a specialisation of the ATL/WTL CStringT class - the original MFC CString code was dumped in VS2002.

Finally, if you're writing multithreaded interactive COM add-ins for Visual Studio (as I do), you'll also quickly discover that it's next to impossible to get MFC to work reliably in that environment; fortunately a combination of WTL and the Standard C++ Library has proved to give us the control and flexibility we need to develop our products (most notably Visual Lint[^], which is entirely implemented in ATL/WTL), without sacrificing development time.

YMMV, of course. Smile | :)
Anna Rose | [Rose]

Tech Blog | Visual Lint

"Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"

GeneralRe: ATL, MFC and Win32 Pin
Ajay Vijayvargiya26-Jan-11 7:44
Ajay Vijayvargiya26-Jan-11 7:44 
GeneralRe: ATL, MFC and Win32 Pin
Anna-Jayne Metcalfe26-Jan-11 8:57
Anna-Jayne Metcalfe26-Jan-11 8:57 
GeneralXNA, just to leave the mainstream a bit Pin
CDP180224-Jan-11 21:00
CDP180224-Jan-11 21:00 
GeneralMr. Crafton's VCF Pin
Steve Echols24-Jan-11 11:45
Steve Echols24-Jan-11 11:45 
GeneralRe: Mr. Crafton's VCF Pin
Jim Crafton26-Jan-11 10:20
Jim Crafton26-Jan-11 10:20 
GeneralRe: Mr. Crafton's VCF Pin
Steve Echols26-Jan-11 10:42
Steve Echols26-Jan-11 10:42 
GeneralRe: Mr. Crafton's VCF Pin
Jim Crafton26-Jan-11 10:46
Jim Crafton26-Jan-11 10:46 
GeneralRe: Mr. Crafton's VCF Pin
Steve Echols26-Jan-11 11:03
Steve Echols26-Jan-11 11:03 
GeneralJava Pin
ed welch24-Jan-11 11:40
ed welch24-Jan-11 11:40 
GeneralWhy Silverlight? Pin
Pete O'Hanlon24-Jan-11 9:51
mvePete O'Hanlon24-Jan-11 9:51 
GeneralRe: Why Silverlight? Pin
Mycroft Holmes24-Jan-11 19:23
professionalMycroft Holmes24-Jan-11 19:23 
GeneralRe: Why Silverlight? Pin
Pete O'Hanlon25-Jan-11 0:02
mvePete O'Hanlon25-Jan-11 0:02 
GeneralRe: Why Silverlight? Pin
Mycroft Holmes25-Jan-11 16:21
professionalMycroft Holmes25-Jan-11 16:21 
GeneralRe: Why Silverlight? Pin
Josh Smith26-Jan-11 7:27
Josh Smith26-Jan-11 7:27 
GeneralRe: Why Silverlight? Pin
Pete O'Hanlon26-Jan-11 23:22
mvePete O'Hanlon26-Jan-11 23:22 
GeneralLooks like MAX people are still using Win Forms and MFC... Pin
Kunal Chowdhury «IN»24-Jan-11 7:56
professionalKunal Chowdhury «IN»24-Jan-11 7:56 
GeneralQt since 2008 [modified] Pin
John M. Drescher24-Jan-11 3:10
John M. Drescher24-Jan-11 3:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.