[Grace-core] comments from Philippe & UBC
James Noble
kjx at ecs.vuw.ac.nz
Sun May 12 17:30:51 PDT 2013
Hi
last week I talked about Grace at UBC, hosted by Philippe Kruchten - and here are some
comments from my notes about the talk and good discussions with Philippe afterwards.
I'd hoped to do this on wednesday, but... so it goes.
Kim & I also visited Jens Palsberg (currently HOD) and Todd Millstein @ UCLA on
thursday last week. So here are my memories from these talks:
UBC was particularly interesting because the CS department recently moved to Racket
(for their first semester programming course) followed by a course on programming &
maintenance taught in Java -- but with no lectures on the Java language... people just
have to pick it up as they go along. The first session of the 2nd course gives them a
1500line Java program that they have to modify (this is without even seeing imperative
code before...)
* I should remember to say that "types don't effect execution (except in typecase statements)"
or something like that --- For the UBC talk, I found some a form of words like
"types on method arguments & return values don't affect method dispatch"
* Question: what will we do about Numbers (once we want to teach them)?
- I said: this is on the todo list, we have some ideas & even some basic implementations
* Question: can people redefine while
- I said: not without explicitly overriding it, and a dialect checker could check it explicitly
* Exceptions
- we've got 'em, I didn't get to my slide about them either time
* Concurrency
- we don't want to bake anything in to the language, but use libraries or dialects
- it's hard when we're compiling to JavaScript to do this at all
* Why were there "brackets around {return 0}" ?
- (perhaps I should fix that slide to move the brackets closer to the else)
* x vs x:= what's the story there?
- same as Scala/Newspeak/Self, I think. although that's only partly right.
- there is a question as to whether we allow a space after the name, before the :=
if assignment is a method name, we don't usually allow spaces in method names
* why "!foo" rather than "not foo"
- a choice to follow C/Java &co, rather than Ada
* finalisers
- we don't officially have them; people writing GCs hate finalisers;
- we could have "finalizer {block}" which could even match "initializer {block}"
i.e. we have a design but we don't know if we want 'em or not
* sets & tuples & set or collection comprehensions
- we have yet to do a collection library design, although we have at least two attempts
- we know we need to do this...
* Why not make list of graded examples (w/ implementations in Java, C, Racket, Grace...)
to compare these languages
- this like KWIC, Pascal's Triangle, stuff from Wirth's Algorithms+Data Structures = Programs
(Kim says that I forgot to mention that he (via students) actually had many worked examples from his book translated into Grace.)
James
PS mostly unrelated, here's a rant about Ruby that I came across
http://madhadron.com/a-criticism-of-ruby
More information about the Grace-core
mailing list