Re: [OT] Choosing a scripting language.

From: Marco Colombo <marco(at)esi(dot)it>
To: "scott(dot)marlowe" <scott(dot)marlowe(at)ihs(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: [OT] Choosing a scripting language.
Date: 2003-10-28 15:57:34
Message-ID: Pine.LNX.4.44.0310281230400.25502-100000@Megathlon.ESI
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, 27 Oct 2003, scott.marlowe wrote:

> On Sat, 25 Oct 2003, Marco Colombo wrote:
>
> > On Fri, 24 Oct 2003, scott.marlowe wrote:
> > > On Fri, 24 Oct 2003, Scott Chapman wrote:
> > [...]
> > > > I also love the indentation to
> > > > differentiate code blocks rather than the junk I'd been used to seeing in
> > > > Perl and previous languages.
> > >
> > > Sorry, that was the one big turnoff for me in Python. Indentation is
> > > simple to me, I do it linux kernel style, and don't even have to pay
> > > attention to it anymore, it's just automatic for me. I guess I'm just
> > > used to doing it the old fashioned way.
> >
> > I don't get it. If you already indent code, what's the problem with
> > Python? Python _requires_ correct indentation,
>
> No, it RELIES on it. I.e. code blocks are marked out by how you indent.
> I.e. it doesn't look for block markers, then make sure indentation is
> right, it uses the indentation to show it where code blocks are.
>
> The fact that tabs are parsed as 8 spaces by Python, when many editors are
> set to render them as 4 or 6 makes it quite possible to have a file that
> looks like it should run but doesn't. I'll take good old {} anyday.
>
> Just do a google search for "python whitespace tabs" and you'll get about
> 7820 results back...

(most are totally unrelated BTW - like string.strip() manual)

Only broken editors display ascii 09 (hardware tab, HT) as 4 or 6 spaces.
Any serious editor can tell the difference between a HT and "softtabs"
(what happens when you hit the 'TAB' key). Even vi. People may be used
to broken editors, it's their problem.

I think everybody wants his code to be correctly displayed
by cat, more, less, type, notepad, _insert your favorite text viewer_,
any printing system (from cat file > /dev/lp, to text2ps converters)
WITHOUT having to learn how to change the standard meaning of HT.

HT being considered 8 spaces is not an issue.

> > so it's a problem only
> > to beginners who don't like indenting (and forces them in doing
> > the Right Thing). If indentation is automatic for you, you're already
> > doing it the Python way.
>
> Not exactly. I still prefer being able to do simple:
>
> if (something) do one thing; constructs
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Oh, now I see your problem. You have never actually used python. B-)
I used to agree with you, just writing a few small scripts (expecially
learing GTK and converting C examples from the GTK tutorial to python
on the fly) made me change my mind.
You'll hardly need "dirty tricks" like the one you're showing below
(which I do use in PHP/C/...). Python code is very clean.

And BTW:

x = 4
if x > 3: print "Yes!!"

it's a perfectly valid python program.

> Or put in debug lines that ARE NOT indented so they're easier to see:
> function test(var1){
> # delete this test var when testing is done
> $test_var = "set";
> start of code...
> }
>
> without worrying about the parser complaining about white space.
>
> Indentation is for ME, not the parser. Having it count as the block
> marker just feels wrong to me. I'm not even sure I can explain why
> completely, but my above points are just one small part of it.
>
> I agree with you on using the right tool for the job. Except Perl.
> The more I use other languages, the less I want to use Perl. Maybe it was
> a bad experience as a junior developer long ago with it or something :-)

Once I've even wrote a small python program which produces a perl script
and runs it. The combination of 2 tools sometimes it's better than one
tool only. B-)

Sometimes what I need is just "awk on steroids". While Perl is more
than just that, I find that it's perfect for me in replacing awk.
Just read 'man perlrun': Perl is very strong in supporting commandline
processing. Try and do the same in any other language, with less
keystrokes:

find / -print0 | perl -ln0e 'print if -p'

(process a \0 separated list of filenames, filter only named pipes,
output a \n separated list of filenames).

.TM.
--
____/ ____/ /
/ / / Marco Colombo
___/ ___ / / Technical Manager
/ / / ESI s.r.l.
_____/ _____/ _/ Colombo(at)ESI(dot)it

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2003-10-28 15:59:39 Re: SELECT with row>32k hangs over SSL-Connection
Previous Message Andrew Ayers 2003-10-28 15:57:01 Re: Newbie-question