Programming Tutorials Browser Tutorials Articles Struts Tutorials Hibernate Tutorials

  Tutorial: GNU offers a new kind of Java IDE - JavaWorld - July 1998

GNU offers a new kind of Java IDE - JavaWorld - July 1998

Tutorial Details:

GNU offers a new kind of Java IDE
GNU offers a new kind of Java IDE
By: By Mariva H. Aviram
The Free Builder Project is 100 percent pure Java, nonproprietary, and free
easoned programmers and hackers are well aware that often the best things -- or at least potentially the best things -- are free. If you're interested in a new integrated development environment (IDE) for Java, consider avoiding shrinkwrap, price tags, and encrypted proprietary code. Instead, consider the Free Builder Project, a public-domain Java IDE licensed under the Free Software Foundation's GNU's Not Unix! (GNU) General Public License (GPL). As with many GNU projects, the Free Builder Project (hereafter referred to as FB ) software and documentation are available for free. And since the source code is publicly available, if you want something added to or changed in the software, you have an opportunity to do it yourself.
FB currently offers a working prototype for Linux and Windows 95/NT that includes a customizable visual tool interface, a text editor that supports compiler error messages, a compiler module, and debugging support. Some components and features currently in development include a project manager, a background parser, a class analyzer, a multithreaded debugger, a visual component builder, JavaBean support, and support for mpEDIT -- which adds syntax coloring and enables the use of EditBeans. (An EditBean is a a simple editor bean that returns strings and processes text; see Resources for more on these.)
Free Builder, a working prototype of an open-source Java IDE, provides a visual interface that can be customized
(Click for full-size image)
The origins of Free Builder
A team of volunteer Java programmers has been working on FB for over a year. The Free Builder Project was initiated by Ivelin Atanasoff Ivanov, a resident of Sofia, Bulgaria, and currently the software development department manager for Macrotex -- a U.S.-Bulgarian company developing specialized security software packages for Fortune 500 companies and the mass market. Ivanov started FB in February 1997, right after Sun Microsystems first published JDK 1.1. Ivanov organized the FB Web site and developed the first public version v.0.4.97, which was released on April 1, 1997.
Then, in November 1997, George Petkov and Peter Radkov, both working at Vanand Ltd. in Sofia, formed a new FB team and reengineered the entire Free Builder Project from scratch. In March of this year, Petkov and Radkov published the first screenshots of the new FB in development, which generated significant interest from the Java development community -- 20,000 downloads since this version first appeared. Specifically, developers requested that the source code be made available to the public.
FB promises to eventually deliver a worthy Java IDE, but before you get excited enough to download FB and get to work, be warned that it is still in a very early stage of development. Bugs and glitches are numerous, yet often simple to fix. In fact, the current FB code is only a prototype for the final product -- so downloading, configuring, and using FB is like being in the alpha-testing lab.
The FB development process
According to George Petkov, project leader at Vanand Ltd. in Sofia, FB is currently a working prototype -- a basis upon which new tools must be built, added, and modified. For example, FB includes a JavaBeans palette but no visual design tool, and the editor requires a lot of work. Like many GNU projects, FB represents an "as we go" development process. Instead of a top-down, initial-blueprints-to-final-testing-stage approach, the FB developers decide what needs to be done next, develop the feature, test it, and move on to the next decision. This flexible approach makes for powerful development, often covering the needs of many developers instead of following marketing trends and designing for profit. There are two disadvantages: that there is no official production schedule, and product support is shaky at best.
FB has some logistical problems with regard to its development, as do most GNU projects. For example, although the FB team maintains a GNUish atmosphere of flexibility, the developers are all volunteers -- so they work on FB when they can, and not according to a production schedule. As a consequence, the development of FB has been a slow process, and FB has never had an official release date.
Petkov began working on Version 07 of FB after he finished another IDE-development project using Delphi/Pascal. He had written a Pascal compiler that produced Java-like bytecode that is interpreted. As with Java, the code used a stack machine and was therefore not designed for a specific platform. Although the development of FB required completely different coding and instructions, Petkov used his IDE-development experience as a template for the GNU project.
During the process of designing and programming the various components of FB, Petkov had to learn some of the basics of Java development -- including the purpose and structure of a bean, serializing some objects, working with interfaces, and the benefits of a garbage collector.
The cons (and pros) of FB
Despite FB's importance to the Java development and free software communities, not all Java developers are convinced that IDEs are a good thing in general. Carl Muckenhoupt, a former EarthWeb developer who now does consulting work for the company, outlines the problems with IDEs.
Limited choice of development apps
First, Muckenhoupt explains, an IDE limits a programmer's choice of development applications. For example, someone who prefers to use emacs as the source code editor -- and has developed a custom emacs configuration over a long period of time -- can't take advantage of it when using an IDE. Muckenhoupt feels that the editors in IDEs are generally inferior to a custom-designed one -- so a substitution of the IDE's built-in tools may take developers several steps back in convenience and usability.
FB is constructed from JavaBeans -- so, theoretically, it should be easy to swap in an alternate editor bean. Even if this works, a programmer must choose from Java-based editors, and unfortunately these are neither the best nor the most popular editors.
Single process problems
Second, an IDE often runs as a single process. Because of this, any individual component (such as the debugger) that crashes creates a chain-reaction and crashes the entire application. This can be disruptive and even destructive if a programmer has five or six files open at the time -- not an uncommon situation for a large Java project. The programmer is then forced to reopen all of the files following the crash of a single component.
Fortunately, FB does not have this problem. When Run or Debug is selected, it starts a project as a separate process -- so each project can be terminated without crashing the entire application.
Problems peculiar to IDEs
Third, IDEs present particular problems to development teams. IDEs typically have their own built-in project management systems, which means that if several developers are working on a project, they must either all use the same IDE, which limits the choice of tools for all the programmers, or set up the same project files, which is redundant. In addition, it's difficult to start or stop using a particular IDE in mid-development, which is not a problem with non-IDE programming tools.
GUI avoidance
Lastly, Muckenhoupt, like many programmers, avoids using GUIs altogether. "Although they shorten the learning curve," he explains, "they generally make any sufficiently complicated task either difficult or impossible. If you try to put everything in a box, you'll eventually hit a point where you need to go outside that box." Muckenhoupt feels that FB compounds this problem by virtue of its being 100 percent platform-independent Java -- it can't support the integration of native code. An established, proprietary IDE like Symantec's Visual Café has the same conceptual problems as FB, but it is much more usable at this point.
But even a skeptic like Muckenhoupt concedes that FB represents a step in the right direction. The fact that the source code is available and that FB uses beans allows for a relatively easy way to drop in custom-made components -- thus returning some of the freedom that IDEs take away from the programmer. In addition, FB runs under Linux, which is an option often welcomed by programmers -- especially those who appreciate nonproprietary code.
Petkov provides some convincing arguments for using an IDE, and FB in particular. One obvious advantage of using an IDE is that developers can quickly navigate the large number of files present in a project. An IDE organizes Java packages into directories, which makes it easy to see the package structure within a tree and choose individual files. Since Java itself does not provide a method of prototyping, an IDE allows a programmer to see methods, properties, and fields of a class, rather than just implementations. FB in particular allows the documentation of a class to be viewed in a Web browser. Petkov also believes that IDEs make for much easier debugging and visual programming.
Conclusion
If FB intrigues you, you may download the software, read the documentation, and consider joining the development team or contributing to the project. A good way to start is by joining the 100-plus-subscriber FB mailing list, which apparently has a high signal-to-noise ratio in terms of useful and productive discussions. The FB team carefully considers all ideas, suggestions, and valid criticisms, and welcomes new volunteers and testers.
This page formated for crawlers and browsers that don't support scripts and tables.
Home
EZone


 

