On 07/01/2015 10:47 AM, John Carmack wrote:
S-expressions actually are one of the core wins from my use of lisp so far --
embracing read/write (and the associated bandwidth cost) as a wire protocol
over yet another hand crafted binary format has been a significant win
(however, the flexibility of the win seems to fight with static typing, perhaps
at a fundamental level, in my limited typed-racket experience so far -- a good
topic for discussion?).
Definitely a good topic for discussion.
Where do you predict fights with static typing? Or, if it's just a
general feeling based on past experience with static typing, how do you
expect to use it?
There's every chance that Typed Racket's union types, singleton symbol
types, and occurrence typing will make it fairly easy to type an
s-expression-based wire protocol; e.g.
(define-type Command (List '<command-name> <arg-types> ...)
(define-type Commands (Pair 'begin (Listof Command)))
(define-predicate valid-commands? Commands)
At a rough count, I've written more than 100,000 lines of Typed Racket
code, much of which has had to be available to call in untyped Racket
without significant performance loss. I admit that Typed Racket is the
only Racket language that has made me want to throw things, but that's
increasingly rare, it's been much more pleasant than other type systems
I've used, and I'm pleased with the guarantees and increased performance
I've gotten from it.
Neil ⊥
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.