Earlier quoted context omitted.
Functional programming kind of screws itself when it comes to "implementing" modern good IDEs; the aversion to state makes it difficult to implement good tree-incremental error resistant parsing and type checking that is usable in a language aware editor. I've developed plenty of advanced IDE infrastructure; e.g. see http://research.microsoft.com/en-us/people/smcdirm/managedti... and http://research.microsoft.com/en-…
Yeah, incremental parsing is quite anti-functional--but tree editors don't need to parse. Type checking I am less convinced. With syntax-directed methods one should be able to hash-n-cache each sub expression and get incremental for free. In the case of syntax directed + passing hints down the tree, just keep track of the hints too. [...let's not talk about Damas-Milner. :)] Then, which I think Unison goes for, there…
Unison: a next-generation programming platform
131–135 of 135 posts
Re: Unison: a next-generation programming platform
#132Earlier quoted context omitted.
....which is also 8 paragraphs of fluff and trying to connect with the audience
I understand clearly what it is; perhaps it's only fluff to you because it's aimed higher than your technical reading level?
1-2 months to research Elm and transition the Unison editor? Okay that's all I need to know.
Realistically you would probably only be able to work part-time because you are a paid consultant? Okay cool that's self explanatory, you need to make money and we get that.
This article is informative, but it could've been edited to a maximum word count.
P.S. Thanks for being mature. I willingly admit that I'm young and I have a lot to learn, but I do happen to know terms like HTTP+JSON and why a one-file-per-hash system is an insanely inefficient implementation.
Re: Unison: a next-generation programming platform
#133Earlier quoted context omitted.
The language allows it to be easily done. The model definitions can be simply transformed into code that directly handles those individual model artifacts. This is a super common paradigm in Lisp, especially when it comes to class/structure/data definitions, where support functions of any type can be generated straight from the defs. There is no "automatic" language feature there, because no definition of "automatic"…
Wrong. In CL there is a well defined distinction between read time, compile time, load time and run time.
While these "*-time"s are distinguished, they can be invoked and interplay arbitrarily, unlike most other languages. It's all fundamentally run-time, in contrast to those, especially when considering threaded environments where compilation and run-time execution can happen simultaneously.
Re: Unison: a next-generation programming platform
#134Earlier quoted context omitted.
Yeah, incremental parsing is quite anti-functional--but tree editors don't need to parse. Type checking I am less convinced. With syntax-directed methods one should be able to hash-n-cache each sub expression and get incremental for free. In the case of syntax directed + passing hints down the tree, just keep track of the hints too. [...let's not talk about Damas-Milner. :)] Then, which I think Unison goes for, there…
Coupled with type inference, which you will need if you use a structured editor or not, then incremental type checking is indeed very non functional.
But I am also saying you don't need to do that. Certainly don't need type-inference in the case where the ASTs are typed by construction. And the syntax directed algorithms can also infer somewhat.
You can also alternatively cache the result of global inference, which sucks for refactoring but preserves purity.
Re: Unison: a next-generation programming platform
#135Earlier quoted context omitted.
Coupled with type inference, which you will need if you use a structured editor or not, then incremental type checking is indeed very non functional.
We agree incremental use of global type inference algorithms is non-function. But I am also saying you don't need to do that. Certainly don't need type-inference in the case where the ASTs are typed by construction. And the syntax directed algorithms can also infer somewhat. You can also alternatively cache the result of global inference, which sucks for refactoring but preserves purity.