Hacker Newsnew | past | comments | ask | show | jobs | submit | lacedeconstruct's commentslogin

yes but >> 8 is so much faster

You don’t divide a float by 256 by shifting it right eight bits; that would yield complete garbage. You subtract 8 from the exponent, then check if you got an underflow.

Same point; divide by power of 2 is a fast subtraction operation in float world, while divide by 255 shits all over the whole float

If your input is an arbitrary float, you need to check for denormals (and maybe NaNs). You can do bitmasking trick to avoid conditional jumps but I'm skeptical you can do it faster than SIMD multiply instruction.

It's just multiplication. Floating multiply is extraordinarily fast.

The difference between 20 cycles and 1 clock cycle in a hot loop is very noticeable

It's 3 cycles for float multiplication (and 1 for shift right):

https://uops.info/table.html?search=mulss&cb_lat=on&cb_tp=on...

https://uops.info/table.html?search=shr&cb_lat=on&cb_tp=on&c...

In throughput it's even less of a difference: 2 per cycle vs 3 per cycle.


Shift right isn't even relevant here - if you shift before conversion to float all your values end up 0 and if you want to divide afterwards its no longer a simple shift.

Exactly. Although if you do >> 8 while working with uint8, it will be the fastest :)

It's 3 cycles for float multiplication (and 1 for shift right):

3x faster

In throughput it's even less of a difference: 2 per cycle vs 3 per cycle.

50% faster


FP Division by constant is optimized by a compiler into a multiply. Graphics processing typically happens on the GPU these days, and on all recent GPUs FPMUL belongs to the class of lowest-latency operations. That is, there are no other instructions that complete faster.

Only with things like -ffast-math enabled will compilers do the reciprocal. It can make a fair difference in some cases, but it's often better to selectively use it in code locations you know are acceptable by doing it manually in the code.

That's only valid to do if the reciprocal is representable exactly.

That's not totally true. It's sufficient to be exactly representable, but you only need the reciprocal rounding error to be small enough to guarantee the multiplication rounding step fixes it across the entire range of numerators. For IEEE754 f16 values, there are 28 such extra values, the positive and negative sides of 1705/x where x is a power of 2 at least as great as 2048.

Interesting, but pretty limited corner case. Would compilers even identify those 28 values and do the transformation?

Maybe for f16. The compiler's implementation could just be checking all numerators to see if the transformation is safe. The corner cases are messy and not quickly brute-forceable for f32 or brute-forceable at all for f64 though, so I doubt they'd bother, especially when I bet those constants have showed up literally zero times across all programs.

Useful, then, that you can start several vectorized floating-point muls each cycle. (E.g., most modern x86 are 3/0.5 cycles for vmulps. No 20 cycles in sight.)

Only in micro-benchmarks.

For real usage, today's CPUs are limited by memory bandwidth.


What are you talking about in a hot loop in my software renderer this is like 10x faster

    // color4_t result = {
    //     .r = (src.r * src.a + dst.r * inv_alpha) * INV_255,
    //     .g = (src.g * src.a + dst.g * inv_alpha) * INV_255,
    //     .b = (src.b * src.a + dst.b * inv_alpha) * INV_255,
    //     .a = src.a + (dst.a * inv_alpha) * INV_255
    // };

    // 1/256 but much faster
    color4_t result = {
        .r = (src.r * src.a + dst.r * inv_alpha) >> 8,
        .g = (src.g * src.a + dst.g * inv_alpha) >> 8,
        .b = (src.b * src.a + dst.b * inv_alpha) >> 8,
        .a = src.a + ((dst.a * inv_alpha) >> 8)
    };

And both are wrong since the values would have to be in a linear color space for for the compositing math to make sense. But in some non-linear space to be useful when mapped to 0..255 (e.g non-linear sRGB).

Which happens right after the Porter-Duff Over operator above -- a smoking gun. Which one is it gonna be?

I.e. the display transform is omitted from this and the math involved with the latter makes your whole argument moot.

It can't be expressed well enough with bitshifts to keep your purported 10x speedup anyway (and which I strongly doubt btw).

And lastly: in a software renderer that stuff is usually <0.01% of the compute in the absolut worst case.

P.S.: I'm speaking from 30 years of experience with software rendering in the context of VFX.


If the latter is 10x faster, the issue is some kind of weird compilation failure for the above version. For one, it only cuts a third of the multiplies.

