New
The latest blog posts to take off on Hacker News. 5,636 posts.
An Open Letter to the Go Team About Try
An Open Letter To The Go Team About Try. “Once a language gets complex enough, programming in it is more like carving out a subset from an infinite sea of …
One Program Written in Python, Go, and Rust
Image differentiation in three languages
D as a C Replacement
Sircmpwn (the main developer behind the Sway Wayland compositor ) recently wrote a blog post about how he thinks Rust is not a good C replacement . I don’t know if he’d like the D programming language either, but it’s become a C replacement for me.
Using Pointers in SPARK
In this blog post, I will present one of the most interesting additions to the community 2019 version of SPARK: pointer support. One of the core…
Go Slices Are Fat Pointers
One of the frequent challenges in C is that pointers are nothing but a memory address. A callee who is passed a pointer doesn’t truly know anything other than the type of object being pointed at, which says some things about alignment and how that pointer can be used… maybe. If it’s a pointer to void ( void * ) then…
Let's Build a Simple Interpreter. Part 14: Nested Scopes (2017)
Only dead fish go with the flow. As I promised in the last article, today we’re finally going to do a deep dive into the topic of scopes. This is what we’re going to learn today: We’re going to learn about scopes, why they are useful, and …
Next steps toward Go 2
What Go 2 language changes should we include in Go 1.14?
Elixir 1.9
Elixir v1.9 is out with releases support, improved configuration and more.
Why I think Haskell is the best general purpose language as of June 22 2019
Me and my close friends have been interested in starting a project together and I suggested we use Haskell. I do not think the suggestion was received well or perhaps in seriousness. I have a tendency to joke about almost everything and have put forward that we use many interesting but not practical languages in the…
Compiler basics (5): LLVM system calls
Writing a lisp compiler from scratch in JavaScript: 6. LLVM system calls
Open-sourcing Sorbet: a fast, powerful type checker for Ruby
We're excited to announce that Sorbet is now [open source] and you can try it today. Sorbet is a fast, powerful type checker designed for Ruby. It scales to codebases with millions of lines of code and can be adopted incrementally.
Go Creeping In
I’ve seen the inside of the Google and Amazon tech stacks. There are common threads that run through them and also, I bet, through most BigTechCos. Here and there down the stack is a lot of C++ and vestigial remnants from earlier days, Perl or PHP or whatever. Out in front of humans, of course, JS. But in between…
Classes vs. Data Structures
Or rather, an object is a set of functions that operate on implied data elements.
Love It or Hate It, Java Continues to Evolve
Simon Ritter, Deputy CTO of Azul, covers evolutions in Java including, 6-month release cycle, a change to the switch expression in JDK 13 and more.
Pointers in Python
In this step-by-step tutorial, you'll get a clearer understanding of Python's object model and learn why pointers don't really exist in Python. You'll also cover ways to simulate pointers in Python without the memory-management nightmare.
Comparing the Same Project in Rust, Haskell, C++, Python, Scala and OCaml
During my final term at UWaterloo I took the CS444 compilers class with a project to write a compiler from a substantial subset of Java to x86, in teams of up to three people with a language of the group’s choice. This was a rare opportunity to compare implementations of large programs that all did the same thing…
Uniform Structured Syntax, Metaprogramming and Run-Time Compilation
Real world example where uniform syntax enables unthinkable solution
Common Lisp: Numbers
A collection of examples of how to use Common Lisp
Why I Don't Like Golang (2016)
When I first started programming in Go, my summary of it was, “The good things are great and the bad things are weird and I can live with them.” After another three years and a few large projects in Go, I no longer like the language and wouldn’t use it for a new project. Here are 10 reasons why, in no particular order.
C++ Patterns: The Badge
This post describes the C++ Badge template used to enhance member function access control in Serenity Operating System.
A Failed Experiment with Python Type Annotations
I like Python, but wish it had static typing. The added safety would go a long way to improving quality and reducing development time. So today I tried to make use of type annotations and a static type-checker called mypy. After a few basic tests, I was excited. But my glee turned to disappointment rather […]