-
AOT Compilation, Kernel, and other Dart Hackery
Tinkering around with kernel, Dart’s intermediate format… And more. Discuss on Hacker News: https://news.ycombinator.com/item?id=19844762 The continued development of Dart’s unified frontend (shared across the VM, dev compiler, dart2js, etc.) has made it possible for changes to be made to the language much more quickly. The common IR that Dart now compiles to is called kernel.…
-
Deploying Dart Apps to Linux
Basic guidelines for running Dart servers on VPS, on premises, or anywhere running Linux… So, you’ve written a backend for your app, and you’re ready to launch and debut your product to the world. There’s just one problem, though – you don’t have it running on a server yet, nor do you know how to…
-
Dependency Injection Patterns in Angel 2
A first look at Angel 2’s revamped DI functionality. Along with the many new features coming in Angel 2, the dependency injection has been rethought from the ground up, saying goodbye to the mirrors-powered package:container, and instead rolling a new package:angel_container, which is type-safe, and aimed for Dart 2, as well as Flutter. As one…
-
Parsing String Interpolations with ANTLR4
ANTLR is probably the best-known parser generator out there, and for good reason. It’s a powerful LALR generator that also generates listener and visitor classes, in a multitude of programming languages. Combine this with ANTLR4’s special features, like lexer modes, and lexer/parser actions, and building DSL’s and compilers is a lot faster, because the number…
-
Angel 2.0.0 is Almost Here – What it Means for You
Version 2.0.0 of the batteries-included Web application framework for Dart is coming very soon. Here’s what you need to know. Since early 2016, I’ve been working on and maintaining Angel, a server-side Dart Web framework designed to increase developer productivity by providing “all batteries included” out-of-the-box, and putting an emphasis on customizability and configurability. Like…
-
GraphQL is coming to Angel (and Dart)
What could be a "killer feature" for the Angel framework, is coming very soon. As my close friends will surely tell you, I have a habit of taking on multiple projects at a time, getting so excited to be trying something new, that I leave other projects in the dust. Thus, my previous effort to…
-
The Story of my Migration to Dart 2
The latest version of Dart promises improved type safety and better client-side support. What else will it bring? I am a power user of Google’s Dart programming language. I’ve always been a fan of the tooling and libraries, and since my first exposure to Dart almost three years ago, have published over 140 packages into…
-
Building an Esolang JIT with GNU LibJIT
Just-in-time, or JIT compilation, is no new development at all; languages like Java, Python, and the countless languages running on the .NET framework have leveraged JIT compilation for many years now. It can be said that JIT compilation provides the best of the compiled and interpreted worlds: fast startup and high-level features, but execution at…
-
10 Key Differences between C/C++
It might seem like second nature after a while, but for those new to programming, the abundance of language options can often be overwhelming, especially when many seem similar at first, but have different features and use cases. In this video, I give a brief (~24 minute) presentation explaining 10 of the key differences that…
-
Compiler Writing: Pratt-Parsing Types
As much as we might like to think that data types are fixed in place, data types are actually just as mutable as the values they categorize. Consider the following: Given: A type exists, by the name of `Int`.Given: Another type exists, by the name of `List`. How, then, could we describe a type named…