Slashdot Mirror


Code Fusion for Linux: Reviewed

With the increasing momentum in the Linux world, more and more productivity applications have been coming out for Linux. Kurt DeMaagd, who's spent quite sometime in other IDEs, has reviwed Cygnus Solutions' "Code Fusion". Click below to read more about it.
  • Company: Cygnus Solutions
  • Rating: 9/10
  • Summary:With the exception of a few minor annoyances, most notably in the installation process, Code Fusion provides a full range of features for an excellent price.

Cygnus is already a familiar face in the Linux world. They are known for products such as GNUPro Toolkit and Source-Navigator, as well as their support for a variety of other open source projects. Their most recent addition to their product line is Code Fusion, a product which merges and enhances the GNUPro Toolkit and Source- Navigator to create a since integrated development environment.

While there have been instances where people have had troubles installing Code Fusion, I was able to set it up and run it without a hitch. Nonetheless, there were several elements of the install process that could be improved. First, you have to enter a different directory and run a separate install script depending on which version of glibc you are running. Once the setup is complete, you then need to setup several environment variables. While this process is well documented, the risk of typographical errors and the general inconvenience warrant automating this process.

After getting past the mild inconveniences of the installation process, I started up the program and began testing. While Code Fusion comes with a couple example projects and the book has some tutorials, I decided to venture out on my own and create a new project from scratch. And what better way to test a program than to write a Hello World app. Of course, to adequately test all of Code Fusions project browsing featuers, I broke it up into 5 classes.

It took me a couple minutes to figure out how to create new files. It seemed logical to me that the Project Editor window, where you can add, move or delete files, would also let you create a file, but that option is lacking. After digging around menus, I found that the Window menu allowed to you open the Source Editor window, where you can create files.

The Source Editor window provides a variety of convenient options. As with any good IDE, it color codes all our your source. The command to build your code is just a click away. Perhaps most conveniently, it is integrated with a variety of version control programs. In general, it provides a very convenient environment for cranking out code.

Having quickly whipped up all of the classes of my Hello World app, I moved to the feature where Code Fusion really shined, the various project browsers. This feature allows you a wide variety of ways to display your program. It includes a cross reference browser, an include browser, a class browser, and a hierarchy browser.

Finally, I tested the debugging features. This includes all of the standard features expected from any debugger, such as breakpoints, watches, stack traces, etc. Unlike a majority of the debuggers on the market, the screen where you edit the code and the screen where you set break points are different. Having been reared on Microsoft Visual Studio, and given that this differs from the industry standard, this is rather inconvenient. In spite of this, I found the debugger to be generally easy to use and it sure beats using a printf every other line.

Overall, Code Fusion is a very useful product. Any software developer, with the exception of the vi-loving death-before-IDE people, will find its wide variety of features helpful. And with a price under $300, it is financially well within the reach of most individuals and companies.

List Price $299 ($207.43 at CDW)