Because you are working in the cache.

Also, you should use SIMD.


> Also, you should use SIMD. ironically no clang is better at auto vectorizing

Better than what? And do you use `-mavx2` or do you let it target baseline x86_64 and miss out on 8-float vectors? How do you make sure its autovectorisation is successful?

How is this supposed to be 10x faster if all you did was drop one out of three multiplications?

A slop fork machine is way different though, I dont know why authors never thought about this but imagine a machine that can detect the features and replicate whatever it sees, show it how to make bread once and it can do it infinitely, make it listen to a song and its able to find why it sounds the way it does and just spam variations, even if it doesnt make anything original it demotivates any attempt to push the boundaries or make anything new


Really? I'm more motivated than ever to make stuff at the moment. I have a long list of projects I've always wanted to make, but I never had time. The barrier is so low now.

For example, I want to make:

- A mini OS on top of SeL4

- A UI framework based on SolidJS, for native apps, in rust.

- My own photo manager (which can do backups & sync across all my devices). And a gallery to share photos with friends

- A local first data store, built on top of CRDTs

- My own programming language

And lots more.

Each of these projects on their own would take months of time. If LLMs can speed up development, that's great! I don't care if nobody else uses what I make. I want a personal computer full of my own software.


I feel the same way as you. But was unfortunately not surprised to see the replies you are getting here.

There are a ton of opportunities available right now to make new things. And make them better, more customizable, and more sovereign.

To the replies: be the change you want to see in the world, guys. That may be trite but focusing only on the negative will just make your own life shitty.


Leisure projects for me at least are about the personal challenge and achievement. If the LLM does it, you achieved nothing.


I'm glad that you find achievement in the personal challenge. At home, I'm just getting things done. Small things, bigger things, and best of all I get to pet the dog more while it works in the background.


Yeah so don't bother. I don't write code at home. What's the point? I go on holiday once a month!


So, you don't even work on personal projects? But you want to lecture everyone else about how to do them correctly (according to you)? What a waste of time.


I spent years working on personal projects.

Back to 1988.

Think I have a fair bit of experience.


Are you assuming that "using a LLM" automatically means "vibe coding"?

Is it not engineering anymore even if you micromanage and relegate the machine to a better typist, following patterns and doing research around?


> If the LLM does it, you achieved nothing.

Oh get off your high horse.

You may as well say "If the compiler compiles your code, you achieved nothing". Its the same argument.

I love meaty algorithmic challenges. And I enjoy the design challenge of making a piece of software. But I don't write CSS for fun. Debugging styling issues on mobile? I hate it.

LLMs let me work on the parts that I find enjoyable and satisfying. Like UI design, or figuring out the data model. And then I can delegate the parts I don't like to Claude. It seems very happy to bang away at CSS.

That's a great deal. If you want to personally write every line of code, good for you. But don't police my leisure projects.


I support this take especially since you added the "I don't care if nobody else uses what I make", but you should at least acknowledge what you're talking about is pretty unrelated to the article, as the author's entire context seems to be making something for other people to use and building it together with other people.

Since you said you want to make those things that you list, I assume none of these things have been built yet. If so, I would encourage you to consider how excited you will be to constantly maintain those things you build. But even if the maintainence cycle won't be as exciting, since you are the sole user you have the advantage of being able to proceed at a leisurely pace even while doing maintainence work.

In a professional setting, the dopamine hit of being able to build something quickly that works in an area that you have little to no knowledge in makes you more dependent on the AI in the maintaince cycle as you want to chase that dopamine high by maintaining the same development speed. This in turn leads to a bigger burnout crash after that peak dopamine hit. Maintainence is a phase of diminishing returns even without AI, but when your coding agents are introducing new bugs at record pace with their bugfixes with no new features to write home about you are in a special place in Hell.

I'm all for using AI to build ambitious projects. I have yet to see a person/company/organization continuously release huge software endeavours in a stable professional manner day in and day out with a coding agent harem in tow.

If something like the Ladybird browser, or any browser that is "built by scratch", achieved Chrome parity in six months and consistently maintained the same level of stability with continuous releases then I would see that as proof that this approach has become professionaly sustainable.

The reason people are getting away with so much using AI is because of the open secret in most enterprise engineering practices: the customer cares more about the response time for fixes they report than they do about overall or longterm product quality.