Read Tutorial at: Click here to view the tutorial

Rate Tutorial:
GNU offers a new kind of Java IDE - JavaWorld - July 1998

View Tutorial:
GNU offers a new kind of Java IDE - JavaWorld - July 1998

Related Tutorials:

3D graphics programming in Java, Part 3: OpenGL
3D graphics programming in Java, Part 3: OpenGL
 
Ilog JRules 4.0: Working by the rules
Ilog JRules 4.0: Working by the rules
 
Best tools for mobile application development
Best tools for mobile application development
 
Quite poor testing
Quite poor testing
 
JHttpTunnel
JHttpTunnel is the implementation of GNU httptunnel\'s protocol in pure Java.
 
SpeedJG - XML Builder
SpeedJG - XML based Java Swing GUI Builder
 
Eclipse 3.0 is out
Eclipse 3.0 is out Welcome to eclipse.org Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.
 
Software Download Central compatible.
GNU getopt - Java port A while back I found myself in need of a Java command line option parser. Unsatisfied with free versions I was able to find on the net, I volunteered to port the GNU getopt family of functions from C to Java. The current release
 
Bridging the Gap: J2SE 5.0 Annotations
Bridging the Gap: J2SE 5.0 Annotations It takes a long time for the Java community to fully absorb a major new JDK release; it seems to take about two more releases after a brand new version of the JDK before everything settles down. Application server v
 
