all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Beginning Hobbyist Programmer Question
@ 2008-01-17 22:04 signups17
  2008-01-17 22:47 ` Rupert Swarbrick
                   ` (10 more replies)
  0 siblings, 11 replies; 14+ messages in thread
From: signups17 @ 2008-01-17 22:04 UTC (permalink / raw)
  To: help-gnu-emacs

Ok, I'm beginning to teach myself the art of computer programming. I'm
starting with Python and I've built a few scripts that have increased
my productivity tremendously at work, doing a lot of data crunching,
etc.

As I get more and more into programming, I get the sense that "real"
programmers use emacs or vi, or some other editor that from my
perspective, seems arcane and impenetrable compared to something
simple like IDLE that comes with Python, or Scite, for example.

Can anyone provide a cogent explanation for why I should take the time
to climb that learning curve? What are the benefits, as you see them?

Also, assuming I'm convinced, can you point me in the direction of a
good tutorial?

Thanks in advance.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
@ 2008-01-17 22:47 ` Rupert Swarbrick
  2008-01-18  0:26 ` reader
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Rupert Swarbrick @ 2008-01-17 22:47 UTC (permalink / raw)
  To: help-gnu-emacs

On Thu, 17 Jan 2008 14:04:46 -0800, signups17 wrote:
> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? What are the benefits, as you see them?
> 
> Also, assuming I'm convinced, can you point me in the direction of a
> good tutorial?
> 
> Thanks in advance.

Hi,

I'm not sure if there's an official FAQ for this group, but this sort of 
question comes up *a lot*. My comments:

1) emacs is fun to use (this _really_ is the most important bit in my 
opinion, and I've never encountered it in any other editor)
2) emacs is rather ludicrously customizable. You can write bits of elisp 
code to change pretty much any part of its behaviour. Although usually 
someone's done it in advance.
3) More generically, a powerful editor like emacs will allow you to avoid 
retyping/copying/pasting so much, since its replacing functions, macros 
and much more will allow you to rename the 70 variables you needed to add 
a dollar to in 5 seconds, without developing RSI.

Now, the previous bit was my personal opinion. About tutorials, 
presumably you mean an emacs tutorial (after all this is g.e.h), so:

1) Open up emacs and type C-h t (that is Ctrl-h followed by t) and read.
2) When you've finished reading that, there are numerous tutorials on the 
internet - you could always start at www.emacswiki.org

Other general comments I might make:

1) "why I should take the time to"... isn't a great way to get slightly 
hide-bound and clannish devotees of a text editor like me in a mood to be 
helpful.
2) In general, specific questions are much more likely to get good 
answers in a newsgroup. Looking quickly, I'd say that 9/10 of the first 
page of hits in a google search for "emacs tutorial" returns something 
useful. Maybe it would be worth trying that?


Rupert

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
  2008-01-17 22:47 ` Rupert Swarbrick
@ 2008-01-18  0:26 ` reader
  2008-01-18  1:44 ` Nick Roberts
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: reader @ 2008-01-18  0:26 UTC (permalink / raw)
  To: help-gnu-emacs

signups17@gmail.com writes:

> As I get more and more into programming, I get the sense that "real"
> programmers use emacs or vi, or some other editor that from my
> perspective, seems arcane and impenetrable compared to something
> simple like IDLE that comes with Python, or Scite, for example.

> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? What are the benefits, as you see them?

I'm a rather lowlevel user although a longtime user of emacs.  Also a
rather lowlevel programmer but even at my level without the powers of
a real editor (and I just scratch the surface) you will soon tire of
programming since so many things are repetitious.

I'm not sure what the editors you mention are capable of but you will
very soon if not already be needing to insert repetitive things such as
the skeleton of a while or for loop.  Or common strings that recur in
your scripts.

Maybe you will need to quickly comment a chunk for testing something.
I could build up a pretty long list of things emacs does for me but
you must already have run into some of this.

Emacs has the most powerful abbrev mode you are likely to find. 
`abbrevs' are emacs speak for inserting things by typing a
string of characters like:
  pr<spc> to insert `print "mydebug bla bla  ";' 

I know almost no python so not sure what would be appropriate there. 

Here is an example of the kind of thing I use very often in perl.

To insert the skeleton of a getopts section like below I type:
pget<spc>
HERE
## BEGIN GETOPTS SECTION =========================================
  our ($opt_a,  );
  use Getopt::Std;
  my $optstr = "ab:c ";
  getopts($optstr);

  if($opt_) { 
to HERE 

And after hitting space as shown, that whole blob between HEREs (of
course not the HEREs) is inserted.  So a bunch of the coding is done
in a few keystrokes.  Emacs has a whole section called `skeletons' and
using them to bolster abbrevs there is no limit to what you can insert
quickly.  Really whatever can be imagined and done with elisp code can
be brought to bear and inserted in a keystroke or two.

