New
The latest blog posts to take off on Hacker News. 3,709 posts.
Comparing Rust and Java
It may not be obvious from my other blog entries, but I work as a Java developer. I also freely confess to enjoy it, which probably makes me part of some minority.
LL and LR in Context: Why Parsing Tools Are Hard (2013)
In my last blog entry LLand LR Parsing Demystified, we explored LL and LR parsers from ablack-box perspective. We arrived at a model for these parsers whereb...
How to stop functional programming
You go into work and discover that a coworker isn't happy with some code you wrote because they don't understand it. They go to your manager and tell them that you're being a problem by writing code they don't understand. Your manager, being very skilled in conflict resolution, makes a technical decision to avoid…
Rewrite Everything in Rust
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
How undefined signed overflow enables optimizations in GCC
Signed integers are not allowed to overflow in C and C++, and this helps compilers generate better code. I was interested in how GCC is tak...
State of the Haskell Ecosystem – February 2016
Update post for the State of the Haskell Ecosystem
Python 3 in 2016
My completely anecdotal view on the state of Python 3 in 2016. Based on my own recent experience, observations, and exchanges with other members of the Python community.
R, the master troll of statistical languages (2012)
Warning: what follows is a somewhat technical discussion of my love-hate relationship with the R statistical language, in which I somehow manage to waste 2,400 words talking about a single line of …
cgo is not Go
Some people, when confronted with a problem, think “I know, I’ll use cgo.” Now they have two problems.
Why Rust's ownership/borrowing is hard
Working with pure functions is simple: you pass arguments, you get a result — no side effects happen. If, on the other hand, a function does have side effects, like mutating its arguments or global objects, it's harder to reason about. But we've got used to those too: if you see something like player.set_speed(5) you…
Stack traces in GHCi, coming in GHC 8.0.1
Bluesky: @simonmar.bsky.social Github: simonmar Email: marlowsd@gmail.com LinkedIn: Simon Marlow
The Evolution of a Haskell Programmer (2001)
Some time later, I came across Iavor’s "jokes" page, including a funny bit called “ The Evolution of a Programmer ” in which the traditional imperative "Hello, world" program is developed through several variations, from simple beginnings to a ridiculously complex extreme. A moment’s thought turned up the factorial…
The Zen of Erlang
This is a loose transcript (or long paraphrasing?) of a presentation given at ConnectDev'16, a conference organized by Genetec in which I was invited to speak.
Writing a compiler in Ruby, bottom up (2008)
(To follow my compiler related posts, either subscribe to my main RSS feed, or the compiler specific one )
Amplifying C (2010)
On C++ Having programmed in C++ professionally for well over 10 years I have learned all of it. I have all the books, I know all the tricks...
“Screw it, I'll make my own” – The story of a new programming language
The story of a new programming language
So you still don't understand Hindley-Milner? (2013)
I was out for drinks with Josh Long and some other friends from work, when he found out I "speak math." He had come across this …
Rust vs. C++: Fine-grained Performance
If Rust is to take on work previously reserved to C++, we need to know how well it does what C++ does best. What’s fast, what’s slow? What’s harder to do, what’s easier? I wouldn’t know how to look up answers for those questions, but I can write programs.
Deep Learning in Rust
Meta Edit 2/2/2016: I wrote this post when deeplearn-rs was only a week old. This is more of a journal post where I reflect on things. To…
Rust for Web
RESTful API in Rust, impressions
I missed Nim (2014)
A year ago I wrote an article trying to round up new languages since year 2000 and what I think of them by just… glancing at them, or otherwise playing with them. I ended up sifting out the 4 m…
The Monad Challenges: Jump start your understanding of monads
There are still some rough edges here, and also a fair amount of content to be added. But if we waited until everything was polished before publishing, it would probably never happen. So feel free to make comments, suggestions, or contribute new content. As always, pull requests are the most desirable.
Is Apple Using Swift?
Apple has been actively evangelizing the use of Swift since it was announced at WWDC in 2014. In the Platforms State of the Union, Andreas…
Code that will break in Python 4
With the end of support for Python 2 on the horizon ( in 2020 ), many package developers have made their packages compatible with both Python 2 and Python 3 by using constructs such as: