Quote:
Originally Posted by mariush
Well, you've lost dependency to .Net and Java but you gained dependency to Qt...
|
Well, with "dependencies" is was referring to
runtime dependencies. More specifically I meant software that the user would have to download and install
separately, before he can run/use my software. Of course my software compiled with MSVC and based on the Qt Framework will unavoidably "depend" on the MSVC Runtime libraries, some of the Qt libraries (QtCore and QtGui in this case) as well as various Windows system DLL's. But all these "dependencies" can either be linked in as
static libraries (the MSVCRT and the Qt libraries), which completely eliminates the
runtime dependency, or they are guaranteed to be available on
any Windows system out-of-the-box (the Windows system DLL's). After all, my software is deployed as a single self-contained EXE file that does
not depend on any additional software. It runs "out-of-the-box" (i.e. without "installation") on any Windows system from Win2k up to Win7 as well as under Wine. And I think that's what generally is referred to as "portable" software.
(The only exception is the Nero AAC encoder, which cannot be re-distributed along with the application. But that's for legal reasons, not for technical reasons)
Quote:
Originally Posted by mariush
ideally, a Windows application wouldn't depending on anything
|
I have to disagree here. IMO creating a non-trivial GUI application directly on top of the "raw" Win32 API is nothing but pain. It would result in HUGE code that is hard to understand and hard to maintain. In order to deal with this, one would probably start to create his own "wrapper" classes around the "native" Win32 API. You'd end up writing your own GUI Toolkit/Framework. However instead of re-inventing the wheel, you could as well pick one of the existing Frameworks. Even Microsoft has their own GUI Framework for C++ applications on top of the "native" Win32 API, namely MFC (Microsoft Foundation Classes). But IMHO the MFC are a huge mess, compared to Qt or WxWidgets. Also the Qt Framework provides a whole lot of extremely useful non-GUI "helper" classes, which otherwise you would have to either implement yourself or take from other libraries. And, last but not least, the biggest advantage of using a cross-platform Framework instead of the platform-specific Win32 API is that your application will run "natively" on other platforms too...
(EDIT: Of course I agree that avoiding
runtime dependencies is preferable. But I don't see a problem with
compile-time dependencies, as long as they subserve the project)
Quote:
Originally Posted by mariush
and would follow all the Windows Interface Guidlines so that beginners can get an easy start...
|
My "Interface Guidline" is and always has been: Create software that you would like to use yourself. That plus: Change aspects of the software, if enough people complain
(BTW: When looking at user interfaces as annoying as Windows Media Player 12 or the "Ribbon" interface of Office 2007, I wonder if they still apply any guidelines ^^)
Quote:
Originally Posted by mariush
but I agree Qt makes it easier. Just not user friendly.
|
How is Qt not user friendly? Some of the most intuitive and "user friendly" applications that come to my mind (e.g. SMPlayer) are based on Qt.
And, if desired, Qt can emulate the "look and feel" of Windows ("Classic" and "Luna" as well as "Aero") exactly - I think they even use "native" controls for that purpose.
IMO if an application's user-interface isn't "user friendly", then that's mainly a problem of the design, not so much of the underlying framework...
Quote:
Originally Posted by mariush
You can do beautiful apps using just native code - Virtualdub comes to mind for example
|
Sure, it can be done. But it certainly needs more code (as you have to care about a whole lot of "low level" things) and it's a one-way street.
That's the reason why we won't see a Linux or MacOS port of VirtualDub.
(Also I persoanlly wouldn't call the graphical interface VirtualDub "beautiful", but "no-frills". But that's not necessarily a negative thing)