This is probably a semantics problem. You’re right. The models don’t know how to mcp. The harness they run in does though (Claude code, Claude desktop, etc), and dynamically exposes mcp tools as tool calls.
HN loves inventing semantics problems around AI. It's gotten really, really annoying and I'm not sure the people doing it are even close to understanding it.
Nah, these are broad strokes you are painting with. Sure some of them needlessly reinvent, but some back end people needlessly reinvent databases and API basics.
But my experience is not the same. It has always been others telling the front-end devs what we "need" to have. I am constantly pushing back with "buttons and links should look and act like buttons and links", "right clicks don't belong in CRUD apps", and "we have a select component that does that". But _BUSINESSES_ want their identity and unique perspective baked into the app.
There is similar reinventing trends movement also in the backend universe.
For example, there is a fashion [1] to include hashes in the names of static assets served. But that's what ETag header is invented for, in the RFC since a decade and implemented in all browsers.
[1] (I deliberately call it a fashion, not a standard; would rather say that RFC 7232 is a standard in this particular case)
It's the boot camp point I think, over-represented in FE (but I haven't done a survey and not GP, just my impression) perhaps because it's more tangible/accessible - 'oh yeah I'll learn to make websites'.
Or perhaps just that it skews young, which I could believe, and might be easier to find survey data on.
I have a very similar story. I spent many many evenings in my teens learning to “script” with Taran’s Sphere Scripting For Dummies website and .chm file for the Sphere Server UO emulator.
Best part is I didn’t even realise I was programming. In my mind I was just making the game do what I wanted.
We used to gargle water mixed with potassium permanganate as children after cleaning our teeth to see if we did a good enough job. It would colour plaque pink, so it was very obvious if you hadn't cleaned properly!
It's the super terse anonymous function syntax. You could use the slightly more verbose version with named instead of positional params or put a named function in there instead.
Right, so it's more based on "what feels right"? (I don't mean that in a bad way - sorry - am genuinely curious.) Note that you can import files in JS too. If you want to turn it into n files, then there's webpack's code splitting, which makes even more sense here.
More that I don't have to force everything into a single file. I think it's more flexible that way. Let's say one day I work static files into my build process I could chuck them into the same folder where they're relevant to the component.