[Grace-core] Minutes of Teleconference 2013-07-24

James Noble kjx at ecs.vuw.ac.nz
Tue Jul 30 11:13:33 PDT 2013


On 30/07/2013, at 18:53 PM, Andrew P Black <black at cs.pdx.edu> wrote:

> Most valuable to the learner is systematic naming within our own APIs.   Which means that we can't just carry stuff over from some other language: we have to de-design.

absolutely!

> Why not:
> 
> 	theCollection.do { each -> stuff }
> 	theArray.doWithIndex { each, ix -> stuff }
> 	4.timesRepeat { stuff }

sure. 

> What's the value of adding dialect-level methods so that 

to look more procedural, for "procedures first" 
which may go quite well e.g. with the logo-like turtle graphics dialect...

also I think there may be discoverability benefits: an IDE could present 
those kind of  pseudo-statements from the dialect directly to programmers

see The Implications of Method Placement on API Learnability 
(natprog-FSE2008-p105-stylos.pdf  in the papers archive)

> It's just one more level of syntax to explain—students will need to learn to read the collection APIs themselves.  

sure. but also it's three request names to learn rather than just one - they could all be "do"! 

> The "iter" objects that Michael put in the libraries are useful when one needs multiple streams, coming from multiple collections (as, for example, when implementing a merge).   They are overkill for implementing do, which can be done with a single method.  In contrast, thinking about error checking, putting some "fail fast" logic into iterators, as does Java, to detect modification of the underlying collection, might be really valuable for novices.

again, yes. 

there are whole big projects to do on just this.
for anyone thinking of going to SPLOOSHLA, I note the PLATEAU is due in a couple of weeks...

James


More information about the Grace-core mailing list