26 ms·
Choose Boring Technology and LLMs
- shreddit 2y agoSo choose boring technology (as in old and tested) and... new technology? He likes to use SQLLite, but also S3? So all technologies. Thanks, i guess?
- gwd 2y agoAt this point I don't think S3 counts as a new technology anymore.
- biorach 2y agoS3 is around since 2006 and is the default choice for object storage for many people. It's as boring as it gets.
- simonw 2y agoYeah SQLite and S3 aren't that far apart in age - SQLite first came out in 2000, S3 in 2006. First release of Go was 2009.
- Cthulhu_ 2y agoMy personal takeaway in a broader context is that Go code is pretty boring, predictable and repetitive as opposed to clever and customised, therefore in theory LLMs can more easily predict and generate said code. It's a tradeoff, Go can be more verbose because it's not as expressive, but using the right tooling, that labor/toil is reduced.
- moffkalast 2y agoThe older the tech, the more training data should be available for it (assuming it's still being used today), ergo LLMs will be a lot better at it. They ought to be way better at Cpp or JS than Golang in that sense.
- pyrale 2y agoFortran is so back in business!
- WJW 2y agoI don't think this is true: the older the tech, the less hype it has and thus the less blog posts/example repos/etc will be available. In particular, a boring language without a strong open source culture (COBOL, say, or Oracle SQL) will probably not have a lot of training data available despite being very much in use.
- zelphirkalt 2y agoBut given the idea of the post, people should never have adopted Golang and Golang itself could never have risen to its current level of use.
- pyrale 2y agoUse a language with lots of boilerplate code so the LLM can generate more code for you?
- loa_in_ 2y agoBeing explicit without concerns about being terse is something that wasn't practical before assisted coding and that would be a realisation of some of most important tenets of computer science.
- kaba0 2y agoTerseness is not only about practicality. Even if AI writes it for me, it requires a huge deal more reading comprehension on my part to properly check it. E.g. an if err block every couple lines will actively hinder reading that code, and is an easy source for errors to hide (no, just because you check the value of err doesn't make it proper error handling).
- pyrale 2y ago> something that wasn't practical before assisted coding It still isn't practical if you read more code than you write, unless you also use a LLM to summarize the code for you.
- pcwelder 2y agoThe simplicity of golang definitely helps. Between golang and rust, chatgpt has much easier time with golang. The standard toolchain (as opposed to python packaging) makes it easier for LLM to debug and run commands. So it's easier to develop a golang based app over python using poetry or uv.
- markusw 2y agoAs others have said at this point, S3 hardly counts as new tech anymore. But even if you disagree, S3 is conceptually super simple: put binary blobs, get binary blobs, delete binary blobs. I trust the blobs to be there when I need them. I don't have to think about storage size at all, maybe not even backups (depending on use case). I still have to worry about network, but that isn't really that much different from disk access that can fail. So yeah, I think S3 counts as boring. :)
- eichi 2y agoAnd boring areas of enterprise or professional world with boring classical techniques for software engineering while applying LLMs. I see a lot of potentials.
- awongh 2y agoOne other connection between these two is the fact that for AI assisted coding you can only get the AI to write you code that has broad adoption on the internet. Otherwise the AI doesn’t know the standard libraries and conventions. I worry overall that this could signal the complete end of new programming languages except in a few special cases. (Which I think was already a worrying trend before AI- see Bret Victor’s “The Future of Programming” talk).
- mewpmewp2 2y agoI'm wondering if there's going to be an initiative for a new programming language that is specifically intended for AI usage. E.g. AI has some statistical patterns built in that it would naturally guess what the method names should be or the API package names, and then we would just invent a programming language based on what is most natural for AI for any sort of use case. So even if AI "hallucinates" it would likely be the right guess since all the API and syntax is picked by AI in the first place.
- hakanderyal 2y agoI would be very surprised if there aren't any serious efforts on this already underway.
- Cthulhu_ 2y agoThat sounds like the inverted world though, as in, AI is imperfect and makes mistakes, let's try and work with and around those mistakes instead of making AI better.
- mewpmewp2 2y agoI think it makes sense to go at this problem from multiple different angles. One is making the AI better, the second angle is making the World easier for AI. We learn from both approaches. And you can try to make a really good AI that is very good with the current World, but at the same time an AI that is maybe much faster and efficient will still be very valuable if there's a World that is made easier for them. Because there will always be a trade off to an extent with accuracy vs speed. It could be even something that the larger and slower AI model is defining and implementing the APIs and smaller and faster is the one who will actually make use of those. Or some variations of those combined, where it's a single AI model with a capability to select between the 2. If it's complicated APIs, it will try to crawl the docs for accuracy and make "AI intuitive" wrappers around all of the APIs and their edge cases, and making it easier for the fast model.
- sna1l 2y agois this satire?
- deleted 2y ago[deleted]
- badpenny 2y agoIt's becoming increasingly hard to tell.
- markusw 2y agoIn what way are you in doubt whether or not it's satire?
- neolefty 2y agoThank you for writing it! LLMs have an "old" feeling to me because they're based on human language. I totally felt your blog post.
- markusw 2y agoI think they feel like pure science fiction magic. I have multiple alien brains installed locally on my laptop.
- Nullabillity 2y agoBecause it's completely backwards. "Choose technology so painful to work with that even LLMs seem helpful!"
- neolefty 2y agoIt's a thought-provoking headline. Is that the same as clickbait? You'll have to be the judge.
- tudorizer 2y agowhy would it be satire?
- threeseed 2y agoHere we go again. Choose boring technology aka pick the technologies I think are the best.
- Cthulhu_ 2y agoWell, maybe - the why of why the author thinks those technologies are best are in the catchprhrase itself (they are boring), and the motivation of why boring is good is described at https://mcfunley.com/choose-boring-technology https://mcfunley.com/choose-boring-technology and the like.
- markusw 2y agoYep! "Boring tech" has basically become an established term at this point, I'm not going to change that.
- devjab 2y agoI think boring is mostly a bad terminology for stable in these sort of arguments. Which means you get to actually focus on doing work. This author is apparently a fan of Go as an example of what they probably consider a “boring” technology and from that article it seems they came from Python. I think that speaks volumes about how they work with technologies that don’t change very often, because they are designed to be simple to use. Well maybe not Python if you allow it to go crazy, but if you actually know the difference between looping over a List and using a generator you probably do some very boring Python. I think it’s similar to why a lot of places use Ruby on Rails, Django and the likes. They work, and they work well. It’s why people use Debian. It’s to lead relatively uneventful lives as far as the underlying tech goes, which is “boring”. In my experience you’ll find far less attachment to specific technologies in this crowd of people. They like their stable tools but they won’t preach to you about a specific tool, more so about how choosing something that is simple to work with because it just works is nice. We do it in practice, we use C and we didn’t go onboard with Rust. We use a little Zig but only when it’s completely interoperable with C. In 5-10 years when Rust or Zig are more mature (and boring) we may pick them up again. Well I probably won’t be here by then but I’m sure you know what I mean. Until they get boring, however, we’re just going to use C. I don’t think C is better than Rust and I don’t think you should necessarily copy us, but for us C is “boring” and Rust isn’t.
- Havoc 2y agoI’d say it’s more being deliberate about how much new tech you incorporate into new projects. One small and ideally isolated new piece in each project is a good idea else you’ll stagnate
- never_inline 2y agoThe larger point is that by keeping non-strategic part of your tech stack boring, you can focus on core innovative technology. In this guy's case it's LLM. Which is same point that the original post "choose boring technology" makes. I don't see the contradiction.
- markusw 2y agoYes, exactly! There's not much new here. :D
- markusw 2y agoHey everyone! Author here. Just saw a lot of traffic from HN. I'm happy to answer questions. :-)
- tudorizer 2y agoIndirectly: choose boring tech because it's well documented, widely supported, and training data for LLMs abound. Do you run LLMs locally? I'd be keen to have an overview of your stack.
- markusw 2y agoI do! In the article, I mostly mean working with LLMs inside the applications I'm building, as opposed to as a tool as part of development. But I do both. Right now, I'm trying out Zed, which supports multiple LLMs natively. Just today, I tried Zed + Ollama + Qwen 2.5 Coder 32B running locally, and it worked! Blows my mind that I can have GPT-4o-level assistance running on my laptop. :D
- tudorizer 2y agoamazing! How do you gauge "GPT-4o-level assistance"? Have you tried side-by-side comparisons?
- rexreed 2y agoWhy not go even more old school? Shared hosting and PHP?
- markusw 2y agoBecause I don't know PHP, so that would be a terrible choice for me. But if that's what you're productive in, I'd say, absolutely!
- bsenftner 2y agoNobody gets your points. HN is like this far too often, take minor points and that's all the discussion is about. I'm doing what you're talking about 100%. I've found that established and popular FOSS web software that has normal people users and their support forums, plural, for their normal users (as any popular software has) - this type of "established and non-sexy probably used for office work software" is fully known and understood by LLMs. It's very simple to put a support AI Agent inside the interface to that software, and because the LLM has both the user support forums and the source code itself in the training, that AI Agent can do things against the software's API and data structures by request - it knows them! Yeah, "boring software" is no longer boring when it can be integrated with characters that know that software as good as the lead developer who wrote it and have the knowledge of a dozen PhDs too.
- thih9 2y agoHow does it work with mainstream technologies that are being actively developed? Did anyone try working with LLMs and Swift for example? Is the AI suggesting deprecated libraries from earlier iOS versions / generally having trouble? Or is it working fine?
- n_ary 2y agoLLMs are always lagging. Even in terms of Go, I knew someone used a copy-pasta from chatgpt this week on code review because chatgpt did not have most recent go updates, so this PR has a very convoluted mass of functions created, but the entire PR should have been just one method call which is available since go 1.22 I suspect that the productivity gain we see now from LLM will generate adequate tech debt in time if people with less experience(or patience) continue to build things with auto generated code without own research and learning. (Edit: punctuations and disamguify)
- nbrad 2y agoThis is definitely an issue - We're working on an automated code review product (ellipsis.dev), and while we have a lot of happy Swift users, the speed of breaking changes creates issues. Currently we do a mix of letting users put in their own custom rules/feedback, and are working on pulling in latest docs automatically. The issue doesn't seem to be going away soon though - i expect this actually to put pressure on a lot of projects to have more stable APIs (good and bad, i suppose)
- qbonnard 2y agoAgreed, especially for "serious" project, where LLMs are a good approximation of an average dev that could easily increase your bus factor. On the other hand, this could be the same slippery slope that starts at "choose a boring project because it has mature tooling" but ends at "IDE's are a language smell". If the language is so boring that you can't focus on it without an LLM doing the menial work, that could be because there is too much menial work to start with.
- Gooblebrai 2y agoI guess Go is quite fine for his use cases, but I suppose if suddenly he had to delve into more frontend-focused apps or AI development, he would be forced to use Javascript and Python.
- markusw 2y agoI build my frontends with HTML using gomponents. The jury’s still out about how far I can get with just Go while incorporating LLMs into my apps, but I’m optimistic!
- Mystery-Machine 2y agoThat's why I like to use Ruby on Rails.
- draw_down 2y ago[dead]
- deleted 2y ago[deleted]