My thought is that OO gets name completion because the syntax allows
the editor to infer what you want to write. If our syntax doesn't make
that explicit, we can make our editing environment make it explicit,
by entering sequences that don't correspond to characters, but to our
mental state.
Jay
On Tue, May 4, 2010 at 1:08 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>> That's not name completion. Right? That's all we're jealous of :-)
>>> On May 4, 2010, at 3:08 PM, Jay McCarthy wrote:
>>> He wanted to have a key-binding/structured editing where you would
>> introduce a new form where the editor knew what the pieces would be.
>> So if you did Ctrl-Define (whatever) it would insert
>>>> (define _ _)
>>>> You would then tab to one of the _s.
>>>> We talked about also doing things like Ctrl-Map or Ctrl-ListProc and
>> tab through different list-ing options. We talked about having a key
>> binding for "Get an identifier in scope" (which it would then tab
>> through inside out) vs "Fresh expression"
>>>> Jay
>>>> On Tue, May 4, 2010 at 1:00 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>>>>>> How?
>>>>>>>>> On May 4, 2010, at 2:53 PM, Jay McCarthy wrote:
>>>>>>> I think Guillaume ideas for editor templates and macros would be a
>>>> Racket analogue to this idea. Partially implemented in DivaScheme
>>>>>>>>http://www.cs.brown.edu/research/plt/software/divascheme/>>>>>>>> Jay
>>>>>>>> On Tue, May 4, 2010 at 12:49 PM, Matthias Felleisen
>>>> <matthias at ccs.neu.edu> wrote:
>>>>>>>>>> The other day when Simon PJ lectured here in Olin's compiler class (thanks, volcano), he mentioned that he was jealous of one thing in OO PLs: auto completion. You write down "anObject." and you immediately get all possible methods that you can apply here and you continue to guess your way thru program construction. (My words as you can tell if you know Simon.)
>>>>>>>>>> Of course this isn't about FP vs OOP. It's about two different points:
>>>>>>>>>> 1. syntax: OOP guys write down the first argument first (this) and then the method call and that is the way syntax works. I see nothing wrong with writing down
>>>>>>>>>> aList.
>>>>>>>>>> getting 2 possible completions in BSL/2:
>>>>>>>>>> -- length
>>>>> -- reverse
>>>>>>>>>> choosing one, say length
>>>>>>>>>> and having the editor insert it like that:
>>>>>>>>>> (length aList)
>>>>>>>>>> If I allow the editor to manipulate my writings, why not be a tad more radical than add a word at the current position.
>>>>>>>>>>>>>>> 2. Types. You need some restriction on the space in which you search and you might as well use types. So perhaps in Typed Scheme we should be able to change the IDE so it behaves like the above.
>>>>>>>>>> Ah, but we also have history against us. Who would have thought that (lambda (x) (make-posn 0 x)) is the first argument for mapping over a list of numbers?
>>>>>>>>>> Is it really hopeless for us? -- Matthias
>>>>>>>>>>>>>>> _________________________________________________
>>>>> For list-related administrative tasks:
>>>>>http://list.cs.brown.edu/mailman/listinfo/plt-dev>>>>>>>>>>>>>>>>>>>>> --
>>>> Jay McCarthy <jay at cs.byu.edu>
>>>> Assistant Professor / Brigham Young University
>>>>http://teammccarthy.org/jay>>>>>>>> "The glory of God is Intelligence" - D&C 93
>>>>>>>>>>>>>> --
>> Jay McCarthy <jay at cs.byu.edu>
>> Assistant Professor / Brigham Young University
>>http://teammccarthy.org/jay>>>> "The glory of God is Intelligence" - D&C 93
>>
--
Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay
"The glory of God is Intelligence" - D&C 93