frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

I Don't Like Magic

https://adactio.com/journal/22399
55•edent•3d ago

Comments

xantronix•1h ago
Predicated upon the definition of "magic" provided in the article: What is it, if anything, about magic that draws people to it? Is there a process wherein people build tolerance and acceptance to opaque abstractions through learning? Or, is it acceptance that "this is the way things are done", upheld by cargo cult development, tutorials, examples, and the like, for the sake of commercial expediency? I can certainly understand that seldom is time afforded to building a deep understanding of the intent, purpose, and effect of magic abstractions under such conditions.

Granted, there are limits to how deep one should need to go in understanding their ecosystem of abstractions to produce meaningful work on a viable timescale. What effect does it have on the trade to, on the other hand, have no limit to the upward growth of the stack of tomes of magical frameworks and abstractions?

3form•1h ago
I think it's "this is the way things are done in order to achieve X". Where people don't question neither whether this is the only way to achieve X, nor whether they do really care about X in the first place.

It seems common with regard to dependency injection frameworks. Do you need them for your code to be testable? No, even if it helps. Do you need them for your code to be modular? You don't, and do you really need modularity in your project? Reusability? Loose coupling?

pdonis•53m ago
> What is it, if anything, about magic that draws people to it?

Simple: if it's magic, you don't have to do the hard work of understanding how it works in order to use it. Just use the right incantation and you're done. Sounds great as long as you don't think about the fact that not understanding how it works is actually a bug, not a feature.

socalgal2•32m ago
Or is just a specialization choice. Taxi drivers don't care how a car works, they hire a mechanic for that. Doctors don't care how a catscan works they just care that it provides the data they need in a useful format.
c22•20m ago
I like the definition of magic I learned from Penn Jillette, (paraphrased): magic is just someone spending way more resources to produce the result than you expected.
farley13•14m ago
I know magic has a nice Arthur C. Clarke ring to it, but I think arguing about magic obscures the actual argument.

It's about layers of abstraction, the need to understand them, modify them, know what is leaking etc.

I think people sometimes substitute magic when they mean "I suddenly need to learn a lower layer I assumed was much less complex ". I don't think anyone is calling the linux kernal magic. Everyone assumes it's complex.

Another use of "magic" is when you find yourself debugging a lower layer because the abstraction breaks in some way. If it's highly abstracted and the inner loop gives you few starting points ( while (???) pickupWorkFromAnyWhere() )). It can feel kafkaesque.

I sleep just fine not knowing how much software I use exactly works. It's the layers closest to application code that I wish were more friendly to the casual debugger.

wvenable•7m ago
> Sounds great as long as you don't think about the fact that not understanding how it works is actually a bug, not a feature.

That's such a wrong way of thinking. There is simply a limit on how much a single person can know and understand. You have to specialize otherwise you won't make any progress. Not having to understand how everything works is a feature, not a bug.

You not having to know the chemical structure of gasoline in order to drive to work in the morning is a good thing.

wa008•1h ago
What I cannot build. I do not understand
AlotOfReading•7m ago
I'm not sure this is a useful way to approach "magic". I don't think I can build a production compiler or linker. It's fair to say that I don't fully understand them either. Yet, I don't need a "full" understanding to do useful things with them and contribute back upstream.

LLMs are vastly more complicated and unlike compilers we didn't get a long, slow ramp-up in complexity, but it seems possible we'll eventually develop better intuition and rules of thumb to separate appropriate usage from inappropriate.

skydhash•1h ago
I also don't like magic, but React is the wrong definition of magic in this case. It's an abstraction layer for UI and one that is pretty simple when you think about it conceptually. The complexity is by third party library that are building on top of it, but proposing complex machineries instead of simple ones. Then you have a culture of complexity around simple technology.

But it does seems that culture of complexity is more pervasive lately. Things that could have been a simple gist or a config change is a whole program that pulls tens of dependencies from who knows who.

noelwelsh•1h ago
If you have this attitude I hope you write everything in assembly. Except assembly is compiled into micro-ops, so hopefully you avoid that by using an 8080 (according to a quick search, the last Intel CPU to not have micro-ops.)

In other words, why is one particular abstraction (e.g. Javscript, or the web browser) ok, but another abstraction (e.g. React) not? This attitude doesn't make sense to me.

kalterdev•1h ago
You can learn JavaScript and code for life. You can’t learn React and code for life.

