X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Message-ID: <20210712180102.5944.qmail@stuge.se> Date: Mon, 12 Jul 2021 18:01:02 +0000 From: "Peter Stuge (peter AT stuge DOT se) [via geda-user AT delorie DOT com]" To: geda-user AT delorie DOT com Subject: Re: Languages, once again (was: Re: [geda-user] Thank you - some requests and an offer) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: 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 Vladimir Zhbanov (vzhbanov AT gmail DOT com) [via geda-user AT delorie DOT com] wrote: > There are much more people writing in C. If I understand you correctly then I disagree; I believe Python to be more widespread than C. (Qualification: Acceptable Python programmers vs. acceptable C programmers.) > If you like debugging C code, please continue I enjoy reading, writing, running and debugging good C code. But I was comparing Python and Scheme, since they are the respective languages in geda-gaf and lepton. Bringing up something else can be called whataboutism and derails the discussion, let's stay on topic. My main arguments for Python seem to hold; it's more widespread and offers language compatibility with KiCad data. > you can learn why Scheme/Lisp were always one or more steps ahead > ("Blub paradox"). I too enjoy reading Paul Graham. :) To be clear: I never claimed that the Python language is absolutely better than Scheme/Lisp. I find such claims (without consideration for context) pointless. > Now, in comparison of Python and Scheme, we have different approaches. Yes! Scheme is surely an interesting language. And just like Guile has issues, so does CPython. But I'd argue less so. > There are only one implementation of Python which breaks from version > to version but has many useful libraries. My impression is that Python rarely breaks? It's clearly a problem for geda-gaf that Python 2 is dropped by distributions, but there are solutions to that and I believe that it will be a long time until Python 3 breaks in a similar way - no? > And, finally, did you ever hear anything about Guix [5]? Is there > something comparable in Python yet? I've heard about Guix. In general I think we need fewer package managers, not more and in particular I disagree very strongly with the current practice for every single language to invent its own package manager, if you suggest that Python should have more package managers. The transactional nature of Guix is nice! It reminds me of NixOS. If your argument is that Guix uses Guile then I find that a bit weak because Guix isn't really a high-profile project. Also, both are GNU projects, meaning that potential for group think is high - something IMO both geda-gaf and lepton should try to avoid rather than lean into. > Did you ever hear about Racket or Clojure? I looked at Racket some time ago and wasn't excited. :\ Clojure is popular, that's true! Would you consider typical Racket/Clojure projects comparable to the Scheme parts of lepton? I don't know - this is an honest question. John Doty wrote: > > On Jul 8, 2021, at 4:29 PM, Peter Stuge (peter AT stuge DOT se) [via geda-user AT delorie DOT com] wrote: > > > > John Doty wrote: > >> Has anybody but you mastered Xorn? > > > > I believe more people know Python than scheme; there's significantly > > more gEDA potential with xorn. > > Have *you* mastered Xorn? Fair! No - but I haven't tried. I am however confident that I will be able to do so quicker than mastering lepton if and when I need to. > Personally, I’m reasonably familiar with Python, but I found Xorn > impenetrable. That’s why I now use Lepton. Also fair. If I've understood correctly then xorn exposes a gEDA data model superset as required to cover everything that geda-gaf does and did; ie. more internals than before, to be able to present a complete and coherent model. If xorn only provides access to internal details never previously exposed then that could well explain the hurdle. > Roland is impressively productive with Xorn, but I can’t figure out > how to do my custom stuff with it. This seems to be either a documentation/examples problem or lack of a higher-level API on top of the low-level one. > > I think the most significant argument for Python is that KiCad also > > exposes its data model in Python; that's a clear path to more shared > > effort and simpler portability/convertability of user data. > > That’s your theory. "In theory, theory and practice are the same. In > practice, they are different.” In practice, handling two different data models in one program using one language is easier than doing so across two different programs using two different languages. Conversion is the simple use case. Thanks to xorn I can see a python program that merges sheets or partial circuits from both geda-gaf and KiCad into a single new schematic while allowing two teams to continue working in their respective tool. I find that a supremely compelling use case for data usability, which is what determines (or will) the future of all our tools. > >> The fact that the original scheme backends were the product of multiple > >> authors is telling. > > > > Are there many enough data points to actually tell anything at all? > > I count 11 authors explicitly credited in the Lepton netlist back ends. > I know I’d find several more if I plowed through the ChangeLog. That’s > a fair number of data points. > > > I guess no in gEDA/lepton, for both Python and scheme. I don't find 11 so many, and time distribution probably matters too; xorn is pretty young in geda-gaf. //Peter