> I would encourage you to consider how excited you will be to constantly maintain those things you build.

Why should I consider that?

Its funny how the default with programming is that the piece of software exists forever. I've been learning to play the piano lately. The default with piano is that every piece is ephemeral. If I don't go out of my way to record something I play, after the notes have run out, the piece is gone forever. The same is true of cooking - except you can't record a meal at all. Once you eat it, its gone. Lots of art forms are like this - theatre. Dance. The circus. They're no less beautiful for being ephemeral.

Why do we assume software has to be maintained indefinitely? Why even think about that right now? Maybe I'll work on these projects for awhile, maintain them as long as I want, and then in a few years someone will make something way better and I'll use that instead? Would that make the effort I put in pointless? I don't think so. I think it would make programming more like playing the piano. How lovely.

> I'm all for using AI to build ambitious projects. I have yet to see a person/company/organization continuously release huge software endeavours in a stable professional manner day in and day out with a coding agent harem in tow.

Yes, I've burned through enough claude tokens now that I find myself agreeing with you. I wouldn't use an LLM to make and maintain google chrome. But I wasn't planning on doing that anyway. There are also a lot more options than (1) write everything yourself and (2) vibe code the whole thing.

LLMs are good at small-to-medium scope tasks right now. Fine. I'll use them - or not use them - with their limitations in mind.


>Why would I consider [maintainence]...Its funny how the default with programming is that the piece of software exists forever.

By all means don't consider it if you don't plan on using them for a considerable amount of time, but there's a lot of of distance between a decent amount of time and "forever". You listed a mini OS and a UI toolkit among your projects, I hope you can forgive me for assuming you were planning to use those things to build more things, which would in turn often entail improving and maintaining these building blocks while they are actively used.


Ah fair. When you say “maintenance”, my mind goes to handling pull requests and keeping on top of filed issues on GitHub. If the software has an audience of 1, a lot of that work goes away.

Adding the features I have a need for over time is the fun part as far as I’m concerned.


The issue is maintenance. If you want to use these projects for important things, you need to maintain them. If you don't want to maintain them, I can't see myself using them for anything important.

I actually want less software for myself. Less things to maintain. I've become a "digital minimalist" in that I use very few software, only ones maintained by others who can afford and are willing to keep them working.


Some people find freedom in building their own house. Some people find freedom in living in a serviced apartment.

Some people find joy in home cooked meals. To others, wealth is never needing to cook again.

To each their own.

As for maintenance, I think LLMs are actually very well suited for small maintenance tasks. The expensive part of programming is loading and unloading context into my head. "Oh dear, what is all this code doing? Oh no, coffeescript? And some ancient version of express JS? How does any of this work?". LLMs can bomb in, fix a compilation error and bomb out. "This program isn't compiling any more on macos X.Y.Z. Read the patch notes. Figure out why and fix the problem." Perfect.


*Make anything "new"


Everything I want to make is new. I don't understand the objection.

For example, the photo backup system I want to make will let me manage my ~400gb photo library. I want my library backed up on a couple devices, running linux and freebsd. I want my mac and iphone to have a local mirror of all the favorited photos, and when I'm at home, I want to be able to browse all photos from those devices by streaming them over the local network. I want native macos & ios app interfaces to view and manage all that.

I don't know any existing software that meets my requirements. I don't think any such software exists. Apple, Dropbox and Google will solve this problem for me if I store all my photos in their cloud and pay them an ongoing subscription for the privilege. I'd much rather make something myself, and back up my photos on my own hard drives.

Making something like this is simple enough, but very time consuming. If claude can take the drudgery out of it, well, I think that's just delightful.


Ente photos is one thing and there are others.

You can accomplish most of that by installing Syncthing.

But the objection is that you’re not really building anything new even if you think it’s a new idea. By your definition you’re building for yourself and not sharing…so what good are your little projects. Reading your original list it just seems like you want to build and run software without having to do any research, even if a solution already exists.


> But the objection is that you’re not really building anything new even if you think it’s a new idea. By your definition you’re building for yourself and not sharing…so what good are your little projects.

What an incredibly blinkered view. You think there's no value at all in making software unless your program solves a truly novel problem, and does so for millions of users?

