delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2012/11/18/16:14:13

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:content-type;
bh=W2W/ZLXucKsOReseTH6LOhsE4ePe/TmAvYJJPfpOn/c=;
b=HC1fLBieSOQdu14ejzsaicbT3TffSMZLw4OVVay1mb3waWtOFVA9WAA4Hdw7QBJGtc
fT63ylmxZH8yXfiJ6Xet2MvmwxcjYWThnOCIW905T2l3Z5CrP118hU4bi5vF73diyadx
v55jRyJn3boP02np5OGpFDgMDy/ToU9+J1TExnPp/hhrZk/3f3sCxA6ooJts7dM2A9h0
Q+eAGVbXp4ftc9vigKkbR5IOvi9sPUTkQJyDHKXWN/CTtObNze/YKonFAOGSS+gqgQEd
nrevEXrJS+4uzF1hL6sJ1JDqpoC08j82cIuKiyHGNyPzG69zLlsRS12az7SHmZX/h9Do
Mo2g==
MIME-Version: 1.0
In-Reply-To: <CAM2RGhSkaqZUKpwZhTcJgTwMGMRjRm7gkYwGB=nBA38PCkBSQQ@mail.gmail.com>
References: <50A688B8 DOT 4090809 AT neurotica DOT com>
<CC923058-B962-45B5-973D-EA03906430B9 AT noqsi DOT com>
<50A6A265 DOT 6050300 AT neurotica DOT com>
<4E8E6F31-EF8D-4540-BA86-7935C1C3E6D8 AT noqsi DOT com>
<50A6A95C DOT 5030903 AT neurotica DOT com>
<355DEF4F-51BB-44A8-A5F4-D8564E7E7885 AT noqsi DOT com>
<20121116213601 DOT 13718 DOT qmail AT stuge DOT se>
<66889AAB-3A82-4861-ACB0-B35A876EF6F4 AT noqsi DOT com>
<CAC4O8c8s3837dD5so1hu-QOm8PW69sehVNNX7njQvnRGzXODGw AT mail DOT gmail DOT com>
<B63F900B-2C12-48A4-AD4B-5A616078030B AT noqsi DOT com>
<CAC4O8c9BAJe8_7KLL8aaGq30HCkj+q74DB9jywXRXogJzdqNzw AT mail DOT gmail DOT com>
<50A83AAA DOT 6060500 AT jump-ing DOT de>
<B1A7C9C1-5EAE-49AB-A03A-D5D4AFD3B0C0 AT noqsi DOT com>
<50A8615E DOT 2080800 AT neurotica DOT com>
<05730E0F-4DA1-47C8-80BB-5D4F37EFD94E AT noqsi DOT com>
<50A8675D DOT 30509 AT neurotica DOT com>
<CAM2RGhQ7aZf_yiOw4ibKTe5RnH7p8W50Maqo1YrVnLbJuhX-1Q AT mail DOT gmail DOT com>
<F9FB3DFD-3D4D-4744-81E8-172D48E96FE0 AT noqsi DOT com>
<CAM2RGhSkaqZUKpwZhTcJgTwMGMRjRm7gkYwGB=nBA38PCkBSQQ AT mail DOT gmail DOT com>
Date: Sun, 18 Nov 2012 22:12:45 +0100
Message-ID: <CAGde_xPHE8A--poeUARmD14YFtxeH7HrEtzCX3YUFZmEkH9+Yw@mail.gmail.com>
Subject: Re: [geda-user] Thoughts on gschem UI
From: Svenn Are Bjerkem <svenn DOT bjerkem AT googlemail DOT com>
To: geda-user AT delorie DOT com
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On 18 November 2012 17:03, Evan Foss <evanfoss AT gmail DOT com> wrote:
> I never understood why Guile became the plugin language when so many
> more people know C.

I don't know why guile became the scripting language of geda, but if
you have a look at this, http://www.vanderburg.org/OldPages/Tcl/war/,
you will know what GNU founder Stallman thinks. I guess using guile is
only something for GNU projects due to the license.

My experience with Cadence Composer tells me that it is good to have a
script language with which extensions can be programmed without the
need of recompiling C-code. Cadence Composer use SKILL, a Lisp
dialect, to offer scripting functionality to the user. SKILL has over
5000 access functions into the API of the Cadence design tools. A
savvy tool user can fairly quickly whip up code to make repetitive
tasks without the need to recompile anything. Whole design flows of
semiconductor chips are implemented in SKILL.

Other CAD tools, both EDA and mechanical, use some kind of extension
language. Lisp seems to be used by tools with long history, and newer
tools use anything from python through perl to lua and ruby.

A large number of commercial EDA tools use Tcl. Tcl is kind of the
reason why guile exist. If you google on John Ousterhout and Richard
Stallman, I think a lot of historical reasons for the existence of
guile will show up.

In the open source domain, Xcircuit and Magic are examples of
Tcl-enabled EDA tools. Xcircuit went through Scheme and Python as
extension languages before it landed on Tcl/Tk. For the Tcl version,
the author decided to make Xcircuit an extension of Tcl, that is, Tcl
is loading the EDA tool as a package and the functionality of the EDA
tool is a set of Tcl commands. The same author also started on a Tcl
version of PCB in order to make it a Tcl extension in order to have
front-end schematic and back-end pcb in the same mother process Tcl
for back and forward annotation. Same was planned for Xcircuit and
Magic. Don't know the state of that development.

Scripting vs an API makes sense, even if people write C. Prototyping
can be done in the scripting language, and bottlenecks can be
implemented in C when the interface and need for feature has been
decided. Tools like Modelsim simulator can be completely controlled
from the Tcl command line available in the application. Specific
work-flow related tasks can be kept completely separate from the core
simulator, and since Tcl is a very common extension language, it is
easy to bring knowledge from one tool to the next. It also doesn't
hurt that Tcl/Tk is available on most unix clones, windows and mac in
its basic core as installable packages. Getting to know the scripting
tool is very easy, and as a topping, offers a UI toolkit (Tk) with
which GUI applications can be built with little code.

As a long-time user of both extension Tcl (Modelsim) and extension
Lisp (SKILL in Cadence), I find Tcl a bit more user friendly as it
mimics the regular shell command line. Lisp is with its reverse polish
notation and large number of parenthesis a bit more cumbersome. At the
end of the day, the quality of the API documentation for a particular
tool integration of either is more important than which one of either
to use.

Since both Tcl and guile offers the two major ways of tool scripting,
embedding and extending, it is a matter of taste and license. In later
years Lua seems to be a valid alternative, but the conservatism of the
EDA industry still seems to be quite strong.

Anyway, design-flow related programming is, in my opinion, best done
in a scritpted extension language, otherwise the C-code will be
impossible to maintain. Different people use the same tool in many
different ways. gnetlist, and its various back-ends, is probably a
good gEDA representative of this.

-- 
Svenn

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019