Of course emacs has a developed python mode.  I can't speak much about
it since I haven't used it to speak of but I'm guessing it will be
like all other parts of emacs... something that a goodly number of
experienced coders have added and subtracted to/from for some years.

> Also, assuming I'm convinced, can you point me in the direction of a
> good tutorial?

Aside from this monster windy post of mine; no one is likely to spend
much time trying to `convince' you, but I can tell you that you will
learn some new curse words before you become competent.  Things that
my fingers know how to do without thought now didn't get there real
easily.

Someone already told you about the best tutorial, but let me suggest
that you go at emacs the same way you did python.  I'm guessing you
jumped right in and got your hands dirty.  As problems arose you
sought help either in documentation or on python lists.

I can also tell you that you would be hard pressed to find a more
helpful list.  I've badgered this list for years and still have
never failed to get an answer to my questions.

Emacs has a truly massive customization section that can be accessed in
several ways.  M-x customize-apropos <RET> REGEX (or words) <RET>

Will find dozens of customizations for just about any area of emacs
usage.  With judicious use of REGEX or plain words you can find
something pretty quickly.

There is a truly deep and profound manual with emacs that can be
searched in several ways or just read at in your spare time.
Just reading parts of it will inspire you with possibilities.
I think you can still buy a paperback book of it if so desired.

I bought one long ago.  It is a pretty hefty medium sized book.

It may take you a while to really know how to find stuff in that
manual but it was laid out and prepared to be subjected to the full
power of emacs searching abilities right from the start. 

By now some really talented people have worked on it and made sure a
new user could find something helpful there.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
  2008-01-17 22:47 ` Rupert Swarbrick
  2008-01-18  0:26 ` reader
@ 2008-01-18  1:44 ` Nick Roberts
  2008-01-18  9:02 ` Andreas Röhler
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Nick Roberts @ 2008-01-18  1:44 UTC (permalink / raw)
  To: signups17; +Cc: help-gnu-emacs

 > Can anyone provide a cogent explanation for why I should take the time
 > to climb that learning curve?

No, because we don't know, and don't really want to know, what you would use it
for.

 > What are the benefits, as you see them?

The benefits to me probably aren't relevant to you.  It's not a one size fits
all question and such general discussion wastes everyone's time.  Why don't you
just try the tutorial ('C-h t') and make your own mind up?  Then if you *do*
decide Emacs is for you, this *is* the forum to which to post your questions.

-- 
Nick                                           http://www.inet.net.nz/~nickrob

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
                   ` (2 preceding siblings ...)
  2008-01-18  1:44 ` Nick Roberts
@ 2008-01-18  9:02 ` Andreas Röhler
  2008-01-18  9:04 ` Thien-Thi Nguyen
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Andreas Röhler @ 2008-01-18  9:02 UTC (permalink / raw)
  To: help-gnu-emacs

Am Donnerstag, 17. Januar 2008 23:04 schrieb signups17@gmail.com:
> I'm
> starting with Python and I've built a few scripts that have increased
> my productivity tremendously at work, doing a lot of data crunching,
> etc.

Beside of regexp search and replace,
font-highlighting--where all valid editors are able
to--I see Emacs strength in integration to another
processes whose output might be edited or handled
afterwards.

For example you may get the output of the shell into
some buffer and editing it then. You may run
shell-commands directly on the buffers code.

Or browse the net with Emacs-w3m and have the output
ready for further editing, if not calling functions on
them.

With some Emacs-Lisp knowledge the tasks turn a lot
easier again. Because regexps tend to be complicated,
quite often it's faster to write a function addressing
the special case than relying at interactive regexp
search and replace alone.

With Emacs you may automatize this function-writing
again, using skeletons, templates etc.

Not to forget key-board macros: Even if operating with
interactive regexp-search and replace sometimes it's
useful to record your steps for further repeats.

Andreas Röhler

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
                   ` (3 preceding siblings ...)
  2008-01-18  9:02 ` Andreas Röhler
@ 2008-01-18  9:04 ` Thien-Thi Nguyen
  2008-01-18 10:05 ` Stefan Kamphausen
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Thien-Thi Nguyen @ 2008-01-18  9:04 UTC (permalink / raw)
  To: gnu-emacs-help

() signups17@gmail.com
() Thu, 17 Jan 2008 14:04:46 -0800 (PST)

   As I get more and more into programming, I get the sense that "real"
   programmers use emacs or vi, or some other editor that from my
   perspective, seems arcane and impenetrable compared to something
   simple like IDLE that comes with Python, or Scite, for example.

   Can anyone provide a cogent explanation for why I should take the time
   to climb that learning curve? What are the benefits, as you see them?

real programmers use their brain.
real programmers program their brain.
often, real programmers' brain-programming program is emacs.

thi

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
                   ` (4 preceding siblings ...)
  2008-01-18  9:04 ` Thien-Thi Nguyen
@ 2008-01-18 10:05 ` Stefan Kamphausen
  2008-01-18 11:11 ` Daniel Pittman
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Stefan Kamphausen @ 2008-01-18 10:05 UTC (permalink / raw)
  To: help-gnu-emacs

signups17@gmail.com writes:

> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? What are the benefits, as you see them?

Because in the end you will have /one/ tool to do almost all of your
typing ([1]) which will fit your needs /exactly/ ([2]).  You will
never want to use something else.  And of course: it's fun ([3]).

If I had no Emacs I were no programmer.

Regards,
Stefan

Footnotes: 
[1]  E.g.: Programming (C, C++, Perl, Python, Ruby, Java, Common
     Lisp, Elisp, Bash, whatever), Writing (HTML, XML, LaTeX, groff,
     plain text, emails, news, edit your oddmusewikis, whatever)

[2]  Keybindings as you want them, code-templates, dabbrev,
     spell-checker integration, your own extensions, things you found
     on the 'net, integrated shell, integrated terminal, CVS and SVN
     frontends, planning (org, planner, calendar, remember), etc.pp.

[3]  E.g. writing elisp, finding astonishing features (like these
     footnote-adding functions ;-)

-- 
Stefan Kamphausen --- http://www.skamphausen.de
a blessed +42 regexp of confusion (weapon in hand)
You hit. The format string crumbles and turns to dust.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
                   ` (5 preceding siblings ...)
  2008-01-18 10:05 ` Stefan Kamphausen
@ 2008-01-18 11:11 ` Daniel Pittman
  2008-01-18 23:22 ` Alan Mackenzie
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Daniel Pittman @ 2008-01-18 11:11 UTC (permalink / raw)
  To: help-gnu-emacs

signups17@gmail.com writes:

> Ok, I'm beginning to teach myself the art of computer programming. I'm
> starting with Python and I've built a few scripts that have increased
> my productivity tremendously at work, doing a lot of data crunching,
> etc.
>
> As I get more and more into programming, I get the sense that "real"
> programmers use emacs or vi, or some other editor that from my
> perspective, seems arcane and impenetrable compared to something
> simple like IDLE that comes with Python, or Scite, for example.

No, they don't.  A small proportion of them are very vocal about their
preferences, and only those two editors tend to excite enough noise and
support that you notice them.

Eclipse and Visual Studio are extremely popular systems for working with
Linux code[1], as are kate, the GNOME text editor, and a bunch of
others.

> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? 

VI?  Because it runs on every Unix in existence, and knowing a visual
editor that you can use in more or less the same way on any random Unix
system is a great skill to have.

Vim?  Because you want to run Emacs, but you like an editor with a mode
that goes beep and a mode that doesn't. ;)

(More seriously: Vim, because you want all the extra bells and whistles
 integrated into Vi rather than having to shift over to a shell to get
 at them.)

Emacs?  Because you want an IDE that is absolutely, totally custom to
your needs.  (or a mail reader that is, or ...)

> What are the benefits, as you see them?

For you?  None.  Learn to program with whatever tools you like.

Learn enough of Vi to edit files, even if slowly, because that is a
valuable skill -- but a completely different one from programming.


> Also, assuming I'm convinced, can you point me in the direction of a
> good tutorial?

For Vim, which is the stock Vi on many Linux distributions, try :help.

For Emacs you can start it up and hit C-h t (control and h, then t) to
get to the tutorial.  (or just read the front page.)

Regards,
        Daniel

Footnotes: 
[1]  Yes, /that/ Visual Studio, on that other platform.  I never
     understood why, but a whole bunch of people I know use it...

-- 
Daniel Pittman <daniel@cybersource.com.au>           Phone: 03 9428 6922
1/130-132 Stawell St, Richmond              Web: http://www.cyber.com.au
Cybersource: Australia's Leading Linux and Open Source Solutions Company

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
                   ` (6 preceding siblings ...)
  2008-01-18 11:11 ` Daniel Pittman
@ 2008-01-18 23:22 ` Alan Mackenzie
  2008-01-19  0:19 ` Mike Treseler
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Alan Mackenzie @ 2008-01-18 23:22 UTC (permalink / raw)
  To: signups17; +Cc: help-gnu-emacs

Hi, signups!

On Thu, Jan 17, 2008 at 02:04:46PM -0800, signups17@gmail.com wrote:

[ .... ]

> As I get more and more into programming, I get the sense that "real"
> programmers use emacs or vi, or some other editor that from my
> perspective, seems arcane and impenetrable compared to something simple
> like IDLE that comes with Python, or Scite, for example.

> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? What are the benefits, as you see them?

Unlike somebody else here, I think that's a perfectly reasonable way to
put your question.  Learning Emacs takes a _lot_ of time, so you want to
know before you put in the time what you'll get out of it.

In short, Emacs is just _NICE_.  It lets you do what you want, whilst not
getting in the way.  And you can customize it to do what you want, how
you want.

As an example of this niceness, compare how you would do searching in
Rotmed[*] compared with Emacs.

Rotmed: (i) <ctrl-F> ; A nasty dialogue box is splatted over your text so
    that you can't see it any more.
  (ii) You type in the string, character by character, you want to search
    for.  You'll probably make a mistake, since you can't see the string
    covered by the D-Box;  but you won't yet know you've made the
    mistake.
  (iii) You hit <CR>; You get a <beep> "String not found".
  (iv) You can't scroll your main text, because the D-Box is a so-called
    "modal" D-Box.  You can curse, though.
  (v) You correct the text in the D-Box, and go back to (iii).
  (vi) Eventually you'll find the string.  But it's not the occurrence
    you're looking for.
  (vii) You hit <F4> (or whatever) to go to further occurrences.  You hit
    <F4> too often though, and want to go back.  Damn!
  (viii) You type <alt>-u (or whatever) to reverse search direction.
  (ix) You type <F4> again.
  (x) You're there.  So you have to type <ESC> to get rid of that
    horrible dialog box.  Phew!!  Don't want to do this too often!

Emacs: (i) <ctrl-S>: The minibuffer (bottom line of your screen) is now
    ready to accept your search string.  You can see your own text.
  (ii) As you type in the string, character by character, the cursor
    moves to where it finds the "string so far".  As soon as you make a
    mistake, Emacs beeps, because it doesn't find that string.
  (iii) You type <backspace> to get rid of that erroneous character, then
    carry on from (ii) again.
  (iv) At any time during searching, you can scroll your main text up
    and down.
  (v) You hit <ctrl-S> to go on to further occurrences.
  (vi) You hit <ctrl-S> too often though, and want to go back.  No probs!
  (vii) You hit <backspace> to cancel out the superfluous <ctrl-S>.
  (viii) You're there!  Carry on editing!  So slick, you do it almost
    subconsciously!

At this point, Emacs hasn't forgotten where you started the search; you
can jump back there with <Ctrl-u> <space>.  There's a _lot_ more to
searching than I can say here.  For example, you search just the same way
in _ANY_ context; for example in lists of buffers, in indexes, anything.
Most Rotmeds don't do this, for whatever reason.

[ .... ]

> Thanks in advance.

[*] "Run of the mill editor"

-- 
Alan Mackenzie (Nuremberg, Germany).

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
                   ` (7 preceding siblings ...)
  2008-01-18 23:22 ` Alan Mackenzie
@ 2008-01-19  0:19 ` Mike Treseler
  2008-01-21 16:33   ` rustom
  2008-01-22 17:24 ` Sebastian Tennant
  2008-01-23  6:02 ` Bob McCormick
  10 siblings, 1 reply; 14+ messages in thread
From: Mike Treseler @ 2008-01-19  0:19 UTC (permalink / raw)
  To: help-gnu-emacs

signups17@gmail.com wrote:
> Ok, I'm beginning to teach myself the art of computer programming. I'm
> starting with Python and I've built a few scripts that have increased
> my productivity tremendously at work, doing a lot of data crunching,

> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? What are the benefits, as you see them?

Python mode might be reason enough.
Open my_file.py then C-c C-c

If there are no errors, a buffer opens showing the output.
If there is an error, the point jumps to the line and the
error message is displayed in the output buffer.

Fix the error and C-c C-c again.
And so on.

           -- Mike Treseler

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-19  0:19 ` Mike Treseler
@ 2008-01-21 16:33   ` rustom
  0 siblings, 0 replies; 14+ messages in thread
From: rustom @ 2008-01-21 16:33 UTC (permalink / raw)
  To: help-gnu-emacs


signup...@gmail.com wrote:
> Ok, I'm beginning to teach myself the art of computer programming. I'm
> starting with Python and I've built a few scripts that have increased
> my productivity tremendously at work, doing a lot of data crunching,
> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? What are the benefits, as you see them?

You may want to see http://steve.yegge.googlepages.com/effective-emacs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
                   ` (8 preceding siblings ...)
  2008-01-19  0:19 ` Mike Treseler
@ 2008-01-22 17:24 ` Sebastian Tennant
  2008-01-22 18:10   ` Mike Mattie
  2008-01-23  6:02 ` Bob McCormick
  10 siblings, 1 reply; 14+ messages in thread
