From zero to cooperative threads in 33 lines of Haskell
A tiny implementation of coroutines
Topics /
The most popular blog posts about programming languages on Hacker News. 5,634 posts.
A tiny implementation of coroutines
One of the things I’ve wanted to do for a while is really dig into assembly and get into the weeds of how programs actually run. A rework of the asm macro has recently landed in nightly rust so it seemed like a good time.
"Low-level programming is good for the programmer's soul." -John Carmack When the complexity of modern computing gets fatiguing, I look back to the simpler machines of my childhood. I grew up surrounded by various 8-bit and 16-bit machines (most of them already a few years outdated at the time),…
I was inexplicably amazed by Lisp since the first day I've seen how Lisp programs look.
( This is part of a series on the design of zest . See the list of posts here .)
Notable changes and additions to the Dart programming language.
What follows is a set of short essays that collectively encourage a philosophy of clarity in programming rather than giving hard rules. I don't expect you to agree with all of them, because they are opinion and opinions change with the times. But they've been accumulating in my head, if not on paper until now, for a…
flow2 | Blog post: 'PHP's Oddities' in Tech
TypedDict was introduced in PEP-589 which landed in Python 3.8. The primary use case was to create type annotations for dictionaries. For example,...
In Golang, nil is an interesting value. You may be familiar with Go’s philosophy of making the “zero value” meaningful.
NOTE: This is based on, but completely rewritten, from a Twitter post:https://x.com/TheGingerBill/status/1802645945642799423TL;DR: It makes Go feel too "functional" rather than being an unabashed imperative language.I recently saw a post on Twitter showing the upcoming Go iterator design for Go 1.23 (August 2024)…
The best parts of Django are the ones you stop noticing — a tour of the abstractions that have given Buttondown the most leverage over the years.
I’ve been working on an experimental new C++ language feature tentatively called “metaclasses” that aims to make C++ programming both more powerful and simpler. You can find out about it here: Curr…
At one level, this question is not very fair, because an answer to it as stated would be that one simply does not use doubly linked lists. They have been popular in introductory computer science lectures because they are a neat way to explain pointers in a data structure that's easy to draw on a whiteboard, but they…
The gophers nested too greedily and too deep.
Zig is a general-purpose programming language that can act as a drop-in replacement for C / C++, letting you incrementally improve your code base.
Browsers Join Firefox as approved for running Epic Citadel Mozilla has been working hard to make asm.js as fast as possible in Firefox and progress has been really solid. Less ...
I’ve been inspired by the efforts of others (Chris Smith, Manuel Chakravarty) to try teaching children haskell as a first experience of programming. Haskell has a reputation of being a "…
I wanted to give an update on the status of the “async-await foundations” working group. This post aims to cover three things:
I feel like every time I sit down to actually start using Swift, I'm constantly battling with the language. My latest challenge: creating a backing buffer of pixel data that will be rendered t…
In the following series of blog posts I will document my attempts to write Linux modules using the Ada language. In part 1, I will demonstrate how to write in Ada and build a simple "hello world" Linux kernel module. Additionally, I will introduce a basic customized Ada runtime to support our "hello world" module…
Here’s a post from a talk I gave this last summer during our internship program about why we use OCaml. It spends a lot of time on how OCaml fits into the space of programming language designs, and why we think OCaml is in a real sweet spot in that design space, especially for the kind of work we do at Jane Street.
Lesser known is that you can have nested list comprehensions, that handle nested for loops:
The Go Language growth has been phenomenal in the last few years, and is attracting language converts from all walks of life. There has been a lot articles recently about companies switching from Ruby, and experiencing the new world of Go and it’s parallel and concurrent approach to problems.
This page is for keeping a record of significant changes in darcs xmonad and xmonad-contrib since the 0.9 releases. See darcs changes in the source repositories for the patches and more details covering documentation and bug fixes not noted here. Xmonad 0.9 was released on 26 October 2009, and Xmonad 0.10 on 18…