Remix.run Logo
rsynnott 8 hours ago

> boilerplate

Ruby on Rails and its imitators blew away tons of boilerplate. Despite some hype at the time about a productivity revolution, it didn’t _really_ change that much.

> , libraries, build-tools,

Ensure what you mean by this; what bearing do our friends the magic robots have on these?

> and refactoring

Again, IntelliJ did not really cause a productivity revolution by making refactoring trivial about 20 years ago. Also, refactoring is kind of a solved problem, due to IntelliJ et al; what’s an LLM getting you there that decent deterministic tooling doesn’t?

rileymichael 5 hours ago | parent | next [-]

couldn't have said it better. all of the people clamoring on about eliminating the boilerplate they've been writing + enabling refactoring have had their heads in the sand for the past two decades. so yeah, i'm sure it does seem revolutionary to them!

maccard 4 hours ago | parent [-]

There have been a handful of leaps - copilot was able to look at open files and stub out a new service in my custom framework, including adding tests. It’s not a multiplier but it certainly helps

rileymichael 4 hours ago | parent [-]

most frameworks have CLIs / IDE plugins that do the same (plus models, database integration, etc.) deterministically. i've built many in house versions for internal frameworks over the years. if you were writing a ton of boilerplate prior to LLMs, that was on you

maccard 4 hours ago | parent [-]

Habe they? I’ve used tools that mostly do it, but they require manually writing templates for the frameworks. In internal apps my experience has been these get left behind as the service implementations change, and it ends up with “copy your favourite service that you know works”.

rileymichael 4 hours ago | parent [-]

> they require manually writing templates for the frameworks

the ones i've used come with defaults that you can then customize. here are some of the better ones:

- https://guides.rubyonrails.org/command_line.html#generating-...

- https://hexdocs.pm/phoenix/Mix.Tasks.Phx.Gen.html

- https://laravel.com/docs/13.x/artisan#stub-customization

- https://learn.microsoft.com/en-us/aspnet/core/fundamentals/t...

> my experience has been these get left behind as the service implementations change

yeah i've definitely seen this, ultimately it comes down to your culture / ensuring time is invested in devex. an approach that helps avoid drift is generating directly from an _actual_ project instead of using something like yeoman, but that's quite involved

maccard 3 hours ago | parent [-]

Sorry - I’m aware that rails/dotnet have these built into visual studio and co, but my point was about our custom internal things that are definitely not IDE integrated.

> it comes down to ensuring time is invested in devex

That’s actually my point - the orgs haven’t invested in devex buyt that didn’t matter because copilot could figure out what to do!

epicureanideal 5 hours ago | parent | prev [-]

And for a lot of AI transformation tasks, for a long time I've been using even clever regex search/replace, and with a few minutes of small adjustment afterward I have a 100% deterministic (or 95% deterministic and 5% manually human reviewed and edited) process for transforming code. Although of course I haven't tried that cross-language, etc.

And of course, we didn't see a massive layoff after the introduction of say, StackOverflow, or DreamWeaver, or jQuery vs raw JS, Twitter Bootstrap, etc.

elvis10ten 4 hours ago | parent | next [-]

I just had a relevant experience. I asked Claude to add “trace(‘$FunctionName’) {}” to all Composable functions in my app. Claude spent some time doing something. In between, I was like shoot, I could just do a deterministic regex match and replace.

rileymichael 4 hours ago | parent | prev [-]

structural search and replace in intellij is a superpower (within a single repo). for polyrepo setups, openrewrite is great. add in an orchestrator (simple enough to build one like sourcegraph's batch changes) and you can manage hundreds of repositories in a deterministic, testable way.