How Actors Work Internally in Swift
Lets explore how actors work under the hood, using Swift's own source code as a guide to finding out how they work inside the compiler.
The latest blog posts to take off on Hacker News. 399 posts.
Lets explore how actors work under the hood, using Swift's own source code as a guide to finding out how they work inside the compiler.
We had an opportunity to talk with James Gosling, a Canadian computer scientist, best known as the father of the Java programming language, and get his insight into the languages, features, and solutions that we use every day.
Rust is built around the concept of “zero cost abstraction”. The idea is that you can write human-friendly high level code and the compiler will give you for free performance at least as good as any optimized low level code you could have written yourself. With zero cost abstraction, you no longer have to trade off…
A Lisp interpreter written in Lisp
In 1999, Lutz Prechelt published a seminal article on the COMMUNICATIONS OF THE ACM (October 1999/Vol. 42, No. 10) called Comparing Java vs. C/C++ Efficiency Differences to Interpersonal Differences , henceforth Java VS C , which seems to have later (March 2000) been expanded into a full paper, An empirical comparison…
Let me share a useful insight with you: constexpr is a platform. Just like you write code that targets Windows or a microcontroller, you write code that targets compile-time execution. In both cases you restrict yourself to the subset of C++ that works on your target platform, use conditional compilation if your code…
A language that doesn’t affect the way you think about programming is not worth knowing. – Alan Perlis
TL;DR Clojure is a great programming languages due to its functional nature, lack of objects / concentration on primitive values
Science, programming, books, and other interesting stuff
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
For the past year, the [Sorbet](https://sorbet.org/) team has been working on an experimental, ahead-of-time compiler for Ruby, powered by Sorbet and LLVM. Today we're sharing the source code for it. It lives alongside the existing code for Sorbet on GitHub, mostly in the `compiler/` folder:
The C strcpy function is a common sight in typical C programs. It’s also a source of buffer overflow defects, so linters and code reviewers commonly recommend alternatives such as strncpy (difficult to use correctly; mismatched semantics), strlcpy (non-standard, flawed ), or C11’s optional strcpy_s ( no correct or…
A case study of how Elixir is being used at X-Plane.
A mega-rant about all the things I find bad about Julia.
So! Rust futures! Easy peasy lemon squeezy. Until it’s not. So let’s do the easy thing, and then instead of waiting for the hard thing to sneak up on us, we’ll go for it intentionally. That’s all-a...
For several years I have been designing and implementing a functional teaching language especially for use in the context of a Discrete Mathematics course. The idea is for students to be exposed to…
Welcome to part 1 of Modern C++ for C Programmers, please see the introduction for the goals and context of this series. In this part we start with C++ features that you can use to spice up your code ’line by line’, without immediately having to use all 1400 pages of ‘The C++ Programming Language’. Various code…
The concept known as "worse is better" holds that in software making (and perhaps in other arenas as well) it is better to start with a minimal creation and grow it as needed. Christopher Alexander might call this "piecemeal growth." This is the story of the evolution of that concept.
namedtuple has been around since forever, and over time, its convenience saw it used far outside its originally intended purpose. With dataclasses now covering part of those use cases, what should one use named tuples for? In this article, I address this question, and give a few examples from real code.
We are releasing the first post-1.0 release, making efforts to keep our promise of making regular releases each 3 months, a bit delayed because of the conference, and with special focus on keeping the language stability. Below we list the most important or interesting changes, without mentioning the several bugfixes…
T hese days, I find myself evangelizing for Julia quite a bit. It’s a good language, especially for scientific computing, but I believe its focus on performance also makes it a good general language as well. At some level, programmers who know multiple languages have an abstract understanding of the constructs used…
_posted by John Clements_ Racket version 8.2 is now available from https://download.racket-lang.org. Racket CS improved the performance of large-integer arithmetic. Racket has improved support for layered and tethered installation. Racket ...
Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback.
4-day coding marathon
The current Go language memory model was written in 2009, with minor updates since. It is clear that there are at least a few details that we should add to the current memory model, among them an explicit endorsement of race detectors and a clear statement of how the APIs in sync/atomic synchronize programs.