Author Topic: pro's and pre's of compilers  (Read 30353 times)

Offline David Perfors

  • Developer
  • Lives here!
  • *****
  • Posts: 560
pro's and pre's of compilers
« on: June 24, 2005, 09:32:27 am »
I was wondering which compiler is the best. I know that every one has its own taste for that, but what I want to know is: "what are the pro's and pre's for a compiler?"
OS: winXP
Compiler: mingw
IDE: Code::Blocks SVN WX: 2.8.4 Wish list: faster code completion, easier debugging, refactoring

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
pro's and pre's of compilers
« Reply #1 on: June 25, 2005, 08:59:40 am »
On windows? For Free, or commercial?

For free I'd say the VC++ Toolkit. We live in VC++ world, and everything is made to work with it. It was a pain back when I couldn't run VC++ and had to stick to MinGW.
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline Urxae

  • Regular
  • ***
  • Posts: 376
pro's and pre's of compilers
« Reply #2 on: June 25, 2005, 12:08:16 pm »
Of course, if you might ever want to run you programs on anything but windows, you might want to use MinGW. It's the Windows version of GCC, which is pretty much the standard compiler on other major (though not as major as Windows, except maybe on servers) platforms: Linux, *BSD and I think also Mac OS X, but I'm not sure about the last one.

Using the same compiler on each platform should make porting stuff a lot easier, though of course you also need to keep in mind other considerations.

Anyway, stuff I like a compiler to have:
  • Free (as in price) as I'm a poor student :).
  • Multi-platform as I'm thinking about switching from Win2K to Ubuntu for my machine.
  • Standard compliance (for instance, VC++ 6 is particularly bad about this I've heard, though VC++ 7(.1) is much better, and I presume the free toolkit also. GCC/MinGW is also pretty compliant, though not many compilers can claim full compliance until anyone but Comeau implements the export keyword)[/list:u]

    Can you tell I like MinGW?  :wink:

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
pro's and pre's of compilers
« Reply #3 on: June 25, 2005, 12:57:03 pm »
Why do people assume that code written for VC++ can't be ported? It's the libraries, and syntax you use that counts.

I used DevC++ and MingW for years, and I loved it. But the problem with coding windows stuff, is that nothing is designed to work with it, it's all in VC++ format, and you have to port it over, or rely on someone else porting it over, such as DirectX. Trying to use it under MingW is a nightmare. Even the ports don't work correctly.

If you're going to compile something under *nix, you will be booting up into the os, and running the native gcc anyways.
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline David Perfors

  • Developer
  • Lives here!
  • *****
  • Posts: 560
pro's and pre's of compilers
« Reply #4 on: June 25, 2005, 02:06:52 pm »
Quote from: fvbommel
Can you tell I like MinGW?  :wink:
You like MinGW :P

I am working on Windows righ now, and using MinGW, I like it a lot, but what about compile time, and size of compiled code? What about debug possibilities, and so on..

An what Vampyre_Dark says is true. You can make Multi platform apps with MS compiler/borland compiler, it is the way you are programming it.
OS: winXP
Compiler: mingw
IDE: Code::Blocks SVN WX: 2.8.4 Wish list: faster code completion, easier debugging, refactoring

Offline Urxae

  • Regular
  • ***
  • Posts: 376
pro's and pre's of compilers
« Reply #5 on: June 25, 2005, 02:08:01 pm »
First of all, I didn't say it can't be ported, I just said it would be easier if you could use the same compiler on all the platforms.
I've read a lot of thread on other forums by people trying to port their programs to Linux/BSD/whatever and the fact they used VC++ factored into it, if only because they did use VC++-specific stuff. If it's there, a lot of people will use it and either not even realize it's not portable or not care it isn't until it's too late.

Offline David Perfors

  • Developer
  • Lives here!
  • *****
  • Posts: 560
pro's and pre's of compilers
« Reply #6 on: June 25, 2005, 02:27:52 pm »
I am downloading the other compilers which are supported by C::B. I am going to compile wxWidgets and going to time it, and look what the size is...
OS: winXP
Compiler: mingw
IDE: Code::Blocks SVN WX: 2.8.4 Wish list: faster code completion, easier debugging, refactoring

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
pro's and pre's of compilers
« Reply #7 on: June 25, 2005, 03:51:22 pm »
Quote from: fvbommel
First of all, I didn't say it can't be ported, I just said it would be easier if you could use the same compiler on all the platforms.
I've read a lot of thread on other forums by people trying to port their programs to Linux/BSD/whatever and the fact they used VC++ factored into it, if only because they did use VC++-specific stuff. If it's there, a lot of people will use it and either not even realize it's not portable or not care it isn't until it's too late.
It wasn't the fact that they used VC++, it was the fact that they used windows specific code and libraries. The same is possible is MinGW and just as easy.

If you use SDL, and OpenGL in VC++, it's not any less portable than MinGW. However, the VC++ toolkit makes it easy to actually use all the windows stuff(like DirectX) out there, where supporting MinGW is a non factor.

I think it gives better error and warning messages too. :oops: MSInput said he wanted to compile wxwindows anyways, so perhaps those were moot points.
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
pro's and pre's of compilers
« Reply #8 on: June 25, 2005, 05:12:10 pm »
Quote from: mispunt
I am downloading the other compilers which are supported by C::B. I am going to compile wxWidgets and going to time it, and look what the size is...

To save you the trouble (for other than educational purposes), check this page for wxWidgets compile speed comparison between most major compilers.
And the winner is... DigitalMars, hands-down :)
I mean, 2.5 minutes to build wxWidgets is just awesome!

