[Israel.pm] Editors as Power Tools [was Re: Variable Naming]

Yuval Yaari 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
>>reason) :p
>>    
>>
>
>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, 
etc, etc.
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 
>editor.
>  
>
I started with pico too. Can't stand it now...
I was then looking for something more powerful when I started working in 
a company.

>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 
>it.
>  
>
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 
maintainable.
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 
about it.

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 
[inside-company calls]).

>>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 
>probably "vim").
>  
>
I only have 2 windows machines at home, one of them is dual booted with 
linux.
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 
>beforehand)
>  
>
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 
maintain.
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:
>
>[...snipped...]
>
>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 
>error-prone.
>  
>
So why do so many people use C/C++ for so many things that don't match 
your criteria?
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.

  --Yuval




More information about the Perl mailing list