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

  1. 1
    Why Go Is Not Good
    15 people · 963 points · first shared 2014 · 453 comments on HN
  2. 2
    Distributed Systems in Haskell
    3 people · 229 points · first shared 2016 · 18 comments on HN
  3. 3
    Building a CPU with Haskell, part 1
    3 people · 33 points · first shared 2017 · 1 comments on HN
  4. 4
  5. 5
    The Limits of Computational Photography
    3 people · 2 points · first shared 2023 · discussion on HN
  6. 6
    Designing and building a keyboard
    2 people · 142 points · first shared 2014 · 58 comments on HN
  7. 7
    Nixie Tube Audio Meter – Embedded Rust
    2 people · 3 points · first shared 2020 · discussion on HN
  8. 8
    Music Visualizer – Using Python and Numpy for DSP
    1 people · 49 points · first shared 2014 · 8 comments on HN
  9. 9
    Training Neural Audio Networks
    1 people · 2 points · first shared 2025 · discussion on HN
  10. 10
    Haskell Crash Course
    1 people · 2 points · first shared 2024 · discussion on HN
  11. 11
    Server.hs
    1 people · first shared 2021
  12. 12
    Resume.pdf
    1 people · first shared 2015
  13. 13
    Mi.jpeg
    1 people · first shared 2023
  14. 14
    CLaSH.pdf
    1 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
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…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close