Yiannis.
Be patient!
This bug will be fixed soon...

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
pro's and pre's of compilers
« Reply #9 on: June 25, 2005, 07:54:11 pm »
gcc it is, undoubtly.

It may not always do  the very fastest compiling, and it may not always be the top performer, granted.
However, it is unarguably the best general and portable compiler suite by design and philosophy.
First of all, a compiler should be correct, and then it should be optimized, as a correct compiler enables you to produce much better code in the end.

One of the major design failures in wxWindows in my opinion is that they use macros for everything and reimplement STL functionality with custom classes. The reason they state is "portability".
The real reason is templates *are* portable, and the STL *is* portable (well, 95%), only MSVC is utterly broken.
By using and supporting MSVC, you prove them correct and further the development of incorrect software. At the same time, you prevent others from writing correct code because they must take VC into account.
It is like designing a web page for Internet Explorer. If you "optimize" your web sites for Internet Explorer, then your markup is not only incorrect, it also encourages the production of web browsers which honour flashy features higher than security and standard compliance. And, more seriously, you penaltize those browsers that are actually correct, as these will not show the pages the way people expect them.

For this reason, and to honour the free time the gcc developers sacrifice to produce a really good product (which they give to the world for free), one should use gcc.

Call me a Hippie if you like, I don't mind (and yes, I use OpenGL, too)  :)

Executable speed may be an issue for some, however, the really big difference in performance lies in entirely other things, anyway. The actual gains by using another compiler are rather small. Other things can easily make a difference of factor 2, 10, 100, or 1000, where compilers make a difference of 5%. Think of algorithm complexity, multiple API layers, cache misses, page faults, synchronous disk access... the compiler is really the smallest factor here.

Compile times, well, yes, gcc is somewhat slow. But you have to be fair and admit that at least some of this is due to precompilation. If you have gcc precompile your headers, your compile times are somewhat faster, too. Unluckily, the one thing that would benefit most from that is wx again, and wx throws up errors on precompilation.
Either way, most of my projects build in 20-40 seconds on gcc (without optimizations of course), and when only changing 1-2 files, it takes some 3-4 seconds, which is quite acceptable. What difference does it make if one single file compiles in 1.1 or 1.5 seconds.
If an optimized revision build takes 5-6 minutes, so what... you don't do that 50 times per day ;)

As a sidenote, I am curious to see how things will change with gcc 4.0, as the optimizer has seen a major overhaul and the 4.0 version supports auto-vectorization (is there any other compiler supporting this?). The effect of auto-vectorization may be zero for many applications, but it may as well be a great benefit for anything that processes mid-size or large-size streams of data. As it happens, it may save me a lot of hand-coded SSE assembly (which the compiler possibly can do better, too).
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
pro's and pre's of compilers
« Reply #10 on: June 25, 2005, 08:00:15 pm »
Quote from: thomas
By using and supporting MSVC, you prove them correct and further the development of incorrect software. At the same time, you prevent others from writing correct code because they must take VC into account.
Fud based on old info. The new VC++ since 2002~2003 is 98% standards compliant.

(And yes, OpenGL rules)
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Anonymous

  • Guest
pro's and pre's of compilers
« Reply #11 on: June 25, 2005, 10:07:47 pm »
Quote from: Vampyre_Dark
Quote from: thomas
By using and supporting MSVC, you prove them correct and further the development of incorrect software. At the same time, you prevent others from writing correct code because they must take VC into account.
Fud based on old info. The new VC++ since 2002~2003 is 98% standards compliant.

(And yes, OpenGL rules)


He was mainly referring to VC6. The wxWidgets devs have to make all changes in the library backwards compatible to MSVC6, hence the custom classes (which since wx2.6.0 inherit from their STL counterparts by default) and no-template code in general.

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: pro's and pre's of compilers
« Reply #12 on: August 16, 2005, 10:03:44 pm »
it's all in VC++ format, and you have to port it over, or rely on someone else porting it over, such as DirectX

Uh... Direct what?  :?

No seriously, for DirectX and dotNet, the Microsoft tools are of course unbeatable. No doubt.