Yeah, JavaScript is an illusion (to be exact, a concept). But it’s the one that we accept as fundamental. People need fundamentals to rely upon.

pessimizer•1h ago
Are you seriously saying that you can't understand the concept of different abstractions having different levels of usefulness? That's the law of averages taken to cosmic proportions.

If this is true, why have more than one abstraction?

selridge•54m ago
I just think everyone who says they don't like magic should be forced to give an extemporaneous explanation of paging.
kens•13m ago
Did someone ask about Intel processor history? :-) The Intel 8080 (1974) didn't use microcode, but there were many later processors that didn't use microcode either. For instance, the 8085 (1976). Intel's microcontrollers, such as the 8051 (1980), didn't use microcode either. The RISC i860 (1989) didn't use microcode (I assume). The completely unrelated i960 (1988) didn't use microcode in the base version, but the floating-point version used microcode for the math, and the bonkers MX version used microcode to implement objects, capabilities, and garbage collection. The RISC StrongARM (1997) presumably didn't use microcode.

As far as x86, the 8086 (1978) through the Pentium (1993) used microcode. The Pentium Pro (1995) introduced an out-of-order, speculative architecture with micro-ops instead of microcode. Micro-ops are kind of like microcode, but different. With microcode, the CPU executes an instruction by sequentially running a microcode routine, made up of strange micro-instructions. With micro-ops, an instruction is broken up into "RISC-like" micro-ops, which are tossed into the out-of-order engine, which runs the micro-ops in whatever order it wants, sorting things out at the end so you get the right answer. Thus, micro-ops provide a whole new layer of abstraction, since you don't know what the processor is doing.

My personal view is that if you're running C code on a non-superscalar processor, the abstractions are fairly transparent; the CPU is doing what you tell it to. But once you get to C++ or a processor with speculative execution, one loses sight of what's really going on under the abstractions.

tokenless•1h ago
The AI pilled view is coding is knitting and AI is an automated loom.

But it is not quite the case. The hand coded solution may be quicker than AI at reaching the business goal.

If there is an elegant crafted solution that stays in prod 10 years and just works it is better than an initially quicker AI coded solution that needs more maintenance and demands a team to maintain it.

If AI (and especially bad operators of AI) codes you a city tower when you need a shed, the tower works and looks great but now you have 500k/y in maintaining it.

james_marks•26m ago
Doesn’t the loom metaphor still hold? A badly operated loom will create bad fabric the same way badly used AI will make unsafe, unscalable programs.

Anything that can be automated can be automated poorly, but we accept that trained operators can use looms effectively.

sixtyj•15m ago
Loom is a good metaphor.
vladms•57m ago
The advantage of frameworks is to have a "common language" to achieve some goals together with a team. A good framework hides some of the stupid mistakes you would do when you would try to develop that "language" from scratch.

When you do a project from scratch, if you work enough on it, you end up wishing you would have started differently and you refactor pieces of it. While using a framework I sometimes have moments where I suddenly get the underlying reasons and advantages of doing things in a certain way, but that comes once you become more of a power user, than at start, and only if you put the effort to question. And other times the framework is just bad and you have to switch...

sodapopcan•45m ago
The problem with this is that it means you have to read guides which it seems no one wants to do. It drives me nuts.

But ya, I hate when people say they don't like "magic." It's not magic, it's programming.

coldtea•19m ago
Most however are surely capable of understanding a simple metaphor, in which "magic" in the context of coding means "behavior occuring implicitly/as a black box".

Yes, it's not magic as in Merlin or Penn and Teller. But it is magic in the latter sense, which is also what people complain about.

WJW•18m ago
Oh no! Reading!

Sorry for the snark but why is this such a problem?

vandahm•43m ago
I've used React on projects and understand its usefulness, but also React has killed my love of frontend development. And now that everyone is using it to build huge, clunky SPAs instead of normal websites that just work, React has all but killed my love of using the web, too.
sodapopcan•42m ago
If you are the only person who ever touches your code, fine, otherwise I despise this attitude and would insta-reject any candidate who said this. In a team setting, "I don't like magic" and "I don't want to learn a framework" means: "I want you to learn my bespoke framework I'm inevitably going to write."
socalgal2•35m ago
You could walk through the framework so you then understand it. There are several "let's create react from scratch" articles

https://pomb.us/build-your-own-react/

Certain frameworks were so useful they arguably caused an explosion the productivity. Rails seems like one. React might be too.

EDuke32 – Duke Nukem 3D (Open-Source)