JSPTags.com offers JSP developers a directory of resources.
JSPTags.com offers JSP developers a directory of resources related to JavaServer Pages, Servlets and Java. As the name JSPTags.com implies, special interest is given to JSP Tag Libraries. Many developers are working with and designing new JSP Tag Librarie
 
Atricle Struts, JavaServer Faces, and Java Studio Creator:
The Evolution of Web Application Frameworks Sun Microsystems' Craig McClanahan, the creator of the Apache Struts Framework, co-specification lead for JavaServer Faces 1.0, and prime architect for Sun Java Studio Creator's new release, explains all three.
 
Develop MIDlets using the J2ME MIDP Development for NetBeans IDE 4.0
This release integrates with the J2ME Wireless Toolkit 2.2 to create a powerful environment for developing MIDP 2.0 applications.
 
Struts, JavaServer Faces, and Java Studio Creator:
The Evolution of Web Application Frameworks Sun Microsystems' Craig McClanahan, the creator of the Apache Struts Framework, co-specification lead for JavaServer Faces 1.0, and prime architect for Sun Java Studio Creator's new release, explains all three.
 
Buy Fedora Core 3 Linux CD's in India.
Buy Fedora Core 3 Linux CD's in India. Fedora Core 3 Linux Now Available Fedora Core 3 CD's We are providing the free downloadable version of Fedora Core 3 Linux CDs, which is distributed under GNU public license. ABOUT FEDORA Fedora is the
 
We are providing Free BSD 5.3 CD's
We are providing Free BSD 5.3 CD's Free BSD 5.3 CD's Now Available Free BSD 5.3 CD's What is Free BSD 5.3? FreeBSD is an advanced operating system for x86 compatible, DEC Alpha, and PC-98 architectures. It is derived from BSD, the version of
 
We are providing Downloadable Version of Mandrake 10.1 Official Edition Linux CD's.
We are providing Downloadable Version of Mandrake 10.1 Official Edition Linux CD's. Mandrake 10.1 Official Edition Linux Now Available Mandrake 10.1 Official Edition CD's Mandrakelinux 10.1 Official is a new-generation Linux operating system for
 
We are providing Downloadable Version of Mandrake 10.1 Power Pack Linux CD's.
We are providing Downloadable Version of Mandrake 10.1 Power Pack Linux CD's. Mandrake 10.1 Power Pack Linux Now Available Mandrake 10.1 Power Pack CD's Power Pack is a Linux system that will appeal to all advanced users. It's great for Office
 
UltraLightClient Community Site
Community-driven Wiki site for UltraLightClient Code Snippets and Contributions If you want to contribute, please go to Register as Committer. There is no support for the content on this site by Canoo. Committers agree that the code can be used free of c
 
NetBeans IDE 4.1
Out-of-the-box support for J2EE 1.4 and Web Services. Check out what early access release 2 can do for you!
 
Easy Emulation With New NetBeans Mobility Pack 4.0
With the click of a button, switch back and forth between different emulation environments while developing one set of code. It's never been this easy to take advantage of Java technology's cross-platform capabilities.
 
Site navigation
 

 

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2006. All rights reserved.