New
The latest blog posts to take off on Hacker News. 381 posts.
Functional programming in C (2013)
0.1 Discriminated unions in C 0.2 Nested functions and lambda variables 0.3 Automatic cleanup of local variables 0.4 Data structures 0.5 Wrapping up This post/program (as I’m writing it in literate…
What Template Haskell gets wrong and Racket gets right
Why are macros in Haskell terrible, but macros in Racket great? There are certainly many small problems with GHC’s Template Haskell support, but I would say that there is one fundamental design point which Racket got right and Haskell got wrong: Template Haskell does not sufficiently distinguish between compile-time…
Exponential time complexity in the Swift type checker
One of the most annoying problems in Swift is when the compiler gives an 'Expression was too complex to be solved in a reasonable time' error. I look at why this error occurs, how to avoid it and talk about how this should be solved in a future compiler update.
Destroy All Ifs – A Perspective from Functional Programming
Replace conditionals with lambdas for simpler code that's more powerful
Announcing GenStage
GenStage is a new Elixir behaviour for exchanging events with back-pressure between Elixir processes. In this blog post we will cover the background that led us to GenStage, some example use cases, and what we are exploring for future releases.
Shipping Rust code in Firefox
TL;DR: Starting with Firefox 48, Mozilla is shipping its first production Rust code, with more to come! Mozilla ❤ Rust It's hard to believe it's been almost seven years since ...
Composability: From Callbacks to Categories in ES6
Exploring Functional Programming ideas like Monads and Kleisli Category in JavaScript. Starting from an alternative solution to Promises.
Introducing Verve: minimalistic, static, functional language
An experimental, minimalistic, static, functional language with zero dependencies.
Native reactive spreadsheet in 17 LOC
After the release of our reactive framework a few days ago, we though it would be a good idea to implement the, often mentioned, spreadshee...
Why is Python slow
In case you missed it, Marius recently wrote a post on the Pyston blog about our baseline JIT tier. Our baseline JIT sits between our interpreter tier and our LLVM JIT tier, providing better speed…
Final features of C++17
With last weeks C++ committee meeting in Oulu, C++17 is feature complete and on its way to become an international standard. After the last meeting in Jacksonville I had little hope to see big surprises, but Oulu managed to add a few important and interesting features to the new standard. There is a very good overview…
How to implement a programming language in JavaScript
This is a tutorial on how to implement a programming language. If you ever wrote an interpreter or a compiler, then there is probably nothing new for you here. But, if you're using regexps to “parse” anything that looks like a programming language, then please read at least the section on parsing . Let's write less…
Introducing MLFE: ML-Flavoured Erlang
What ML-Flavoured Erlang is a statically typed language with basic parametric polymorphism (generics) for the Erlang VM that I’ve been hacking …
Announcing .NET Core 1.0
Updated (2017): See .NET Core Releases to learn about newer releases. We are excited to announce the release of .NET Core 1.0, ASP.NET Core 1.0 and Entity Framework Core 1.0, available on Windows, OS X and Linux! .NET Core is a cross-platform, open source, and modular .NET platform for creating modern web apps…
Erlang/OTP 19.0 has been released
The official home of the Erlang Programming Language
Ruby 2.4.0-preview1 released
We are pleased to announce the release of Ruby 2.4.0-preview1.
Elixir v1.3 released
Elixir v1.3 brings many improvements to the language, the compiler and its tooling, specially Mix (Elixir's build tool) and ExUnit (Elixir's test framework).