I've been catching up on the Lang.NEXT videos and I just watched
the one about Hack and converting lots of PHP code to Hack at
Facebook.
https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Hack
The essence of the talk is essentially gradually introducing
strong constraints on a codebase to improve quality. I think the
most interesting part for us is that about thirty minutes in the
question is asked, can this be done generally in the industry,
automatically? He is again talking about something which I think
is a lot like 'gofix' for Go.
Now Rob Pike pin pointed a point for Go's growth coming from
fixing on a version 1.0 for the language, so everyone could know
what was going to happen. So there's evidence of guarantees of
stability leading to increased adoption, although correlation
doesn't imply causation. but it does make me wonder. Should we be
developing ways of saying, "We're just going to change this thing
which isn't so great, here's a warning, run the tool to fix it
for you," or similar?
I know one of my pet peeves is null pointers and null class
references, as an example. Either that or an Option/Maybe monad
are nice to have for when you want to implement linked lists and
so on, but I think actually the number of times you want to allow
for something which is either something or nothing are quite
small. So it would be nice to have tools so we could one day say,
"Nah, we're going to make it harder to create null pointer
errors, and here's a tool to assist you with that transition."
I just tossed in one hot topic with another one, so I'll duck for
now to avoid a beheading.