CS1322:
Selecting an Editor
I. Summary
II. Flavahs
A. NT Emacs
B. Supercede
C. Cafe
D. Proprietary Binary Executables Offered For Sale By Microsoft Corporation
III. Getting JDK Installed
IV. NT Emacs Installation
I. Summary
|
cs1322 requires students to write original programs and design documents. For the most part, this involves the creation of "java source files", which are simply text files with the ".java" file extension. You can use anything you want to create these text files, but programmers often use "Integrated Development Environments" or 'IDEs' to create these files. IDEs have features that word processors and notepads don't offer. They help programmers become more productive.
There are dozens of IDEs to choose from. What tools you use in creating these files is your business. This page provides information that might help you select an IDE.
Don't yell at the TAs, okay?
|
cs1322 will provide some "support" for a small set of IDEs. Before listing these IDEs, let's think about what the word "support" means in this context. Support does not mean we can answer any fool question about the software. The Teaching Assistants are students just like you. They've all taken cs1322, and done well, but they're not technical support specialists. Chances are, they know a trick or two with a given IDE, but they're not a walking manual. The TAs know about programming. Maybe they know about your chosen IDE. Maybe not. Don't get upset if you have a question about an IDE that goes unanswered.
And another thing: Not all Teaching Assistants are "Super Hero CS Majors" who know everything about everything, OK? Some Teaching Assistants know Supercede really well.
"Supported" means we try to answer questions!
|
Some don't even know how to start it up. Some are adept at vi, some like pico. Now, they all know about programming,, but don't just assume your TA knows all the details about your chosen IDE.
So, before grumbling about how hard it is to write your program, remember that you chose your IDE, and you're stuck with it, buster. If you don't like it, switch. If you can't get your work done, use Notepad. The TAs will help as best they are able, but they're not in the tech support biz.
Know this: cs1322 is about programming, not Java, and certainly now about how to use an IDE. (We can recommend a number of vocational/technical institutes if you wish to learn about using software instead of coding software.)
Supported (there's that word again!) IDEs include:
- Emacs, including:
NT Emacs (Win95/98/NT)
Emacs (All unix flavors)
Xemacs (All unix flavors)
. . . all with the JDE extension and CC mode
-
Supercede 2.x
-
Cafe, including:
Cafe 1.8,
Visual Cafe 2.x and 3.x
II. Flavahs
|
cs1322, Inc., has relevant experience with three major types of IDEs: Emacs (and similar text editors), Supercede, and Cafe. If you select from one of these editors, chances are we'll be able to help you with IDE-related questions. (Or maybe not; see the disclaimer above. This is a programming class, not a training seminar.)
The following notes might help you select an editor.
A. NT Emacs
|
We recommend you use emacs. But we won't make you.
Why use emacs?
<totally-justified-bias-on>
Emacs is the most powerful editor ever created. Period. Emacs is 100% customizable, and is easy to learn. Moreover, emacs is found on almost every Unix machine in the world (except for a few weird ones).
Emacs is the only
editor with its own
religious following.
Consult newsgroup: alt.religion.emacs
for more info
|
Unlike the other editors discussed below, if you learn how to use Emacs, you can use it to program in other languages besides Java. (In fact, Emacs is based on e-lisp, called "the mother of all languages".) Additionally, learning emacs will help you get around acme and get more out of Unix machines.
Emacs also has numerous add-on features. You can use it to read your mail, read news groups, compile programs, and browse the web. If you want to write using a non-Latin alphabet, Emacs also supports international character sets. There's a special add-on for Java that will help you create and debug programs. Moreover, Emacs is available at no cost.
</totally-justified-bias-off>
EMACS FOR WINDOWS
We've assembled two resources to help you set up and install NT Emacs.
You can chose the EXTREMELY HIGH BANDWIDTH page, that REQUIRES the most current version of Netscape. (Sorry, no IE support WHATSOEVER. Maybe it works for IE, maybe it doesn't.) Note that you will need Version 4.5 of Netscape to view this resource; older browsers probably won't work. (For that matter, older browsers don't have the correct version of Java built-in, so you won't be able to use them for your Java applets later in the quarter. You should upgrade, like, now.)
Select the simple text instructions below for tips on installing EMACS for Windows!
EMACS FOR MAC
Attention Macintosh Users. To obtain emacs for the Mac, proceed to Cornell's ftp download site.
ftp://ftp.cs.cornell.edu/pub/parmet/
A more recent version is available from:
http://www.csis.hku.hk/~choi/emacs/index.html
B. Supercede
|
Supercede is a powerful IDE used for commercial Java development, usually those involving native calls, middle wear architecture and database connectivity. It has one of the best debuggers available, hands down. It allows you to edit and change your program while it is running. A few drawbacks include:
"One Phat
debugger"
--a satisfied
customer
|
- Size. Even a simple program can consume 8 megs of disk space. This is because Supercede creates an image of the program in C++, not Java. This improves performance, debugging, and helps development. Size is the penalty.
- Bugs. Let's face it, Supercede is a pig. For such a large program, it works really well. But there are bugs. Most things work appropriately; however, we found too many problems to recommend the program for 'the average cs1322 student'. If you have used IDEs before, and are comfortable working around the odd problem or two, then you might enjoy Supercede.
- Speed. Supercede is very resource intensive. Here's what Supercede's makers say are the minimum machine requirements: 'Pentium 90, 48 Meg RAM, 200 MB Disk space.' We had success getting it to work on the Rich P200s, with only 32 Meg RAM, but it was real pokey. You need a fast computer to get work done with Supercede.
- Speed. Did we mention you need a fast machine? Seriously, this program is not recommended for marginal or low end boxes. Now, if you've got the hardware, we've got the CD. Ask about our site license for Supercede.
C. Cafe
|
<back-in-the-day>
Times used to be that cs1322 used nothing but Cafe. We started with Cafe 1.52, and moved on to version 1.8. We even used it to transition from JDK 1.02 to JDK 1.1. Those were the days.
</back-in-the-day>
  
We ultimately stopped using Cafe for a variety of reasons. First, there were lots of bugs. (Some have been fixed recently; some have not.) Second, Cafe offered limited support for new versions of the JDK. In fact, Symantec only offers JDK 1.1.3 for Cafe version 1.8. (The latest 1.1 JDK is version 1.1.8. The most recent version of the JDK is 1.3, also called "Java 2".)
Cafe is
popular
(and you will
be too . . .)
|
The last straw was the inability to effectively combine Cafe's debugger with file redirection. This made it difficult to use cs1322 debugging techniques in Cafe.
If you use Cafe with an older version of the JDK, you are guaranteed to hit some bugs. You can work around them. Many of the veteran TAs know all about the problems, too.
So why would anyone select Cafe? Well, it has a really nice interface, and a slick editor. Plus, lots of cs1322 alumni/ae used Cafe, and recommended it to their friends. The 'in crowd' uses Cafe. Friends donate Cafe to friends. There's just lots of old copies being sold and resold, evidently. (We offer no opinion as to the propriety of these purely private, non-University endorsed arrangements.)
If you decide to use Cafe, take note of the following. The JDK that ships with Cafe 1.8 is old and buggy. Symantec, Cafe's maker, no longer supports version 1.8, so you're stuck. A few people seem to think that you can just rip out the old JVM and replace it with Sun's newer JDK. Well, they're wrong. This ultimately blows up on you.
If you have Cafe version 1.8, please don't use it for compiling or running programs. (It might work; it might not. How will you know if the bugs are Cafe's fault or your own?) If you use Cafe as your editor, but compile at a command prompt using the JDK, you can avoid many of the problems.
D. Proprietary Binary Executables Offered For Sale By Microsoft Corporation
|
Unfortunately, we cannot recommend compilers created by Microsoft
Corporation. The compilers created by this corporation generate
anomalous byte code. Until recently, Microsoft Corporation shipped a
development kit based on non-standard Java. Although it appears
Microsoft Corporation has stopped this practice, their compiler
remains problematic. Browse some of the Java newsgroup archives for
examples of perfectly valid, simple Java programs that are
incorrectly handled by Microsoft Corporation's compiler. (In
particular, you might look for an example of a factorial problem that
Microsoft Corporation's compiler calculates incorrectly!)
J++ is either a trademark or
a registered trademark of Microsoft Corporation.
|
This is unfortunate, since Microsoft Corporation makes nice tools.
Their Visual J++ 6.0 has one of the best interfaces for Java
development. Unfortunately, the compiler that comes with J++ cannot
be trusted to create valid byte code. Since you only have to turn in
source code, you could use Microsoft Corporation's products as
editors. In such a case, do remember to test your code under JDK 1.3
(a/k/a "Java 2"). That's what your TA is using.
TRADEMARKS. Microsoft, Windows, Windows NT, MSN, The
Microsoft Network and/or other Microsoft products referenced
herein are either trademarks or registered trademarks of
Microsoft. Other product and company names mentioned herein
may be the trademarks of their respective owners.
III. Getting JDK Installed
|
Regardless of the IDE you choose, you will need to use the Java Developer's Kit ("JDK") from Sun. Your programs and labs will be graded using the JDK. If your program works under your IDE, but fails to work using the JDK, then we consider your program to be 'non-working.' (This is usually 0 points for implementation; consult the applicable grading criteria for details.)
Even if your program works in your IDE, it may not work with JDK. Why? Well, some IDEs are very forgiving of mistakes, and will run a program even though it has some basic errors. cs1322 is not so forgiving. Your program must compile and run using JDK 1.3. If you use an IDE to develop your code, be sure to test it using the JDK first!
Let's state that one more time to make sure everyone got
it: YOUR CODE MUST COMPILE AND RUN UNDER SUN'S JDK 1.3. THERE ARE NO EXCEPTIONS.
You can obtain a copy of JDK 1.3
from:
http://www.javasoft.com/products/jdk/1.3/
You can get help on installing JDK from the JDK section of the cs1322 Website. Just click the Java Resources link on the menu bar.
Submit Libel Inquiries to: dagon@cc.gatech.edu.
© 1998 Georgia Institute of Technology - Yada yada yada. Our rights, not yours. Mine, mine, mine. Lawyers sue. Blah blah.
Last modified: Sun Nov 21 12:50:28 EST 1999