Isaac Yager
yager.io · Personal blog · on HN since 2014
Isaac Yager writes about programming languages, Haskell, FPGAs, embedded Rust, computational photography, and hardware projects like keyboards and audio meters.
What HN saysHN links it for his critique of Go and his analysis of iPhone computational photography, with commenters discussing both the Go argument and the photo pipeline.
28HN people shared it
11linked it in comments
21stories submitted
1.4Kstory points
1 year agolast shared
2014people per year2026
Most-shared posts
- 1Why Go Is Not Good15 people · 963 points · first shared 2014 · 453 comments on HN
- 2Distributed Systems in Haskell3 people · 229 points · first shared 2016 · 18 comments on HN
- 3Building a CPU with Haskell, part 13 people · 33 points · first shared 2017 · 1 comments on HN
- 4HaSKI: An FPGA-based SKI calculus evaluator written in Haskell/Cλash3 people · 6 points · first shared 2016 · discussion on HN
- 5The Limits of Computational Photography3 people · 2 points · first shared 2023 · discussion on HN
- 6Designing and building a keyboard2 people · 142 points · first shared 2014 · 58 comments on HN
- 7Nixie Tube Audio Meter – Embedded Rust2 people · 3 points · first shared 2020 · discussion on HN
- 8Music Visualizer – Using Python and Numpy for DSP1 people · 49 points · first shared 2014 · 8 comments on HN
- 9Training Neural Audio Networks1 people · 2 points · first shared 2025 · discussion on HN
- 10Haskell Crash Course1 people · 2 points · first shared 2024 · discussion on HN
- 11Server.hs1 people · first shared 2021
- 12Resume.pdf1 people · first shared 2015
- 13Mi.jpeg1 people · first shared 2023
- 14CLaSH.pdf1 people · first shared 2016
What HN people wrote when they linked it
wyager · 2024-08-16
Great. This looks like it may address some problems I've written about in the iPhone photo pipeline:
http://yager.io/comp/comp.html
https://petapixel.com/2023/02/04/the-limits-of-computational-photograp…
lambdasquirrel · 2023-03-08
Saying that gear doesn't matter is like old fogey programmers saying that programming languages don't matter. A good programmer can wrangle code in anything reasonably practical. And I say that as one of those old fogey programmers.
I mean c'mon, look at Golang. It is not a good language[0][1]. And yet, folks built k8s with it, and many other things.
It's like that with photographic gear too. Just like the best camera is the one you have, the best language is the one that all your domain experts can use. And if they're good at knowledge and design, but shitty at programming, golang it will be.
But it's also worth noting that k8s was not written in C++. Tools matter.
[0] https://yager.io/programming/go.html
[1] https://xetera.dev/thoughts-on-go/
framp · 2015-06-14
A language success is largely determined by marketing.
Go will succeed because a lot of brilliant people are using it and it's not bad.
That's exactly why node.js is where it is now, and PHP was cool back in the days.
That said, I'll just leave this here: http://yager.io/programming/go.html
istvan__ · 2015-04-23
Thanks this video is just too funny. I was aware of the quirkiness of C++ but this is very insightful.
On the Go note, I like it but I think the target of Go is system programming with great concurrency support. More about Go here:
http://yager.io/programming/go.html
Rust seems to incorporate all of the academic research about programming languages and also moves towards memory safety and correctness, and that is a good start. See what happens in the next 10 years! :)
wombat_trouble · 2023-01-31
I see invented texture and layering here: https://yager.io/comp/mi.jpeg
dual_basis · 2018-06-13
I did check out go. I was surprised to see that it had null, and aside from the emphasis on concurrency I didn't find anything new or interesting. This was recently posted here, and I findyself agreeing with most of the points (though I'm not quite as strongly in favor of pure functional programming as the author seems to be):
http://yager.io/programming/go.html
sjy · 2014-07-14
That is basically what this article (recently on HN) does: http://yager.io/programming/go.html
sturza · 2025-07-29
Like this or worse? https://yager.io/comp/comp.html
aftabh · 2015-12-09
I might have taken the content of this article more seriously if it had been titled something like "Why Go Is Not Good for Embedded System Programming" since the original author of the article seems to have more experience in embedded system's domain[1].
Also, the article say "Go is a regression from other modern programming languages" and I find it amusing that a significant numbers of people here taking the article and its claim seriously when it is coming from a student[1] who just finished his 'Computer Programming' university course in Fall 2014[1] (one of the reason, other reason is mentioned in the next paragraph). Don't get me wrong here: I'm not saying that you can't say anything significant when you're a student; what I mean here is that one needs to come up with more detailed explanations and with many more examples which are valid for a wide range of scenarios and use-cases when you make a general statement about a programming language which has been created by some of the highly-respected experts in the field of programming language. The list of problems mentioned in the article are important but they're not very critical for the kind of the system development that Go language has been designed/developed for[2].
Since Go language has been developed for system programming, the term 'system programming' is not restricted to embedded system only (as few people have already mentioned it in different threads here) which are mostly limited to one component (or small…
AdieuToLogic · 2015-07-11
> Go began with Robert Griesemer, Rob Pike, and Ken Thompson. “What should a modern programming language look like” (the story goes as they were waiting for some C++ to compile).
Cute. Nice to keep a dig[1] going. Since that horse has been kicked quite a few times over the years, how about those in the Go community address these language criticisms:
http://yager.io/programming/go.html
For specific examples from the aforementioned link:
The "correct" way to build generic data structures
in Go is to cast things to the top type and then
put them in the data structure. This is how Java
used to work, circa 2004.
And:
Go has the null pointer (nil). I consider it a
shame whenever a new language, tabula rasa,
chooses to re-implement this unnecessary
bug-inducing feature.
Of which the latter has been regretted by its inventor[2] for years.
1 - "[C++] certainly has its good points. But by and large I think it's a bad language." (source: https://en.wikiquote.org/wiki/Ken_Thompson)
2 - http://www.wisdomandwonder.com/link/2015/tony-hoare-sorry-for-inventin…
kjksf · 2014-11-10
You should ponder why Erlang or Haskell achieved a fraction of Go's adoption despite being on the market 20+ years longer.
Some people see languages as a bag of features (immutability! generic programming! laziness! operator overloading! algebraic types! hindley-miller type inference! pattern matching! exceptions! manual memory management!). See http://yager.io/programming/go.html for an example of that line of thinking.
Those people won't get Go.
Designing a language is not about cramming every feature you can think of. It's about making good trade offs.
A trade off is: you get something but you also loose something.
I use Go because it made the biggest number of good trade offs.
Or to put it differently: I program in Go because when writing code, it irritates me less than other languages.
If you want a longer explanation of that: http://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.h…