[Israel.pm] Editors as Power Tools [was Re: Variable Naming]
yuval at windax.com
Tue Jun 8 01:55:04 PDT 2004
Shlomi Fish wrote:
>>True - I just found it to cut my typing time (finger-pain? :p) without
>>cutting my line of thinking.
>>That's why I speak of it so highly (just like I do with Perl for the same
>OK. As long as you don't expect people to use it or even use an editor that
>can use it.
Use anything you want.
I personally would recommend an editor that would cut development time.
Be it by code-completion, search/replace, macros, debugger integration,
If an editor would offer more features for cutting my development times
(without harming/risking anything, of course), I'd switch.
>>Well, I didn't have syntax highlighting when I started to write in Perl
>>(because my stupid editor didn't).
>Neither did I. When I started to write in Perl, the only editor I knew was
>pico. I couldn't get used to vi, so I actually compiled Emacs from source on
>Cortext's FreeBSD workstation and tried to work in it. Then I noticed a
>co-worker using joe, tried it and was hooked. I worked with joe for a long
>time since then. joe does not have syntax highlighting or almost anything
>that would cause it to be anything more than a minimalistic but still usable
I started with pico too. Can't stand it now...
I was then looking for something more powerful when I started working in
>Since then, I dabbled with NEdit (which isn't bad), used FTE for a while
>(which is nice, but idiosyncratic), until I got used to gvim and used it ever
>since. Note that I still use joe when working in terminals (as opposed to
>using X-Windows or MS-Windows), and I set the EDITOR and VISUAL env-vars to
I switched between so many. I didn't use joe, though.
I didn't like NEdit.
Without pointing out my selection, I invested a lot of time and efforts
in both emacs and vim.
I remember how I couldn't understand anything (C-x C-c??? ESC :q! ???).
>Believe it or not, but some people still regularly use an editor which doesn't
>even have syntax highlighting. I also consider it a nice-to-have feature and
>not a necessary must in an editor.
These days, you should allow me to ask more from my editor :)
>>As I wrote before, what other tools do you use when programming Perl?
>I use the shell (to run the programs, chmod them, etc), perl -d (to debug
>them); for serious things I also use Subversion with its svn client (to
>version control it). When writing CPAN modules, I use MakeMaker, make test,
>Test::Harness, Test::More, etc. There's one program I wrote in Perl and other
>technologies (Quad-Pres) that is auto-confisicated.
Perl modules don't count :)
I have a shell integrated with my editor, but I usually just background
my editor, run the command, and type `fg`.
CVS can be easily integrated to my editor everytime I press a
key-combination or even everytime I save.
>I understand. I don't find keeping a few terminal windows open and invoking
>commands in them, to be a nuisance. I'm used to it, and that's how I like to
>work. I think I can do everything from within gvim, but I never tried to get
>used to doing it.
I use konsole and give names to the shells so it's comfortable.
If you're comfortable with it, stick with it.
>Nevertheless, while I'm using an editor that is a power-tool, (albeit not sure
>I can call my use of it a "power-use") I intend my code to be maintainable
>even by much less capable editors. Like I said a textfile is simply a
>textfile - a sequence of ASCII characters. The programming language just
>needs it to make sense. And fellow human programmers just want it to be
>readable even when using "less" or "more".
Can you give me an example of code that can be maintained by emacs/vim
but not with notepad?
Maybe folds will look funny - but except for that, all code should be
Maybe I'm forgetting something...
>OK. Are you sure the situation is any different in a large company? (i.e: that
>your supervisor won't give you some slack).
From people who worked with me and moved to bigger companies, I know
it's not as simple as here.
They wouldn't fire you as you call to say you'll be late for work, but
when they see that you come at 11:00 or take off at 16:00 - they'll
write down your ID for the "TO-FIRE" list.
I've never worked for a big company, so I couldn't tell for sure.
I would like it if someone could comment on this one, as I am interested
I also get a cellphone (and they pay all my bills) and an ISP account
for 1.5Mbps which is really nice and a big company wouldn't do it
(unless you pay for your cellphone expenses except for VPN
>>Also sometimes it's camelCase.
>Actually, that's javaCase. ;-)
HAHA - never heard of this one.
Ok, I stand corrected.
>Package names are in CamelCase. I use 4-whitespace tabs (without using any
>actual \t characters - these are Evil).
I've read "tabs are evil" but I don't agree.
>Hmmm... installing gvim on Windows is one of the first thing I do when I have
>to seriously work there. I even got used to gvim because it was installed on
>a network drive on the Windows computers of my Technion department. Funnily
>enough, gvim was not installed on the Linux computers back then. The only
>things there were Emacs, and some other crappy editors (CoolEdit, etc.). Even
>typing "vim" on the command line amounted to nothing (albeit "vi" was
I only have 2 windows machines at home, one of them is dual booted with
I never used the windows installation on the dual-boot one :)
The other one is dedicated for my beloved Photoshop.
That and rollerblading calm me down after work...
>Yes, ddd seems to have a mind of his own regarding key-bindings. I keep
>pressing the wrong keys because I'm used to the keystrokes of MS DevStudio
>(which are different than those of Borland's IDEs, to which I was used
I try not to press any keys, and just use the mouse, or things get ugly :)
>By "dump" do you mean a graphical display of it? That would be nice.
Yes - and it would be nice!
Eclipse seems to have it, I will try it sometime.
>You are right a C code takes longer to write than the equivalent Perl code.
>However, people don't usually use C for things they can use Perl for.
Don't count on it :)
They might not know Perl, or even worse, they might use Python instead :)
>>Maybe it's because I never had to write something robust and/or serious
>>GUI applications that I never learned these 2 languages.
>Well, actually Perl code can be very robust. At least, unless we are talking
>about two different meanings of the word "robust". Also, I think Perl, Python
>and friends are much more suitable for writing GUI applications than C or
>C++. Writing GUI in ANSI C is painful. In C++ it's somewhat better. (if you
>have a decent GUI toolkit and not something crappy like MFC, which isn't much
>better than ANSI C). But then, naturally, you are frustrated that g++ is so
>damn slow. In Perl, it's just write and run.
>Sometimes it makes sense to write the GUI in Perl/Python/etc. and the
>internals in a more low-level programming language. Sometimes, the amount of
>code in the internals overwhelms the GUI code, so it's a better idea to keep
>the GUI in C, as well.
Basically, I tried TK and WxPerl but they both aren't fun to write in or
Also, I wasn't happy with the way it looked or worked.
Ever tried the Perl OpenGL modules? That's a different kind of GUI though :)
>Things one should use C for:
>I don't consider Perl and similar languages as such that are not "serious".
>You can perfectly write code that is either very reliable, very large-scale,
>very robust, very maintainable, or all of them in them. There is still a
>place for languages such as C or C++ (or Java - ?) and I expect that they
>will still remain important into the forseeable future. However, one should
>write what he can in Perl/Python/etc. because writing in C is painful and
So why do so many people use C/C++ for so many things that don't match
Also Perl can handle pretty big data-structures and files very easily
(read about the bioinformatics stuff...).
[Thanks for your comment, I snipped so Gabor won't make us buy bourekas :)]
>In any case, one should be thankful if he had the opportunity to learn Perl
>before C and C++. Israeli university students are keep getting confused by
>the low-level gotchas of C.
Doesn't that work both ways?
I hope you're right.
>As for C++, I think it supports Object-Oriented Programming roughly as much as
>COBOL supports Functional Programming. I'm not saying it isn't useful, but
>OOP is so much nicer and easier in higher-level languages.
I wouldn't know.
One thing I can be sure of, C/C++ are getting old...
Hey, even Perl is, and that's why they're releasing perl6 (I hate it,
personally), so no offence C/C++ programmers.
Ok, I finished my coffee, time to get back to work.
More information about the Perl