But for everything I want to use, and every application I want to develop gcc is the choice. Sorry, but VC simply lacks the coolness factor of gcc in many respects. And OpenGL is better than DirectX anyway :)
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Ceniza

  • Developer
  • Lives here!
  • *****
  • Posts: 1441
    • CenizaSOFT
Re: pro's and pre's of compilers
« Reply #13 on: August 17, 2005, 05:59:24 am »
Heh, you're replying to a post on June 25 with a post on August 16...

Quote from: Urxae
...and I think also Mac OS X, but I'm not sure about the last one.

Yep, GCC is also there, it's like... everywhere.

Most compilers are close to be 100% ISO C++ standard compliant nowdays. That's something you shouldn't worry about if you're getting an up-to-date compiler.

Digital Mars is really speedy compiling but still needs more "support" (I was unable to get a monolithic and shared wxWidgets without debugging with it) and it's free.

Visual C++ is also fast compiling and a good choice if you're going to focus just on Windows development. If you want to get the most of it you must pay (to stay legal).

Intel C++ is considered to be the best compiler generating binary code. It's available for both Windows and Linux. If want to use it under Linux you can get a free license for non-commercial use. For Windows you need Visual C++ and you need to pay for a license.

GCC, just like I said before, is basically everywhere. It generates nice binary code and is free. Its pitfall, as you have said, is compiling time. It's maybe the slowest C++ compiler, even though it's kinda speedy for C.

For me GCC gets the job done... with time.

GCC 4.0.x looks really promising (with the new C++ parser and SSA) but is still buggy and GCC 4.1.x looks even more promising (with the new C parser) with its first release almost out.

Cannot comment about Borland 'cause the only C/C++ compiler I've used made by them was Turbo C++, and it's really really REALLY old (nice to start learning and has a nice debugger).

Well, that's all I have to say before I fall asleep.
« Last Edit: August 17, 2005, 07:01:03 am by Ceniza »

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
Re: pro's and pre's of compilers
« Reply #14 on: August 17, 2005, 06:38:02 am »
it's all in VC++ format, and you have to port it over, or rely on someone else porting it over, such as DirectX

Uh... Direct what?  :?

No seriously, for DirectX and dotNet, the Microsoft tools are of course unbeatable. No doubt.

But for everything I want to use, and every application I want to develop gcc is the choice. Sorry, but VC simply lacks the coolness factor of gcc in many respects. And OpenGL is better than DirectX anyway :)
Like I said before. I use OpenGL for rendering, but I use DirectInput and DirectSound too. OpenGL is only a rendering library. DirectX can't be directly compared, as it offers a ton of other stuff, Direct3D being the rendering api. I tried using other things before, SDL and others, but they didn't mesaure up IMO and I'm no longer a fan of the restricted xgpl, so I don't agree to their licensing terms.

What coolness factor? What's cool about a compiler? You use the tool that meets your needs. MinGW met mine for a few years, but it was time to move on for my own needs. It's a personal choice.

btw, dotnet can go #%&*($#% :)
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: pro's and pre's of compilers
« Reply #15 on: August 17, 2005, 11:17:48 am »
You're of course right, one has to use the tool that does the job. If gcc does not do you, it is quite obviously not your tool.

Now, what is "coolness", how to explain in less than 5000 words :)

Just two examples:
(1) gcc's extended inline assembly is a good example of "coolness". Instead of having to remember registers and reading from a memory reference inside your assembly (which you can still do of course, if you absolutely want), you can basically tell the compiler: "Listen up, moron. I don't care what you happen to have in any of your registers. I want to use these variables in my assembly, and I want you to do these instructions with those values."
You can specify about everything from "use something" or "use some data register" to "use this specific register". Gcc will make something out of it. If your variable happens to be in a register anyway, this register will be used. If gcc must free a register and it knows that the value is not being used in that function any more, it can just do so without the hassle of saving and restoring values. In all other cases, it does the same stuff you would otherwise have done, too, but you don't need to care. Oh yes, and it runs cse elimination and instruction scheduling beyond asm boundaries unless you tell it not to.
If you happen to need a cmpxchg8b in your code, and objdump -dS shows exactly one opcode inserted for that instruction (well, two, if you count in "lock"), then this is quite awesome. That may be a bad example because in the meantime, there is probably an intrinsic function for that particular operation (is there, don't know?), but you get the idea. The principle is cool.

(2) Attributes. Need I say more :)

Another reason why I like gcc is that it is free, of course. MSVC toolkit is not free. Mabye it does not cost anything, but it is not free. Free software is cool, too, in some way.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
Re: pro's and pre's of compilers
« Reply #16 on: August 17, 2005, 01:47:22 pm »
:lol: I'll have to trust you on 1, as I don't use assembly.

