New
The latest blog posts to take off on Hacker News. 427 posts.
Nim Community Survey 2019 Results
Nim community survey 2019 has been open for 50 days, and we have received 908 responses, which is our record-high number (771 in 2018, 603 in 2017). Before we go into details, we would like to thank all the people who took the time to respond. We really appreciate the feedback!
Racket-on-Chez Status
posted by Matthew Flatt For background information about Racket on Chez Scheme (a.k.a. Racket CS), see the original announcement, the January 2018 report, the report at Scheme Workshop 2018, the January 2019 report, the ICFP experience report, an...
Want to call C from Python? Use D
In my last blog post I wrote about the power of D’s compile-time reflection and string mixins, showing how they could be used to call D from Python so easily it might as well be magic. As ama…
Move, simply
C++ “move” semantics are simple, and unchanged since C++11. But they are still widely misunderstood, sometimes because of unclear teaching and sometimes because of a desire to view move…
Classification of the Principal Programming Paradigms (2009)
The chart classifies programming paradigms according to their kernel languages. Kernel languages are ordered according to the creative extension principle: a new concept is added when it cannot be encoded with only local transformations. Two languages that implement the same paradigm can nevertheless have very…
To become a good C programmer (2011)
Every once in a while I receive an email from a fellow programmer asking me what language I used for one of my games and how I learned it. Here is an entry that list the best things to read about C. If you know of other gems, please email me or add a comment at the bottom of the page.
Sealed Rust Update
Part 2 - The Plan
Applying Mypy to real-world projects
Some hints and tips for getting started with Mypy and introducing it to existing projects
Compiling a Functional Language Using C++, Part 9 – Garbage Collection
In this post, we implement a garbage collector that frees memory no longer used by the executables our compiler creates.
JuliaLang: The Ingredients for a Composable Programming Language
One of the most remarkable things about the julia programming language, is how well the packages compose. You can almost always reuse someone else’s types or methods in your own software without issues. This is generally taken on a high level to be true of all programming languages because that is what a library is…
Stacked Borrows: An Aliasing Model for Rust
Type systems are useful not just for the safety guarantees they provide, but also for helping compilers generate more efficient code by simplifying important program analyses. In Rust, the type system imposes a strict discipline on pointer aliasing, and it is an express goal of the Rust compiler developers to make use…
Python dicts are now ordered
There were several moments over the last few weeks when I heard people discuss differences between Python lists and dicts and one of the first ones mentioned was that lists are ordered and dicts are not.
Combinatris: Tetris with SKI Combinators
Combinatris
What’s New in Swift 5.2
Key path expressions as functions, callAsFunction, and more
Kotlin becomes second most popular language on the JVM
Snyk's annual JVM ecosystem report presents the results of the largest annual survey on the JVM ecosystem, which gathered over 2000 responses in the second half of 2019.
Why Discord is switching from Go to Rust
Discover the latest news and app updates, stories, company insights, and plenty more about Discord, all in one place.
Swift Crypto
I’m thrilled to announce a new open-source project for the Swift ecosystem, Swift Crypto. Swift Crypto is a new Swift package that brings the fantastic APIs of Apple CryptoKit to the wider Swift community. This will allow Swift developers, regardless of the platform on which they deploy their applications, to access…
Writing a DSL in Lua (2015)
DSLs, or domain specific languages, are programming languages that are designed to implement a set of features specific to a particular problem or field. An example could be Make , the build tool, which is a specially designed language for combining ...
New in PHP 8
PHP 8.0 brings features like attributes, union types, and the JIT compiler. It has some important breaking changes, and improved performance.
"Within C++, there is a much smaller and cleaner language struggling to get out"
These are questions that people ask me often. If you have better questions or comments on the answers, feel free to email me. Please remember that I can't spend all of my time improving my homepages.
TypeScript’s quirks: How inconsistencies make the language more complex
Asana engineers are TypeScript fans, and we’ve learned a lot about where TypeScript shines and struggles. Here are 3 of our favorite TypeScript surprises.
The Rust Compilation Model Calamity
Learn about the benefits of TiDB and the TiDB Cloud solutions from PingCAP. Read our latest post "The Rust Compilation Model Calamity" here.
A Pythonista's Review of Haskell
A Python developer's honest review of Haskell: the type system, tooling, learning curve, and practical tradeoffs.
Developing GHC for a Living
What is it like to work on GHC, the state-of-the-art open source Haskell compiler? Read this post to learn what features Vladislav implemented in 2019.
Proposals for Go 1.15
For Go 1.15, we propose three minor language cleanup changes.