Hacker Newsnew | past | comments | ask | show | jobs | submit | Verdex's commentslogin

No it's not.

Also read the link. This is apache 2 licensed. Even in whatever imaginary world where there is such a social contract, there is thankfully a legal contract that includes disclaimer of warranty.


Chimp isn't, but at the end of freeze frame Sunday addresses one who she thinks is. [Not sure if that was the original intent in this thread, though]

Hmm. I don't remember that, maybe it's time for a re-read.

I'm looking at my kindle version here...

2nd paragraph, 2nd sentence, the "I" in "It" is slightly different. 5th paragraph, 2nd sentence, the "s" in "space" is likewise. Then in the next chapter, there's an "e" in "every" and later another "e" in "eye".

And as you spell it out (and in some editions), it ends with...

"I see you found my eighth-notes."


Nah, that's different

This here.

Overall society feels more turbulent, but this is otherwise all the same song and dance all over again.

The 90s and 00s had this wave of "object oriented programming changes everything". Hey we're doing this thing that's been done successfully 100s of times before, but now it's OO. Writing some code in involving an airplane? Just purchase this omni-airplane object that does everything for airplanes (an actual thing I was told in college).

That's weird OO isn't the be all end all? Code gen, get this Ruby on rails running. Look at me building this website in two seconds. Code gen everywhere.

Huh, that's going to a funny place... TDD. If you aren't TDDing then you're such a bad engineer that you should be locked in prison (real conversation I observed). Oh wait, not TDD, BDD. That fixes it.

Lean, no Agile, no agile like with a small a ... but it was first, no scrum, no xml wait that was last decade, json, and finally SAFe.

Hey, have you seen this chat bot thingy?

Every iteration brings good stuff if you're paying attention. But it also brings a lot of hype and anxiety. Experiment and learn.

The one thing that's remained constant for me is that nearly everyone would rather die than to think carefully about the consequences of their dreams coming true. And as long as that remains true they'll continue to pay for someone else to ride the hype dragon on their behalf.


> Overall society feels more turbulent, but this is otherwise all the same song and dance all over again.

The thing is... everything you mentioned had only brought the need to retrain.

This new hotness AI? It's bringing actual layoffs, and not just of the boom bust cycle kind, but permanent, industrial-revolution kind that lasts for decades.


It is?

Covid overhiring, no more 0% interest rates, that one accounting change, and companies needing a "growth" sounding way to announce layoffs. Maybe that's bringing actual layoffs in the name of AI?


> Covid overhiring, no more 0% interest rates, that one accounting change, and companies needing a "growth" sounding way to announce layoffs.

That is only compounding the problem, because with each year, IT still gets a truckload of new bootcamp or "academia" graduates that hit the pool of the unemployed.


It is clear that layoffs don't happen because of AI

Of course they do. Even in industries that didn't overhire during Covid or did other strategic blunders over the last decades, you see jobs getting cut all the time. Big Tech makes the news because everyone is looking there... but the entire economy is a bloodbath.

And even those that don't do layoffs, have you looked at open job postings recently? It's all dried up, and to a large degree because C levels are waiting for the "cambrian explosion" of AI. A lot of the infamous "bullshit job" list is in serious danger of getting eliminated by AI.


Having lived through all of that as a professional dev, AI is completely different. There was no career anxiety of any significance for OOP or Code Gen (certainly no code gen) or TDD or Agile - there was annoyance at it by some, sure, but not the existential angst the industry is currently experiencing.

> AI is completely different.

Okay?

> existential angst

I don't know, maybe there's just too many juniors on social media posing as senors spreading existential angst? I mean if GC was introduced in a time where there was an engagement AI spreading dread far and wide then I suspect we could have had the same thing.

I certainly wish people would be less sad, but I'm not sure that means that things are meaningfully different on a technical level.


Hey, would you mind elaborating a bit on this:

> assuming you have a clear idea of what you want to do and how

I mean, if I have a sufficiently clear idea of what and how, then surely just coding it manually would work significantly better. Unless maybe I am a painfully slow typer.

Without some level of "actually I'm not sure exactly" permitted, then I'm not really sure what LLMs bring to the table.


Even when you have a clear idea of what you want, there are still hundreds of decisions you need to make while building it, both big and small. Everything from what to name your database tables and columns to what data structures are optimal and what the API payloads should look like and what the tech stack should be. Anyone with a sufficient level of experience in this field has made these types of decisions dozens of times and at some point it becomes more practical to have an AI do it for you and for you to quickly skim it.

For example I want to make it so that users receive an email when their password is changed. I can either do it myself, which requires reviewing and remembering code I’ve written five plus years ago and then wiring everything up and obsessing over the wording of the email. Or I can give a two sentence instruction to the AI, work on something more meaningful while it is doing its thing, and then test it in under 60 seconds when it is done.


