Hi Marko, A casual reply, then ...
On Sun, Sep 10, 2017 at 5:38 PM, Marko Rauhamaa <ma...@pacujo.net> wrote: > Linas Vepstas <linasveps...@gmail.com>: > > > On Sun, Sep 10, 2017 at 3:36 PM, Marko Rauhamaa <ma...@pacujo.net> > wrote: > > > > Not everything in the world is done for performance. The #1 purpose for > a programming language is managing complexity. Relatively few > computation tasks require excellent performance, and there are other > programming languages for that: C, C++, Java, C#, go > I agree in principle; the guts of my system are in C++, the casual computations that string together the pipeline are in guile. There are some 50+ dialects of scheme, and somewhere on the net is a giant page of benchmarks comparing them. Guile ranks about 10th or 11th in that list, which isn't bad, except that many of the #1 and #2 spots are something like 10x faster. I'd like to see guile improve in those rankings. > > Note that Java, C# and go are performant despite GC. Well, some decades ago, there were a couple of PhD's down the hall from me, and they were full-time assigned to improving java GC performance. That's all they did, for years. And this was a long time ago. If java wasn't good at this by now, there'd be ... it would be incomprehensible. > The biggest > performance drain for high-level programming languages such as Scheme or > Python is the absence of compile-time typing. In fact, Python is adding > optional static type annotation (which I'm afraid might be a big > mistake). > Well that's a can of worms. Aside from static typing to benefit the compiler, there's static typing to help the programmer understand what the heck is being passed as an argument to some poorly documented, overly-long function. This has always been a kind-of bugaboo of reading other people's scheme code -- its too often too hard to understand. This is also why python is popular: any shmo feels they can code in it; its the new visual-basic of the 21st century, with all of the culture and code-quality that implies. One "obvious" solution to adding types in scheme is to go to caml/haskell, but this does not obviously improve readability. (although types are effing fantastic from the math/theoretical side: my system makes very very heavy use of types and type constructors, But its unrelated to scheme) For a certain class of problems, coding in python simply doesn't work: graph data structures are naturally recursive and functional; they're a natural fit for scheme, and are hard/painful/nearly impossible to manipulate in python. > > You aren't thrashing by any chance...? > No. > > > I believe that decision is left for GC_malloc(1L): > OK thanks --linas -- *"The problem is not that artificial intelligence will get too smart and take over the world," computer scientist Pedro Domingos writes, "the problem is that it's too stupid and already has." *