CodeWarrior for Linux: Reviewed 76
CodeWarrior for RedHat
- Company:Metrowerks
- Rating:9/10
- Summary:Inexpensive solution for those looking for an IDE solution.
It is difficult to have worked in the tech industry without having come into contact with Metrowerks. Metrowerks CodeWarrior is the dominant compiler for MacOS, with ports to Windows, Solaris, a wide variety of microprocessors, and fairly recently, Linux. The current version of CodeWarrior for Linux, version 4.0, supports C and C++, with plans for Java support in late 1999. CodeWarrior is targeted at the beginning or hobbyist programmer. While CodeWarrior lacks some of the features of its more expensive competitors, it provides a basic, low cost solution.
CodeWarrior is by far the easiest installation I have ever performed on a Linux box. I threw in the CD, answered a couple of questions, and it installed it without a problem. While I already had EGCS installed on my machine, it is a prerequisite for installation. For those who do not have EGCS installed, the CD contains a copy and the installation guide includes instructions for setting it up.
Anyone who has used CodeWarrior on any other platform will be able to easily dive straight into CodeWarrior for Linux. The interface is exactly the same. For those without previous experience, the interface is logically laid out and very usable without depending on documentation. For those who have been weaned on Microsoft Visual Studio, the interface may feel a little MacOS-like, but overall everything is well designed and very easy to use.
In addition to the standard IDE features like integrated debugging, color coded source, and simplified project management, CodeWarrior has an important advantage in that its projects are cross platform compatible. Of course, it is still up to the programmer to develop cross platform code, it at least simplified the process of migrating code between plaforms.
In spite of all of its wonderful design elements, it is not without a few annoying elements. First, whenever you create a new project, it is always named "Hello." It doesn't matter if you create a project named "foo." You still need to go under the project settings and change the Target Name manually. While this may be simply picking nits, it is a rather annoying oversight.
While CodeWarrior is targeting to individuals and relatively small projects, even some of these people have learned the wonders of using a version control system to roll back a few idiotic changes. Unfortunately, the Linux port has very poor version control abilities. Straight out of the box, there is no source control functionality. Furthermore, Metrowerks does not provide any of the necessary plug-ins to add source control to the Linux version. According to a representative from Metrowerks, they have plans to provide the necessary interfaces, but no resources have yet been allocated to the project. The specification, however, is open so that anyone desiring could create the necessary plug-in. Anyone interested in developing the necessary plug-ins should go to http://www.metrowerks.com/pdf/Plugin_API_Ref.pdf.
CodeWarrior is a low cost solution ideal for Linux developers who absolutely have to have an IDE. For users who need a lot of the extra features that make the switch from vi to an IDE worth while, CodeWarrior is somewhat lacking. These developers may wish to look to Code Fusion or other similar products with a more complete set of tools.
For the small scale individual or hobbies programmer, CodeWarrior provides a friendly environment to develop programs in. While it lacks some of the more advanced features found in other IDEs, it is a well designed program with an excellent balance of features. For a mere fraction of the cost of many competitors' products, it also is well within the range of people who are on a tight budget.
Rad Features not Mentioned (Score:4)
I've been using CodeWarrior for Mac OS since 1994-5 and CW for WinNT since it became usable, which was basically CW Pro 2. I use it mainly for Java development, but also for Mac OS and Win32 C and C++ development, and sometimes for both together (native methods for Java apps). It's particularly nice for this since you can have all this stuff integrated with subprojects etc.
Anyways, I haven't checked out the Linux version yet, but I imagine (as with the port to Win32) that it will suck for the first version or so, then will get really good. And it will be great, since there several features I absolutely cannot live without!
1. Source Browser
Holy shit. This thing rocks! Turn on browse info for your project. It does not make it take 15 times longer to build (like DevStudio). Now, in addition to syntax coloring, you may choose to have whatever color you like for
The "Browser" window (which will be familiar to Smalltalk developers) has three panes: "Member Functions," "Data Members," and "Source." The first two are scrolling boxes with method signatures and data members with little icons to denote if they're static or not. There are checkboxes at the top of the window that allow you to enable display (in any combination) of "Inherited," "Public," "Protected," and "Private" members. Like filters. Click on a member, and the Source pane shows only that member (with it's preceeding comment). You can have any number of these windows open at once.
Now the really nifty part. Let's say you're developing in Java. Why not take the Java source code (for the java.* packages themselves), put them in a project, and build it with browser info? Now use it in a subproject in your projects (only have to build it once).
Boom. No more need for paper docs or that crappy html that gets generated from the JavaDoc, baby, you got the source! Want to see a concise list of the methods? Open a browser to the String class. Or that pesky java.net.SocketImplFactory. Or just right click on it to get the method list. And it's fast. I imagine you could do the same thing with Qt or gtk or gdk.
Ok one more thing about hte browser. Now, instead of right-clicking on a class name, right click on a method. You get a popup list of all the classes the implement that method, and another option, "Find all implementations of XXX." This is particularly cool if you use a lot of polymorphism, because let's say you have an abstract server class, and many implementations and you're making a new one, and you want to compare the others. Select the "Find all implementations..." item, and a Browser window appears (like the other one for a class) loaded with all the methods that implement that signature, so you can just flip through them in one window. Rad.
2. Function popup.
It's weird. Whay can't anybody else get this right? The M$ tools in particular are awful about this. When you open a source file, theres a little button in the window frame that is a drop-down menu listing every method in the file. Works with Java inner-classes too. You pick a method, it scrolls to it. Simple. DevStudio makes you type in the name of the method or in the J++ tool puts them in this crappy tree control that takes up tons of screen space.
Anyhow, I'm not employed by them, I just think people can code a shitload faster with this stuff, especially if it's done with all the subtleties that Metrowerks puts into it.
Cheers,
tedd
--
Re:for hobbies programmers? (Score:1)
For the last, oh, 3 or 4 years, Metrowerks has been selling "Discover Programming for Macintosh" and "Discover Programming for Windows" has been around for a few years now, too. These are copies of CodeWarrior intended for hobbiests. The restrictions are: -No cross-compilation tools (Pro can build Win32 from the Mac compiler and PPC/68K from the Win32 compiler) -No commercial distribution (this restriction is in licence only) -No PPC compilation (for the Mac product) For about $70US, you get Pascal, C, C++, and Java, as well as a bunch of "How-To" books on CD-ROM. It's a really good deal.
The GNU edition of CW for Linux seems to be along the same lines. Makes sense to me.
-jon
Re:GnuPro's debugger is open source (Score:1)
http://sourceware.cygnus.com/insight/
It looks very nice, though it's probably less mature than DDD. I might try it today
As a side note, I just wish there was a debugger with a smaller footprint, preferably not based on Motif.
Daniel.
Project templates? (Score:1)
Actually, this is one of those nifty little features. Create an empty project, set it up with all the libs and whatnot you need to link too, and then save it as "OpenGL Program" or something. If you look through your directories, you should find some projects named "Std C Lib Console" or so...throw your new project in there. Then, when you go to create a new project, hit "OpenGL Program", and it'll use that project as a template for a new one! It'll save you time once you get it setup for the you use.
Re:Um, conflict of interest? Slashdot CW banner ad (Score:1)
Re:C++ Compiling (MSVC++ is wrong) (Score:1)
1) If you turn off Microsoft extensions, the for scope is implemented correctly
2) Admittedly, this means that many system headers will not compile
3) You can do: #define for if (0); else for
4) OK It's a pain in the arse. But I thought I would inject a little fact into the discussion!
Andrew.
Re:Ports and sorts (Score:1)
I think the guys at metrowerks, known for making a
damn fine Mac IDE, went above and beyond the call of duty and gave their port a true win32 look and feel.
CodeWarrior a programming editor??? (Score:1)
There are other problems...can't have it open a file from the command-line, inflexible tab/space indenting, very contrained version control choices. The Linux version is even worse than the Windows one... bugs, missing features... anyways, I wrote a bug/suggestion report to CodeWarrior already.
Re:Integrated Development Environment? (Score:1)
Re:How is the quality of the object code? (Score:1)
Competition with CodeCrusader (Score:1)
The initial hype about CodeWarrior and the potential later frustration with it might help to attract more people who are willing to improve its native-Linux equivalent.
Personally I would not wonder too much if they go open source somewhen later as well, especially since now-owner Motorola is presumably rather interested in promoting its hardware than making money with tools you just need to develop for it.
Re:This reminds me of something... (Score:1)
Other packages have those too... (Score:2)
For what it's worth, Visual Studio 5 and above offer similar functionality (works similar to one of the old tree-based "explorer" windows [not internet explorer...]). I agree, it is a VERY nice feature.
Version 6 also offers some really nice things in the editor. Say you have this code...
int hello(CString bla)
{ return bla.tolower();
}
When you type the "." in the bla.tolower() line, a listbox will pop up showing all of the members present in bla. Very handy if you don't remember exactly how to spell a function. If you're just looking for a function, or wonder what it does, you can click on one of the functions in the list and it will display the comment lines above the function (also very handy if you're just piddling around).
You can also "finish" the statement by hitting tab or starting a parenthesis (similar to hitting tab on the shells which do similar things for filenames).
When you type the "(" of the function, it will show you the function definition(s), which allows you to see what variables need to go where (which is also handy for the nasty windoze functions which require something like 30 parameters or whatnot).
For Linux development, it is probably one of the best packages available.
My 2c
Re:I don't get it (Score:1)
Actually, it does save some time, as you don't have to spend significant portions of time getting all of the different debuggers/editors/compilers/linkers/ to work together. It also removes the extra time required to find problems with those things because you forgot to change a line in the makefile...
Re:Um, conflict of interest? Slashdot CW banner ad (Score:1)
Which I must admit, I don't know the answer to...
Re:C++ Compiling (Score:1)
Differences between Linux Codewarrior and Mac/Win (Score:2)
The Linux version of Codewarrior doesn't provide its own compiler, instead it depends on EGCS. In theory, you can cross-compile if you set up EGCS correctly. Therefore, with a modicum of tweaking it should be possible to compile for PalmOS, for example. (A traditional stronghold for Metrowerks.)
Since they didn't include their own libraries or compiler, you lose CodeWarrior's usual ability to create cross-platform GUI apps. This, coupled with the lack of a revision control interface implies that Metrowerks has decided to aim this newest incarnation at recreational programmers like myself who are familiar with using GNU tools for Linux development who would prefer using the excellent CodeWarrior IDE. (Slant warning: I've been a big fan of Codewarrior for some time and prefer it to the Visual Interdev suite. They even managed to convince me to abandon my venerable Borland C++ IDE, which is no mean feat since I cut my teeth on Turbo Pascal 3.0.)
According to Metrowerks' documentation, the reason CodeWarrior for Linux doesn't do its own debugging is tied to the fact that EGCS doesn't provide sufficient symbolic information to drive their debugger. I don't find Metrowerks' decision to rely on third party debuggers especially bad, since there are several good OpenSource debuggers for Linux.
I am curious, however, how easy it would be to extend Codewarrior for Linux with support for new target hosts and other, non-C/C++ programming languages.
It looks good (Score:1)
Still, what I really need is a C++ compiler that is up to the standard. And no, egcs/GCC is not up to the standard (although they are working on it).
Integrated debugging ??? (Score:2)
Have they finally at least integrate a debugger ?
And last: what the hell are these ads about "girls eating scorpions" doing in Slashdot. Rob, I though that you were *still* in control. What's next, porn ads ?
C++ Compiling (Score:1)
Cool (Score:2)
>overall everything is well designed and very easy
>to use.
Seems kind of redundant to me.
Seriously though, Codewarrior for the MacOS rocks. Give it some time, as the first version for the Mac was a little anemic to begin with - in the last few years, it has definately come around.
Metrowerks really saved Apple way back when - the transition from 68k to PPC wouldn't have been nearly as transparent as it was if it weren't for them.
- Darchmare
- Axis Mutatis, http://www.axismutatis.net
The hello thing (Score:1)
for hobbies programmers? (Score:1)
Luis Espinal.
Scorpions/Masochism (Score:1)
some quick notes.. (Score:2)
the whole thing with the popup menu letting you jump to functions or wherever you put a #pragma mark seems like a small feature, but you get addicted to it quickly..
also, it has (at least on mac) an FTP postlinker which will allow you to develop, say, a windows program in mac codewarrior, and every time it compiles simply dump the compiled file via ftp onto a windows machine on the network for running.. is this something common for IDEs?
and the mac version seems to have come with Playstation development tools.. does the linux version?
codewarrior also has the most amazing multiple-file find/replace capabilities i've ever seen.. but then again that wouldn't apply on linux, since you people have grep and awk and such things.
maybe not important. but if anyone's interested.. codewarrior's pretty nice..
Integrated Development Environment? (Score:2)
Their compilers, as I've used them a while ago on Mac are good, but their main force is that they seem to be (used to be at least) a company that listens to their customers. Hey, can you imagine that? You can actually REQUEST a functionality and expect it to be present in the next releases!
Not open source by far, but with them you don't usually endure the usual pain of closed source software.
Re:Integrated debugging (Use GnuPro) (Score:1)
Check out GNUPro from cygnus. I think these to products may work real good together.
GNUPro is more then a debuger. It has it's own version of the compiler optimized for Pentum processors. It really is faster.
But the debuger is not to notch but good.
Re:some quick notes.. (Score:2)
Did you hear, by the way, that Metrowerks is also doing the compilers for PSX2, Nintendo 64 (I would guess that they'll have Dolphin as well), and Dreamcast?
Re:It looks good (Score:3)
I just wish it would run on LinuxPPC...
Re:for hobbies programmers? (Score:1)
- Darchmare
- Axis Mutatis, http://www.axismutatis.net
Re:Integrated Development Environment? (Score:1)
-----------
"You can't shake the Devil's hand and say you're only kidding."
Re:It looks good (Score:5)
Metrowerks itself has not been very clear about the the target audience for CodeWarrior. My initial review for the product actually trashed them a little bit for lacking some of the features of their competitors. After doing some fact checking to confirm that these features were in fact lacking, they sent me the following information stating that this release is targetted towards individuals.
"CodeWarrior for Red Hat or SuSE Linux, GNU Edition is targeted at individual programmers experimenting with the Linux OS and looking to either adapt their previously learned platforms to Linux or those who are programming novices. The GNU Edition blends CodeWarrior's powerful project manager, editor, and search engines with the familiar code generation and debugging tools found in GNU/EGCS technology, thus achieving a seamless transition for newcomers to the Linux OS. In fact, Metrowerks' overall goal in creating the GNU Edition was to create an entry path for newcomers to the Linux OS that is palatable and easy to implement. As an added incentive, we have priced this entry-level edition at $99.00 anticipated street price, a price much below what would be paid for our CodeWarrior Professional Edition. Metrowerks does not presume that commercial-grade applications will be the primary reason users will employ CodeWarrior for Red Hat or SuSE Linux, GNU Edition for their projects. The GNU Editions have been developed to help make the transition to the Linux OS a smooth ride for the programming community.
"CodeWarrior for Linux, Professional Edition, to be released later this year, is intended for the more seasoned programmer and will be used primarily in industry. The Professional Edition is a comprehensive set of development tools featuring the CodeWarrior IDE encompassing Metrowerks' blazing fast compilers and integrated debuggers. With this edition, programmers can create applications for C, C++, and Java with unparalleled ease, increasing productivity and getting their products to market faster."
Hopefully this clarifies their position.
Re:This reminds me of something... (Score:2)
I do CVS on my Mac by mounting an AFP share from my Linux box, copying the source tree back and forth, and then using cvs on the Linux box. It's lots easier than struggling with that piece of crap "MacCVS Pro" Netscape released...
-Mars
Re:For RedHat?, For SUSE? (Score:2)
In the commercial software world, if you state a requirement, you are expected to back it up. If Metrowerks says 'Linux 2.0.x+' and doesn't declare which libc they require, or GNOME and KDE version, which X11 they need, etc., they will invariably have a horde of screaming users asking for a refund. It is easier for their product development team to just say 'We will support SuSE up to and beyond version , and RedHat up to and beyond version ', and be done with the matter.
This makes life a LOT easier for their QA department to isolate testbeds for alpha testing since they don't have to simulate each and every possible environment. Metrowerks has always had a reputation of being people who test their products exhaustively and provide excellent support to their users.
That being said, I have installed CodeWarrior for SuSE on my virgin Caldera OpenLinux 2.3 workstation and it worked. Beautifully. The install script doesn't even bother checking whether I'm running SuSE or not, it merely assumes I'm literate enough to read the box and must know what I'm doing.
Re:C++ Compiling (Score:2)
Re:Um, conflict of interest? Slashdot CW banner ad (Score:2)
How is the quality of the object code? (Score:1)
Re:Other distros (Score:1)
In my opinion, typical Debian users will never replace his favored vi or Emacs enviroment no matter what.
Re:Cool (Score:2)
The one thing I most dislike about CodeWarrior for Macs is that the
Re:Cool (Score:2)
The project file exporting options include exporting to an importable XML file (it includes the DTD!) or a simple file list. Either format can be diffed and compared by a human much more easily than the binary.
Why not just add a front-end for CVS? (Score:2)
With emacs, interaction with CVS is no problem. And speaking of emacs, is there any compelling reason why I should get the CodeWarrior for Linux and quit using emacs? Don't get me wrong, I'm familiar with CW on MacOS and I know it's very good. But so is emacs, and I don't see why I should abandon one for the other on Unix.
For RedHat?, For SUSE? (Score:1)
I fear the fragmentation of linux. Should there be standardization of where critical files are placed on linux and what libraries should be installed? I hope that releasing software for different distributions like codwarrior has done doesn't become a trend.
Isn't this a problem?
Re:Cool (Score:1)
This Review and the rating system (Score:1)
My advice is to take Visual Studio C++ 6.0 and XEmacs+DDD+autoconf as reference. Point out all pros and cons comparing with these two systems. And keep references to old reviews.
I almost a volunteer to make such a review but I guess I'm to biased towards XEmacs+DDD+autoconf.
Other distros (Score:1)
Ports and sorts (Score:1)
Now, I understand that CodeWarrior was ported from Mac to Intel, so I was expecting a few caveats. But the total lack of usability was astonishing!
I hope CodeWarrior does not go through the same growing pains in Linux as it did for Win32.
Re:Why not just add a front-end for CVS? (Score:2)
The version control system theoretically can tie into CVS. The necessary software is not yet written, but the necessary APIs are published on their web site at www.metrowerks.com/desktop/versi on_control/ [metrowerks.com].
Apparently at one point in time, Metrwerks was working on such support, but the project went nowhere. The rep that I asked played the "Blame it on the intern" card. :)
Re:Um, conflict of interest? Slashdot CW banner ad (Score:1)
Re:C++ Compiling (MSVC++ is wrong) (Score:1)
Still, VisualC++ has had support for string and wstring classes at least from v5. And even though their STL implementation is all wrong, and they add some extensions to the language, at least, you can write almost proper standard C++.
BZZZT! WRONG, oh so annoyingly wrong. try this code in VC++6:
by the definition of C++'s loop scode (not an ISO thing, but a basic C++ thing that i've seen in books reaching back many years), that should NOT work, and in fact won't compile with g++, but compiles fine in MSVC++.
on the converse, this code:
won't compile with MSVC++6 --- the error it gives: redefinition of i!!! but i wasn't declared in function scope!!!!
note that both of these compile perfectly with g++. i've run into this problem when writing code from my C++ books and when porting code from unix to windows ever since i started using MSVC++ at 4.something. this bug really pisses me off.
muppet
Re:For RedHat?, For SUSE?...for $Distribution (Score:1)
My employer's software product used to be released for RedHat version X. But they have since learned that not only can people run different versions which have all the libraries etc. required to run the binary, but they can also run distributions. Our next release will simply require, eg: libc6.0, libXm2.x or whatever. Everyone else will figure it out too. The linux market is small enough without cutting out large chunks of it by limiting the distribution.
comparison of compilers (Score:1)
Every one(Sun, Metrowerks) claims theirs is the best and have some bogus bench marks (Sun for work shop)! I need to see something from neutral.
So that I can convince my manager to adopt say EGCS over Sun CC
THanks heaps
Re:For RedHat?, For SUSE? (Score:1)
Re:Um, conflict of interest? Slashdot CW banner ad (Score:1)
This would be a valid concern if the person writing the article actually received revenue from the banner clicks...
Who wrote the article is irrelevant since
Re:Why not just add a front-end for CVS? (Score:1)
Re:Cool (Score:1)
A Mac program with a command line. What more could a Linux geek as for on a Mac?
This reminds me of something... (Score:2)
The current CVS offerings I see for MacOS all do CVS clients quite well, but I don't see anything that looks like a server. Perhaps I'm just not looking in the right place. I'll do a Linux server if need be, but I just need something that'll do good CVS for a MacOS-based project.
Inexpensive ? (Score:1)
IMHO there is no point in making yet another debugger integrated into this or that IDE, there are plenty of them around to use, statring from pure GDB and ending on excellent front-ends like DDD.
I might be wrong on that, of course, given that I program mostly in Perl/shell
Re:Cool (Score:2)
-dair
Ah, ok! (Score:1)
Peace.
Re:C++ Compiling (Score:1)
You're right, there are no alternative for gcc on UNIX if you want to follow the ISO C++ standard.
How far away are we from a ISO C++ compliant compiler, anyway? Months, quarters, years?
How about KAI C++? It's been around for years. See
http://www.kai.com/C_plus_plus/index.html
From everything I've heard, it's the most ISO compliant C++ compiler you can get, and produces some of the fastest code as well. I works on many OSes, including the Linux/Intel version for $400.
Um, conflict of interest? Slashdot CW banner ad? (Score:1)
Slashdotters rag on ZD all the time for praising MS stuff while residing deep within MS's pocket. For this reason, I will treat this review with the same disdain and suspicion.
Okay, but no CVS! (Score:1)