Live data from Hacker News

Thoughts on the Future of Software Development

sheshbabu.com

161–170 of 434 posts

Re: Thoughts on the Future of Software Development

#161

Earlier quoted context omitted.

Architectural erosion is an ongoing problem for humans, but they don't produce tightly coupled low cohesion code by default at the SWE level the majority of the time. With this quality of changes it won't be long until violations stack up to where further changes will be beyond any algorithms ability to unravel. While lots of companies do only look out in the short term, human programers are incentivized to protect t…

Can't we just RLHF code reviews?

RLHF works on problems that are difficult to specify yet easy to judge.

While RLHF will help improve systems, code correctness is not easy to judge outside of the simplest cases.

Note how on OpenAI's technical report, they admit performance on college level tests is almost exclusively from pre-training. If you look at LSAT as an example, all those questions were probably in the corpus.

https://arxiv.org/abs/2303.08774

Re: Thoughts on the Future of Software Development

#162
post #83

> In summary, I believe there would still be a market for Software Developers in the foreseeable future, though the nature of work will change This is precisely what I dread. When it comes to software development specifically, the parts that the AI cheerleaders are excited about AI doing are exactly the parts of the job that I find appealing. If I wanted to be a glorified systems integrator, I would have been doing t…

I'm the opposite. I enjoy engineering and understanding systems. Manually coding has been a necessary to build systems up until now. AWS similarly was great because it provided a functional abstraction over the details of the data center.

On a personal level I feel bad for the people who enjoyed wiring up small data centers or enjoyed writing GitHub comments about which lint rules were the best. But I'm glad those are no longer necessary.

Re: Thoughts on the Future of Software Development

#163
Its an easily enough conducted experiment to find out for sure, first hand here. We're all developers here right? Get out some previous project ticket (you do have those right?) and put your Manager hat on. Take a whole big step off the LLMs plate and convert your ticket input to prompts directing the AI to generate a certain subsection of code for a particular requirement. Do this for all the requirements until every use case is satisfied with some code to execute it.

Now, get all that code to compile, run at all, run correctly then finally run optimally. Hell, get it to pass a basic test case. Use the LLM for all of this. Feed the bugs to the LLM and ask for a correcting fix of the condition etc.

Even simpler, pull a ticket from your next sprint and assign it to a dev with the instructions to use the LLM as entirely as possible for the task.

The results of this experiment will be informative and unless you're building a demonstration API endpoint that reverses binary trees or something else trivial, then you will cease to be worried about AGI taking over anyones job in the near to medium term. Try it FIRST - THEN flame me if you still feel like it (if you're not still busy fucking with prompts to build code you could have built in less time yourself)?

To be clear I'm a proponent of this kind of technology and I use it daily in my dev/ops/everything work. Its faster and more accurate than reading docs to figure something out. Im never asking GPT to "do" something novel as much as Im asking it to summarize something it knows and Im setting a context for the results. I can't tell you the last time I read a Man page for some Bash thingy - Its just fine to ask GPT to build me a Bash thingy that does XYZ.

Of note, Ive asked GPT4 for some very specific things lately re-configurations (I have 3 endpoints in different protocols Id like to proxy via Nginx and Id like to make these available to the outside world with Ngrok - tell me the configurations necessary to accomplish this). It took me quite a bit of mucking around to get it working and the better part of the day to be satisfied with it. Im pretty confident a suitable intern would have had difficulty with it too.

AI is great and ever increasing in its abilities but we're just not there yet - we'll get ever closer as time goes on but we'll never quite get there for general purpose development-in-whole-by-AI. A line that continually approaches a given curve but does not meet it at any finite distance, thats an asymptotical relationship and I believe that describes where we are very well today.

Re: Thoughts on the Future of Software Development

#164

Earlier quoted context omitted.

Also if there are fewer humans involved in the code production there is a lot of room for producing code that "works", but is not cohesive or maintainable. Invariably there will be a point at which something is broken and someone will need to wade through the mess to find why it's broken and try to fix it.

Nah, you just throw it out and have the AI generate an all new one with different problems!

That's how bads use GPT to code. The right way is to ask GPT to break the problem down into a bunch of small strongly typed helper functions with unit tests, then ask it to compose the solution from those helper functions, also with integration tests. If tests fail at any point you can just feed the failure output along with the test and helper function code back in and it will almost always get it right for reasonably non-trivial things by the second try. It can also be good to provide some example helper functions/tests to give it style guidelines.

Re: Thoughts on the Future of Software Development

#165
post #148

Earlier quoted context omitted.

> I've seen nothing from AI, either in production or on the horizon, that suggests that it will meaningfully lower the barrier to entry for practicing the profession, let alone enable non developers to do the work developers do. Good observation. Come to think of it, all examples of AI coding require a competent human to hold the other end, or else it makes subtle errors.

How many humans do you need per project though? The number can only lower as AI tooling improves. And will employers pay the same rates when they’re already paying a sub for their AI tools and the work involved is so much more high level?

I don’t claim to have any particular prescience here, but doesn’t this assume that the scope of “software” remains static? The potential universe of programmatically implementable solutions is vast. Just so happens that many or most of those potential future verticals are not commercially viable in 2024.

Re: Thoughts on the Future of Software Development

#168

Earlier quoted context omitted.

I would argue future engineers should be worried a bit. We no longer need to hire new developers. I was not trained professionally yet I'm writing production code that's passing code reviews in languages I never used. I will create a prompt, validate it compiles, passes tests, have it explain so I understand it was written as expected and write documentation about the code, write the PR, and I am seen as a competent…

I have yet to see either copilot or gpt4 generate code that I would come close to accepting in a PR from one of my devs, so I struggle to imagine what kind of domain you are in that the code it generates actually makes it through review.

Honestly that sounds like a problem with the way you are managing prs. The PRs are too big or you are overly nitpicking prs on unimportant things

Re: Thoughts on the Future of Software Development

#169
post #26

As long as there is no AGI, no software engineer needs to be worried about their job. And when there is, obviously everything in every field will change and this discussion will soon be futile.

I would argue future engineers should be worried a bit. We no longer need to hire new developers. I was not trained professionally yet I'm writing production code that's passing code reviews in languages I never used. I will create a prompt, validate it compiles, passes tests, have it explain so I understand it was written as expected and write documentation about the code, write the PR, and I am seen as a competent…

Who's "we"?

Re: Thoughts on the Future of Software Development

#170
post #119

Earlier quoted context omitted.

I remember back in the 80s I had friends who enjoyed coding in assembly and felt that using higher-level languages was "cheating" - isn't this just a continuation of that?

Yeah, that's a good way of looking at it. We gradually remove technical constraints and move to a higher level of abstraction, much closer to the level of the user and the business rather than the individual machine. But what's the endpoint of this? There will probably always be a need for expert-level troubleshooters and optimizers who understand all the layers, but for the rest of us, I'm wondering if the job would…

The endpoint is that being a programmer becomes as obsolete as being a human "calculator" for a career.

Millions, perhaps billions of times more lines of code will be written, and automated programming will be taken for granted as just how computers work.

Painstakingly writing static source code will be seen the same way as we see doing hundreds of pages of tedious calculations using paper, pencil, and a slide rule. Why would you do that, when the computer can design and develop such a program hundreds of times in the blink of an eye to arrive at the optimal human interface for your particular needs at the moment?

It'll be a tremendous boon in every other technical field, such as science and engineering. It'll also make computers so much more useful and accessible for regular people. However, programming as we know it will fade into irrelevance.

This change might take 50 years, but that's where I believe we're headed.

Post reply on HN