On Thu, Jul 1, 2010 at 1:43 PM, Bakul Shah <bakul+pl...@bitblocks.com> wrote: > On Thu, 01 Jul 2010 10:12:00 PDT Russ Cox <r...@swtch.com> wrote: >> > I do wonder if this is what the Go authors are trying to do in a >> > different area to xml; reintroduce good practice under new terminology. >> >> I'd like to know which good practices Go is merely reintroducing. >> The concurrency model, sure, but I believe the approaches to >> interfaces and name visibility are new, as is having a garbage >> collected language that lets you take the address of fields >> in the middle of objects. If you know of earlier work that already >> did these, I'd be interested to hear about it. > > I haven't played with go much but aren't go's interfaces much > like Haskell's type classes? The latter do seem much nicer to me. > http://www.haskell.org/tutorial/classes.html
Of the many languages that try to do type parameterization with type classes as restrictions, they all seem to be very clunky compared to Haskell. `Interfaces', the way they are invariably implemented, don't cut it -- too limiting and imposing. `Templates' and `Concepts' together are close to the Haskell way in spirit, but the execution seemed to suffer from being bolted onto C++ and fighting with its flavor of OO. Duck Typing isn't a solution, it's ignoration just asking for trouble. In any case, getting a type system to be sane and please more than 90% of the users is hard (insoluble?). Haskell is getting bigger, and you can see some of the expansion is related to corner-cases in dealing with the type system (multi-param type classes & fundeps, existential types, GADTs, etc.) > > Apple's Obj C is now GCed so I think it will allow you to > take address of a field in the middle of an object. You can > use Bohm-Demers-Weiser conservative GC with C too! > > Perhaps not the same as in go but in the same neighbourhood, no?! > >