| ▲ | theptip 5 days ago |
| A good case study. I have found these two to be good categories of win: > Use these tools as a massive force multiplier of your own skills. Claude definitely makes me more productive in frameworks I know well, where I can scan and pattern-match quickly on the boilerplate parts. > Use these tools for rapid onboarding onto new frameworks. I’m also more productive here, this is an enabler to explore new areas, and is also a boon at big tech companies where there are just lots of tech stacks and frameworks in use. I feel there is an interesting split forming in ability to gauge AI capabilities - it kinda requires you to be on top of a rapidly-changing firehose of techniques and frameworks. If you haven’t spent 100 hours with Claude Code / Claude 4.0 you likely don’t have an accurate picture of its capabilities. “Enables non-coders to vibe code their way into trouble” might be the median scenario on X, but it’s not so relevant to what expert coders will experience if they put the time in. |
|
| ▲ | bicx 5 days ago | parent | next [-] |
| This is a good takeaway. I use Claude Code as my main approach for making changes to a codebase, and I’ve been doing so every day for months. I have a solid system I follow through trial and error, and overall it’s been a massive boon to my productivity and willingness to attempt larger experiments. One thing I love doing is developing a strong underlying data structure, schema, and internal API, then essentially having CC often one-shot a great UI for internal tools. Being able to think at a higher level beyond grunt work and framework nuances is a game-changer for my career of 16 years. |
| |
| ▲ | kccqzy 5 days ago | parent | next [-] | | This is more of a reflection of how our profession has not meaningfully advanced. OP talks about boilerplate. You talk about grunt work. We now have AI to do these things for us. But why do such things need to exist in the first place? Why hasn't there been a minimal-boilerplate language and framework and programming environment? Why haven't we collectively emphasized the creation of new tools to reduce boilerplate and grunt work? | | |
| ▲ | abathologist 5 days ago | parent | next [-] | | This is the glaring fallacy! We are turning to unreliable stochastic agents to churn out boilerplate and do toil that should just be abstracted or automated away by fully deterministic, reliably correct programs. This is, prima facie, a degenerative and wasteful way to develop software. | | |
| ▲ | jama211 5 days ago | parent | next [-] | | Saying boilerplate shouldn’t exist is like saying we shouldn’t need nails or screws if we just designed furniture to be cut perfectly as one piece from the tree. The response is “I mean, sure, that’d be great, not sure how you’ll actually accomplish that though”. | | |
| ▲ | philjackson 5 days ago | parent | next [-] | | Great analogy. We've attempted to produce these systems and every time what emerges is software which makes easy things easy and hard things impossible. | |
| ▲ | abathologist 7 hours ago | parent | prev | next [-] | | This is a terribly confused analogy, afaict. But maybe if you could explain in what sense boilerplate, as defined in https://en.wikipedia.org/wiki/Boilerplate_text, is anything like a nail, it could be less confusing. | |
| ▲ | Ygg2 5 days ago | parent | prev | next [-] | | You can design furniture without nails or screws. See https://en.m.wikipedia.org/wiki/Japanese_carpentry Reason Japanese carpenters do or did that is that sea air + high humidity would absolutely rot anything with nail and screw. No furniture is really designed from a single tree, though. They aren't massive enough. I agree with overall sentiment. But the analogy is higly flawed. You can't compare physical things with software. Physical things are way more constrained while software is super abstract. | | |
| ▲ | oldsecondhand 4 days ago | parent | next [-] | | > Reason Japanese carpenters do or did that is that sea air + high humidity would absolutely rot anything with nail and screw. The other reason was that iron was very expensive in Japan as they had only low quality iron ore. | |
| ▲ | jama211 2 days ago | parent | prev [-] | | I can and will compare them, analogies don’t need to be perfect so long as they get a point across. That’s why they’re analogies, not direct perfect comparisons. I very much enjoy the Japanese carpentry styles that exist though, off topic but very cool. |
| |
| ▲ | coldtea 4 days ago | parent | prev | next [-] | | I can tell you about 1000 ways, the problem is there are no corporate monetary incentives to follow them, and not much late-90s-era FOSS ethos going around either... | | |
| ▲ | jama211 2 days ago | parent [-] | | By that, you must admit that at least in a sense you imply they’re not cost effective, or practical. |
| |
| ▲ | mejutoco 4 days ago | parent | prev | next [-] | | There are construction systems, for example in Japanese traditional architecture, that use no nails or screws. Good joinery often removes their need. | |
| ▲ | jonstewart 5 days ago | parent | prev | next [-] | | Carpenters/framers are less skilled and paid less than cabinetmakers. But the world needs more carpenters. | | |
| ▲ | namibj 4 days ago | parent | next [-] | | While it sounds likely true for the US, it's the opposite in Germany:
likely due to societal expectations on "creature comforts" and German homes not being framed with 2x4's but instead getting guild-approved craftsmen to construct a roof for a brick building (with often precast concrete slabs forming the intermediate floors; they're segmented along the non-bridging direction to be less customized). | |
| ▲ | j45 4 days ago | parent | prev [-] | | The value is where the demand is, or where the market values it and not just in a skill of working with wood with tools to create nearly anything. |
| |
| ▲ | jampekka 5 days ago | parent | prev | next [-] | | Saying boilerplate should exist is like saying every nail should have its own hammer. Some amount of boilerplate probably needs to exist, but in general it would be better off minimized. For a decade or so there's sadly been a trend of deliberately increasing it. | | |
| ▲ | coldtea 4 days ago | parent | next [-] | | >Saying boilerplate should exist is like saying every nail should have its own hammer It's rather saying that we should have parts that join without nailing by now, especially for things we do again and again and again and again. | | | |
| ▲ | jama211 2 days ago | parent | prev | next [-] | | I didn’t say it should exist, only implied it’s a practical inevitability for the moment. | |
| ▲ | kazinator 4 days ago | parent | prev [-] | | Rather, it is boilerplate that replicates hammers along with nails. |
| |
| ▲ | kazinator 4 days ago | parent | prev | next [-] | | Since we invented the tree and control its parameters and features, this is actually correct. | | |
| ▲ | jama211 2 days ago | parent [-] | | We’re limited by the limits of our invention though. We can’t set the parameters and features to whatever we want, or we’d set them to “infinitely powerful” and “infinitely simple” - it doesn’t work like that however. | | |
| ▲ | kazinator 2 days ago | parent [-] | | Those parameters of the invention that limit people from just doing away with boilerplate are ones they won't change, not can't. | | |
| ▲ | jama211 2 days ago | parent [-] | | Well, depending on the value proposition, or the required goals, that’s not necessarily true. There are pros and cons to different approaches, and pretending there aren’t downsides to such a switch is problematic. |
|
|
| |
| ▲ | philsnow 5 days ago | parent | prev | next [-] | | Even Star Trek has self-sealing stem bolts, they don't just 3d print their ships | | |
| ▲ | joombaga 4 days ago | parent [-] | | They do sometimes 3D print at least smaller ships by the 2380s. |
| |
| ▲ | okr 5 days ago | parent | prev [-] | | Love this analogy. |
| |
| ▲ | jazzyjackson 5 days ago | parent | prev | next [-] | | Yes and its why AI fills me with impending doom: handing over the reigns to an AI that can deal with the bullshit for us means we will get stuck in a groundhog day scenario of waking up with the same shitty architecture for the foreseeable future. Automation is the opposite of plasticity. | | |
| ▲ | abathologist 7 hours ago | parent | next [-] | | Ground Hog day is optimistic, I think. It will be like "The Butterfly Effect": every attempt to fix the systems using the same dumb, wrote solutions will make the next iteration of the architecture worse and more shitty. | |
| ▲ | bicx 3 days ago | parent | prev | next [-] | | Maybe if you fully hand over the reigns and go watch Youtube all day. LLMs allow us to do large but cheap experiments that we would never attempt otherwise. That includes new architectures. Automation in the traditional sense is opposite of plasticity (because it's optimizing and crystalizing around a very specific process), but what we're doing with LLMs isn't that. Every new request can be different. Experiments are more possible, not less. We don't have to tear down years of scaffolding like old automated systems. We just nudge it in a new direction. | |
| ▲ | ako 5 days ago | parent | prev | next [-] | | I don’t think that will happen. It’s more like a 3d printer where you can feed in a new architecture and new design every day and it will create it. More flexibility instead of less. | |
| ▲ | Chris2048 4 days ago | parent | prev [-] | | I find it more likely it will result in an influx of new architectures. Eventually, prog-lang designers will figure out how to get llms to create new prog-langs. |
| |
| ▲ | zer00eyz 5 days ago | parent | prev | next [-] | | > This is the glaring fallacy! It feels like toil because it's not the interesting or engaging part of the work. If you're going to build a piece of furniture. The cutting, nailing, gluing are the "boiler plate" that you have to do around the act of creation. LLM's are just nail guns. | | |
| ▲ | nickserv 5 days ago | parent | next [-] | | At least for me when woodworking, the cutting, nailing, and gluing are the fun bits. The sanding and finishing is the grunt work/boilerplate. | | |
| ▲ | peteforde 5 days ago | parent [-] | | The AI BAD folks camping in this thread would be angry that you're still producing work that requires sanding. | | |
| ▲ | abathologist 7 hours ago | parent [-] | | Not me, because I know how to avoid falling into nonsense speculation based on worthless analogies :D Sand away! Enjoy copying and pasting your nails, or having LLMs apply your varnish or whatever. I hope it brings happiness. |
|
| |
| ▲ | baq 5 days ago | parent | prev | next [-] | | and sanding. don't forget sanding. 90% of building furniture is sanding. | |
| ▲ | jamesnorden 5 days ago | parent | prev | next [-] | | Maybe nail guns that have a chance to randomly shoot nails into your leg and apologize when you ask why it did that. | |
| ▲ | ori_b 4 days ago | parent | prev [-] | | Great analogy. As someone else pointed out in a different subthread, quality furniture isn't held together with nails. |
| |
| ▲ | jclarkcom 5 days ago | parent | prev | next [-] | | When humans are in the loop everything pretty much becomes stochastic as well. What matters more is the error rate and result correctness. I think this shifts the focus towards test cases, measurement, and outcome. | | |
| ▲ | elzbardico 5 days ago | parent [-] | | No. This is a fundamentally erroneous analogy. We don't generate code by a stochastic process. | | |
| ▲ | aargh_aargh 5 days ago | parent | next [-] | | You don't? I do. A few days ago I lost some data including recent code changes. Today I'm trying to recreate the same code changes - i.e. work I've just recently worked through - and for the life of me I can't get it to work the same way again. Even though "just" that is what I set out to do in the first place - no improvements, just to do the same thing over again. | | | |
| ▲ | MostlyStable 5 days ago | parent | prev | next [-] | | We don't understand how human minds work anywhere close to well enough to say this. | |
| ▲ | jxf 5 days ago | parent | prev | next [-] | | Everything we do is a stochastic process. If you throw a dart 100 times at a target, it's not going to land at the same spot every time. There is a great deal of uncertainty and non-deterministic behavior in our everyday actions. | | |
| ▲ | discreteevent 4 days ago | parent | next [-] | | > throw a dart ... great deal of uncertainty and nongdeterministic behavior in our everyday actions. Throwing a dart could not be further away from programming a computer. It's one of the most deterministic things we can do. If I write if(n>0) then the computer will execute my intent with 100% accuracy. It won't compare n to 0.005. You see arguments like yours a lot. It seems to be a way of saying "let's lower the bar for AI". But suppose I have a laser guided rifle that I rely on for my food and someone comes along with a bow and arrow and says "give it a chance, after all lots of things we do are inaccurate, like throwing darts for example". What would you answer? | |
| ▲ | jay-barronville 5 days ago | parent | prev | next [-] | | As much as it’s true that there’s stochasticity involved in just about everything that we do, I’m not sure that that’s equivalent to everything we do being a stochastic process. With your dart example, a very significant amount of the stochasticity involved in the determination of where the dart lands is external to the human thrower. An expert human thrower could easily make it appear deterministic. | | | |
| ▲ | utyop22 5 days ago | parent | prev [-] | | Go say this to a darts player who has hit a 9 darter….. Actually no wait let’s expand it. Why not go say this to Ronnie O’Sullivan too! The way you’re describing is such that there is no determinism behind what is being done. Simply not true. | | |
| ▲ | tankenmate 4 days ago | parent [-] | | a stochastic system can can deterministic sub-parts, a deterministic system cannot have stochastic sub-parts. | | |
| ▲ | Chris2048 4 days ago | parent | next [-] | | If we are talking in terms of IRL/physics, there is no such thing as a deterministic system outside of theory - everything is stochastic to differing degrees - including you brain that came up with these thoughts. | |
| ▲ | utyop22 4 days ago | parent | prev [-] | | Theres nothing stochastic about a human that hits a 147 mate nor a 9 darter mate. I cant believe people seriously post this nonsense. |
|
|
| |
| ▲ | jay-barronville 5 days ago | parent | prev | next [-] | | I think that both of you are right to some extent. It’s undeniable that humans exhibit stochastic traits, but we’re obviously not stochastic processes in the same sense as LLMs and the like. We have agency, error-correction, and learning mechanisms that make us far more reliable. In practice, humans (especially experts) have an apparent determinism despite all of the randomness involved (both internally and externally) in many of our actions. | |
| ▲ | tankenmate 5 days ago | parent | prev | next [-] | | I have a strong suspicion that the world is not as deterministic as you'd like it to be. | | |
| ▲ | lukan 5 days ago | parent [-] | | Or it is deterministic, but infinitely complex, so that also leaves us only with stochastic. | | |
| ▲ | Chris2048 4 days ago | parent [-] | | stochastic vs deterministic is arguable a property of modelling, not reality. Something so complex that we cannot model it as deterministic is hence stochastic. We can just as easily model a stochastic thing by ignoring the stochastic parts. separating subjective appearance of things from how we can conceptualise them as models begs a deeper philosophical question of how you can talk about the nature of things you cannot perceive. |
|
| |
| ▲ | jcelerier 4 days ago | parent | prev | next [-] | | I remember one of my ex-bosses in 2015 telling us basically he was doing "intuitive programming" instead of rational. Worked quite well. | |
| ▲ | flir 4 days ago | parent | prev [-] | | Not interested in joining a pile-on, but I just wanted to point out how difficult reproducible builds are. I think there's still a bit of unpredictability in there, unless we go to extraordinary lengths (see also: software proofs). |
|
| |
| ▲ | j45 4 days ago | parent | prev | next [-] | | This is very true. For the most basic approaches of using stochastic agents for this purpose, especially with genralized agents and approaches. It is possible to get much higher quality with not just oversight, but creating the alignment from the stochastic agents to have no choice but to converge towards the desired vector of work reliably. Human in the loop AI is fine, I'm not sure that everything doesn't to be automated, it's entirely possible to get further and more reps in on a problem with the tool as long as the human is the driver and using the stochastic agent as a thinking partner and not the other way around. | |
| ▲ | nurettin 5 days ago | parent | prev | next [-] | | Great point, but there is absolutely no way of doing this for every framework and then maintain it for ages. It is logistically impossible. | | | |
| ▲ | baq 5 days ago | parent | prev | next [-] | | nothing prevents stochastic agents from producing reliable, deterministic and correct programs. it's literally what the agents are designed for. it's much less wasteful than me doing the same work and much much less wasteful trying to find a framework for all frameworks. | |
| ▲ | Wowfunhappy 5 days ago | parent | prev | next [-] | | Isn’t trying to remove boilerplate how we end up with situations like left-pad? I actually think I like the idea that, maybe by handling my boilerplate over to AI we can be more comfortable with having boilerplate to begin with. | | |
| ▲ | abathologist 7 hours ago | parent [-] | | > Isn’t trying to remove boilerplate how we end up with situations like left-pad? No. That is a result of bad software engineer practices and stacks, not a symptom of proper abstraction. |
| |
| ▲ | eru 5 days ago | parent | prev | next [-] | | Reliably correct is good, but why does it need to be fully deterministic? | | |
| ▲ | abathologist 7 hours ago | parent | next [-] | | Good point. Non-determinism is not fundamentally problematic on many levels. What is important is that the essential behavioral invariants of the systems are maintained. | |
| ▲ | skydhash 5 days ago | parent | prev [-] | | Reduced mental load. When it’s proven that a set of input will always result in the same output, you don’t have to verify the output. And you can just chain process together and not having to worry about time wasted because of deviations. |
| |
| ▲ | mquander 5 days ago | parent | prev [-] | | I guess this is probably what Lucifer said to God about why it was stupid to give humans free will. |
| |
| ▲ | travisgriggs 5 days ago | parent | prev | next [-] | | My take: money. Years ago, when I was cutting my teeth in software, efficiency was a real concern. Not just efficiency for limited CPU, memory, and storage. But also how you could maximize the output of smaller head count of developers. There was a lot of debate over which methodologies, languages, etc, gave the biggest bang for buck. And then… that just kind of dropped out of the discussion. Throw things at the wall as fast as possible and see what stuck, deal with the consequences later. And to be fair, there were studies showing that choice of language didn’t actually make as big of difference as found in the emotions behind the debates. And then the web… committee designed over years and years, with the neve the ability to start over. And lots of money meant that we needed lots of manager roles too. And managers elevate their status by having more people. And more people means more opportunity for specializations. It all becomes an unabated positive feedback loop. I love that it’s meant my salary has steadily climbed over the years, but I’ve actually secretly thought it would be nice if there was bit of a collapse in the field, just so we could get back to solid basics again. But… not if I have to take a big pay cut. :) | | |
| ▲ | cestith 4 days ago | parent [-] | | Many of the languages that allow people to quickly develop software end up with their own tradeoffs. Some of them have unusual syntax, at least in part of the language. Many of them allow duck typing, which many consider a major detriment to production reliability. Some of them are only interpreted. Some of them have a syntax people just don’t like. Some of them are just really big languages with lots of features, because getting rid of the boilerplate often means more builtins or a bigger standard library. Some of them either the runtime or the build time leaves a lot to be desired. Here’s an incomplete list for those traits. For unusual, there’s many of the FP languages, Ada, APL, Delphi/Object Pascal, JS, and Perl. For duck typing, there’s Ruby, Python, PHP, JS, and Perl. For only interpreted, there are Ruby, PHP, and Perl (and formerly for some time Python and JS). For syntax that’s not necessarily odd (but may be) but lots of people find distasteful there’s Perl, any form of Lisp, APL, Haskell, the ML family, Fortran, JS, and in some camps Python, PHP, Ruby, Go, or anything from the Pascal family. For big languages with lots of interacting parts there’s Perl, Ada, PHP, Lisp with CLOS, Julia, and PHP. For slowdowns, there’s Julia, Python, PHP, and Ruby. The runtime for Perl is actually pretty fast once it’s up and running, but having to build the app before running it on every invocation makes for a slow start time. All that said, certain orgs do impressive projects pretty quickly with some of these languages. Some do impressively quick work with even less popular languages like Pike, Ponie, Elixir, Vala, AppScript, Forth, IPL, Factor, Raku, or Haxe. Notice some of those are very targeted, which is another reason boilerplate is minimal. It’s built into the language or environment. That makes development fast, but general reuse of the code pretty low. |
| |
| ▲ | jalk 5 days ago | parent | prev | next [-] | | We have been emphasizing on creating abstractions since forever.
We now have several different hardware platforms, programming languages, OS's, a gazillion web frameworks, tons of databases, build tools, clustering frameworks and on and on and on.
We havn't done so entirely collectively, but I don't think the amount of choice here reflects that we are stupid, but that rather that "one size doesn't fit all". Think about the endless debates and flame wars about the "best" of those abstractions.
I'm sure that Skynet will end that discussion and come up with the one true and only abstraction needed ;) | |
| ▲ | mikepurvis 5 days ago | parent | prev | next [-] | | I feel this some days, but honestly I’m not sure it’s the whole answer. Every piece of code has some purpose or expresses a decision point in a design, and when you “abstract” away those decisions, they don’t usually go away — often they’re just hidden in a library or base class, or become a matter of convention. Python’s subprocess for example has a lot of args and that reflects the reality that creating processes is finicky and there a lot of subtly different ways to do it. Getting an llm to understand your use case and create a subprocess call for you is much more realistic than imagining some future version of subprocess where the options are just magically gone and it knows what to do or we’ve standardized on only one way to do it and one thing that happens with the pipes and one thing for the return code and all the rest of it. | |
| ▲ | lukaslalinsky 5 days ago | parent | prev | next [-] | | I actually prefer the world with boilerplate connecting more important pieces of code together, over opinionated frameworks, because the boilerplate can evolve, charging the opinionated frameworks is much harder, and it's probably done by full rewrite. The thing is, the boilerplate needs to be kept to minimum, that's what I consider good API design. It allows you to do custom things, so you need some glue code, but not so much that you are writing a new framework each time you use it. | |
| ▲ | jcelerier 4 days ago | parent | prev | next [-] | | > Why hasn't there been a minimal-boilerplate language and framework and programming environment Because everyone needs a boilerplate but it's a different boilerplate for everyone unless you're doing the most basic toy apps | |
| ▲ | wyager 5 days ago | parent | prev | next [-] | | > Why hasn't there been a minimal-boilerplate language and framework and programming environment? Haskell mostly solves boilerplate in a typed way and Lisp mostly solves it in an untyped way (I know, I know, roughly speaking). To put it bluntly, there's an intellectual difficulty barrier associated with understanding problems well enough to systematize away boilerplate and use these languages effectively. The difficulty gap between writing a ton of boilerplate in Java and completely eliminating that boilerplate in Haskell is roughly analogous to the difficulty gap between bolting on the wheels at a car factory and programming a robot to bolt on the wheels for you. (The GHC compiler devs might be the robot manufacturers in this analogy.) The latter is obviously harder, and despite the labor savings, sometimes the economics of hiring a guy to sit there bolting on wheels still works out. | | |
| ▲ | skydhash 5 days ago | parent [-] | | Lisp can be very productive, but it requires actual design skills to wield it. It’s easier to teach python. |
| |
| ▲ | anyfoo 5 days ago | parent | prev | next [-] | | Because people think learning Haskell is too hard. | | |
| ▲ | do_not_redeem 5 days ago | parent [-] | | Haskell isn't immune to boilerplate. Luckily if you're stuck using Haskell there's a package to help you deal with it all: https://hackage.haskell.org/package/boilerplate | | |
| ▲ | wyager 5 days ago | parent | next [-] | | It's very minimal-boilerplate. It's done an exceptional job of eliminating procedural, tedious work, and it's done it in a way that doesn't even require macros! "Template Haskell" is Haskell's macro system and it's rarely used anymore. These days, people mostly use things like GHC.Generics (generic programming for stuff like serialization that typically ends up being free performance-wise), newtypes and DerivingVia, the powerful and very generalized type system, and so on. If you've ever run into a problem and thought "this seems tedious and repetitive", the probability that you could straightforwardly fix that is probably higher in Haskell than in any other language except maybe a Lisp. | |
| ▲ | anyfoo 5 days ago | parent | prev [-] | | I find of all languages, Haskell often allows me to get by with the least boilerplate. Packages like lenses/optics (and yes, scrap your boilerplate/Generics) help. Funny package, though! |
|
| |
| ▲ | logicchains 4 days ago | parent | prev | next [-] | | >Why haven't we collectively emphasized the creation of new tools to reduce boilerplate and grunt work? Lisp completely eliminates boilerplate and has been around for decades, but hardly anyone uses it because programs that use macros to eliminate boilerplate aren't easy to read. | |
| ▲ | kwanbix 5 days ago | parent | prev | next [-] | | It used to be. When I learned to program for windows, I will basically learn Delphi or Visual basic at the time. Maybe some database like paradox. But I was reading a website that lists the skills needed to write backend ant it was like 30 different things to learn. | | |
| ▲ | kccqzy 5 days ago | parent [-] | | That's exactly what I have in mind when I wrote the original comment. I learned Visual Basic as a kid faffing around a computer and it was so little boilerplate to make an app. It's been a regression since the. |
| |
| ▲ | ZYbCRq22HbJ2y7 5 days ago | parent | prev | next [-] | | > Why hasn't there been a minimal-boilerplate language and framework and programming environment? There are? For example, rails has had boilerplate generation commands for a couple of decades. | | |
| ▲ | mhluongo 5 days ago | parent | next [-] | | There's boilerplate in Rails too. We move the goal posts for what we define as boilerplate as we better explore and solve a class of problems. | | |
| ▲ | dymk 5 days ago | parent [-] | | What boilerplate is there in rails? | | |
| ▲ | TheDong 5 days ago | parent [-] | | html is like 90% boilerplate, and so .html.erb in rails is mostly boilerplate. | | |
| ▲ | skydhash 5 days ago | parent [-] | | We have the component architecture pattern to reduce the amount of html we have to write. If you’re duplicating html element in every page, that’s mostly on you. There’s a reason every template language have include statement. That’s a problem that’s been solved for ages. |
|
|
| |
| ▲ | yencabulator 4 days ago | parent | prev [-] | | Generating boilerplate is the worst of both worlds. The point is to not need so much of it. |
| |
| ▲ | chii 4 days ago | parent | prev | next [-] | | > Why haven't we collectively emphasized the creation of new tools to reduce boilerplate and grunt work? i think it has. How much easier is it today than yester-decade to write, and deploy an application to multiple platforms (and have it look/run similarly)? How little knowledge it requires now than before? | |
| ▲ | andoando 5 days ago | parent | prev | next [-] | | Theres a million different million environments. This includes, OS, languages, frameworks and setups within those frameworks. Spring, java or kotlin, rest or grpc, mysql or postgres or, okhhtp or ktor, etc etc. There is no software you could possibly write that works for everything thatd be as good as "Give me an internal dashboard with these features" | |
| ▲ | Aperocky 4 days ago | parent | prev | next [-] | | > collectively emphasized the creation of new tools In fact, collectively created 1000s of them and all of them a various flavor of mid. | |
| ▲ | anbende 5 days ago | parent | prev | next [-] | | I think this one way of looking at what your parent was describing. They weren’t just saying ‘AI writes the boilerplate for me.’ They were saying: once you’ve written the same glue the 3rd, 4th, 5th time, you can start folding that pattern into your own custom dev tooling. AI not as a boilerplate writer but as an assistant to build out personal scaffolding toolset quickly and organically. Or maybe you think that should be more systemized and less personal? | |
| ▲ | jimbokun 4 days ago | parent | prev | next [-] | | Because no one wants to develop and use Lisp macros. | |
| ▲ | 5 days ago | parent | prev | next [-] | | [deleted] | |
| ▲ | codeulike 5 days ago | parent | prev | next [-] | | Why haven't we collectively emphasized the creation of new tools to reduce boilerplate and grunt work? You dont understand how things evolve. There have been plenty of platforms that got rid of boilerplate - e.g. ruby on rails about 20 years ago But once they become the mainstream, people can get a competitive edge by re-adding loads of complexity and boilerplate again. E.g. complex front end frameworks like react. If you want your startup to look good you've got to use the latest trendy front end thingummy Also to be fair, its not just fashion. Features that would have been advanced 20 years ago become taken for granted as time goes on, hence we are always working at the current limit of complexity (and thats why we're always overrun with bugs and always coming up with new platforms to solve all the problems and get rid of all thr boilerplate so that we can invent new boilerplate) | |
| ▲ | zipzapzip 5 days ago | parent | prev | next [-] | | Because of the obsession with backwards compatibility and not breaking code. The web development industry is the prime example. HTML, Javascript, CSS, a backend frontend architecture - absolutely terrible stack. | | |
| ▲ | lenkite 5 days ago | parent | next [-] | | I don't even know why things like templating and inclusion are not just part of the core web stack (ideally declaratively with no JS). There should be no need for an external tool or build process or third-party framework. | | |
| ▲ | skydhash 5 days ago | parent [-] | | Html is rendered document. It’s ok to write it if you only need one document, but it’s better to use an actual template language or some generators if you’re going to have the same layout and components for many pages. You’re asking to shift this job from the editor (you) to the viewer (the browser). | | |
| ▲ | lenkite 5 days ago | parent [-] | | Maybe it was a "viewer" in the 90s. The viewer is not a viewer - it is a full fledged application runtime that has a developer environment and media stack, along with several miscellaneous runtimes. A standard template language and document inclusion feature is very small peanuts compared to that. A teeny house compared to the galaxy already built-in - with several planets worth of features being added yearly. | | |
| ▲ | cestith 4 days ago | parent [-] | | You both make good points, and I come down on the side of adding some template mechanism to web standards. Of course, that all starts with an RFC and a reference implementation. Any volunteers? | | |
| ▲ | lenkite 4 days ago | parent [-] | | Would raise my hand to volunteer for the reference implementation. I guess it would need to be in C++/Rust ? RFC, however, involves way too much talking and also needs solid networking amongst the web crowd. Not qualified for that. For a template language, it would be better to copy a subset from an existing de-facto standard like jinja2 which already has a lean, performant subset implementation at https://github.com/Keats/tera. Document/template inclusion model should be OK now in modern era thanks to HTTP/3. Not really sure how that should ideally look like though. |
|
|
|
| |
| ▲ | baq 5 days ago | parent | prev [-] | | if the simplest web page pulls in react in an attempt to be a small OS unto itself, that's what you get. |
| |
| ▲ | IanCal 5 days ago | parent | prev [-] | | Because the set of problems we make to be solvable with code is huge and the world is messy. Many of these things really are at a very high level of abstraction and the boiler plate feels boilerplatey but is actually slightly different in a way not automatable. Or it is but the configuration for that automation becomes the new bit you look at and see as grunt work. Now we have a way we can get computers to do it! |
| |
| ▲ | player1234 4 days ago | parent | prev | next [-] | | How did you measure this productivity gain? Please share your methodology | |
| ▲ | JOnAgain 5 days ago | parent | prev [-] | | Can you share more? |
|
|
| ▲ | nine_k 5 days ago | parent | prev | next [-] |
| Yes. The author essentially asked Claude to port a driver from Linux 2.4 to Linux 6.8. Very certainly there must be sufficient amounts of training material, and web-searchable material, that describes such tasks. The author provided his own expertise where Claude could not find a good analogue in the training corpus, that is, the few actually non-trivial bits of porting. "Use these tools as a massive force multiplier of your own skills" is a great way to formulate it. If your own skills in the area are near-zero, multiplying them by a large factor may still yield a near-zero result. (And negative productivity.) |
| |
| ▲ | rmoriz 5 days ago | parent [-] | | You can still ask, generate a list of things to learn etc. basically generate a streamlined course based on all tutorials, readmes and source code available when the model was trained. You can call your tutor 24/7 as long as you got tokens. | | |
| ▲ | seba_dos1 5 days ago | parent | next [-] | | You have to keep guard at each step to notice the inconsistencies and call your tutor's mistakes out though, or you'll inevitably learn some garbage. This is a use case that certainly "feels" like it's boosting your learning (it sure does to me), but I'd like to read an actual study on whether it really does before reaching any conclusions. It seems to me that LLMs help the most at the initial step of getting into some rabbit hole - when you're getting familiar with the jargon, so you can start reading some proper resources without being confused too much. The sooner you manage to move there, the better. | | |
| ▲ | rmoriz 4 days ago | parent [-] | | You overestimate hallucinations in known settings. If you ask to show source code, it‘s easy to check the sources (of a framework, language, local code) | | |
| ▲ | seba_dos1 3 days ago | parent [-] | | No I don't. I have used Claude, ChatGPT and Gemini in many "known settings" while working during the last few weeks to test whether their output would be helpful. Topics included many things - Bayer image processing, color science, QML and Plasma plugins, GPS, GTK3->4 porting, USB PD, PDF data structures, ALSA configs... All of them hallucinated (which is hardly surprising, that's just what they do). Sometimes it was enough to ask it to verify its claims on the Web, but Gemini Pro once refused to get corrected, stubbornly claiming that the correct answer was "a common misconception" even when confronted with sources claiming otherwise :) I was already knowledgeable enough in these topics to catch these, but some were dangerously subtle. Really, the only way to use LLMs to actually learn anything beyond trivial is to actively question everything it prints out and never move forward until you actually grasp the thing and can verify it. It still feels helpful to me to use it this way, but it's hard to tell how it compares to learning from a good and trustworthy resource in terms of efficiency. It's hard to unlearn something and try to learn it again another way to compare ;P |
|
| |
| ▲ | theshrike79 5 days ago | parent | prev [-] | | ChatGPT even has a specific "Study mode" where it refrains from telling you the answer directly and kinda guides you to figure it out yourself. |
|
|
|
| ▲ | ZYbCRq22HbJ2y7 5 days ago | parent | prev | next [-] |
| We have members on my team that definitely feel empowered to wade into new territory, but they make so much misdirected code with LLMs, even when we make everyone use Claude 4 thinking agents. It seems to me that if you have been pattern matching the majority of your coding career, then you have a LLM agent pattern match on top of that, it results in a lot of headaches for people who haven't been doing that on a team. I think LLM agents are supremely faster at pattern matching than humans, but are not as good at it in general. |
| |
| ▲ | baq 5 days ago | parent | next [-] | | > they make so much misdirected code with LLMs just points to the fact that they've no idea what they're doing and would produce different, pointless code by hand, though much slower. this is the paradigm shift - you need a much bigger sieve to filter out the many more orders of magnitude of crap that inexperienced operators of LLMs create. | | |
| ▲ | matwood 5 days ago | parent [-] | | It'll be interesting if tools like Claude will end up being used to highlight the people who have no clue what they are doing. | | |
| ▲ | johnisgood 5 days ago | parent [-] | | I think you can do this already. If you do not know the underlying concepts, or have no idea about how you have to architecture your project and so forth, then you will have problems with LLMs. So I think many if not most people who have problems with LLMs, it is most likely due to their lack of knowledge and/or their expectation that you can just simply write two sentences and it will figure out what you want and how you want it. You cannot outsource thinking to LLMs, at least not yet, if ever. You have to be part of the whole process. You need to have knowledge. If you have no idea what it is doing or what you want it to do, you are going to have a difficult time. | | |
| ▲ | skydhash 5 days ago | parent [-] | | The thing is, is it slower to code with LLMs if you already have the knowledge? I think it is so. Coding is formal. There’s usually one correct way to tell the computer to do something (all the alternatives are equivalent through abstraction or transposition). The other ways are what we called bugs and there’s an infinty of them. The programming language eliminates some (incorrect syntax) while the type system get rid of others (contract error). We also have linter that helps us with harmful patterns. But the range of errors is still enormous. So what’s the probability of having the LLMs be error free or as close as possible to the intended result? We as humans have reduced the probability of error by having libraries of correct code (or outsourcing the correction of code), thus having a firmer and cognitively manageable foundation to create new code. As well as not having to rely on language to solve problems. | | |
| ▲ | theptip 4 days ago | parent | next [-] | | > Coding is formal I just don’t see it like this; code is craft, and there are ten ways to solve any given problem. Reasonable people can select different tradeoffs, and taste is also a big factor. Maybe if you are working in very low-level algorithmic, compiler, or protocol development it’s less ambiguous. But almost all software is written many layers above that. I’m sure if you already sat down and thought through every detail, you might find LLMs slow you down vs typing. Many people use the process of writing, or the process of iterating with customers, to flesh out the ambiguous detail; in which case improving cycle time can improve your time to PMF. | |
| ▲ | matwood 5 days ago | parent | prev | next [-] | | > The thing is, is it slower to code with LLMs if you already have the knowledge? Maybe if all you do is code, but that’s not how most people work. Being able write I need these things done in this way and then attend a meeting or start researching the next thing is valuable. And because of my other obligations there’s no way I could do more without Claude. | |
| ▲ | johnisgood 3 days ago | parent | prev [-] | | > is it slower to code with LLMs if you already have the knowledge? I think it is so. In my case it is not slower, so it works for me. I cannot speak for others. |
|
|
|
| |
| ▲ | maccard 5 days ago | parent | prev [-] | | One of the things I’ve noticed is that those people are the same people who before would spend 3 weeks on something before coming out with a copy of the docs that doesn’t actually solve the problem at hand, but it spits out a result that almost matches what you asked for. They never understood the problem in the first place, they always just hammered until the nail went in - now they just have a different tool. | | |
| ▲ | skydhash 5 days ago | parent [-] | | Everytime I have to mentor juniors, it’s more productive to get them to articulate the problem and their initial solution. It’s often sufficient to highlight (mostly for them) how little they actually know about the problem itself to actually rush to solve it. |
|
|
|
| ▲ | not_that_d 5 days ago | parent | prev | next [-] |
| For me is not so. It makes me way faster in languages that I don't know, but makes me slower on the ones I know because a lot of times, it creates code that will fail eventually. Then I need to expend extra time following everything it did so I can "fix" the problem. |
| |
| ▲ | peteforde 5 days ago | parent [-] | | My daily experience suggests that this happens primarily when the developer isn't as good as they assume that they are at expressing the ideas in their head into a structure that the LLM can run with. That's not intended to be a jab, just an opportunity for reflection. | | |
| ▲ | skydhash 5 days ago | parent [-] | | But the moment I got the idea in my head, is the moment I got the code for it. The time spent is moslty checking the library semantics, or if there’s not some function already written for a specific bit. There’s also checking if you’re not violating some contract somewhere. A lot of people have the try and see if it works approach. That can be insanely wasteful in any moderately complex system. The scientist way is to have a model that reduce the system to a few parameters. Then you’ll see that a lot of libraries are mostly surface works and slighlty modified version of the same thing. |
|
|
|
| ▲ | meesles 5 days ago | parent | prev | next [-] |
| > Use these tools as a massive force multiplier of your own skills. I've felt this learning just this week - it's taken me having to create a small project with 10 clear repetitions, messily made from AI input. But then the magic is making 'consolidation' tasks where you can just guide it into unifying markup, styles/JS, whatever you may have on your hands. I think it was less obvious to me in my day job because in a startup with a lack of strong coding conventions, it's harder to apply these pattern-matching requests since there are fewer patterns. I can imagine in a strict, mature codebase this would be way more effective. |
| |
| ▲ | rmoriz 5 days ago | parent [-] | | In times of Rust and Typescript (just examples) coding standards are explicit. It‘s not optional anymore. All my vibe coding projects are using CI with tests including style and type checks. The agent makes mistakes but it sees the failing tests and fixes it. If you vibe code like we did Perl and PHP in 1999 you‘re gonna have a bad time. | | |
| ▲ | baq 5 days ago | parent [-] | | In a startup, especially early, the only thing that isn't optional is shipping. You can fix any and all issues later, first you have to ensure there is a 'later'. (That's not to say you shouldn't do it at all, but definitely focus on the business before the tech.) | | |
| ▲ | rmoriz 5 days ago | parent [-] | | I‘ve been with a couple of startups that shipped and not a single one was cutting corners in this area anymore. Last time I saw this was probably around 2005-2008. | | |
| ▲ | bcrosby95 5 days ago | parent [-] | | Cutting corners here is one of the worst decisions you can make. Especially in an environment where you don't know your end product and you're likely to rework your code over and over and over again. Piling shit on top of shit only pays off on very short time scales - like a month or two. Because once you revisit that shit code all your time savings are out the window. If you have to revisit it more than once you probably slowed yourself down already. | | |
| ▲ | rmoriz 5 days ago | parent [-] | | And you can add an AI code agent (Copilot, Opencode, Claude) to the workflow just to deal with failing tests, automatically create PRs to fix the issues. It may boost the productivity a lot doing housekeeping while coding manually. |
|
|
|
|
|
|
| ▲ | marcus_holmes 5 days ago | parent | prev | next [-] |
| >> Use these tools for rapid onboarding onto new frameworks. Also new languages - our team uses Ruby, and Ruby is easy to read, so I can skip learning the syntax and get the LLM to write the code. I have to make all the decisions, and guide it, but I don't need to learn Ruby to write acceptable-level code [0]. I get to be immediately productive in an unfamiliar environment, which is great. [0] acceptable-level as defined by the rest of the team - they're checking my PRs. |
| |
| ▲ | AdieuToLogic 5 days ago | parent [-] | | >>> Use these tools for rapid onboarding onto new frameworks. > Also new languages - our team uses Ruby, and Ruby is easy to read, so I can skip learning the syntax and get the LLM to write the code. If Ruby is "easy to read" and assuming you know a similar programming language (such as Perl or Python), how difficult is it to learn Ruby and be able to write the code yourself? > ... but I don't need to learn Ruby to write acceptable-level code [0]. Since the team you work with uses Ruby, why do you not need to learn it? > [0] acceptable-level as defined by the rest of the team - they're checking my PRs. Ah. Now I get it. Instead of learning the lingua franca and being able to verify your own work, "the rest of the team" has to make sure your PR's will not obviously fail. Here's a thought - has it crossed your mind that team members needing to determine if your PR's are acceptable is "a bad thing", in that it may indicate a lack of trust of the changes you have been introducing? Furthermore, does this situation qualify as "immediately productive" for the team or only yourself? EDIT: If you are not a software engineer by trade and instead a stakeholder wanting to formally specify desired system changes to the engineering team, an approach to consider is authoring RSpec[0] specs to define feature/integration specifications instead of PR's. This would enable you to codify functional requirements such that their satisfaction is provable, assist the engineering team's understanding of what must be done in the context of existing behavior, identify conflicting system requirements (if any) before engineering effort is expended, provide a suite of functional regression tests, and serve as executable documentation for team members. 0 - https://rspec.info/features/6-1/rspec-rails/feature-specs/fe... | | |
| ▲ | maccard 5 days ago | parent | next [-] | | > Instead of learning the lingua franca and being able to verify your own work, "the rest of the team" has to make sure your PR's will not obviously fail. I lead the engineering team at my org and we hire almost exclusively for c++ engineers (we make games). Our build system by happenstance is written in c#, as are all the automation scripts. Out of our control to change. Should we require every engineer to be competent and write fluent c# or should we let them just get on with their value adds? | | |
| ▲ | skydhash 5 days ago | parent [-] | | Programming language are not actually that different. There’s only a few models of computation and paradigms. The effort is mostly about learning the syntax, the standard library and whatever abstractions built around the above paradigms and computation models. And learning the standard library is the tough one. I would expect every engineer to be able to read C#. It’s not that hard. | | |
| ▲ | marcus_holmes 4 days ago | parent [-] | | This. Reading a language (and not only programming languages) is very different from being able to construct good, elegant, routines (or sentences) in that language. |
|
| |
| ▲ | hamdingers 5 days ago | parent | prev | next [-] | | > If Ruby is "easy to read" and assuming you know a similar programming language (such as Perl or Python), how difficult is it to learn Ruby and be able to write the code yourself? Reading code doesn't mean you can write it, as any programmer will tell you. If I want to know if a string in ruby begins with another string, is the method starts_with or start_with or startwith like python or is it like perl where I have to use some completely different method? I don't know, better google it. But if I'm reading and see `str.start_with?("https://")` I know instantly what it's doing. | |
| ▲ | ponector 5 days ago | parent | prev | next [-] | | That is what I observe at work: people who heavily use LLM in their coding don't read, review and test their code, pushing this work to teammates and testers. Great skill multiplier, right? | |
| ▲ | nchmy 5 days ago | parent | prev [-] | | are you advocating for not having code reviews...? Just straight force push to main? | | |
| ▲ | AdieuToLogic 5 days ago | parent | next [-] | | > are you advocating for not having code reviews...? Just straight force push to main? No, not at all. What I was speaking about was if the person to whom I replied is not a s/w engineer, then perhaps a better contribution to their project would be to define requirements in the form of RSpec specifications (since Ruby is in use) and allow the engineering team to satisfy them as they determine appropriate. I have seen product/project managers attempt to "contribute" to a development effort much like what was described. Usually there is a power dynamic such that engineers cannot overtly tell the manager(s), "you define the 'what' and we will define the 'how'." Instead, something like the PR flow described is grudgingly accepted and then worked around. | | |
| ▲ | marcus_holmes 4 days ago | parent [-] | | I'm the person you replied to. I've been developing software for >30 years now. In this case I have domain knowledge, architecture knowledge, experience with the type of systems we're building, but not the language (it's an odd situation). I'm using an LLM to avoid the weeks/months of getting up to speed with Ruby myself, and it appears to be working. To address your comments about PRs: without the LLM I would be submitting shitty PRs with lots of basic Ruby mistakes. With the LLM I am submitting PRs that are on a par with everyone else's PRs (Ruby has many ways of doing the same thing, so most suggested changes to my PRs are the usual "or you could do it this way and that might be more elegant" discussions). It's not that the rest of the team are picking up my slack, it's actually better this way. I was a bit sceptical when I started, and like you I assumed that I would end up having to learn Ruby, but in fact it's working well. | | |
| ▲ | AdieuToLogic 3 days ago | parent [-] | | > I'm the person you replied to. I've been developing software for >30 years now. As a s/w engineer with 30+ years of experience, I assume you agree that in order to become proficient in a programming language one must go through the process of learning its syntax and idioms. Yet when you say: I'm using an LLM to avoid the weeks/months of getting up
to speed with Ruby myself, and it appears to be working.
This contradicts my understanding of what you originally stated: ... I don't need to learn Ruby to write acceptable-level code [0]
[0] acceptable-level as defined by the rest of the team
Regarding: To address your comments about PRs: without the LLM I
would be submitting shitty PRs with lots of basic Ruby
mistakes.
IMHO, this is how s/w engineers learn quickest assuming an environment which supports an open learning process. There are no shortcuts to achieving understanding.Maybe we just have very different opinions on the learning process and/or maybe I lack the context required to understand your situation. In any event, best of luck in your endeavours. EDIT: For some reason I cannot reply to your reply to this message in order to share this resource: Why’s (Poignant) Guide to Ruby[0]
I found it a very entertaining read and one of the best language tutorials I have ever found. Hopefully you find it as useful as well.0 - https://poignant.guide/book/chapter-1.html | | |
| ▲ | marcus_holmes 3 days ago | parent [-] | | Thanks, yeah, it's interesting. We're not through the whole project, so it may still mess up ;) But so far so good. I think the key point here is that I'm not trying to learn Ruby. We're trying to get a single project done in Ruby. I'm the best person to do the project, Ruby is the best language to do it in, but I don't know Ruby. If I was trying to learn Ruby, this is not the way I'd do it, and I'd go up the learning curve as normal, writing all those shitty PRs and making all the mistakes as normal. As you say, there are no shortcuts to achieving understanding. | | |
|
|
| |
| ▲ | cyphar 5 days ago | parent | prev [-] | | Code reviews (especially internal ones) generally assume that the person writing the original code has an idea of what they are doing and are designed to catch mistakes that humans might make. Just because they probably work to improve codebases with human submissions doesn't mean that they are good enough filter for LLM-generated code that the submitter doesn't sufficiently understand and has submitted without their own review. Same goes for CI and testing. This reminds of some of the comments made by reviewers during the infamous Schön scientific fraud case. The scientific review process is designed to catch mistakes and honest flaws in research. It is not designed to catch fraud, and the evidence shows that it is bad at it. Another applicable example would be the bad patches fiasco with the Linux kernel. (And there is going to be a session at the upcoming maintainers' summit about LLM-generated kernel patches.) |
|
|
|
|
| ▲ | ashsriv 3 days ago | parent | prev | next [-] |
| this is a fantastic summary of how LLMs can be used in general. I have found chatgpt/gemini to be useful in following scenarios
1. ELI5 with examples on any technical paper. This summarises papers and explains to me in a way i can understand.
2. At my work, we have to make a lot of proposals, so I have a project created where I put public documents that I can share for proposals and then share the Statement of Work, and it creates a technical document in my format which is about 70% right. I can add/modify the remaining 30%
3. > Use these tools as a massive force multiplier of your own skills. - This is massive when I want to start a new code base. I spend so much time in my head architecting that tools like these help create a boiler plate and structure.
4. Many times, I have stupid ideas but not enough time to waste coding those stupid ideas. The tools help me right terrible codes for my stupid ideas!! :) |
|
| ▲ | davidw 5 days ago | parent | prev | next [-] |
| I'm feeling quite wary of the fact that if it's a real productivity booster, it's all in the hands of one company. Perhaps some of the others will be able to compete with it, but: still all big corporations. |
|
| ▲ | faangguyindia 5 days ago | parent | prev | next [-] |
| those who use claude code, what you think are its best features which you cannot live without and makes your life so much easier? I am using claude code but I am not sure what stuff i should look into. |
|
| ▲ | emilecantin 5 days ago | parent | prev | next [-] |
| One area where it really shines for me is personal projects. You know, the type of projects you might get to spend a couple hours on once the kids are in bed... Spending that couple hours guiding Claude do do what I want is way quicker than doing it all myself. Especially since I do have the skills to do it all myself, just not the time. It's been particularly effective around UI stuff since I've selected a popular UI library (MUI) but I don't use it in my day job; I had to keep looking up documentation but Claude just bangs it out very easily. One thing where it hasn't shone is configuring my production deployment. I had set this project up with a docker-compose, but my selected CI/CD (Gitlab) and my selected hosting provider (DigitalOcean) seemed to steer me more towards Kubernetes, which I don't know anything about. Gitlab's documentation wanted me to setup Flux (?) and at some point referred to a Helm chart (?)... All words I've heard but their documentation is useless to newcomers ("manage containers in production!": yes, that's obviously what I'm trying to do... "Getting started: run this obscure command with 5 arguments": wth is this path I need to provide? what's this parameter? etc.) I honestly can't believe how complex the recommended setup is, to ultimately run 2 containers that I already have defined in ~20 lines of docker-compose... Claude got me through it. Took it about 5-6 hours of trying stuff, build failing, trying again. And even then, it still doesn't deploy when I push. It builds, pushes the new container images, and spins up a new pod... which it then immediately kills because my older one is still running and I only want one pod running... Oh well, I'll just keep killing the old pod until I have some more energy to throw at it to try and fix it. TL;DR: it's much better at some things than others. |
| |
| ▲ | j45 4 days ago | parent [-] | | Totally. Being able to start shipping from the first commit using something like Picocss and just add features helps gets things out of the design stage, but shipping features individually. Some folks seem to like Docker Swarm before kubernetes as well and I've found it's not bad for personal projects for sure. AI will always return the average of it's corpus given the chance (or not clear direction in the prompt). I usually let my opinions rip and say to avoid building myself a stack temple to my greatness. It often comes back with a nice lean stack. I usually avoid or minimize Javascript libraries for their brittleness, and the complexity can eat up more of the AI's context and awareness to map the abstractions vs something it knows incredibly well. Python is great, but web stuff is still emerging, FastAPI is handy though, and putting something like Pico/HTMX/alpine.js on the front seems reasonable. Laravel is also really hard to overlook sometimes when working with LLMs on quick things, there's so much working code out there that it can really get a ton done for an entire production environment with all of the built in tools. Happy to learn about what other folks are using and liking. |
|
|
| ▲ | mettamage 5 days ago | parent | prev | next [-] |
| I don’t have a lot of experience with your first point. I do I have a lot of experience with your second point. And I would say that you hit the nail on the head |
|
| ▲ | mattfrommars 5 days ago | parent | prev | next [-] |
| Do you get to use Claude Code through your employer to have the opportunity to spend 100 hours with it? Or do you do this on your own persona project? |
|
| ▲ | tonkinai 5 days ago | parent | prev | next [-] |
| It’s less about AI vs boilerplate and more about having good tests. if the code works and you can move fast, who cares who typed it. |
| |
| ▲ | skydhash 5 days ago | parent [-] | | Code working is a very high bar. And the only way close for most projects is formal verification. |
|
|
| ▲ | player1234 4 days ago | parent | prev | next [-] |
| How did you measure this productivity gain? Please share your methodology. |
|
| ▲ | stevex 5 days ago | parent | prev | next [-] |
| I had an Amiga disk image (*.adf) that I wanted to extract the files from. There are probably tools to do this but I was just starting with Claude Code, so I asked it to write a tool to extract the files by implementing the filesystem. It took a few prompts but I know enough about FFS (the Amiga filesystem) to guide it, and it created exactly the tool I wanted. "force multiplier of your own skills" is a great description. |
|
| ▲ | wer232essf 5 days ago | parent | prev [-] |
| [flagged] |