X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-TCPREMOTEIP: 207.224.51.38 X-Authenticated-UID: jpd AT noqsi DOT com Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [geda-user] gschem, gnetlist, libgeda, pcb code architecture (was: FOSDEM) From: John Doty In-Reply-To: <54D61BDF.4020504@ecosensory.com> Date: Sat, 7 Feb 2015 08:17:42 -0700 Message-Id: References: <1420499386 DOT 3521 DOT 3 DOT camel AT cam DOT ac DOT uk> <54CFD589 DOT 9040702 AT xs4all DOT nl> <20150203112631 DOT 3507a0c1 AT Parasomnia DOT thuis DOT lan> <20150204054256 DOT Horde DOT Pm1JV8RJbICk9SHvIGwZ7A3 AT webmail DOT in-berlin DOT de> <20150204193720 DOT Horde DOT 42xUN-NzhCJRWZne-M5eCQ1 AT webmail DOT in-berlin DOT de> <90236728-E79D-47C7-BFB1-34140DB85ACB AT sbcglobal DOT net> <201502042333 DOT t14NX28o024789 AT envy DOT delorie DOT com> <7C1A5871-3056-482C-BC58-173D90D80F77 AT icloud DOT com> <54D61BDF.402! 0504 AT ecosensory DOT com> To: geda-user AT delorie DOT com X-Mailer: Apple Mail (2.1878.6) Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id t17FHjof021380 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 Precedence: bulk On Feb 7, 2015, at 7:06 AM, John Griessen wrote: > Ease of adding improvements is top importance for volunteer projects. Yes! It’s not just that gEDA is a volunteer project. The jewel of gEDA is all those gnetlist back ends. Scheme is accessible enough to allow some great contributions here, even though much of the contributed code is not very clean. Many of these were (successfully!) “cargo-culted” from other crude examples by engineers with minimal Scheme knowledge. It helps that the gnetlist API trivially presents the coder with the data needed to construct a flat netlist or BOM, so the job is largely a matter of organization and output formatting. Unfortunately, the deeper layers of information are inaccessible, so, for example, hierarchical netlisting requires external scripting. That’s not so nice either, because configuration info (at least in released versions) is only easy to get at in Scheme. Scheme has not been as successful at extending gschem. People who understand the EDA domain are not necessarily familiar with the latest programming power tools. So, it is most desirable that the language chosen be easy to learn: a teaching language. Basic and Pascal are too crude, I think. Scheme is not mainstream except for MIT EECS gnurds. Logo is perhaps more familiar, and more capable than people give it credit for. I was an advisor to a student project that successfully coded its spacecraft control software in Logo (http://universe.sonoma.edu/T-LogoQube/?q=public). If you want to layer something more user-friendly atop Scheme, Logo is the thing to choose. But I think that Python is hands-down the most successful teaching language ever. In addition, it’s tremendously successful application language, with modules for just about every application domain (http://xkcd.com/353/). I think it’s important that your extension language be capable of connecting to other domains. All those modules make that easy. John Doty Noqsi Aerospace, Ltd. http://www.noqsi.com/ jpd AT noqsi DOT com