Faster Ruby: Thoughts from the outside
(This is Part II of the Faster Ruby posts, which started with a retrospective on Ruby+OMR, a Ruby JIT compiler I worked on five years ago )
Failing to Learn Zig via Advent of Code
My experience trying to learn Zig via Advent of Code.
C isn't a programming language anymore
Phantomderp and I have both recently been very aligned on a particular subject: being extremely angry about C ABIs and trying to fix them . Where we’re not aligned is why we’re mad about them.
So you're using a weird language
Tips and narratives around picking a weird language for your project
Go generics are not bad
When programming, we often need to write 'generic' functions where the exact data type is not important. For example, you might want to write a simple function that sums up numbers. Go lacked this notion until recently, but it was recently added (as of version 1.18). So I took it out for a spin. In … Continue reading…
Scala isn't fun anymore
I’ve just spent over a day, going to sleep at 1:00 am, to upgrade dependencies and fix eviction warnings in the build of a Scala project.
Rethinking Visual Programming with Go
This is a blog version of the talk I gave at GopherCon Europe 2019 (Canary Islands Edition) , where I shared my thoughts on why Visual Programming Languages have failed and revealed for the first time my experiment on visualizing Go code.
Read this post ‘unless’ you’re not a Ruby developer
Disclaimer: prepare for hair-splitting and nitpicking
Java’s Cultural Problem
Java is good by modern standards, from a technical perspective, the platform having received a lot of improvements from Java 8 to 17. Unfortunately, it still stinks, and the problem is its “enterprise” culture.
Making Python fast – Adventures with mypyc
Attempting to speed up a library without changing the code using mypyc
Porting Rust's Std to Rustix
A blog by sunfishcode
Python Asyncio
Asynchronous programming is a popular programming paradigm that allows a large number of lightweight tasks to run concurrently with very little memory overhead, compared to threads.
Considering C99 for Curl
tldr: we stick to C89 for now. The curl project builds on foundations that started in late 1996 with the tool named httpget. ANSI C became known as C89 In 1996 there were not too many good alternatives for making a small and efficient command line tool for doing Internet transfers. I am not saying … Continue reading…
Why we need Lisp machines
A personal mind dump on operating systems
Syntax Design (2014)
A programming language gives us a way structure our thoughts . Each program, has a kind of internal structure, for example:
Why I still recommend Julia
Yuri Vishnevsky wrote that he no longer recommends Julia. This caused lengthy discussions at Hacker News, Reddit and the Julia forum. Yuri argues that Julia shouldn't be used in any context where corr...
What I'd like to see in Go 2.0
Go is one of my favorite programming languages, but it is still far from perfect.
Extending Python with Rust
Sometimes a pure Python script can't just deliver the performance we need. When that's the case we have to resort to writing our logic in a "fast" compiled language like C or Rust and expose the function with through a Python module. This way we get the best of both worlds. Today I focus on how to use Rust for writing…
Planning Go 1.20 cryptography work
My plans for Go 1.20 include landing the crypto/ecdh package, making progress on moving math/big out of the security perimeter, and a batch of crypto/tls work.
Why static languages suffer from complexity
People in the programming language design community strive to make their languages more expressive, with a strong type system, mainly to increase ergonomics by avoiding code duplication in final software; however, the more expressive their languages become, the more abruptly duplication penetrates the language itself.
Using unwrap() in Rust is okay
One day before Rust 1.0 was released, I published a blog post covering the fundamentals of error handling . A particularly important but small section buried in the middle of the article is named “ unwrapping isn’t evil ”. That section briefly described that, broadly speaking, using unwrap() is okay if it’s in…
Ezno: a new TypeScript compiler
Introducing Ezno and the current state of the project.
Austral: A systems language with linear types and capabilities
Introducing a new programming language.
Problems once solved by a metaclass can be solved by __init_subclass__
David Beazley on Twitter said: