Join David Gassner for an in-depth discussion in this video Choosing a development environment, part of Java 8 Essential Training.
- Java developers have many tools to choose from. You can, of course, write your code in any text editor, but an IDE, or an Integrated Development Environment, can help you write your code more quickly, and make it more bug-free. Most of the popular IDEs work on multiple operating systems, but there are some effective tools that are specific to Mac or Windows. Here are some editors and development environments that are specifically built from OS 10 on Macs. BBEdit and TextWrangler are products from the company Bare Bones Software.
BBEdit is a commercial product. It requires a paid license. While TextWrangler is more limited, but is free. They both support Java syntax coloring, function scanning, and a certain amount of auto complete functionality. But it's not a specialist IDE for Java. Instead, these products are typically used by developers who are moving around among multiple languages, but want to do all their work in a single editor. On Windows, you could use TextPad.
TextPad is an advanced text editor. It does a lot more than Microsoft's own Notepad, and it's Shareware. To buy a license it's fairly inexpensive, but it isn't completely free. Once again it's a general purpose editor, but it has good support for external tools, so you can integrate the most commonly used Java tools into it, including Java C and Java. JCreator looks a lot like Textpad, but it's specifically built for Java developers.
There's a free light edition know as "LE," and a paid "Pro" edition. But most developers, as I mentioned, are using the top Cross-Platform IDEs. They all have free editions if they aren't completely free, and they all offer effective, fast, and powerful Java functionality. NetBeans was originally created by Sun Microsystems, and it's now owned and managed by Oracle. It has excellent support for Java Enterprise Edition development, and whenever Oracle creates new JEE features, it's a guarantee that NetBeans will support them.
NetBeans also supports C, C++, and PHP, and some distributions include a bundled JEE server to make setup and running of advanced web applications as easy as possible. Many developers use Eclipse with a plugin called the Java Developer Tools, or JDT. When you go to the Eclipse Foundation at eclipse.org, you can download Eclipse distributions that are specifically for Java developers. There's one that is generically for Java, and one that's for Java EE.
Eclipse is a free open source product. So most of what you associate with Eclipse will be free, but there are certain third party plugins that are commercial, and require a paid license. Eclipse comes in many flavors. There are distributions for many programming languages including C++, PHP, and many more. And Eclipse is delivered for Mac, Windows, and Linux. And finally there's IntelliJ IDEA, the IDE that I'll be using primarily in this course.
IntelliJ IDEA is a commercial product, but there's a paid "pro" edition and a free "community" edition. I'll be using the free edition throughout my demonstrations. Once again, there are tools for many programming languages and platforms. And importantly, IntelliJ IDEA is the foundation of Google's Android Studio. Android Studio is essentially a plugin on top of IntelliJ IDEA. So, because many viewers of this course might be learning Java in order to build Android apps, I'll be using IntelliJ IDEA so you can get used to that environment.
And those skills will directly transfer to working in Android Studio. There are other IDEs that I haven't mentioned here, including BlueJ, a student IDE that I will use later in this course, and JBuilder, a product that was originally created by Borland, that at one time had significant market share. But the top cross-platform IDEs that I've mentioned, IntelliJ IDEA, Eclipse, and NetBeans, make up the vast bulk of the current market share for Java IDEs.
- Understanding the history and principles of Java
- Installing Java, IntelliJ IDEA, and BlueJ
- Creating a Java project
- Working with variables, values, and expressions
- Working with object data types
- Building, comparing, and parsing strings
- Debugging and exception handling
- Creating loops and reusable code
- Passing arguments by reference or value
- Using simple and complex arrays
- Creating custom classes
- Understanding inheritance and polymorphism
- Managing files with Java libraries
- Documenting code with Javadoc
- Packaging classes in JAR files