HN Hall of Fame Weekly email

So you want to write your own language?

www.drdobbs.com Books & learning Tutorials & guides Software engineering Class of 2017-05 Hall of Fame

Resurfaced independently across 3 calendar years, with breakout response in 3 of them.

submissions
8
submitters
4
observed span
2014–2017
peak thread · 203 comments
199 pts
latest 20+ return · 2017-05-19
183 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

My unsolicited, biased advice: use s-expressions. Don't trigger a parse simply to compute with the sums of products and integers [0]. If you can think of something better than s-expressions use that. Also, read http://this-plt-life.tumblr.com/ and don't take yourself too seriously. Stand on the shoulders of giants and continue reaching for the sky. Languages are super fun. [0] http://www.infoq.com/interviews/mccarthy-elephant-2000

Alternatively, just write software in a Lisp variant (with good macros, clojure is quite meh here) or Ocaml or Haskell. These languages put you at the level of writing a language for each problem domain immediately and with a comprehensive and useful toolkit. These languages also do this while directly competing with all but the most carefully tuned of C++/C environments. Steel Bank Common Lisp and the Glasgow Haskell Compiler are good references here. These languages are often considered strange…

I've always found it unfortunate how he, and others, implicitly define the success of a programming language as its popularity. A programming language can be incredibly interesting and useful to you and others without ever becoming fashionable—and that doesn't mean it has failed! I think there should be other metrics for success: a programming language can be useful to a dedicated community of experts, it can be useful to a single company, it can be great for a single use-case…

tikhonj·173-point thread·

These are good suggestions, Walter. Let me add a couple more. Always think of your language as a compiled language even if you start out just writing an interpreter. Otherwise you are likely to add features that are very difficult to compile efficiently. If you're trying to design a language for accessibility -- ease of use by relatively inexperienced programmers -- be aware of the tradeoffs. For example, weak typing, such as automatic conversions between strings and integers, is commonly…

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
3

100+ points or 50+ comments

Total points
574

reference only — not used in Hall rules or ranking

Total comments
447

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2014-01-21So, You Want to Write Your Own Language?ScottBurson142
2014-02-03So you want to write your own language?First breakout · Best threadternaryoperator199203
2014-04-01So You Want To Write Your Own Language?ColinWright10
2015-12-23So You Want to Write Your Own Language (2014)rspivak17399
2017-03-21So You Want to Write Your Own Language? (2014)rspivak10
2017-03-22So You Want to Write Your Own Language? (2014)rspivak10
2017-05-19So You Want to Write Your Own Language? (2014)rspivak20
2017-05-19So You Want to Write Your Own Language (2014)Hall induction · Latest 20+ point returnrspivak183143