There's so much joy that can be found in simple, disposable acts of creativity. I don't need the world to applaud when I cook an omelette, make a table out of wood or play a piece on the piano. Why would I need that from the software I make? Just because you can buy a table from IKEA doesn't mean its not fun to make one yourself. Just because someone on spotify played it better doesn't mean there's no joy in playing music.

Why would I hesitate to make my ideal photo library program, just because other programs exist? What a sad, self-limiting rule.


No you would hesitate because you yourself said you dont have the time. So why would you still develop it if you dont have the time to maintain or develop a project like that. You’re the one being sad and limiting unless you find a reason not to be. Sorry you had to rely on Llms to get a decent photo setup running but you also DIDNT have to reinvent the wheel to accomplish that. Waste all the time in the world that you want building single use stuff with LLMs but dont walk around like it wasn’t possible before because it required dev time then turn around and tell us you have plenty of time to screw around with an LLM which is proven to not give time savings. Im glad you found out about code generators to start projects though.


You seem mad at me for making fun projects with LLMs. Of course it was possible to do fun stuff before LLMs. Been there, done that! It’s just even easier now that I can rent an llm to do all the boring bits. How sick is that!

Does that make you mad? Why does other people enjoying themselves with LLMs make you mad?


No it doesnt make me mad, I’m just trying to point out to you why people object to your comment. As is the topic of this thread chain.


Liar. Your comment above is spiteful and demeaning. I suggest taking a moment to think about where that energy is coming from. It’s not coming from me.


Okay then good talk. I think the only person acting out is the one getting offended others are pointing out inconsistencies in your logic. No one is actually stopping you though so I’m not so sure why the aggressive attitude.


I have everything this guy is talking about just from running Filerun (with the Nextcloud client for mirrors) and backing up to Backblaze R2. At some point developers seem to forget that other developers exist.


> At some point developers seem to forget that other developers exist.

At some point developers seem to forget that making stuff is fun. The fact SQLite and GCC exist doesn't mean you're banned from making a database or a C compiler.

You're allowed to make stuff just because.


What's your time and life worth? You pay Apple to deal with it (which I do) and get to live a peaceful life and go out and take photos and have experiences. Or do you spend weeks implementing your own solution with Claude. The latter is considerably higher cost in time and money.

AI is seen as a way out of drudgery but you're just trading one problem for another.


The implementation is part of the fun.


So why would you buy it off of Anthropic?


In any activity you can take shortcuts that makes it easier. It's up to you how many (if any) you want.

Take woodworking for example. When I build a kitchen cabinet, I can get lumber that's already smooth and treated, I can buy drawer tracks, I can use power tools instead of a handsaw and a screwdriver, I can use a pocket hole jig to make joints easier. I still have to do more planning and assembling than with the Ikea cabinet, which also takes more work than having a contractor do everything for me.

I'm doing it my way because it's fun for me. Other people might enjoy other parts of the process - or different things altogether.

There's a whole spectrum between doing everything from scratch and paying someone to have it done for you.


I don't understand the question. For one thing I use local models mainly, but even if I didn't, I'd be buying the tokens from cloud model providers, not the prepackaged, fully complete software itself. I buy the tokens to make what I want.

It's actually quite similar to buying the services of a programmer off Upwork to build something for me, only with LLMs it's way cheaper and faster, with a shorter feedback loop.


I think their point is that you aren't really doing the implementing, Claude (or any model really) is. If you genuinely find prompting LLMs to be fun, then by all means go for it.


What I find fun is getting the output to exactly what I want. I don't care whether I'm personally implementing something or not, and that's what many in this thread seem not to understand.


I'm just gonna hop in and say: I get it.

If I spend a weekend standing up a self-hosted media system or something, I doubt anyone would dispute that's a fun building exercise.

If I do the same thing but use an LLM to build out instead, somehow it's not.

Yeah it's not the same kind of building as what we might have done pre-LLM but it need not be any less satisfying or rewarding.

The real disconnect seems to be the classic dichotomy: people who see coding as the point and the purpose, vs people who just want an outcome.

And that's fine!

I'm just don't understand why the one camp feels the need to deride the other.


Like Lego, assembly can be fun too, and I don't have to manufacture the individual bricks from scratch just to enjoy assembling them together. But no one doesn't call that building something, similar to your experience.


And sometimes buying a statue can be fun, but nobody calls it building a statue.


Help me out with the metaphor here. Do you think designing and architecting some software, then getting an LLM to write a lot of the code, is the same as buying a computer program from a store?


