News for hackers. Stuff that matters.
Re:Upgrading GitHub from Rails 3.2 to 5.2 by JohnBooty on Friday September 28, 2018 @04:47PM (#18096922)

    > But after you've finished getting through the stuff 
    > that all languages share (hardware sucks, dependencies 
    > suck, etc), a dependently typed language will be a 
    > matter of fixing compiler errors, not watching 
    > percentages of 500s in prod and crossing your fingers.
I am speaking from very direct experience here.

I was involved in a Rails 3.x --> Rails 5.x upgrade of one of the larger Rails monoliths in the world and the trivial sorts of things a compiler can catch were... well, also pretty trivial in our upgrade path. Just not quite as trivial as they'd be with a compiled language (nobody's denying they have the edge here)

    > To model the constraints you create in a dependently typed
    > language, you have to create a set of tests and checks in 
    > your dynamically typed language which are basically the 
    > equivilant of a full dependent-type-system.
No, that's not how you do it.

You don't "model the constraints" explicitly. You write integration tests, same as you'd do in any sort of language. If MethodA from Class1 is passing the wrong stuff to Class 2 from MethodB, your integration tests will fail. At least, assuming you've got proper coverage.

But even in a staticly typed, compiled language you have to write that test anyway, right? Because you need make sure that code path actually works anyway and MethodA is getting the correct response from MethodB there.

There are definitely advantages to strongly typed, compiled languages! To be honest, after a few years in Ruby land, I'm ready to GTFO and go back to something a little more static. But Ruby's not the nightmare you describe it as.

There are no comments on this comment yet.