Top all-time · #1603
metablog
Personal blog · blog.metaobject.com · on HN as mpweiherprogrammingdesign
metablog is a personal blog at blog.metaobject.com about programming and design. Since 2012, 47 different Hacker News readers have linked it 461 times, most often “UIs are not pure functions of the model (2018)”. The last post was in 2024, but the archive is still widely read.
Most-linked posts?
- UIs are not pure functions of the model (2018)7 people · 21 mentions · first linked 2018-12-31
- M1 Memory and Performance6 people · 8 mentions · first linked 2020-11-13
- The Safyness of Static Typing5 people · 9 mentions · first linked 2014-06-18
- Cc -Osmartass4 people · 25 mentions · first linked 2014-04-14
- Jitterdämmerung4 people · 16 mentions · first linked 2015-10-06
- Blackbird: A reference architecture for local-first connected mobile apps3 people · 10 mentions · first linked 2022-06-21
- Instant Builds3 people · 6 mentions · first linked 2019-11-07
- The Curious Case of Swift's Adoption of Smalltalk Keyword Syntax3 people · 5 mentions · first linked 2020-06-14
- Model Widget Controller (MWC) Aka: Apple “MVC” Is Not MVC3 people · 4 mentions · first linked 2015-04-03
- Native-GUI distributed system in a tweet3 people · 4 mentions · first linked 2022-08-10
What Hacker News says?
Yes, I think the promises of the "we can JIT all the overhead away"-camp were always overblown, and never materialized in practice. This is another very strong datapoint for that hypothesis[1]. However, it is important not to conflate "scripting language" and "dynamic language" and "interpreted". While there is some correlation there, it is not a necessary one. Objective-C is an example of a fast AOT-compiled pretty…
Comment linking /2021/07/deleting-code-to-double-performance-of.html
on “A 10x Faster TypeScript”Submitted Meltdown patch reduces mkfile(8) throughput to less than 1/3 on OS X as a story · 253 points
HN discussionIndeed, one of the articles cited by the article that this discussion is about ( https://blog.metaobject.com/2020/11/m1-memory-and-performanc... ) links to a paper saying that GC needs 4x the memory to match manual memory management and then makes a huge wacky leap to say that ARC could achieve that with less. It can't. ARC will always be slower than manual memory management because it behaves the same way as naive…
Comment linking /2020/11/m1-memory-and-performance.html
on “Apple Silicon M1: Black Magic Fuckery”Submitted “What Alan Kay Got Wrong About Objects” as a story · 241 points
HN discussionNope, as proven by performance tests, https://github.com/ixy-languages/ixy-languages And the fact that M1 has special instructions dedicated to optimize RC, https://blog.metaobject.com/2020/11/m1-memory-and-performanc... Memory overhead in languages with tracing GC (RC is a GC algorithm) only happens in languages like Java without support for value types. If the language supports value types, e.g. D, and there is st…
Comment linking /2020/11/m1-memory-and-performance.html
on “Apple Silicon M1: Black Magic Fuckery”Submitted What Happens to OO When Processors Are Free? (2015) as a story · 196 points
HN discussion> "M1 and memory efficiency" Hi folks! It looks like my blog post[1] was the primary source for this (it's referenced both by this post and by the Gruber post), and to be clear, I did not claim that this helps ARM Macs use less RAM than Intel Macs. I think John misunderstood that part and now it has blown up a bit... I did claim that this helps Macs and iPhones use less RAM than most non-Apple systems, as part of Ap…
Comment linking /2020/11/m1-memory-and-performance.html
on “Apple Silicon M1: Black Magic Fuckery”Submitted Inserting 130M SQLite rows per minute from a scripting language as a story · 163 points
HN discussionThis blog post, written by mpweiher shortly after the initial public release of React Native, explains why it can't truly be considered "native": http://blog.metaobject.com/2015/04/reactnative-isn.html Xamarin is much closer to native. In particular, unless you choose to use Xamarin Forms, you'll be using each platform's native UI APIs, so your UI will be indistinguishable from an app written in the platform's nativ…
Comment linking /2015/04/reactnative-isn.html
on “Xamarin now free in Visual Studio, and Xamarin SDK being open-sourced”Submitted The Curious Case of Swift's Adoption of Smalltalk Keyword Syntax as a story · 147 points
HN discussionOther languages need special hardware to beat C#, so I guess the language wasn't the issue. https://github.com/ixy-languages/ixy-languages https://blog.metaobject.com/2020/11/m1-memory-and-performanc...
Comment linking /2020/11/m1-memory-and-performance.html
on “Before the iPhone, I worked on a few games for what were called "feature phones"”Submitted Maybe visual programming is the answer, maybe not as a story · 136 points
HN discussion1. The WWW would like a quick word with you regarding function calls having won. 2. You are making an invalid assumption, which is that we only get to have one tool in our toolbox, and therefore one tool has to "win". Even if function calls were the best tool, they would still not always be the right one. With the benefit of hindsight, it’s clear that these properties of structured programs, although helpful, do not…
Comment linking /2019/02/why-architecture-oriented-programming.html
on “Cap'n Web: a new RPC system for browsers and web servers”Submitted Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk as a story · 136 points
HN discussionBig fan of Cap'n'Proto and this looks really interesting, if RPC is the thing that works for your use-case. However, stumbled over this: The fact is, RPC fits the programming model we're used to. Every programmer is trained to think in terms of APIs composed of function calls, not in terms of byte stream protocols nor even REST. Using RPC frees you from the need to constantly translate between mental models, allowin…
Comment linking /2019/02/why-architecture-oriented-programming.html
on “Cap'n Web: a new RPC system for browsers and web servers”Submitted UIs are not pure functions of the model (2018) as a story · 134 points
HN discussion> cool optimizations ... but ... fickle ... internals ... Yes. I wrote about this in some detail 2 years ago, Jitterdämmerung : http://blog.metaobject.com/2015/10/jitterdammerung.html
Comment linking /2015/10/jitterdammerung.html
on “Maybe you don't need Rust and WASM to speed up your JS”Submitted Jitterdämmerung as a story · 132 points
HN discussionYeah, Swift-most-everything is pretty slow, but particularly parsing/generating. Pre-Swift Foundation serialisation code was already...majestic, and in the Swift conversion they've typically managed to slow things down even further. Which didn't seem possible, but they managed. I have given a bunch of talks[1] on this topic, there's also a chapter in my iOS/macOS performance book[2], which I really recommend if you…
Comment linking /2010/05/xml-performance-revisited.html
on “Simdjson – Parsing Gigabytes of JSON per Second”Submitted Dependency Injection is a Virtue as a story · 119 points
HN discussionSo glad I am not the only one! What I found interesting was that the original developer(s) of react.js seems a lot more up-front about this: https://omny.fm/shows/future-of-coding/1-1-how-reactjs-was-c... Of course, the whole idea of, in-theory, re-creating the UI at every refresh cycle is not part of MVC, so that is new and interesting. Considering all the work that has to be done to undo that abstraction (as it do…
Comment linking /2018/12/uis-are-not-pure-functions-of-model.html
on “Fuchsia OS Introduction”Submitted Mkfile(8) is severely syscall limited on OS X as a story · 102 points
HN discussionAOT native results in slower runtimes for applications with one simple exception: startup time. In every other case a modern JIT compiler like the JVM will win due to gathering information and layered compilation. That's not necessarily true. JIT compilation is severely constrained in the amount of analysis that it can do for the simple reason that JIT has to be fast . Fast enough to not noticeably slow down the app…
Comment linking /2015/10/jitterdammerung.html
on “The JVM is not that heavy”Submitted Making invisible glue code first-class as a story · 91 points
HN discussionUI is not a pure function of state[0], "UI state" is relatively stable and does not have to be recreated constantly when data input changes. [0] https://blog.metaobject.com/2018/12/uis-are-not-pure-functio... >you want to be able to reevaluate your templates repeatedly with new state No you don't. It is inefficient and increases complexity. You then have to extract and keep track of state yourself where the platform…
Comment linking /2018/12/uis-are-not-pure-functions-of-model.html
on “VanillaJSX.com”Submitted Why I don't mock as a story · 90 points
HN discussionA couple of corrections: 1) Mac OS X does not store a bitmap for every widget, that's iOS's architecture. It stores a bitmap for every window. Having a layer (GPU-stored bitmap) was only introduced once CoreAnimation was ported to OS X. It was and is optional. 2) OS X Views also have a -drawRect: method that works the same way. 3) In fact that's how MVC works. See http://blog.metaobject.com/2015/04/model-widget-cont…
Comment linking /2015/04/reactnative-isn.html
on “Flux is the new WndProc”Submitted Why Architecture Oriented Programming Matters (2019) as a story · 86 points
HN discussionThis "glue code" — ETL pipelines, integrations, and custom workflows — is the dark matter of the enterprise software universe. Hmmm...solving glue code, the "dark matter of [enterprise] software". Maybe I should apply? ;-) https://blog.metaobject.com/2021/06/glue-dark-matter-of-soft...
Comment linking /2021/06/glue-dark-matter-of-software.html
on “YC: Requests for Startups”Submitted Glue: The Dark Matter of Software as a story · 79 points
HN discussion