4 ms·
Well, I don't know if the author is going to see this, but... I'm a young programmer and I think you've just, I don't know, "opened" something in me, something
by navaati 6y ago
Well, I don't know if the author is going to see this, but...
I'm a young programmer and I think you've just, I don't know, "opened" something in me, something much bigger than the topic of JSON mapping. Not sure yet how to express it, about the more general topic of abstraction, maybe.
You've made my world less simple but probably more correct. Thank you I guess...
- Waterluvian 6y agoI can't articulate it either but I know exactly what you mean. I've had these moments of epiphany before. It's wonderful.
- scubbo 6y agoTreasure those moments! They definitely get rarer over time (for many reasons: the amount of work (and so, time) required to reach another epiphany becomes greater, the amount of time you can dedicate to learning (rather than maintenance or leadership) decreases, and the likelihood that you'll be introduced to an interesting new problem in the course of your daily life becomes lower), but they're definitely worth it.
- geofft 6y agoYou might like this post, which is roughly on that topic: https://ideolalia.com/essays/composition-is-interpretation.html https://ideolalia.com/essays/composition-is-interpretation.h... (I thought of it when I first saw your comment but couldn't remember where, then I found it closing some few-day-old tabs :) )
- eyelidlessness 6y agoWelcome! You'll be glad for it (and cranky about it). This sensation is what many of us feel when we find the incidental complexities of things designed to be simple. Once you find enough you start to spot them yourself, and then you see them everywhere. The ugly part is... you see them everywhere. The beautiful part is you don't just get pattern recognition, you get a familiar solution mapping. I felt this way as a young programmer really getting my teeth in. I was also self-taught, so I didn't have familiarity with some things that would probably be considered basics/fundamentals. My advice regardless is: when you get this unsettling mind-expanding feeling go research prior art. Go find out how other people solve problems like it. Even if you come up wanting more/better, at least you have a lay of the land. And learn the terminology used describing the problem space to expand your hunt. You'll be amazed what you turn up! Edit: since this is on the topic of JSON (de)serialization, while I’d love to tout the very good pattern I see in my usual stack (TypeScript) where I’m working on an offering in the space, I’d actually recommend looking at prior art in a very different stack with very different goals: - Transit[1] which standardizes type metadata within JSON (but leaves type resolution up to producers/consumers). - EDN[2], which is the philosophical basis for Transit, written in Clojure syntax. It’s demonstrably worse for performance but syntactically a nicer format/DX if you have tooling to deal with it, and it’s nearly tooling-free if you use the stack. A lot of efforts to standardize rich data type representation in JSON unfortunately do it very haphazardly, so I wanted to include examples that come from the “pattern recognition/solution mapping” side as an example. Both have downsides, but they’re exceptionally well designed for what they are and deserve to be part of this discussion. [1]: https://github.com/cognitect/transit-format https://github.com/cognitect/transit-format [2]: https://github.com/edn-format/edn https://github.com/edn-format/edn
- einarwh 6y agoI did. Thank you for telling me about this experience. The world isn't simple, but at least it's interesting.