The better AI gets, the closer it gets, yes.


It really depends how you use it. There's a whole spectrum from "do it yourself" to "get the AI to do everything". Its up to each person, on each project, to decide what amongst all of that work is actually worth human time.

I don't enjoy CSS, so I delegate that to an LLM. Just like I don't like writing assembly by hand, so I delegate that to a compiler. So what?


Why aren't you talking about your new love writing assembly now that you have a compiler?


I have no idea what you're talking about.


Interesting that you think building is just coding.

What do you think architects do? Or interior designers? Or civil engineers?


Interesting that you think coding just typing. Code is just a language where the problem is specified in fine detail; the biggest value proposition of an LLM is being able to hand-wave and let some other tool take care of guessing at detail, where you can't be bothered to specify it in full. And, part of the process of specifying in full forces you to rethink design assumptions.

Architecture certainly isn't building, and neither is interior design. Civil engineers calculate and specify the loads in excruciating detail, because if they didn't, people would die.


No, coding is the act of reifying all the things that actually matter--the requirements, the visual design, the system design, etc--into a form that a computer can execute.

The biggest value proposition of an LLM is being able to focus on the truly high-value activities while allowing the machine take care of much of that reification.

That you think architecture or interior design isn't building tells you prefer to downplay or devalue any work that isn't hands on construction. It's an interesting perspective, but it's one I'll never be able to understand or agree with.


If you give up on the details, you lose the ability to do a good job on the high level structure. The entire purpose of the high level structure is setting things up so that the details fit cleanly.


For junior developers, I absolutely agree that's a major risk, and it's something I'm deeply worried about as these tools take over the industry, as understanding those details helps inform why a given architecture is needed.

For someone who's been around the block a few times, there's little new under the sun. Coming up with good architecture for a problem space and having the LLM fill in the details is incredibly effective as a pattern.

That said, tbh I'm not sure why we keep exchanging messages. Your other comment about coding with AI assistance as being akin to buying a statue tells me you have either never coded with an agent, and so think it's a simple matter of saying "build me a to-do app" and then calling it a day, or you're experienced with these tools and deliberately misrepresenting the process.

If it's the former, then we don't share enough understanding to have a healthy conversation, and if it's the latter then there's little point in arguing with someone who insists in doing so in bad faith.


Take a look at https://immich.app/


Oh that looks lovely. I enjoy the UI and all the work on tagging and classification. But its still missing some features I want:

- I want native desktop apps

- I want P2P device sync. My laptop and my home server should be peers. Just with different rules for which photos are stored locally on each device.

- I want per-device storage rules. (Eg, "I want all my favorited photos, and recent photos up to 50gb on my laptop").

- Backups. I want to be able to plug in an external hard drive and backup my photos (with some rules). Then disconnect the drive and see in the metadata for those photos that I have a copy of the full res RAW on that drive.

But even if other programs exist, its still fun to make something myself. Authoring your own software gives you a different relationship with the computer. You're less of a consumer. You can change or tweak features on a whim. Psychologically, its kind of like being in your own home vs being in a hotel room. If you hate the furniture at home, you can move it or change it. You can decorate however you like. In a hotel, you're affected by your environment but you have no agency over it. I think its much more healthy to create.


You're not wrong, but a fork of Immich would achieve much of the same, no? I understand this is probably a detour from the conversation, but I've been thinking of doing the same to add some niceties


If my goal was to make something that fits in with the existing ecosystem and has the most users possible, I could do that. Try to make some changes which could possibly be upstreamed. Spend my time going back and forth on minutia in github pull requests. Learn Dart. Figure out how to wrap a typescript & dart app in a macOS native window. Or turn to electron. (Yuck.)

But I’m optimising for the feeling of joy and agency over my tools. I also want to experiment with p2p / local first data structures in a real app. I could fork immich and rewrite the data model. But that all seems much less fun.

At the end of the day, I’m not doing this for other people. I’m doing this for me. Learning dart so I can hack on someone else’s code sounds like a pain in the butt. Not like something I’d want to do for fun on the weekend.

Working on someone else’s code seems like a strange default. You and others have jumped on me for wanting to make my own thing instead of using - or forking - someone else’s software. Can you help me understand why? Why would that be the default for a fun hobby project? I’m confused.


