The links below are to resources available on the Internet. They were valid at the time of writing, but (the Net being what it is) they may well be out of date by the time you read this. If so, you could try a general search for the filenames, or come to the Pragmatic Programmer Web site (www.pragmaticprogrammer.com) and follow our links.
Emacs and vi are not the only cross-platform editors, but they are freely available and widely used. A quick scan through a magazine such as Dr. Dobbs will turn up several commercial alternatives.
Both Emacs and XEmacs are available on Unix and Windows platforms.
www.gnu.org
The ultimate in big editors, containing every feature that any editor has ever had, Emacs has a near-vertical learning curve, but repays handsomely once you've mastered it. It also makes a great mall and news reader, address book, calendar and diary, adventure game, .
www.xemacs.org
Spawned from the original Emacs some years ago, XEmacs is reputed to have cleaner internals and a better-looking interface.
There are at least 15 different vi clones available. Of these, vim is probably ported to the most platforms, and so would be a good choice of editor if you find yourself working in many different environments.
ftp://ftp.fu-berlin.de/misc/editors/vim
From the documentation: "There are a lot of enhancements above vi: multi level undo, multi windows and buffers, syntax highlighting, command line editing, filename completion, on-line help, visual selection, etc."
www.fh-wedel.de/elvis
An enhanced vi clone with support for X.
http://www.cs.sunysb.edu/~kifer/emacs.html
Viper is a set of macros that make Emacs look like vi. Some may doubt the wisdom of taking the world's largest editor and extending it to emulate an editor whose strength is its compactness. Others claim it combines the best of both worlds .
www.fsf.org/software/gcc/gcc.html
One of the most popular C and C++ compilers on the planet. It also does Objective-C. (At the time of writing, the egcs project, which previously splintered from gcc, is in the process of merging back into the fold.)
java.sun.com
Home of Java, including downloadable SDKs, documentation, tutorials, news, and more.
www.perl.com
O'Reilly hosts this set of Peri- related resources.
www.python.org
The Python object-oriented programming language is interpreted and interactive, with a slightly quirky syntax and a wide and loyal following.
SmallEiffel.loria.fr
The GNU Eiffel compiler runs on any machine that has an ANSI C compiler and a Posix runtime environment.
www.eiffel.com
Interactive Software Engineering is the originator of Design by Contract, and sells a commercial Eiffel compiler and related tools.
www.icsi.berkeley.edu/~sather
Sather is an experimental language that grew out of Eiffel. It aims to support higher-order functions and iteration abstraction as well as Common Lisp, CLU, or Scheme, and to be as efficient as C, C++, or Fortran.
www.objectshare.com
Home of the VisualWorks Smalltalk environment. Noncommercial versions for Windows and Linux are available for free.
squeak.cs.uiuc.edu
Squeak is a freely available, portable implementation of Smalltalk-80 written in itself; it can produce C code output for higher performance.
www.gerbil.org/tom
A very dynamic language with roots in Objective-C.
www.beowulf.org
A project that builds high-performance computers out of networked clusters of inexpensive Linux boxes.
www.reliable-systems.com
Design by Contract formalism of preconditions, postconditions, and invariants, implemented as a preprocessor for Java. Honors inheritance, implements existential quantifiers, and more.
www.cs.ntu.edu.au/homepages/pjm/nana-home/index.html
Improved support for assertion checking and logging in C and C++. It also provides some support for Design by Contract.
www.cs.tu-bs.de/softech/ddd
A free graphical front end for Unix debuggers .
st-www.cs.uiuc.edu/users/brant/Refactory
A popular refactoring browser for Smalltalk.
www.zib.de/Visual/software/doc++/index.html
DOC++ is a documentation system for C/C++ and Java that generates both and HTML output for sophisticated online browsing of your documentation directly from the C++ header or Java class flies.
www.XProgranming.com
A simple but powerful concept, the xUnit unit testing framework provides a consistent platform for testing software written in a variety of languages.
www. scriptics .com
Tcl ("Tool Command Language") is a scripting language designed to be easy to embed into an application.
expect.nist.gov
An extension built on Tcl [URL 23], expect allows you to script interaction with programs. As well as helping you write command flies that (for example) fetch files from remote servers or extend the power of your shell, expect can be useful when performing regression testing. A graphical version, expectk, lets you wrap non-GUI applications with a windowing front end.
www.almaden.ibm.com/cs/TSpaces
From their Web page: "T Spaces is a network communication buffer with database capabilities. It enables communication between applications and devices in a network of heterogeneous computers and operating systems. T Spaces provides group communication services, database services, URL-based file transfer services, and event notification services."
www.metamata.com/javacc
A parser generator that is tightly coupled to the Java language.
www.gnu.org/software/bison/bison.html
bison takes an input grammar specification and generates from it the C source code of a suitable parser.
www.swig.org
SWIG is a software development tool that connects programs written in C, C++, and Objective-C with a variety of high-level programming languages such as Perl, Python, and Tcl/Tk, as well as Java, Eiffel, and Guile.
www.omg.org
The OMG is the steward of various specifications for producing distributed object-based systems. Their work includes the Common Object Request Broker Architecture (CORBA) and the Internet Inter-ORB Protocol (IIOP). Combined, these specifications make it possible for objects to communicate with each other, even if they are written in different languages and run on different types of computers.
www.gtlinc.com/Products/Uwin/uwin.html
Global Technologies, Inc., Old Bridge, NJ
The UWIN package provides Windows Dynamic Link Libraries (DLLs) that emulate a large portion of the Unix C level library interface. Using this interface, GTL has ported a large number of Unix command-line tools to Windows. See also [URL 31].
sourceware.cygnus.com/cygwin/
Cygnus Solutions, Sunnyvale, CA
The Cygnus package also emulates the the Unix C library interface, and provides a large array of Unix command-line tools under the Windows operating system.
www.perl.com/pub/language/ppt/
A project to reimplement the classic Unix command set in Perl, making the commands available on all platforms that support Perl (and that's a lot of platforms).
prep.ai.mit.edu
GNU source code control system for Unix and Windows NT.
www.cvshome.com
Freely available source code control system for Unix and Windows NT. Extends RCS by supporting a client-server model and concurrent access to files.
http://www.canb.auug.org.au/~millerp/aegis.html
A process-oriented revision control tool that imposes project standards (such as verifying that checked-in code passes tests).
www.rational.com
Version control, workspace and build management, process control.
www.mks.com
Version control and configuration management. Some versions incorporate features allowing remote developers to work on the same files simultaneously (much like CVS).
www. merant .com
A source code control system, very popular for Windows systems.
www.microsoft.com
A version control system that integrates with Microsoft's visual development tools.
www.perforce.com
A client-server software configuration management system.
www.winzip.com
Nico Mak Computing, Inc., Mansfield, CT
A Windows-based file archive utility. Supports both zip and tar formats.
sunsite.auc.dk/zsh
A shell designed for interactive use, although it is also a powerful scripting language. Many of the useful features of bash, ksh, and tcsh were incorporated into zsh; many original features were added.
samba.anu.edu.au/pub/samba/
Samba lets you share files and other resources between Unix and Windows systems. Samba includes:
An SMB server, to provide Windows NT and LAN Manager-style file and print services to SMB clients such as Windows 95, Warp Server, smbfs , and others.
A Netbios nameserver, which among other things gives browsing support. Samba can be the master browser on your LAN if you wish.
An ftp-like SMB client that allows you to access PC resources (disks and printers) from Unix, Netware, and other operating systems.
www.cyberdyne-object-sys.com/oofaq2
A substantial and well-organized FAQ for the comp.object newsgroup.
www.XProgramming.com
From the Web site: "In XP, we use a very lightweight combination of practices to create a team that can rapidly produce extremely reliable, efficient, well- factored software. Many of the XP practices were created and tested as part of the Chrysler C3 project, which is a very successful payroll system implemented in Smalltalk."
members .aol.com/acockburn
Look for "Structuring Use Cases with Goals" and use case templates.
ourworld.CompuServe.com/homepages/martin_fowler
Author of Analysis Patterns and co-author of UML Distilled and Refactoring: Improving the Design of Existing Code. Martin Fowler's home page discusses his books and his work with the UML.
www.objectmentor.com
Good introductory papers on object-oriented techniques, including dependency analysis and metrics.
www.pare.xerox.com/csl/projects/aop/
An approach to adding functionality to code, both orthogonally and declaratively .
java.sun.com/products/javaspaces
A Linda-like system for Java that supports distributed persistence and distributed algorithms.
www.mozilla.org
The development source of the Netscape browser.
www.jargon.org
Eric S. Raymond
Definitions for many common (and not so common) computer industry terms, along with a good dose of folklore.
www. tuxedo .org/~esr
Eric's papers on The Cathedral and the Bazaar and Homesteading the Noo-sphere describing the psychosocietal basis for and implications of the Open Source movement.
www.kde.org
From their Web page: "KDE is a powerful graphical desktop environment for Unix workstations. KDE is an Internet project and truly open in every sense."
www.gimp.org
Gimp is a freely distributed program used for image creation, composition, and retouching.
www.ccs.neu.edu/research/demeter
Research focused on making software easier to maintain and evolve using Adaptive Programming.
www.gnu.org
Free Software Foundation, Boston, MA
The Free Software Foundation is a tax-exempt charity that raises funds for the GNU project. The GNU project's goal is to produce a complete, free, Unix-like system. Many of the tools they've developed along the way have become industry standards.
www. netcraft .com/survey/servers.html
Links to the home pages of over 50 different web servers. Some are commercial products, while others are freely available.