>Why a new language? The goal of Funcgo is to combine the readability of the Go language with the semantics of Clojure [...] Clojure is difficult to read for programmers unfamiliar with Lisp syntax.<p>So funcgo is really just Lisp without parentheses... again.
Glad to see a language taking inspiration from go. Are other targets (ie a cpython style native interpreter) being considered?<p>I'd love to see a scripting language with go's type system (and concise syntax for declaration, type inference and built in collections) but support for operator overloading and the ability to link in external shared libraries. Basically I want python+numpy (ie external C/fortran numerical code wrapped with pretty operator overloading and a repl) but with go style syntax and pointers.
I've toyed with this idea a bit (compiling a more familiar language down to Clojure).<p>This project in particular gives some of the benefits of Clojure (JVM, expressive language, immutability), but I don't see any easy way to add new constructs to the language like macros without modifying the compiler itself. Can you modify the grammar that is fed to Instaparse at runtime?<p>That being said, the current branding and name confused me initially. I was expecting a full Go to Clojure compiler, but it appears that this is mainly a language that has similar syntax to Go which compiles to Clojure, which is still very cool, just different.
Maybe it would be cool to improve upon flex/bison/jison and make it easier for everyone to create or modify the programming language of their choice with platform plugins that let people connect their own programming language to the platform of their choice (JVM, .Net, straight up compiled into a binary). I'm really mostly thinking about syntax of the language really, but you could go further and customize the typing system and how scopes work and go all the way down the rabbit hole as much as you want. As long as the underlying base system is there, and it runs on the things you want it to run on, it would be fine.<p>Basically: Custom language -> some intermediary form which would probably end up having some restrictions on language design -> to the thing you want it to run on.
Frankly, IMHO this combines the worst of two worlds: go's non-lispy syntax and clojure's ... dilatoriness/slowness & fragility of its tooling. I'd much prefer a clojure (or rather scheme) that compiles to go.
Go is targeted for developers happy with boring imperative programming and the team does not seem to be willing to add the required support to do otherwise.<p>Personall I rather use a proper multi-paradigm language instead of bandaid tools.<p>Congratualtions on the work, though.
They missed a trick calling it 'funcgo' instead of 'gofunc'; just think of the tag line:<p><pre><code> gofunc yourself</code></pre>