4 ms·
Ruby Was Ready from the Start
- andrewstuart 1y agoWhat’s the message here? I read and read a lot of words but nothing clear came through. Maybe he sort of seems to be saying that Ruby is special in modern programming with LLMs? That doesn’t ring true for me - seems that languages are less special and less differentiated than ever with LLMs, which is to say that languages just tend to be less important now and that’s a good thing. Who cares about language, just build the thing. Is he saying that Ruby is better for LLM programming? That’s hard to imagine because strong typing has to be a big help for automated programming tools and Ruby is behind all the other modern languages on typing.
- bitwize 1y agoNot really Ruby per se, but Extreme Programming, TDD, and all of the mid-2000s OO-hipster methodology stuff that accompanied Ruby/Rails back in the day. His thesis is that if you just adopt XP, like you're supposed to, that translates smoothly to programming with LLMs because you can have the LLMs fearlessly take incremental steps, supported by extensive testing, and directly oversee the work exactly the same way you would do pair-programming with a human junior programmer.
- wawj 1y ago[dead]
- alfanick 1y agoThis looks like babysitting a kid. If that's how CHAT/"vibe coding" looks like - no thank you. I would be frustrated all the time.
- herbst 1y agoI am super efficient these days. But that's exactly what it feels like. Coding is not fun anymore and needs a lot of stress resistance now. However doing actual manual coding starts to feel weird as well
- bitwize 1y agoSomeone I know who is all-in on AI—the same person who literally said you're not a real engineer if you're not using LLMs—also made a passing remark about how exhausted he was at the end of a workday talking to the clankers. I have a feeling the job's about to get a whole lot shittier.
- rmnclmnt 1y ago> Coding is not fun anymore The thing that made our crowd apart in the work society is now vanishing, that’s sad. I wonder how future movies will depict programmers: depressed faces getting angrier and angrier chatting with a CLI coding agent! This will not inspire future generations!
- rusk 1y agoEver see the Fritz Lang’s metropolis? Like that but sitting down
- bigstrat2003 1y agoYou could... not use them. The tool makes you less efficient, it is unpleasant to use... there's no upside here.
- michaelcampbell 1y agoUnless part of your compensation or even your company's policy to allow to keep working there is tied to it. And just up and changing companies is also not a realistic option for many, before people start bleating that tired, privileged trope.
- wiseowise 1y agoWhat exactly isn’t fun about coding?
- znpy 1y agoTl;dr?
- felipemesquita 1y agoAuthor argues that values long embedded in Ruby culture (testing, readability, design) are very useful for collaborating with AI, gives an example os asking Claude to follow tdd
- Gigachad 1y agoRuby does have the best testing tooling of any I’ve tried. But I feel like it’s half to make up for how horribly unreliable the language is. The whole thing being untyped makes it borderline impossible to know the code is correct without unit tests covering everything.
- cracki 1y ago"Untyped" means, for example, you can't tell a string from a number, because they are the same type. You mean "not statically typed". Which also applies to Javascript, PHP, Python, ... so if that critique doesn't stick to those, it's not a critique you can level at Ruby.
- Gigachad 1y agoTypescript has almost universal adoption at companies now. PHP I can’t imagine any company choosing for new work anymore. And Python I’m not terribly familiar with but it does seem to be moving towards types.
- steve_gh 1y agoRuby behaves sensibly through the principle of least surprise. But it does have extremely powerful metaprogramming capabilities which are regularly abused by those not wise enough to know that just because you could do something doesn't mean that you should. I regularly code in a variety of languages from C / C++ through Python and Ruby through to Haskell. They all have their advantages and disadvantages. All of them are capable of abuse by the sufficiently determined. And unit tests are helpful in all of them.
- santiagobasulto 1y agoI can’t read past a few paragraphs because medium puts an annoying pop up that takes most of the screen and I can’t close.
- wiseowise 1y agoWhat’s worse than snake oil sellers? Snake oil sellers powered by LLM. > Most of all, it promised a much bigger paycheck! Tell us about this part, son, so far you’ve been only spewing same Agile/Xtreme shite we’ve been hearing for decades.
- jstummbillig 1y agoI am new. What is wrong with the Agile/Xtreme stuff?
- cracki 1y agoThe snake oil salesmen who turn it into a religion/cult. The ceremony that doesn't bring any advantages. The irrational adherence to this ceremony. "Agile/XP" is a big bag of many ideas. Some of them aren't related, but they all get stuffed in that bag. Personally, I enjoy pair programming, which is the literal experience of dealing with an (agentic) AI for the purpose of programming. Tests (regression tests, unit tests, integration tests, ...) make development easier in that they tell you right away when you took a wrong step. You don't have to test manually anymore, so that saves you time and concentration, and you can test a lot more often. Those are the good bits of "Agile/XP".
- graemefawcett 1y agoWe do something similar with automation we're calling Looking Glass Development (there's a theme). https://tech.lgbt/@graeme/115608630019342209 https://tech.lgbt/@graeme/115608630019342209 We marry the user guide or reference manual to the unit tests into a single live markdown file. Intent and verification in a single package. The a
- graemefawcett 1y agoApologies, errant drop of water on an already cracked screen caused an early posting. The live markdown provides a substrate that causes the tests to run when the user guide or reference document is read. We use these reference documents in place of specs in our development, they're the same information in different form (input vs output in the whole affair when treated typically) so why not just use them that way? And marrying the unit test to them provides instant verification. During the development process, any agent (or human) accessing the spec will also receive the current state of development free (relatively... the tests need to run) of charge. Afterwards, the tests remain, ideally green, but as an indicator anytime anyone (agentic or human) needs a refresher on whatever that feature might have been. Tucked away down at the bottom of the page somewhere, the tests stay active so that we have an on going drift/regression detector embedded in the document that describes its function. When the entire platform is based on Turing complete markdown, it helps to keep things flowing in the right direction. There's a larger write up (and the odd shitpost) here https://www.graemefawcett.ca/blog/little-things/ https://www.graemefawcett.ca/blog/little-things/ if you're interested
- graemefawcett 1y agoSorry, I had to get my kids off to school (there's two of them) and daddy tends to need some help on the best of days, but the abstraction is already designed for a polyglot runtime and my entire current platform is based on Ruby (she's just so pretty isn't she...) so the guts were there. I had a Ruby SDK for the graph from a week or two ago laying around so I just needed to get the fence processor and context injection wired up. This I think proves the power of what Obie is saying. We do RSpec now and it's glorious https://tech.lgbt/@graeme/115622344011576598 https://tech.lgbt/@graeme/115622344011576598 That shows how we can create a single node on the graph with a pair of {{include:statements}} and a bit of ${interpolation:based-pointer.math} and poke and peek tools in an MCP proxy turns a markdown file into an Rspec test runner, just by reading the file. And that same {{include:}} lets me drop that pattern anywhere I want all over the graph, which is pretty neat. Obie's definitely on to something with this. There's a rather lot of negative emotion surrounding the changes to our profession. There's a certain lack of joy bleeding through many of the comments. Computing doesn't have to be that way, didn't used to be anyways. If you're smart about your verification process, if you're smart about optimizing the framing of your intent, this isn't a scary world we're all crashing headlong into. Remember what they're for - they're generative not thinking - and they'll serve you well. Or not They can be little gooses sometimes ;)