ZX81 :)

Keith Peters wrote:
Woohoo! Nothing like a good editor war to end off the year!
Mac vs. PC anyone?
;)
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Austin Haas
Sent: Saturday, December 30, 2006 2:01 PM
To: Open Source Flash Mailing List
Subject: Re: [osflash] [OT] one editor for everything (emacs)


Do you have any data on the installed user base of Emacs, Eclipse, and
Visual Studio?

-austin

On Sat Dec 30 12:15 , hank williams wrote:
On 12/30/06, Austin Haas <[EMAIL PROTECTED]> wrote:
Hank, no offense, but you obviously aren't familiar with Emacs, so I don't think you should be telling people about how it works. You are completely wrong on almost every point.

As far as I can tell, based on your own comments, the only thing I am wrong about is syntax highlighting. My bad. But that notwithstanding, one thing that comes with being somewhat experienced is being able to understand the features and comparative benefits of tools without needing to be an expert in them. Emacs has been around long enough (certainly the early 80's when I was in school) for those features and benefits and disadvantages to be clear to anyone who has been in the
field.
And though you may not like my opinions, I think they are very much in the mainstream based on the installed base of Emacs users vs Eclipse and Visual Studio and all the other tools that do not derive anything from Emacs. You might do better explaining why, despite the incredibly small user base (relative to other tools) that there are circumstances
where Emacs rocks.
I totally agree with the Pragmatic Programmers. Emacs rules and it is great
for any type of editing. Emacs has what are called "Major Modes" which are specific to whatever type of file you are editing. These modes customize every aspect of the editor to suit the language. I can edit html, css, xml, ActionScript, Python, and Lisp all in the same editor at the same time and have each buffer specific to the language, but at the same time many familiar keybindings will work across
any language.
One of the reasons that Emacs is so great and powerful is that it has been
in widespread use for over 30 years and contains it's own internal scripting language for customization. The result is that thousands and thousands of programmers have been refining and perfecting Emacs over that time.

It is true that Emacs has been around long before graphical editors and it does not contain a lot of the graphical features that you might expect from IDE's such as Visual Studio, but most Emacs users consider that a good thing. If you can learn to stop using the mouse, you will find that you can navigate through your code and make edits much faster. Emacs has ways of jumping all over your code with just a few keystrokes that are hard to imagine if you've only been using the
arrow keys.
I thoroughly caveatted my comments with not being an Emacs user. But I understand the "ethos" of Emacs as this has been an argument since the early 80's when command lines gave way to graphical interfaces. The argument will probably continue well after I am dead. There is a (thankfully) small group of people that want the most geeky, non-graphical, complicated, command line driven tools based on the argument that they are "more powerful". That's all this is. For this small minority, GUI's are bad. We really needn't argue beyond this point.

Specifically, I want to address Hank's claims:
1. Emacs is not clunky in the least. It's more like a surgical tool for programming.
Based on everything you described, it sounds horribly clunky to me. But this gets back to the GUI/non-GUI argument. Emacs people believe the GUI is clunky and commands are smooth. I (and most others) believe the GUI is smooth and command only systems are clunky. The Emacs view is not mainstream, though I would thoroughly agree that there is a small minority of people for which it is the most comfortable way to work.

2. Emacs is not a programming language, but it does utilize a dialect of
Lisp as it's scripting language.
I know I studied computer science a long time ago, but way back in the '84 when I took my first LISP class, it was indeed considered a programming language. As I understand it, the core of Emacs is LISP and most of the features of Emacs are built in lisp. These features are modifiable by the users. I am not sure what you are disagreeing with
here.
3. Emacs has incredible syntax highlighting support.


point taken.

4. Emacs can do code completion, but I don't think that it works in the same
way as some other editors. This is something that I wish it could do better.
I am sure Emacs could fry an egg too, but you basically admit whatever it does in this regard is not up to snuff. And I seriously doubt it compares in any way to something like java in eclipse. One of the things that people tend to do in these arguments is make some argument that if you stand on your head with one hand in your pocket and one arm extended at exactly a 45 degree angle, you can achieve the desired
result. This relates to point 1.
which is that to achieve the desired result in Emacs would be *clunky*. This is why *no one* (well very few people) code java in Emacs
for example.
Some other benefits of Emacs:
1. I can edit files remotely via ssh, side by side with my local files.
2. I can easily add new editing functions, such as inserting a trace method for the current function signature.
3. I can collapse functions to just their signatures.
4. Very powerful regular expression searching and replacing.
5. I can collect the trace output from my swfs directly into an emacs
buffer, and use all of the power of the editor there. For example, in multiplayer games, I can capture the output from two players into the same buffer and use emacs regexp-highlighting functions to highlight all messages from one player as blue and the other as red.
6. I've also built a runtime swf profiler into Emacs.

7. Every aspect of Emacs can be customized. If there is anything that you
wish could be different, you can change it. I think this is why the Pragmatic Programmers recommend it.
I don't want to design an editor. There is nothing that I could do as well in my spare time that could not be done far better by a dedicated team totally focused on the given task. I want an editor that is designed for what I am doing so I don't have to customize anything. Honestly I don't think I am doing anything much differently than anyone else so I shouldn't need much customization. This is borne out by the fact that the Eclipse Java editor fit me like a glove right out of
the box. No customization needed.
8. Whenever Emacs opens a brand new file that ends in .as, I have set it up
to automatically insert a bunch of boilerplate code, such as the package line, class line, constructor skeleton, and a toString method.
9. I can compile my actionscript from Emacs, using either mtasc or mxmlc,
with one button. If there are any errors, Emacs will find the error in the correct file, highlight it in red, and put my cursor on it.

...but, Emacs has literally millions of features and add-on packages that I'm still discovering every day.

Millions of features is *not* a benefit in most products. I think that includes editors. As I said in my initial post, the fact that Emacs is/contains a programming language means that it can definitely do things that eclipse editors can't do. This is always what badly designed tools fall back on. Emacs is an accretion of features, not a
designed product.
Thousands of people adding pieces a bit at a time just *can't* yield a seamless productivity tool for all but the most dedicated.

I want something that works really well, not something where I have to spend a year learning a language and customizing to work well. And of course as you admitted it doesn't do code completion very well. And, based on your description, it doesn't do error detection as well as the Eclipse Java editpr either, which detects errors *as I type* and shows them to me with markers on the side or the window without even compiling. When I move my cursor over the error marker it suggests the fix for the problem. This may not be important to you, but for me (and I think most) seamless error detection, once you have experienced it, is something you will never give up,

But the bottom line may just be this: Emacs may just be for the smart people, and I alluded to this in my earlier email. I may not be smart enough to use it effectively. I'll cop to that.

But coming back to the initial question, this argument is not about which editor is "better", but about which one is better for a given task, and whether it is best for the average programmer to only use one editor, which would therefore mean not accessing what I consider to be far more advanced language specific features like in eclipse or even visual studio. I would definitely argue that a text based editor such as Emacs or vi is definitely something that should be in your arsenal. As you correctly indicate, there are things text based editors can do - like work in a terminal window etc, that GUI's cant. And if you need to write code (in LISP) to do custom things, then you should definitely consider it for certain tasks. But give up the GUI for the command line for my primary editing? Nah. I don't code much in assembler these days either. The stone age just wasn't that much fun.

Regards
Hank

_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org


--
Austin Haas
Pet Tomato, Inc.
http://pettomato.com

_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org

_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org


_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org

Reply via email to