lots and lots of companies are making that distinction. but try and write a post here saying “our productivity is through the roof and our systems have never been more stable since we started using AI” and see what happens. as it always goes in this day and age, bubbles and echochambers… so easier to just go about your day doing amazing shit at amazing pace than try to “argue” about the merits of a technology. every post I see here suggesting positive results get dowvoted faster than anything else
Maybe you're right, but FSL/BSL is arguably "more open source" than GPL. We all know GPL is a poison pill that kills commercial use, while FSL/BSL just blocks competitors from stealing your app.
That's not even remotely true. GPL does not prevent any commercial use, when others (like BSL or the O'Sassy license here) explicitly prevent commercial use...
Are you kidding me? If you link against a GPL library in a proprietary commercial app, the GPL's copyleft infects that code and you'd have to release it under GPL.
Explain to me how that doesn't prevent commercial use? Are you going to say "well technically it doesn't prevent it"? No one cares. Commercial projects avoid GPL like the plague.
Is this some kind of astroturfing comment? China is supporting Iran and Russia economically and technologically, and is preparing for a Taiwan invasion.
For SaaS, the bottleneck is still access to data. Everything else already has been made in the past 5-10 years, so if you can't find a way around data moats you don't really have a product 99% of the time - especially now that people can vibecode their own solutions (and competitors.)
Beyond that, marketing is harder than ever. Trying to release an app on Shopify app store without very strong marketing usually just means you drop it into a void. No one trusts any of the new apps, because they're inevitably vibecoded slop and there's no way to share your app on social media because all the grifting and shilling have totally poisoned that avenue.
Take a look at Show HN now - there are tons of releases of apps every day, but nothing gets any traction because of the hostile/weird marketing environment and general apathy. Recently, I saw the only app to graduate from New Show HN likely used a voting cartel to push it to the top. And take a guess at what that app did? It summarized HN's top stories with an AI. Something any dev could make in about 10 minutes by scraping/requesting the front page and passing it through an LLM with a "summarize this" prompt.
The entire "indiehacker" community is just devs shilling their apps to each other as well. The entire space is extremely toxic, basically. Good apps might get released but fall into a void because everyone is both grifting and extremely skeptical of each other.
Why is everyone still talking about markdown files as the only form of spec? The argument is true for text-based specs, but that's not the only option. Stop being so text-file-brained?
This article is really attacking vague prose that pushes ambiguity onto the agent - okay, fair enough. But that's a tooling problem. What if you could express structure and relationships at a higher level than text, or map domain concepts directly to library components? People are already working on new workflows and tools to do just that!
Also, dismissing the idea that "some day we'll be able to just write the specs and the program will write itself" is especially perplexing. We're already doing it, aren't we? Yes, it has major issues but you can't deny that AI agents are enabling literally that. Those issues will get fixed.
The historical parallel matters here as well. Grady Booch (co-creator of UML) argues we're in the third golden age of software engineering:
- 1940s: abstracted away the machine -> structured programming
- 1970s: abstracted away the algorithm -> OOP, standard libraries, UML
Each previous transition had engineers raising the same objections: "this isn't safe", "you're abstracting away my craft". They were right that something was lost, but wrong that it was fatal. Eventually the new tools worked well enough to be used in production.
UML was for various reasons, but libraries? When's the last time you wrote a sorting algorithm? The entire software ecosystem runs on dependencies. That failed?
Rust uses crates to import those dependencies, which was one of its biggest innovations.
I would argue that library dependencies in Rust are significantly less abstracted away than in previous languages. The libraries themselves tend to be much more specific (rather than a huge utility library you'll have a crate that does one specific thing - and rather than "sort" it will be a specific sorting algorithm), you specify exactly the version you want rather than getting silently upgraded, and it's statically linked rather than being resolved at runtime. Yes reusing implementation code is not going away, but we're being more explicit about it.
Setting aside that model means something different now … MDD never really worked because the tooling never really dealt with intent. You would get so far with your specifications (models) but the semantic rigidity of the tooling mean that at some point your solution would have to part way. LLM is the missing piece that finally makes this approach viable where the intent can be inferred dynamically and this guides the
implementation specifics. Arguably the purpose of TDD/BDD was to shore up the gaps in communicating intent, and people came to understand that was its purpose, whereas the key intent in the original XP setting was to capture and preserve “known good” operation and guard against regression (in XP mindset, perhaps fatefully clear intent was assumed)
I'm a little wary of this being regex-based; seems like it'd be too brittle for general use? But I really would need a tool like this to hook up to my vibecoding sessions.
fair point on regex being brittle for edge cases. it works well for the obvious patterns (empty catches, bare excepts, hardcoded secrets) but yeah it wont catch everything.
for vibe coding sessions thats actually the main use case i had in mind. run it after a generation pass to catch the low-hanging stuff before it gets committed. zero config so you can just pipe it in.
Getting similar vibes from freelance clients sending me overly-articulated specs for projects, making it sound like they want sophisticated implementations. Then I ask about it and they actually want like a 30 row table written in a csv. Huge whiplash.
reply