View Single Post
Old 23rd January 2011, 15:13   #96  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by mariush View Post
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 View Post
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 View Post
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 View Post
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 View Post
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)
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊

Last edited by LoRd_MuldeR; 23rd January 2011 at 16:46.
LoRd_MuldeR is offline   Reply With Quote