No, I'm not jumping on you. I'm asking why not base your personal software on Immich so you get the benefits of a mature (ish) software. Sorry if it came off that way, but I'm not saying you need to share it - I'm saying why not make a personal fork instead of building your own from scratch

And you're actually excited by the prospect of buying them from Anthropic instead of making them?


Suppose you're the senior engineer on a project. You design the UI of the software. Then design how you want the software to work internally. Then write the core data structures. And then guide a bunch of junior engineers to write the code, review their work.

Is that the same as buying a computer program from anthropic?

I have a friend who's an architect. Sometimes we're in the city and he says "Oh see that building? Its one of mine." He didn't lay the concrete, or do the wiring or anything. Should he not be proud, because a construction company built each floor? Does it not count? Does his contribution not matter?


Open weight models exist and are good enough to make the projects above.


And you're actually excited about these table scraps that companies couldn't even monetize, rather than making something?


You are being needlessly combative. Please take a step back and look at what you are doing - I don't think this is positive for you or anybody


Couldn't even monetize? DeepSeek and Alibaba with Qwen are doing quite well, no table scraps required. I am making things, I don't have to physically type letters on a keyboard to make things as long as the output of what I want exists.


I argue the opposite, that originality will actually become more valuable.

Think about it: everyone has characterized AI slop, as slop. Which means that we negatively value it in terms of originality. Combine that with the fact that there will be a lot of it, this means that original work will 1. stand out or be very distinct from slop, and 2. have its value amplified as a result of this polarization.

basically, we value originality more AND are able to identify it more readily.

related is also the fact that originality will literally be valuable as training data for future models


I can prod at a model as much as I want to produce something I find more original than average, but there are plenty of people out there that will say it doesn't count because of the fact an AI made it. "Slop" doesn't just mean "it sucks because it's bad", it often means "it's sucks because it's AI". They'd argue that if you were creative enough to produce something so original you wouldn't rely on an AI to make it for you. It's tainted by association, all the way back to the multi-billion-dollar enterprises that originally trained the models for their own ends.

Also there have been dozens of HN submissions and comments where the poster didn't even bother to remove the em dashes. Most people just don't care. The people who continue to post like this wouldn't have been as visible had they not discovered AI and pounced on it, but they were always there. The idea of posting with an AI voice, em-dashes and all, would likely have still appealed to them if you'd asked 5-10 years ago. Nowadays it takes hardly any energy for them to have a persistent voice.


I also define "slop" in a similar way. However, I specifically define it as creations that lack soul or originality. And can actually have a high degree of quality in some aspects, as you can see with some AI generated art and music. Because of this, I'm tempted to adopt a different term since "slop" feels too negative

Slop has always been around. AI has cheapened its creation.


Depends on how good the slop fork machine is, the act of true original creation is a messy and long process if it can be replicated to death immediately basically for free its not viable anymore


then it isn't a slop fork machine anymore is it? i was under the impression that the best the SFM would get is generating... how do I say this? high quality low quality work. Basically, the ability to cheaply produce quality work, characterized by its lack of soul/originality. think amazing looking advertisement graphics. not to say that it can't do better than that. just meant it as an extreme example for illustrative purposes

If something is able to generate things with soul and true originality... we're talking about something incredible, a new intelligent species potentially


It doesnt have to able to generate original things, its enough to be able to detect what makes it original and replicate the original thing with enough variations in different contexts to be able to be destructive and render the true original thing completely useless


what you described is not how originality works.

think about how in music, when an artist comes out with something original and awesome, and then everyone starts copying it and creating their own derivative works, like Jimi Hendrix or something.

Did Hendrix become useless? Did everyone end up thinking he sucks or something? No, he is even more revered, as the originator of a new type of sound that probably created multiple genres

The same thing applies here. Originality will be valued and even empowered as extrapolation and development off of it can increase in speed and quality in the case you mention


> then it isn't a slop fork machine anymore is it?

True, but some nuance is that a LOT of artist/creative types lean exclusively on the mechanical skill needed to create, without anything really much to say. They also very frequently copy other's styles, etc.

I'm not defending AI pumping out crap, but this also shows a lot of folks don't have much to offer beyond the mechanical aspects and we shouldn't glorify churning out stuff by hand as high art either.


This honestly makes me feel ambivalent, as on the one hand, it is awesome that it is pushing creatives to be more original, but on the other hand it does threaten these types of creatives who have invested time into making this their livelihood :/


