[HN Gopher] LLMs and Programming in the first days of 2024
___________________________________________________________________
LLMs and Programming in the first days of 2024
Author : nalgeon
Score : 386 points
Date : 2024-01-02 11:43 UTC (11 hours ago)
(HTM) web link (antirez.com)
(TXT) w3m dump (antirez.com)
| andyjohnson0 wrote:
| > These are all things I do not want to do, especially now, with
| Google having become a sea of spam in which to hunt for a few
| useful things.
|
| Seriously, just don't use Google for search. Google search is
| just a way to get you to look at their ads.
|
| Use a search engine that is aligned with your best interests,
| suppresses spammy sites, and lets you customise what you want it
| to surface.
|
| I've used chatgpt as a coding assistant, with varying results.
| But my experience is that better search is orders of magnitude
| more useful.
| wrkronmiller wrote:
| > Use a search engine that suppresses spammy sites and lets you
| customise what you want it to surface.
|
| Can you give an example of such a search engine? Which one(s)
| do you use and why?
| dewey wrote:
| Kagi does that, switched to it full time after years of
| giving alternatives like DDG a go and failing. Can recommend!
| times_trw wrote:
| Can you give an example where kagi is better than google?
|
| I've tried a couple of searches on the free tier and they
| gave pretty much the same results. I only have so many free
| searches to check too.
| dewey wrote:
| It allows me to remove websites from the results. That's
| already one of the main selling points for me.
| times_trw wrote:
| Sure, but can you please give me an example since I only
| have so many searches and I've switched over to chatgpt
| for most of my former googling tasks.
| Terretta wrote:
| Above, I suggested pay for Kagi. A search engine is more
| than just serps:
|
| https://blog.kagi.com/kagi-features
|
| If you prefer LLMs to Googling, then at least consider
| "phind":
|
| https://www.phind.com/search?home=true
| a12k wrote:
| Google has been inundated with SEO spam, and sometimes I
| want current things so LLMs don't work that well. One
| example is I was buying a ... wait, actually I was
| putting together some examples for you to compare Kagi (I
| am an unlimited subscriber) to Google directly, and none
| of them work now. My Google results for things like "best
| running shoes 2024" or things like that returned
| basically the same results as Kagi, pushing sites like
| Reddit and Wirecutter and REI blog and other known-good
| blogs to the top. Tried this in Private Browsing as well.
|
| This is definitely a departure because when I subscribed
| to Kagi a couple months ago, all of my Google results for
| similar searches were SEO spam blogs filled with Amazon
| affiliate links that look like they had just sucked some
| Amazon reviews automatically into some poor facade to
| generate affiliate revenue.
|
| These results were a surprise to me. Not sure what
| changed.
| times_trw wrote:
| Yes, that's what I was getting too.
|
| I imagine what changed is that Kagi started getting
| traction on site like here and some managers at google
| actually did something about it.
|
| My own test "voynich illuminated manuscript" which used
| to give nothing but pintrest spam on google. Now there is
| just one result from pintrest in google and pretty much
| every result in Kagi is from pintrest.
|
| There is an academic tab which seems interesting. I will
| give it a try later.
| andyjohnson0 wrote:
| Kagi. You have to pay - but it prioritises based on content,
| not ads, and it lets you pin / emphasise / deemphasise /
| block sites according to your needs.
|
| (No connection with kagi.com except being a very satisfied
| user)
| Terretta wrote:
| Pay for Kagi. It's a tool.
|
| Pay for it, so search results are the product, instead of an
| ad platform sold to advertisers with you as the product.
| visarga wrote:
| I use phind.com, but perplexity.ai also works well
| thenevermind wrote:
| I see a lot of recommendations for kagi, but no mention of
| brave search - specifically the (beta) feature called
| "goggles". Afaiu it's a blend of kagi's "lenses" and the site
| ranking in search results.
|
| https://search.brave.com/help/goggles
|
| There is a list (search) of public goggles:
| https://search.brave.com/goggles
|
| The goggles itself are just text files with basic syntax and
| can be hosted on e.g. github gist. (though you have to
| publish it to brave)
|
| https://github.com/brave/goggles-
| quickstart/blob/main/goggle...
|
| Tbh, I can't really compare brave search to kagi, since I
| never used kagi (though I'm using Orion - webkit based
| browser from the same dev and love it). Afaik, brave search
| is using its own index, thus making the results somehow
| limited and inferior to kagis. Just wanted to throw some
| (free) alternative here that works for me. :)
|
| * Note that Brave search, despite privacy oriented, is still
| ad funded and there was few controversies about brave's
| (browser) privacy in the past. (if that's relevant for you)
|
| * I'm not affiliated with Brave in any way.
| eurekin wrote:
| I like to use chatgpt for the easy stuff, things I forgot, do
| to rarely to remember or code in another language very similar
| to the one I already know.
|
| I do quickly run into bumps, where search is necessary (a lot
| of times it's some variant of a breaking change in a dependent
| library). Once I find a good enough issue description, I just
| slap that back into chatgpt. It handles it very well and sticks
| for the rest of the conversation. Somehow chatgpt is aware that
| the context information takes precedence over trained data.
|
| I also have the Kagi subscription, which I'm using for above.
| I'm very happy with both tools working in tandem and am
| genuinely happy about that kind of time spending
| kibibu wrote:
| The deep coder example doesn't appear to actually be doing what
| the comments or the article say it does.
|
| It appears no better than the mixtral example that it's
| supposedly an improvement on.
| antirez wrote:
| This is my cut & paste failure (I didn't re-check the GPT-4
| output that fixed the grammar). Fixing...
| times_trw wrote:
| Do you know of an article that covers LLMs from the point of
| view of a tutor/study partner/reading group?
|
| Yours is the first blog which matches my experiences with the
| code side of things, but I've found them even more useful in
| the learning side of things.
| adamgordonbell wrote:
| I wrote an article subtitled "llms flatten steep learning
| curves": https://earthly.dev/blog/future-is-rusty/
| 4ad wrote:
| This might be a good article, I wouldn't know because I can't
| read this monospace atrocity.
|
| Reader view in Safari preserves the monospace font... /facepalm
| antirez wrote:
| Maybe I can help you:
| https://gist.github.com/antirez/931cb4f814e2c852a8289b6fa876...
| 082349872349872 wrote:
| In order to protect your delicate sensibilities I would
| further suggest to avoid consulting most research output
| from before the mid 1980s.
|
| eg
| https://www.rand.org/content/dam/rand/pubs/research_memorand...
| noelwelsh wrote:
| I also found it looks awful, which made it hard for me to read,
| but Firefox reader mode did at least change the font.
| habibur wrote:
| How many of us remember that at the beginning of last year the
| fear was that programming by programmers will get obsolete by
| 2024 and LLMs will be doing all the job?
|
| How much has changed?
| delusional wrote:
| I remember 10 years ago when the fear was that cheaper
| programmers in developing countries (India mostly) would be
| doing all the programming.
|
| It's just a scam to keep you scared and stop you from
| empathizing with your fellow workers.
| bl0rg wrote:
| I don't think it's a scam or a conspiracy. It's human nature
| to worry and when given a reasonably sounding, but scary,
| idea we tend to spread it to others.
| concordDance wrote:
| > It's just a scam to keep you scared and stop you from
| empathizing with your fellow workers.
|
| I am quite unconvinced this is the reason. Seems rather
| conspiratorial.
| FrustratedMonky wrote:
| Outsourcing was more of a threat than AI. And a lot of jobs
| really did move. It is still a real thing, not that many
| programming jobs moved back to the states.
| plagiarist wrote:
| That's legit. I've managed to dodge it but many jobs have
| moved overseas. Many of my coworkers the past years have been
| contractors living in other countries.
|
| This is what happened to America's manufacturing industry.
| Shouldn't emphasizing with fellow workers mean recognizing
| the pattern instead of dismissing it as FUD?
| aulin wrote:
| So far I've seen bad programmers create more (and possibly
| worse) bad code and good ones use LLM to their advantage.
| concordDance wrote:
| Can't say I saw anyone thinking programmers would be obsolete
| by 2024...
| ben_w wrote:
| I remember _some_ people were saying things in vaguely but not
| explicitly that direction, but given OpenAI were "we're not
| trying to make bigger models for now, we're trying to learn
| more about the ones we've already got and how to make sure
| they're safe" I dismissed them as fantasists.
|
| What has happened is GPT-4 came out (which is certainly better
| in some domains but not everywhere), but mainly the models have
| become much cheaper and slightly easier to run, and people are
| pairing LLMs with other things rather than using them as a
| single solution for all possible tasks -- which they probably
| could do in principle if scaled up sufficiently, but there may
| well not be enough training data and there certainly aren't
| computers with enough RAM.
|
| And, like with the self-driving cars, we've learned a lot of
| surprising failure modes.
|
| (As I'm currently job-hunting, I hope what I wrote here is true
| and not just... is "copium" the appropriate neologism?)
| fhd2 wrote:
| I wouldn't call myself an expert, but my gut tells me we're
| close to a local maximum when it comes to the core capabilities
| of LLMs. I might be wrong of course. If I'm right, I don't know
| when or if we'll get out of that. But it seems the work of
| putting LLMs to good use is gonna continue for the next years
| regardless. I imagine hybrid systems between traditional
| deterministic IDE features and LLMs could become way more
| powerful than what we have today. I think for the foreseeable
| future, any system that's supposed to be reliable and well
| understood (most software, I hope) will require people willing
| and capable to understand it, that's in my mind the core thing
| programmers are and will continue to be needed for. But anyway:
| I do expect less programmers will be needed if demand remains
| constant.
|
| As for demand, that's difficult to predict. I'd argue a lot of
| software being written today doesn't really need to be written.
| Lots of weird ideas were being tried because the money was
| there, pursuing ever new hypes, with an entire sub industry
| building ever more specialised tools fueling all this. And with
| all that growth, ever more programmers have been thrown at
| dysfunctional organisations to get a little more work done. My
| gut tells me that we'll see less of that in the next years, but
| I feel even less competent to predict where the market will go
| than where the tech will go.
|
| So long story short, I guess we'll still need programmers until
| there's a major leap towards GAI, but less than today.
| pjmlp wrote:
| The compiler is still not part of the picture, when LLMs start
| being able to produce binaries straight out of prompts, then
| programmers will indeed be obsolete.
|
| This is the holy grail of low-code products.
| _heimdall wrote:
| Why is an unauditable result the holy grail? Is the goal to
| blindly trust the code generated by an LLM, with at best a
| suite of tests that can only validate the surface of the
| black box?
| pjmlp wrote:
| Money, low-code is the holy grail that business no longer
| need IT folks, or at very least, reduce the amount of FTEs
| they need to care about.
|
| See all the SaaS products, without any access to their
| implementation, programable via graphical tooling, or
| orchestrated via Web API integration tools, e.g. Boomi.
| _heimdall wrote:
| Is it no different to you when the black box is created
| by an LLM rather than a company with guarantees of
| service and a legal entity you can go after in case of
| breach of contract?
|
| Where does the trust in a binary spit out by an LLM come
| from? The binary is likely unique and therefore your
| trust can't be based on other users' experience, there
| likely isn't any financial incentive or risk on the part
| of the LLM should the binary have bugs or
| vulnerabilities, and you can't audit it if you wanted to.
| pjmlp wrote:
| As usual this kind of things will sorted out, as
| developers have to search for something else.
|
| QA, acceptance testing whatever, no different from buying
| closed source software.
|
| Only those that never observed the replacement of factory
| workers by complete robot based chains can think this
| will never happen to them.
|
| Here is a taste of the future,
|
| https://www.microsoft.com/en-us/power-
| platform/products/powe...
| goatlover wrote:
| So who is instructing the LLMs on what sort of binaries to
| produce? Who is testing the binaries? Who is deploying them?
| Who is instructing the LLMs to perform maintenance and
| upgrades? You think the managers are up for all that? Or the
| customers who don't know what they want?
| pjmlp wrote:
| Just like offshoring nowadays, you take the developers out
| of the loop, and keep PO, architects and QA.
|
| Instead of warm bodies somewhere on the other side of the
| planet, it is a LLM.
| ryanklee wrote:
| Nobody of any interest said this. This is something you are
| saying now using a thin rhetorical strategy meant to make you
| look correct over an opponent that doesn't exist.
| FrustratedMonky wrote:
| That's like the people saying, "they said the ice caps would
| melt, ha, hasn't happened, all fake". Meanwhile, nobody said
| that.
| tarruda wrote:
| Conclusion in the blog post says it all:
|
| > I regret to say it, but it's true: most of today's
| programming consists of regurgitating the same things in
| slightly different forms. High levels of reasoning are not
| required. LLMs are quite good at doing this, although they
| remain strongly limited by the maximum size of their context.
| This should really make programmers think. Is it worth writing
| programs of this kind? Sure, you get paid, and quite
| handsomely, but if an LLM can do part of it, maybe it's not the
| best place to be in five or ten years.
| Zambyte wrote:
| >> I regret to say it, but it's true: most of today's
| programming consists of regurgitating the same things in
| slightly different forms.
|
| I wonder how different this would be if software was not
| hindered by "intellectual property" laws.
| mercurialsolo wrote:
| Honestly speaking code generation is a form of augmented
| retrieval. And going further back, I would say human memory is
| generated from context rather than retrieved (which is why it's
| often fallible - we hallucinate details).
|
| LLM's today for me are the equivalent of a large scale human
| memory for code or for faster augmented retrieval - do they
| hallucinate details, quite often, but do I find it utilitarian
| versus dragging myself over documentation details - more often
| than not.
| 082349872349872 wrote:
| > _At the same time, however, my experience over the past few
| months suggests that for system programming, LLMs almost never
| provide acceptable solutions if you are already an experienced
| programmer._
|
| Hmm, this suggests to me that in a better world, the systems
| problems would have been solved with code, and the sorts of one-
| off problems which current LLMs do handle well would have been
| solved with formulae in a (shell-like? not necessarily turing-
| complete?) DSL.
| chii wrote:
| > LLMs almost never provide acceptable solutions if you are
| already an experienced programmer.
|
| or, the other stuff GPT was producing is just as bad, but that
| he's not experienced enough in the domain to see it, where as
| the stuff he is experienced with looks immediately sus or
| subpar.
| jgalt212 wrote:
| > this erudite fool is at our disposal and answers all the
| questions asked of them,
|
| Yes, but I have to double-check every answer. And that, for me,
| greatly mitigates or entirely negates their utility. Of what
| value is a pocket calculator that only gets the right answer 75%
| if the time, and you don't ex ante know what 75%?
| antirez wrote:
| Programming is special because 99% of times you can tell
| immediately if something works or not, so the risk of
| misinformation is very narrow.
| xyproto wrote:
| Hi! I'm a big fan of Redis and also the little Kilo editor
| you wrote.
|
| But, I have to disagree on this point, since many programs
| written in ie. C have security issues that takes a long time
| to discover.
| apwell23 wrote:
| Doesn't seem very secure if it entirely dependent on
| human's cheking it manually. Humans are famously fallible.
| xyproto wrote:
| I am glad you agree with my point that 99% of the time
| you can not immediately tell if code works or not.
| couchand wrote:
| Perhaps you've omitted some important context here, or you're
| using an extremely restricted definition of "works"? The
| interesting and hard question with software is not "did it
| compile" but rather "did it meet the never-clearly-
| articulated needs of the user"...
|
| I would agree that it is a primary goal of software
| engineering to move as much as possible into the category of
| automatic verification, but we're a long, long way from 99%.
| Verdex wrote:
| I agree with your point here.
|
| I think that antirez is technically correct in that there
| is a vast amount of code that will not compile compared to
| the amount of code that will compile. So saying '99%' sort
| of makes sense.
|
| But that doesn't capture the fact that of the code that
| compiles there is a vast amount of code that doesn't do
| what we want to happen at runtime compared to the code that
| does do what we want to happen.
|
| And after that there is a vast amount of code that doesn't
| do what we want to happen 100% of the time at runtime
| compared to the code that only most of the times does what
| we want to happen at runtime.
|
| The interesting thought experiment that came to me when
| thinking about this was that I would be more likely to
| trust LLM code in C# or Rust than I would be to trust LLM
| code in assembly or Ruby.
|
| Which makes me wonder ... can LLMs write working Idris or
| ATS code?
| aulin wrote:
| I've seen people put untested AI hallucinations under review,
| with non existant function names, passing CI just because it
| was under debug defines.
|
| I've seen some refer to non existant APIs while discussing
| migration to a new library major version. "Sure that's easy,
| we should just replace this function with this new one".
|
| Imagine all those more subtle bugs that are harder to spot.
| baq wrote:
| As long as P != NP, verification should be much easier than
| producing a solution.
|
| Or, from a different angle - all models are wrong, some are
| useful.
|
| As it happens, LLMs are useful even if they're sometimes wrong.
| jgalt212 wrote:
| > As long as P != NP, verification should be much easier than
| producing a solution.
|
| Perhaps so. I guess it depends on how long it takes to code
| up property-based tests.
|
| https://hypothesis.readthedocs.io/en/latest/
| brigadier132 wrote:
| - I can read the code and reading code is faster than writing
| it.
|
| - I can also tell the llm to write tests for the code it wrote
| and i can validate that the tests are valid.
|
| - LLMs are also valuable in introducing me to concepts and
| techniques I would never had had exposure to. For example, I
| have a problem and explain my problem, it will bring up
| technologies or terms I never considered because I just didn't
| know about them. I can then do research into those technologies
| to decide if they are actually the right approach.
| jgalt212 wrote:
| > I can also tell the llm to write tests for the code it
| wrote and i can validate that the tests are valid.
|
| If I don't trust the generated code, why should I trust the
| generated code that tests the generated code?
| kevindamm wrote:
| Salient point:
|
| > Would I have been able to do it without ChatGPT? Certainly yes,
| but the most interesting thing is not the fact that it would have
| taken me longer: the truth is that I wouldn't even have tried,
| because it wouldn't have been worth it.
|
| This is the true enabling power of LLMs for code assistance --
| reducing the activation energy of new tasks enough that they are
| tackled (and finished) when they otherwise would have been left
| on the pile of future projects indefinitely.
|
| I think the internet and the open source movement had a similar
| effect, in that if you did not attempt a project that you had
| some small interest in, it would only be a matter of time before
| someone else did enough of a similar problem for you to reuse or
| repurpose their work, and this led to an explosion of (often
| useful, or at least usable) applications and libraries.
|
| I agree with the author that LLMs are not by themselves very
| capable but provide a force multiplier for those with the basic
| skills and motivation.
| somewhereoutth wrote:
| However could it be that the 'entertainment effect' of using a
| new (and trendy) technology like LLMs provides the activation
| energy for otherwise mundane tasks?
| apwell23 wrote:
| This is true. I write way more documentation now since llm
| does all the formatting, structure , diagrams ect. I just
| guide it at a high level.
| robluxus wrote:
| Do you use a specialized LLM for diagrams?
| apwell23 wrote:
| I just ask chatgpt to generate text diagrams that i can
| embed in my markdown.
| danielbln wrote:
| I'm not OP, but I just ask GPT to turn code or process or
| whatever else into a mermaid diagram. Most of the time I
| don't even need to few-shot prompt it with examples. Then
| you dump the resulting text into something like
| https://mermaid.live/ and voila.
| times_trw wrote:
| No. I've completed projects that have been on the back burner
| for years in hours. They weren't on the back burner for lack
| of interest but mainly for lack of expertise in a specific
| stupid area.
|
| It's not an exaggeration to say that I now do two weeks of
| programming a night. Of course a lot of times the result gets
| thrown away because the fundamental idea was flawed in a non-
| obvious way. But learning that is also worth while.
| Klathmon wrote:
| It's revolutionized our in house tooling at work.
|
| No longer do I need to give PR feedback more than a couple
| times, because we can just ask chatgpt to come up with a
| lint rule that detects and sometimes auto-fixes the issue.
| I use it to write or change Jenkins jobs, scaffold out
| tests, diagram ideas from a monologue brain dump, write
| alerting and monitoring code, write and clean up
| documentation.
|
| Most recently I wanted to get some "end of year" stats for
| the teams, normally it would never have happened because I
| don't have half a day to dedicate to relearning the git
| commands, and how to count the lines of code and attribute
| changes to teams and script the whole process to work
| across 20 repos.
|
| 20 minutes later with chatgpt I had results I could share
| within the company.
|
| It's just allowed me to skip almost all of the boring and
| time consuming parts of handling small things like that,
| and instead turns me into a code reviewer who makes a few
| changes to make it good enough then pushes it out
| lifeisstillgood wrote:
| Wait what?
|
| ChatGPT does diagrams for you? Writes documentation?
| Klathmon wrote:
| Absolutely!
|
| I found a plugin a while back called "AI Diagrams" that
| generates whimsical.com diagrams for me. Combined with
| the "speech to text" systems in chatgpt means I can just
| start babbling about some topic and let it write it all
| down, collect it into documentation, and even spit out a
| few diagrams from it.
|
| I generally have to spend like 10 minutes cleaning them
| up and rearranging them to look a bit more sane, but it's
| been a godsend!
|
| Similarly I sometimes paste a bunch of code in and tell
| it to write some starter docs for this code, then I can
| go from there and clean it up manually, or just tell it
| what changes need to be made. (technically I tend to use
| editor plugins these days not copy+paste, but the idea is
| the same)
|
| Other times I'll paste in docs and have it reformat them
| into something better. Like I recently took our ~3 year
| old README in a monorepo that goes over all the build and
| lint commands and had it rearrange everything into sets
| of markdown tables which displayed the data in a much
| easier to understand format.
| datameta wrote:
| Does your company have any considerations for feeding
| chatGPT source code? Would it not be safer to use a local
| LLM?
| Klathmon wrote:
| Not any more than feeding source code to Github. (I
| personally feel "source code" is very rarely the "secret
| sauce" of a company anyway). But where I work we not only
| have the blessing of the company, we are encouraged to
| use it because they've clearly seen the benefits it
| brings.
|
| A local LLM would be preferrable all things equal, but in
| my experience for this kind of stuff, GPT-4 is just so
| much better than anything else available, let alone any
| local LLMs.
| Shocka1 wrote:
| Same here - I feel as though it's turned me into a super
| programmer. One of my favorite uses is converting a C#
| model with a bunch of properties into a SQL table along
| with their corresponding stored procedures. I used to have
| boilerplate code and would have to copy/paste every
| property, along with their SQL datatypes. One model might
| take me 10 to 20 minutes to get translated to a table, and
| the stored procedures would take me another 20 minutes. Now
| it's all done in 5 minutes tops, and I'm not having to
| nitpick datatype issues I may have screwed up in the manual
| process.
| datagram wrote:
| In my experience, it genuinely lowers the activation (and
| total) energy for certain tasks, since LLMs are great at
| writing repetitive code that would otherwise be tedious to
| write by hand. For instance, writing a bunch of similar test
| cases.
| vidarh wrote:
| I find that even beyond "activation energy", a lot of my
| exploration with ChatGPT is around things I don't necessarily
| initially even intend to take forward, but is just curious
| about, and then realise I can do with much less effort than I
| expected.
|
| You can often get much of the same effect by bouncing ideas of
| someone, who doesn't necessarily need to know the problem space
| well enough to solve things but just well enough to give
| meaningful input. But people with the right skills aren't
| available at the click of a button 24/7.
| moffkalast wrote:
| Agreed, I've now got a sizable project going that I would
| probably procrastinate on attempting for years without GPT 4
| laying the initial groundwork, along with informing me of a few
| libraries I had never heard of that reduced wheel reinventing
| quite a bit.
| xnorswap wrote:
| First automation acts as a powerful lever and enabler, then it
| replaces you.
|
| In 5 years time you may well be more productive than ever. In
| 15 years I doubt there'll be many programming jobs in the form
| they are recognisable today.
| jgilias wrote:
| Historically, automation has always made society richer and
| better off as a result.
|
| There are two guys outside of my window at this very moment
| getting rid of a huge pile of dirt. One is in an excavator,
| the other in a truck. There's a bunch of piles that they've
| taken care of today. Two centuries ago this work would've
| taken a dozen people, a few animals of burden, and a lot more
| time.
|
| Where are the other ten hypothetical people? I don't know,
| but chances are they've been absorbed by the rest of the
| economy doing something else worthwhile that they are getting
| paid for.
| daxfohl wrote:
| Those ten hypothetical people would likely have actually
| been zero because the task wouldn't have been worth hiring
| ten people.
| andsoitis wrote:
| also, two centuries ago, we didn't have trucks and the
| concomitant infrastructure, jobs, wealth, etc. that
| machines brought along.
| iExploder wrote:
| > Where are the other ten hypothetical people?
|
| Zoned out somewhere in the backstreets of SF
| direwolf20 wrote:
| Or dead because Trump cut off their welfare.
| dash2 wrote:
| This comment and the grandparent can both be right. Society
| gets richer _because_ automation replaces jobs, leaving us
| more time to do other jobs.
| xnorswap wrote:
| I agree, on a societal level it's a great benefit.
|
| On an individual level, however, I'd suggest keeping an eye
| out for opportunities to retrain.
|
| As an analogy, I'd rather be like the coal miners in the
| 80s who could read the writing on the wall and quietly
| retrained into something else rather than those who spent
| their better years striking over cuts to little avail.
|
| It's a very daunting prospect seeing a path to
| unemployability, though.
|
| Depending how quickly the change happens, it could be a
| gentle transition, or it could upset a lot of people.
| jay_kyburz wrote:
| Yeah, but what do you retrain to? I can't think of any
| industry that isn't being threatened with massive
| automation.
| daxfohl wrote:
| Well, the AI job market is pretty hot, so that's an
| option. And I expect as things mature it'll only create
| even more opportunity. Projects that nobody previously
| would have considered, because they'd have taken too
| long, required too much training for too many people? Now
| they can happen! And for each of those things, jobs are
| created, not taken away.
|
| Imagine yourself as CEO. What do you think is your most
| likely train of thought? A/ "I can fully replace my labor
| force with bots" or B/ "My employees now have superpowers
| to do things we couldn't even conceive of two years ago".
| While there are certainly some scenarios where the first
| choice is appropriate, the latter sounds far far more
| likely in most scenarios to me. Why would you contract
| when there's suddenly so much opportunity to expand?
| direwolf20 wrote:
| What AI jobs?
| atleta wrote:
| There are two problems with this argument. The first, and
| easier to accept one is that while society might be better
| off, _in the long run_ , as a result the affected
| individuals will probably not. We tend to generalize from a
| single historical example, the industrial revolution and,
| more specifically, the automatic loom, and in that case the
| displaced workers ended up doing worse. Better jobs and
| opportunities only got created later.
|
| The other problem is, of course, is that all the historical
| examples (the data) are too few to generalize from while we
| do see how these examples are different from each other. As
| technological evolution progresses, automation gets more
| and more sophisticated, it can replace jobs that require
| more and more skills and talent. In other words, jobs that
| fewer and fewer people were able to do in the first place.
| This means that the bar for successfully competing in the
| labor market gets higher and higher and it will get to a
| point where a substantial number of people will just be
| plain uncompetitive for any job.
|
| Or, at least that was one of the morels until LLMs were
| invented. (Mostly everyone thought that automation would
| take over the opportunities from the bottom up in general.)
| Now it seems that indeed white collar jobs are more in
| danger for now. But I digress.
|
| The point here is that past examples are false analogies
| because AI (and I moslty mean future AI) is funcamentally
| different from past inventions. It's capabilities seem to
| improve quickly but we're mostly stuck with what evolution
| gave us. (We, as a species, are evolving but it's very slow
| compared to the rate of technological evolution and also
| we, as individuals, are stuck with whatever we were born
| with.)
| idopmstuff wrote:
| I think the other thing people miss is the impact of our
| existing infrastructure on the speed at which these new
| technologies can be deployed.
|
| Society had a lot of time to get used to the printing
| press, the advances of the Industrial Revolution and the
| internet. This is because the knowledge had to spread,
| and it's also because a ton of equipment had to be
| manufactured and/or shipped all over the world. We had to
| make printing presses, design and build factories, and
| get a critical mass of people internet-capable computers.
|
| AI is fundamentally different, in that the knowledge of
| AI can spread instantly because of the internet and
| because the vast majority of the world already has access
| to all of the hardware they need to access the most
| powerful AI models.
|
| Soon we'll have humanoid robots coming, and while they
| obviously have to be built, we are much more capable now
| than we were 50 years ago at building giant factories. We
| also have an efficient system of capital allocation that
| means that as soon as someone demonstrates a generally
| useful humanoid robot and only needs to scale production,
| they'll have access to basically infinite investor money.
| Shocka1 wrote:
| I don't speak for the parent, but what they said seems
| true - Henry Hazlitt covers this phenomenon pretty well
| if you are ever interested. Your two points I think are
| also true. It won't be nice to everyone... Such is life.
| That being said, my practical mind is telling me to get
| ahead of it, whether that be learning new skills or
| whatever it takes to stay competitive. If that means
| picking another industry/profession entirely, so be it.
| You do what you gotta do.
| andsoitis wrote:
| I share a similar intuition, but am skeptical that my
| imagination is in the right ballpark of what it will look
| like 15 years hence.
|
| What do you think programming will be like in 15 years and
| where is the high-value work by human programmers?
| mjr00 wrote:
| Same as looking back 15-20 years ago from now, though.
|
| Very few jobs now where you put together basic webpages with
| HTML and CSS (Frontpage, then Wix/Wordpress etc replaced
| you). Very few jobs where you spend 100% of your time dealing
| with database backups and replication and managing the
| hardware (the cloud replaced you). Very few jobs where you
| spend all your time planning hardware capacity and physically
| inserting hard disks into racks (the cloud replaced you,
| too).
| danenania wrote:
| I think AI will shift the value from those who know _how_ to
| program toward those who know _which_ programs are most
| useful to write. In other words, we'll all become product
| engineers.
| nerdponx wrote:
| I feel very left out of all this LLM hype. It's helped me with
| a couple of things, but usually by the time I'm at a point
| where I don't know what I'm doing, the model doesn't know any
| better than I do. Otherwise, I have a hard time formulating
| prompts faster than I can just write the damn code myself.
|
| Am I just bad at using these tools?
| packetlost wrote:
| No, you're likely just a better programmer than those relying
| on these tools.
| ParetoOptimal wrote:
| That could be the case and likely is in areas where they
| are strongest, just like the articles example of how its
| not as useful for systems programming because he is an
| expert.
|
| If you ask it about things you don't know it was likely
| trained on high quality data for and get bad answers, you
| likely need to improve your writing/prompting.
| packetlost wrote:
| Except it's _most_ dangerous when used in areas that you
| 're weakest because it will confidently spit out subtly
| wrong answers to everything. It is _not_ a fact engine.
| countWSS wrote:
| Its useful for writing generic code/template/boilerplate,
| then customizing it by inserting your own code. For something
| you already know better, there isn't a magic prompt to
| express it, since the code is not generic enough for LLM to
| understand as a prompt.
|
| Its best usecase is when you're not a domain expert, need
| quickly to run some unknown API/library inside your program
| inserting code like "write a function for loading X with Y in
| language Z" when you barely have an idea what is X,Y,Z. Its
| possible in theory to break-down everything to "write me a
| function for N" but the quality of such functions is not
| worth the prompting in most situations and you better ask it
| to explain how to write a function X,Y,Z step-by-step.
| teaearlgraycold wrote:
| You can use LLMs as documentation lookups for widely used
| libraries, eg: the Python stdlib. Just place a one line
| comment of what you want the AI to do and let it autocomplete
| the next line. It's much better than previous documentation
| tools because it will interpolate your variables and match
| your function's return type.
| Ldorigo wrote:
| As the article says, it helps to develop an intuition for
| what the models are good or bad at answering. I can often
| copy-paste some logs, tracebacks, and images of the issue and
| demand a solution without a long manual prompt - but it takes
| some time to learn when it will likely work and when it's
| doomed to fail.
| okwubodu wrote:
| This is likely the biggest disconnect between people that
| enjoy using them and those that don't. Recognizing when
| GPT-4's about to output nonsense and stopping it in the
| first few sentences before it wastes your time is a skill
| that won't develop until you stop using them as if they're
| intended to be infallible.
|
| At least for now, you have to treat them like cheap metal
| detectors and not heat-seeking missiles.
| steppi wrote:
| I've developed a workflow that's working pretty well for me.
| I treat the LLM as a junior developer that I'm pair
| programming with and mentoring. I explain to it what I plan
| to work on, run ideas by it, show it code snippets I'm
| working on and ask it to explain what I'm doing, and whether
| it sees any bugs, flaws, or limitations. When I ask it to
| generate code, I read carefully and try to correct its
| mistakes. Sometimes it has good advice and helps me figure
| out something that's better than what I would have done on my
| own. What I end up with is like a living lab notebook that
| documents the thought processes I go through as I develop
| something. Like you, for individual tasks, a lot of times I
| could do it faster if I just wrote the damn code myself, and
| sometimes I fall back to that. In the longer term I feel like
| this pair programming approach gives me a higher average
| velocity. Like others are sharing, it also lowers the
| activation energy needed for me to get started on something,
| and has generally been a pretty fun way to work.
| x0x0 wrote:
| Here's what I find extremely useful:
|
| 1 - very hit or miss -- I need to fidget with the aws api in
| some way. I use this roughly every other month, and never
| remember anything about it between sessions. ChatGPT is very
| confused by the multiple versions of the APIs that exist, but
| you can normally talk it into giving you a basic working
| example that is then much easier to modify into exactly what
| I want than starting from scratch. Because of the multiple
| versions of the aws api, it is extremely prone to
| hallucinating endpoints. But if you persist, it will
| eventually get it right enough.
|
| 2 - I have a ton of bash automations to do various things.
| just like aws, I touch these infrequently enough that I can
| never remember the syntax. chatgpt is amazing and replaces
| piles of time googling and swearing.
|
| 3 - snippets of utility python to do various tasks. I could
| write these, but chatgpt just speeds this up.
|
| 4 - working first draft examples of various js libs, rails
| gems, etc.
|
| What I've found has extremely poor coverage in chatgpt is
| stuff where there are basically no stackoverflow articles
| explaining it / github code using it. You're likely to be
| disappointed by the chatgpt results.
| simonw wrote:
| I'd reframe that slightly: it's not that you are bad at using
| these tools, it's that these tools are deceptively difficult
| to use effectively and you haven't yet achieved the level of
| mastery required to get great results out of them.
|
| The only way to get there is to spend a ton of time playing
| with them, trying out new things and building an intuition
| for what they can do and how best to prompt them.
|
| Here's my most recent example of how I use them for code:
| https://til.simonwillison.net/github-actions/daily-planner -
| specifically this transcript: https://gist.github.com/simonw/
| d189b737911317c2b9f970342e9fa...
| wharvle wrote:
| Yeah, I'm not sure how often these tools will really help me
| with the things that end up destroying my time when
| programming, which are stuff like:
|
| 1) Shit's broken. Officially supported thing _kinda_ isn't
| and should be regarded as alpha-quality, bugs in libraries,
| server responses not conforming to spec and I can't change
| it, major programming language tooling and /or whatever CI
| we're using is simply bad. About the only thing here I can
| think of that it might help with is generating tooling config
| files for the _bog standard simplest use case_ , which can
| sometimes be weirdly hard to track down.
|
| 2) Our codebase is bad and trying to do things the "right"
| way will actually break it.
| pmontra wrote:
| I give you an example. I took advantage of some free time in
| these days to finally implement some small services on my
| home server. ChatGPT (3.5 in my case) has read the
| documentation of every language, framework, API out there. I
| asked it to start with Python3 http.server (because I know
| it's already on my little server) and write some code that
| would respond to a couple of HTTP calls and do this and that.
| It created an example that customized the do_GET and do_POST
| methods of http.server, which I didn't even know exist (the
| methods.) It did do well also when I asked it to write some
| simple web form. It did not so well when things got more
| complicated but at that point I already knew how to proceed.
| I finished everything in three hours.
|
| What did it save me?
|
| First of all the time to discover the do_GET and do_POST
| methods. I know that I should have read the docs but it's
| like asking a colleague "how do I do that in Python" and
| getting the correct answer. It happens all the time,
| sometimes it's me to ask, sometimes it's me to answer.
|
| Second, the time to write the first working code. It was by
| no means complete but it worked and it was good enough to be
| the first prototype. It's easier to build on that code.
|
| What it didn't save me? All the years spent to recognize what
| the code written by ChatGPT did and to learn how to go on
| from there. Without those years on my own I would have been
| lost anyway and maybe I wouldn't been able to ask it the
| right questions to get the code.
| jay_kyburz wrote:
| I've been learning boring old SQL over the last few months,
| and I've found the AIs quite helpful at pointing out some
| things that are perhaps too obvious for the tutorials to
| call out.
|
| I don't mind taking suggestions about code from an AI
| because I can immediately verify the AI's suggestion by
| running the code, make small edits, and testing it.
| nickpsecurity wrote:
| I had good results by writing my requirements like they were
| very, high-level code. I told it specifically what to do.
| Like formal specifications but with no math or logic. I
| usually defined the classes or data structures, too. I'd also
| tell it what libraries to use after getting their names from
| a previous, exploratory question.
|
| From there, I'd ask it to do one modification at a time to
| the code. I'd be very precise. I'd give it only my
| definitions and just the function I wanted it to modify. It
| would screw things up whereby I'd tell it that. It would fix
| its errors, break working code with hallucinations, and so
| on. You need to be able to spot these problems to know when
| to stop asking it about a given function.
|
| I was able to use ChatGPT 3.5 for most development. GPT 4 was
| better for work needed high creativity or lower
| hallucinations. I wrote whole programs with it that were
| immensely useful, including a HN proxy for mobile.
| Eventually, ChatGPT got really dumb while outputting less and
| less code. It even told me to hire someone several times
| (?!). That GPT-3-Davinci helped a lot suggests it's their
| fine-tuning and system prompt causing problems (eg for
| safety).
|
| The original methods I suggested should work, though. You
| want to use a huge, code-optimized model for creativity or
| hard stuff, though. Those for iteration, review, etc can be
| cheaper.
| ithkuil wrote:
| I felt the same every time I tried to get some help in a
| subject matter where my knowledge was quite advanced and/or
| when the subject matter was obscure/niche.
|
| Whenever I tried it on something more common and/on in some
| stuff I had absolutely zero familiarity it did help me
| bootstrap quicker than reading some documentation would have
|
| That tells a lot about how hard it is to write/find
| documentation that is tailored exactly to you and your needs
| kodablah wrote:
| I had a project recently: building an advanced Java class file
| analyzer. I knew a lot about ow2 asm libraries, but it saved me
| a lot of digging time remembering exact descriptor formats.
| Also it helped me understand why other static analysis
| libraries weren't good enough for me for stateful reasons.
|
| For me, ChatGPT is doing two things: 1) saving trivial
| StackOverflow and library code walking to answer specific
| question, and 2) helping the initial project research stage to
| grasp feasibility of approaches I may take before starting.
| michaelbrave wrote:
| to add to that I've heard a lot of people who have things like
| ADHD saying LLM's are life changing more than say neurotypical
| people. For those of us with bad ADHD doing simple things are
| the hardest, just taking out the trash or opening the mail is
| nearly impossible, your internal dialog is screaming at you for
| hours to just do the thing, but your body won't listen. They
| call it executive dysfunction, but it's the bane of my life
|
| LLM's helping to just start the thing is actually a huge deal.
| apwell23 wrote:
| I use chatgpt as my thinking partner writing code. I chat with it
| all day everday to finish work.
|
| My company has approved copilot but Copilot autocomplete has been
| an awful experience. company hasn't approved copilot chat ( which
| is what i need) .
|
| But I would love something similar that can run on my laptop for
| my code to generate unit tests, code comments ect ( ofcourse with
| my input and guidance).
| deergomoo wrote:
| > My company has approved copilot but Copilot autocomplete has
| been an awful experience
|
| I had the same experience, I feel like I must be crazy because
| so many of my colleagues have been singing its praises. I found
| it immensely distracting and disabled it again after a couple
| of days.
|
| It was like having someone trying to finish my sentence while I
| was still speaking; even when they were right, it was still
| annoying and knocked me out of my flow (and very often, it
| wasn't right).
| fipar wrote:
| I actually find copilot quite useful but I use it from emacs
| and it only provides suggestions when I intentionally hit my
| defined shortcut for it, so it never gets in the way. It may
| be worth for you to try setting it up in a similar way in the
| tool you're using it from, as I agree I'd find the experience
| awful if it was always trying to autocomplete my sentences.
| moffkalast wrote:
| Fwiw, there are now some local models that rival 3.5-turbo in
| code chat, like the Codeninja I tried out the other day. Not
| nearly as good as 4 which iirc runs the copilot backend, but
| for sensitive data that can't leave the premises it's the only
| real option. Or getting a dedicated instance from OpenAI I
| guess.
| cassianoleal wrote:
| If you use VS Code or a JetBrains IDE, Continue works well with
| Ollama and it's really easy to get going.
|
| [0] https://continue.dev/
|
| [1] https://ollama.ai/
| unshavedyak wrote:
| Any opinion on what the best experience is, currently?
| cassianoleal wrote:
| What do you mean by experience?
|
| If you mean the model, I've been happy with Deepseek Coder.
| Mistral is a popular alternative as well.
| cies wrote:
| > This should really make programmers think. Is it worth writing
| programs of this kind? Sure, you get paid, and quite handsomely,
| but if an LLM can do part of it, maybe it's not the best place to
| be in five or ten years.
|
| Some one, a person with a sense of responsibility, has to sign
| off on changes to the code. LLMs have shown to come with answers
| that make no sense or contain bugs. A person (for now) needs to
| decide is the LLM's suggestion is acceptable, if we need more
| tests, if we want to maintain it.
|
| I think programmers will be needed for that, they will just be
| made more productive (as what happened with the introduction of
| garbage collection, strong typed languages, powerful IDEs,
| StackExchange, ...)
| fallingknife wrote:
| I have found only a few cases where ChatGPT has been very useful
| to me. e.g. writing long SQL queries and certain mathematical
| functions like finding the area of intersection of two
| rectangles. And it hallucinates enough that a lot of the time I
| can't use it because I know it would take more time to check it
| for correctness and edge cases than it would to just write it in
| the first place. Maybe I am using it wrong, but so far the
| results for me have been extremely impressive, but not yet very
| useful.
| plagiarist wrote:
| I'm surprised it can do long SQL queries, I wouldn't have
| thought. I've been looking into PRQL or other solutions to
| cover that ground. Can it do reasonably complex things like
| window functions?
| fallingknife wrote:
| Never tried it with something like that. I just mean long as
| in a lot of text like selecting a lot of stuff from a lot of
| tables and grouping, etc.
| boulos wrote:
| I really like the argument about misinformation vs testing. I'm
| not totally sold on "you can just see it", but I do think
| something like TDD could suddenly be really productive in this
| world.
|
| I've found autocomplete via these systems to be improving
| rapidly. For some work, it's already a big boost, and it's close
| to a difference in kind from the original IntelliSense. Amusingly
| though, I primarily write in an editor without any autocomplete,
| so I don't experience this often. But I do, _precisely_ for the
| throwaway code and lower-value changes.
|
| Finally, it's not clear to me that the distinction is between
| systems programming and scripting. My sense is that Chat GPT and
| similar are (a) heavily influenced by the large corpus of Python,
| so it's better at it than C and (b) the examples here involved
| more clever bit manipulation than _most_ software engineers ever
| interact with.
| 082349872349872 wrote:
| > _the examples here involved more clever bit manipulation than
| most software engineers ever interact with_
|
| Perlis once quoth:
|
| > _18. A program without a loop and a structured variable isn
| 't worth writing._
|
| After 5 minutes of thought, I'd update that, for my hacking,
| to:
|
| "A program without some convergence reasoning and a non-
| injective change of representation isn't worth writing."
|
| (iow, I'd be happy to let LLMs, or at least other people,
| wrangle glue and parsley code, according to the taxonomy of:
| https://news.ycombinator.com/item?id=32498382 )
| boulos wrote:
| I like the term parsley code!
|
| I do suspect though that both the hashing and 6-bit weight
| examples are just _extremely rare_ in the corpus. It wasn 't
| confused about loops, or hashing generally, but just didn't
| do as well as antirez would have liked. The description of
| the 6-bit to "why don't I just cast this to 8-bits" thing is
| definitely a problem. And worse, it's a problem a more junior
| engineer might not understand. But I suspect that a model
| trained on a corpus with lots more bit manipulation would
| have been fine, as it wasn't complex.
|
| Clearly we just need a fine tuned one :).
| gumballindie wrote:
| For me LLMs revealed how easily it is to manipulate masses with
| properly done marketing. Despite these tools being obviously
| unreliable, tens of people on here report how well they work and
| how much they changed their lives. Shows that with sufficient
| propaganda you can make people see and feel things which are not
| there - not a new concept. But what's new to me is just how easy
| it is.
| bratbag wrote:
| I'm ok with a degree of unreliability when experimenting with
| new ideas.
|
| That's a tradeoff I already make when using relativly new third
| party libraries/services to accelerate experimentation.
| gumballindie wrote:
| That is ok, I do it too - that's why I use tools such as
| chatgpt. But from that to calling it life changing there's a
| wide gap. The tool is nowhere near what's advertised, far
| from it.
| pluc wrote:
| bro it's 2024, get SSL
| netcraft wrote:
| When it comes to programming, I agree completely. The sweet spot
| for any use of LLMs is that you already know enough about the
| subject to verify the work - at least the output - and know
| enough how to describe in detail (ideally only salient details)
| what you want. Huge +1 to it helping me do things faster, do
| things that I wouldnt have otherwise done, or using it for
| throwaway, mostly inconsequential yet valuable programs.
|
| But another area I have found it extremely helpful in is
| exploring a new topic entirely, programming or otherwise. Telling
| it that I dont know what im talking about, don't necessarily need
| specifics, but here is what I want to talk about and want it to
| help me think through.
|
| Especially if you are that person who is willing to take what you
| hear and do more research or ask more question. The entrance to
| so many fields and subjects is just understanding the basic
| jargon, listening for the distinctions being made and
| understanding why, and knowing who the authorities are on the
| subject.
| netcraft wrote:
| I'll add another thought here - what I really want many times
| is a custom LLM like GPT, but trained on a particular language
| or framework or topic. I would love to go to a website for a
| new language and be able to talk about its documentation and
| ask questions of an LLM to help me understand. Huge bonus
| points if it was trained on real world code examples of that
| language or framework and I could have it help me write a new
| program or function right there. More bonus points if its tied
| in with an online repl where it can help me right inline.
| j4yav wrote:
| And it's equally and inversely harmful to junior developers who
| keep prodding it until it generates an abomination they don't
| understand that manages to pass the build. People who are
| learning need help, but the kind of help that LLMs in copilot
| form provide aren't the right fit.
|
| It would be interesting to train a copilot model that is
| specifically intended to ask clarifying questions and be a
| partner in determining a solution, rather than doing its best
| to generate code for a vague or incorrectly specified question
| from a junior.
| makk wrote:
| Have you tried prompting it to ask clarifying questions and
| be that partner? Perhaps no (extra) training required.
| j4yav wrote:
| In my opinion the junior developers are not equipped to
| guide their teacher. If they knew they were asking to turn
| an incorrect assumption into code in the first place, they
| already wouldn't believe the confident hallucination they
| get in reply.
| CaptainFever wrote:
| > And it's equally and inversely harmful to junior developers
| who keep prodding it until it generates an abomination they
| don't understand that manages to pass the build.
|
| This sounds like shotgun debugging.
| j4yav wrote:
| While on LSD in this case.
| itomato wrote:
| The One and Six Pagers I have it write based on loose criteria
| help me refine the criteria and in some cases, uncover methods
| that would not have been evident otherwise.
| anileated wrote:
| Last month I tried to use LLMs for things I didn't know and
| couldn't easily find. Every time they were either subtly wrong
| or outright hallucinated premises which led me to waste time
| until I realized they were wrong.
|
| If not for the unwarranted confidence in incorrect responses, I
| could say they were at least not much worse than what I could
| piece together from what I knew. As it stands, they are OK
| filling in for a rubber duck and as autocomplete.
| _giorgio_ wrote:
| Surely a bad LLM, not chatGPT 4
| jay_kyburz wrote:
| I can't tell if you are joking or not.
| amclennon wrote:
| > At the same time, however, my experience over the past few
| months suggests that for system programming, LLMs almost never
| provide acceptable solutions if you are already an experienced
| programmer.
|
| In one off tasks where someone is not enough of an expert to know
| its flaws, and such expertise is not required, "the marvel is not
| that the bear dances well, but that the bear dances at all".
| miki123211 wrote:
| I think the most under-appreciated aspect of LLMs, one on which
| the article touched on but didn't directly address, is being the
| "developer that knows everything" aspect.
|
| No matter how senior of a programmer you are, you're eventually
| going to encounter a technology you know very little about.
| You're always going to be a junior at something. Maybe you're the
| God of Win32, C++ and COM, but you get stuck on obscure NSIS
| scripts when packaging your software. Maybe you've been writing
| web apps for the last 25 years and sit on the PHP language
| committee, but then you're asked to implement some obscure ISO
| standard for communicating with credit card networks, and you've
| never communicated with credit card networks on that level
| before. Maybe you've been writing iOS apps since the first iPhone
| and Mac apps before that, spent a few years at Apple, know most
| iOS APIs by heart and designed quite a few yourself, but then
| you're asked to implement CalDAV support in your app and you
| don't know what CalDAV is, much less how to use it. An LLM can
| help you out in these situations. Maybe it won't write all the
| code for you, but it'll at least put you on the right track.
| reactordev wrote:
| >"No matter how senior of a programmer you are, you're
| eventually going to encounter a technology you know very little
| about"
|
| Or worse, you've filled your head with different tech and now
| you need to rehash and brush up on stuff you learned prior but
| swept under the rug for new stuff. It's a strange sensation.
| Naturally you just go with the median of whatever your company
| you work for is doing - then find yourself in this situation
| where it's "been a while" since you worked on CSS. Or it might
| take you a weekend of study to bring back those Python
| dataclass skills.
| sime2009 wrote:
| I've found LLMs great for vague questions about functions and
| APIs whose details I've long forgotten. Recognising the right
| answer when it appears is often faster than digging through
| random results on google.
| Salgat wrote:
| At its heart GPT is the world's best googler. As long as you
| can find it on Google, an LLM can probably do a better and
| faster job of finding and curating the information for you.
| jay_kyburz wrote:
| errr, I don't know about that. I like to ask the AIs about
| products I built and know everything about as a test, and
| while they often get the top level facts correct, there is
| always some crazy hallucination that you won't find googling.
| tmaly wrote:
| I think LLMs are good for quick prototyping first drafts of small
| functions or simple systems.
|
| For me they help when time is short and when I want to maximize
| creative exploration.
| pknerd wrote:
| Besides using chatGPT for certain pieces of code that use a 3rd
| party library. I successfully used it as a "Code Reviewer". I
| recently copied functions of a Symfony PHP controller and asked
| for a code review and suggestions for refactoring with code and
| reasons. Surprisingly it worked very well and I was able to
| refactor a good amount of code.
| kvz wrote:
| antirez thank you for talking some sense. I've seen skilled devs
| discard LLMs entirely based on seeing one (too many)
| hallucinations, then proclaiming they are inferior and throwing
| the baby away with the bathwater. There is still plenty of use to
| be had from them even if they are imperfect.
| couchand wrote:
| This post is absolutely devastating to me. Salvatore is surely
| one of the most capable software engineers working today. He can
| lucidly see that this supposed tool is completely useless to him
| within his area of expertise. Then, rather than cast it off as
| the ill-fitting, bent screwdriver that it is, he accepts the
| boosters' premise that he must find some use for it.
|
| Just as any introductory macroeconomics class teaches, if one
| island has superior skill in producing widgets A, it doesn't
| matter how terrible the other island's skill at producing B is,
| we'll still see specialization where island A leverages island B.
| So of course antirez's relative ability in systems programming
| would relegate the LLM to other progamming tasks.
|
| However! We do not exist in isolation. There is a multitude of
| human beings around us, hungry for technical challenges and food.
| Many of them have or could obtain skills complimentary to our
| own. In working together, our cooperative efforts could be more
| than the sum of their parts.
|
| Perhaps the LLM is better at writing PyTorch code than antirez.
| Just because we have an old bent screwdriver in the garage
| doesn't mean we should try to use it. Perhaps we'd be better off
| heading to the hardware store today.
| nuz wrote:
| The funny thing about LLMs is that there's no rush in adopting
| them. They're semi useful but not really right now, but you're
| not gonna be 'left behind' if you don't make use of them.
| Everyone involved is working their hardest to make them more
| capable so when that day comes, you'll just use it to prompt
| what you want. But there's no rush to try to squeeze out
| anything out of the current generation which mostly lowers
| productivity rather than increases it.
| fhd2 wrote:
| My thinking exactly! There's FOMO going on (and being fueled
| by people most of which seem to hope to somehow make money
| off it), but the barriers to entry for using LLMs are just
| not that high. When the tools are good enough, I'll happily
| use them. Today, for the work I do, I found that not to be
| the case yet. I wouldn't advocate for not trying them, but I
| see no reason to force yourself to use them.
| unshavedyak wrote:
| Yea. TBH the tooling is the bigger issue for me,
| personally. I come across a ton of times where an LLM might
| work, or could - potentially. Usually refactors. But it
| requires access to basically all my files, both for context
| and to find where references to that class/struct/etc are.
|
| Furthermore, i'd vastly prefer a workflow most of the time
| where i don't even have to ask. Or so i imagine. Ie i think
| i'd prefer a Clippy style "Want me to write a test for
| this? Want me to write some documentation for this?" etc
| helpers. I don't want to have to ask, i want it to intuit
| my needs - just like any programmer could if pair
| programming with you.
|
| And most of all i want it to have access to all files. To
| know everything about the code possible. Don't just look at
| the func name in isolation, _attempt_ to understand how it
| 's used in the project.
|
| If i have to baby sit an LLM for a simple function refactor
| to give it all files where the function is used or w/e, i'd
| rather do it myself with tools like AST Grep or even my LSP
| in many cases.
|
| I'm very interested in LLMs for simple tasks today, but the
| tooling feels like my primary blocker. Also possibly
| context length, but i think there's lots of ways around
| that.
| thenevermind wrote:
| Just to throw my 2c here, since I also want the models to
| access the whole codebase of (at least) the current
| project.
|
| I had great impression of sourcegraph's cody.
| https://sourcegraph.com/cody few months ago.At least with
| the enterprise version of the sourcegraph that had
| indexed most of the orgs private repos.
|
| The web ui (vscode extension was somehow worse, not sure
| why) was providing damn good responses, be it code
| generating or QA/explanation about code spanning through
| multiple repos. (e.g. terraform modules living in
| different repos)
|
| Afaiu it was using the sourcegraph index under the hood.
| But I never really deep dived into the cody's design
| internals (not even sure if they are actually public)
|
| That being said, I've departed from the org months ago
| and haven't used cody since then, so take this with a
| grain of salt, since the whole comment could be outdated
| a lot.
| madeofpalk wrote:
| I think this is an extremely unfavorable interpretation of the
| article. I wonder if we even read the same thing?
|
| He sees a new tool that others have found interesting, and he
| identifies ways to use that tool that are useful _for him_ ,
| while also acknowledging where it's not useful. He backs it up
| with plenty of examples of where he found it not-useless. This
| is not a revolutionary insight, especially for a developer. We
| constantly use a variety of tools, such as programming
| languages, that have strengths and weaknesses. Why are LLMs so
| different? It seems foolish to claim they have zero strengths.
| HarHarVeryFunny wrote:
| You might be surprised at the number of large companies who
| think that "GenAI" can be used to replace programmers due to
| non-technical executives having got the impression that a
| competency of LLMs is writing code ...
|
| Of course they do have uses, but more related to discovery of
| APIs and documentation than actually writing code (esp. where
| bugs matter) for the most part.
|
| I also have to wonder how long until open source code (e.g.
| GPL'd) regurgitated by LLMs and incorporated into corporate
| code bases becomes an issue. The C suite dudes seem concerned
| about employees using LLMs that may be publicly exposing
| their own company's code base, but illogically unworried
| about the reverse happening - maybe just due to not fully
| understanding the tech.
| antirez wrote:
| If the LLM is better than me at writing Torch code, it is a
| great idea for me to use an LLM to write my model definition,
| since the exact syntax or the reshaping of the tensors is not
| so important to me. If I want to create a convnet and train it
| on my images, for my own usage, I don't need to bother some
| Torch expert to do it for me. I can do it myself, if I
| understand enough about convnets _themselves_ and not enough
| about Torch syntax / methods. The alternative would be to
| study the details of Torch in a manual, and the end result
| would be the same: the important thing in this task is to
| govern the ML concepts, not the details of MLX, Keras or
| PyTorch.
| couchand wrote:
| > I don't need to bother some Torch expert to do it for me.
|
| This is, indeed, the core of our disagreement. You seem
| confident it would be a bother to others to ask for help. I'm
| confident that there are many who would value the opportunity
| to collaborate with you. I feel sure that whatever analysis
| you're doing could benefit from the sounding board of a
| domain expert, and you'd both benefit from the exchange.
|
| EDIT: to clarify, being "famous" has nothing to do with it.
| Each of us has worth and we all would gain by working with
| others.
| hobs wrote:
| That's a pretty big exception to the general case though if
| your argument is "you are a famous person and people would
| love to collab" - at 2am your time, exactly when you are
| motivated? And what if you are not a world famous
| programmer, what then?
|
| To me its like saying you shouldn't play solitaire because
| you are a world class poker player, and there's plenty of
| people who want to game with you. They are orthogonal
| concepts - just communicating with people can be more work
| than just reading on your own.
| kreetx wrote:
| It's more of the scale you do your thing. For the quick and
| dirty thing, I'm going to write Torch model within the
| hours - where would I find a collaborator who is willing to
| start immediately within that time?
| e12e wrote:
| At least the LLM is in the same time zone...
| ativzzz wrote:
| You're right, but not always. Some people work differently
| than others and would rather headbutt against a wall on
| their own for hours than work with other people.
|
| In the long term, it is beneficial to have experts as your
| collaborators. From my experience though, true
| collaboration is unlocked once you have established a
| personal relationship with someone, which takes time and
| repeated effort. Until then, the collaboration is no better
| than searching the internet or asking chatGPT.
|
| Establishing relationships with people is hard and takes a
| lot of work, and frequently doesn't work out like you hope.
| ChatGPT is a close enough approximation for smaller tasks
| like the OP describes
| couchand wrote:
| It's hard, and many of us (myself included) and not great
| at it. That makes it seem easier to reach for the
| simulacrum. But at what cost?
|
| Homo sapiens's superpower is social cooperation. My
| concern is that these systems will abet the existing
| social forces which seem to be causing unprecendented
| levels of isolation of adults, which will continue to
| drive smart people away from collaboration and towards
| solitude, at a level far beyond simple prefences would
| suggest.
|
| We already have enough trouble hearing each other through
| the noise, and understanding what each other has to say.
| I don't have the answers but I'm looking for them and I
| do hope other humans will, too.
| ativzzz wrote:
| I think people tend to cooperate only when there are
| tangible benefits such as:
|
| - survival
|
| - making money
|
| - sex
|
| - enjoyment via social interactions (like parties,
| hangouts, etc)
|
| It just so happens that for the majority of our
| civilization, to get those things, we've had to
| cooperate, but as we develop technology, our ability to
| get those things increases and our reliance on others
| decrease (though in a weird way it increases since
| technology is complexity so society becomes larger, more
| complex, and more inter-dependent)
|
| We are still in an unprecedented technological boom of
| computing so we are adjusting on the fly to it. Like the
| OP says, AI can greatly accelerate independent learning,
| but eventually that learning plateaus. Once it does, we
| have to go back to collaboration, but until we find that
| limit, I think it's human nature to push on.
| mistrial9 wrote:
| no - predatory behavior in groups is completely missing
| from this list. To extend that ides, IMHO much of
| "business" and some government, falls into this category
| easily. This is true for all large language groups world
| wide, irrespective of politics details.
| ilaksh wrote:
| You said yourself. They are "social forces". In other
| words, problems that people created. Not technology
| problems.
|
| I think there is an incorrect worldview that tries to
| blame human problems on technology.
|
| It's quite true that isolation is an increasing problem.
| But the idea that instead of using an AI that can spit
| out a comprehensive answer in seconds, we should all
| pretend that such tools don't exist, and start constantly
| asking for help with every idea or request instead, while
| waiting 3-100 times longer for a less thorough response,
| is ludicrous.
|
| It's a great idea to collaborate more and try to avoid
| isolation. But those are societal problems. They are not
| caused by the latest tools.
|
| Also, as far as humanity's "super-power" as being
| collaboration, this is quite a shortsighted comment. I
| believe that well before AI achieves "super" level IQ, it
| will vastly outperform humans due to other advantages.
| One of those advantages is speed. Another is the ability
| to communicate and collaborate much, much more rapidly
| and effectively than humans.
|
| One type of digital life that may take over control of
| the planet (possibly within decades rather than
| centuries) would be a type of swarm intelligence with the
| ability to actually "rsync" mental models to directly
| transfer knowledge.
| politician wrote:
| Local inference of LLMs is essentially free. There doesn't
| exist a sufficiently deep pool of experts of all knowledge
| spaces who are also willing to work for free, who can be
| trivially identified, contacted, and scheduled.
| dash2 wrote:
| The argument here seems to be that there is a free supply
| of software developers available for the taking. Software
| developers are quite well paid, which suggests this is not
| true.
| ctoth wrote:
| Hi Couchand.
|
| I'm a mediocre programmer who uses GPT for a ton.
|
| Are you volunteering to answer my questions on all the
| obscure stuff I ask it? Because I don't really know anybody
| else who will.
|
| Anyway, my email is in my profile, write to me if this is
| something you're up for!
|
| Edit: Here's a list of the stuff I asked it over the
| weekend:
|
| - Discuss the pros and cons of using Standardized-audio-
| context instead of just relying on browser defaults.
| Consider build size and other issues.
|
| - How to get github actions to cache node_modules (not the
| npm cache built-in to the actions/setup-node action.
|
| - Howto get the current git hash in a GitHub action?
|
| - Rewrite a react class-based component in functional style
|
| - How to test that certain JSX elements were generated
| without directly-comparing React elements for my ANSI color
| to HTML parser?
|
| - Does it make more sense to keep a copy of the original
| text in an editor, or just hold on to something like a
| crc32 to mark a document dirty?
|
| - Can you set focus to a window you create with
| window.open? (You sure can!)
|
| - Rewrite the rollup.config.js for a library of mine to
| produce a separate rollup config per audio worklet bundle
|
| - Turn this tutorial for backing up a Mastodon instance
| into a script
|
| - Refactor a standalone class to split it in half so each
| class manages precisely one thing.
|
| - I have some code I'm writing for turn-by-turn directions.
| I have the data structures already, let's write code to
| narrate them.
|
| - What's with this weird type error around custom CSS
| properties with React?
| ParetoOptimal wrote:
| If the pytorch piece is for something low priority, its
| probably not worth reaching out to someone else.
| madeofpalk wrote:
| I'm not going to ask a human - even a coworker - for every
| intellisense suggestion. Neither of us would get value from
| that exchange.
| Salgat wrote:
| For small tasks this is fine, but for larger projects you
| have to be careful. The key to being productive with an LLM
| for coding is to be able to understand the code being
| generated, to avoid rather nasty bugs that may crop up if the
| model hallucinates. The worst part is that an LLM will create
| these bugs in very subtle ways, since it excels at writing
| convincing code (whether or not it actually works).
| rolisz wrote:
| So you're suggesting that instead of asking an LLM, we should
| spend time on Fiverr/Upwork to find someone to do random coding
| tasks that might not fall under our expertise? Can you do that
| for less than 20$/month?
| couchand wrote:
| I agree there are difficult coordination problems that our
| society has failed to grapple with, let alone solve.
| esafak wrote:
| I don't understand which part was devastating.
| nkohari wrote:
| > He can lucidly see that this supposed tool is completely
| useless to him within his area of expertise.
|
| Did you read the article? Throughout the entire post he clearly
| says LLMs have a lot of value in his workflow.
| sevagh wrote:
| Parent seems to think that Antirez has been begrudgingly
| pulled along by the tide of LLM hype, not as if Antirez is an
| accomplished developer whose judgement on tools can be
| trusted.
| throwuwu wrote:
| Bad metaphor and worse that you use it to inform your
| conclusion. If you must have one then use training wheels,
| experts don't need training wheels beginners do, simple as
| that. Though the utility of LLMs goes much further as the
| author points out, it can often make the boring or tedious
| parts easier so you can add assistive peddling to the metaphor.
| To carry it to the end, once you have four wheels and a motor
| it's not long before someone invents the car.
| Symmetry wrote:
| In a frictionless market it would make sense to do that. But as
| Coase pointed out nearly a century ago[1] forming and
| monitoring the relationships that allow specialization involves
| a certain amount of overhead. At a certain point going through
| the hiring or vetting process to utilize another person's
| skills makes sense, but it looks like the author is very far
| from that point.
|
| [1]https://en.wikipedia.org/wiki/The_Nature_of_the_Firm
| antonvs wrote:
| This seems like a very impractical perspective to me. If there
| really was a "hardware store" that we could head off to to get
| what we need, it might be different. But in general, that's not
| the case.
|
| There can also be significant overhead in looking elsewhere for
| a solution. That's a big part of why so many developers
| reinvent things. This is often dismissed as NIH syndrome, but
| there's more to it than that.
|
| You raised "introductory macroeconomics". The economic effect
| that will most strongly apply in the case of LLMs is that of
| the technology treadmill (Cochrane 1958): when there's a tool
| that can improve productivity, it will be used competitively so
| that those who don't use it effectively, to improve their
| productivity, will be outcompeted.
|
| This seems like an unavoidable result in typical capitalist
| economies.
|
| Your point about leveraging hungry humans would require strong
| incentives to overcome the treadmill effect. Most Western
| countries don't have many ways to implement anything like that.
| The closest thing might be unions, but of course most software
| development is not unionized.
| bbor wrote:
| Like... hiring people? I think it's a little rediculous to say
| "no don't use that screwdriver, go hire a workman instead." To
| say the least, there are some sizeable economic differences
| between those two options
| dmezzetti wrote:
| While there clearly was a lot of hype, retrieval augmented
| generation (RAG) proved to be an effective technique with LLMs.
| Using RAG with project documentation and/or code can be useful.
| eminence32 wrote:
| > Since the advent of ChatGPT, and later by using LLMs that
| operate locally
|
| Does HN have any favorite local LLMs for coding-related tasks?
| duckkg5 wrote:
| deepseek-coder has been decent for my purposes
| kubrickslair wrote:
| Phind-CodeLlama-34B-v2 seems to work well for our team.
| voidhorse wrote:
| I enjoy antirez's work, and I enjoyed this essay, but I disagree
| with many of its conclusions. In particular:
|
| > this goal forces the model to create some form of abstract
| model. This model is weak, patchy, and imperfect, but it must
| exist if we observe what we observe.
|
| Is a completely fallacious line of reasoning, and I'm surprised
| that he draws this conclusion. The whole reason the "problem of
| other minds" is still a problem in philosophy is precisely
| because we cannot be certain that some "abstract model" exists in
| someone's head (man or machine, do you argue it does? show it to
| me) simply because an output meeting certain constraints exists.
| This is exactly the problem of education. A student that studies
| to answer questions correctly on a test may not have an abstract
| model of the subject area at all. Even they may not be conducting
| what we call reasoning. If a student aces a test, can you
| confidently say they _actually_ understand a domain? Or did they
| simply ace a test?
|
| Furthermore, LLM's lack of consistency and inability to answer
| basic mathematical questions, and their limitation to purely text
| based areas of concern and representation are all much stronger
| arguments for siding with the notion that they really are just
| sophisticated, stochastic, machines, incapable of what we'd
| normally call reason in a human context. If LLM's "reason" it is
| a much different form of reasoning than that which human beings
| are capable of, and I'm highly skeptical that any such network
| will achieve parity to human reason until it can "grow up" and
| learn embodied in a rich, multi sensory environment, just like
| human beings. For machines to achieve reason, they will need to
| break out of the text-only/digital-only box first.
| antirez wrote:
| > is still a problem in philosophy
|
| Exactly! This is why I removed this fundamental questions from
| my post: in this moment they don't have any clear reply and
| will basically make an already complex landscape even more
| complex. I believe that right now, whatever is happening inside
| LLMs, we need to focus on investigating the practical level of
| their "reasoning" abilities. They are very different objects
| than human brains, but they can do certain limited tasks that
| before LLMs we thought to be completely in the domain of
| humans.
|
| We know that LLMs are just very complex functions interpolating
| their inputs, but this functions are so convoluted, that in
| practical ways they can solve problems that were, before LLMs,
| completely outside the reach of automatic systems. Whatever is
| happening inside those systems is not really important for the
| way they can or can't reshape our society.
| anotherpaulg wrote:
| _The code was written mostly by doing cut & paste on ChatGPT..._
|
| I am constantly shocked by how many people put up with such a
| painful workflow. OP is clearly an experienced engineer, not a
| novice using GPT to code above their knowledge. I assume OP
| usually cares about ergonomics and efficiency in their coding
| workflow and tools. But so many folks put up with cutting and
| pasting code back and forth between GPT and their local files.
|
| This frustrating workflow was what initially led me to create
| aider. It lets you share your local git repo with GPT, so that
| new code and edits are applied directly into your files. Aider
| also shares related code context with GPT, so that it can write
| code that is integrated with your project. This lets GPT make
| more sophisticated contributions, not just isolated code that is
| easy to copy & paste.
|
| The result is a seamless "pair programming" workflow, where you
| and GPT are editing the files together as you chat.
|
| https://github.com/paul-gauthier/aider
| adamgordonbell wrote:
| I like aider. But is there a way to use it to just chat about
| the code?
|
| I use LLMs to chat about pros and cons of various approaches or
| rubber duck out problems. I need to copy code over for that,
| but I've not found aider good for these kinds of things,
| because it's all about applying changes.
|
| I usually have several back and forths about the right way to
| do things and then maybe apply some change.
| anotherpaulg wrote:
| Glad to hear you're finding aider useful!
|
| Sure, there's a few things you could keep in mind if you just
| want to chat about code (not modify it):
|
| 1. You can tell GPT that at the start of the chat. "I don't
| want you to change the code, just answer my questions during
| this conversation."
|
| 2. You can run `aider --dry-run` which will prevent any
| modification of your files. Even if GPT specifies edits, they
| will just be displayed in the chat and not applied to your
| files.
|
| 3. It's safe to interrupt GPT with CONTROL-C during the chat
| in aider. If you see GPT is going down a wrong path, or
| starting to specify an edit that you don't like... just stop
| it. The conversation history will reflect that you
| interrupted GPT with ^C, so it will get the implication that
| you stopped it.
|
| 4. You can use the `/undo` command inside the chat to revert
| the last changes that GPT made to your files. So if you
| decide it did something wrong, it's easy to undo.
|
| 5. You can work on a new git branch, allow GPT to muck with
| your files during the conversation and then simply discard
| the branch afterwards.
| adamgordonbell wrote:
| Awesome, these might help.
|
| What I feel like I want is /chat where it still sends the
| context, but the prompt is maybe changed a little, to be
| closer to a chatgpt experience.
|
| I haven't dug into the prompt aider is using though, so I
| could be wrong.
|
| Great tool for refactoring changes though! Keep up the good
| work.
| spenczar5 wrote:
| Can I recommend an additional option? I would enjoy being
| able to enable a "confirm required" mode which presents the
| patch that will be applied, and offers me the chance to
| accept/reject it, possibly with a comment explaining the
| rejection.
| FiberBundle wrote:
| > OP is clearly an experienced engineer
|
| You think? He's the creator of Redis.
| jeswin wrote:
| Shameless plug: https://github.com/codespin-ai/codespin-cli
|
| It's similar to aider (which is a great tool btw) in goals, but
| with a different recipe.
| BaculumMeumEst wrote:
| For one thing the ChatGPT web interface is useful for much more
| than just programming. If you're already paying for a sub, it
| makes sense to cut and paste instead of making additional
| payments for the API. On top of that people have different
| thresholds for the efficiency gains that warrant becoming
| dependent on someone else's project, which is liable to become
| paid or abandoned.
| danielbln wrote:
| Yeah, I can ask ChatGPT to "do some web research, and
| validate the approach/library/interface/whatever", which is a
| useful feature to me.
| antonvs wrote:
| If I was doing it all the time, I might care. As it is I don't
| really find that workflow painful. It reminds me of the
| arguments about how much it helps to be able to touch type or
| type very fast. Actually inputting code is a minor part of
| development IME.
| electroly wrote:
| I really like the idea of aider but when I tried it, it didn't
| work. The first real life file I tried it on was too big and it
| just blew up. The second real life file I tried was _still_ too
| big. I was surprised that aider doesn 't seem to have the
| ability to break down a large file to fit into the token limit.
| GPT's token limit isn't a very big source file. If I have to
| both choose the files to operate on _and_ do surgery on them so
| GPT doesn 't barf, am I saving time vs. using Copilot in my
| IDE? Going into it, I had thought that coping with the "code
| size [?] token limit" problem was aider's main contribution to
| the solution space but I seem to have been wrong about that.
|
| I hope to try aider again but it's in the unfortunate category
| of "I have to find a problem and a codebase simple enough that
| aider can handle it" whereas Copilot and ChatGPT come to me
| where I am. Copilot and ChatGPT help me with my actual job on
| my real life codebase, warts and all, every day.
| anotherpaulg wrote:
| I'm sorry to hear you had a rough experience trying aider.
| Have you tried it since GPT-4 Turbo came out with the 128k
| context window? Running `aider --4-turbo` will use that and
| be able to handle larger individual source code files.
|
| Aider helps a lot when your _codebase_ is larger than the GPT
| context window, but the files that need to be edited do have
| to fit into the window. This is a fairly common situation,
| where your whole git repo is quite large but most /all of the
| individual files are reasonably sized.
|
| Aider summarizes the relevant context of the whole repo [0]
| and shares it along with the files that need to be edited.
|
| The plan is absolutely to solve the problem you describe, and
| allow GPT to work with individual files which won't fit into
| the context window. This is less pressing with 128k context
| now available in GPT 4 Turbo, but there are other benefits to
| not "over sharing" with GPT. Selective sharing will decrease
| token costs and likely help GPT focus on the task at hand and
| not become distracted/confused by a mountain of irrelevant
| code. Aider already does this sort of contextually aware
| selective sharing with the "repo map" [0], so the needed work
| is to extend that concept to a sub-file granularity.
|
| [0] https://aider.chat/docs/repomap.html#using-a-repo-map-to-
| pro...
| ilaksh wrote:
| Try again since the token limit increased in November by a
| factor of 16 (128000 now for GPT-4 Turbo 1106 preview instead
| of 8000 for GPT 4).
| danielbln wrote:
| Mind the cost though! A single request with a fully loaded
| 128k token context window to GPT-4 Turbo costs $1.28.
| _giorgio_ wrote:
| I edit cell-sized code that uses Colab GPUs, asking a lot of
| questions to chatGPT l,so copying and pasting is not a problem
| for me.
| ilaksh wrote:
| Thanks for making aider. I use it all the time. It's amazing.
| ParetoOptimal wrote:
| I currently use gptel which inserts into my buffer directly and
| has less friction than copy paste.
|
| Aider seems super cool, will check it out. What kind if context
| from the git repo does it share?
| anotherpaulg wrote:
| Glad to hear you'll give aider a try. Here's some background
| on the "repo map" context that aider sends to GPT:
|
| https://aider.chat/docs/repomap.html
| aaronscott wrote:
| Like others, wanted to say thank you for writing Aider.
|
| I think you've done a fantastic job of covering chat and
| confirmation use cases with the current features. Comments on
| here may not reflect the high satisfaction levels of most of
| your software users :)
|
| Aider helps put into practice the use cases that antirez refers
| to in their article. Especially as someone get's better at
| "asking LLMs the right questions" as antirez refers to it.
| lhl wrote:
| I've given Aider and Mentat a go multiple times and for
| existing projects I've found those tools to easily make a mess
| of my code base (especially larger projects). Checkpoints
| aren't so useful if you have to keep rolling back and re-
| prompting, especially once it starts making massive (slow token
| output) changes. I'm always using `gpt-4` so I feel like there
| will need to be an upgrade to the model capabilities before it
| can be reliably useful. I have tried Bloop, Copilot, Cody, and
| Cursor (w/ a preference towards the latter two), but
| inevitably, I end up with a chat window open a fair amount -
| while I know things will get better, I also find that LLM code
| generation for me is currently most useful on very specific
| bounded tasks, and that the pain of giving `gpt-4` free-reign
| on my codebase is in practice, worse atm.
| anotherpaulg wrote:
| There is a bit of learning curve to figuring out the most
| effective ways to collaboratively code with GPT, either
| through aider or other UXs. My best piece of advice is taken
| from aider's tips list and applies broadly to coding with
| LLMs or solo:
|
| _Large changes are best performed as a sequence of
| thoughtful bite sized steps, where you plan out the approach
| and overall design. Walk GPT through changes like you might
| with a junior dev. Ask for a refactor to prepare, then ask
| for the actual change. Spend the time to ask for code quality
| /structure improvements._
|
| https://github.com/paul-gauthier/aider#tips
| madeofpalk wrote:
| > _I have a problem, I need to quickly know something that_ I can
| verify* if the LLM is feeding me nonsense. Well, in such cases, I
| use the LLM to speed up my need for knowledge.*
|
| This is the key insight from using LLMs in my opinion. One thing
| that makes programming especially well suited for LLMs is that
| it's often trivial to verify the correctness.
|
| I've been toying around this concept for evaluating whether a LLM
| is the right tool for the job. Graph out "how important is it
| that the output is correct" vs "how easy is it to verify the
| output is correct". Using ChatGPT to make a list of songs
| featuring female artists who have won an Emmy is time consuming
| to verify it's correct, but it's also not very important and it's
| okay if it contains some errors.
| adamgordonbell wrote:
| Yeah, exactly.
|
| Problems where coming up with solution is hard but verifying a
| possible solution is easy.
|
| And we all know what that class of problems is called.
| blibble wrote:
| > One thing that makes programming especially well suited for
| LLMs is that it's often trivial to verify the correctness.
|
| is this why software never has any bugs?
| latexr wrote:
| If something is time consuming, not very important, and
| accuracy doesn't matter, perhaps the correct answer is to not
| do it. The world is already full of irrelevant inaccurate
| drivel and we'd do well to have less, not accelerate its
| production.
|
| This is not a comment on your specific example, but on the idea
| as a whole.
| sevagh wrote:
| There is an impedance problem when working on a new project.
|
| At the beginning, when there's 0% of the task done, and you need
| to start _somewhere_, with a hello world or a CMakeLists file or
| a Python script or whatever, it takes effort. Before ChatGPT/LLM,
| I had to pull that effort out from within myself, with my
| fingertips. Now, I can farm it out to ChatGPT.
|
| It's less efficient, not as powerful as if I truly "sat down and
| did it myself," but it removes the cost of "deciding to sit down
| and do it myself." And even then, I'm cribbing and mashing
| together copy-pasted fragments from GitHub code search,
| Stackoverflow, random blog posts, reading docs, Discord, etc.
| After several attempts and retries, I have a "5% beginning" of a
| project when it finally takes form and I can truly work on it.
|
| I sort of transition from copy-pasting ChatGPT crap to quickly
| create a bunch of shallow, bullshit proofs-of-concept, eventually
| gathering enough momentum to dive into it myself.
|
| So, yes, it's slower, and more inefficient, and ChatGPT can't do
| it better than I can. But it's easier and I don't have to dig as
| deep. The end result is I have much more endurance in the actual
| important parts of the project (the middle and end), versus
| burning myself out on the beginning.
| itomato wrote:
| Was I digging too deeply before?
|
| Was I asking the right questions from the beginning, and if
| not, can I effectively salvage my work?
|
| Sunk costs disappear into a $20 subscription
| esafak wrote:
| LLMs are going to have to get much cheaper to train to be useful
| in corporations, where the questions you want to ask are going to
| depend on proprietary code. You can't ask "What does subsystem
| FooBar do, and where does it fit in the overall architecture?"
| You'd want to be able to continuously retrain the model, as the
| code base evolves.
| abhinavstarts wrote:
| > High levels of reasoning are not required. LLMs are quite good
| at doing this, although they remain strongly limited by the
| maximum size of their context. This should really make
| programmers think. Is it worth writing programs of this kind?
| Sure, you get paid, and quite handsomely, but if an LLM can do
| part of it, maybe it's not the best place to be in five or ten
| years
|
| I appreciate the author writing this article. Whenever I read
| about future of field, I get anxiety and confusion but then again
| I think other options too which were available to me was less
| interest of me.
|
| I am now at the place that I still have the opportunity to pivot
| and focus on pure/applied mathematics than being in software
| field.
|
| Honestly I wanted to make money through this career but I don't
| know what carrer to choose now.
|
| I keep working on myself and don't compare myself to others but
| if argument is top 1% programmers will be required in the future
| then I doubt myself because I have still learn lot of things and
| then how about competing with both experienced & knowledgeable.
|
| I was thinking about pin-pointing a target then becoming expert
| at it (by 10000 hrs rule)
|
| I'm sorry to ask but today or in-general I am very confused which
| path/carrer to Target related to computing, Mathematics. Please
| suggest and give me your valuable advice. Thank you
| throwuwu wrote:
| I wouldn't worry too much about the demand for programmers.
| Jevon's paradox has played out enough times that I'm sure as
| the cost of code goes to zero the demand will continue to
| increase. Look forward to the day that your toilet paper comes
| with an API.
| thomashop wrote:
| I'd say study deep learning (nice mix of maths and CS) or do
| software but learn to use the AI tools in the process.
|
| If you're looking at a 5-10 year timeline then even pure or
| applied mathematics may well heavily use AI models.
|
| We're always going to need architects that build the
| scaffolding together with LLMs. Programmers + LLMs will be able
| to outcompete programmers without. If one programmer can do
| more it just means projects will become more ambitious not less
| programming needed.
|
| I've never worked for a company that had too little work for
| their software engineers. Rather many projects are on long
| timelines because there are only so many hours available per
| month.
|
| Another analogy: with a high level programming language you can
| do what previously needed 10x the lines of code in assembly. I
| don't think they caused job losses for software engineers.
| makk wrote:
| I'm not sure you're focused on the important question. For
| example: Who you marry, if you choose to go that route, may
| very well be the most important decision you'll ever make.
|
| Putting that aside, based on your question and willingness to
| put it out there... I would say this: just surrender to what
| charms you right now. Do you feel drawn toward programming?
| Follow that. Or math? Follow that. They may not be mutually
| exclusive.
|
| As you go, stay tuned in to how you feel about the activity in
| the moment. Not your anxiety about what you think about the
| future prospects, but just how it feels right now to be doing
| the thing. That feeling may change over time, and it will guide
| you if you stay tuned in.
| drubio wrote:
| What an ending...
|
| _I have never loved learning the details of an obscure
| communication protocol or the convoluted methods of a library
| written by someone who wants to show how good they are. It seems
| like "junk knowledge" to me. LLMs save me from all this more and
| more every day._
|
| This is depressing or tongue-in-cheek considering who he is --
| Redis creator -- and has an older post titled 'In defense of
| linked lists', so talking about linked lists in Rust is not "junk
| knowledge" or something an LLM can analyze circles around any
| human.
|
| It's the best coding nihilism as a profession post I have read
| though.
| antirez wrote:
| There is a misunderstanding going here. A linked list is a
| _pure_ form of knowledge. What we see today is an explosion of
| arbitrary complexity that is the fruit, mostly, of bad design.
| If I learn the internals of React, I 'm not really
| understanding anything fundamental. If I get to know the
| subtleness of Rust semantics and then Rust goes away, I'm left
| with nothing: it's not like learning Lisp. Think to all the
| folks that used to master M4 macros in the Sendmail, 30 years
| ago. I was saying the same, back then: this is garbage
| knowledge.
|
| Today we have a great example in Kubernetes, and all the other
| synthetic complexity out there. I'm in, instead, to learn
| important ML concepts, new data structures, new abstractions.
| Not the result of some poor design activity. LLMs allow you to
| offload this memorization out of your mind, to make space for
| distilled ideas.
| gilbetron wrote:
| Spot on - it is one of the main reasons I haven't enjoyed
| programming in recent years, so much of it is learning what
| you call "garbage knowledge". Yet another API, yet another
| DSL, yet another standard library. Endless reading of
| internal wiki pages to learn the byzantine deployment system
| of my current company. Even worse, when I know exactly what I
| want, but some little dependency or piece of tooling is bad
| and I spend hours, or days, trying to debug it.
|
| I, too, find LLMs a balm for this pain. They have kind-of-
| basic level of knowledge, but about everything.
|
| In short, it allows for a more efficient expenditure of
| mental and emotional energy!
| emporas wrote:
| To rephrase it a little bit.
|
| Much of programming, coding and developing is done by a
| person who is a knowledge worker and writes code. A good
| proportion of code to be written, will be written just once
| and never again. The one-off code snippet will stay in a file
| collecting dust forever. There is no point in trying to
| remember it in the first place, because without constant
| repetition of using it, it will be forgotten.
|
| LLMs can help us focus our knowledge where it really matters,
| and discard a lot of the ephemeral stuff. That means that we
| can be more of knowledge workers and less of coders. I will
| push it even further and state that we will become more of
| knowledge workers and less of coders until we will be,
| eventually and gradually, just knowledge workers. We will
| need to know about algorithms, algorithmic complexity,
| abstractions and stuff like that.
|
| We will need to know subjects like that Rust book [1] writes
| about.
|
| [1]https://github.com/QMHTMY/RustBook/tree/main/books
| Wowfunhappy wrote:
| For the past few days, I have been trying to fix a bug in a
| closed-source Mac app. I otherwise love the app, but this bug has
| been driving me crazy for years.
|
| I was pretty sure I knew which Objective-C method was broadly
| responsible for the bug, but I didn't know what that method _did_
| , and the decompiled version was a nonsensical mess. I felt like
| I'd hit a wall.
|
| Then I thought to feed the decompiler babble to GPT-4 and ask for
| a clean version. The result wasn't perfect, but I was able to
| clean it up. I swizzled the result into the app, and I'm _pretty
| sure_ the bug is gone. (I never found reproduction steps, but the
| problem would usually have occurred by now.)
|
| I _never_ could have done this without GPT-4.
| HarHarVeryFunny wrote:
| This sounds rather like the junior/bad developer who makes a
| bug disappear (at least for time being) by changing the order
| of functions in a source file or some such.
|
| Admittedly a complete rewrite of a piece of code, even without
| understanding what you are doing (e.g by using an LLM), is
| unlikely to have the same bugs as the original implementation
| (but may have different bugs), but hopefully no-one is doing
| this for code where bugs have any significant consequence (e.g.
| system downtime, cost to customers).
| Wowfunhappy wrote:
| Just to be clear, I do understand the new version of the
| method. I don't entirely know how it fits into the larger
| system, but that's to be expected when I literally don't have
| the source code.
|
| When I cleaned it up, I took out some complexity which I
| believe was responsible for the bug, at the cost of some
| performance. According to GPT-4, the original version was
| checking file descriptors to decide when to do work. My
| version just does the work every 5ms.
| ruszki wrote:
| So the parent commenter tried to tell you, that they (and I
| too) heard this story from junior and bad programmers in
| the past 20 years all the time, and they didn't use LLMs.
| It doesn't matter whether you use generative AIs or not,
| it's a bad way of thinking, and long term it's not
| beneficial to anybody. The real problem is that you didn't
| dig deeper when you figured out that that code change fixed
| the problem.
| Wowfunhappy wrote:
| But I actually think this is a reasonable way to fix a
| hard-to-pin-down bug in any context, at least
| temporarily. (In my case, I don't intend to go back
| because it's not my app and mostly for personal use, but
| that's beside the point.)
|
| There was a tradeoff between performance and complexity.
| The high-performance, high-complexity version was buggy,
| so I switched to a simpler option at the cost of some
| performance.
|
| This isn't where the LLM was significant. The LLM was
| able to make sense of unreadable decompiled code, similar
| to how the author had ChatGPT translate from compiled
| assembly code back to C. (Giving GPT-4 the actual
| assembly never occurred to me, in hindsight I should have
| tried that first.)
| ruszki wrote:
| My job is exactly to fix code which was not understood by
| its creators. And this "I have no idea why, but it works"
| (until it doesn't) is the main cause of most of the
| problems which I work on.
|
| For example, at my current company the developer who
| introduced a "clever" navigation system didn't know how
| HTML forms should be used, and why servers still allowed
| what they did. It worked. Now, 20+ years later that sole
| developer's stupid decision, and lack of HTML best
| practices will cost my company a few million dollars (and
| by the way already cost probably a few million). A
| missing day of learning (and by the way a clear sign,
| that that developer should've never trusted with this
| task).
|
| Senior developers learn this, and I've never seen that
| better developers would be satisfied and would say "yeah,
| I fixed it", when they don't understand the what and how
| completely, even when it's not strictly necessary. They
| burned themselves enough times.
| rictic wrote:
| You've got me curious, how did the developer's
| misunderstanding of forms cost millions? Was it
| submitting duplicate orders? Blocking submission of valid
| orders causing lost business?
|
| I think it's an error to bring that up here though, where
| we're talking about someone patching a closed source app
| for their personal use. Is it worth the cost/benefit of
| decompiling and studying the app's code sufficiently long
| to be highly confident of the fix?
|
| Sloppiness and "good enough" has its place. So does full
| effort correctness.
| Shocka1 wrote:
| This web dev? If so, it must be some special stuff for it
| to still be in prod after all these years.
| sebringj wrote:
| Currently, what I get out from it is a good quick overview with
| some hallucinations. You have to actually know what you're doing
| to check the code. However, this is a fast moving target and will
| in no time be doing that part as well. I think stepping back and
| thinking maybe this thing is just giving us more and more agency
| and what can we do with that? We need to adapt to not constrain
| ourselves to just being programmers. We are humans with agency
| and if we can adapt to this, we can be more and more powerful
| having our technical insight that we've gained over the years to
| do some really cool things. I have a startup and with ChatGPT
| I've managed to do all parts of the stack with confidence and
| used it for all sorts of business related things outside of
| coding that have really helped move the business forward quickly.
| renonce wrote:
| > Homo sapiens invented neural networks
|
| Is it just me or did anyone smile at this sentence? The first
| paragraph sounds like the academic way of saying "we invented
| huge neural networks but we couldn't understand it".
| kromem wrote:
| Perhaps the most important point in the piece, and one that can't
| be repeated enough or understood enough as we head into what 2024
| has in store:
|
| > And then, do LLMs have some reasoning abilities, or is it all a
| bluff? Perhaps at times, they seem to reason only because, as
| semioticians would say, the "signifier" gives the impression of a
| meaning that actually does not exist. Those who have worked
| enough with LLMs, while accepting their limits, know for sure
| that it cannot be so: their ability to blend what they have seen
| before goes well beyond randomly regurgitating words. As much as
| their training was mostly carried out during pre-training, in
| predicting the next token, this goal forces the model to create
| some form of abstract model. This model is weak, patchy, and
| imperfect, but it must exist if we observe what we observe. If
| our mathematical certainties are doubtful and the greatest
| experts are often on opposing positions, believing what one sees
| with their own eyes seems a wise approach.
| ahgamut wrote:
| > Instead, many have deeply underestimated LLMs, saying that
| after all they were nothing more than somewhat advanced Markov
| chains, capable, at most, of regurgitating extremely limited
| variations of what they had seen in the training set. Then this
| notion of the parrot, in the face of evidence, was almost
| universally retracted.
|
| I'd like to see this evidence, and by that I don't mean someone
| just writing a blog post or tweeting "hey I asked an LLM to do
| this, and wow". Is there a numerical measurement, like training
| loss or perplexity, that quantifies "outside the training set"?
| Otherwise, I find it difficult to take statements like the above
| seriously.
|
| LLMs can do some interesting things with text, no doubt. But
| these models are trained on terabytes of data. Can you really
| guarantee "there is no part of my query that is in the training
| set, not even reworded"? Perhaps we can grep through the training
| set every time one of these claims are made.
| skepticATX wrote:
| Exactly. I think that it's very hard for us to comprehend just
| how much is out there on the internet.
|
| The perfect example of that is the tikz unicorn in the Sparks
| paper. Seemed like a unique task, until someone found a tikz
| unicorn in an obscure website.
|
| There is plenty of evidence that LLMs struggle as you move out
| of distribution. Which makes perfect sense as long as you stop
| trying to attribute what they're doing to magic.
|
| This doesn't mean they're not useful, of course. But it means
| that we should should be skeptical about wild capability claims
| until we have better evidence than a tweet, as you put it.
| og_kalu wrote:
| >Can you really guarantee "there is no part of my query that is
| in the training set, not even reworded"?
|
| I mean..yes?
|
| Multi digit arithmetic, translation, summarization. There are
| many tasks where this is trivial.
| tipsytoad wrote:
| The most useful feature of llms is how much output you get from
| such little signal. Just yesterday I created a fairly advanced
| script from my phone on the bus ride home with chatgpt which was
| an absolute pleasure. I think multi-prompt conversations don't
| get nearly as much attention as they should in llm evaluations.
| danielbln wrote:
| I suppose multi-prompt conversations are just a variation on
| few-shot prompting. I do agree though, that they don't play a
| big enough role in eval, but also in the heads of many people.
| So many capable engineers I now nope out of GPT because the
| first answer isn't satisfactory, instead of continuing the
| dialog.
| IKantRead wrote:
| This quote in particular struck me as relevant:
|
| > And now Google is unusable: using LLMs even just as a
| compressed form of documentation is a good idea.
|
| Beyond all the hype, it'd undeniable that LLMs _are_ good at
| matching your query about a programming problem to an answer
| without inundating you with ads and blog spam. LLMs are, at the
| very least, just better at answering your questions than putting
| your question into to google and searching Stack Overflow.
|
| About two years ago I got so sick of how awful Google was for any
| serious technical questions that I started building up a
| collection of reference books again just because it was quickly
| becoming the only way to get answers about many topics I cared
| about. I still find these are helpful since even GPT-4 struggles
| with more nuanced topics, but at least I have a fantastic
| solution for all those mundane problems that come up.
|
| Thinking about it, it's _not_ surprising that Google completely
| dropped the ball on AI since their business model has become
| _bad_ search (i.e. they derive all their profit from adding
| things you don 't want to your search experience). At their most
| basic, LLMs are just really powerful search engines, it would
| take some cleverness to make them _bad_ in the way Google
| benefits from.
| Havoc wrote:
| I definitely mostly use it in the same way - generating discrete
| snippets.
|
| Haven't had much luck with code completion thus far.
| antirez wrote:
| @dang something is wrong with the ranking of this post.
| slowmovintarget wrote:
| TLS cert has expired on the antirez site.
| CaptainFever wrote:
| I feel that I'm being too conservative with how I use AI.
| Currently I use Copilot Autocomplete with a bit of Copilot Chat,
| which is great and almost always gets small snippets correct, but
| I sometimes worry that I'm not using it to the full potential --
| so I can be faster with my side projects -- for example, by
| generating entire classes.
| antirez wrote:
| In general Copilot is much weaker than bigger/slower models, so
| if you have the feeling you are not using AI enough, the first
| thing to try IMHO is to chat with powerful models like GPT4 to
| see what is the current state of art in code generation.
| CaptainFever wrote:
| Thank you for the suggestion, antirez! Unfortunately that
| option does cost money (Copilot is free for students),
| although Bing might be an alright alternative.
| antirez wrote:
| Indeed, you are right. If you have an M[1,2,3] MacBook with
| enough RAM, you may want to run some model like DeepSeek-
| coder 34B in local. Or the smaller one, but it is going to
| be weaker.
| bbor wrote:
| LLMs are like stupid savants who know a lot of things.
|
| Leaving the requisite "no, that's not what language models are,
| you're misunderstanding what's important here, the best knowledge
| model already exists and it's called Wikipedia"
| block_dagger wrote:
| One of the areas that has sped up the most for me while using
| ChatGPT to code is having it write test cases. Paste it a class
| and it can write a pretty good set of specs if you iterate with
| it. Literally 10x faster than doing it myself. This speed-up can
| also occur with languages/frameworks I'm not familiar with.
| legendofbrando wrote:
| This is one of the best pieces I've read that articulates what
| it's like to work closely with LLMs as creative partners.
| andai wrote:
| I find that I am very unproductive if I am connected to the
| internet. The only way for me to get any real work done is to
| turn off the router.
|
| At the same time, GPT apparently doubles programming
| productivity. (Though obviously this depends on the task.)
|
| I've long wished to have the best of both worlds. It seems I may
| soon get my wish: local LLMs will probably catch up with GPT-4
| this year, or even outpace it!
___________________________________________________________________
(page generated 2024-01-02 23:01 UTC)