From: Sebastian Tennant @ 2008-01-22 17:24 UTC (permalink / raw)
  To: help-gnu-emacs

Quoth signups17@gmail.com:
> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? 

Well, it'll take a while, and by the sound of it your time is pretty
damn important, so I suggest you get back to what you were doing.

> What are the benefits, as you see them?

Emacs is quite simply the most universally useful program ever written.

Sebastian

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-22 17:24 ` Sebastian Tennant
@ 2008-01-22 18:10   ` Mike Mattie
  0 siblings, 0 replies; 14+ messages in thread
From: Mike Mattie @ 2008-01-22 18:10 UTC (permalink / raw)
  To: help-gnu-emacs


[-- Attachment #1.1: Type: text/plain, Size: 1029 bytes --]

On Tue, 22 Jan 2008 19:24:04 +0200
Sebastian Tennant <sebyte@smolny.plus.com> wrote:

> Quoth signups17@gmail.com:
> > Can anyone provide a cogent explanation for why I should take the
> > time to climb that learning curve? 
> 
> Well, it'll take a while, and by the sound of it your time is pretty
> damn important, so I suggest you get back to what you were doing.
> 
> > What are the benefits, as you see them?
> 
> Emacs is quite simply the most universally useful program ever
> written.
> 
> Sebastian

You can view Emacs from many perspectives. It is extensible etc. Handy
for programming which is extremely repetitive in the doing.

The essence of using Emacs though is hacking Emacs itself with elisp, in that 
aspect it is the most portable software emulation of the now almost forgotten 
Lisp Machines that I know of.

 
> 
> 
> _______________________________________________
> help-gnu-emacs mailing list
> help-gnu-emacs@gnu.org
> http://lists.gnu.org/mailman/listinfo/help-gnu-emacs

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 152 bytes --]

