5 ms·
One of my many probably-going-nowhere hobby projects is a modern Prolog. I think the module system especially is a place where we need innovation. I'd like to
by cbarrick 1y ago
One of my many probably-going-nowhere hobby projects is a modern Prolog. I think the module system especially is a place where we need innovation.
I'd like to see someone do for Prolog what Clojure did for Lisp.
- brudgers 1y agowhat Clojure did for Lisp Hickey’s goal was improving JVM programming ergonomics. It was not changing Common Lisp (or Scheme). Sure, Clojure exposed some programmers to lisp, but lisp shops didn’t convert to Clojure. JVM shops did adopt it in part because Clojure “is just a Java library.”
- tyre 1y agoYep. The parallel here would be taking logic programming and opening it to new users. Prolog or systems like CLIPS are super powerful and map to common problems better than other tools, but are Scary and Niche and Unknown.
- pjmlp 1y agoWhich is why the Clojure community is the coolest from guest languages on the JVM, as they embrace the platform, instead of dissing the platform like the other one used to bootstrap a mobile SDK ecosystem.
- zbentley 1y agoNot entirely wrong, but … only one of Clojure and Kotlin is close enough to Java that it’s inspiring meaningful improvements in the upstream ecosystem. If the “dissing” hypothesis were true I’d expect Clojure to be the one influencing the most change, but it’s not.
- pjmlp 1y agoOh boy are they so true, one of the reasons I don't care about the Kotlin Virtual Machine any longer. So full of themselves on how much better they are than Java.
- yawaramin 1y agoImho, Scala is the coolest of the JVM guest languages :-)
- pjmlp 1y agoThe language yes, the way the community embraces the platform and ecosystem that makes their existence possible in first place, not as much.
- yawaramin 1y agoWhat do you consider as 'embracing the platform and the ecosystem'? As far as I'm aware Scala is fully interoperable with anything on the JVM.
- pjmlp 1y agoCommunity, I wasn't talking about the language itself. It puts me off having a programming language that depends on the Java the Virtual Machine, Java the programming language, Java the ecosystem, so that their language could exist in first place, and then talk down on it. Still waiting on Scala Native or Kotlin Native to take over JVM and the standard library. Clojure community isn't like that, while they try to stay on Lisp like land, they embrace the ecosystem (JVM and JS), without putting it down at every opportunity.
- yawaramin 1y agoHow can Scala 'talk down' the platform it exists on? This doesn't even make sense. You know the creator of Scala made deep contributions (generics) to the JVM, right? Scala's sbt is used by many Java projects as a build system. Its Play Framework and Akka actor system are super popular in Java too because they provide idiomatic Java APIs. Projects like Spark keep JVM relevant for Big Data. SoftwareMill's Ox project builds directly on top of JVM virtual threads and structured concurrency. I haven't even heard of any equivalent Clojure project. You have it exactly backwards, I'm afraid.
- ww520 1y ago20 years ago I had the same thought. I actually started implementing the Rete algorithm. Midway through I realized, “hey, this is just relational algebra. May be I can integrate it in a relational DB engine. Use rows in tables as facts and materialized views as generated facts.” It soon spin out of scope and I lost interest. Later I did use what I learned to build a rule based event processing engine.
- crustycoder 1y agoI still have a fanfold printout somewhere of the OPS5 implementation I wrote in C, back in the 80s :-)
- veqq 1y agoDo look up annotated logic: https://www.sciencedirect.com/science/article/pii/074310669290007P https://www.sciencedirect.com/science/article/pii/0743106692... as e.g. utilized by https://github.com/lab-v2/pyreason https://github.com/lab-v2/pyreason which is the best summation of the various fuzzy logics more modern prologs experimented with
- rtpg 1y agoIt's not the same flavor of logic language but I've been trying to find some interesting things to do in Curry. The functional dependency component it introduces makes some problems a lot easier to deal with in Curry than in Prolog (or at least that's what someone told me one day....) The project as a whole exists and everything, but even things like just having an easy-to-install implementation on Homebrew hasn't happened yet, so if you're up for some sweat and tears and low hanging fruit, it feels right to me!