TER Volume 14, Number 1, June 2007: Review of IntelliJDEA

Technology Electronic Reviews
Volume 14, Number 1, June 2007

~ Return to more reviews in this issue

REVIEW OF: Duane K. Fields, Stephen Saunders and Eugene Belyaev. (2006) IntelliJ IDEA in Action. Greenwich, CT: Manning Publications Co. (ISBN: 1932394443 ; 9781932394443). 450 pp. $44.95.

By Theresa Kelly Darr

IDEA -- often referred to as IDE (Integrated Development Environment) -- is an all-encompassing development environment for creating Java applications. Among other elements, it has a combination of tools that can compile, assemble, debug, run and track source code.

IntelliJ IDEA in Action is a reference guide for the IDEA software aimed at Java developers with some experience. This book is not a Java instruction guide. (JetBrains introduced the first version of IDEA in January 2001. This reference book is about the fifth generation of the software.) Authors Fields and Saunders are software and web application experts; Belyaev is the cofounder, president and chief technology officer at JetBrains. It fits in nicely with the other publications from the publisher Manning Publications Company whose specialty is computer programming.

IDEA was created with a philosophy of built in intelligence with strong usability that allows the software to "think like a developer." The emphasis is on the Java project as an organizational unit and according the authors, it manages "every phase of the project from design and development to testing and deployment." Collaboration is an important part of the process for the authors and the JetBrain staff through an early access program and online forums. The developer using IDEA has a seemingly unending number of options to create the best possible end product.

The book follows the same tenets and intended spirit as the IDEA development environment; it is flexible, readable, usable, detail rich, linear and intelligent. The writing style is casual, clear and free from unnecessary jargon. It follows an effective pattern of explaining large, important concepts generally then breaking the important parts down into smaller, more usable segments.

Readability and usability is enhanced by a broad contents listing at the beginning of each chapter. The back of the book index is highly detailed and the table of contents at the front breaks down each chapter by important keywords and concepts. The appendix, entitled "Getting Help with IDEA" clearly outlines what help is available within the integrated help text and online. The important aspects of the chapter are summarized at the end by the authors.

The editing and visual presentation of print reference guides is always critical and this book does not disappoint. There is ample bolding of commands, new vocabulary and other important terms within the chapter text. Screen shots are appropriate and effective to illustrate various aspects of the interface.

It is always a challenge to be as up-to-date as possible in books where the technology is changing rapidly. Blocked areas within the text entitled, "IDEA 5" give a quick update of changes from version 4.0 to this new version 5.0. Many of these changes are relatively minor and are generally enhancing of the developer’s experience with IDEA. There are many "Warning!" paragraphs within the main text give sensible advice for common misconceptions and errors before they happen.

This thirteen-chapter book is meant for readers with a wide range of experience with Java applications. For first time users, the first three chapters of this book should be read in their entirety. More experienced users can skip around throughout the book to the information that suits their individual needs. The authors use a realistic project example throughout the book to illustrate IDEA in a practical way: building a Java application that provides currency exchange estimations based on exchange rates obtained from an undefined service. This serves as a realistic unifying thread.

Chapter 1 is a careful instruction in installing and running IDEA and a thorough review of the interface. Particularly important for new users is the explanation in how to create, build and run a software development project.

The editor is such an important part of IDEA that two chapters are spent on the concept. Chapter 2 introduces the IDEA editor concept; critically important to making any project a reality. In that light, the book spends half of the chapter thoroughly reviewing the editor’s interface and the second half on practical uses for the editor through the currency example used throughout the book. Chapter 3 really places the editor at the "heart" of IDEA and where the software’s intelligence lies; giving useful, intuitive, real-time coding assistance to developers.

Chapters 4-8 are a nuts and bolts project management guide for building, running, and testing Java applications. The discussion is completely comprehensive and covers a myriad of issues, including debugging, maintaining logic, module management, version control systems and coding issues.

Fields and his team are upfront about their software by keeping their dialog realistic to the front-line coders and programmers. Integration with popular open source systems is an important priority and adds to the flexibility and usability of IDEA. The book covers the most common open source tools like Ant, a tool for building and packaging Java projects that can be used with IDEA in chapter 5, "Building and running applications." The important task of debugging is comprehensively explained in Chapter 6 with a discussion of the concept and then practical ways to use IDEA through the process that can obviously determine project success or failure.

Chapters 7 and 8 are solely devoted to open source integration topics with IDEA. Chapter 7 focuses on testing applications with JUnit. This integration using JUnit means that tests can be written, managed and run within the IDE. Chapter 8 solely focuses on version control and the use of the most popular system used by developers, Concurrent Versioning System (CVS).

The final chapters are more advanced concepts including Swing applications and J2EE applications. Chapter 10, "Developing Swing applications" assists the developer in creating and managing graphic user interfaces (GUIs). Chapter 11 covers the development of J2EE applications that work with web content.

Chapter 12 is about the customization of IDEA. The developer can work in the best environment possible for them. The project settings allow the user to change the current project variables, including version control, debugging preferences and the appearance and arrangement of the icons.

IntelliJ IDEA represents an innovative way to manage Java applications from the broad perspective of a project. The myriad of overlapping issues that confront programmers can be easily managed within the parameters of IDEA.

A trial download of version 6.0.5 can be obtained from the JetBrains web site at http://www.jetbrains.com/index.html. A full overview, tutorials and current development information is also available on the web site.

Theresa Kelly Darr, MLS is the librarian at the Foundation School in Largo, MD.

Copyright © 2007 by Theresa Kelly Darr. This document may be reproduced in whole or in part for noncommercial, educational, or scientific purposes, provided that the preceding copyright statement and source are clearly acknowledged. All other rights are reserved. For permission to reproduce or adapt this document or any part of it for commercial distribution, address requests to the author.


Technology Electronic Reviews (TER) is an irregular electronic serial publication of the Library and Information Technology Association, a division of the American Library Association, 50 E. Huron St., Chicago, IL 60611. The primary function of TER is to provide reviews of and pointers to a variety of print and electronic resources about information technology. Resources include books, articles, serials, discussion lists, training materials, bibliographies, and other items of interest to librarians and information technology professionals. The topics covered may include, but are not limited to, networking technologies and standards; hardware and software; operating systems; databases; specific programming languages; management tools and utilities; technical project management; training and personnel issues; library perspectives; and research and development.

Opinions expressed in this publication are those of the writers and do not necessarily represent the viewpoints of LITA, ALA, or organizations involved in the storage and/or distribution of the publication.

TER is distributed electronically via Internet. There is no subscription fee.


LITA provides its members, other ALA divisions and members, and the library and information science field as a whole with a forum for discussion, an environment for learning, and a program for action on the design, development, and implementation of automated and technological systems in the library and information science field.


LITA home page | TER home page