Live data from Hacker News

AI in software engineering at Google: Progress and the path ahead

research.google

231–240 of 245 posts

Re: AI in software engineering at Google: Progress and the path ahead

#231
post #146
post #94

So how long till AI will be fully replacing a SWE at Google? That is where the drive for productivity at organizations like Google are leading towards.

Not if they use Gemini Advanced...It's so far behind Claude or ChatpGPT4 as to be laughable.

You clearly haven't used 1.5 pro it seems. Pretty damn close to gpt-4o

Re: AI in software engineering at Google: Progress and the path ahead

#232

Earlier quoted context omitted.

But increasingly I prefer to ask LLMs the same things I used to search Google for...

And then you do search to check that the output reflects reality, right? If not, good luck.

Hallucinations saved Google.

Re: AI in software engineering at Google: Progress and the path ahead

#233
post #189

Earlier quoted context omitted.

> using [] on a map to access an element is really really dangerous if you haven't read the docs carefully and assumes that it does what you believe it should do It's not that bad, as it just inserts a default-constructed element if it's not present. What would you expect it to do, such that it returns a reference of the appropriate type (such that you can write `map[key] = value;`)? Throw an exception? That's what .…

Something akin to `std::optional` would have been great. These days, folks don't come to C++ from C and are not used to such under-the-hood tricks. The committee decided that since the reference can't be null, therefore, we'll insert something into the map when someone "query" for a key. Perhaps two mistakes can make a right!! It is hard to make peace with it when you are used to a better alternative.

> These days, folks don't come to C++ from C and are not used to such under-the-hood tricks.

It's funny to see that, since I'm used to folks coming to C++ from C and bemoaning that C is a much more straightforward language which doesn't engage in such under-the-hood tricks.

> Something akin to `std::optional` would have been great.

So, map.find(), which returns an iterator, which you can use to check for "presence" by comparing against map.end()? (Or if you actually want to insert an element in your map, map.insert() or, as of C++17, map.try_emplace().)

Again, the standard library is weird and confusing unless you've spent years staring into the abyss, and there are many ways of doing subtly different things.

C++ does not have distinct operators for map[key] vs map[key] = val. Languages like JS and Python do, which is why they can offer different behavior in those scenarios (in the former case, JS returns a placeholder value; Python will raise an exception). But, that's only really relevant in the context of single-dimensional maps.

Autovivification is rather rare today, but back in the early 90s when the STL first came about (prior to C++'s design-by-committee process, fwiw), what language was around for inspiration? Perl. If you don't have autovivification (or something like it), then map[i][j][k] = val becomes much more painful to write. (Maybe this is intended.) Workarounds in, say, Python are either to use a defaultdict (which has this exact same behavior of inserting elements upon referencing a key that isn't present!) or to use a tuple as your key (which doesn't allow you to readily extract slices of your dict).

Re: AI in software engineering at Google: Progress and the path ahead

#234
post #146

Earlier quoted context omitted.

Not if they use Gemini Advanced...It's so far behind Claude or ChatpGPT4 as to be laughable.

You clearly haven't used 1.5 pro it seems. Pretty damn close to gpt-4o

Yes paying customer of all three. Sometimes for fun, start a task with the same prompt across all three. Within tree interactions Gemini start giving woke lectures, and provide worst or unusable results while the other two shine.

Just try it....

Re: AI in software engineering at Google: Progress and the path ahead

#236
post #74

When AI is used properly, it’s doing one of two things: 1) Making non-controversial fixes that save time and take cognitive load off the developer. The best example is when code completion is working well. 2) It’s making you smarter and more knowledgeable by virtue of the suggestions it makes. You may discard them but you still learn something new, and having an assistant brainstorm for you enables a different mode o…

As long LLMs are seen as patterned knowledge aggregator then work as intended. They hallucinate answers mostly because they try to interpolate data or there is some pattern that it didn't catch due to lack of context or training.

They're really good for type / name finding and boiler plate generation. For larger suggestions as your pointed out they're too wrong to be used as is. They can give good ideas, especially if guided with comments, but usually at this stage I just use Phind.

Re: AI in software engineering at Google: Progress and the path ahead

#237
Happy for them to experiment with the tools, but i am afraid it will have more negative effect through others blindly copying without reading between the lines.

i am still struggling to find value where the main selling points of using llm for code lies. for boilerplate this is a very inefficient although interesting way, but it does not help me do the thinking. well-written, language-specific boilerplate generation in most ide brings out the current effects just fine.

Re: AI in software engineering at Google: Progress and the path ahead

#238

Earlier quoted context omitted.

One data point: In our startup we are short on frontend software engineers. Our project manager started helping with the UI using an IDE (cursor a VS-code fork) with native ChatGPT integration. In the span of six months, they have become very proficient at React. They had wanted to learn basic frontend coding for multiple years but never managed to pass the initial hurdles. Initially, they were only accepting suggest…

With the number of anti patterns in React, are you sure everything’s OK? The thing’s about declarative is that it’s more like writing equations. Imperative have a tighter feedback loop, and ultimately only code organization is a issue. But so many things can go wrong with declarative as it’s one level higher in the abstraction stack. I’m not saying that React is hard to learn. But I believe buying a good book would h…

Yes totally. They already tried doing a few online courses and had a few books.

I'm a senior React Dev and the code is totally fine. No more anti-patterns than juniors who I've worked with who learned without AI. The contrary actually.

Re: AI in software engineering at Google: Progress and the path ahead

#239
post #174
post #74

When AI is used properly, it’s doing one of two things: 1) Making non-controversial fixes that save time and take cognitive load off the developer. The best example is when code completion is working well. 2) It’s making you smarter and more knowledgeable by virtue of the suggestions it makes. You may discard them but you still learn something new, and having an assistant brainstorm for you enables a different mode o…

Not an AI expert but this sounds a lot like code review. Most people are using systems to facilitate code review these days (we aren't sitting around boardrooms with printouts these days) so I wonder if there is a way to use the code review data streams combined with diffs to train AI to "do code reviews"?

That sounds like what is mentioned in the article

Re: AI in software engineering at Google: Progress and the path ahead

#240

Earlier quoted context omitted.

An insider could tip them off, then IP owner sues and Google has to produce it during discovery.

And? For big companies, lawsuits are mostly about being forced to pay money. Rarely does losing a case drive real behavioral change, much less fundamental change. IP getting coughed out of an AI will keep some lawyers busy and result in fig leaf changes.

The outcome of any IP lawsuit is going to include an order to cease use of the IP. Even a DMCA notice requires cessation.

If the infringing code powered a widely used service, replacing the code with a clean room refactor could be arduous and time-consuming and might require a court-appointed monitor to sign off.

Post reply on HN