3 ms·
Racket is interesting, but what turns me off about the language is that they decided they needed OO for some things and they... implemented a single dispatch ba
by alien_at_work 9y ago
Racket is interesting, but what turns me off about the language is that they decided they needed OO for some things and they... implemented a single dispatch based system. Why would you limit yourself this way if you don't need to? Single dispatch systems force you into all kinds of "power deficiency patterns" (e.g. all double-dispatch patterns) that just wouldn't be necassary if you do multiple dispatch a la CLOS. You don't have to re-implement all of CLOS if you don't want but at least use something like generic functions instead of the inferior (and ugly in Racket) single dispatch style.
- moron4hire 9y agoDynamic dispatch is available for functions: https://docs.racket-lang.org/multimethod/index.html https://docs.racket-lang.org/multimethod/index.html Since Racket methods are just functions around a class context, it seems like it should be possible to make these into methods.
- alien_at_work 9y agoIt's good that they have that, but most of the OO API's (including the web server stuff AFAIR) is single dispatch.
- samth 9y agoThe web server doesn't really use the object-oriented features. OO is mostly used in the Racket standard library for the GUI, where it models existing single-inheritance GUI libraries.
- sigstoat 9y ago> Racket is interesting, but what turns me off about the language is that they decided they needed OO for some things and they... implemented a single dispatch based system. yeah, frustratingly they have a great core language and then tack on optional OO, generics or static typing systems that are about 80%-90% baked. then those systems see just enough use they can't be ignored, but not so much that someone steps up to finish the last bit of baking.
- e12e 9y agoAfter learning about islisp/isolisp[1] this decision seems even more strange. [1] http://www.islisp.info/ http://www.islisp.info/