If I want to create a web app with a back-end, database, and some services, and I tell codex to do that with a specific stack and using specific paradigms to keep the code performant and maintainable, it's still a win over coding it by hand, as models can emit ~200char/sec compared with maybe ~10 for a really fast human. There's up front planning cost, and you will have to go back and massage some of the outputs a little bit if you're particular, but for sizeable tasks it still comes out to be a big win.

If you're just working on a single react component or an algorithm to do stuff with data, there's less chance to amortize the up front planning and verification so it comes out more of a wash.


Yeah, I think so. If someone lets you cheat off of their test, that's authorized but still plagiarism.


IIRC they do some stuff with f co algebras. Which if I understand it is effectively doing things like "hey here's a generator that produces an infinite number of the number 1, but the only way to evaluate it is via a take with a finite number".

I know with idris there is also a progress evaluator for otherwise general recursion that proves that your input is always "getting smaller". Not sure if charity has the same deal or not.

Regardless, it isn't turning complete, but the interesting part is how far you can get in a sub turing environment.


Afaik there was Turing limited kind of language which had Turing decidable fragments https://www.microsoft.com/en-us/research/wp-content/uploads/...

afaik it is still in relatively active development


Rust macro compiling function to NPU kernel likely is Turing decidable "fragment".


That's my take as well. I've had my unPRed branches grabbed up and blindly merged by an agent twice now. The guy doing it was shocked both times that his PR had my change sets in it.

Also one engineer is treating the code as assembly. I've asked some pointed questions about code in his PR and the response was "yeah, I don't know that's what the agent did".

Edit:

To everyone freaking out about the second guy. Yeah, I think being unable to answer questions about the code you're PRing is ill advised. But requirement gathering, codebase untangling, and acceptance testing are all nontrivial tasks that surround code gen. I'm a bit surprised that having random change sets slurped up into someone else's rubber stamped PR isnt the thing that people are put off by.


My friend is a CTO at a non-tech company and he's now dealing with code from non-SWEs trying to self serve with LLMs.

But it's like a kid running a lemonade stand. Total DIY weekend project quality stuff that they are demanding go live. Hardcoded credentials, no concept of dev/qa/prod environments, no logging, no tests, no source control.

I'm not really sure teaching basic SWE practices / SDLC / system design to people whose day job is like.. accounting makes sense compared to just accelerating developer productivity.


It’s the same dilemma as old: it’s easier to teach a doctor UML than a coder Doctoring. But, critically, that’s about making doctor-facing IT systems not performing their skilled jobs.

Bringing code does not help, but a validated user story with flow diagrams, a UI suggestion, and a valid ticket could. That’s the bridge to gap.

Were I that CTO I’d explain that code carries liability, SWEs can end up in jail for malfeasance, fines, penalties, and lawsuits are what awaits us for eff-ups. “Coders” get fired if their code doesn’t work. Same speech to the devs, do exactly as much unsolicited Accounting as you wanna get fired for. Talk fences, good neighbours.


The ROI on teaching UML to a doctor is pretty low though right?

Non-technical people are not writing tickets, they are just slinging slop.

Another anecdote of things I've seen - a non technical person setting up some web scraping monstrosity with 200k lines of code. They beat their chest about how they didn't need the IT org. 1 month goes by and of course it breaks as soon as anything on the website changes and now they have a gun to ITs head to "fix it" and take it over.

This outcome for a DIY brittle web scraper is obvious to anyone that's ever written code, but shocking to someone who thinks LLMs are magic.


No, you should have forward deployed engineers sitting and working right beside these traditional non SW roles if you need to fully integrate AI into their mix.


Right, unfortunately a lot of orgs are quickly letting loose some combination of non-tech self-serve AI coding and tech org staffing reductions rather than ADDING forward deployed engineers.


So he's being paid and is sitting there letting an AI tool do his work for him? Insanity.


We didn’t mind when typesetting was automated. Or when compilers were invented. Why is this different?


Because he's paid to deliver code that works. Letting an AI agent do everything would be fine if it didn't make any mistakes, but that's far from reality.


Compilers and typesetters make mistakes. Fewer as time goes on, but that’s not a categorical difference.


Do typesetters inexplicably change the meaning of the book or document being typeset? Do compilers alter the behavior intended by the programmer, sometimes in ways that are not immediately obvious? Did the invention of typesetters lead to investments so massive, that the investors had to herald the end of handwriting (no equivalent analogy for compilers)?


It reminds me of the guy who replaced his static blog deployment scripts with asking chatgpt to generate the html from his text based on a template, and said that he isn't sure that the llm isn't changing his writing but hopes it isn't


On compilers, you know they do! Compilers have bugs and some languages have undefined behavior.

On typesetters and investment: the WYSIWYG word processor is on almost every home and office desk in the world.


So I take we can soon replace coders entirely. Just fire all of them. And let some intern under VP prompt the whole thing?


