Designing a Good DSL
A look at common mistakes in DSL designs and how to fix them
Topics /
The most popular blog posts about programming languages on Hacker News. 5,634 posts.
A look at common mistakes in DSL designs and how to fix them
The recent announcement of clojure-py made some noise in the Clojure community, but not, as far as I can tell, in the Python community. For those who haven’t heard of it before, clojure-py is…
In this article, we will show you how to implement simple parser combinators from scratch and how to use the Megaparsec library to implement a parser for S-expressions.
IBM Developer is the source for hands-on training and in-demand learning on relevant technologies such as generative AI, data science, Java, and more.
Adding a reader to our Lisp compiler
Dmitri's blog about programming, Clojure, and software development
Learn You a Haskell for Great Good! (A Beginner's Guide) by Miran Lipovača, published by No Starch Press (2011). No Starch was kind enough to send me an advance copy for review.
In late 1986 and early 1987 an ad hoc group of Smalltalk implementors got together to see if they could agree on a design for the next major version of Smalltalk, after Smalltalk-80. The intent was that what they agreed upon would feed into an IEEE standardization process. That process never got
New with expressions, type-safe error checking, and faster everything.
Socolive TV phát sóng trực tiếp bóng đá hôm nay, link xem SocoliveTV sắc nét chuẩn HD. Cập nhật Lịch thi đấu, BXH, Highlight, Kết quả bóng đá mới nhất!
Today is the day! Today is the day we take our APL programs and interpret them, so that something like ÷ 1 2 3 -⍨ 1.1 2.2 3.3 can output 10 5 3.33333333.
How is tail recursion different from regular recursion? What do continuations have to do with this, what is CPS, and how do trampolines help? This article provides an introduction, with code samples in Python and Clojure.
To learn Rust, I implemented an audio game. There were some things I liked and some things I didn't. Some things were easy and some were hard. And there were plenty of libraries that were a joy to use.
People who write Ruby programs want to use metaprogramming. It’s part of what makes the language what it is. But in existing implementations of Ruby, metaprogramming is slow. My work focused on making it fast, providing fast tooling for Ruby programmers, and fast support for legacy C extensions.
Checked exceptions have always been a controversial feature of the Java language.
I must admit that some previous years for C++ might feel a bit “boring” and “stable”. New features, new standard every three years, meetings, conferences… life as usual (apart from some additional World/Economy/public Health events…). This year seems different as it looks like a “breakpoint” in the history of C++… and…
Recently, we had a discussion in our team about undefined behaviour (UB) in C. For those unfamiliar: We say that a program has undefined behaviour when we write code where the language specification doesn't define what should happen during execution. That means compilers can do whatever they like if they encounter…
Today I mourn. What am I mourning? Encapsulation. At least in my projects. As a library author, I’ve decided to avoid private class fields from now on and gradually refactor them out of my existing libraries. Why did I make such a drastic decision? It all started a few days ago, when I was building a Vue 3 app that…
Designing a language, types first
A guide to learning COBOL for the modern programmer.
1995 was the year AOL floppy disks arrived in the mail, Netscape Navigator was born and the first public version of Java was released. Over the next two...
Fifteen years ago Python’s GIL wasn’t a big issue. Concurrency was something dismissed as probably unnecessary. What people really was needed was a faster interpreter, after all, who had more than one CPU? But, slowly, as the requirement for concurrency increased, the problems with the GIL increased.
I've been using Elm since about one year back now. At the start of 2021 I began working with a client that had an existing Elm frontend code base and an early stage backend built in Elixir and Phoenix. This post will be about my experiences running face first into Elm. I'll be vague on some details as I can't share…