Re: [9fans] Acme without Flamage
[EMAIL PROTECTED] (sqweek) writes: On Thu, Aug 21, 2008 at 5:06 PM, Paul Donnelly [EMAIL PROTECTED] wrote: The bear is indentation, since to make it work out it's necessary to use a fixed-width font (something I'd rather not do) and adjust it by hand, which needs to happen more often and by greater degrees than in a language like C. The chief issues being: (list (list 'a 'b 'c) (list 1 2 3)) ; ^ ; These need to line up. ; These need to line up. ; V (let ((a 3) (b 4)) (+ a b)) ; ^ ; Should be two spaces or so. Huh. I always thought lisp had a couple of simple indentation rules, but after spending a little time on fmtsexp.c it has become apparent that the two spaces or so is a special case for let! Not sure I care to try and deal with such cases, but maybe it is still somewhat useful: http://sqweek.dnsdojo.org/plan9/fmtsexp.c -sqweek A fairly complete description of the rules is that forms line up with other forms at the same level of nesting (the binding forms in the LET or the arguments to LIST), but anything using BODY FOO in its lambda list (BODY collects trailing arguments into FOO) gets two-space indentation for the body. Indeed, this is the reason BODY exists. DEFMETHOD, though, needs to be specially recognized. LOOP has special needs. It's easier to indent with a program running in or communing with your Lisp, since there's no other way to know, short of reading every file in a project, whether a given macro uses BODY or not.
Re: [9fans] Acme without Flamage
On Thu, Aug 21, 2008 at 2:06 AM, Paul Donnelly [EMAIL PROTECTED]wrote: [EMAIL PROTECTED] (Gorka Guardiola) writes: On Wed, Aug 20, 2008 at 7:42 PM, David Leimbach [EMAIL PROTECTED] wrote: The only thing I'd miss in Acme vs emacs then, most likely, for lisp-like languages is paren-matching. And I'd miss it dearly. Double click on the paren selects the area enclosed by the matching paren. -- - curiosity sKilled the cat I don't know if posts to usenet (where I lurk this list) go through to the mailing list, but I've found Acme's paren matching to be sufficient. The bear is indentation, since to make it work out it's necessary to use a fixed-width font (something I'd rather not do) and adjust it by hand, which needs to happen more often and by greater degrees than in a language like C. The chief issues being: (list (list 'a 'b 'c) (list 1 2 3)) ; ^ ; These need to line up. ; These need to line up. ; V (let ((a 3) (b 4)) (+ a b)) ; ^ ; Should be two spaces or so. Yeah I guess I'm spoiled by the hotkey visual cues I get from Emacs when typing in code, that automatically show me the matching parens as I type. Perhaps I really don't *need* that. I'll try Plan 9 Port acme again for some Scheme Shell or something and see how it goes. (Emacs screws up Scheme Shell pretty badly, due to it's not accepting | characters in it's syntax definition, and as I said before, customizing emacs is not the same as me getting my work done) Dave
Re: [9fans] Acme without Flamage
One of the central tenets of Plan 9 is that everything is a file. So all file based activities are really, really easy. Most OO programming appears to follow a more DB oriented style (at least those with horrendous packaging/module mechanisms). That files are used to store your programs appears to be incidental. Therefore using a file oriented system when programming something like Java is painful, to say the least. Thus, acme is very probably not the right editor, unless you are in complete control of the code. But I would say the same holds for vi or emacs. Its just that those two have had a lot of additions poured into them that were inspired by the IDE world. Acme is supremely fabulous when you are in complete control or if you're programming using a language/environment where there are no strange rules on where your files have to go (the underlying OO DB, essentially). Initially, all that replacing vi/emacs with acme does is change your habits from keyboarding to mousing. All the pain you get from the bad code remains the same. Some of the IDE inspired features in vi/emacs may help lessen that pain slightly. But to get a more radical change, I'm afraid using a proper IDE is where it happens. Welcome to objects, good-bye files. Robby
Re: [9fans] Acme without Flamage
On Wed, Aug 20, 2008 at 11:12 PM, Wendell xe [EMAIL PROTECTED] wrote: My nutshell evaluation of Acme is that it is for systems-level coding in C on modest-sized projects. It seems very well designed for that purpose but quickly becomes awkward as you move away. It is definitely not suited to working with Java or Lisp, I used to feel much the same. Then I went back to coding java at work, fired up eclipse and was like ... where's my chording? :( :(. I had to whip up a plumbing rule so I could button 3 stack traces, but after that it was pretty comfortable. I keep switching between them now, generally using eclipse for browsing existing code or when using a lot of interfaces that I'm not familiar with (function completion = lazy way out), and acme when I want to view files side by side (eclipse's window management can bite me) or when eclipse annoys me too much with its highlights and tooltips and ctrl-w closing the window and automatic paren balancing and popups and underlines and FUCK OFF I KNOW THE FUNCTION NEEDS TO RETURN A BOOLEAN I'M HALFWAY THROUGH DEFINING IT GIVE ME A CHANCE JEEZE. ...which is somewhat often. or navigating large directories. Hm, why is acme particularly bad at this? I know I sigh every time I open my home directory in p9p acme because it's full to the brim with .foo .bar .qux .etc, the trick is just to know what you're looking for and type it in instead of trying to find it. Finally, I'm kind of surprised at the lack of interest in controlling fonts. My usual coding font is 12 pt. Dina or Terminus. But if my eyes are really tired, I might switch to 16 pt. Monaco. On the other hand, I sometimes use 8 pt. ProFont to better get an overview. I would think even Plan 9 hackers would appreciate being able to quickly shift around like that. That surprises me, to be honest. Most people I know find a font they like and stick with it. -sqweek
Re: [9fans] Acme without Flamage
On Wed, Aug 20, 2008 at 10:14 AM, sqweek [EMAIL PROTECTED] wrote: On Wed, Aug 20, 2008 at 11:12 PM, Wendell xe [EMAIL PROTECTED] wrote: My nutshell evaluation of Acme is that it is for systems-level coding in C on modest-sized projects. It seems very well designed for that purpose but quickly becomes awkward as you move away. It is definitely not suited to working with Java or Lisp, I used to feel much the same. Then I went back to coding java at work, fired up eclipse and was like ... where's my chording? :( :(. I had to whip up a plumbing rule so I could button 3 stack traces, but after that it was pretty comfortable. I keep switching between them now, generally using eclipse for browsing existing code or when using a lot of interfaces that I'm not familiar with (function completion = lazy way out), and acme when I want to view files side by side (eclipse's window management can bite me) or when eclipse annoys me too much with its highlights and tooltips and ctrl-w closing the window and automatic paren balancing and popups and underlines and FUCK OFF I KNOW THE FUNCTION NEEDS TO RETURN A BOOLEAN I'M HALFWAY THROUGH DEFINING IT GIVE ME A CHANCE JEEZE. ...which is somewhat often. Hmmm acme plumbing rule for lisp s-expressions... that'd be neat :-) As I've never written a plumbing rule in my life, I'm not sure how practical that is. (just haven't needed to do it...) The only thing I'd miss in Acme vs emacs then, most likely, for lisp-like languages is paren-matching. And I'd miss it dearly.
Re: [9fans] Acme without Flamage
On Wed, Aug 20, 2008 at 7:42 PM, David Leimbach [EMAIL PROTECTED] wrote: The only thing I'd miss in Acme vs emacs then, most likely, for lisp-like languages is paren-matching. And I'd miss it dearly. Double click on the paren selects the area enclosed by the matching paren. -- - curiosity sKilled the cat