Resistance to technological change has been a thing since farming was invented. Socrates thought that writing will ruin everyone's memory, and that people who just rely on written word will appear knowledgeable while actually knowing nothing.

The only difference is that this is happening to us.


Do typesetters or compilers write the code for you? Or are you perhaps using a disingenuous analogy?


A compiler writes the ASM code for you, and the typesetter does the layout for you, yes absolutely.

The high level language code is a prompt for the compiler. Consider that there is parsable C code whose behavior is not even defined. There are still bugs in compilers today, where the code produced is not what you intended. And further, modern compilers do lots of work to optimize performance. You usually don’t even look at the resulting code, you just gratefully accept the rewrite for the extra oomph.


To that last guy, as the manager I would say "What is it that you do here??"


That's just a straight-shooter with "upper management" written all over him.


He signs the TPS reports.


I then just basically space out for a while.


“I’m the prompter.”


I take the prompts to the AI so the manager doesn't have to! I have prompting skills!!

I just can't make the joke work. There really are people that think they can get paid to press the agent's on button. How long before their checks stop clearing and it "just works itself out naturally"?


That's literally how some Meta AI jobs looked a few years back - set up a few parameters, push a button, wait until training and evals are finished; repeat if. needed. $500k+/year.


> I take the prompts to the AI so the manager doesn't have to! I have prompting skills!!

This is honestly the mindset of the people on here who proudly proclaim that they haven't written a line of code in six months and are excited about what programming is "evolving" into. Naturally, _their_ AI skills aren't something that an "idea guy" can use to build a product without looping in a developer, so _his_ job is safe and will never go away -- "I understand system design, an LLM will never be able to do that!" Sure thing buddy.



do you... honestly not believe that system design is real???


That's not what I said. I said system design is not the exclusive domain of humans, so anyone thinking they possess some special knowledge of system design that an LLM isn't capable of obtaining are fooling themselves.


What color is your stapler?


"I write the prompts"


I have a friend who dealt with this in highschool. The English teacher just copied whatever their grade was from their first assignment onto all other assignments.

It got so bad that his Dad, who was an active English and Spanish teacher at another school, was convinced to write one of his papers for him. He got a D.


Heres the thing about clean code. Is it really good? Or is it just something that people get familiar with and actually familiarity is all that matters.

You can't really run the experiment because to do it you have to isolate a bunch of software engineers and carefully measure them as they go through parallel test careers. I mean I guess you could measure it but it's expensive and time consuming and likely to have massive experimental issues.

Although now you can sort of run the experiment with an LLM. Clean code vs unclean code. Let's redefine clean code to mean this other thing. Rerun everything from a blank state and then give it identical inputs. Evaluate on tokens used, time spent, propensity for unit tests to fail, and rework.

The history of science and technology is people coming up with simple but wrong untestable theories which topple over once someone invents a thingamajig that allows tests to be run.


I'm with you... personally, I always found Clean/Onion to be more annoying than helpful in practice... you're working on a feature or section of an application, only now you have to work across disconnected, mirrored trees of structure in order to work on a given feature.

I tend to prefer Feature-Centric Layout or even Vertical Slices, where related work is closer together based on what is being worked on as opposed to the type of work being done. I find it to be far more discoverable in practice while able to be simpler and easier to maintain over time... no need to add unnecessary complexity at all. In general, you don't need a lot of the patterns introduced by Clean or Onion structures as you aren't creating multiple, in production, implementations of interfaces and you don't need that type of inheritance for testing.

Just my own take... which of course, has been fighting upstream having done a lot of work in the .Net space.


Applause.

I am in .net as well. The clean code virus runs rampant.

Swimming in DTOs and ViewModels that are exact copies of Models; services that have two methods in them: a command method and then the actual command the command method calls, when the calling class already has access to the data the command method is executing; 3 layers of generic abstractions that ultimately boil down to a 3 method class.

Debugging anything is a nightmare with all the jumps through all the different classes. Hell, just learning the code base was a nightmare.

Now I'm balls deep in a warehouse migration, which means rewriting the ETL to accommodate both systems until we flip the switch. And the people who originally wrote the ETL apparently didn't read the documentation for any of it.


No, it's not really good.

It's a pain in the ass to work in, and it produces slow code.

https://www.computerenhance.com/p/clean-code-horrible-perfor...


Whenever the lawnmower thing comes up, I try to also mention dtrace. As far as things to be remembered for, they make some strange bedfellows... although it's better than anything I've managed so I guess congrats.


DTrace was absolutely a product of pre-Oracle Sun, not Oracle.


Hey friend, check the user name of the person I'm responding to (and perhaps check out the people responsible for dtrace and larry ellison lawnmower comparisons). I might appear more coherent afterwards.


Yeah, I see what you mean now. Sorry.


It's not like Sun wasn't also lawyer heavy.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: