Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am currently a full-stack web developer working mainly in Ruby/Rails/Javascrip

ID: 652058 • Letter: I

Question

I am currently a full-stack web developer working mainly in Ruby/Rails/Javascript. The languages I use on a daily basis (ruby, css, javascript, php) are great, but they are very dynamic, high level languages. I would like to learn a lower level, preferably statically-typed, non memory-managed, language that gets me closer to the underlying architecture. However, I would like to approach this language from the angle of a web developer, and hopefully utilize the knowledge I gain to make me a better web developer. Any advice?

Explanation / Answer

This is a great time for language innovation. There are multiple new languages that try to combine the performance and type safety of statically typed languages with some of the ease and features (generic coding, introspection, ...) more typical of dynamic languages. Leaving aside those that are closely tied to one vendor's products or another (e.g. Microsoft's C# or TypeScript, or Apple's Swift):

D
Go
Julia
Nimrod
Rust
Most of these languages do not have "default" web programming frameworks or idioms yet, so there's lots of room for experimentation, especially when combined with their new features (eager multithreading, macros, interfaces, traits, ...).

There are also some interesting riffs on the Java ecosystem:

JRuby, Ruby on the JVM
Groovy, what Java would have been if it were dynamic
Scala
In addition, there are more structured, more typed variants of traditional Web languages:

Hack, a typed PHP
Dart, a structured JavaScript-y language
Studying any of these and the way that they handle Web apps will let you compare and contrast to the dynamic language environment with which you're more familiar.