_______________________________________________
help-gnu-emacs mailing list
help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Beginning Hobbyist Programmer Question
  2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
                   ` (9 preceding siblings ...)
  2008-01-22 17:24 ` Sebastian Tennant
@ 2008-01-23  6:02 ` Bob McCormick
  10 siblings, 0 replies; 14+ messages in thread
From: Bob McCormick @ 2008-01-23  6:02 UTC (permalink / raw)
  To: signups17; +Cc: help-gnu-emacs


[-- Attachment #1.1: Type: text/plain, Size: 4078 bytes --]

First, you should realize that the single most important tool for a
programmer, is a good text editor.  The majority of the time you'll spend
programming is comprised of two activities:  thinking, and text editing.
Anything you can do to make either of those activities more productive and
more comfortable is a big win.   I see that someone else has already linked
to Steve Yegge's article on Effective Emacs.   I highly recommend reading it
to get an idea of what a productive text editing environment can do for
you.  Another similar article advocating the "other" major editor (VIM) is
The Seven Habit of Effective Text Editing (
http://www.moolenaar.net/habits.html).   The book "The Pragmatic
Programmer", which I highly recommend, also has a section of the importance
of having a good text editor and learning it well.

Those are all reasons to pick *a* powerful text editor, but why Emacs in
particular? I'm sure there are a wide variety of reasons people use a
particular editor or IDE, some may apply to you, some may not.   I certainly
can't tell you what editor is right for you, nor can I (or anyone else) give
you a comprehensive list of *every* reason you might use one editor or
another.    However, I can tell you why *I've* recently switched to emacs,
and you're certainly free to evaluate whether those reasons are relevant to
you.

For me, the reasons I've picked Emacs as my editor are:
* Available on almost every system.
I don't want to be locked into just one platform (that eliminates TextMate
for me)
* Has modes for almost every language and file format
That's important for me, because I'm a dabbler.  Emacs generally has support
for even the most obscure little programming language.
* It's highly extensible and customizable.  This is more than just the usual
examples of pointing at all the modes and utilities you can download from
the net, and the various tweaks you can put in your .emacs files.   Although
I've never tried to write a language mode for any text editor, the
impression I've got is that it's a much less massive undertaking in emacs
than it is in most editors.  I'll admit that I certainly could be incorrect
about this one.  Although I'm pretty inspired by this post (
http://bc.tech.coop/blog/071015.html) from Bill Clementson's blog where he
describes a highly specialized emacs mode he created for working with JD.
Edwards ERP software.

Emacs has a reputation for having a high learning curve, but honestly it's
really not that bad.  I'd suggest starting with reading Steve Yegge's
Effective Emacs essay as a start to get inspiration and to pick up the right
mindset for *what* you're trying to learn and accomplish.  The tutorial
include in Emacs (mentioned elsewhere in this thread) is good for the
basics, I also recommend browsing through the Emacs Wiki (
http://www.emacswiki.org/cgi-bin/wiki).  Printing out the emacs
quickreference card is also very useful.   I'm sure it takes a long time to
learn all of the in's and out's of emacs, but picking up enough of the
basics to be reasonably productive isn't really that tough.

Hope that helps.




On Jan 17, 2008 3:04 PM, <signups17@gmail.com> wrote:

> Ok, I'm beginning to teach myself the art of computer programming. I'm
> starting with Python and I've built a few scripts that have increased
> my productivity tremendously at work, doing a lot of data crunching,
> etc.
>
> As I get more and more into programming, I get the sense that "real"
> programmers use emacs or vi, or some other editor that from my
> perspective, seems arcane and impenetrable compared to something
> simple like IDLE that comes with Python, or Scite, for example.
>
> Can anyone provide a cogent explanation for why I should take the time
> to climb that learning curve? What are the benefits, as you see them?
>
> Also, assuming I'm convinced, can you point me in the direction of a
> good tutorial?
>
> Thanks in advance.
> _______________________________________________
> help-gnu-emacs mailing list
> help-gnu-emacs@gnu.org
> http://lists.gnu.org/mailman/listinfo/help-gnu-emacs
>

[-- Attachment #1.2: Type: text/html, Size: 4958 bytes --]

[-- Attachment #2: Type: text/plain, Size: 152 bytes --]

_______________________________________________
help-gnu-emacs mailing list
help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2008-01-23  6:02 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-17 22:04 Beginning Hobbyist Programmer Question signups17
2008-01-17 22:47 ` Rupert Swarbrick
2008-01-18  0:26 ` reader
2008-01-18  1:44 ` Nick Roberts
2008-01-18  9:02 ` Andreas Röhler
2008-01-18  9:04 ` Thien-Thi Nguyen
2008-01-18 10:05 ` Stefan Kamphausen
2008-01-18 11:11 ` Daniel Pittman
2008-01-18 23:22 ` Alan Mackenzie
2008-01-19  0:19 ` Mike Treseler
2008-01-21 16:33   ` rustom
2008-01-22 17:24 ` Sebastian Tennant
2008-01-22 18:10   ` Mike Mattie
2008-01-23  6:02 ` Bob McCormick

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.