:( What are attributes?

However, I happen to think that gcc's free is not really free.

GCC / MinGW
+ Doesn't cost anything.
+/-  Do what you will with it, but here is a license that dictates what you really want to do with it, and what you SHOULD do with it. If you do x, you MUST do y. Also, don't ask anybody about this license, as everyone will give you a different answer, and nobody really knows for sure. Also, we will force this license on anyone who wants to use this free stuff.
- MinGW might as well not exist when it comes to support from certain libraries, or examples. (Obviously that's not an issue to some, but we live in a windows world.)

VC++Toolkit:

+ Doesn't cost anything.
+ Do what you will with it.
-  Vendor Lock In. (Only an issue to some, and then maybe not. Depending on the code written.)
-  Apparently isn't cool.
« Last Edit: August 17, 2005, 01:58:00 pm by Vampyre_Dark »
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline AkiraDev

  • Multiple posting newcomer
  • *
  • Posts: 71
Re: pro's and pre's of compilers
« Reply #17 on: August 17, 2005, 02:29:52 pm »
:lol: I'll have to trust you on 1, as I don't use assembly.

:( What are attributes?

However, I happen to think that gcc's free is not really free.

GCC / MinGW
+ Doesn't cost anything.
+/-  Do what you will with it, but here is a license that dictates what you really want to do with it, and what you SHOULD do with it. If you do x, you MUST do y. Also, don't ask anybody about this license, as everyone will give you a different answer, and nobody really knows for sure. Also, we will force this license on anyone who wants to use this free stuff.
- MinGW might as well not exist when it comes to support from certain libraries, or examples. (Obviously that's not an issue to some, but we live in a windows world.)

VC++Toolkit:

+ Doesn't cost anything.
+ Do what you will with it.
-  Vendor Lock In. (Only an issue to some, and then maybe not. Depending on the code written.)
-  Apparently isn't cool.

Regarding the GPL, the notion that it restricts the developer's freedom is nothing but FUD.

Here's a few things we should keep in mind.
As long as you don't make any changes to the source code, you are free to use it in whatever form you like - commercially or not. Of course, if you distribute a GPL'ed program, you should also distribute or in some way indicate the program user where to find it's unchanged source code - which does not even affect you, since it is the very same source code that was available to you in the first place.

If you change the program, distribute the adapted source code as well. If you do not whish to distribute the altered version source code, well, rewrite it from scratch and use any ideas or notions you find useful - unless there are patents involved, but don't blame the GPL on that :lol:. This "restriction" is merely a defense mechanism against greedy developers who like to rip off other people's work.

Now the issue which often raises confusion is what happens with LGPL'ed code - such as that of libraries.

People often think that if you so much as link to a LGPL library, you proprietary code becomes "infected" by the GPL - this is FUD!
You can link dinamically to a LGPL library and your own code, while depending on said library, does not even become open-sourced. This means the following: you can build commercial software on top of LGPL (notice, not GPL) code, provided the code is not mixed. This means that nothing prevents software companies fom making commercial programs to run on Linux, as some already do.

Oh, and it is becoming less of a windows only world, btw - fortunately!

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: pro's and pre's of compilers
« Reply #18 on: August 17, 2005, 02:40:39 pm »
GCC / MinGW
+ Doesn't cost anything.
+/-  Do what you will with it, but here is a license that dictates what you really want to do with it, and what you SHOULD do with it. If you do x, you MUST do y. Also, don't ask anybody about this license, as everyone will give you a different answer, and nobody really knows for sure. Also, we will force this license on anyone who wants to use this free stuff.

Where do you derive this from? Honestly, I do not see such thing in there:
Quote from: www.mingw.org/licensing.shtml
MinGW runtime:MinGW base runtime package is uncopyrighted and placed in the public domain. This basically means that you can do what you want with the code.
w32api: You are free to use, modify and copy this package. No restrictions are imposed on programs or object files compiled with this library. You may not restrict the the usage of this library. Blah blah, no warranty...
gcc, make, etc. : GNU General Public License.
Maybe it is the GPL that you don't read correctly. If you build a compiler based on gcc's sources (or some other derivative work) or if you borrow code from its parser or whatever, then the program you produce must be licensed under the GPL.
If you just compile your own programs, then you are free to do whatever you want. Of course they would prefer seeing you write free software, but you are not compelled to do so.

EDIT:
Oh by the way... Do you realize that following your reasoning, you should not use code::blocks at all?
code::blocks is licensed under the GPL, so if you edit your sources with it, all your programs must follow that license :P
« Last Edit: August 17, 2005, 02:48:22 pm by thomas »
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
Re: pro's and pre's of compilers
« Reply #19 on: August 17, 2005, 02:49:29 pm »
I understand that. But You can't preach one thing, and then do another thing in practice. There are other free-er licenses, and they don't require what the GPL requires.

OpenGL is a free library. It doesn't place any restrictions on me.

DirectX is a free library. It doesn't place any restrictions on me.

I picked up a small utility library to help me with OpenGL extensions the other day. It's free to use and all you have to do is place credit for using it.

Freedom with a bunch of catches isn't really free. Look at what happened when they tried to post about codeblocks on the gcc forum. :) Where was the freedom there?
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: pro's and pre's of compilers
« Reply #20 on: August 17, 2005, 03:01:37 pm »
Quote
Freedom with a bunch of catches isn't really free.
Freedom should never be confused with anarchy. Freedom is something very precious that is all too easily lost. The "catches" imposed by the GPL are there for only one reason. To protect freedom. Without these "catches", companies like for example Microsoft or SCO would just copy the code, put their brand onto it, get a patent pending, and finally sue the original authors. They still do that, but the GPL makes it a lot harder for them. It is not for no reason that Darl McBride and Bill Gates are the two most hated men on earth.
Quote

Look at what happened when they tried to post about codeblocks on the gcc forum. :) Where was the freedom there?
google codeblocks site:gcc.org = nil
No idea?

EDIT:
Ah, think I found what you mean, Danny Smith's coment on the MinGW forums? That is correct, but it is an entirely different issue if you read it closely. This is about distributing MinGW, not compiling with it.
And he is technically right, too. The GPL says "if you distribute copies of such a program, [...] you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code".
Well, that is not a problem really, is it. If you have a link to Sourceforge on your site, they can get the source. There is nothing in the GPL that says you must sacrifice ten thousand gigabytes of transfer bandwidth for sources.
All they really ask is that you give people a fair deal and the same rights that you are given too.
« Last Edit: August 17, 2005, 03:18:53 pm by thomas »
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
Re: pro's and pre's of compilers
« Reply #21 on: August 17, 2005, 03:24:14 pm »
:shock: Little correction here:

I'm not adverse to using GPL programs, I use a few. However, most libaries and stuff made for gcc are under the gpl, and you end up forced into it. You also end up with a lot of users who refuse to use your program and some goto the point of slandering it if you don't release the source.  :? That's really a shame, because it turns a lot of people off of the whole thing. (I know this does not represent everyone!) A lot of this stuff chases a lot more of us little indy guys away from supporting linux than you probably realize.

AkiraDev, if you were referring to Linux making more than a the tiniest dent in the windows world. I highly doubt it. There are a few hurdles to get over that never seems like it's going to happen.

- Lack of drivers

- Lack of high quality software
Everyone seems to hide in their little corner and release a bunch of apps. You end up with a bunch of little second and third rate applications, and never any really good ones that can compete with the professional ones. If a lot of these little teams, or solo guys teamed up, instead of everyone wanting to do it on their own, there could be some real killer apps. eg: The newest Gimp release still doesn't even come close to measuring up to my 6 year old paint program. Which is too bad, because I really want that thing to take off. As it stands now, I only use it when I need one of the few filters it has, and then I paste the result into my other paint window.

So why switch? There are not many apps of equivalent quality to those on the 2 other dominant OSes.
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline AkiraDev

  • Multiple posting newcomer
  • *
  • Posts: 71
Re: pro's and pre's of compilers
« Reply #22 on: August 17, 2005, 03:37:52 pm »
AkiraDev, if you were referring to Linux making more than a the tiniest dent in the windows world. I highly doubt it. There are a few hurdles to get over that never seems like it's going to happen.

- Lack of drivers

- Lack of high quality software
Everyone seems to hide in their little corner and release a bunch of apps. You end up with a bunch of little second and third rate applications, and never any really good ones that can compete with the professional ones. If a lot of these little teams, or solo guys teamed up, instead of everyone wanting to do it on their own, there could be some real killer apps. eg: The newest Gimp release still doesn't even come close to measuring up to my 6 year old paint program. Which is too bad, because I really want that thing to take off. As it stands now, I only use it when I need one of the few filters it has, and then I paste the result into my other paint window.

So why switch? There are not many apps of equivalent quality to those on the 2 other dominant OSes.

Lack of drivers: I agree that this is the biggest downfall for _users_.

Lack of high quality software: This is what I was pointing out. Linux has become a OSS-only environment, and a lot of developers help to spread this prejudice you speak of. No disagreement there. I was merely pointing out that the whole GPL/LGPL foundation of Linux is a prime factor for it's lack of high quality software (I'm correlating commercial software with high-quality, naturally), since it becomes needlessly hostile to commercial companies, not due to actual license restrictions, but rather due to prejudice from fundamentalists.

I wish that a few BIG software companies would start SELLING high-end software for Linux, that would really stimulate it's growth.

P.S.: It is still growing and getting better, nonetheless, just slower than one would like.

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
Re: pro's and pre's of compilers
« Reply #23 on: August 17, 2005, 04:07:33 pm »
Lack of drivers: I agree that this is the biggest downfall for _users_.
Why the special treament on the word users? Joe User is the most important one to impress if you want real growth.

Growth in the server room doesn't mean mainstream user growth. Linux is still brutal to the non tenchical users. It needs to stop branching off into 5,000 distros and make 1 really good one. And the OSS devs need to start pooling their knowledge into killer apps. We need equavalent or better apps for everything that can be done in Win or Mac. They focus on ease of use, while Linux caters to the tiny percentage of people who like to spend their night compiling a kernal or gui when they could have gotten it precompiled and went on with their computing. IMO the whole linux movement goes around in circles and never becomes any better than it was before at becomming a mainstream OS.

:) I'm happy this didn't go down the negative road I thought it would.
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: pro's and pre's of compilers
« Reply #24 on: August 17, 2005, 04:29:39 pm »
Hmm... I have not compiled a Kernel ever since Fedora Core 1.

The only significant driver problem I ever had (and still have) is nVidia's video drivers. That's clearly nVidia's fault, though.
Contrarily, Linux works off-the-bootdisk with my RAID controller while Windows needs a driver floppy disk. First, this can be quite a problem if your computer has no floppy drive. And then, you are then prompted with 3 alternative drivers for 3 chipsets. Honestly, I have no clue which exact chip I have on my board. I just want it to work, and with Linux, it does.

Linux has lost a lot of its brutality alltogether. My old mother still has to try hard not to use the mouse as a microphone, but even she is able to use SuSE these days. :)

