Dynamic languages have evolved quite a bit over the past few decades. While there’s always room for improvement, the current generation of languages have rich semantics and expressive syntax, making for a pleasant developer experience. Developers can clearly represent ideas, decreasing the maintenance burden while supporting rapid development. Dynamic languages such as Python, Ruby, JavaScript, PHP, and Lua power a substantial portion of web applications and services today. However, diminishing returns in terms of single-core performance and memory bandwidth improvements combined with the limited computational resources available in budget-minded cloud computing have highlighted the inefficiencies of language interpreters.
To remain relevant in the decades to come, dynamic language VMs must make a concerted effort to reduce overhead and make effective use of performance features made available by the underlying platform. Dynamic optimization through JIT compilation has proven to be an effective mechanism for improving dynamic language performance, but building and maintaining a JIT compiler is an expensive undertaking. Meta-compilation promises to reduce those costs, but incurs other costs that hamper adoption in industry. Through the lens of a company deploying thousands of Ruby projects into production, we assess the limitations of current VMs, highlight the most impactful advancements, and consider what’s most important for the coming decades.
Tue 24 OctDisplayed time zone: Lisbon change
14:00 - 15:30 | |||
14:00 30mTalk | JITs are Nice, but Why Aren’t We Using Them? DLS Kevin Menard Shopify | ||
14:30 30mTalk | Keeping the asm in Wasm – Running high-level languages on a low-level VM DLS Andreas Rossberg Independent | ||
15:00 30mTalk | Language Runtimes for the New Cloud Era DLS Rodrigo Bruno INESC-ID - IST-ULisboa |