One thing that this kind of low level "interface" allows is a very rapid development of coding tools. How long until we see a context-context sensitive auto completion pop up? These language features would even allow more complex hints. Language analyzers can find bugs and note them right when writing code.
Of course, this is nothing new and already done in a few languages. But these features will make it easier (and hence faster) for the IDE to have some awesome coding features.
BBN Lisp had context sensitive error correction at least four decades ago. It was called the DWIM (Do What I mean) facility. It operated (in 1971) on unbound atoms and undefined function errors. If you misspelled a function name, typed an 8 or 9 instead of a left or right parenthesis, or typed an extra parenthesis, and then ran the incorrect code, the DWIM facility was called to help you. If you ran DWIM in "Trusting" mode, then changes would be made for you automatically. If you ran it in "Cautious" mode, you would be prompted to confirm proposed changes. If you didn't respond to the suggested changes within a certain time limit, the changes were made for you. BBN Lisp also had an "UNDO" function undid the side effects of any specific event, so there was no danger of it DWIM permanently munging your code. If you misspelled a command in the REPL (e.g PRETTYPRNT instead of PRETTYPRINT), the DWIM would understand that it was a misspelling and would then execute the right command.
BBN Lisp Manual (see section 17, which starts on page 335):
Yes, certainly, our current REPL is somewhat inflexible, but the (fully functional, but not something we want to drop in last minute - probably next release cycle) version of the REPL in the REPL.jl package as well as the IJulia Notebook already do some of this for e.g. completion of fields of a composite type.
Mostly vim, emacs and sublime (there's plugins for all of those). The folks at forio have also started an IDE for Julia, but last I looked they didn't have much more than an editor (and their website hasn't been updated in a couple months, so I'm not sure what the status is).
Comments
One thing that this kind of low level "interface" allows is a very rapid development of coding tools. How long until we see a context-context sensitive auto completion pop up? These language features would even allow more complex hints. Language analyzers can find bugs and note them right when writing code.
Of course, this is nothing new and already done in a few languages. But these features will make it easier (and hence faster) for the IDE to have some awesome coding features.
BBN Lisp had context sensitive error correction at least four decades ago. It was called the DWIM (Do What I mean) facility. It operated (in 1971) on unbound atoms and undefined function errors. If you misspelled a function name, typed an 8 or 9 instead of a left or right parenthesis, or typed an extra parenthesis, and then ran the incorrect code, the DWIM facility was called to help you. If you ran DWIM in "Trusting" mode, then changes would be made for you automatically. If you ran it in "Cautious" mode, you would be prompted to confirm proposed changes. If you didn't respond to the suggested changes within a certain time limit, the changes were made for you. BBN Lisp also had an "UNDO" function undid the side effects of any specific event, so there was no danger of it DWIM permanently munging your code. If you misspelled a command in the REPL (e.g PRETTYPRNT instead of PRETTYPRINT), the DWIM would understand that it was a misspelling and would then execute the right command.
BBN Lisp Manual (see section 17, which starts on page 335):
http://www.softwarepreservation.org/projects/LISP/bbnlisp/Te...
Yes, certainly, our current REPL is somewhat inflexible, but the (fully functional, but not something we want to drop in last minute - probably next release cycle) version of the REPL in the REPL.jl package as well as the IJulia Notebook already do some of this for e.g. completion of fields of a composite type.
If you're interested you can see the code for that completer here: https://github.com/loladiro/REPLCompletions.jl/blob/master/s...
btw, what ide or editor are people using with julia?
Mostly vim, emacs and sublime (there's plugins for all of those). The folks at forio have also started an IDE for Julia, but last I looked they didn't have much more than an editor (and their website hasn't been updated in a couple months, so I'm not sure what the status is).