Your objection on the huge number of distributions is certainly a problem in some way, but note that diversity is also one of Linux's great strengths. Think of INSERT (or Feather, or Knoppix, or...) for example. You can have a Linux rescue system with X and a full suite of backup tools (or OpenOffice, or...) on a creditcard-sized cdrom or on a memory stick. That is pretty darn cool.
Show me a WindowsPE that fits on a 64MB stick :)
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
Re: pro's and pre's of compilers
« Reply #25 on: August 17, 2005, 05:00:36 pm »
Heh, microphone. I just saw that on Star Trek 4 when someone else was watching it not long ago. RIP Scotty.

I like Knoppix, but I believe someone made a Win32PE in 16mb. However it obviously can't be distributed. How has Knoppix come along recently? My last burn is a year old, and they were moving over to a DVD version while the CD ( I have no DVD drive, so...) became secondary. A floopy drive isn't needed to install Windows... you boot up off the CD, ever since 95 or 98. knoppix was my first linux, then I got Mandrake and installed it a few years ago. 9.0 I think.

nVidia is the leading videocard provider, and for the hardcore gamers the most important hardware they own. But they have no games to play other than a small handfull of ports. But IMO, regardless of who is at fault over them, it hurts Linux's adoption. (I know of Wine and WineX.. but that's a bit too ironic to work into there. Dumping Windows to pretend to run windows.)