Yeah same, I'm definitely not applauding it, but it has felt like coming for a long time even before AI recently.


I bet you will learn alot doing that though


Depends if the purpose is learning or actually delivery something on the same amount of time.

Each one has their place.


Going through books after this one was a breeze


It was a never a velocity problem though, rapid progress comes mainly from designing better systems and building tight abstractions not by writing using the same primitives faster


I can't agree more strongly. I've seen folks flail at very high velocity, I've even done it myself. It's a thinking profession, not a typing one. Making the right choices at the right time can save you months or years (or cost you that).

The people that don't value good design will absolutely have a lot more rope from which to hang themselves.


That certainly used to be the case.

Do you think that in 2026 maybe rapid progress can also come from using the same primitives faster?

I'm still figuring this out but I'm certainly open to the possibility.


Managing cognitive load was cool before managing context window has become the thing.

Same techniques for both - the right abstractions, the right app architecture choices and layering.


I dont want that though, I want someone to spend much more time than I can afford thinking about and perfecting a product that I can pay for and dont worry about it


The metaphor that’s popped into my head recently is baking bread.

You can learn to bake good bread. It’s not _that_ hard. And it’ll probably taste better than store bought bread.

But it almost certainly won’t be cheaper. And it’ll take a more more time and effort.

Still, sometimes you might bake your own bread for kicks. But most of the time, you’ll just buy the bread someone else has already perfected.


Baking bread also takes hours of waiting.

I can have fresh bread anytime I want from a handful of nearby stores.


In the next few years it's going to be quicker to tell an AI to make something than it will take to hunt down software which fits all your uses perfectly. If you're honest, all software is imperfect for you. It's not customised exactly how you like it. Imagine if it could be exactly what you want with zero effort.


And some people do, both things can be true. I'd rather make a tool just for me that breaks when I introduce a new requirement and I just add into it and keep going.


The statement wasn't: "no one ever vibe codes an alternative to product X"

It was: "With sufficiently advanced vibe coding the need for certain type of product just vanishes."

If a product has 100 thousand users and 1% of them vibe codes an alternative for themselves, the product / business doesn't vanish. They still have 99 thousand of users.

That was the rebuttal, even if not presented as persuasively and intelligently as I just did.

So no, it's not the case of "both things being true". It's a case of: he was wrong.


At some point there will be market consequences for that kind of behavior. So where market dynamics are not dominated by bullshit (politics, friendships forged on Little St James, state intervention, cartel behavior, etc.) if my company provides the same service as another, but I replaced all of the low quality software as a service products my competitor uses with low quality vibe coded products, my overhead cost will be lower and that will give me an advantage.


If we could return to one-off payments without dark patterns I would agree. Hopefully at least the software that rely on grift will start to vanish.


> evolved into something else that was all about money and growth and image

I feel like this happened long before LLMs became a thing


Definitely. I left the industry and became a community college professor two years ago, partly because I felt disillusioned with the industry. This decision had nothing to do with LLMs.

As someone who was inspired by people like Steve Jobs, Steve Wozniak, Dennis Ritchie, Ken Thompson, Alan Kay, and other major figures of computing, I’m not inspired by Elon Musk, Sam Altman, Mark Zuckerberg, and other current tech leaders. But the current leadership is the current leadership, and they have set the tone not only for our industry, but society as a whole.

While I am not opposed to LLMs per se, LLMs in software development, in my opinion, have made the relationship between the employer and the employee crystal clear: employers own the means of production and can dictate how they want their employees to work. Despite the limitations of LLMs, if employers want them to be used because they feel they could ship faster, then employees at those companies have no choice but to use them if they want to keep their jobs. Some employees might not even have the option of using LLMs since they may get outright replaced by them.

The employer has always dictated the terms of employment, but software engineers have enjoyed many decades of relative freedom and negotiating power due to their in-demand, hard-to-replace skills. Indeed, there are many companies where engineers had significant influence regarding the company’s software.

LLMs, combined with other economic factors (the end of ZIRP, the software industry being dominated by a tiny handful of powerful players), are threatening to change this by reasserting the power of business owners and managers to set the agenda.

Even before LLMs, I felt the software industry has moved away from craftsmanship, quality, and creativity. LLMs in software development may accelerate this, since there may be fewer opportunities for engineers to push back.