27 of 128 comments (clear)

  1. Re:Open Source alternative by Anonymous Coward · · Score: 2

    Yes, KDevelop is approaching maturity and is in its second beta now.

  2. Re:finally, a good IDE for Linux?!?! by Anonymous Coward · · Score: 3

    vi? emacs? pff.

    The only true programming editor is "cat >".

    It has no modes to worry about (like command vs edit mode), no fancy commands to worry about, no cruft like a macro language, has not only been ported to virtually every unix variant (as well as dos, windows, and os/2), but works identically the same everywhere (no need to worry about vi vs nvi vs vim vs elvis). It doesn't depend on curses, windowing, nor anything else like that. It has an incredibly small memory footprint. AND, it forces you to think ahead and spell things correctly the FIRST time.

    gdb!? sheer luxury. You never need anything more than the printf debugger.

    IDE's? "cat | gcc" and the world is your oyster.


    (brought to you by REAL Luddites, as opposed to pansy "vi and emacs til the day I die" luddites)

  3. Re:...integrated debugging? by Anonymous Coward · · Score: 4

    RHIDE has probably gotten less credit/attention than it deserves because it's from that bizzare free software sub-community using *-DOS. It was developed for DGJPP to give DOS users their familiar Borland-like IDE. Its debugger is just as integrated and easy to use as the Borland one was. It's been available on linux for some time, but so far as I can tell, it's still pretty much only used by Win/DOS types. Too bad really, because I *know* a lot of linux users began programming on those text-based DOS systems and this might do a lot to relieve some of the where's-my-ide-angst floating about.

  4. ...integrated debugging? by Adam+Wiggins · · Score: 4

    *sigh*

    Okay, there's now five or ten pretty nice IDEs for Linux. (Code Warrior, Code Fusion, KDevelop, CForge...)

    There are some extremely good visual debuggers. (ddd, kdbg, Code Medic...)

    But...it's all pointless without integrated debugging! I'm sorry, I find the lack of this feature to be a major detriment to these products, and to OSS/free software in general. Ten years ago I was running QuickC on my 286-12 running DOS, and *it* had an integrated debugger.

    I have several co-workers now who have installed Linux to check it out, and have been very happy with the power and stability it offers, but - in a nutshell - they won't work without the development environment they are used to, and that means an integrated debugger.

    Myself, I find it too annoying to deal with loading up a seperate (graphical) debugger, especially while running an already screen-space-hogging IDE. I continue to use vim+make+gdb.

    Yes, I know - I should stop bitching and just code it. Still, it's a big job, and I'm torn whether I should try to add interactive debugging to something like KDevelop (certainly a big job) or simply add some source-editing features to DDD (a smaller job, but less impressive when finished).

    I was hoping that Code Fusion would finally contain an integrated debugger, since it's not just a port of an existing IDE. I see now that our only hope is the 'Pro' version of Code Warrior.

    1. Re:...integrated debugging? by jabbo · · Score: 2

      What, changing DDD to fire up

      gnuclient +@LINE@ @FILE@

      instead of

      vi +@LINE@ @FILE@

      is too hard? I almost bought a copy of Code Fusion and then said "naaah, what for?" when I realized I could do everything but the source navigation just using GCC 2.95.1, GDB 4.18, DDD 3.16, and XEmacs 21.4. Seeing as to how I already use all of these in earlier versions, it wasn't real hard to transition to writing Java->native code, my only problem now is getting DDD to work right with the executables. But DDD also lets one debug Perl and Python scripts. Can't do that with Code Fusion!

      --
      Remember that what's inside of you doesn't matter because nobody can see it.
    2. Re:...integrated debugging? by Utter · · Score: 2

      You should discover the beauty of virtual desktops. And understand that integrated debugging is not that important (unless you can apply code changes without restarting the application, a.k.a. Edit and Continue).

      I set up one desktop with XEmacs. I divide XEmacs in three buffers. At the bottom I have my compile buffer. Above I use two source buffers splitted vertical.
      In another desktop I set up the DDD debugger windows, formed exactly as I want it.
      And in the third desktop I have Netscape as help system (I hate both info and man pages).

      OK, I still miss a autoconf project manager, and a graphical profiler. But from that I am pretty pleased with developing without an IDE.

      (I use Visual C++ 6.0 daily, so I have a really good but buggy IDE to compare with)

  5. I think I'll stick with C-Forge by R-2-RO · · Score: 2

    I never really got into emacs. I dig vi a lot though. When I went looking for an IDE, I came across C-Forge C-Forge There is a demo available on the site. It has pretty good project management, DND, rcs, and defaults to DDD for debugging. I also love the fact that the editor can operate in 'vi' mode.

    --
    Thank you. Drive through. (:wq)
  6. Re:Who's missing the point? by Eccles · · Score: 2

    Try to code nice console programs and static libs not touching the horrible VC MFC libs and go STL and stdio instead. What happens?

    I've found it often works better than egcs. I had to rewrite an egcs version of a console test app because it didn't like typedefs in templates based on typedefs from the template parameters. (I ended up using -- God help us! -- #defines.) Maybe egcs has improved since then, but slamming a compiler because it isn't quite up to the standards spec means you slam all compilers.

    I'll grant you the non-standard scope for variables declared in for loops, and the lack of a standard switch for just changing that, sucks.

    To my mind no IDE (including emacs) is really at the level I need it. I like the multiple independently-resizeable edit windows of CodeWarrior (that offer more than just editing, things like setting breakpoints for example). I like the displays of local variables and the edit and continue of Visual. I like the power of command line programs with Unix/Linux. (Especially the ability to pipe grep, grep -v, etc.) I like the ease of learning the simple stuff of CodeWarrior and Visual.

    I want the ability to add hyperlinks to documentation in source code, where I can click to get a viewer. I want easy to browse instructions. I want to be able to set *compile* breakpoints, so I can see what header files are included and what's defined at a given point. I want the ability to indicate groupings of functionality even when there's no language-level indication (such as namespaces) of that grouping. I want diff tools that show word-level differences if lines aren't very different, and that show the difference in context. I want to be able to change a variable's name, and have all references to it change too -- but not identically named but different variables.

    --
    Ooh, a sarcasm detector. Oh, that's a real useful invention.
  7. Re:Visual Studio *programmers* can suck... by /dev/niall · · Score: 2
    Why not wait for a port of MS DevStudio to Linux? I think it'd be the perfect way to fu** up the whole beauty of development on Linux. Oh no, I see the developers of KDevelop dreaming that QT is someday as big and ugly as MFC, and KDevelop performing as moronic as DevStudio. Yes, 13 year old mongoloid kids would be able to write KDE (pronounced "windows-wanna-be") applications that do incredibly useless things.

    Go to freshmeat and search for "gtk". You'll get back a result list of of something like 400 applications. Are all of these useful? Probably not. Most were written by folks trying GTK out, learning, and sharing their results.

    Libraries and development enviornments do not govern the usefulness of a program or application.

    Plenty of excellent programmers swear by Visual Studio. Plenty of excellent programmers swear by emacs. For some reason, some even use vi (sorry, couldn't resist! ;) )

    --
    --
  8. Re:Performance review? by kip3f · · Score: 2

    I believe that you are talking about COLD Fusion. This article was about CODE Fusion.
    --
    Man is most nearly himself when he achieves the seriousness of a child at play.

    --
    ****Gfx Scrollbar Special case hit!!*****
  9. I already have an IDE! by Frank+Sullivan · · Score: 2

    It's called a Unix shell. It includes choice of editors, build tools, version control, multiple scripting languages, etc. It can work in very little desktop space (i'm currently using just an xterm), is language-independent, etc.

    My question is, what does the "Integrated" environment get me that i can't already get with my Unix shell, and how much of the flexibility of the Unix shell must i surrender to get it?

    -dave, who is currently hacking Perl over a WAN in an xterm)

    ---

    --
    Hand me that airplane glue and I'll tell you another story.
    1. Re:I already have an IDE! by Frank+Sullivan · · Score: 3

      How about nearly 4000 C source files and nearly 14,000 files (over 17,000 if you count differently) in a complete build directory? That's my daily work environment. How about making it cross-platform for 9 or so Unix platforms, plus NT? Does the cool IDE allow unattended cron job builds? Can it integrate our homegrown version control system? Does it support all our platforms (including NT)? Can its build system do things like kick off internal database processes during the build that are needed for other parts of the build?

      Other than occasional use of Source Insight (an inexpensive and excellent commercial source code index/analysis tool), i rarely need anything more than find, grep, and one-liner custom greps written with perl -e. With a project of this size, i find the "knowledge... of regexps" and "ugly makefiles" not just useful, but priceless. The bigger the project, the more useful the Unix command line becomes.
      ---

      --
      Hand me that airplane glue and I'll tell you another story.
    2. Re:I already have an IDE! by hawkfan · · Score: 2
      ok. so youre working on a medium-large software project. you've got over 100 source files, some of which you wrote, some of which you didn't.

      Sounds like many free software projects.

      where is foo() defined? where is it declared? where's the next place it's used? what are the different signatures of functions named foo()?

      For vim:
      !man ctags
      :help tags

      All the tools are there, the hard part is to figure out how you like to chain them together. I've yet to find a better IDE than what stringing together standard/free UNIX tools provide once you've taken the time to figure that out. Perhaps the lack of an IDE comperable to those found in DOS/Windows is due to the do one thing and do it well philosophy in UNIX..

    3. Re:I already have an IDE! by vyesue · · Score: 2

      ok. so youre working on a medium-large software project. you've got over 100 source files, some of which you wrote, some of which you didn't.

      where is foo() defined? where is it declared? where's the next place it's used? what are the different signatures of functions named foo()?

      you can answer these questions from your shell, yeah. but it takes some knowledge and application of regexps and grep and it takes some time to write these little "queries" and sift thru their results.

      don't get me wrong, I'm not dissing the "vi-as-ide" method of programming. I've done a lot of it. but an IDE often gets you some of these features for free.

      additionally, in good ide's you get an integrated debugger as well, and probably an improved compilation system that saves you from kludging up a whole bunch of ugly makefiles.

  10. Re:Questions by justo · · Score: 2
    not to mention
    • does the ide support keystroke navigation -- i hate to use the mouse if i don't have to
    i tend to use emacs a lot because of source control tightly intergrated with a simple keystroke.

    extensibility and customization/personalization are also an important...

  11. Current open source options... by Svartalf · · Score: 4

    The closest things that are available are Code Crusader and KDevelop.

    There's several other options out there, but they're not as nice as these two, IMNSHO...

    Both offer project management, class browsing C++, syntax highlighting, etc. KDevelop looks nearly like VisualC++, Code Crusader is more closely modeled after Code Warrior. These decisions dictate code choices.

    KDevelop does class browsing in a way much like VisualC++ does. Code Crusader shows classes in a class inheritance tree.

    Each of these environments have their own set of problems- you'll need to evaluate their offered functionalities and find out the drawbacks for your purposes and choose accordingly.

    --
    I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  12. Mixing IDE and non-IDE by bjb · · Score: 4
    I'm certainly glad to hear that a decent IDE is available for Linux. Being that I just about qualify as a 'VIM or death' type coder, I am more comfortable outside of an IDE, but I do use IDEs (MS VC++) regularly. I guess what I would be curious about is how well you can work with a mixed environment with CodeWarrior.

    The scenario that I'm interested in is that I typically build things at the command line, but use the source browsers to explore other classes and their methods. The other use is that I create the build environments in the IDE, export a makefile (because there are a lot of dependencies to code; let the IDE do it for you), and then fire it all off by typing 'make' at a command line. Does CodeWarrior fit this situation?

    While IDEs are nice, I like the ability for them to simply put a GUI on some parts of the development process. Otherwise, hands off and let me use VIM! :grin:

    --

    --
    Never hit your grandmother with a shovel, for it leaves a bad impression on her mind...
  13. Maybe OT: Perl Development by kuro5hin · · Score: 2
    Ok, so I write an awful lot of perl, and mainly, perl development just doesn't need all this "project" crap, makefiles, yadda yadda. But here's what I wish: I wish there was a GUI text editor that did perl/html/php3/etc. syntax highlighting (I use NEdit now, which rocks BTW), could run my scripts (if they're that kind of thing) or do a perl -cw on them (if they're not), that would integrate seamlessly with ftp and cvs (most of my work really lives on other servers anyway), and could give me some debugging functions of some sort.

    Now, I'm not going to give up Perl, of course, but this would make me just another, slightly happier, perl hacker. Anyone have any leads on something like this?

    And to qualify: don't even bother saying emacs. Seriously. No thanks, I already have an operating system. :-)

    ----
    We all take pink lemonade for granted.

    --
    There is no K5 cabal.
    I am not the real rusty.
    1. Re:Maybe OT: Perl Development by Tom+Christiansen · · Score: 2
      But here's what I wish: I wish there was a GUI text editor that did perl/html/php3/etc. syntax highlighting (I use NEdit now, which rocks BTW), could run my scripts (if they're that kind of thing) or do a perl -cw on them (if they're not), that would integrate seamlessly with ftp and cvs (most of my work really lives on other servers anyway), and could give me some debugging functions of some sort.
      I don't quite understand the ftp and cvs thing you mention. If you don't mind using a power editor, there are versions of vi that do some kind of syntax coloring for Perl. (I've never understood the need, personally.)

      You might also look at pvdb . It gives you three xterms: one for the perl debugger, one for vi on whatever source file the debugger has break-pointed into, and one for stdin and stdout. As you hit breakpoints and step through, it controls vi for you to move you around.

  14. Cygnus products: bad experience by cambion · · Score: 2
    I've had a VERY bad experience with the Source Navigator by Cygnus, which now is integrated into the Code Fusion as the tool for source browsing.

    Guys, to be honest, SN is just a pile of shit in very fancy tix wrapping.
    We were using SN databases ( it parses your project and builds several databases out of it) to make some source analazyng tools for big (more than 2.500 files) project, and we had run into troubles. SN started to crash often, corrupting databases and producing unpredictable results. I have more than 30 bugs listed in our local gnats system. Here are some of those:
    • Source Navigator does not report correctly information on entities(e.g. structures) declared in the scope of a class, it reports them as declared in global scope
    • references to the virtual functions do not point
      to the actual function implementation. The reference points to the function declaration in the parent class, instead of the implementation
      in the derived.
    • it is now possible to print a xref-page only, if it fits on one page (a4). if it has more than one page, SN crashes with bus error

    And so on. I just took first three bugs from our bug tracking db.


    When we tried to contact Cygnus support for those bugs, we received a polite reply on of the support staff that mentioned bugs will be fixed in the future release. We've waited for a couple of months and then new SN update appeared. None of the bugs we submitted to support were fixed.. :( We resubmitted bugs. Received another polite letter... and we're still waiting for fixes.


    Of course, there's a lot of good products from Cygnus. I use egcs at work and a lot of tools compiled with cygwin at my home PC, and I can't say anything bad about those products. But never - I repeat - NEVER spend you money on this foolish thing.

    PS. sorry for my bad english.

    --
    -cambion
  15. Questions by AT · · Score: 2
    Some questions I'd like answered:

    • can you import/export Makefiles?
    • does it do emacs/vi keybinding?
    • any integration with source control tools?
  16. Re:What's an IDE for? by guacamole · · Score: 2

    Simply, Linux became a buzzword today, and there is a crowd of windoze programmers who'd like to code on linux. But wait, they were using MS VC++ all the time. Even now I meet windows programmers who after looking at a linux machine start saying that their VISUAL tools are superior to gcc or unix editors just because they are Visual Something+++, go figure.
    Anyways, everything on unix appears to be difficult to use. But this is just a perception. Once you learn the basics you figure that the whole system makes sense, is very integrated and powerful..

  17. Re:How does this IDE compare to emacs/gud/make/gdb by PatientZero · · Score: 3
    I, unfortunately, have been bound to the Wintel platform for a decade now (switched from Mac, but still pine for Unix/Linux at work someday). I've used the following IDEs:

    Mac

    • Symantec C++ (rocked!)
    • CodeWarrior (only used it a bit, but it was great also)

    Win

    • MS Visual C++ 5 (very little, no comment other than sluggish)
    • PowerBuilder 4/5 (nice, integrated, but obviously proprietary)
    • Symantec Cafe 2/3 (slow, slow, slow, lame editor)

    Now I've been working at a startup for the last six months doing Java. There are few tools to support Java development to the level of complexity offered C++ coders, so we rolled our own. It's still basic as I haven't had much time to continue building it, but that changes next month. :)

    Here's what we're currently using:

    • Cygwin (crucial!)
      • bash
      • cpp (for #define et al)
      • all the other nice GNU tools
    • Perl 5 (for some build scripts and tools)
    • CVS
    • JDK 1.1.7b

    Most everyone here uses Symantec Cafe. I had already chosen my IDE prior to arriving, however, at a contract a year earlier. After using so many IDEs, I found that the central feature lacking in them all was a good editor. I spend 90% of my coding time actually coding, and very little building.

    I eventually found CodeWright (windows only) and have used it since. For one, I have not found a better editor out of the box. Emacs can be configured to do nearly everything and more, but I don't have the time yet to jump in fully. I can get by editing in Emacs, but that's about it.

    CodeWright, like Emacs, has extensibility. You can use one of their own three macro languages, C, C++, or Perl to write extensions to the editor. Even easier, however, is that it has hooks for compilers, make, version control, etc. You just enter the (cmd.exe) command line to execute for each function:

    Example
    Source Check-in: d:\public\bin\cvscommit.bat %v%d %r%e

    %v%d is the project path
    %r%e is the source file

    The meat of cvsput.bat is
    d:
    cd %1
    cvs commit %2
    And it was just as trivial to tweak it to use our build scripts, tag files, etc.

    Bottom Line: Take the time to pick a good editor and extend it. Yes, I'd love a class browser, but far more important for me is to be able to hit ctrl-F10 and have the current file saved, preprocessed, and compiled; and the cursor jumps to the first error. You can do all that with Emacs and JDE, and we'll move that way once we jump fully to Unix next year.

    Now all I have to do is convince the black hats that Linux is an enterprise platform. Got any ideas?

    -PZ

    --
    Freedom to fear. Freedom from thought. Freedom to kill.
    I guess the War on Terror really is about freedom!
  18. Re:finally, a good IDE for Linux?!?! by TMFSumner · · Score: 4

    ctags stopped cutting it when I moved from C to C++, and it's useless for Java

    Exuberant ctags is far advanced over old ctags programs. The C support is much improved and C++ and Java support have been added and work like a charm. Works especially well in combination with Vim. If you don't like the way it handles Java, you can give JTags a try, but it's nowhere near as stable.

    If you're doing Java development, you'll probably also want to use Jikes, as it integrates very nicely with QuickFix mode in Vim and make mode in Emacs. There's also a Jikes Debugger java debugger, but I've not used it.

    a decent code beautifier, since indent doesn't work right for Java

    jsbeautifier is one of many -- a search I did a few months ago turned up 10 or 12 beautifiers for Java, and even more for other languages.

    Of course, if you want a good graphical debugger then ddd is the way to go -- it lets you get to the gdb command line if need be.

    Sumner

  19. How does this IDE compare to emacs/gud/make/gdb? by pkj · · Score: 3
    I've played with a number of IDEs over the years but I have yet to find anything with the power and flexibility of Emacs, gud, make, gdb, cvs, etc. In fact, I have talked with a number of Cygnus developers over the years, even the people working on the IDE project, and most of them are still using the classical development tools.

    Is there anyone proficient with these classical tools that has ever switched to any formal IDE, commercial or otherwise?

    Btw, I can only laugh at the people asking for an open source IDE -- you've already had one for a decade now...

    -p.

  20. finally, a good IDE for Linux?!?! by nwanua · · Score: 2

    I hope no one's suggesting that:

    several xterms
    + vi (or emacs, or any editor)
    + gdb
    + rcs (and/or cvs)
    + gcc
    + ls, +ld, etc.

    is not an excellent IDE

    that's how I plan to code till I tire of coding

  21. Cygnus alternative by JordanH · · Score: 2

    Check out Cygnus.

    "Cygnus Solutions is the open-source software leader."

    Cygnus has had explosive growth. I would guess that most of their revenues come from support of open-source software. They release and maintain a lot of open-source software.

    Why does Cygnus involve itself in commercial closed-source product development and sales? If open-source has been a model that has provided such a profitable market for Cygnus, what is their rationale for creating and selling closed-source products?

    Has Cygnus actually performed any marketing studies? Do they know, for a fact, that this actually optimizes their earnings? And, what about the long term? Open-source alternatives are being developed. Will Cygnus be able to compete with the open-source alternatives? Especially when selling into the Linux market?

    Time will tell, but I'd like to believe that when open-source alternatives are available, they will ultimately have more features that people need, they will be more stable and I would tend to choose them because I know I can depend on the source if I have a problem and the company peddling it has gone away, or no longer supports the product. I also wonder about releases of this product on different architectures and if I'll ultimately be somehow tied to using some set of Linux distributions to use closed-source products on Linux.

    Don't get me wrong. I appreciate all that Cygnus does for open-source. I would like to understand their approach to the marketplace. If there is real data that supports their hybrid approach, I'd like to know about it. Perhaps Cygnus has studied it and sees that there are limitations to providing open-source support only and that to survive you need commercial closed-source products as well. Their original business model was support of open-source products and I'd like to know why they've modified this.