The choice of distro is not a bad thing in itself, but why spend so much energy with tons of near similar distros with different branding? This does not make Linux better, this doesn't give Linux the better apps it needs. The talent is there, but it's spread so thin between different projects that are trying to achieve the same goal!
« Last Edit: August 17, 2005, 05:04:27 pm by Vampyre_Dark »
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: pro's and pre's of compilers
« Reply #26 on: August 17, 2005, 05:41:05 pm »
I like Knoppix, but I believe someone made a Win32PE in 16mb. However it obviously can't be distributed. How has Knoppix come along recently?
No idea, after "Damn Small Linux" started selling a bootable USB stick with DSL pre-installed for 48 US$, I did not bother to burn any more rescue CDs. And all my "real" Linux boxes run Fedora Core 4.

Quote
A floopy drive isn't needed to install Windows... you boot up off the CD, ever since 95 or 98.
Not true. Windows 98SE does boot off CD, but Windows98 and Windows95 do not.
No version of Windows (not even WindowsXP SP2) installs without floppy disk if you have a RAID.
You can boot from the DVD into the installer, right. But that's it.
The installer will offer you "Install onto <<no hard disk found>>" and "Load third party driver from floppy disk". There is no "Load driver from Installation CD". Of course you can "slipstream" your drivers onto the installation DVD, but this is not quite in concordance with the EULA, and certainly not suitable for Joe Normaluser.

Quote
nVidia is the leading videocard provider, and for the hardcore gamers the most important hardware they own
Yes, and they p#*@#ed off everybody trying to write a driver for their cards to maximum extent possible. I remember reading a discussion some 2-3 years ago, and they were seriously thinking about skipping the support for nVidia in XFree entirely.
The drivers that nVidia distributes themselves, well... maybe they work by now, who knows. I last tried two years ago, shot my foot with them twice and cannot be bothered to try another time.
It is actually a shame because such things really prevent people from using Linux.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: pro's and pre's of compilers
« Reply #27 on: August 17, 2005, 07:32:32 pm »
+/-  Do what you will with it, but here is a license that dictates what you really want to do with it, and what you SHOULD do with it. If you do x, you MUST do y. Also, don't ask anybody about this license, as everyone will give you a different answer, and nobody really knows for sure. Also, we will force this license on anyone who wants to use this free stuff.

rofl! The hordes at slashdot would burn you at the stake!

The GNU General Public License is for REDISTRIBUTING programs, not for COMPILING with them. If I recall correctly, the libraries used by MinGW are NOT GPL licensed but public domain.

