[racket] Typed Racket - Successful Conversion
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20110524/ea9f7d97/attachment.html>