[racket] Typed Racket - Successful Conversion

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Tue May 24 19:23:04 EDT 2011

Ray -

Thanks for the happy story!

As for compile times, what I typically do is use `raco make' on the
command line to compile things, which means that typechecking doesn't
have to happen repeatedly.  For a 10k line project, I would expect
this to make a substantial difference when changing files at the
leaves of the hierarchy.  For the root of the hierarchy, there's not
much to be done with the current architecture of Racket other than
making Typed Racket faster (which we're working on).

On Tue, May 24, 2011 at 4:09 PM, Ray Racine <ray.racine at gmail.com> wrote:
> This weekend I completed a 3 weekend exercise converting just short of 10K
> wc -l lines of racket code.  All told it took 3 weekends to get there.  I
> did it because it appears 10K lines is about my conceptual limit given my
> slovenly documentation habits.
> The old code worked just fine, however it was no longer readily apparent to
> my why this should be the case.
> Some observations:
> 95% of the time adding signatures was very straight forward.
> In <2% I had some difficulties, some self inflicted, some hitting some rough
> areas where things are not yet competed in typed Racket, I was always able
> to come up with something that worked.
> Was surprised by the number of sunny day assumptions in my original code
>  Typing forced me to handle all "cases".  The code is now more robust then
> before.
> The typing syntax overall is really quite good.  It did not come across as
> an afterthought bolt-on.
> require/typed works cleanly to "lift" untyped racket code from 3rd party
> libs into typed land.
> The time it takes to initially type check a high up in the module hierarchy
> module does start to impact the development cycle however.
> Overall the doing and completing of the migration took a pile of code on the
> verge of anarchy and put it back under control.  I feel confident it could
> double in size a number of times and remain so.
> I think typed racket is a huge win.  Controversially, (oh boy) I'd go as far
> to say Racket should just go 100% typed from bone to guts, top to bottom.
> Racket - The Programming Language With The (Soon To Be) Most Advanced Type
> System In The World.  *whew*
> Who'd a thunk it.
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users

sam th
samth at ccs.neu.edu

Posted on the users mailing list.