New
The latest blog posts to take off on Hacker News. 3,709 posts.
Smalltalk Envy
I myself was not on the famous C3 (Chrysler Comprehensive Compensation System) project in 1996-2000 that is pivotal to ‘Extreme Programming’ (XP). That project used Smalltalk, and team contribution was provided by Object Technology International’s ENVY version control system. I wanted to know more about that so I…
C++17 is formally approved
[revised 9/8 to reflect that there is no need to wait till the next WG21 meeting] As I mentioned in my Kona (March) trip report, WG21 (the ISO C++ committee) completed work on C++17 at our March me…
How Python does Unicode
As we all (hopefully) know by now, Python 3 made a significant change to how strings work in the language. …
Moving Java Forward Faster
For over twenty years the Java SE Platform and the JDK have evolved in large, irregular, and somewhat unpredictable steps. Each feature release has been driven by one or a few significant features, and so the schedule of each release has been adjusted as needed — sometimes more than once! — in order to accommodate the…
Go Assembly by Example
Go is an open source programming language designed for building simple, fast, and reliable software.
Comparing C and C++ usage and performance with a real world project
The relative performance of C and C++ is the stuff of folk legends and Very Strong Opinions. There are microbenchmarks that can prove differ...
Making a GTK Video Player with Haskell
Using Haskell, GTK+, GStreamer, xlib, and the haskell-gi bindings, we build a video player complete with seek and volume controls.
What's Functional Programming All About?
There are many descriptions floating around the internet, trying to explain functional programming in simple terms. Unfortunately, most discuss details only loosely related to functional programming, while others focus on topics that are completely irrelevant. So of course, I had to write my own!
BuckleScript: An OCaml to JavaScript compiler
RECENTLY I've been paying attention to the BuckleScript compiler from OCaml to JavaScript (ES5, to be exact). I'm seeing some significant a...
Dylan: A New Language Is Blowin' in the Wind (1992)
Cupertino, Calif. – Programmers will be able to use a new computer language called Dylan to build applications on the Newton Personal Digital Assistants. While this language incorporates numerous advances from the world of academia, many developers wonder how well it will perform in the real world. Dylan is an…
Weird Python Integers
Python integers are stranger than I thought and playing with them can have surprising consequences.
Why I haven't jumped ship from Common Lisp to Racket just yet
Matthias Felleisen jested "Why are you still using CL when Scrbl/Racket is so much better :-)" ? My response was as follows: Dear Matthias, you are right Racket is so much better in so many dimensions. I use Lisp because I just can't bear programming in a language without proper syntactic…
Things about programming I learned with Go
Go has been gaining a significant popularity over last few months. Language-related articles and blog posts are written every day. New Go projects are started on Github. Go conferences and meetups attract more and more people. This language certainly has its time now. It became a language of the year 2016 according to…
The ‘here is’ key
The Lear Siegler ADM-3A terminal is a very important artefact in computing history.
Rise and fall of JVM languages
Every now and then, there’s a post predicting the death of the Java language. The funny thing is that none of them writes about a date. But to be honest, they are all probably true. This is the fate of every language: to disappear into oblivion - or more precisely to be used less and less for new projects.
Async/Await will make code simpler
Or How I Learned to Stop Writing Callback Functions and Love Javascript ES8.
What is Hindley-Milner and why is it cool? (2008)
Anyone who has taken even a cursory glance at the vast menagerie of programming languages should have at least heard the phrase "Hindley-Milner". F#, one of the most promising languages ever to emerge from the forbidding depths of Microsoft Research, makes use of this mysterious algorithm, as do Haskell, OCaml and ML…
Why Elixir (2014)
It’s been about a year since I’ve started using Elixir. Originally, I intended to use the language only for blogging purposes, thinking it could help me better illustrate benefits of Erlang Virtual Machine (EVM). However, I was immediately fascinated with what the language brings to the table, and very quickly…
A programming language from scratch: 3 steps to an interpreter
A little while ago I wrote about 16bitjs, a 16 bit virtual machine written in javascript. It implemented a custom CPU architecture and assembly language, assembler, and debugger. I had the thought …
The Problem with F# Evangelism
There seems to be a constant struggle to convince seasoned C# developers to give F# a try. Which is a pity because language and concepts deserve better.
Rustgo: Calling Rust from Go with near-zero overhead
Go has good support for calling into assembly, and a lot of the fast cryptographic code in the stdlib is carefully optimized assembly, bringing speedups of over 20 times.