Evergreen is one of the programs that Pike developed over the years at Bell Labs. Pike explains the use of an evergreen metaphor by observing, “I like to make things that last.” The name comes from the evergreen tree in Pike’s yard at the Bell Labs building where he did his work. He was fond of the tree because it was cut back at a regular interval and would regenerate itself. The name also fits the idea of evergreen software, which is able to adapt to new platforms and technologies without requiring too much updating.
Evergreen is developed as a Java program, running on the Solaris platform. Its user interface is written in Java as well, though all of its code is written in C and Bourne-again shell scripts. It has been developed using the Java platform’s development tools, running on all modern Java-enabled platforms. It works on all Microsoft Windows and Unix-like operating systems, using the Java runtime environment (JRE) included with those platforms.
There are several goals that Evergreen is designed to fulfill. In the first place, Evergreen is written entirely in Java. It should run on most Java-enabled platforms, and it should be easily portable to those platforms. The second goal is to use Java-based programming languages and the Java programming tools to implement as much of the software as possible. This allows Evergreen to be easily ported to different platforms and used by many developers. As Java has become more widely used, it is more common to find it used in larger software projects. Most of these projects use Java as a way to code and distribute software.
The third goal of this project is to use a commercial-grade development tool (not part of the free Java release) to produce the software. This is not a traditional Unix tool. It gives Evergreen a consistent look and feel across platforms, and the ability to quickly produce updates on all platforms. We chose to use the Eclipse development tool because we value its industry-leading features for large software projects. We also choose Java because it is so widely used. We feel this combination of technology, tool, and developer community will produce the most successful results.
The fourth goal of this project is to encourage reuse of code. Evergreen will use standard Java interfaces for “portable programming” with other projects. It will use Java classes for everything that is not inherently a Java interface, which should make Evergreen easier to use in portable projects. The final goal is to use appropriate development practices. Evergreen will treat code as a
“EVERGREEN is an open source text editor for the Java platform. It is built to be a modern high performance text editor for Java desktop applications.
EVERGREEN leverages standard tools for text editing like a rich text editor for Java, (and other platforms), a diff mechanism, and a full color LCD capable of displaying text.
The platform includes GUI elements that are familiar to Java developers. The GUI is built around a layout that is far more useful and usable than the standard text-only or character-based GUI.
Evergreen is built to replace large amounts of text editing code that is part of current Java applications.
As of version 0.6.7, Evergreen offers a regex text and expression editor. The newly added “diff” capability allows Evergreen to output text and diffs in XML format which is supported by most Java IDEs, and other tools.
A variety of UNIX and Windows specific features are also built into the core of the system. These include shell and alias, inotify, pwd, find, cvs and other source code control tools, built in shell history, and back/forward file history.
Evergreen is written in Java, and can be built on almost any platform supported by the Java Runtime Environment (JRE) with the right JAR files.”
Tim Wien has an Evergreen clone called Laplink, and a GUI application called vi-like he wrote in Java.
2003-12-26 – Version 0.0.1
Add type interpolator, add history of last 10 commands to command list
Allow arguments to skip past the first iteration of find, if used with cvs or rev.
2003-10-31 – Version 0.0.2
Add backspace in register 0
Add commands which can be repeated using C-u in register 0
2003-10-31 – Version 0.0.3
Support for Tim Wien’s Evergreen project
2003-11-05 – Version 0.0.4
Fix a recent change in the frequency of the find command’s window being rebuilt
2003-11-05 – Version 0.0.5
Add a message if an interrupted find cannot find a file
2003-11-06 – Version 0.0.6
Improve find’s handling of filenames which contain only blanks
The Evergreen editor reimplements Rob Pike’s Acme editor in Java. It supports multiple projects and branches, a tiled window layout, WYSIWYG, multiple cursors, line numbering, fuzzy searching, and code completion.
The main features are: the familiar tiled window layout, multi-project support, ability to edit arbitrary text files, and use of external programs.
Besides re-implementing C/C++ compiled text files, additional differences include:
* It’s written in Java instead of Perl/Python.
* It uses the ‘natural’ line-ending format, not Unix’s ‘C’ format.
* It has a single implementation in Java instead of two, one for Unix and one for Windows.
* It supports regular expressions instead of C/C++’s straight-up characters
* It has Unicode support, including lots of codepoints that are rarely used (or not used at all) on standard Unix machines.
* It uses the Charset mechanism for Unicode, eliminating the Unicode character list issue on Windows.
The original Acme editor was written in C/C++ on Plan 9.
Evergreen was written in Java on Unix/Windows, and uses external programs instead of reimplementing everything from first principles (at least, as much as possible).
Efficiency-wise, it runs on modern machines/Linux/OS X, but may not on the very old machines.
* Add more details to the comparison!
* How to bring change list back to editor window:
– move the change list to the top of the display, and then use the mouse buttons to scroll
– change selection if needed (move focus to Change list)
– scroll to change list
– move back to editor
* Adding a ‘diff’ engine for multi-project support:
– move all changes in each project as they are made to any other project
– show the added, removed, and updated lines as side-by-
Windows XP, Vista, Windows 7, Windows 8, and Windows 10 (all supported operating systems will run)
DirectX 9.0c compatible video card
Laptop or Desktop computer
Internet connection (to download the game)
The game requires 100MB of free space on the computer’s hard drive
Please have an appropriate sound card installed on your computer to play the game.
The game requires Microsoft Windows OS, 2GB of RAM, and a video card to run.