From http://www.mingw.org/mingwfaq.shtml#faq-license :
Quote
# The MinGW basic runtime system, which is basically the glue to the underlying operating system, is completely in the public domain. The runtime system includes MinGW headers (such as stdio.h), libraries (such as libmingw32.a) and import libraries for CRTDLL/MSVCRT.
# W32API, which consists of the headers and import libraries related to WIN32 API access, is released under
# copyright . The copyright agreement states no restrictions are placed on programs or object files compiled with the library.
# Mingw development tools, which include compilers, linkers, other tools in the bin directory, etc., are released under the GNU General Public License.
# Profiled code, which is code compiled and linked with the -pg option for runtime profiling, also falls under the GNU General Public License. CAUTION: do not distribute proprietary source with profiling enabled. The profiling library is covered by the GPL which infects your product to conform to the GPL as well.

Meaning that you can distribute a MinGW-compiled program as you wish (as long as it's not profiled). No strings attached.

Now the problem with Codeblocks is: That it *DOES* include MinGW, meaning that it must abide by the GPL. This is the reason we had to add the links to the MinGW sourcecode in our downloads section. But if i use codeblocks to make a program, say "helloworld.exe", I can distribute helloworld.exe however I freaking want.

Edit: Oops, seems i posted this TOO late :P
« Last Edit: August 17, 2005, 07:35:40 pm by rickg22 »

Offline kagerato

  • Multiple posting newcomer
  • *
  • Posts: 56
    • kagerato.net
Re: pro's and pre's of compilers
« Reply #28 on: August 17, 2005, 11:29:08 pm »
Quote from: Vampyre_Dark
The choice of distro is not a bad thing in itself, but why spend so much energy with tons of near similar distros with different branding? This does not make Linux better, this doesn't give Linux the better apps it needs. The talent is there, but it's spread so thin between different projects that are trying to achieve the same goal!

I'm not certain they are trying to achieve precisely the same goal.  The variety of software on the Linux/GNU desktop is the result of many different viewpoints and ideologies.  The difference between this and the Windows world is fairly simple: projects in the Windows realm compete commercially, with money.  The introduction of such a tangible resource and how it is managed, combined with the demands of the user base, tends to put quite a number of Windows programs out of business over time.

Linux/GNU allows old programs (and indeed, old programming methodology) to survive indefinitely because there is no cutthroat competition.  Users of free software are unable to demand growth -- indeed, people who do are usually bashed into the ground.  Users of commercial software simply let their purchases do their talking for them.

This doesn't mean free software doesn't evolve; it does (and often more impressively than commercial software).  The direction of the evolution, however, is determined mostly by developers rather than users.  As the movement has gained more users over time, this state has begun to shift -- how far this will go remains to be seen.

Quote from: thomas
No version of Windows (not even WindowsXP SP2) installs without floppy disk if you have a RAID.
You can boot from the DVD into the installer, right. But that's it.
The installer will offer you "Install onto <<no hard disk found>>" and "Load third party driver from floppy disk". There is no "Load driver from Installation CD". Of course you can "slipstream" your drivers onto the installation DVD, but this is not quite in concordance with the EULA, and certainly not suitable for Joe Normaluser.

My friend recently had this problem in setting up his machine.  Why Windows XP lacks native support for most (all?) RAID-capable motherboards is beyond me.  It can become a real nuisance; especially if one doesn't have a floppy drive on-hand.

3.5" floppies are rather antiquated now; it amazes me that we still need them (for anything) at all.

Modifying the installation process probably does break the EULA.  There's absolutely nothing Microsoft can do about it, however.  The binding power of EULAs is quite weak due to the relatively few court cases involving them (of those cases, several have conflicting rulings).  Until such a case reaches a federal court, enforcing the terms of any EULA is precarious ground (rarely, if ever, worth the effort of a major corporation).

Of course the prior paragraph applies to the U.S. only -- the legal power of the EULA is probably even more questionable (bordering, I would imagine, on laughable) in many other nations.  Considering the piracy rate in China, Southeast Asia, and Eastern Europe, it doesn't seem like the EULA should be a major source of concern or attention for Microsoft.

Quote from: thomas
The drivers that nVidia distributes themselves, well... maybe they work by now, who knows.

They seem to work quite well for many people.  I've hardly done any significant gaming on linux/gnu (or any non-Windows platform), so the performance and stability of the drivers is not completely proven to me.  However, there are quite a number of reports of success these days.  The documentation of the driver has also improved significantly, if you compare the modern README to those provided in the past.

I don't believe drivers is the primary issue preventing broad adoption of free software.  Linux has made great (massive, really) strides in improving and expanding the provided hardware drivers over the past decade.  A good number of devices work "out of box" just as well in Linux/GNU as they do in Windows.  Some third-party devices actually have support I would deem better in the open source world than they do on Windows.

Quote from: AkiraDev
I wish that a few BIG software companies would start SELLING high-end software for Linux, that would really stimulate it's growth.

I chose to address this last because it is probably the widest topic presented.

The question begging to be asked is: "why has commercial software not been successful in the GNU/Linux market?", or perhaps "why don't companies (such as game manufacturers, for instance) release more programs for Linux?".

A common response to such a query usually points to the fact that Linux/GNU users (or indeed, the entirety of all users who are dependent primarily on free software) make up only a small percent of the market.  This does not seem to be a complete response, though.

One issue deterring the introduction of numerous pieces of commercial software on Linux/GNU is simple: ideology.  Particularly, it is the ideology of the extreme left (of notable mention, Mr. Stallman) which hampers widespread adoption and embracement of a multitude of proprietary programs.  To put it more clearly: some users don't want commercial products, and a few even fear the introduction of them on a wide scale.

An atmosphere of dislike (or in some cases, contempt) for proprietary programs decreases the liklihood of success for said programs -- a simple conclusion.  Yet, one must ask why the introduction of large bodies of commercial software would harm any Linux/GNU user.  The truth is that is does not; every person would still have the choice to simply not use commercial solutions.  What the introduction does create is new demand among a portion of the user base, and this is a terrible threat to the "purity" of the system.

Ultimately, the deduction to be drawn from these premises is that Linux/GNU is only as commercially viable as the overally user base wants it to be.  The greater the demand for proprietary software developments, the less the influence of the extremists will be.

Some people question why open source software itself is not effective in the market.  After all, why shouldn't free software work in a free market?  The problem is two fold.  One, the freedom of the software necessitates the lack of cost for the software.  So long as the program source is freely distributable, not only can third parties create new binaries -- they can then turn around and distribute their creations at absolutely no cost to the consumer.  This means that any open source project which charges for itself cannot thrive in an environment where there are people willing to give their own time and effort towards cost-free distribution.  Two, people are driven by convenience and their wallet's limitations.  The average consumer, given the option of purchasing a piece of free software (which will require time to find it, effort to obtain it, and money for the actual purchase) or downloading that same software at no cost and automatically installing it through their distribution's package manager, will inevitably choose the latter.

So long as we live in a world where time and money are scarce resources, I do not see how Linux/GNU will be able to prosper in the commercial marketplace.
« Last Edit: August 17, 2005, 11:31:17 pm by kagerato »

grv575

  • Guest
Re: pro's and pre's of compilers
« Reply #29 on: August 18, 2005, 07:09:07 am »
Re lots of small developer maintained programs (linux) vs. heavily developed large-scale programs (windows), it also that way because of a different mentality.  Linux, and having a bunch of specialized small utility programs, is great for scripting and server maintainers.  Windows is not as easy to automate, but much easier to learn how to use a certain program without reading docs.

I do think GPL licensing is a problem though.  Say I write a commercial proprietary app that I want to use in-house as well as sell to vertical market clients.  I want it to be portable, and want some of the output to be lossless images.  The libtiff library basically lets me distribute the image dll and link against it, even bundle everything with my source, so long as I leave the copyright information in the .h headers intact.  So I just can't outright steal the source...loads less restrictive than GPL.

With GPL though, can I change the source, redistribute it with the changed source, but still license my proprietary code how I wish, so long as I don't mix the two codebases?  (If not, then what prevents me from joining their CVS, commiting my changes, and then downloading and using that version...)

Btw, I don't think there are really _any_ restrictions in using VC++ Toolkit.  It's missing some .lib header files, but all the static lib files it is missing can be gotten from the platform sdk or .net sdk for free.  The only ones that aren't available in those two packages are the import libs (which are needed to link to some versions of the c++ runtime dlls).  These don't actually contain source code -- they just contain imports which tell the linker where in the dll a specific function occurs.  So they're easy to generate using sed and link.exe.  As for whether this is legitamate according to MS, I'm not sure anyone knows for sure, but look at it like this -- this is really not reverse engineering their binary code, but nothing you could not achieve by writing a tool which used LoadLibrary() and GetProcAddr() calls to figure out the offsets in the dll yourself of a specific function.  So the api functions MS provides are really all that's needed to link against the dll; the lib file just makes it more convenient (and I could just write a tool to generate said .lib files as easily using MS api functions).


« Last Edit: August 18, 2005, 07:13:38 am by grv575 »

Offline Vampyre_Dark

  • Regular
  • ***
  • Posts: 255
  • Hello!
    • Somewhere Over The Rainbow...
Re: pro's and pre's of compilers
« Reply #30 on: August 18, 2005, 01:12:07 pm »
VC++TK without the platform SDK acts just as a basic C/C++ compiler. Everything else is in the platform sdk. Even the basic windows.h. Thomas, I misunderstood your raid comment. :) I thought you said that windows couldn't boot up at all off the CD, to which I said 95 or 98.
C::B Wishlist
~BOYCOTT THE EVIL YELLOW BOXES~