I think software craftsmanship is going to end up becoming just like art. Unfortunately it will be paid for accordingly, and that’s the unsettling thing that many of us need to adjust to.


For sure. "I hear coding makes money" is the Bootcamp era.


rare occasion where he gained a legendary status based purely on his work, I dont think I ever saw even a written interview with the guy


He is a private man that does not like the spotlight IIUC. He refuses most requests for interviews, but they do exist.

https://www.macplus.net/depeche-82364-interview-le-createur-...

https://www.mo4tech.com/fabrice-bellard-one-man-is-worth-a-t... (few quotes, more like a profile piece)

He keeps a low profile and let his work speak for itself.

He really is brilliant.


He has probably has no time for interviews and just focuses on working on his many projects.


I often think the world would be a better place if more people in the tech industry follow this philosophy.


I think this is such an important point. I know all about Bellard's main works. I actually have no idea what he looks like, I've also never seen an interview with him, and I've never read about his specific philosophies when it comes to different software engineering topics. In a world of never-ending bloviations from "influencers" and "thought leaders" it's so awesome to see a real example of true excellence.


I thought the main idea of vim is that touch typers who are really fast can do everything without lifting their fingers from the main row, which is a really motivating reason imo, it starts to breakdown heavily when you dont already have this skill though


Even with that skill, I am arguing that figuring out a regex for your find and replace operation, or a sequence of commands to jump to the next line, are cognitively demanding in a way scrolling the mouse until you see it, or clicking around a minimap, is not. People do not tend to actually wall clock the time they spend thinking about what to type. I would have this experience too- I would feel like a wizard having stitched together a sequence of multiple commands, and remember that, not the fact that I didn’t get anything done that day I wouldn’t have with sublime text or vscode.

I think there was a time when vim saved a lot of time over other editors, and it still feels like a powerful time saving when you kick off a macro, but I am not convinced it actually is saving time over modern editors with their far easier to use features and plugins.


I've used Vim for 10 years+, and I think this is a spot on summary. One thing you covered well that I'd emphasize is Vim feels really good to use, which is insidious. There's a game-like satisfaction to using Vim that I think makes it difficult to objectively evaluate as a user whether it's actually more productive since it's so cognitively satisfying to use.

Even with all that said, I think the type of productivity that Vim's edited language provides is overall pointless. E.g., it just doesn't optimize things that are actually hard and/or time consuming (at least relative to other similar solutions to the same problems, like multiple cursors). The one exception being really complex edits, per the macros you mentioned (e.g., `:cdo norm` is the most effective way to do a complex edit that isn't supported by a IDE refactoring command that I know of), but I don't think most folks in this thread are talking about that when they talk about Vim's productivity (e.g., stuff like `ci"` is cool, but come on who cares, it's not like making small edits like that have ever been a big deal).


This is the unspoken differentiator imo.

I have seen an alarming number of programmers hunt-n-peck typing, and it's getting larger..

To them, vim is probably on-par or slower


To be fair the importance for devs/programmers to touch type is often very exaggerated. Not saying it is not a benefit but is is far from a "must" or something that is a detriment to producing quality work. In the days where secretaries were typing out memos from their boss touch typing was much important or needed.


I am likely bad at what I do, and am not a real developer, instead being someone who just uses "code" to look after infrastructure (or at least I was.)

I never felt a need to punch things out so efficiently that minute differences in time spent on or off keyboards, or my touch typing speed matter. Most of my time that consumes the budget allocated to me is honestly spent in researching and thinking. Once I get to writing the code, sure I could shave down the time to implement it by a few minutes each time, but its not enough for me to care about honestly.

That being said, I do use vim, but only because I was at one point a junior systems administrator and my CTO demanded to know why I was not already using it and instructed me it would be good practice to do so as its installed on everything we ran and so...vim it was. Not for efficiency, or because it empowered me but instead because it was there.

Now that I do more busy work instead such as discoveries, PIR's etc, sure my touch typing speed matters but its very different work.


I felt the need to blame my parents, until my life got better and I realized whatever they did had no impact once I decided to take full responsibility


That is a really unsupportable conclusion.

As an extreme example just to make the point undeniable, your parents could have poisoned you, ending your life. Or they could have maimed you and left you unable to walk, or to see. And those are just gross examples.

Parents have a huge impact in an unknowable number of ways. Yours did on you, too.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: