Hello,
As I just finished my first (small) project in Eagle, I want to express some thoughts on how the program could be improved, especially from the point of view of a new user who did not gave up after his first contact with the software (as probably many other did!). Although I read that an upcoming V6 is under way, however I have no hopes that CadSoft would take my suggestions seriously (it's probably too late anyway); in this respect, you can see my post as an exercise in futility…
First, some relevant information about myself: although I am a newcomer to Eagle, I have a large engineering experience in electronics and software development. During the mid-eighties I led a small team who designed a PCB layout program on a graphical CP/M machine (using a mouse!); by the end of the eighties I jumped on Orcad, then in the nineties on Accel Technology's Tango suite (under DOS), and later on P-CAD 2000 under Windows, which I still use today. On occasion I had to professionally evaluate several CAD programs, including but not limited to Protel, Specctra and Ultiboard.
I also stumbled upon Eagle several times, but it never made it, as the UI was so clumsy. I re-visited it now for several reasons: as I am soon going to retire but still plan to work on hobby projects, I need a reliable and low-cost tool, which ideally should work also on a Macintosh. As the Mac version now runs natively (previous releases required the X11 windowing subsystem), I saw it as suitable solution.
In order to make things straight: I have no issues with any OS or computer maker, be it Linux, Windows or MacOS X. I had (and partially still have) to deal in my career with all of them, and many other Unices in-between (HP-UX, AIX, DG-UX, Nextstep, etc.). And yes, I am a long time user of many CLIs (command line interfaces), from CP/M to DOS to sh, tcsh, bash, etc., even to some written by myself while developing software for various projects.
However, for personal reasons I need not to explain, my current working machine is a MacBook Pro notebook (and BTW, I am very happy with it). I use Parallels virtualization software to run several virtual machines, among others a Ubuntu Linux and a Windows 7.
Now back to Eagle. My remarks are based on the use of the freeware, unregistered Eagle version 5.11.0 on a MacBook Pro running MacOS X 10.6.8 (Snow Leopard).
To summarize my experience in a single phrase: Eagle is an incredibly solid and powerful piece of software, with an incredibly poor user interface. Let me now go into details.
The good: the software is very solid, during my three weeks experience with Eagle, it never crashed and I never lost files or parts I've designed in my own library. I was particularly impressed with the autorouter. I've used and seen quite some of them in my professional life, including the Cooper & Chan autorouter, quite famous by the end of the nineties, but for this price Eagle is really outstanding. And last but not least, Eagle is probably one of the few (if not the single) serious CAD packages that run natively on the Mac.
The bad: the user interface is non-standard by any of today's GUI standards, be it Windows, Mac or Linux. The library management system is a torture. The fact that Eagle runs on more than one platform may have led to some curious decisions by the developers, as for instance ignoring many of the underlying APIs of the individual OSes and rather build instead their own functions/classes (wheel re-invention). The net result is that the program looks and acts strange, gives the feeling of "not belonging here". Frustration is the first feeling a newcomer gets, so with all due respect, the acronim "Easily Applicable Graphical Layout Editor" (Eagle) is only wishful thinking (maybe it was true 15 years ago, but not anymore today).
There are many issues that I consider as not being compliant with modern GUI design principles, but I will list only the most glaring of them. I believe changing these would not alienate current users, but would greatly increase the number of new users adopting Eagle.
1. This one must be written in bold letters: elimination of the "MOVE" command (button). This should be replaced with the default state of the GUI, that should be reached by clicking a button represented normally by an arrow (standard for most drawing programs). In this state, it should be possible to click on an object, be it a part, a text, a pad, a line, etc. and move it by acting on the mouse. A right click should bring a context sensitive menu that should allow additional operations like "delete", "rotate", "replace", or show "properties". In addition, several keys should be used as shortcuts that would greatly increase the speed of operation (e.g. "R" for rotate, "DEL" or "backspace" for delete, etc.). Obviously, the keys should have some defaults, but should be user assignable. It is important that the shortcuts work without modifier keys (i.e. CTRL, ALT, CMD, SHIFT), therefore a solution must be found for the CLI. And this brings me to the second issue:
2. Eliminate the CLI from the GUI, or at least allow it to be hidden (this should be the default). I spent quite some time reading the forum and I noticed that there are a couple of die-hard users that would rather get rid of one of their fingers than of the CLI. However, these are a small minority. Someone claimed being able to do certain operations 10 times faster with the CLI than in the GUI: this doesn't mean that the CLI (or for that matter that guy) is better, rather that the GUI is so poorly designed and not offering the same functionality!
3. Another disturbing deviation from standard GUI practices is the use of the right-click button for the ROTATE function. Right-click brings a context menu on all platforms, be it Windows, Mac or Linux. Eagle is inconsistent in this respect: there are situations where a right-click brings indeed a contextual menu, but others where not. Rotate should be implemented through a simple key (user-programmable): as long as an object is selected, pressing a key without modifiers (e.g. "R") should perform the rotation. And still better: "SHIFT+R" should rotate the part in 45 degrees increments, while "ALT+R" in one-degree increments.
4. Operations performed on multiple objects are sorely missing (maybe they are possible within the CLI, but this is not the point). For instance, there are no ways (or at least I've found none) to change at once one or more characteristics of all pins in a package (library edit), or to change the width of a set of lines, or the parameters of several vias. You need to take each and every object individually and apply the required modification. If you can do this with a simple CLI command, then it is understandably why some users need it, but again, this only demonstrates a badly designed GUI.
5. The cut/copy/paste operations are totaly confusing (this is largely discussed elsewhere on the forum). Why should Eagle use different meanings for these commands, when everybody knows by now what they should do? The presence of two similar buttons (CUT and DELETE) is confusing enough. I had a hard time copying a symbol from a library into my own library following the step-by-step procedure in the manual, simply because I confused the CUT button with the DELETE button (in this case indeed, the CLI saved me, because typing the commands indicated in the manual led to the expected result; later I found out that in fact I have had to use the scissors button). To resume: the actual DELETE should be renamed CUT while the actual CUT should be renamed COPY. And PASTE should paste the same object as long as it is used, without the need to re-copy the object. In fact the PASTE button is now a mixture of COPY and PASTE, which is confusing. If I need to copy&paste one pin 24 times (e.g. for an IC), why do I need to click double so much times as necessary? It should work like this: select the master pin, click copy (or, better right-click and select copy), then click paste 24 times.
6. Another strange thing is that after the initial start, if you resize a schematic or layout editor window, its content is also resized. Thus it's impossible to scroll, simply because there are no scroll bars unless you zoom in. This behavior is incorrect, the content's size must remain unchanged and only the scroll bars should be updated (if required). But again, these side-effects are probably the result of not using the APIs provided by the individual underlying OS on which Eagle runs.
7. The library management must be re-worked. The general paradigm is quite well thought (the Device/Package/Symbol concept), however, there are many implementation issues. For example I find inconsistent that the symbols are not displayed in the library hierarchy. Deleting library objects is awkward, one must always know the exact name of the object in order to delete it. Why not simply search for it in the library hierarchy, right-click and choose "delete"? The same applies for "rename". And, there should be a much obvious way to create new packages/symbols starting from existing objects, e.g: open an existing object, modify it and then save it into the same library with a different name, or into a different library with any name you want. A sort of "save as…" for devices/packages/symbols.
8. There are serious issues with the mouse and display, at least on the Mac version: sometimes when scrolling the drawing is only partially redrawn, large screen areas remain blank. I need to click the redraw button to correct the situation. In addition, due to the proprietary mouse control implementation, I can't scroll left/right, which would be a major benefit, especially for those users having a multi-touch capable trackpad (all MacsBooks manufactured after 2007 have one). By the way, it is my experience that a multi-touch capable trackpad can almost completely replace the mouse and is much comfortable to work with.
9. And finally, a minor one: ESC should terminate all commands, including "place via" or "place hole".
All the above suggestions concern only the user interface. There are probably other potential improvements in other areas, and some of them have already been suggested by other posters. As a beginner with Eagle I am not yet in a position to comment on this. From what I have seen so far, Eagle seems to me a very solid piece of software with great potential. It's a pity that due to the unconventional user interface so many initial users are scared away. I suspect improvements in this area would help increase Eagle's market share.
Since 1984 when the first GUI became available for the large masses (with the launch of the original Macintosh), the GUI has established itself and reached a good level of standardization. After all, 27 years passed since then! The graphics may be different between Windows, Mac and Linux, but most of user interactions with the mouse and the keyboard are rather common on all of them. Why should Eagle be different?
Nevertheless, no matter what CadSoft will do with their next release, I plan to continue using Eagle for future projects, but only for private use for the time being (I will probably even buy the hobbyist version). If future releases will improve (and standardize) on the user interface, I might even recommend it for professional use.
Lix