http://www.cc.gatech.edu /classes /cs1322 /ides/index.html

CS1322:
Selecting an Editor

-   C   O   N   T   E   N   T   S  -  

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:
  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


  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.)

     NOTE: 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