[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Switch gschem to another scripting language?



   I've gotta jump in with my $0.02 here.

On Nov 22, 2009, at 6:24 PM, you wrote:
> 1.  There are lots of folks who whine about learning another
> language.  "I already know TCL, so why should I learn Scheme?"  As
> John Doty says, this attitude stinks.  It implies that the person with
> this attitude doesn't want to learn, which is a terrible attitude for
> a practicing engineer.  I ignore those people since they whine about
> gEDA, but don't actually contribute code.

   Agreed 100%.  I don't want my tools dumbed-down because some of  
the users are lazy and don't want to think.  We're not talking about  
video games here...we're talking about tools required to do one of  
the toughest forms of engineering in existence.  Heaven forbid  
someone might actually have to LEARN something.

> 2.  Some people think Scheme is hard.  It's not.  It *is* a functional
> programming language (as opposed to a procedural language), so it
> requries the programmer to think in a different way than the usual
> "step 1, do this, step 2, do that" way they are probably used to.  But
> once you (quickly) get the concept of how to think in Scheme, it's
> pretty easy to use since the syntax is very regular and simple.

   Agreed 100% again.  People who can't wrap their brain around  
Scheme probably shouldn't be trying to design electronic circuitry.

> Think of it as the difference between the old TI calculators and the
> old HP  calculators.

   ...or the *new* TI calculators and the *new* HP calculators... ;)

>   The TI calculators used straight infix notation
> when entering a calculation, but the HP calculators used RPN.  Many
> folks  couldn't wrap their heads around RPM, but those who did found
> HP calculators to be be easier to use and more efficient than those
> from TI.

   I experienced exactly this.  I used infix calculators for quite a  
while before someone pushed me to try RPN.  I've never looked back.   
Is it foreign to some people?  Sure.  But with a small investment in  
time, RPN becomes a tremendously powerful tool.

> 3.  Some people are confused by Scheme's many parentheses.  It is true
> that poorly indented Scheme code can be hard to read, but the same is
> true of obfuscated Perl, or any poorly structured program.  And FWIW,
> the netlists implemented by Scheme back-ends in gnetlist are generally
> well written and easy to understand.

   To restate the point I made above in a different way, if someone  
is confused by Scheme's parentheses, they'll probably be confused by  
Ohm's law...and as such probably shouldn't be messing with an  
electronic design automation suite in the first place.  Leave them  
behind.

   Unless one of the goals of gEDA is to enable a newbie to stumble  
into the world of electronic design with absolutely no technical  
background or skill set.  And I'm pretty sure it's not.

> Nowadays, 10 years after gEDA was started, there are other
> interpreters & languages available which one might think about using
> instead of Scheme.  However, since nobody has actually stepped up to
> embedd one of those other interpreters into gEDA, we continue to use
> Scheme.  Also, we have over 20 different netlisters written in Scheme,
> some of them quite advanced.  Finally, folks like John Doty who have
> actually bothered to learn Scheme have created very interesting and
> useful netlisters for gEDA using it.

   If someone pops up and replaces gEDA's Scheme with, say Python,  
then we'll have to put up with another change in a few years when the  
"if it's not new, it's old, and if it's old, it's bad" crew starts  
whining about wanting another "more modern" language when Python is  
no longer the latest and greatest fad.  There are two big reasons why  
Scheme is still around when so many other languages have fallen by  
the wayside over the years: simplicity and power.

   Now, the Guile implementation of Scheme does have its problems and  
I'd love to see it replaced, but with another Scheme implementation  
with fewer limitations.  (TinyScheme comes to mind)

   As far as the Scheme vs. Perl/Python/Ruby/whatever-is-cool-this- 
week I say "don't fix it if it isn't broken"...and people whining  
about Scheme should grow a pair and spend the whopping twenty minutes  
it'll take them to pick up enough Scheme to be able to go nuts with  
their gEDA config files.

              -Dave

-- 
Dave McGuire
Port Charlotte, FL



_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user