Excuse me if this is implemented and just not in the README:
It would be super awesome if there was a type inference engine that fed into the UI to increase productivity.
For example, if I start to define a function that returns an int, when I go to write out the definition, it suggests functions to me that return ints.
Suppose I pick a function "string_length" which takes strings and returns ints. Now I continue the composition, so it suggests functions (either built-ins or user-defined) which return strings.
Suppose I pick "bool_to_string" which takes a bool and returns strings. Then to finish off the function I pick from a list of bool-returning functions, say I pick "xor".
So now with a few keypresses I have defined a function that, in C, would look like:
int foo(bool x, bool y) {
return string_length(bool_to_string(x ^ y));
}I've got a few blog posts about it here: http://gliese1337.blogspot.com/2014/03/parles-language-with-...
2. I would flip out even more if this UI was available for more mainstream functional languages like Haskell or Clojure. Do libraries break the process? I don't think they have to.
Stack based languages resonate with me as a Forth and PostScript programmer!
Please check out this pie menu based visual PostScript debugger for NeWS, called the PSIBER Space Deck, which I hope inspires you, and I'll be glad to answer questions about: http://www.donhopkins.com/drupal/node/97 Source: http://donhopkins.com/home/code/litecyber.ps.txt
One nice thing about PostScript is that it's homoiconic: PostScript code is just PostScript data. So that lets you use a data structure editor as a code editor.
It had a generic set of pie menus that applied to all objects for editing the view and doing standard copy/paste/edit/eval operations, but there was also one object-type-specific submenu to the north-east. So there was a common set of gestures across all objects, that you could learn to use easily.
It's purely functional and stack-based. This is a clever approach to the UI problem - how to program when you can't typeLongWords? Answer: use the stack! I expect the act of writing programs will feel a lot like using an old programmable calculator.
Really excited to see how this progresses!
PS: How do I run that demo locally?
I'll add official build info tonight, but it's a cordova app, so: (also be aware most things are buggy or simply not implemented right now)
# make sure you have npm, gulp, & cordova
$ cd client
$ npm install
$ gulp app
$ cd ../mobile
$ cordova platform add android (or ios!)
$ cordova run android (or ios!)