https://www.eduke32.com/
74•reconnecting•2h ago•21 comments

Parse, Don't Validate and Type-Driven Design in Rust

https://www.harudagondi.space/blog/parse-dont-validate-and-type-driven-design-in-rust/
71•todsacerdoti•2h ago•25 comments

I Don't Like Magic

https://adactio.com/journal/22399
55•edent•3d ago•28 comments

I verified my LinkedIn identity. Here's what I handed over

https://thelocalstack.eu/posts/linkedin-identity-verification-privacy/
1030•ColinWright•15h ago•379 comments

How far back in time can you understand English?

https://www.deadlanguagesociety.com/p/how-far-back-in-time-understand-english
253•spzb•3d ago•157 comments

Inputlag.science – Repository of knowledge about input lag in gaming

https://inputlag.science
39•akyuu•2h ago•7 comments

Toyota Mirai hydrogen car depreciation: 65% value loss in a year

https://carbuzz.com/toyota-mirai-massive-depreciation-one-year/
41•iancmceachern•4h ago•93 comments

How an inference provider can prove they're not serving a quantized model

https://tinfoil.sh/blog/2026-02-03-proving-model-identity
55•FrasiertheLion•15h ago•32 comments

zclaw: personal AI assistant in under 888 KB, running on an ESP32

https://github.com/tnm/zclaw
33•tosh•9h ago•19 comments

What not to write on your security clearance form (1988)

https://milk.com/wall-o-shame/security_clearance.html
332•wizardforhire•5h ago•133 comments

Canvas_ity: A tiny, single-header <canvas>-like 2D rasterizer for C++

https://github.com/a-e-k/canvas_ity
32•PaulHoule•3h ago•14 comments

CXMT has been offering DDR4 chips at about half the prevailing market rate

https://www.koreaherald.com/article/10679206
113•phront•7h ago•83 comments

MeshTNC is a tool for turning consumer grade LoRa radios into KISS TNC compatib

https://github.com/datapartyjs/MeshTNC
12•todsacerdoti•1h ago•3 comments

Personal Statement of a CIA Analyst

https://antipolygraph.org/statements/statement-038.shtml
90•grubbs•4h ago•48 comments

Cloudflare outage on February 20, 2026

https://blog.cloudflare.com/cloudflare-outage-february-20-2026/
116•nomaxx117•3h ago•82 comments

Claws are now a new layer on top of LLM agents

https://twitter.com/karpathy/status/2024987174077432126
131•Cyphase•21h ago•546 comments

Permacomputing

https://wiki.xxiivv.com/site/permacomputing.html
64•tosh•4d ago•13 comments

Loon: A functional lang with invisible types, safe ownership, and alg. effects

https://loonlang.com
50•surprisetalk•1d ago•30 comments

Acme Weather

https://acmeweather.com/blog/introducing-acme-weather
152•cryptoz•15h ago•97 comments

The Software Development Lifecycle Is Dead

https://boristane.com/blog/the-software-development-lifecycle-is-dead/
18•zenon_paradox•3h ago•12 comments

A solver for Semantle

https://victoriaritvo.com/blog/semantle-solver/
45•evakhoury•3d ago•11 comments

Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust

https://github.com/Ragnaroek/iron-wolf
47•ragnaroekX•6h ago•17 comments

Padlet (YC W13) Is Hiring in San Francisco and Singapore

https://padlet.jobs
1•coffeebite•10h ago

Uncovering insiders and alpha on Polymarket with AI

https://twitter.com/peterjliu/status/2024901585806225723
106•somerandomness•1d ago•101 comments

Online Pebble Development

https://cloudpebble.repebble.com/
4•teekert•1h ago•1 comments

AI uBlock Blacklist

https://github.com/alvi-se/ai-ublock-blacklist
193•rdmuser•14h ago•79 comments

Be wary of Bluesky

https://kevinak.se/blog/be-wary-of-bluesky
175•kevinak•22h ago•133 comments

Microsoft team creates data-storage system that lasts for millennia

https://www.nature.com/articles/d41586-026-00502-2
66•gnabgib•3d ago•58 comments

A16Z partner says that the theory that we'll vibe code everything is ' wrong'

https://www.aol.com/articles/a16z-partner-says-theory-well-050150534.html
63•paulpauper•23h ago•78 comments

Keep Android Open

https://f-droid.org/2026/02/20/twif.html
1955•LorenDB•1d ago•673 comments