1. 10

  2. 2

    I got excited thinking this was going to be about porting the Ruby interpreter to Crystal :P

    1. 2

      There does seem to be an interesting trend (I hesitate to say “sea change”, much as I might like to) going on here. It might just be where my head is at right now, but it doesn’t seem like I’m the only web programmer, who came up in a dynamic, interpreted language (for me it’s Python), now turning back to the world of static typing and compilation in order to reap some of the benefits of greater type safety and greater performance.

      It might be a matter of the web stack wave cresting a little bit; Django and Rails are quite well established and the pattern they provide of quickly spinning up a serviceable web app is no longer a novelty; it’s an expectation.

      For my own part I know it’s also a matter of my professional needs naturally expanding into areas where performance is a real concern and Python just can’t keep up.

      But it seems like it’s also a matter of this new generation of performance-oriented languages that have really learned some of the lessons around expressiveness that Python and Ruby have taught us. Having been educated in C++ and a little bit of Java (which I particularly hated writing), the expressiveness and ergonomics of Python were an incredible breath of fresh air. When it came time to start writing more performant code, I was frankly not particularly willing to dip back down into C++, with all the syntactical unpleasantness and memory management that entailed. But we no longer have to make that tradeoff; Go, Rust, Nim, Crystal (and more to come—Myrddin next?) all represent a healthy new crop of languages that have decided to return to bare metal, but are willing to adopt many of the programmer-friendly advancements of the last 20 years or so.