| ▲ | usrbinbash 7 days ago |
| > We don't just keep adding more words to our context window, because it would drive us mad. That, and we also don't only focus on the textual description of a problem when we encounter a problem. We don't see the debugger output and go "how do I make this bad output go away?!?". Oh, I am getting an authentication error. Well, meaybe I should just delete the token check for that code path...problem solved?! No. Problem very much not-solved. In fact, problem very much very bigger big problem now, and [Grug][1] find himself reaching for club again. Software engineers are able to step back, think about the whole thing, and determine the root cause of a problem. I am getting an auth error...ok, what happens when the token is verified...oh, look, the problem is not the authentication at all...in fact there is no error! The test was simply bad and tried to call a higher privilege function as a lower privilege user. So, test needs to be fixed. And also, even though it isn't per-se an error, the response for that function should maybe differentiate between "401 because you didn't authenticate" and "401 because your privileges are too low". [1]: https://grugbrain.dev |
|
| ▲ | skydhash 7 days ago | parent | next [-] |
| Programmers are mostly translating business rules to the very formal process execution of the computer world. And you need to both knows what the rules means and how the computer works (or at least how the abstracted version you’re working with works). The translation is messy at first, which is why you need to revise it again and again. Especially when later rules comes challenging all the assumptions you’ve made or even contradicting themselves. Even translations between human languages (which allows for ambiguity) can be messy. Imagine if the target language is for a system that will exactly do as told unless someone has qualified those actions as bad. |
| |
| ▲ | noduerme 6 days ago | parent | next [-] | | Good programmers working hand in glove with good companies do much more than this. We question the business logic itself and suggest non-technical, operational solutions to user issues before we take a hammer to the code. Also, as someone else said, consider the root causes of an issue, whether those are in code logic or business ops or some intersection between the two. When I save twenty hours of a client's money and my own time, by telling them that a new software feature they want would be unnecessary if they changed the order of questions their employees ask on the phone, I've done my job well. By the same token, if I'm bored and find weird stuff in the database indicating employees tried to perform the same action twice or something, that is something that can be solved with more backstops and/or a better UI. Coding business logic is not a one-way street. Understanding the root causes and context of issues in the code itself is very hard and requires you to have a mental model of both domains. Going further and actually requesting changes to the business logic which would help clean up the code requires a flexible employer, but also an ability to think on a higher order than simply doing some CRUD tasks. The fact that I wouldn't trust any LLM to touch any of my code in those real world cases makes me think that most people who are touting them are not, in fact, writing code at the same level or doing the same job I do. Or understand it very well. | | |
| ▲ | shinycode 6 days ago | parent | next [-] | | True and LLM have no incentive to avoid writing code. It’s even worse they are « paid » by the amount of code they generate. So default behavior is to avoid asking questions to refine the need. They thrive on blurry and imprecise prompt because in any case they’ll generate thousands of loc, regardless of the pertinence.
Many people confirmed that in their experience.
I’ve never seen an LLM step back, ask questions and then code or avoid coding. It’s by design a choice of generating the most stuff because of money. So right now an LLM and the developer you describe here are two very different thing and an LLM will, by design, never replace you | |
| ▲ | danielrico 6 days ago | parent | prev | next [-] | | > When I save twenty hours of a client's money and my own time, by telling them that a new software feature they want would be unnecessary if they changed the order of questions their employees ask on the phone, I've done my job well. I like to explain my work as "do whatever is needed to do as little work as possible". Being by improving logs, improving architecture, updating logs, pushing responsibilities around or rejecting some features. | | |
| ▲ | withinboredom 6 days ago | parent [-] | | "The best programmers are lazy, or more accurately, they work hard to be as lazy as possible." -- CS101, first day | | |
| ▲ | K0balt 6 days ago | parent [-] | | The most clever lines of code are the ones you don’t write. Often this is a matter of properly defining the problem in terms of data structure. LLMs are not at all good at seeing that a data structure is inside out and that by turning it right side in, we can fix half the problems. More significantly though, OP seems right on to me. The basic functionality of LLMs is handy for a code writing assistant, but does not replace a software engineer, and is not ever likely too no matter how many janky accessories we bolt on. LLMs are fundamentally semantic pattern matching engines, and are only problem solvers in the context of problems that are either explicitly or implicitly defined and solved in their training data. They will always require supervision because there is fundamentally no difference between a useful LLM output and a “hallucination” except the utility rating that a human judge applies to the output. LLMs are good at solving fully defined, fully solved problems. A lot of work falls into that category, but some does not. | | |
| ▲ | noduerme 5 days ago | parent [-] | | >> The most clever lines of code are the ones you don’t write. Just to add, I think there are three things that LLMs don't address here, but maybe it's because they're not being asked the broader questions: 1. What are some reasonable out-of-band alternatives to coding the thing I'm being asked to code? 2. What kind of future modifications might the client want, and how can we ensure this mod will accommodate those without creating too many new constraints, but also without over-preparing for something that night not happen? 3. What is the client missing that we're also missing? This could be as simple as forgetting that under some circumstances, the same icon is being used in a UI to mean something else. Or that an error box might obscure the important thing that just triggered the error. Or that six years ago, we created a special user level called "-1" that is a reserved level for employees in training, and users on that level can't write to certain tables. And asking the question whether we want them to be able to train on the new feature, and if so, whether there are exceptions to that which would open the permissions on the DB but restrict some operations in the middleware. "What are we missing" is 95% of my job, and unit tests are useless if you don't know all the potential valid or invalid inputs. |
|
|
| |
| ▲ | 1dom 6 days ago | parent | prev | next [-] | | I think this is a fair and valuable comment. Only part I think could be more nuanced is: > The fact that I wouldn't trust any LLM to touch any of my code in those real world cases makes me think that most people who are touting them are not, in fact, writing code at the same level or doing the same job I do. Or understand it very well. I agree with this specifically for agentic LLM use. However, I've personally increased my code speed and quality with LLMs for sure using purely local models as a really fancy auto complete for 1 or 2 lines at a time. The rest of your comment is good, bit the last paragraph to me reads like someone inexperienced with LLMs looking to find excuses to justify not being productive with them, when others clearly are. Sorry. | |
| ▲ | jlcummings 6 days ago | parent | prev | next [-] | | Being effective with llm agents requires not just the ability to code or to appreciate nuance with libraries or business rules but to have the ability and proclivity of pedantry. Dad-splain everything always. And to have boundless contextual awareness… dig a rabbit hole, but beware that you are in your own hole. At this point you can escape the hole but you have to be purposefully aware of what guardrails and ladders you give the agent to evoke action. The better, more explicit guardrails you provide the more likely the agent is able to do what is expected and honor the scope and context you establish. If you tell it to use silverware to eat, be assured it doesn’t mean to use it appropriately or idiomatically and it will try eating soup with a fork. Lastly don’t be afraid of commits and checkpoints, or to reject/rollback proposed changes and restate or reset the context. The agent might be the leading actor, but you are the director. When a scene doesn’t play out, try it again after clarification or changing camera perspective or lighting or lines, or cut/replace the scene entirely. | | |
| ▲ | cmsj 6 days ago | parent | next [-] | | I find that level of pedantry and hand-holding, to be extremely tedious and I frequently find myself just thinking fuck it, I'll write it myself and get what I want the first time. | | |
| ▲ | skydhash 6 days ago | parent [-] | | This. That’s why every programmer strive for a good architecture and write tests. When you have that and all your bug fixes and feature request are only a small amount of lines, that is pure bliss. Even if it requires hours of reading and designing. Anything is better than dumping lot of lines. |
| |
| ▲ | dingi 4 days ago | parent | prev [-] | | Why would anyone bother at this point though? Tedious handholding and extra effort for code reviews. Just write the damn thing yourself. | | |
| ▲ | etherealG 20 hours ago | parent [-] | | Because once you figure out the correct way to handhold, you can automate it and the tediousness goes away. It’s only tedious once per codebase or task, then you find the less tedious recipe and you’re done. You can even get others to do the tedious part at their layer of abstraction so that you don’t have to anymore. Same as compilers, cpu design, or any other pet of the stack lower than the one you’re using. |
|
| |
| ▲ | gxs 6 days ago | parent | prev | next [-] | | To be honest you sound super defensive, not just in a classic programmer when someone invades on their turf sort of way, but also in the classic way people who are reluctant to accept a new technology This sentiment of, a human will always be needed, there’s no replacement for human touch, the stakes are too high, is as old as time You just said, quite literally, that people leveraging LLMs to code are not doing it at your level - that’s borders on hubris The fact of the matter is that like most tools, you get out of AI what you put into it I know a lot of engineers and this pride, this reluctance to accept the help is super common The best engineers on the other hand are leveraging this just fine, just another tool for them that speeds things up | | |
| ▲ | geraldwhen 6 days ago | parent [-] | | Hubris? The offshore team submitting 2000 line nonsense PRs from AI is reality. We’re living it. We see it every day. The business leaders cannot be convinced that this isn’t making less skilled developers more productive. | | |
| ▲ | gibbitz 3 days ago | parent | next [-] | | Worth noting that there are business leaders who see high LOC and number of commits as metrics of good programmers. To them the 2000 LOC commits from offshore are proof that it's working. Sadly the proof that it's not will show in their sales and customer satisfaction if they keep producing their product long enough. For too long the business model in tech has been to get bought out so this doesn't often matter to business. | |
| ▲ | 6 days ago | parent | prev [-] | | [deleted] |
|
| |
| ▲ | danielbln 6 days ago | parent | prev [-] | | I'm not sure what any of what you just wrote has to do with LLMs. If you use LLMs to rubber duck or write tests/code, then all of the things you mentioned should still apply. That last logical leap, the fact that _you_ wouldn't trust LLM to touch your code means that people who do aren't at the same level as you is a fallacy. |
| |
| ▲ | mgaunard 7 days ago | parent | prev | next [-] | | That's not quite true; programmers adjust what the business rules should be as they write code for it. Those rules are also very fuzzy and only get defined more formally by the coding process. | | |
| ▲ | area51org 6 days ago | parent | next [-] | | That seems very dependent on which company you work for. Many would not grant you that kind of flexibility. | | |
| ▲ | hansifer 6 days ago | parent | next [-] | | At their peril, because any set of rules, no matter how seemingly simple, has edge cases that only become apparent once we take on the task of implementing them at the code level into a functioning app. And that's assuming specs have been written up by someone who has made every effort to consider every relevant condition, which is never the case. | | |
| ▲ | tharkun__ 6 days ago | parent | next [-] | | And in the example of "why" this 401 is happening that's another one of those. The spec might have said to return a 401 for both not being authenticated and for not having enough privileges. But that's just plain wrong and a proper developer would be allowed to change that. If you're not authenticating properly, you get a 401. That means you can't prove you're who you say you are. If you are past that, i.e. we know that you are who you say you are, then the proper return code is 403 for saying "You are not allowed to access what you're trying to access, given who you are". Which funnily enough seems to be a very elusive concept to many humans as well, never mind an LLM. | | |
| ▲ | HeWhoLurksLate 3 days ago | parent [-] | | ...then there are the other fun ones, like not wanting to tell people things exist that they don't have access to, like Github returning 404 errors for private repositories you know exist when you aren't logged into an account that has access to them. | | |
| ▲ | tharkun__ 2 days ago | parent [-] | | That one at least makes sense if you ask me. It's not just Github doing it. On the web side of things you'd return the same "no such thing here" page whether you don't have access or it really doesn't exist as well. So leaking more info than the page you return to users in the browser would show via the status code would not be good. I.e. that would be the appropriate thing to do if you're trying to prevent leakage of information i.e. enumeration of resources. But you should not return 401 for this still. A 404 is the appropriate response for pretending that "it's just not there" if you ask me. You can't return 404 when it's not there and a 403 when you have no access if enumeration is bad. So for example, if you don't have access to say the settings of a repo you have access to, a 403 is OK. No use pretending with a 404, because we all know the settings are just a feature of Github. However, pretending that a repo you don't have access to but exists isn't there with a 404 is appropriate because otherwise you could prove the existence of "superSecretRepo123" simply by guessing and getting a 403 instead of a 404. |
|
| |
| ▲ | 6 days ago | parent | prev [-] | | [deleted] |
| |
| ▲ | motorest 6 days ago | parent | prev | next [-] | | > That seems very dependent on which company you work for. Many would not grant you that kind of flexibility. It really boils down to what scenario you have in mind. Developers do interact with product managers and discussions do involve information flowing both ways. Even if a PM ultimately decides what the product should do, you as a developer have a say in the process and outcome. Also, there are always technological constraints, and some times even practical constraints are critical. A PM might want to push this or that feature but if it's impossible to deliver on a specific deadline they have no alternative to compromise, and the compromise is determined by what developers call out. | |
| ▲ | gregors 6 days ago | parent | prev [-] | | The majority of places I've worked don't adjust business rules on the fly because of flexibility. They do it because "we need this out the door next month". They need to ship and ship now. Asking clarifying questions at some of these dumpster fires is actually looked down upon, much less taking the time to write or even informally have a spec. |
| |
| ▲ | specialist 6 days ago | parent | prev | next [-] | | > adjust ... the business rules Successful projects do this. Ideally, front loaded. Unsuccessful projects attempt to reify the chaos. | |
| ▲ | nicbou 6 days ago | parent | prev [-] | | How does that work in an AI-supported development process? I'm a bit out of the loop since I left the industry. Usually there is a lot of back and forth over things like which fields go in a form, and whether asking for a last name will impact the conversion rate and so on. | | |
| ▲ | serpix 6 days ago | parent [-] | | Well the AI will just steamroll through and will therefore go out of rails just like a junior dev on a coding binge. | | |
| ▲ | gibbitz a day ago | parent [-] | | But all the senior business folks think AI can do no wrong and want to put it out the door anyway, assuming all the experienced engineers are just trying to get more money or something. |
|
|
| |
| ▲ | benreesman 6 days ago | parent | prev | next [-] | | This is a very common statement but doesn't match my experience at all, unless you expand "business rules" to mean "not code already". There's plenty of that work, and it goes by many names ("enterprise", others). But lots and lots and lots of programmers are concerned with using computers for computations: making things with the new hardware that you couldnt with the old hardware being an example. Embedded, cryptography, graphics, simulation, ML, drones and compilers and all kinds of stuff are much more about resources than business logic. You can define up business logic to cover anything I guess, but at some point its no longer what you meant by that. | |
| ▲ | physicsguy 7 days ago | parent | prev | next [-] | | Yes although many software engineers try as hard as possible to avoid learning what the business problem is. In my experience though those people never make great engineers. | | |
| ▲ | trimbybj 7 days ago | parent | next [-] | | Often those of us that do want to learn what the business problem is are not allowed to be involved in those discussions, for various reasons. Sometimes it's "Oh we can take care of that so you don't have to deal with it," and sometimes it's "Just build to this design/spec" and they're not used to engineers (the good ones) questioning things. | | |
| ▲ | marcus_holmes 6 days ago | parent [-] | | "Just shut up and push the nerd-buttons, nerd." I went and got an MBA to try and get around this. It didn't work. | | |
| ▲ | lisbbb 6 days ago | parent [-] | | I had a professor in grad school, Computer Engineering, that begged me not to get an MBA--he had worked in industry, particularly defense, and had a very low opinion of MBAs. I tend to agree nowadays. I really think the cookie-cutter "safe" approach that MBA types take, along with them maximizing profits using data science tools, has made the USA a worse place overall. | | |
|
| |
| ▲ | lisbbb 6 days ago | parent | prev | next [-] | | My problem was that the business problems were so tough on most of the gigs I had that it was next to impossible to build a solution for them! Dealing with medical claims in real time at volume was horrendous. | |
| ▲ | ruslan_sure 6 days ago | parent | prev | next [-] | | Understanding the business problem or goal is actually the context for correctly writing code. Without it, you start acting like an LLM that didn't receive all the necessary code to solve a task. When a non-developer writes code with an LLM, their ability to write good code decreases. But at the same time, it goes up thanks to more "business context." In a year or two, I imagine that a non-developer with a proper LLM may surpass a vanilla developer. | |
| ▲ | tempodox 6 days ago | parent | prev | next [-] | | Going by your first sentence, you must be working in a very bad environment. How can anyone solve a problem they don't understand? | | |
| ▲ | skydhash 6 days ago | parent [-] | | Hint: They don't They usually code for the happy path, and add edge cases as bugs are discovered in production. But after a while both happy path and edge cases blend into a ball of mud that you need the correct incantation to get running. And it's a logic maze that contradict every piece of documentation you can find (ticket, emails). Then it quickly become something that people don't dare to touch. |
| |
| ▲ | pjmlp 6 days ago | parent | prev | next [-] | | Usually this only happens to those doing product development. When the employer business isn't shipping software, engineers have no other option than actually learn the business as well. | |
| ▲ | sodapopcan 7 days ago | parent | prev [-] | | I guess that really is a thing, eh? That concept is pretty foreign to me. How on earth are you supposed to do domain modelling if you don't understand the domain? | | |
| ▲ | victorbjorklund 6 days ago | parent [-] | | How many % of software is domain modeled? Must me a small minority. | | |
| ▲ | perrylaj 5 days ago | parent | next [-] | | Nearly 100%. They don't call it that or use that term, and almost never _design_ thinking about the domain. But the absence of a formal 'domain model' still results in domain modeling - it's just done at the level of IC who may or may not have any awareness of the broader implications of the model they are creating. | |
| ▲ | alexanderchr 6 days ago | parent | prev | next [-] | | I’d say all (useful) software is modelling some domain. | |
| ▲ | pjmlp 6 days ago | parent | prev [-] | | Plenty if developed under consulting contract. |
|
|
| |
| ▲ | nonethewiser 7 days ago | parent | prev | next [-] | | >Software engineers are able to step back, think about the whole thing, and determine the root cause of a problem. Agree strongly, and I think this is basically what the article is saying as well about keeping a mental model of requirements/code behavior. We kind of already knew this was the hard part. How many times have you heard that once you get past junior level, the hard part is not writing the code? And that It's knowing what code to write? This realization is practically a right of passage. Which kind of begs the question for what the software engineering job looks like in the future. It definitely depends on how good the AI is. In the most simplistic case, AI can do all the coding right now and all you need is a task issue. And frankly probably a user written (or at least reviewed, but probably written) test. You could make the issue and test upfront and farm out the PR to an agent and manually approve when you see it passed the test case you wrote. In that case you are basically PM and QA. You are not even forming the prompt, just detailing the requirements. But as the tech improves can all tasks fit into that model? Not design/architecture tasks - or at least without a new task completion model than described above. The window will probably grow, but its hard to imagine that it will handle all pure coding tasks. Even for large tasks that theorhetically can fit into that model, you are going to have to do a lot of thinking and testing and prototyping to figure out the requirements and test cases. In theory you could apply the same task/test process but that seems like it would be too much structure and indirection to actually be helpful compared to knowing how to code. | | |
| ▲ | ruslan_sure 6 days ago | parent [-] | | What if LLMs get 'a mental model of requirements/code behavior'? LLMs may have experts in it, each with its own specialty. You can even combine several LLMs, each doing its own thing: one creates architecture, another writes documentation, a third critiques, a fourth writes code, a fifth creates and updates the "mental model," etc. I agree with the PM role, but with such low requirements that anyone can do it. | | |
| ▲ | chrz 6 days ago | parent [-] | | and each LLM can invent some ridiculous suprise. Who is going to check if it did right thing? |
|
| |
| ▲ | isaacremuant 6 days ago | parent | prev | next [-] | | No. That's the narrow definition of a code monkey who gets told what to do. The good ones wear multiple hats and actually define the problem, learns sufficiently about a domain to interact with it or the experts on said domain and figures out what are the short Vs long term tradeoffs to focus on the value and not just the technical aspect. | |
| ▲ | graycat 7 days ago | parent | prev | next [-] | | "Rules"? An earlier effort at AI was based on rules and the C. Forgy RETE algorithm. Soooo, rules have been tried?? | | |
| ▲ | pjmlp 6 days ago | parent [-] | | C? Rules engines were traditionally written in Prolog or Lisp during the AI wave they were cool. | | |
| ▲ | graycat 6 days ago | parent [-] | | > "C?" Forgy was Charles Forgy. For a "rules engine", there was also IBM's YES/L1. | | |
|
| |
| ▲ | Gehinnn 6 days ago | parent | prev | next [-] | | I wouldn't say "translating", but "finding/constructing a model that satisfies the business rules".
This can be quite hard in some cases, in particular if some business rules are contradicting each other or can be combined in surprisingly complex ways. | |
| ▲ | EGreg 6 days ago | parent | prev [-] | | Programmers maybe But software architects (especially of various reusable frameworks) have to maintain the right set of abstractions and make sure the system is correct and fast, easy to debug, that developers fall into the pit of success etc. Here are just a few major ones, each of which would be a chapter in a book I would write about software engineering: ENVIRONMENTS & WORKFLOWS
Environment Setup
Set up a local IDE with a full clone of the app (frontend, backend, DB).
Use .env or similar to manage config/secrets; never commit them.
Debuggers and breakpoints are more scalable than console.log.
Prefer conditional or version-controlled breakpoints in feature branches.
Test & Deployment Environments
Maintain at least 3 environments: Local (dev), Staging (integration test), Live (production).
Make state cloning easy (e.g., DB snapshots or test fixtures).
Use feature flags to isolate experimental code from production. BUGS & REGRESSIONS
Bug Hygiene
Version control everything except secrets.
Use linting and commit hooks to enforce code quality.
A bug isn’t fixed unless it’s reliably reproducible.
Encourage bug reporters to reset to clean state and provide clear steps.
Fix in Context
Keep branches showing the bug, even if it vanishes upstream.
Always fix bugs in the original context to avoid masking root causes. EFFICIENCY & SCALE
Lazy & On-Demand
Lazy-load data/assets unless profiling suggests otherwise.
Use layered caching: session, view, DB level.
Always bound cache size to avoid memory leaks.
Pre-generate static pages where possible—static sites are high-efficiency caches.
Avoid I/O
Use local computation (e.g., HMAC-signed tokens) over DB hits.
Encode routing/logic decisions into sessionId/clientId when feasible.
Partitioning & Scaling
Shard your data; that’s often the bottleneck.
Centralize the source of truth; replicate locally.
Use multimaster sync (vector clocks, CRDTs) only when essential.
Aim for O(log N) operations; allow O(N) preprocessing if needed. CODEBASE DESIGN
Pragmatic Abstraction
Use simple, obvious algorithms first—optimize when proven necessary.
Producer-side optimization compounds through reuse.
Apply the 80/20 rule: optimize for the common case, not the edge.
Async & Modular
Default to async for side-effectful functions, even if not awaited (in JS).
Namespace modules to avoid globals.
Autoload code paths on demand to reduce initial complexity.
Hooks & Extensibility
Use layered architecture: Transport → Controller → Model → Adapter.
Add hookable events for observability and customization.
Wrap external I/O with middleware/adapters to isolate failures. SECURITY & INTEGRITY
Input Validation & Escaping
Validate all untrusted input at the boundary.
Sanitize input and escape output to prevent XSS, SQLi, etc.
Apply defense-in-depth: validate client-side, then re-validate server-side.
Session & Token Security
Use HMACs or signatures to validate tokens without needing DB access.
Enable secure edge-based filtering (e.g., CDN rules based on token claims).
Tamper Resistance
Use content-addressable storage to detect object integrity.
Append-only logs support auditability and sync. INTERNATIONALIZATION & ACCESSIBILITY
I18n & L10n
Externalize all user-visible strings.
Use structured translation systems with context-aware keys.
Design for RTL (right-to-left) languages and varying plural forms.
Accessibility (A11y)
Use semantic HTML and ARIA roles where needed.
Support keyboard navigation and screen readers.
Ensure color contrast and readable fonts in UI design. GENERAL ENGINEERING PRINCIPLES
Idempotency & Replay
Handlers should be idempotent where possible.
Design for repeatable operations and safe retries.
Append-only logs and hashes help with replay and audit.
Developer Experience (DX)
Provide trace logs, debug UIs, and metrics.
Make it easy to fork, override, and simulate environments.
Build composable, testable components. ADDITIONAL TOPICS WORTH COVERING
Logging & Observability
Use structured logging (JSON, key-value) for easy analysis.
Tag logs with request/session IDs.
Separate logs by severity (debug/info/warn/error/fatal).
Configuration Management
Use environment variables for config, not hardcoded values.
Support override layers (defaults → env vars → CLI → runtime).
Ensure configuration is reloadable without restarting services if possible.
Continuous Integration / Delivery
Automate tests and checks before merging.
Use canary releases and feature flags for safe rollouts.
Keep pipelines fast to reduce friction. | | |
| ▲ | ghurtado 6 days ago | parent [-] | | > a book I would write about software engineering: You should probably go do that, rather than using the comment section of HN as a scratch pad of your stream of consciousness. That's not useful to anyone other than yourself. Is this a copypasta you just have laying around? | | |
| ▲ | MisterMower 6 days ago | parent [-] | | On the flip side, his commment actually contributes to the conversation, unlike yours. Poorly written? Sure. You can keep scrolling though. | | |
| ▲ | ghurtado 6 days ago | parent | next [-] | | > unlike yours If irony was a ton of bricks, you'd be dead | |
| ▲ | motorest 6 days ago | parent | prev [-] | | > On the flip side, his commment actually contributes to the conversation (...) Not really. It goes off on a tangent, and frankly I stopped reading the wall of text because it adds nothing of value. | | |
| ▲ | EGreg 6 days ago | parent [-] | | How would you know if it adds nothing of value if you stopped reading it? :) | | |
| ▲ | actionfromafar 6 days ago | parent | next [-] | | Here let me attach a copy of Wikipedia. Don’t stop reading! :-) | |
| ▲ | motorest 6 days ago | parent | prev [-] | | > How would you know if it adds nothing of value if you stopped reading it? :) If you write a wall of text where the first pages are inane drivel, what do you think are the odds that the rest of that wall of text suddenly adds readable gems? Sometimes a turd is just a turd, and you don't need to analyze all of it to know the best thing to do is to flush it. | | |
| ▲ | EGreg 6 days ago | parent [-] | | Every sentence there is meaningful. You can go 1 by 1. But yea the formatting should be better! | | |
| ▲ | motorest 6 days ago | parent [-] | | > Every sentence there is meaningful. It really isn't. There is no point to pretend it is, and even less of a point to expect anyone should waste their time with an unreadable and incoherent wall of text. You decide how you waste your time, and so does everyone else. | | |
| ▲ | EGreg 6 days ago | parent [-] | | For a developers to know 1. Set up a local IDE with a full clone of the app (frontend, backend, DB). Thus the app must be fully able to run on a small, local environment, which is true of open source apps but not always for for-profit companies 2. Use .env or similar to manage config/secrets; never commit them. A lot of people don’t properly exclude secrets from version control, leading to catastrophic secret leaks. Also when everyone has their own copy, the developer secrets and credentials aren’t that important. 3. Debuggers and breakpoints are more scalable than console.log. Prefer conditional or version-controlled breakpoints in feature branches. A lot of people don’t use debuggers and breakpoints, instead doing logging. Also they have no idea how to maintain DIFFERENT sets of breakpoints, which you can do by checking the project files into version control, and varying them by branches. 4. Test & Deployment Environments Maintain at least 3 environments: Local (dev), Staging (integration test), Live (production). This is fairly standard advice, but it is best practice, so people can test in local and staging. 5. Make state cloning easy (e.g., DB snapshots or test fixtures). This is not trivial. For example downloading a local copy of a test database, to test your local copy of Facebook with a production-style database. Make it fast, eg by rsync mysql innodb files. |
|
|
|
|
|
|
|
|
|
|
| ▲ | mike-cardwell 6 days ago | parent | prev | next [-] |
| > We don't see the debugger output and go "how do I make this bad output go away?!?" In the past, I've worked with developers that do. You ask them to investigate and deal with an error message, and all they do is whatever makes the error go away. Oh, a null pointer exception is thrown? Lets wrap it in a try/catch and move on. |
| |
| ▲ | pc86 6 days ago | parent | next [-] | | If you haven't worked with someone who you honestly think may have a severe learning disability or outright brain damage, you just haven't been working professionally for long enough. | | |
| ▲ | coldtea 6 days ago | parent [-] | | And now we can automate severe learning disability or outright brain damage with LLMs! Yay! |
| |
| ▲ | blauditore 6 days ago | parent | prev | next [-] | | Or google the error message, click first link, blindly copy-paste whatever code snippet comes up and re-run code/test. Yes, such workflows (jobs or) may become obsolete with some of the modern AI tools. Is that a bad thing? Not sure... | |
| ▲ | uoaei 6 days ago | parent | prev | next [-] | | Hiring bad engineers will always be a problem, even (especially) in the age of LLMs. | |
| ▲ | tyleo 6 days ago | parent | prev | next [-] | | Agreed. I’d argue there can be a time and place for it but reaching for it as the default tool on the shelf is a hallmark of incompetence. | |
| ▲ | rafaelmn 6 days ago | parent | prev [-] | | Thankfully those developers are now interchangeable with LLM agents. |
|
|
| ▲ | livid-neuro 7 days ago | parent | prev | next [-] |
| The first cars broke down all the time. They had a limited range. There wasn't a vast supply of parts for them. There wasn't a vast industry of experts who could work on them. There wasn't a vast network of fuel stations to provide energy for them. The horse was a proven method. What an LLM cannot do today is almost irrelevant in the tide of change upon the industry. The fact is, with improvements, it doesn't mean an LLM cannot do it tomorrow. |
| |
| ▲ | Night_Thastus 7 days ago | parent | next [-] | | The difference is that the weaknesses of cars were problems of engineering, and some of infrastructure. Both aren't very hard to solve, though they take time. The fundamental way cars operated worked and just needed revision, sanding off rough edges. LLMs are not like this. The fundamental way they operate, the core of their design is faulty. They don't understand rules or knowledge. They can't, despite marketing, really reason. They can't learn with each interaction. They don't understand what they write. All they do is spit out the most likely text to follow some other text based on probability. For casual discussion about well-written topics, that's more than good enough. But for unique problems in a non-English language, it struggles. It always will. It doesn't matter how big you make the model. They're great for writing boilerplate that has been written a million times with different variations - which can save programmers a LOT of time. The moment you hand them anything more complex it's asking for disaster. | | |
| ▲ | programd 7 days ago | parent | next [-] | | > [LLMs] spit out the most likely text to follow some other text based on probability. Modern coding AI models are not just probability crunching transformers. They haven't been just that for some time. In current coding models the transformer bit is just one part of what is really an expert system. The complete package includes things like highly curated training data, specialized tokenizers, pre and post training regimens, guardrails, optimized system prompts etc, all tuned to coding. Put it all together and you get one shot performance on generating the type of code that was unthinkable even a year ago. The point is that the entire expert system is getting better at a rapid pace and the probability bit is just one part of it. The complexity frontier for code generation keeps moving and there's still a lot of low hanging fruit to be had in pushing it forward. > They're great for writing boilerplate that has been written a million times with different variations That's >90% of all code in the wild. Probably more. We have three quarters of a century of code in our history so there is very little that's original anymore. Maybe original to the human coder fresh out of school, but the models have all this history to draw upon. So if the models produce the boilerplate reliably then human toil in writing if/then statements is at an end. Kind of like - barring the occasional mad genious [0] - the vast majority of coders don't write assembly to create a website anymore. [0] https://asm32.info/index.cgi?page=content/0_MiniMagAsm/index... | | |
| ▲ | motorest 6 days ago | parent | next [-] | | > Modern coding AI models are not just probability crunching transformers. (...) The complete package includes things like highly curated training data, specialized tokenizers, pre and post training regimens, guardrails, optimized system prompts etc, all tuned to coding. It seems you were not aware you ended up describing probabilistic coding transformers. Each and every single one of those details are nothing more than strategies to apply constraints to the probability distributions used by the probability crunching transformers. I mean, read what you wrote: what do you think that "curated training data" means? > Put it all together and you get one shot performance on generating the type of code that was unthinkable even a year ago. This bit here says absolutely nothing. | |
| ▲ | leptons 6 days ago | parent | prev | next [-] | | >The complete package includes things like highly curated training data, specialized tokenizers, pre and post training regimens, guardrails, optimized system prompts etc, all tuned to coding. And even with all that, they still produce garbage way too often. If we continue the "car" analogy, the car would crash randomly sometimes when you leave the driveway, and sometimes it would just drive into the house. So you add all kinds of fancy bumpers to the car and guard rails to the roads, and the car still runs off the road way too often. | |
| ▲ | mgaunard 6 days ago | parent | prev | next [-] | | Except we should aim to reduce the boilerplate through good design, instead of creating more of it on an industrial scale. | | |
| ▲ | patrickmay 6 days ago | parent | next [-] | | I regret that I have but one upvote to give to this comment. Every time someone says "LLMs are good at boilerplate" my immediate response is "Why haven't you abstracted away the boilerplate?" | |
| ▲ | exe34 6 days ago | parent | prev [-] | | what we should and what we are forced to do are very different things. if I can get a machine to do the stuff I hate dealing with, I'll take it every time. | | |
| ▲ | mgaunard 6 days ago | parent | next [-] | | who's going to be held accountable when the boilerplate fails? the AI? | | |
| ▲ | danielbln 6 days ago | parent | next [-] | | The buck stops with the engineer, always. AI or no AI. | | |
| ▲ | mgaunard 5 days ago | parent [-] | | I've seen juniors send AI code for review, when I comment on weird things within it, it's just "I don't know, the AI did that" | | |
| ▲ | danielbln 5 days ago | parent [-] | | Oh, me too. And I reject them as the same as if they had copied code from Stack Overflow they can't explain. |
|
| |
| ▲ | exe34 6 days ago | parent | prev [-] | | no, I'm testing it the same way I test my own code! | | |
| |
| ▲ | skydhash 6 days ago | parent | prev [-] | | It's like the xkcd on automation https://xkcd.com/1205/ After a while, it just make sense to redesign the boilerplate and build some abstraction instead. Duplicated logic and data is hard to change and fix. The frustration is a clear signal to take a step back and take an holistic view of the system. | | |
| ▲ | gibbitz a day ago | parent [-] | | And this is a great example of something I rarely see LLMs doing. I think we're approaching a point where we will use LLMs to manage code the way we use React to manage the DOM. You need an update to a feature? The LLM will just recode it wholesale. All of the problems we have in software development will dissolve in mountains of disposable code. I could see enterprise systems being replaced hourly for security reasons. Less chance of abusing a vulnerability if it only exists for an hour to find and exploit. Since the popularity of LLMs proves that as a society we've stopped caring about quality, I have a hard time seeing any other future. |
|
|
| |
| ▲ | Night_Thastus 7 days ago | parent | prev [-] | | >In current coding models the transformer bit is just one part of what is really an expert system. The complete package includes things like highly curated training data, specialized tokenizers, pre and post training regimens, guardrails, optimized system prompts etc, all tuned to coding. Put it all together and you get one shot performance on generating the type of code that was unthinkable even a year ago. This is lipstick on a pig. All those methods are impressive, but ultimately workarounds for an idea that is fundamentally unsuitable for programming. >That's >90% of all code in the wild. Probably more. Maybe, but not 90% of time spent on programming. Boilerplate is easy. It's the 20%/80% rule in action. I don't deny these tools can be useful and save time - but they can't be left to their own devices. They need to be tightly controlled and given narrow scopes, with heavy oversight by an SME who knows what the code is supposed to be doing. "Design W module with X interface designed to do Y in Z way", keeping it as small as possible and reviewing it to hell and back. And keeping it accountable by making tests yourself. Never let it test itself, it simply cannot be trusted to do so. LLMs are incredibly good at writing something that looks reasonable, but is complete nonsense. That's horrible from a code maintenance perspective. |
| |
| ▲ | motorest 6 days ago | parent | prev | next [-] | | > For casual discussion about well-written topics, that's more than good enough. But for unique problems in a non-English language, it struggles. It always will. It doesn't matter how big you make the model. Not to disagree, but "non-english" isn't exactly relevant. For unique problems, LLMs can still manage to output hallucinations that end up being right or useful. For example, LLMs can predict what an API looks like and how it works even if they do not have the API in context if the API was designed following standard design principles and best practices. LLMs can also build up context while you interact with them, which means that iteratively prompting them that X works while Y doesn't will help them build the necessary and sufficient context to output accurate responses. | | |
| ▲ | windward 6 days ago | parent | next [-] | | >hallucinations This is the first word that came to mind when reading the comment above yours. Like: >They can't, despite marketing, really reason They aren't, despite marketing, really hallucinations. Now I understand why these companies don't want to market using terms like "extrapolated bullshit", but I don't understand how there is any technological solution to it without starting from a fresh base. | | |
| ▲ | motorest 6 days ago | parent [-] | | > They aren't, despite marketing, really hallucinations. They are hallucinations. You might not be aware of what that concept means in terms of LLMs but just because you are oblivious to the definition of a concept that does not mean it doesn't exist. You can learn about the concept by spending a couple of minutes reading this article on Wikipedia. https://en.wikipedia.org/wiki/Hallucination_(artificial_inte... > Now I understand why these companies don't want to market using terms like "extrapolated bullshit", (...) That's literally in the definition. Please do yourself a favour and get acquainted with the topic before posting comments. | | |
| ▲ | zahlman 5 days ago | parent | next [-] | | > You might not be aware of what that concept means in terms of LLMs GP is perfectly aware of this, and disagrees that the metaphor used to apply the term is apt. Just because you use a word to describe a phenomenon doesn't actually make the phenomenon similar to others that were previously described with that word, in all the ways that everyone will find salient. When AIs generate code that makes a call to a non-existent function, it's not because they are temporarily mistakenly perceiving (i.e., "hallucinating") that function to be mentioned in the documentation. It's because the name they've chosen for the function fits their model for what a function that performs the necessary task might be called. And even that is accepting that they model the task itself (as opposed to words and phrases that describe the task) and that they somehow have the capability to reason about that task, which has somehow arisen from a pure language model (whereas humans can, from infancy, actually observe reality, and contemplate the effect of their actions upon the real world around them). Knowing that e.g. the word "oven" often follows the word "hot" is not, in fact, tantamount to understanding heat. In short, they don't perceive, at all. So how can they be mistaken in their perception? | |
| ▲ | windward 6 days ago | parent | prev [-] | | That page was made in December 2022, requires specifying '(artificial intelligence)' and says: >(also called bullshitting,[1][2] confabulation,[3] or delusion)[4] Here's the first linked source: https://www.psypost.org/scholars-ai-isnt-hallucinating-its-b... | | |
| ▲ | motorest 6 days ago | parent [-] | | > That page was made in December 2022, (...) Irrelevant. Wikipedia does not create concepts. Again, if you take a few minutes to learn about the topic you will eventually understand the concept was coined a couple of decades ago, and has a specific meaning. Either you opt to learn, or you don't. Your choice. > Here's the first linked source: Irrelevant. Your argument is as pointless and silly as claiming rubber duck debugging doesn't exist because no rubber duck is involved. | | |
| ▲ | windward 6 days ago | parent [-] | | Uh oh! Let me spend a few minutes to learn about the topic. Thankfully, a helpful Hacker News user has linked me to a useful resource. I will follow one of the linked sources to the paper 'ChatGPT is bullshit' >Hicks, M.T., Humphries, J. and Slater, J. (2024). ChatGPT is bullshit. Ethics and information technology, 26(2). doi:https://doi.org/10.1007/s10676-024-09775-5. Hicks et al. note: >calling their mistakes ‘hallucinations’ isn’t harmless: it lends itself to the confusion that the machines are in some way misperceiving but are nonetheless trying to convey something that they believe or have perceived. What an enlightening input. I will now follow another source, 'Why ChatGPT and Bing Chat are so good at making things up' >Edwards, B. (2023). Why ChatGPT and Bing Chat are so good at making things up. [online] Ars Technica. Available at: https://arstechnica.com/information-technology/2023/04/why-a.... Edwards notes: >In academic literature, AI researchers often call these mistakes "hallucinations." But that label has grown controversial as the topic becomes mainstream because some people feel it anthropomorphizes AI models (suggesting they have human-like features) or gives them agency (suggesting they can make their own choices) in situations where that should not be implied. The creators of commercial LLMs may also use hallucinations as an excuse to blame the AI model for faulty outputs instead of taking responsibility for the outputs themselves. >Still, generative AI is so new that we need metaphors borrowed from existing ideas to explain these highly technical concepts to the broader public. In this vein, we feel the term "confabulation," although similarly imperfect, is a better metaphor than "hallucination." In human psychology, a "confabulation" occurs when someone's memory has a gap and the brain convincingly fills in the rest without intending to deceive others. ChatGPT does not work like the human brain, but the term "confabulation" arguably serves as a better metaphor because there's a creative gap-filling principle at work It links to a tweet from someone called 'Yann LeCun': >Future AI systems that are factual (do not hallucinate)[...] will have a very different architecture from the current crop of Auto-Regressive LLMs. That was an interesting diversion, but let's go back to learning more. How about 'AI Hallucinations: A Misnomer Worth Clarifying'? >Maleki, N., Padmanabhan, B. and Dutta, K. (2024). AI Hallucinations: A Misnomer Worth Clarifying. 2024 IEEE Conference on Artificial Intelligence (CAI). doi:https://doi.org/10.1109/cai59869.2024.00033. Maleki et al. say: >As large language models continue to advance in Artificial Intelligence (AI), text generation systems have been shown to suffer from a problematic phenomenon often termed as "hallucination." However, with AI’s increasing presence across various domains, including medicine, concerns have arisen regarding the use of the term itself. [...] Our results highlight a lack of consistency in how the term is used, but also help identify several alternative terms in the literature. Wow, how interesting! I'm glad I opted to learn that! My fun was spoiled though. I tried following a link to the 1995 paper, but it was SUPER BORING because it didn't say 'hallucinations' anywhere! What a waste of effort, after I had to go to those weird websites just to be able to access it! I'm glad I got the opportunity to learn about Hallucinations (Artificial Intelligence) and how they are meaningfully different from bullshit, and how they can be avoided in the future. Thank you! |
|
|
|
| |
| ▲ | withinboredom 6 days ago | parent | prev [-] | | > Not to disagree, but "non-english" isn't exactly relevant. how so? programs might use english words but are decidedly not english. | | |
| ▲ | motorest 6 days ago | parent [-] | | > how so? programs might use english words but are decidedly not english. I pointed out the fact that the concept of a language doesn't exist in token predictors. They are trained with a corpus, and LLMs generate outputs that reflect how the input is mapped in accordance to how the were trains with said corpus. Natural language makes the problem harder, but not being English is only relevant in terms of what corpus was used to train them. |
|
| |
| ▲ | mfbx9da4 6 days ago | parent | prev | next [-] | | How can you tell a human actually understands? Prove to me that human thought is not predicting the most probable next token. If it quacks like duck. In psychology research the only way to research if a human is happy is to ask them. | | |
| ▲ | alpaca128 6 days ago | parent | next [-] | | Does speaking in your native language, speaking in a second language, thinking about your life and doing maths feel exactly the same to you? > Prove to me that human thought is not predicting the most probable next token. Explain the concept of color to a completely blind person. If their brain does nothing but process tokens this should be easy. > How can you tell a human actually understands? What a strange question coming from a human. I would say if you are a human with a consciousness you are able to answer this for yourself, and if you aren't no answer will help. | | |
| ▲ | randallsquared 6 days ago | parent [-] | | > What a strange question coming from a human. Oh, I dunno. The whole "mappers vs packers" and "wordcels vs shape rotators" dichotomies point at an underlying truth, which is that humans don't always actually understand what they're talking about, even when they're saying all the "right" words. This is one reason why tech interviewing is so difficult: it's partly a task of figuring out if someone understands, or has just learned the right phrases and superficial exercises. |
| |
| ▲ | 0xak 6 days ago | parent | prev [-] | | That is ill-posed. Take any algorithm at all, e.g. a TSP solver. Make a "most probable next token predictor" that takes the given traveling salesman problem, runs the solver, and emits the first token of the solution, then reruns the solver and emits the next token, and so on. By this thought experiment you can make any computational process into "predict the most probable next token" - at an extreme runtime cost. But if you do so, you arguably empty the concept "token predictor" of most of its meaning. So you would need to more accurately specify what you mean by a token predictor so that the answer isn't trivially true (for every kind of thought that's computation-like). |
| |
| ▲ | exe34 6 days ago | parent | prev | next [-] | | I take it you haven't tried an LLM in a few years? | | |
| ▲ | Night_Thastus 6 days ago | parent [-] | | Just a couple of weeks ago on mid-range models. The problem is not implementation or refinement - the core idea is fundamentally flawed. | | |
| ▲ | nativeit 6 days ago | parent | next [-] | | The problem is we’re now arguing with religious zealots. I am not being sarcastic. | | |
| ▲ | gibbitz a day ago | parent | next [-] | | I feel this way about Typescript too. There are a lot of people in engineering these days who don't think critically or exercise full observation when using popular technologies. I don't feel like it was like this 15 years ago, but it probably was... | |
| ▲ | oinfoalgo 6 days ago | parent | prev | next [-] | | I actually don't know if you are referring to anti-LLM/"ai slop" software engineers or irrationally bullish LLM "the singularity is near" enthusiast. Religious fervor in one's own opinion on the state of the world seems to be the zeitgeist. | |
| ▲ | exe34 6 days ago | parent | prev [-] | | that's correct. those who believe only carbon can achieve intelligence. | | |
| ▲ | windward 6 days ago | parent | next [-] | | This stops being an interesting philosophical problem when you recognise the vast complexity of animal brains that LLMs fail to replicate or substitute. | |
| ▲ | shkkmo 6 days ago | parent | prev | next [-] | | If you stereotype the people who disagree with you, you'll have a very hard time understanding their actual arguments. | | |
| ▲ | exe34 6 days ago | parent [-] | | I stopped finding those arguments entertaining after a while. It always ends up "there's something that will always be missing, I just know it, but I won't tell you what. I'm just willing to go round and round in circles." | | |
| ▲ | gibbitz a day ago | parent | next [-] | | Don't forget the part where they don't listen to or engage with counter arguments. That's a popular one. | |
| ▲ | shkkmo 5 days ago | parent | prev [-] | | People who are certain that computers can't replicate human level intelligence aren't being intellectually rigourous. The same applies to people who are certain computers can replicate human level intelligence. We can make arguments for informed guesses but there are simply still too many unknowns to be certain either way. People who claim to be certain are just being presumptuous. | | |
| ▲ | exe34 5 days ago | parent [-] | | > The same applies to people who are certain computers can replicate human level intelligence. that's the thing, I'm not certain that "computers" can replicate human level intelligence. for one that statement would have to include a rigorous definition of what a computer is and what is excluded. no, I just don't buy the idea that human level intelligence is only achievable in human born meatbags. at this point the only evidence has been "look, birds flap their wings and man doesn't have wings, therefore man will never fly". | | |
| ▲ | gibbitz a day ago | parent [-] | | If we could design a human would we design them with menstrual cycles? Why would we even target human intelligence. Feels like setting the bar low and not being very creative...
Seriously, the human brain is susceptible to self stroking patterns that result in disordered thinking. We spend inordinate amounts of energy daydreaming, and processing visual and auditory stimulus. We require sleep and don't fully understand why. So why would we target human intelligence? Propaganda. Anyone worried about losing their livelihood to automation is going to take notice. AI has the place in the zeitgeist today that Robots occupied in the 1980s and for the same reason. The wealthy and powerful can see the power it has socially right now and they are doing whatever they can to leverage it. It's why they don't call it LLMs but AI because AI is scarier. It's why all the tech bro CEOs signed the "pause" letter. If this was about man flying we would be making an airplane instead of talking about how the next breakthrough will make us all into angels. LLMs are clever inventions they're just not independently clever. |
|
|
|
| |
| ▲ | melagonster 6 days ago | parent | prev [-] | | Yes, Carbon do not give them human rights. |
|
| |
| ▲ | exe34 6 days ago | parent | prev [-] | | why not the top few? mid-range is such a cop out if you're going to cast doubt. | | |
| ▲ | Night_Thastus 6 days ago | parent [-] | | Realistically, most people are not going to be on top end models. They're expensive and will get far, far FAR more expensive once these companies feel they're sufficiently entrenched enough to crank up pricing. It's basically the silicon valley playbook to offer a service for dirt cheap (completely unprofitable) and then once they secure the market they make skyrocket the price. A mid range model is what most people will be able to use. | | |
| ▲ | exe34 5 days ago | parent [-] | | If you want to know what's possible, you look at the frontier models. If you want it cheap, you wait a year and it'll get distilled into the cheaper ones. |
|
|
|
| |
| ▲ | bitwize 6 days ago | parent | prev [-] | | > LLMs are not like this. The fundamental way they operate, the core of their design is faulty. They don't understand rules or knowledge. They can't, despite marketing, really reason. They can't learn with each interaction. They don't understand what they write. Said like a true software person. I'm to understand that computer people are looking at LLMs from the wrong end of the telescope; and that from a neuroscience perspective, there's a growing consensus among neuroscientists that the brain is fundamentally a token predictor, and that it works on exactly the same principles as LLMs. The only difference between a brain and an LLM maybe the size of its memory, and what kind and quality of data it's trained on. | | |
| ▲ | Night_Thastus 6 days ago | parent | next [-] | | >from a neuroscience perspective, there's a growing consensus among neuroscientists that the brain is fundamentally a token predictor, and that it works on exactly the same principles as LLMs Hahahahahaha. Oh god, you're serious. Sure, let's just completely ignore all the other types of processing that the brain does. Sensory input processing, emotional regulation, social behavior, spatial reasoning, long and short term planning, the complex communication and feedback between every part of the body - even down to the gut microbiome. The brain (human or otherwise) is incredibly complex and we've barely scraped the surface of how it works. It's not just nuerons (which are themselves complex), it's interactions between thousands of types of cells performing multiple functions each. It will likely be hundreds of years before we get a full grasp on how it truly works - if we ever do at all. | | |
| ▲ | N_Lens 5 days ago | parent [-] | | Reminds me of that old chestnut - “if the human brain were simpler to understand, we wouldn’t be smart enough to do so” |
| |
| ▲ | fzeroracer 6 days ago | parent | prev | next [-] | | > The only difference between a brain and an LLM maybe the size of its memory, and what kind and quality of data it's trained on. This is trivially proven false, because LLMs have far larger memory than your average human brain and are trained on far more data. Yet they do not come even close to approximating human cognition. | | |
| ▲ | alternatex 6 days ago | parent [-] | | >are trained on far more data I feel like we're underestimating how much data we as humans are exposed to. There's a reason AI struggles to generate an image of a full glass of wine. It has no concept of what wine is. It probably knows way more theory about it than any human, but it's missing the physical. In order to train AIs the way we train ourselves, we'll need to give it more senses, and I'm no data scientist but that's presumably an inordinate amount of data. Training AI to feel, smell, see in 3D, etc is probably going to cost exponentially more than what the AI companies make now or ever will. But that is the only way to make AI understand rather than know. We often like to state how much more capacity for knowledge AI has than the average human, but in reality we are just underestimating ourselves as humans. | | |
| ▲ | gibbitz a day ago | parent [-] | | I think this conversation is dancing around the relationship of memory and knowledge. Simply storing information is different than knowing it. One of you is thinking book learning while the other is thinking street smarts. |
|
| |
| ▲ | zahlman 5 days ago | parent | prev | next [-] | | > and that from a neuroscience perspective, there's a growing consensus among neuroscientists that the brain is fundamentally a token predictor, and that it works on exactly the same principles as LLMs Can you cite at least one recognized, credible neuroscientist who makes this claim? | |
| ▲ | imtringued 6 days ago | parent | prev | next [-] | | Look you don't have to lie at every opportunity you get. You are fully aware and know what you've written is bullshit. Tokens are a highly specific transformer exclusive concept. The human brain doesn't run a byte pair encoding (BPE) tokenizer [0] in their head. anything as tokens. It uses asynchronous time varying spiking analog signals. Humans are the inventors of human languages and are not bound to any static token encoding scheme, so this view of what humans do as "token prediction" requires either a gross misrepresentation of what a token is or what humans do. If I had to argue that humans are similar to anything in machine learning research specifically, I would have to argue that they extremely loosely follow the following principles: * reinforcement learning with the non-brain parts defining the reward function (primarily hormones and pain receptors) * an extremely complicated non-linear kalman filter that not only estimates the current state of the human body, but also "estimates" the parameters of a sensor fusing model * there is a necessary projection of the sensor fused result that then serves as available data/input to the reinforcement learning part of the brain Now here are two big reasons why the model I describe is a better fit: The first reason is that I am extremely loose and vague. By playing word games I have weaseled myself out of any specific technology and am on the level of concepts. The second reason is that the kalman filter concept here is general enough that it also includes predictor models, but the predictor model here is not the output that drives human action, because that would logically require the dataset to already contain human actions, which is what you did, you assume that all learning is imitation learning. In my model, any internal predictor model that is part of the kalman filter is used to collect data, not drive human action. Actions like eating or drinking are instead driven by the state of the human body, e.g. hunger is controlled through leptin and insulin and others. All forms of work, no matter how much of a detour it represents, ultimately has the goal of feeding yourself or your family (=reproduction). [0] A BPE tokenizer is a piece of human written software that was given a dataset to generate an efficient encoding scheme and the idea itself is completely independent of machine learning and neural networks. The fundamental idea behind BPE is that you generate a static compression dictionary and never change it. | | |
| ▲ | zahlman 5 days ago | parent [-] | | > Look you don't have to lie at every opportunity you get. You are fully aware and know what you've written is bullshit. As much as I may agree with your subsequent claims, this is not how users are expected to engage with each other on HN. |
| |
| ▲ | N_Lens 5 days ago | parent | prev [-] | | You seem to be an LLM |
|
| |
| ▲ | jerf 7 days ago | parent | prev | next [-] | | AI != LLM. We can reasonably speak about certain fundamental limitations of LLMs without those being claims about what AI may ever do. I would agree they fundamentally lack models of the current task and that it is not very likely that continually growing the context will solve that problem, since it hasn't already. That doesn't mean there won't someday be an AI that has a model much as we humans do. But I'm fairly confident it won't be an LLM. It may have an LLM as a component but the AI component won't be primarily an LLM. It'll be something else. | | |
| ▲ | xenadu02 7 days ago | parent | next [-] | | Every AI-related invention is hyped as "intelligence" but turns out to be "Necessary but Not Sufficient" for true intelligence. Neural networks are necessary but not sufficient. LLMs are necessary but not sufficient. I have no doubt that there are multiple (perhaps thousands? more?) of LLM-like subsystems in our brains. They appear to be a necessary part of creating useful intelligence. My pet theory is that LLMs are used for associative memory purposes. They help generate new ideas and make predictions. They extract information buried in other memory. Clearly there is another system on top that tests, refines, and organizes the output. And probably does many more things we haven't even thought to name yet. | | |
| ▲ | Ferret7446 6 days ago | parent | next [-] | | Most adult humans don't have "true intelligence" so I don't quite get the point | | |
| ▲ | Jensson 6 days ago | parent [-] | | What do you mean? Most adult humans can learn to drive a car, book a plain ticket, get a passport, fly abroad, navigate in a foreign country etc. There is a variation in human intelligence, but almost all humans are very intelligent compared to everything else we know about. |
| |
| ▲ | JackFr 7 days ago | parent | prev [-] | | > Every AI-related invention is hyped as "intelligence" but turns out to be "Necessary but Not Sufficient" for true intelligence. Alternatively, the goalposts keep being moved. | | |
| ▲ | xenadu02 a day ago | parent | next [-] | | I don't think we fully understand all the aspects of intelligence. What the potential feature set is. How to categorize or break it down into parts. We have some data and some categories but we are so far away from a full description that it only makes sense we must move the goalposts constantly. | |
| ▲ | ezst 6 days ago | parent | prev [-] | | Not really, only "merchants" are trying to package and sell LLMs as "artificial intelligence". To this day AI still very much is the name of a research field focused on computational methods: it's not a discovery, it's not a singular product or tool at or disposal (or it is in no greater capacity than Markov chains, support vector machines or other techniques that came before). If you ever expect the goalposts to settle, you are essentially wishing for research to stop. | | |
| ▲ | ithkuil 6 days ago | parent [-] | | Both things can be true: 1. People are trying to sell a product that is not ready and thus are overhyping it 2. The tech is in its early days and may evolve into something useful via refinement and not necessarily by some radical paradigm shift In order for (2) to happen it helps if the field is well motivated and funded (1) |
|
|
| |
| ▲ | lbrandy 7 days ago | parent | prev | next [-] | | > has a model much as we humans do The premise that an AI needs to do Y "as we do" to be good at X because humans use Y to be good at X needs closer examination. This presumption seems to be omnipresent in these conversations and I find it so strange. Alpha Zero doesn't model chess "the way we do". | | |
| ▲ | klabb3 6 days ago | parent | next [-] | | Both that, and that we should not expect LLMs to achieve ability with humans as baseline comparison. It’s as if cars were rapidly getting better due to some new innovation, and expecting them to fly within a year. It’s a new, and different thing, where the universality of ”plausibly sounding” coherent text appeared to be general, when it’s advanced pattern matching. Nothing wrong with that, pattern matching is extremely useful, but drawing the equal sign to human cognition is extremely premature, and a bet that is very likely be wrong. | |
| ▲ | shkkmo 6 days ago | parent | prev [-] | | Alpha Zero is not trying to be AGI. > The premise that an AI needs to do Y "as we do" to be good at X because humans use Y to be good at X needs closer examination. I don't see it being used as a premise. It see it as speculation that is trying to understand why this type of AI underperforms at certain types of tasks. Y may not be necessary to do X well, but if a system is doing X poorly and the difference between that system and another system seems to be Y, it's worth exploring if adding Y would improve the performance. |
| |
| ▲ | byteknight 7 days ago | parent | prev [-] | | I have to disagree. Anyone that says LLMs do not qualify as AI are the same people who will continue to move the goal posts for AGI. "Well it doesn't do this!". No one here is trying to replicate a human brain or condition in its entirety. They just want to replicate the thinking ability of one. LLMs represent the closest parallel we have experienced thus far to that goal. Saying that LLMs are not AI feel disingenuous at best and entirely purposely dishonest at the worst (perhaps perceived as staving off the impending demise of a profession). The sooner people stop worrying about a label for what you feel fits LLMs best, the sooner they can find the things they (LLMs) absolutely excel at and improve their (the user's) workflows. Stop fighting the future. Its not replacing right now. Later? Maybe. But right now the developers and users fully embracing it are experiencing productivity boosts unseen previously. Language is what people use it as. | | |
| ▲ | sarchertech 7 days ago | parent | next [-] | | > the developers and users fully embracing it are experiencing productivity boosts unseen previously This is the kind of thing that I disagree with. Over the last 75 years we’ve seen enormous productivity gains. You think that LLMs are a bigger productivity boost than moving from physically rewiring computers to using punch cards, from running programs as batch processes with printed output to getting immediate output, from programming in assembly to higher level languages, or even just moving from enterprise Java to Rails? | | |
| ▲ | skydhash 6 days ago | parent | next [-] | | Even learning your current $EDITOR and $SHELL can be a great productivity booster. I see people claiming AI is helping them and you see them hunting for files in the file manager tree instead of using `grep` or `find` (Unix). | |
| ▲ | Espressosaurus 7 days ago | parent | prev | next [-] | | Or the invention of the container, or hell, the invention of the filing cabinet (back when computer was a job) | |
| ▲ | 7 days ago | parent | prev [-] | | [deleted] |
| |
| ▲ | overgard 7 days ago | parent | prev | next [-] | | The studies I've seen for AI actually improving productivity are a lot more modest than what the hype would have you believe. For example: https://www.youtube.com/watch?v=tbDDYKRFjhk Skepticism isn't the same thing as fighting the future. I will call something AGI when it can reliably solve novel problems it hasn't been pre-trained on. That's my goal post and I haven't moved it. | |
| ▲ | jerf 6 days ago | parent | prev | next [-] | | != is "not equal". The symbol for "not a subset of" is ⊄, which you will note, I did not use. | | |
| ▲ | byteknight 6 days ago | parent [-] | | I think you replied in the wrong place, bud. All the best. EDIT - I see now. sorry. For all intents and purposes of the public. AI == LLM. End of story. Doesn't matter what developers say. | | |
| ▲ | marcus_holmes 6 days ago | parent [-] | | > For all intents and purposes of the public. AI == LLM. End of story. Doesn't matter what developers say. This is interesting, because it's so clearly wrong. The developers are also the people who develop the LLMs, so obviously what they say is actually the factual matter of the situation. It absolutely does matter what they say. But the public perception is that AI == LLM, agreed. Until it changes and the next development comes along, when suddenly public perception will change and LLMs will be old news, obviously not AI, and the new shiny will be AI. So not End of Story. People are morons. Individuals are smart, intelligent, funny, interesting, etc. But in groups we're moronic. |
|
| |
| ▲ | oinfoalgo 6 days ago | parent | prev | next [-] | | In cybernetics, this label has existed for a long time. Unfortunately, discourse has followed an epistemic trajectory influenced by Hollywood and science fiction, making clear communication on the subject nearly impossible without substantial misunderstanding. | |
| ▲ | leptons 6 days ago | parent | prev | next [-] | | So when an LLM all-too-often produces garbage, can we then call it "Artificial Stupidity"? | | |
| ▲ | byteknight 6 days ago | parent [-] | | Not sure how that fits. Do you produce good results every time, first try? Didn't think so. | | |
| ▲ | leptons 6 days ago | parent [-] | | >Do you produce good results every time, first try? Almost always, yes, because I know what I'm doing and I have a brain that can think. I actually think before I do anything, which leads to good results. Don't assume everyone is a junior. >Didn't think so. You don't know me at all. | | |
| ▲ | neoromantique 6 days ago | parent | next [-] | | Sr. "human" here. If you always use your first output then you are not a senior engineer, either your problem space is THAT simple that you can fit all your context in your head at the same time first try, or quite frankly you just bodge things together in non-optimal way. It always takes some tries at a problem to grasp edge cases and to easier visualize the problem space. | | |
| ▲ | Jensson 6 days ago | parent [-] | | Depends on how you define "try". If someone asks me to do something I don't come back with a buggy piece of garbage and say "here, I'm done!", the first deliverable will be a valid one, or I'll say I need more to do it. |
| |
| ▲ | danielbln 6 days ago | parent | prev [-] | | Here you have it folks, seniors don't make mistakes. | | |
| ▲ | Jensson 6 days ago | parent [-] | | When I'm confident something will work it almost always works, that is very different from these models. Sure sometimes I do stuff I am not confident about to learn but then I don't say "here I solved the problem for you" without building confidence around the solution first. Every competent senior engineer should be like this, if you aren't then you aren't competent. If you are confident in a solution then it should almost always work, else you are over confident and thus not competent. LLM are confident in solutions that are shit. |
|
|
|
| |
| ▲ | parineum 7 days ago | parent | prev | next [-] | | > Anyone that says LLMs do not qualify as AI are the same people who will continue to move the goal posts for AGI. I have the complete opposite feeling. The layman understanding of the term "AI" is AGI, a term that only needs to exist because researchers and businessmen hype their latest creations as AI. The goalposts for AI don't move but the definition isn't precise but we know it when we see it. AI, to the layman, is Skynet/Terminator, Asimov's robots, Data, etc. The goalposts moving that you're seeing is when something the tech bubble calls AI escapes the tech bubble and everyone else looks at it and says, no, that's not AI. The problem is that everything that comes out of the research efforts toward AI, the tech industry calls AI despite it not achieving that goal by the common understanding of the term. LLMs were/are a hopeful AI candidate but, as of today, they aren't but that doesn't stop OpenAI from trying to raise money using the term. | | |
| ▲ | shkkmo 6 days ago | parent | next [-] | | AI has had many, many lay meanings over the years. Simplistic decision trees and heuristics for video games is called AI. It is a loose term and trying to apply it with semantic rigour is useless, as is trying to tell people that it should only be used to match one of its many meanings. If you want some semantic rigour use more specific terms like AGI, human equivalent AGI, super human AGI, exponentially self improving AGI, etc. Even those labels lack rigour, but at least they are less ambiguous. LLMs are pretty clearly AI and AGI under commonly understood, lay definitions. LLMs are not human level AGI and perhaps will never be by themselves. | | |
| ▲ | parineum 5 days ago | parent [-] | | > LLMs are pretty clearly AI and AGI under commonly understood, lay definitions. That's certainly not clear. For starters, I don't think there is a lay definition of AGI which is largely my point. The only reason people are willing to call LLMs AI is because that's how they are being sold and the shine isn't yet off the rose. How many people call Siri AI? It used to be but people have had time to feel around the edges where it fails to meet their expectations of AI. You can tell what people think of AI by the kind of click bait surrounding LLMs. I read an article not too long ago with the headline about an LLM lying to try and not be turned off. Turns out it was intentionally prompted to do that but the point is that that kind of self preservation is what people expect of AI. Implicitly, they expect that AI has a "self". ChatGPT doesn't have a self. | | |
| ▲ | shkkmo 5 days ago | parent [-] | | AI and AGI are broad umbrella terms. Stuff like Alpha Zero is AI but not AGI while LLMs are both. Engaging in semantic battles to try to change the meanings of those terms is just going to create more confusion, not less. Instead why not use more specific and descriptive labels to be clear about what you are saying. Self-Aware AGI, Human Level AGI, Super-Human ANI, are all much more useful than trying to force general label to be used a specific way. | | |
| ▲ | parineum 5 days ago | parent [-] | | > Engaging in semantic battles to try to change the meanings of those terms is just going to create more confusion You're doing that. I've never seen someone state, as fact, that LLMs are AGI before now. Go ask someone on the street what Super-Human ANI means. | | |
| ▲ | shkkmo 5 days ago | parent [-] | | > I've never seen someone state, as fact, that LLMs are AGI before now. Then you probably haven't been paying attention. https://deepmind.google/research/publications/66938/ > I've never seen someone state, as fact, that LLMs are AGI before now. Many LLMs are AI that weren't designed / trained to solve a narrow problem scope. They can complete a wide range of tasks with varying levels of proficiency. That makes them artificial general intelligence or AGI. You are confused because lots of people use "AGI" as a shorthand to talk about "human level" AGI that isn't limited to a narrow problem scope. It's not wrong to use the term this way, but it is ambiguous and vague. Even the term "human level" is poorly defined and if I wanted to use the term "Human level AGI" for any kind of discussion of what qualifies, I'd need to specify how I was defining that. | | |
| ▲ | parineum 5 days ago | parent [-] | | I'm not confused at all. Your own personal definitions just further my point that tech people have a much different classification system that the general populous and that the need for those excessive classifications is that way ambitious CEOs keep using the term incorrectly in order to increase share prices. It's actually very funny to me that you are stating these definitions so authoritatively despite the terms not having any sort if rigor attached to either their definition or usage. | | |
| ▲ | shkkmo 3 days ago | parent [-] | | > It's actually very funny to me that you are stating these definitions so authoritatively despite the terms not having any sort if rigor attached to either their definition or usage. Huh? My entire point was that AI and AGI are loose, vague terms and if you want to be clear about what you are talkng about, you should use more specific terms. |
|
|
|
|
|
| |
| ▲ | byteknight 6 days ago | parent | prev [-] | | "Just ask AI" is a phrase you will hear around enterprises now. You less often hear "Google it". You hear "ChatGPT it". |
| |
| ▲ | imiric 6 days ago | parent | prev [-] | | > The sooner people stop worrying about a label for what you feel fits LLMs best, the sooner they can find the things they (LLMs) absolutely excel at and improve their (the user's) workflows. This is not a fault of the users. These labels are pushed primarily by "AI" companies in order to hype their products to be far more capable than they are, which in turn increases their financial valuation. Starting with "AI" itself, "superintelligence", "reasoning", "chain of thought", "mixture of experts", and a bunch of other labels that anthropomorphize and aggrandize their products. This is a grifting tactic old as time itself. From Sam Altman[1]: > We are past the event horizon; the takeoff has started. Humanity is close to building digital superintelligence Apologists will say "they're just words that best describe these products", repeat Dijkstra's "submarines don't swim" quote, but all of this is missing the point. These words are used deliberately because of their association to human concepts, when in reality the way the products work is not even close to what those words mean. In fact, the fuzzier the word's definition ("intelligence", "reasoning", "thought"), the more valuable it is, since it makes the product sound mysterious and magical, and makes it easier to shake off critics. This is an absolutely insidious marketing tactic. The sooner companies start promoting their products honestly, the sooner their products will actually benefit humanity. Until then, we'll keep drowning in disinformation, and reaping the consequences of an unregulated marketplace of grifters. [1]: https://blog.samaltman.com/the-gentle-singularity |
|
| |
| ▲ | skydhash 7 days ago | parent | prev | next [-] | | When the first cars broke down, people were not saying: One day, we’ll go to the moon with one of these. LLMs may get better, but it will not be what people are clamoring them to be. | | |
| ▲ | serf 6 days ago | parent | next [-] | | >When the first cars broke down, people were not saying: One day, we’ll go to the moon with one of these. maybe they should have; a lot of the engineering techniques and methodologies that produced the assembly line and the mass produced vehicle also lead the way into space exploration. | |
| ▲ | 7 days ago | parent | prev [-] | | [deleted] |
| |
| ▲ | tobr 7 days ago | parent | prev | next [-] | | The article has a very nuanced point about why it’s not just a matter of today’s vs tomorrow’s LLMs. What’s lacking is a fundamental capacity to build mental models and learn new things specific to the problem at hand. Maybe this can be fixed in theory with some kind of on-the-fly finetuning, but it’s not just about more context. | | |
| ▲ | ako 6 days ago | parent [-] | | You can give it some documents, or classroom textbooks, and it can turn those into rdf graphs, explaining what the main concepts are, and how they are related. This can then be used by an llm to solve other problems. It can also learn new things using trial and error with mcp tools. Once it has figured out some problem, you can ask it to summarize the insights for later use. What would define as an AI mental model? | | |
| ▲ | tobr 6 days ago | parent [-] | | I’m not an expert on this, so I’m not familiar with what RDF graphs are, but I feel like everything you’re describing happens textually, and used as context? That is, it’s not at all ”learning” the way it’s learning during training, but by writing things down to refer to them later? As you say - ”ask it to summarize the insights for later use” - this is fundamentally different from the types of ”insights” it can have during training. So, it can take notes about your code and refer back to them, but it only has meaningful ”knowledge” about code it came across in training. To me as a layman, this feels like a clear explanation of how these tools break down, why they start going in circles when you reach a certain complexity, why they make a mess of unusual requirements, and why they have such an incredible nuanced grasp of complex ideas that are widely publicized, while being unable to draw basic conclusions about specific constraints in your project. | | |
| ▲ | ako 6 days ago | parent [-] | | To me it feels very much like a brain: my brain often lacks knowledge, but i can use external documents to augment it. My brain also has limitations in what it can remember, I hardly remember anything I learned in high school or university on science, chemistry, math, so I need to write things down to bring back knowledge later. Text and words are the concepts we use to transfer knowledge in schools, across generations, etc. we describe concepts in words, so other people can learn these concepts. Without words and text we would be like animals unable to express and think about concepts | | |
| ▲ | tobr 6 days ago | parent [-] | | The point isn’t that writing and reading aren’t useful. The point is that they’re different from forming new neurological connections as you familiarize yourself with a problem. LLMs, as far as I know, can’t do that when you use them. | | |
| ▲ | ako 5 days ago | parent [-] | | Does that really matter if the result is the same, they have a brain, they have additional instructions, and with these they can achieve specified outcomes. Would be interesting to see how far we can shrink the brains to get desired outcomes with the right instructions. | | |
| ▲ | tobr 5 days ago | parent [-] | | It matters if the result is not the same. The article argues that this is an important aspect of what a human developer does that current AI cannot. And I agree. As I said, I find the idea very convincing as a general explanation for when and why current LLMs stop making progress on a task and start going in circles. |
|
|
|
|
|
| |
| ▲ | shalmanese 6 days ago | parent | prev | next [-] | | The analogy is very apt because the first cars: * are many times the size of the occupants, greatly constricting throughput. * are many times heavier than humans, requiring vastly more energy to move. * travel at speeds and weights that are danger to humans, thus requiring strictly segregated spaces. * are only used less than 5% of the day, requiring places to store them when unused. * require extremely wide turning radiuses when traveling at speed (there’s a viral photo showing the entire historical city of Florence fit inside a single US cloverleaf interchange) Not only have none of these flaws been fixed, many of them have gotten worse with advancing technology because they’re baked into the nature of cars. Anyone at the invention of automobiles with sufficient foresight could have seen the intersecting incentives that cars would wreak, same as how many of the future impacts of LLMs are foreseeable today, independent of technical progress. | | |
| ▲ | oblio 5 days ago | parent [-] | | > Anyone at the invention of automobiles with sufficient foresight could have seen the intersecting incentives that cars would wreak, same as how many of the future impacts of LLMs are foreseeable today, independent of technical progress. Yeah, but where's the money to be made in not selling people stuff? https://imgur.com/few-shareholders-had-good-value-least-jpsP... |
| |
| ▲ | dml2135 7 days ago | parent | prev | next [-] | | This is like saying that because of all the advancements that automobiles have made, teleportation is right around the corner. | |
| ▲ | brandon272 7 days ago | parent | prev | next [-] | | The question is, when is “tomorrow”? Dismissing a concern with “LLMs/AI can’t do it today but they will probably be able to do it tomorrow” isn’t all that useful or helpful when “tomorrow” in this context could just as easily be “two months from now” or “50 years from now”. | |
| ▲ | windward 6 days ago | parent | prev | next [-] | | How do you differentiate between tech that's 'first cars' and tech that's 'first passenger supersonic aircraft'? | |
| ▲ | card_zero 7 days ago | parent | prev | next [-] | | When monowheels were first invented, they were very difficult to steer due to the gyroscopic effects inherent to a large wheel model (LWM). | |
| ▲ | aaroninsf 7 days ago | parent | prev | next [-] | | My preferred formulation is Ximm's Law, "Every critique of AI assumes to some degree that contemporary implementations will not, or cannot, be improved upon. Lemma: any statement about AI which uses the word "never" to preclude some feature from future realization is false. Lemma: contemporary implementations have almost always already been improved upon, but are unevenly distributed." | | |
| ▲ | moregrist 7 days ago | parent | next [-] | | Replace “AI” with “fusion” and you immediately see the problem: there’s no concept of timescale or cost. And with fusion, we already have a working prototype (the Sun). And if we could just scale our tech up enough, maybe we’d have usable fusion. | | |
| ▲ | dpatterbee 7 days ago | parent [-] | | Heck, replace "AI" with almost any noun and you can close your eyes to any and all criticism! | | |
| ▲ | gjm11 6 days ago | parent [-] | | Only to criticism of the form "X can never ...", and some such criticism richly deserves to be ignored. (Sometimes that sort of criticism is spot on. If someone says they've got a brilliant new design for a perpetual motion machine, go ahead and tell them it'll never work. But in the general case it's overconfident.) |
|
| |
| ▲ | latexr 7 days ago | parent | prev [-] | | > Every critique of AI assumes to some degree that contemporary implementations will not, or cannot, be improved upon. That is too reductive and simply not true. Contemporary critiques of AI include that they waste precious resources (such as water and energy) and accelerate bad environmental and societal outcomes (such as climate change, the spread of misinformation, loss of expertise), among others. Critiques go far beyond “hur dur, LLM can’t code good”, and those problems are both serious and urgent. Keep sweeping critiques under the rug because “they’ll be solved in the next five years” (eternally away) and it may be too late. Critiques have to take into account the now and the very real repercussions already happening. | | |
| ▲ | antod 6 days ago | parent [-] | | Agreed. I find LLMs incredibly useful for my work and I'm amazed at what they can do. But I'm really worried that the benefits are very localized, and that the externalized costs are vast, and the damage and potential damage isn't being addressed. I think that they could be one of the greatest ever drivers of inequality as a privileged few profit at the expense of the many. Any debates seem neglect this as they veer off into AGI Skynet fantasy land damage rather than grounded real world damage. This seems to be deliberate distraction. |
|
| |
| ▲ | ajuc 7 days ago | parent | prev | next [-] | | It also doesn't mean they can. LLMs may be the steam-powered planes of our times. A crucial ingredient might be missing. | |
| ▲ | jedimastert 7 days ago | parent | prev | next [-] | | > The first cars broke down all the time. They had a limited range. There wasn't a vast supply of parts for them. There wasn't a vast industry of experts who could work on them. I mean, there was and then there wasn't. All of those things are shrinking fast because we handed over control to people who care more about profits than customers because we got too comfy and too cheap, and now right to repair is screwed. Honestly, I see llm-driven development as a threat to open source and right to repair, among the litany of other things | |
| ▲ | apwell23 7 days ago | parent | prev | next [-] | | ugh.. no analogies pls | |
| ▲ | ants_everywhere 7 days ago | parent | prev [-] | | The anti-LLM chorus hates when you bring up the history of technological change |
|
|
| ▲ | Natsu 6 days ago | parent | prev | next [-] |
| > the response for that function should maybe differentiate between "401 because you didn't authenticate" and "401 because your privileges are too low". I'd tend to think it more proper if it were 401 you didn't authenticate and 403 you're forbidden from doing that with those user rights, but you have to be careful about exactly how detailed your messages are, lest they get tagged as a CWE-209 in your next security audit. |
|
| ▲ | chuckadams 7 days ago | parent | prev | next [-] |
| An AI might tell you to use a 403 for insufficient privileges instead of 401. |
| |
|
| ▲ | ai-christianson 7 days ago | parent | prev | next [-] |
| I take a more pragmatic approach --everything is human in the loop. It helps me get the job done faster and with higher quality, so I use it. |
|
| ▲ | appease7727 7 days ago | parent | prev | next [-] |
| The way it works for me at least is I can fit a huge amount of context in my head. This works because the text is utterly irrelevant and gets discarded immediately. Instead, my brain parses code into something like an AST which then is represented as a spatial graph. I model the program as a logical structure instead of a textual one. When you look past the language, you can work on the program. The two are utterly disjoint. I think LLMs fail at software because they're focused on text and can't build a mental model of the program logic. It take a huge amount of effort and brainpower to truly architect something and understand large swathes of the system. LLMs just don't have that type of abstract reasoning. |
| |
| ▲ | starlust2 7 days ago | parent | next [-] | | It's not that they can't build a mental model, it's that they don't attempt to build one. LLMs jump straight from text to code with little to no time spent trying to architect the system. | |
| ▲ | taminka 7 days ago | parent | prev [-] | | i wonder why nobody bothered w/ feeding llms the ast instead (not sure in what format), but it only seems logical, since that's how compilers undestand code after all... | | |
| ▲ | NitpickLawyer 6 days ago | parent [-] | | There are various efforts on this, from many teams. There's AST dump, AST-based graphs, GraphRAG w/ AST grounding, embeddings based AST trimming, search based AST trimming, ctags, and so on. We're still in the exploration space, and "best practices" are still being discovered. It's funny that everyone says that "LLMs" have plateaued, yet the base models have caught up with early attempts to build harnesses with the things I've mentioned above. They now match or exceed the previous generation software glue, with just "tools", even with limited ones like just "terminal". |
|
|
|
| ▲ | exe34 6 days ago | parent | prev | next [-] |
| to be fair, I've seen cursor step back and check higher level things. I was trying to set up a firecracker vm and it did everything for me, and when things didn't initially work, it started doing things like ls, tar -tvf, and then a bunch of checking networking stuff to make sure things were showing up in the right place. so current LLMs might not quite be human level, but I'd have to see a bigger model fail before I'd conclude that it can't do $X. |
|
| ▲ | trod1234 7 days ago | parent | prev | next [-] |
| Isn't the 401 for LLMs the same single undecidable token?
Doesn't this basically go to the undecidable nature of math in CS? Put another way, you have an excel roster corresponding to people with accounts where some need to have their account shutdown but you only have their first and last names as identifiers, and the pool is sufficiently large that there are more than one person per a given set of names. You can't shut down all accounts with a given name, and there is no unique identifier. How do you solve this? You have to ask and be given that unique identifier that differentiates between the undecidable. Without that, even the person can't do the task. The person can make guesses, but those guesses are just hallucinations with a significant n probability towards a bad repeat outcome. At a core level I don't think these type of issues are going to be solved. Quite a lot of people would be unable to solve this and struggle with this example (when not given the answer, or hinted at the solution in the framing of the task; ie when they just have a list of names and are told to do an impossible task). |
|
| ▲ | JackFr 7 days ago | parent | prev | next [-] |
| - When we have a report of a failing test before fixing it, identify the component under test. Think deeply about the component and describe its purpose, the control flows and state changes that occur within the component and assumptions the component makes about context. Write that analysis in file called component-name-mental-model.md. - When ever you address a failing test, always bring your component mental model into the context. Paste that into your Claude prompt and see if you get better results. You'll even be able to read and correct the LLM's mental model. |
| |
| ▲ | siddboots 6 days ago | parent | next [-] | | In my experience, complicated rules like this are extremely unreliable. Claude just ignores it much of the time. The problem is that when Claude sees a failing test it is usually just an obstacle to completing some other task at hand - it essentially never chooses to branch out into some new complicated workflow and instead will find some other low friction solution. This is exactly why subagents are effective: if Claude knows to always run tests via a testing subagent, then the specific testing workflow can become that subagent’s whole objective. | |
| ▲ | fmbb 6 days ago | parent | prev [-] | | Anthropic sells this thing called Claude Code, but their customers have to train it to know how to be a programmer? Junior developers not even out of school don’t need to be instructed to think. | | |
| ▲ | JackFr 6 days ago | parent [-] | | > Junior developers not even out of school don’t need to be instructed to think. Have you trained juniors lately? |
|
|
|
| ▲ | jeffreygoesto 6 days ago | parent | prev | next [-] |
| Experience adds both additional layers vertically and domain knowledge horizontally and at some point that creates non-linear benefits, because you can transfer between problems and more importantly solutions of different fields. The context window is only one layer. Now go, researchers! |
|
| ▲ | joshwarwick15 6 days ago | parent | prev | next [-] |
| https://blog.remote-mcp.com/p/the-grug-brained-ai-developer-... |
| |
|
| ▲ | cncjchsue7 5 days ago | parent | prev | next [-] |
| Literally had a situation where cursor decided the best course of action in the situation was to delete the authentication test to solve the problem. |
|
| ▲ | jeswin 6 days ago | parent | prev | next [-] |
| > Oh, I am getting an authentication error. Well, meaybe I should just delete the token check for that code path...problem solved?! If this is how you think LLMs and Coding Agents are going about writing code, you haven't been using the right tools. Things happen, sure, but also mostly don't. Nobody is arguing that LLM-written code should be pushed directly into production, or that they'll solve every task. LLMs are tools, and everyone eventually figures out a process that works best for them. For me, it was strongs specs/docs, strict types, and lots of tests. And then of course the reviews if it's serious work. |
| |
| ▲ | hellcow 6 days ago | parent | next [-] | | Lately Claude has said, “this is getting complicated, let me delete $big_file_it_didnt_write to get the build passing and start over.” No, don’t delete the file. “You’re absolutely right…” And the moment the context is compacted, it forgets this instruction “fix the problems, don’t delete the file,” and tries to delete it again. I need to watch it like a hawk. | |
| ▲ | suriya-ganesh 6 days ago | parent | prev [-] | | I can confirm this is exactly how llms are working.
Spent two hours trying to get an llm to implement a filescan skip a specific directory.
Tried, claude code, Gemini and cursor. All agents debugged and wrote code that just doesn't make sense. Llms are really good at template tasks, writing tests, boilerplate etc.
But, Most times I'm not doing implement this button. I'm doing there's a logic mismatch in my expectation | | |
| ▲ | jeswin 6 days ago | parent [-] | | > Spent two hours trying to get an llm to implement a filescan skip a specific directory There's a large variance in outcomes depending on the prompt, and the process. I've gotten it to do things which are harder than a filescan with a skipped directory - without too much trouble. Add: > Llms are really good at template tasks, writing tests, boilerplate etc. If I have to stretch the definition of boilerplate to what's at the edge of a modern LLM's comprehension, I would say that 50% of software is some sort of boilerplate. |
|
|
|
| ▲ | TacticalCoder 6 days ago | parent | prev | next [-] |
| [dead] |
|
| ▲ | theonething 6 days ago | parent | prev | next [-] |
| > Oh, I am getting an authentication error. Well, meaybe I should just delete the token check for that code path...problem solved?! Kind of hyperbolic. If you prompt well, generally, it won't do stupid to that extreme. |
|
| ▲ | reactordev 7 days ago | parent | prev | next [-] |
| While I agree with you - The whole grug brain thing is offensive. Because we have all been grug at some point. |
| |
| ▲ | lioeters 6 days ago | parent | next [-] | | Grug is the wise fool in the spirit of Lao Tzu, St. Francis, and Diogenes. If you find it offensive, that's the intellectual pride it's meant to make fun of. | | |
| ▲ | reactordev 6 days ago | parent [-] | | The principles are sound but I dislike the cave-man-esque nature of it. Even a wise fool is smarter than that. Language is foundational. Even a wise fool chooses words wisely. ”Wise men speak because they have something to say; Fools speak because they have to say something” -Plato | | |
| |
| ▲ | recursive 7 days ago | parent | prev | next [-] | | How does that make it offensive? To me, that makes it relatable. | |
| ▲ | meindnoch 7 days ago | parent | prev | next [-] | | Midwit take. Grug is both the high and low end of the Bell curve. | |
| ▲ | WhyOhWhyQ 7 days ago | parent | prev [-] | | This seems to miss the point. Being Grug is the endgame. | | |
| ▲ | lcnPylGDnU4H9OF 6 days ago | parent [-] | | > big brained developers are many, and some not expected to like this, make sour face > THINK they are big brained developers many, many more, and more even definitely probably maybe not like this, many sour face (such is internet) > (note: grug once think big brained but learn hard way) | | |
|
|
|
| ▲ | fragmede 7 days ago | parent | prev | next [-] |
| If you can't get the LLM to generate code that handles an error code, that's on you. Yeah, sometimes it does dumb shit. Who cares? Just /undo and retry. Stop using Claude Code, which uses git like an intern. (Which is to say, it doesn't unless forced to.) |
|
| ▲ | ruslan_sure 6 days ago | parent | prev | next [-] |
| I don't think it's helpful to put words in the LLM's mouth.
To properly think about that, we need to describe how an LLM thinks.
It doesn't think in words or move vague, unwieldy concepts around and then translate them into words, like humans do. It works with words (tokens) and their probability of appearing next. The main thing is that these probabilities represent the "thinking" that was initially behind the sentences with such words in its training set, so it manipulates words with the meaning behind them. Now, to your points:
1) Regarding adding more words to the context window, it's not about "more"; it's about "enough." If you don't have enough context for your task, how will you accomplish it? "Go there, I don't know where."
2) Regarding "problem solved," if the LLM suggests or does such a thing, it only means that, given the current context, this is how the average developer would solve the issue. So it's not an intelligence issue; it's a context and training set issue! When you write that "software engineers can step back, think about the whole thing, and determine the root cause of a problem," notice that you're actually referring to context. If the you don't have enough context or a tool to add data, no developer (digital or analog) will be able to complete the task. |
| |
| ▲ | adastra22 6 days ago | parent [-] | | > It doesn't think in words or move vague, unwieldy concepts around and then translate them into words, like humans do. That seems to me like a perfectly fine description of state space & chain of though continuation. |
|
|
| ▲ | throwaway1004 7 days ago | parent | prev [-] |
| That reference link is a wild ride of unqualified, cartoonish passive-aggression, the cute link to the author's "swag" is the icing on the cake. Concidentally, I encountered the author's work for the first time only a couple of days ago as a podcast guest, he vouches for the "Dirty Code" approach while straw-manning Uncle Bob's general principles of balancing terseness/efficiency with ergonomics and readability (in most, but not all, cases). I guess this stuff sells t-shirts and mugs /rant |
| |
| ▲ | Arainach 7 days ago | parent | next [-] | | >Uncle Bob's general principles of balancing terseness/efficiency with ergonomics and readability (in most, but not all, cases). Have you read Uncle Bob? There's no need to strawman: Bob's examples in Clean Code are absolutely nuts. Here's a nice writeup that includes one of Bob's examples verbatim in case you've forgotten: https://qntm.org/clean Here's another: https://gerlacdt.github.io/blog/posts/clean_code/ | | |
| ▲ | throwaway1004 6 days ago | parent | next [-] | | >Have you read Uncle Bob? Yes, I have read Uncle Bob. I could agree that the examples in the book leave room for improvement. Meanwhile, the real-world application of these principles and trial-and-error, collectively within my industry, yields a more accurate picture of it's usefulness. Even the most click-bait'y criticisms (such as the author I referenced above) involve zooming in on it's most-controversial aspects, in a vacuum, without addressing the core principles and how they're completely necessary for delivering software at scale, warranting it's status as a seminal work. "...for the obedience of fools, and the guidance of wise men", indeed! edit - it's the same arc as Agile has endured: 1. a good-faith argument for a better way of doing things is recognised and popularised. 2. It's abused and misused by bad actors/incompetents for years (who would not have done better using a different process) 3. Jaded/opportunistic talking heads tell us it's all garbage while simultaneously explaining that "well, it would be great if it wasn't applied poorly..." | | |
| ▲ | Arainach 6 days ago | parent [-] | | >involve zooming in on it's most-controversial aspects, in a vacuum, without addressing the core principles and how they're completely necessary for delivering software at scale, warranting it's status as a seminal work. It's not "zooming in" to point out that the first and second rules in Bob's work are "functions should be absurdly tiny, 4 lines or less" and that in the real world that results in unreadable garbage. This isn't digging through and looking for edge cases - all of the rules are fundamentally flawed. Sure, if you summarize the whole book as "keep things small with a single purpose" that's not an awful message, but that's not the book. Other books have put that point better without all of the problems. The book is full of detailed specific instructions, and almost all of the specifics are garbage that causes more bad than good in the real world. Clean Code has no nuance, only dogma, and that's a big problem (a point the second article I linked calls out and discusses in depth). There are some good practices in it, but basically all of its code is a mistake that is harmful to a new engineer to read. | | |
| ▲ | throwaway1004 6 days ago | parent [-] | | >Sure, if you summarize the whole book as "keep things small with a single purpose" that's not an awful message, but that's not the book. Assuming that you have read the book, I find it odd that you would consider that to be the steel-man a fan of this work would invent, it considers considerably more ground than that: - Prioritise human-readability - Use meaningful names - Consistent formatting - Quality comments - Be DRY, stop copy-pasting - Test - SOLID All aspects of programming, to this day, I routinely see done lazily and poorly. This rarely correlates with experience, and usually with aptitude. >Clean Code has no nuance, only dogma, and that's a big problem (a point the second article I linked calls out and discusses in depth) It's opinionated and takes it's line of reason to the Nth degree. We can all agree that the application of the rules require nuance and intelligence. The second article you linked is a lot more forgiving and pragmatic than your characterisation of the issue. I would expect the entire industry to do a better job of picking apart and contextualising the work, after it made an impact on the industry, than the author himself could or ever will be capable of. My main problem is the inanity of reactionary criticism which doesn't engage with the ideas. Is Clean Code responsible for a net negative effect on our profession, directly or indirectly? Are we correlating a negative trend in ability with the influence of this work? What exactly are "Dirty Code" mug salesmen proposing as an alternative; what are they even proposing as being the problem, other than the examples in CC are bad and it's easy to misapply it's principles? | | |
| ▲ | Arainach 6 days ago | parent [-] | | >We can all agree that the application of the rules require nuance and intelligence Except Uncle Bob, it seems, as evidenced by his code samples and his presentations in the years since that book came out. That's my objection. Many others have presented Bob's ideas better in the last 19 years. The book was good at the time, but we're a decade past when we should have stopped recommending it. Have folks go read Ousterhout instead - shorter, better, more durable. |
|
|
| |
| ▲ | the__alchemist 7 days ago | parent | prev [-] | | Uncle Bob's rules: IMO do the opposite of what they say. They're a reasonable set if negated! |
| |
| ▲ | pphysch 7 days ago | parent | prev [-] | | > big brained developers are many, and some not expected to like this, make sour face |
|