A serious Linux Question
-
Okay we've been having fun the with anti-Linux v anti-Windows stuff but can I ask a question. If I wanted to develop an application on Linux, what would be the Linux equivalant of Visual Studio (VC++ and VB) MFC (big one this, I'd want a fully functional framework) STL (I suppose thats a no brainer) Can I develop COM applications, component based programming is my first love so is there an ActiveX/OLE equivalant? And the $64,000 question - is it possible to do all the above and not have to link to Open Source libraries because I want to make money from my apps and would rather avoid sharing the sourcecode (at least to start with) This isn't a flame or a mickey take, I'm looking for some serious answers. Michael :-)
Don't even try to compare Linux development with Windows. Linux is not as well organized as Windows is, but on the other hand it is more flexible and cheaper. They are two different platforms with many differences, but the main difference is the phsycology of programming that you'll have to adopt while developing, so get used to it ;) (2b || !2b)
-
So I guess there is an XWindows API which has the CreateWindow function? I assume there all GUI apps have a #include "XWindows.h"? KDE and Gnome are two different implementations of that API? Will an app written to the KDE desktop also run on a GNOME desktop? Michael :-)
Oops, now you are asking questions I can't answer... I'm not a Linux-guy, I just happened to have worked a bit with KDE and Gnome. Have never developed for any of them... - Anders Money talks, but all mine ever says is "Goodbye!"
-
Don't even try to compare Linux development with Windows. Linux is not as well organized as Windows is, but on the other hand it is more flexible and cheaper. They are two different platforms with many differences, but the main difference is the phsycology of programming that you'll have to adopt while developing, so get used to it ;) (2b || !2b)
So the tools are there but not put together in a professional package. A bit like the Mac before CodeWarrior came along. I smell an untapped market, but I guess there can't be any money there otherwise somebody would have done it already. > but the main difference is the psychology of programming Care to elaborate on that. Are you saying that Linux programmers still have that hacker mentality that I used to have in the early days when I wrote software on my Spectrum and my Amiga. Michael :-)
-
So I guess there is an XWindows API which has the CreateWindow function? I assume there all GUI apps have a #include "XWindows.h"? KDE and Gnome are two different implementations of that API? Will an app written to the KDE desktop also run on a GNOME desktop? Michael :-)
The X Window system is the "low-level" windowing API, it's not usually used directly by application programs. KDE and Gnome are desktop environments built on top of X, and each has it's own "toolkit" API which provides mechanisms for the usual GUI components. You can run both kinds of applications if you have the suitable run-time libraries (equvalent to .DLLs in Windows world). As an exaple, here's the KDE version of "Hello World":
/************* khello.cc *******************/
#include <kapp.h>
#include <kmainwindow.h>int main( int argc, char **argv )
{
KApplication a( argc, argv, "khello" );
KMainWindow *w = new KMainWindow();
w->setGeometry(100,100,200,100);a.setMainWidget( w );
w->show();
return a.exec();
} -
The X Window system is the "low-level" windowing API, it's not usually used directly by application programs. KDE and Gnome are desktop environments built on top of X, and each has it's own "toolkit" API which provides mechanisms for the usual GUI components. You can run both kinds of applications if you have the suitable run-time libraries (equvalent to .DLLs in Windows world). As an exaple, here's the KDE version of "Hello World":
/************* khello.cc *******************/
#include <kapp.h>
#include <kmainwindow.h>int main( int argc, char **argv )
{
KApplication a( argc, argv, "khello" );
KMainWindow *w = new KMainWindow();
w->setGeometry(100,100,200,100);a.setMainWidget( w );
w->show();
return a.exec();
}So are we saying that KDE is to Gnome what Visual C++ MFC is to Borland C++ Builder VCL? Just different ways of achieving the same thing but its the API which is doing the hardwork? Or does each implementation bring its own way of doing stuff like toolbars, dialogs etc Michael :-)
-
So the tools are there but not put together in a professional package. A bit like the Mac before CodeWarrior came along. I smell an untapped market, but I guess there can't be any money there otherwise somebody would have done it already. > but the main difference is the psychology of programming Care to elaborate on that. Are you saying that Linux programmers still have that hacker mentality that I used to have in the early days when I wrote software on my Spectrum and my Amiga. Michael :-)
Anything that is not 100% comercialized (linux) will be less profesional than something that is totally commercial (windows). Therefore Linux programmers must adopt a less professional approach to programming. This does not imply in any way that Linux programmers are not professional, it is just that they cannot rely on the same kind of developer resources, toolkits and documentation that windows programmers enjoy. This has got its advantages since developing for Linux leaves a lot of room for flexibilty, experimentation and understanding of the programs they develop. Of course there are also many disadvantages, but as they say, you cannot have the cake and eat it. Well, at least we've got the choice. (2b || !2b)
-
Okay, I'm a dumb windows programmer so can you tell me what KDE and GNOME are (apart from being bad names for a product). Are they development enviroments? Michael :-)
All you need to know: http://www.kde.org/ http://www.gnome.org/ Good luck!
-
So are we saying that KDE is to Gnome what Visual C++ MFC is to Borland C++ Builder VCL? Just different ways of achieving the same thing but its the API which is doing the hardwork? Or does each implementation bring its own way of doing stuff like toolbars, dialogs etc Michael :-)
-
KDE and Gnome toolkits have different APIs, different component technologies and different "look and feel".
Is there one which is more standard? or is the best bet to write an application for both API's to reach the widest user base. I'm starting to see why software houses don't convert their vertical market applications to Linux :-) Michael :-)
-
So are we saying that KDE is to Gnome what Visual C++ MFC is to Borland C++ Builder VCL? Just different ways of achieving the same thing but its the API which is doing the hardwork? Or does each implementation bring its own way of doing stuff like toolbars, dialogs etc Michael :-)
KDE and Gnome are desktop environments (kind of like the windows shell) which happens to expose their desktop-specific API's for use by the programmer. There are various widget libraries available that would be *kind of like* MFC and/or the Windows Common Controls. There are a number of programmer IDE's available like that provide Visual Studio-like functionality. Linux uses CORBA, not COM. Even though Microsoft promised that COM would be cross-platform, they never came through with that promise. Most Linux distributions comes with several programming languages (Pascal, Cobol, C++, and Fortran). I'm not a Linux expert, nor a Linux "zealot". I am, however, tired of being stomped on by Microsoft (as both an end-user AND a developer).
-
Okay we've been having fun the with anti-Linux v anti-Windows stuff but can I ask a question. If I wanted to develop an application on Linux, what would be the Linux equivalant of Visual Studio (VC++ and VB) MFC (big one this, I'd want a fully functional framework) STL (I suppose thats a no brainer) Can I develop COM applications, component based programming is my first love so is there an ActiveX/OLE equivalant? And the $64,000 question - is it possible to do all the above and not have to link to Open Source libraries because I want to make money from my apps and would rather avoid sharing the sourcecode (at least to start with) This isn't a flame or a mickey take, I'm looking for some serious answers. Michael :-)
As I see it (right now), the only way to make money writing Linux code is to get employed by a company that uses Linux internally and needs in-house applications written. At that point, you don't have to worry about whether or not the code is open source.
-
Okay, I'm a dumb windows programmer so can you tell me what KDE and GNOME are (apart from being bad names for a product). Are they development enviroments? Michael :-)
In that same way that Windows 3.1 was a graphical shell that ran on top of DOS, KDE and GNOME are competing graphical shells that run on top of Linux. That right there speaks volumes about the technological sophistication, and standarization, of Linux.
-
Okay we've been having fun the with anti-Linux v anti-Windows stuff but can I ask a question. If I wanted to develop an application on Linux, what would be the Linux equivalant of Visual Studio (VC++ and VB) MFC (big one this, I'd want a fully functional framework) STL (I suppose thats a no brainer) Can I develop COM applications, component based programming is my first love so is there an ActiveX/OLE equivalant? And the $64,000 question - is it possible to do all the above and not have to link to Open Source libraries because I want to make money from my apps and would rather avoid sharing the sourcecode (at least to start with) This isn't a flame or a mickey take, I'm looking for some serious answers. Michael :-)
Not sure if you are aware of this but Borland have released Kylix, which is Delphi for Linux. Admittedly this is Pascal based, but on the windows platform, where Delphi leads, C++ Builder usually follows, so I would expect the same to happen on Linux. Dr Dobb's journal has the Al Stevens programming column, and he is currently coming to grips with Linux programming, having been a Windows adherent in the past. Can't say it sounds all that simple though!! No I do not work for Dr Dobbs if you have seen my other email.
-
Not sure if you are aware of this but Borland have released Kylix, which is Delphi for Linux. Admittedly this is Pascal based, but on the windows platform, where Delphi leads, C++ Builder usually follows, so I would expect the same to happen on Linux. Dr Dobb's journal has the Al Stevens programming column, and he is currently coming to grips with Linux programming, having been a Windows adherent in the past. Can't say it sounds all that simple though!! No I do not work for Dr Dobbs if you have seen my other email.
Thanks.I'll try and find the DDJ articles. Although I think I'm going to leave any Linux development until the platform matures. Michael :-)
-
In that same way that Windows 3.1 was a graphical shell that ran on top of DOS, KDE and GNOME are competing graphical shells that run on top of Linux. That right there speaks volumes about the technological sophistication, and standarization, of Linux.
Yes, Linux is a modern, modular OS that can be easily configured to suit different needs, instead of a huge monolithic chunk of software like the current versions of Windows. For example, if a Linux system doesn't need a GUI, you can simply leave it out to save memory, disk space and CPU power. Additionally there are several different ways to do almost any task, because diversity and competition among applications is better than having one company to dictate how everyone should use their computers.
-
Not sure if you are aware of this but Borland have released Kylix, which is Delphi for Linux. Admittedly this is Pascal based, but on the windows platform, where Delphi leads, C++ Builder usually follows, so I would expect the same to happen on Linux. Dr Dobb's journal has the Al Stevens programming column, and he is currently coming to grips with Linux programming, having been a Windows adherent in the past. Can't say it sounds all that simple though!! No I do not work for Dr Dobbs if you have seen my other email.
Kylix's license agreement forces all applications made with it to be Open Source. It's not the development environment for a closed source shop. When religion and politics help drive the same cart, they tend to drive faster and faster until it is too late to stop when they see the cliff ahead -- Frank Herbert.