# documents

title: Data Structures & Algorithms in Python - Robert Lafore, Alan Broder, John Canning - Google Books
scrape_date: 2025-03-14T14:02:22.716946
content_type: markdown
hash: 50bd7163d4b392191c980b9031e71d915361e7a82d9208f633c4d2a25d7e62b2
url:
https://books.google.com/books?hl=en&lr=&id=dNnPEAAAQBAJ&oi=fnd&pg=PT19&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&ots=6OHqhCDY67&sig=JyTKFSq3E4IduxMSbgSMBYmf6pM

content:
  1. [Search](https://www.google.com/search?tab=pw)
  2. [Images](https://www.google.com/imghp?hl=en&tab=pi)
  3. [Maps](https://maps.google.com/maps?hl=en&tab=pl)
  4. [Play](https://play.google.com/?hl=en&tab=p8)
  5. [YouTube](https://www.youtube.com/?tab=p1)
  6. [News](https://news.google.com/?tab=pn)
  7. [Gmail](https://mail.google.com/mail/?tab=pm)
  8. [Drive](https://drive.google.com/?tab=po)
  9. [More](https://www.google.com/intl/en/about/products?tab=ph)

    1. [Calendar](https://calendar.google.com/calendar?tab=pc)
    2. [Translate](https://translate.google.com/?hl=en&tab=pT)
    3. [Mobile](http://www.google.com/mobile/?hl=en&tab=pD)
    4. [Books](https://books.google.com/?hl=en&tab=pp)
    5. [Shopping](https://www.google.com/shopping?hl=en&source=og&tab=pf)
    6. [Blogger](https://www.blogger.com/?tab=pj)
    7. [Finance](https://www.google.com/finance?tab=pe)
    8. [Photos](https://photos.google.com/?tab=pq&pageId=none)
    9. [Docs](https://docs.google.com/document/?usp=docs_alc)
    10.     11. [Even more »](https://www.google.com/intl/en/about/products?tab=ph)




## Account Options

  1. [Sign in](https://www.google.com/accounts/Login?service=print&continue=https://books.google.com/books%3Fhl%3Den%26lr%3D%26id%3DdNnPEAAAQBAJ%26oi%3Dfnd%26pg%3DPT19%26dq%3DImplementing%2Ba%2BBinary%2BSearch%2BAlgorithm%2Bin%2BPython%2Bcode,%2Bincluding%2Ba%2Bstep-by-step%2Bguide,%2Bexamples,%2Band%2Bexplanations%2Bof%2Btime%2Bcomplexity%2Band%2Bspace%2Bcomplexity.%26ots%3D6OHqhCDY67%26sig%3DJyTKFSq3E4IduxMSbgSMBYmf6pM&hl=en&ec=GAZACg)
  2.   3. [](http://www.google.com/preferences?hl=en "Options")




[![Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.](//www.google.com/images/cleardot.gif)](https://books.google.com/books?hl=en&lr=&id=dNnPEAAAQBAJ&oi=fnd&pg=PT19&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&ots=6OHqhCDY67&sig=JyTKFSq3E4IduxMSbgSMBYmf6pM&output=html_text "Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.")

## [Books](/books)

[](https://books.google.com/books?id=dNnPEAAAQBAJ&printsec=frontcover&source=gbs_vpt_read)[](https://play.google.com/books/reader?id=dNnPEAAAQBAJ&lr=&source=gbs_vpt_read)[]()[]()[]()[]()

Try the new Google Books

Check out the new look and enjoy easier access to your favorite features

[Try it now](https://www.google.com/books/edition/_/dNnPEAAAQBAJ?hl=en&newbks=1&gbpv=1&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&pg=PT19&printsec=frontcover)

[No thanks](javascript:)

![](/googlebooks/images/material/ogen_bookshelf.png)

[![](/googlebooks/images/material/book_icon_color.png)Try the new Google Books![](/googlebooks/images/material/arrow_right_black_24dp.png)](https://www.google.com/books/edition/_/dNnPEAAAQBAJ?hl=en&newbks=1&gbpv=1&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&pg=PT19&printsec=frontcover)

  1. [Try the new Google Books](https://www.google.com/books/edition/Data_Structures_Algorithms_in_Python/dNnPEAAAQBAJ?hl=en&newbks=1&gbpv=1&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&pg=PT19&printsec=frontcover)
  2. [My library](https://www.google.com/accounts/Login?service=print&continue=https://books.google.com/books%3Fop%3Dlibrary&hl=en)
  3. [Help](http://books.google.com/support/topic/4359341?hl=en)
  4. [Advanced Book Search](https://books.google.com/advanced_book_search?q=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=)



[Buy eBook - $52.79](https://play.google.com/store/books/details?id=dNnPEAAAQBAJ&rdid=book-dNnPEAAAQBAJ&rdot=1&source=gbs_vpt_read&pcampaignid=books_booksearch_viewport)

Get this book in print

### 

  * [Addison-Wesley Professional](http://www.informit.com/store/product.aspx?isbn=9780134855899.html)
  * [Amazon.com](http://www.amazon.com/gp/search?index=books&linkCode=qs&keywords=9780134855899)
  * [Barnes&Noble.com;](https://www.barnesandnoble.com/w/_/_?ean=9780134855899)
  * [Books-A-Million](http://www.booksamillion.com/product/9780134855899)
  * [IndieBound](http://www.indiebound.org/book/9780134855899)
  * * * *

  * [Find in a library](https://books.google.com/url?id=dNnPEAAAQBAJ&pg=PT19&q=http://worldcat.org/oclc/1343247547&clientid=librarylink&usg=AOvVaw1rV9Rzfk37xc6XAVImnUCG&source=gbs_buy_r)
  * [All sellers »](https://books.google.com/books?id=dNnPEAAAQBAJ&sitesec=buy&source=gbs_buy_r)



[![Front Cover](https://books.google.com/books/publisher/content?id=dNnPEAAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&imgtk=AFLRE7347OzzW016FAUjySQvFKrtmI7Xbx3kIWmlRhTlb41YnveDDhUkKmSBMKHbp4w-E-vNg-hiOzG-Sdb2k9l1iPv5lJgzYTbL2h-gerI1cfUXl7NtCuqG2WK9V4aBO8VYO1MrPu2u)](https://books.google.com/books?id=dNnPEAAAQBAJ&printsec=frontcover)|   
---|---  
  
# Data Structures & Algorithms in Python

By Robert Lafore, Alan Broder, John Canning

|  |   
---|---|---  
  
[About this book](https://books.google.com/books?id=dNnPEAAAQBAJ&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=&source=gbs_navlinks_s)

[Terms of Service](/intl/en/googlebooks/tos.html)

### 

[![Addison-Wesley Professional](https://pagead2.googlesyndication.com/pagead/imgad?id=CMed0_iw8KmPLBAqGDEyCHQmL-eJx7Ey)](https://books.google.com/url?id=dNnPEAAAQBAJ&pg=PT19&q=http://www.informit.com&linkid=1&usg=AOvVaw01o0OzgrkWTj0fACUW9KHT&source=gbs_pub_info_r)| Pages displayed by permission of [Addison-Wesley Professional](https://books.google.com/url?id=dNnPEAAAQBAJ&pg=PT19&q=http://www.informit.com&linkid=1&usg=AOvVaw01o0OzgrkWTj0fACUW9KHT&source=gbs_pub_info_r). | | | Pages| [](https://books.google.com/books?id=dNnPEAAAQBAJ&pg=PT18&lpg=PT19&ots=6OHqhCDY67&focus=viewport&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=)| [](https://books.google.com/books?id=dNnPEAAAQBAJ&pg=PT20&lpg=PT19&ots=6OHqhCDY67&focus=viewport&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=)  
---|---|---  
  | |   
  
|   
---|---  
  
[![Next Page](//www.google.com/images/cleardot.gif)](https://books.google.com/books?id=dNnPEAAAQBAJ&pg=PT20&lpg=PT19&ots=6OHqhCDY67&focus=viewport&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=)  
---


scrape_date: 2025-03-14T14:02:22.735726
content_type: markdown
hash: da4ffbd1fbb7b35666b37f72580b8668934b2d998c6cad2353b2979f405caa98
url:
https://books.google.com/books?hl=en&lr=&id=gVInCgAAQBAJ&oi=fnd&pg=PP3&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&ots=oX4iY7LZ88&sig=u4UPxo_zQRGLPZp5e-9-Mi8UzVI

title:
Python Algorithms: Mastering Basic Algorithms in the Python Language - Magnus Lie Hetland - Google Books

content:
  1. [Search](https://www.google.com/search?tab=pw)
  2. [Images](https://www.google.com/imghp?hl=en&tab=pi)
  3. [Maps](https://maps.google.com/maps?hl=en&tab=pl)
  4. [Play](https://play.google.com/?hl=en&tab=p8)
  5. [YouTube](https://www.youtube.com/?tab=p1)
  6. [News](https://news.google.com/?tab=pn)
  7. [Gmail](https://mail.google.com/mail/?tab=pm)
  8. [Drive](https://drive.google.com/?tab=po)
  9. [More](https://www.google.com/intl/en/about/products?tab=ph)

    1. [Calendar](https://calendar.google.com/calendar?tab=pc)
    2. [Translate](https://translate.google.com/?hl=en&tab=pT)
    3. [Mobile](http://www.google.com/mobile/?hl=en&tab=pD)
    4. [Books](https://books.google.com/?hl=en&tab=pp)
    5. [Shopping](https://www.google.com/shopping?hl=en&source=og&tab=pf)
    6. [Blogger](https://www.blogger.com/?tab=pj)
    7. [Finance](https://www.google.com/finance?tab=pe)
    8. [Photos](https://photos.google.com/?tab=pq&pageId=none)
    9. [Docs](https://docs.google.com/document/?usp=docs_alc)
    10.     11. [Even more »](https://www.google.com/intl/en/about/products?tab=ph)




## Account Options

  1. [Sign in](https://www.google.com/accounts/Login?service=print&continue=https://books.google.com/books%3Fhl%3Den%26lr%3D%26id%3DgVInCgAAQBAJ%26oi%3Dfnd%26pg%3DPP3%26dq%3DImplementing%2Ba%2BBinary%2BSearch%2BAlgorithm%2Bin%2BPython%2Bcode,%2Bincluding%2Ba%2Bstep-by-step%2Bguide,%2Bexamples,%2Band%2Bexplanations%2Bof%2Btime%2Bcomplexity%2Band%2Bspace%2Bcomplexity.%26ots%3DoX4iY7LZ88%26sig%3Du4UPxo_zQRGLPZp5e-9-Mi8UzVI&hl=en&ec=GAZACg)
  2.   3. [](http://www.google.com/preferences?hl=en "Options")




[![Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.](//www.google.com/images/cleardot.gif)](https://books.google.com/books?hl=en&lr=&id=gVInCgAAQBAJ&oi=fnd&pg=PP3&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&ots=oX4iY7LZ88&sig=u4UPxo_zQRGLPZp5e-9-Mi8UzVI&output=html_text "Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.")

## [Books](/books)

[](https://books.google.com/books?id=gVInCgAAQBAJ&printsec=frontcover&source=gbs_vpt_read)[]()[]()[]()[]()[]()

Try the new Google Books

Check out the new look and enjoy easier access to your favorite features

[Try it now](https://www.google.com/books/edition/_/gVInCgAAQBAJ?hl=en&newbks=1&gbpv=1&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&pg=PP3&printsec=frontcover)

[No thanks](javascript:)

![](/googlebooks/images/material/ogen_bookshelf.png)

[![](/googlebooks/images/material/book_icon_color.png)Try the new Google Books![](/googlebooks/images/material/arrow_right_black_24dp.png)](https://www.google.com/books/edition/_/gVInCgAAQBAJ?hl=en&newbks=1&gbpv=1&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&pg=PP3&printsec=frontcover)

  1. [Try the new Google Books](https://www.google.com/books/edition/Python_Algorithms/gVInCgAAQBAJ?hl=en&newbks=1&gbpv=1&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&pg=PP3&printsec=frontcover)
  2. [My library](https://www.google.com/accounts/Login?service=print&continue=https://books.google.com/books%3Fop%3Dlibrary&hl=en)
  3. [Help](http://books.google.com/support/topic/4359341?hl=en)
  4. [Advanced Book Search](https://books.google.com/advanced_book_search?q=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=)



[Get print book](https://books.google.com/books?id=gVInCgAAQBAJ&sitesec=buy&source=gbs_vpt_read)

No eBook available

### 

  * [Apress.com](http://www.apress.com/9781484200551?utm_medium=referral&utm_source=google_books&utm_campaign=3_pier05_buy_print&utm_content=en_08082017)
  * [Amazon.com](http://www.amazon.com/gp/search?index=books&linkCode=qs&keywords=9781484200551)
  * [Barnes&Noble.com;](https://www.barnesandnoble.com/w/_/_?ean=9781484200551)
  * [Books-A-Million](http://www.booksamillion.com/product/9781484200551)
  * [IndieBound](http://www.indiebound.org/book/9781484200551)
  * * * *

  * [Find in a library](https://books.google.com/url?id=gVInCgAAQBAJ&pg=PP3&q=http://worldcat.org/oclc/1005778623&clientid=librarylink&usg=AOvVaw2ge4z0OP-f5o3Egwb8aci3&source=gbs_buy_r)
  * [All sellers »](https://books.google.com/books?id=gVInCgAAQBAJ&sitesec=buy&source=gbs_buy_r)



[![Front Cover](https://books.google.com/books/publisher/content?id=gVInCgAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&imgtk=AFLRE73ytdzdsd2wAfUBzWejUFaU1RMnHQAKNi6XpaqmAlRRRg75c5p8eJAabLTwZXd9Kr25HxgeQkLqFnqfWqPHX_NUQmGTPF0ReXmyN6win50hnRMYdPo8huppYzESSv0s1RWdmZ0b)](https://books.google.com/books?id=gVInCgAAQBAJ&printsec=frontcover)|   
---|---  
  
# Python Algorithms: Mastering Basic Algorithms in the Python Language

By Magnus Lie Hetland

|  |   
---|---|---  
  
[About this book](https://books.google.com/books?id=gVInCgAAQBAJ&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=&source=gbs_navlinks_s)

[![](/googlebooks/images/ebook_promo.png)Get Textbooks on Google PlayRent and save from the world's largest eBookstore. Read, highlight, and take notes, across web, tablet, and phone.Go to Google Play Now »](https://play.google.com/store/books/category/coll_1673)

### 

[![Apress](https://pagead2.googlesyndication.com/pagead/imgad?id=CICAgKDr-7LvuQEQtwEYMjIIEbzbH6On9rU)](https://books.google.com/url?id=gVInCgAAQBAJ&pg=PP3&q=http://www.apress.com&linkid=1&usg=AOvVaw038iUnbL_B_wZL18Nktckc&source=gbs_pub_info_r)| Pages displayed by permission of [Apress](https://books.google.com/url?id=gVInCgAAQBAJ&pg=PP3&q=http://www.apress.com&linkid=1&usg=AOvVaw038iUnbL_B_wZL18Nktckc&source=gbs_pub_info_r). [Copyright](https://books.google.com/books?id=gVInCgAAQBAJ&printsec=copyright&source=gbs_pub_info_r). | | | Pages| [](https://books.google.com/books?id=gVInCgAAQBAJ&pg=PP2&lpg=PP3&ots=oX4iY7LZ88&focus=viewport&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=)| [](https://books.google.com/books?id=gVInCgAAQBAJ&pg=PP4&lpg=PP3&ots=oX4iY7LZ88&focus=viewport&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=)  
---|---|---  
  | |   
  
|   
---|---  
  
[![Next Page](//www.google.com/images/cleardot.gif)](https://books.google.com/books?id=gVInCgAAQBAJ&pg=PP4&lpg=PP3&ots=oX4iY7LZ88&focus=viewport&dq=Implementing+a+Binary+Search+Algorithm+in+Python+code,+including+a+step-by-step+guide,+examples,+and+explanations+of+time+complexity+and+space+complexity.&lr=)  
---


url: https://systechgroup.in/blog-python-binary-search-algorithm-guide/
title: Python Binary Search Algorithm: Efficient Search with Code Examples
scrape_date: 2025-03-14T14:02:23.966824
content_type: markdown
hash: 192b5d6bff62de2275d0c729d44eb5b0958c3cd37e62030f32d230035e0d7a81
content:
Skip to content

[![systech Group](http://systechgroup.in/wp-content/uploads/2021/06/WhatsApp-Image-2021-04-23-at-1.30.23-PM.jpeg)](https://systechgroup.in/ "systech Group")

  * [Home](https://systechgroup.in/)
  * [About Us](https://systechgroup.in/about-us/)
  * [Locations](https://systechgroup.in/) __
    * [Trichy](https://systechgroup.in/best-training-institute-in-trichy/)
    * [Coimbatore](https://systechgroup.in/best-training-institute-coimbatore-training/)
  * [Training](https://systechgroup.in/) __
    * [Networking & Cyber Security:](https://systechgroup.in/)__
      * [CCNA](https://systechgroup.in/trichy-training-networking-cyber-security-ccna-course/)
      * [CCNP](https://systechgroup.in/ccnp-course-training-in-trichy/)
      * [Cyber Security](https://systechgroup.in/trichy-training-networking-cyber-security-course/)
      * [Ethical Hacking](https://systechgroup.in/ethical-hacking-course-training-in-trichy/)
      * [Firewall](https://systechgroup.in/trichy-firewall-course/)
      * [MCSA](https://systechgroup.in/mcsa-course-training-certification-in-trichy/)
      * [MCSE](https://systechgroup.in/mcse-course-training-certification-in-trichy/)
      * [Hardware & Networking](https://systechgroup.in/hardware-networking-course-training-in-trichy/)
      * [CCTV & Networking](https://systechgroup.in/cctv-networking-course-training-in-trichy/)
    * [Cloud](https://systechgroup.in/) __
      * [Cloud Computing](https://systechgroup.in/cloud-computing-course-training-in-trichy/)
      * [Microsoft Azure](https://systechgroup.in/microsoft-windows-azure-course-training-in-trichy/)
      * [AWS](https://systechgroup.in/amazon-web-service-aws-course-training-certification-in-trichy/)
      * [Microsoft 365 Endpoint Administrator](https://systechgroup.in/microsoft-365-endpoint-administrator-training-in-trichy/)
    * [Marketing](https://systechgroup.in/) __
      * [Digital Marketing](https://systechgroup.in/trichy-training-digital-marketing-course/)
      * [SEO](https://systechgroup.in/trichy-training-digital-marketing-seo-course/)
      * [Social Media Marketing](https://systechgroup.in/social-media-marketing-course-training-trichy/)
    * [Software Development](https://systechgroup.in/) __
      * [Python](https://systechgroup.in/trichy-training-software-development-python-course/)
      * [Django](https://systechgroup.in/django-course-training-in-trichy/)
      * [JAVA](https://systechgroup.in/trichy-training-software-development-java-course/)
      * [Software Testing](https://systechgroup.in/trichy-training-software-testing-course/)
      * [Data Science](https://systechgroup.in/data-science-course-in-trichy/)
    * [Others](https://systechgroup.in/) __
      * [IoT](https://systechgroup.in/iot-course-training-in-trichy/)
      * [Advance Robotics](https://systechgroup.in/robotics-drones-course-training-in-trichy/)
      * [Robotics Class for Kids](https://systechgroup.in/robotics-class-for-school-kids-children/)
      * [Linux](https://systechgroup.in/linux-redhat-course-training-certification-in-trichy/)
      * [Microsoft Office 365](https://systechgroup.in/microsoft-office-365-course-training-in-trichy/)
  * [Services](https://systechgroup.in/) __
    * [Web Design](https://systechgroup.in/best-web-design-company-in-trichy/)
    * [GMB Local SEO](https://systechgroup.in/google-my-business-service-in-trichy/)
  * [Blog](https://systechgroup.in/blog/) __
    * [Python](https://systechgroup.in/python/)
    * [Java](https://systechgroup.in/java/)
    * [Digital Marketing](https://systechgroup.in/digital-marketing/)
  * [Contact Us](https://systechgroup.in/contact-us/)
  * [Students Login](https://systechgroup.in/) __
    * [Account Login](https://online.systechgroup.in/login)
    * [App Download](https://play.google.com/store/apps/details?id=co.bran.zlvhy)



Search for:

[![systech Group](http://systechgroup.in/wp-content/uploads/2021/06/WhatsApp-Image-2021-04-23-at-1.30.23-PM.jpeg)](https://systechgroup.in/ "systech Group")

_Close menu_

  * [Home](https://systechgroup.in/)
  * [About Us](https://systechgroup.in/about-us/)
  * [Locations](https://systechgroup.in/) __
    * [Trichy](https://systechgroup.in/best-training-institute-in-trichy/)
    * [Coimbatore](https://systechgroup.in/best-training-institute-coimbatore-training/)
  * [Training](https://systechgroup.in/) __
    * [Networking & Cyber Security:](https://systechgroup.in/)__
      * [CCNA](https://systechgroup.in/trichy-training-networking-cyber-security-ccna-course/)
      * [CCNP](https://systechgroup.in/ccnp-course-training-in-trichy/)
      * [Cyber Security](https://systechgroup.in/trichy-training-networking-cyber-security-course/)
      * [Ethical Hacking](https://systechgroup.in/ethical-hacking-course-training-in-trichy/)
      * [Firewall](https://systechgroup.in/trichy-firewall-course/)
      * [MCSA](https://systechgroup.in/mcsa-course-training-certification-in-trichy/)
      * [MCSE](https://systechgroup.in/mcse-course-training-certification-in-trichy/)
      * [Hardware & Networking](https://systechgroup.in/hardware-networking-course-training-in-trichy/)
      * [CCTV & Networking](https://systechgroup.in/cctv-networking-course-training-in-trichy/)
    * [Cloud](https://systechgroup.in/) __
      * [Cloud Computing](https://systechgroup.in/cloud-computing-course-training-in-trichy/)
      * [Microsoft Azure](https://systechgroup.in/microsoft-windows-azure-course-training-in-trichy/)
      * [AWS](https://systechgroup.in/amazon-web-service-aws-course-training-certification-in-trichy/)
      * [Microsoft 365 Endpoint Administrator](https://systechgroup.in/microsoft-365-endpoint-administrator-training-in-trichy/)
    * [Marketing](https://systechgroup.in/) __
      * [Digital Marketing](https://systechgroup.in/trichy-training-digital-marketing-course/)
      * [SEO](https://systechgroup.in/trichy-training-digital-marketing-seo-course/)
      * [Social Media Marketing](https://systechgroup.in/social-media-marketing-course-training-trichy/)
    * [Software Development](https://systechgroup.in/) __
      * [Python](https://systechgroup.in/trichy-training-software-development-python-course/)
      * [Django](https://systechgroup.in/django-course-training-in-trichy/)
      * [JAVA](https://systechgroup.in/trichy-training-software-development-java-course/)
      * [Software Testing](https://systechgroup.in/trichy-training-software-testing-course/)
      * [Data Science](https://systechgroup.in/data-science-course-in-trichy/)
    * [Others](https://systechgroup.in/) __
      * [IoT](https://systechgroup.in/iot-course-training-in-trichy/)
      * [Advance Robotics](https://systechgroup.in/robotics-drones-course-training-in-trichy/)
      * [Robotics Class for Kids](https://systechgroup.in/robotics-class-for-school-kids-children/)
      * [Linux](https://systechgroup.in/linux-redhat-course-training-certification-in-trichy/)
      * [Microsoft Office 365](https://systechgroup.in/microsoft-office-365-course-training-in-trichy/)
  * [Services](https://systechgroup.in/) __
    * [Web Design](https://systechgroup.in/best-web-design-company-in-trichy/)
    * [GMB Local SEO](https://systechgroup.in/google-my-business-service-in-trichy/)
  * [Blog](https://systechgroup.in/blog/) __
    * [Python](https://systechgroup.in/python/)
    * [Java](https://systechgroup.in/java/)
    * [Digital Marketing](https://systechgroup.in/digital-marketing/)
  * [Contact Us](https://systechgroup.in/contact-us/)
  * [Students Login](https://systechgroup.in/) __
    * [Account Login](https://online.systechgroup.in/login)
    * [App Download](https://play.google.com/store/apps/details?id=co.bran.zlvhy)



[![systech Group](http://systechgroup.in/wp-content/uploads/2021/06/WhatsApp-Image-2021-04-23-at-1.30.23-PM.jpeg)](https://systechgroup.in/ "systech Group")

Toggle menu __

Search for:

# Python Program to Implement a Binary Search Algorithm

By [TRT_SS](https://systechgroup.in/author/trt_ss/)[January 23, 2025January 24, 2025](https://systechgroup.in/blog-python-binary-search-algorithm-guide/)[Python](https://systechgroup.in/category/python/)

![binary search algorithm python](https://systechgroup.in/wp-content/uploads/2025/01/binary-search-algorithm-python.jpeg)

Reading Time:  6 minutes

####  Table of Contents 

__

__

__

When it comes to searching through large datasets, the binary search algorithm in Python stands out as one of the most efficient methods available. Whether you are a beginner or an experienced coder, understanding how binary search works and implementing it in Python can drastically improve the speed and performance of your search operations. In this article, we’ll explore binary search in Python program in-depth, explain the logic behind it, and show you how to implement the algorithm in both recursive and iterative forms.

## What is Binary Search?

At its core, binary search is an efficient search algorithm that works on sorted arrays. Unlike linear search, which checks each element one by one, binary search quickly narrows down the search space by repeatedly halving the array. The algorithm compares the target value with the element at the mid-point of the array and then decides whether to look in the lower or upper half, based on the comparison.

## Why is Binary Search So Efficient?

The key advantage of the binary**search algorithm** lies in its **logarithmic time complexity**. Instead of iterating through all elements of the list, binary search reduces the problem size by half with each step. This makes it incredibly fast, especially when dealing with large datasets. In contrast to a **linear search** , which requires O(n) time, **binary search** only requires **O(log n)** time, making it much more efficient.

**Key Benefits of Binary Search:**

  * **Efficiency** : Performs faster searches due to reduced time complexity.
  * **Optimized for Sorted Data** : Only works on sorted arrays, making it ideal for data that's already sorted or can be sorted.
  * **Divide and Conquer** : A classic example of the divide and conquer strategy, splitting the problem into smaller parts with each iteration.



## How Does Binary Search Work?

### Steps Involved in Binary Search

The **binary search algorithm** follows a set of clear steps to find the target value in a sorted array:

  1. **Initialization** : Set the initial search range by defining two pointers, low and high, which represent the bounds of the array. Initially, low = 0 and high = len(arr) - 1.
  2. **Mid-Point Comparison** : Calculate the mid-point index as mid = (low + high) // 2. Then compare the element at arr[mid] with the target value.
  3. **Repeat** until the target is found or the search space becomes invalid (i.e., low exceeds high).
  4. **Adjust Search Range** :


    
    
    				
    					If arr[mid] == target, return the mid index, as you've found the target.
    If arr[mid] < target, the target must lie in the upper half, so adjust low = mid + 1.
    If arr[mid] > target, the target must lie in the lower half, so adjust high = mid - 1.
    
    				
    			

### Example of How Binary Search Works

Let’s say you have the following sorted array, and you want to search for the number 6:
    
    
    				
    					arr = [1, 3, 5, 6, 7, 9, 11]
    target = 6
    				
    			

Start by setting low = 0 and high = 6 (since there are 7 elements in the array).

The **mid-point** is calculated as (0 + 6) // 2 = 3. arr[3] = 6, which matches the target, so the algorithm returns the index **3**.

### Python Code for Binary Search

Here’s an implementation of the binary search in Python program using the iterative method:
    
    
    				
    					def binary_search(arr, target):
        low = 0
        high = len(arr) - 1
        
        while low <= high:
            mid = (low + high) // 2
            if arr[mid] == target:
                return mid  # Return index if target is found
            elif arr[mid] < target:
                low = mid + 1  # Narrow search to upper half
            else:
                high = mid - 1  # Narrow search to lower half
        
        return -1  # Return -1 if target is not found
    
    				
    			

**Explanation of the Code:**

  * **low****and****high** : These represent the current bounds of the search space.

  * **Mid-point Calculation** : The mid-point of the current search space is calculated at each step, and a comparison is made between arr[mid] and the target.

  * **Return Values** : If the target is found, the function returns the **index** of the target in the array. If the target is not found, it returns **-1**.




### Time Complexity of Binary Search

One of the biggest advantages of **binary search** is its **efficient search time**. Let’s take a closer look at the time complexity:

  * **Best Case** : If the target is at the mid-point, the search is complete in just **one comparison** , i.e., **O(1)**.
  * **Average and Worst Case** : With each comparison, the search space is halved. This leads to a time complexity of **O(log n)** in both the average and worst-case scenarios.



### Binary Search vs Linear Search: 

Here’s a comparison of binary search and linear search:

**Search Algorithm**| **Best Case Time**| **Worst Case Time**| **Space Complexity**  
---|---|---|---  
Binary Search| O(1)| O(log n)| O(1)  
Linear Search| O(1)| O(n)| O(1)  
  
As seen in the table, binary search significantly outperforms linear search in terms of time complexity, especially for large datasets.

### Recursive vs Iterative Binary Search 

**Recursive Binary Search**

In recursive binary search, the function calls itself to narrow down the search space. Here's the recursive implementation:
    
    
    				
    					def binary_search_recursive(arr, target, low, high):
        if low > high:
            return -1  # Target not found
        
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid  # Return index if target is found
        elif arr[mid] < target:
            return binary_search_recursive(arr, target, mid + 1, high)  # Search upper half
        else:
            return binary_search_recursive(arr, target, low, mid - 1)  # Search lower half
    
    				
    			

### Iterative Binary Search 

The iterative approach uses a loop instead of recursion to search for the target:
    
    
    				
    					def binary_search_iterative(arr, target):
        low = 0
        high = len(arr) - 1
        
        while low <= high:
            mid = (low + high) // 2
            if arr[mid] == target:
                return mid  # Return index if target is found
            elif arr[mid] < target:
                low = mid + 1  # Search upper half
            else:
                high = mid - 1  # Search lower half
        
        return -1  # Target not found
    				
    			

**Recursive vs Iterative Comparison:**

  * **Recursive Approach** : The recursive version is more intuitive and elegant, but it may lead to stack overflow if the recursion depth is too large.

  * **Iterative Approach** : The iterative version is slightly more memory-efficient as it does not involve the overhead of function calls.




### Real-Life Applications of Binary Search 

**Binary search** is not just an academic exercise—it has a wide range of practical applications:

  1. **Database Search** : In databases, binary search is used for indexing, allowing for quick retrieval of records from large datasets.
  2. **E-Commerce Platforms** : When browsing product catalogs, **binary search** is used to quickly find products within a sorted list by price, rating, etc.
  3. **Machine Learning** : Binary search helps with tasks like optimizing hyperparameters or navigating decision trees in algorithms.



### Example: E-Commerce Search Optimization

In an e-commerce platform with thousands of products, binary search can be used to search for products within a sorted list of prices. Without binary search, the platform would need to search through each product one by one, leading to slow load times and poor user experience.

### Troubleshooting Common Issues with Binary Search

Despite its efficiency, there are a few common pitfalls when implementing **binary search** :

  1. **Off-by-One Errors** : Incorrect handling of the mid-point index can result in incorrect results or infinite loops. Always ensure the correct mid-point calculation.
  2. **Unsorted Data** : **Binary search** only works on **sorted arrays**. Ensure that the data is sorted before performing the search.
  3. **Stack Overflow in Recursion** : For very large arrays, recursive **binary search** can lead to stack overflow errors. In such cases, use the iterative method.



## Conclusion

The binary search algorithm in Python is a must-know technique for efficient searching, especially when dealing with sorted datasets. By mastering the binary search Python program and understanding its principles, you’ll be able to implement this fast search technique in a variety of real-world applications.

**Key Takeaways:**

  * Binary search has O(log n) time complexity, making it much faster than linear search.
  * It can be implemented iteratively or recursively, with each approach having its advantages.
  * Binary search is used in real-world scenarios such as databases, e-commerce, and machine learning.



#### Ready to implement the binary search algorithm in Python? Start coding today 

[Try Python Binary Search Code Now](https://systechgroup.in/trichy-training-software-development-python-course/)

## FAQs

####  ____ What is the Binary Search Algorithm in Python?

The binary search algorithm in Python is an efficient method for finding a specific element in a sorted array or list. It works by repeatedly dividing the search space in half, comparing the middle element with the target value, and narrowing down the search range. The algorithm continues this process until the target is found or the search space is empty. Python’s binary search implementation can be done using both iterative and recursive approaches, both offering time complexity of O(log n), making it much faster than linear search for large datasets.

####  ____ What is the Binary Search Algorithm?

The binary search algorithm is a divide-and-conquer approach used to efficiently locate a target value within a sorted array. It starts by comparing the middle element of the array to the target value. If the target is smaller, the algorithm discards the upper half of the array and repeats the process on the lower half. Similarly, if the target is larger, the algorithm discards the lower half. This continues until the element is found or the search space is reduced to zero.

  * Time Complexity: O(log n) in the worst and average cases.
  * Space Complexity: O(1) for iterative, O(log n) for recursive implementations.



####  ____ What is the Binary Search Pattern Algorithm?

The binary search pattern algorithm refers to the conceptual framework behind the binary search algorithm. It follows the idea of systematically narrowing down the possible locations of a target value by dividing the search space in half at each step. This pattern is applicable not only to searching for specific values but also to solving problems that can be modeled with sorted data and require an optimal solution, like finding the lower bound or upper bound of a value, or solving optimization problems.

####  ____ What is Required for a Binary Search Algorithm to Work Correctly on a Dataset?

For a binary search algorithm to work correctly on a dataset, the data must meet the following conditions:

  1. Sorted Data: The dataset must be sorted in either ascending or descending order. Binary search relies on this property to discard half of the search space at each step.
  2. Unique Elements (Optional but Recommended): While binary search can work with non-unique elements, the algorithm performs best when the dataset contains distinct values. If the array has duplicates, binary search can still function, but special handling may be required.
  3. Random Access Capability: The dataset should support random access (like arrays or lists) to efficiently access the middle element in constant time.
  4. Correct Boundaries: When implementing binary search, it is essential to properly set and update the low and high boundaries to avoid errors like infinite loops or off-by-one errors.



## Post navigation

[How to Create a REST API Using Python and Flask](https://systechgroup.in/blog-how-create-api-python-flask/)

[Linear Search in Python Guide with Example Program](https://systechgroup.in/blog-linear-search-python-algorithm/)

__


url: https://stackoverflow.com/questions/13454841/how-to-emulate-windows-rt
title: arm - How to emulate Windows RT - Stack Overflow
scrape_date: 2025-03-14T15:47:27.131038
content_type: markdown
hash: 17ba1766f9629f249a0b0414bad86fffdea89679663c162c65fad52395870a78
content:
Skip to main content

[ Stack Overflow ](https://stackoverflow.com)

  1. [About](https://stackoverflow.co/)
  2. Products 
  3. [OverflowAI](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav-bar&utm_content=overflowai)



  1. [ Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers ](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-for-teams)
  2. [ Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand ](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-advertising)
  3. [ OverflowAI GenAI features for Teams ](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-ai)
  4. [ OverflowAPI Train & fine-tune LLMs ](https://stackoverflow.co/api-solutions/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-api)
  5. [ Labs The future of collective knowledge sharing ](https://stackoverflow.co/labs/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=labs)
  6. [About the company](https://stackoverflow.co/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=about-the-company) [Visit the blog](https://stackoverflow.blog/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=blog)



Loading…

  1. ###  [current community](https://stackoverflow.com)

     * [ Stack Overflow  ](https://stackoverflow.com)

[help](https://stackoverflow.com/help) [chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)

     * [ Meta Stack Overflow  ](https://meta.stackoverflow.com)

###  your communities 

[Sign up](https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f13454841%2fhow-to-emulate-windows-rt) or [log in](https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f13454841%2fhow-to-emulate-windows-rt) to customize your list. 

### [more stack exchange communities](https://stackexchange.com/sites)

[company blog](https://stackoverflow.blog)

  2.   3. [Log in](https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f13454841%2fhow-to-emulate-windows-rt)
  4. [Sign up](https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f13454841%2fhow-to-emulate-windows-rt)



  1.     1. [ Home ](/)
    2. [ Questions ](/questions)
    3. [ Tags ](/tags)
    4.     5. [ Users ](/users)
    6. [ Companies ](https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&so_source=SiteNav)
    7. [ Labs ](javascript:void\(0\))
    8. [ Jobs ](/jobs?source=so-left-nav)
    9. [ Discussions ](/beta/discussions)
    10. [ Collectives ](javascript:void\(0\))

    11. Communities for your favorite technologies. [Explore all Collectives](/collectives-all)

  2. Teams

![](https://cdn.sstatic.net/Img/teams/teams-promo.svg?v=e507948b81bf)

Ask questions, find answers and collaborate at work with Stack Overflow for Teams. 

[Try Teams for free](https://stackoverflowteams.com/teams/create/free/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams) [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams)

  3. [ Teams ](javascript:void\(0\))
  4. Ask questions, find answers and collaborate at work with Stack Overflow for Teams. [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams-compact)




##### Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

[ Learn more about Collectives ](/collectives)

**Teams**

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

[ Learn more about Teams ](https://stackoverflow.co/teams/)

Get early access and see previews of new features.

[ Learn more about Labs](https://stackoverflow.co/labs/)

# [How to emulate Windows RT](/questions/13454841/how-to-emulate-windows-rt)

[ Ask Question ](/questions/ask)

Asked 12 years, 3 months ago

Modified [today](?lastactivity "2025-03-14 20:44:55Z")

Viewed 9k times 

11 

[](/posts/13454841/timeline "Show activity on this post.")

How can I run Windows RT (the restricted ARM version of Windows 8) in an emulator, for development purposes? This question contains two parts:

  * Obtaining the image: Does an installation image exist (for vendors, in MSDN, ...)? Can I take a snapshot of the Surface RT disk (how?), or can I extract it somehow from recovery data (I don't know how the recovery system works, but there's a function to wipe and reinstall the software on the Surface completely).
  * Running the image: What can I emulate it on? I've heard about QEMU, but it has the reputation of being slow. Also, the program must emulate the neccessary hardware (Tegra-3).



  * [windows-8](/questions/tagged/windows-8 "show questions tagged 'windows-8'")
  * [arm](/questions/tagged/arm "show questions tagged 'arm'")
  * [emulation](/questions/tagged/emulation "show questions tagged 'emulation'")
  * [windows-rt](/questions/tagged/windows-rt "show questions tagged 'windows-rt'")



[Share](/q/13454841 "Short permalink to this question")

[Improve this question](/posts/13454841/edit)

Follow 

[edited Jan 21, 2013 at 15:48](/posts/13454841/revisions "show all edits to this post")

[![Filip Skakun's user avatar](https://www.gravatar.com/avatar/9f4153be2cf81e0b6656e2761898ecfa?s=64&d=identicon&r=PG)](/users/41942/filip-skakun)

[Filip Skakun](/users/41942/filip-skakun)

31.7k66 gold badges7777 silver badges100100 bronze badges

asked Nov 19, 2012 at 13:30

[![jdm's user avatar](https://www.gravatar.com/avatar/c096715708403c3711af16fb490319f1?s=64&d=identicon&r=PG)](/users/143091/jdm)

[jdm](/users/143091/jdm)jdm

10.2k1313 gold badges6767 silver badges116116 bronze badges

9

  * Maybe someone could create a `windows-rt` tag for this?

- [jdm](/users/143091/jdm "10,150 reputation")

Commented Nov 19, 2012 at 13:31

  * 1

Sorry, I mean the operating system "Windows RT", not the new API called "WinRT" or "Windows Runtime" (which is behind `windows-runtime`). Changed it back to the new tag.

- [jdm](/users/143091/jdm "10,150 reputation")

Commented Nov 19, 2012 at 16:49

  * 1

according to Wikipedia **_Unlike all other variations of Windows 8, Windows RT can only be obtained by users as the pre-loaded operating system on devices produced by participating OEMs._**

- [Mayank](/users/1043683/mayank "8,852 reputation")

Commented Nov 19, 2012 at 17:09

  * 2

you can create a recovery disk using on board **Recovery Tool** , [Making a Recovery Drive for the Microsoft Surface RT](http://www.andyrathbone.com/2012/11/12/making-a-recovery-drive-for-the-microsoft-surface-rt/) and than try using QEMU to emulate the OS, not sure how hard it'll be to get it setup and installed. Microsoft might have some more tricks up their sleeves.

- [Mayank](/users/1043683/mayank "8,852 reputation")

Commented Nov 19, 2012 at 17:14

  * 3

Alternatively, we could use an `windows-arm` tag, if you are opposed to `windows-rt`. Anyway, I believe a tag is neccessary for this special edition of Windows 8 - for questions that are about it's peculiarities compared to x86 Windows 8.

- [jdm](/users/143091/jdm "10,150 reputation")

Commented Nov 19, 2012 at 18:14




 |  Show **4** more comments

##  2 Answers 2

Sorted by:  [ Reset to default ](/questions/13454841/how-to-emulate-windows-rt?answertab=scoredesc#tab-top)

Highest score (default)  Trending (recent votes count more)  Date modified (newest first)  Date created (oldest first) 

7 

[](/posts/61778039/timeline "Show activity on this post.")

I'm aware this question was asked 9 years ago, but now it's possible to emulate Windows RT in patched QEMU 6.2.0, you can also [read more](https://x.com/x86corez/status/1523303255438028800) about the work being done for it.

![](https://i.sstatic.net/lIzYO.png)

The repo with downloads is here: <https://github.com/binarymaster/qemu/releases>

Please note that there is no audio, no network, and no GPU acceleration supported. Although you can have network connection with Windows 10 ARM, just read my previous answer below.

#### Answer from May 13, 2020:

I'm aware this question was asked 7 years ago, but now it's possible to emulate Windows on ARM in the latest QEMU 4.2.0.

### Steps to follow:

  1. Patch QEMU to report EL3 TrustZone available: <https://github.com/TeoIzAwezome/rtemu/commit/0f8b8ec18725cd0f66a39b5520fb6a435a757f95> \- if you're using Windows and don't want to build QEMU from source, you can patch `qemu-system-arm.exe` : replace this hex sequence with NOPs `4531C931D24C8D05BE515C004889F1E87AD82E00` => `9090909090909090909090909090909090909090` \- it replaces this part:



![](https://i.sstatic.net/QXjf0.jpg)

![](https://i.sstatic.net/4InKo.jpg)

  2. Download Linaro firmware for QEMU 32-bit ARM platform, specifically 15.12 version which is the last one that boots Windows on ARM without problems: <https://releases.linaro.org/components/kernel/uefi-linaro/15.12/release/qemu/QEMU_EFI.fd>
  3. Download an ESD image of Windows RT 8.1, these are publicly available from Microsoft. You can find download links here <https://tech.myonlylonely.com/wimboot-for-surface-2-en/> or by using Google with this string: `9600.17053.winblue_refresh.141120-0031_woafre_client_CoreARM_O15_en-us-IR5_CCSA_WOAFRER_EN-US_ESD_2F1E1C773E39C4672F52B1F3A0AE7844FD837B23.esd`
  4. Either convert ESD to ISO or just extract it with `esd-decrypter-wimlib-8.7z` : <https://www.tenforums.com/software-apps/27180-windows-10-recovery-tools-bootable-rescue-disk-2.html>
  5. You will need VirtIO drivers for QEMU compiled for 32-bit ARM platform, precompiled `viostor.sys` driver is available here [https://www.betaarchive.com/forum/viewtopic.php?f=62&t=40522](https://www.betaarchive.com/forum/viewtopic.php?f=62&t=40522) \- if you built drivers yourself in Visual Studio, make sure to create catalog files by using `Inf2Cat /driver:C:\Drivers\ /os:8_ARM,6_3_ARM` and test-sign them (all `.cat` and `.sys` files); once drivers are ready, you can slipstream them into `boot.wim` and `install.wim` by using `dism /Mount-Wim` \+ `/Add-Driver` \+ `/Unmount-Wim`
  6. If you don't want to boot and install from ISO, you can create a VHD/VHDX disk image and format/partition it the same way as it's done for Windows installation on UEFI systems — GPT partitioning: EFI partition - FAT32, MSR partition, Primary partition - NTFS. Use `dism /Apply-Image` with `install.wim` to install Windows files to created disk, and `bcdboot` to install EFI files
  7. Since you're using test-signed drivers, you need to tweak BCD file on EFI partition:


    
    
    set BCD=E:\EFI\Microsoft\Boot\BCD
    bcdedit /store %BCD% /set {globalsettings} testsigning on
    bcdedit /store %BCD% /set {globalsettings} nointegritychecks on
    

  8. Once everything is done, start QEMU with these parameters:


    
    
    set HDD=windows-on-arm.vhd
    set ISO=en_windows_8.1_ir4_ARM_dvd.iso
    
    qemu-system-arm ^
    -M virt ^
    -cpu cortex-a15 ^
    -smp 2 ^
    --accel tcg,thread=multi ^
    -m 2G ^
    -bios QEMU_EFI_1512.fd ^
    -device VGA ^
    -device ich9-usb-ehci1 ^
    -device usb-kbd ^
    -device usb-tablet ^
    -drive if=virtio,file=%HDD% ^
    -device virtio-scsi-pci,id=scsi0 ^
    -device scsi-cd,drive=install,bus=scsi0.0 ^
    -drive if=none,format=raw,id=install,file=%ISO%,readonly=on ^
    -rtc base="2013-07-15",clock=vm
    

### Notes:

  * There is known problem with PCI MMIO area, and USB input wouldn't work because of it. You can workaround that by replacing `-M virt` with `-M virt,highmem=false` however with this option Windows 8.1 RT will throw BSOD with code `SYSTEM_THREAD_EXCEPTION_NOT_HANDLED`.

  * It's known Windows 10 for ARM does not throw this BSOD code and works in QEMU pretty well with `-M virt,highmem=false`. You can use Google to get it: `10.0.15035.0.rs2_release.170209-1535_armfre_client-enterprise_volume_en-us` :




![](https://i.sstatic.net/iDyCE.png)

  * Also note that full emulation of 32-bit ARM is very slow even on Intel Core i7-8700 @ 3.2 GHz, so it's better to use some modern ARM board like Raspberry Pi 4 that have hardware accelerated KVM hypervisor.

  * Windows for 32-bit ARM is already considered legacy, better switch to AArch64 aka Windows for ARM64, see <https://withinrafael.com/2018/02/12/boot-arm64-builds-of-windows-10-in-qemu/>




[Share](/a/61778039 "Short permalink to this answer")

[Improve this answer](/posts/61778039/edit)

Follow 

[edited 2 mins ago](/posts/61778039/revisions "show all edits to this post")

[![NilsB's user avatar](https://www.gravatar.com/avatar/c2b8ba3aa47c6e2e7629387a3ff1c4e1?s=64&d=identicon&r=PG&f=y&so-version=2)](/users/1665345/nilsb)

[NilsB](/users/1665345/nilsb)

1,19011 gold badge1919 silver badges4343 bronze badges

answered May 13, 2020 at 15:03

[![Stas'M's user avatar](https://www.gravatar.com/avatar/a9d43ae736c8789a123fe91098fd9bd8?s=64&d=identicon&r=PG&f=y&so-version=2)](/users/4381493/stasm)

[Stas'M](/users/4381493/stasm)Stas'M

9111 gold badge33 silver badges77 bronze badges

2

  * Is it possible to use the 'latest' uefi-linaro instead of 15.12? There is a qemu64 folder in that linaro download link, is that for qemu-system-aarch64 or for Windows 10 ARM64?

- [Biswapriyo](/users/8928481/biswapriyo "4,291 reputation")

Commented Jun 26, 2020 at 14:16

  * @Biswapriyo I didn't tested QEMU AArch64 with Linaro and Windows 10 ARM64, so cannot say for sure. Yes, qemu64 directory is exactly for that.

- [Stas'M](/users/4381493/stasm "91 reputation")

Commented Jun 26, 2020 at 14:20




Add a comment  | 

3 

[](/posts/13705509/timeline "Show activity on this post.")

There's no way to truly emulate a Windows RT enivonrment on ARM. You have two options...

1) Go pick yourself up a Surface tablet.

2) Contact your local Microsoft Technical Evangelist to see if they have loaner hardware available.

Also, chances are your local Microsoft Evangelist team is holding Windows 8 developer events where they may have test hardware on hand for you to try. If you're in the US, you can find a list of these events at <http://msdnevents.com>.

[Share](/a/13705509 "Short permalink to this answer")

[Improve this answer](/posts/13705509/edit)

Follow 

answered Dec 4, 2012 at 14:47

[![Dave Bost - MSFT's user avatar](https://www.gravatar.com/avatar/524a3c0093e4bac99a16db3032cee56d?s=64&d=identicon&r=PG)](/users/80301/dave-bost-msft)

[Dave Bost - MSFT](/users/80301/dave-bost-msft)Dave Bost - MSFT

51744 silver badges44 bronze badges

1

  * but .. does the Windows Surface SDK does that? Emulation, i thought yes

- [Miguel Q](/users/1834212/miguel-q "3,628 reputation")

Commented May 2, 2017 at 17:02




Add a comment  | 

##  Your Answer 

Thanks for contributing an answer to Stack Overflow!

  * Please be sure to _answer the question_. Provide details and share your research!



But _avoid_ …

  * Asking for help, clarification, or responding to other answers.
  * Making statements based on opinion; back them up with references or personal experience.



To learn more, see our [tips on writing great answers](/help/how-to-answer).

Draft saved

Draft discarded

### Sign up or [log in](/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f13454841%2fhow-to-emulate-windows-rt%23new-answer)

Sign up using Google 

Sign up using Email and Password 

Submit

### Post as a guest

Name

Email

Required, but never shown

### Post as a guest

Name

Email

Required, but never shown

Post Your Answer  Discard 

By clicking “Post Your Answer”, you agree to our [terms of service](https://stackoverflow.com/legal/terms-of-service/public) and acknowledge you have read our [privacy policy](https://stackoverflow.com/legal/privacy-policy).

Start asking to get answers

Find the answer to your question by asking.

[Ask question](/questions/ask)

Explore related questions

  * [windows-8](/questions/tagged/windows-8 "show questions tagged 'windows-8'")
  * [arm](/questions/tagged/arm "show questions tagged 'arm'")
  * [emulation](/questions/tagged/emulation "show questions tagged 'emulation'")
  * [windows-rt](/questions/tagged/windows-rt "show questions tagged 'windows-rt'")



See similar questions with these tags.

  * The Overflow Blog 
  * [Can climate tech startups address the current crisis?](https://stackoverflow.blog/2025/03/14/can-climate-tech-startups-address-the-current-crisis/)

  * [What we learned at TDX 2025](https://stackoverflow.blog/2025/03/14/what-we-learned-at-tdx-2025/)

  * Featured on Meta 
  * [Community Asks Sprint Announcement - March 2025](https://meta.stackexchange.com/questions/407321/community-asks-sprint-announcement-march-2025)

  * [Meta Stack Exchange site maintenance scheduled starting Monday, March 17,...](https://meta.stackexchange.com/questions/407425/meta-stack-exchange-site-maintenance-scheduled-starting-monday-march-17-2025-f "Meta Stack Exchange site maintenance scheduled starting Monday, March 17, 2025 from 13:30 UTC to 14:30 UTC \(9:30am to 10:30am ET\)")

  * [Policy: Generative AI (e.g., ChatGPT) is banned](https://meta.stackoverflow.com/questions/421831/policy-generative-ai-e-g-chatgpt-is-banned)

  * [Stacks Editor development and testing](https://meta.stackoverflow.com/questions/433034/stacks-editor-development-and-testing)

  * [Is it better to redirect users who attempt to perform actions they can't yet...](https://meta.stackoverflow.com/questions/432989/is-it-better-to-redirect-users-who-attempt-to-perform-actions-they-cant-yet-tak "Is it better to redirect users who attempt to perform actions they can't yet take?")




[Visit chat](https://chat.stackoverflow.com/)

#### Related

[ 8 ](/q/1813287 "Question score \(upvotes - downvotes\)") [Windows Mobile Emulator For Linux](/questions/1813287/windows-mobile-emulator-for-linux)

[ 1 ](/q/7106191 "Question score \(upvotes - downvotes\)") [How to emulate Windows CE 5.0 on ARMV4i architecture](/questions/7106191/how-to-emulate-windows-ce-5-0-on-armv4i-architecture)

[ 10 ](/q/8254846 "Question score \(upvotes - downvotes\)") [Does Windows 8 ARM, A.K.A. "Windows RT" have the Winapi (win32) available for third party developers?](/questions/8254846/does-windows-8-arm-a-k-a-windows-rt-have-the-winapi-win32-available-for-th)

[ 1 ](/q/12462733 "Question score \(upvotes - downvotes\)") [Is it possible to emulate Windows 8 for ARM?](/questions/12462733/is-it-possible-to-emulate-windows-8-for-arm)

[ 4 ](/q/13149659 "Question score \(upvotes - downvotes\)") [Windows Mobile/Embedded Device Emulator on Windows 8](/questions/13149659/windows-mobile-embedded-device-emulator-on-windows-8)

[ 11 ](/q/13455035 "Question score \(upvotes - downvotes\)") [Running Win32 apps compiled for ARM on Windows RT](/questions/13455035/running-win32-apps-compiled-for-arm-on-windows-rt)

[ 2 ](/q/16505806 "Question score \(upvotes - downvotes\)") [Programming on an ARM tablet](/questions/16505806/programming-on-an-arm-tablet)

[ 1 ](/q/21021217 "Question score \(upvotes - downvotes\)") [Run WP8 apps on ARM7-based Windows RT Tablet](/questions/21021217/run-wp8-apps-on-arm7-based-windows-rt-tablet)

[ 1 ](/q/25765319 "Question score \(upvotes - downvotes\)") [Emulate Tablet using emulator](/questions/25765319/emulate-tablet-using-emulator)

[ 0 ](/q/33240115 "Question score \(upvotes - downvotes\)") [Port .NET Win32 to Windows RT](/questions/33240115/port-net-win32-to-windows-rt)

####  [ Hot Network Questions ](https://stackexchange.com/questions?tab=hot)

  * [ Hide value in column when it is 0 ](https://superuser.com/questions/1886119/hide-value-in-column-when-it-is-0)
  * [ Why can the time between power on and the beginning of POST vary? ](https://superuser.com/questions/1885628/why-can-the-time-between-power-on-and-the-beginning-of-post-vary)
  * [ Does the Moon really need its own atomic clocks and timescales, separate from those used on and around Earth? ](https://space.stackexchange.com/questions/68059/does-the-moon-really-need-its-own-atomic-clocks-and-timescales-separate-from-th)
  * [ Can a single country simultaneously suffer from overpopulation and underpopulation? ](https://worldbuilding.stackexchange.com/questions/265297/can-a-single-country-simultaneously-suffer-from-overpopulation-and-underpopulati)
  * [ Why do elements in Galois group permute roots in the way that they do? ](https://math.stackexchange.com/questions/5045313/why-do-elements-in-galois-group-permute-roots-in-the-way-that-they-do)
  * [ Interpreting moderation in PROCESS macro ](https://stats.stackexchange.com/questions/662599/interpreting-moderation-in-process-macro)
  * [ The do's and don'ts of do in French ](https://french.stackexchange.com/questions/55656/the-dos-and-donts-of-do-in-french)
  * [ How would a society with no wood reliably heat itself? ](https://worldbuilding.stackexchange.com/questions/265292/how-would-a-society-with-no-wood-reliably-heat-itself)
  * [ What is the highest temperature the butter can be used for baking at? ](https://cooking.stackexchange.com/questions/130343/what-is-the-highest-temperature-the-butter-can-be-used-for-baking-at)
  * [ Levi-Civita Christoffel symbol in geodesic ](https://physics.stackexchange.com/questions/845196/levi-civita-christoffel-symbol-in-geodesic)
  * [ MacVim does not paste when in command line mode (i.e. ":e <D-v>" would be useful); am I missing something? ](https://vi.stackexchange.com/questions/46603/macvim-does-not-paste-when-in-command-line-mode-i-e-e-d-v-would-be-useful)
  * [ Indefinite integral of real function using complex numbers ](https://math.stackexchange.com/questions/5045527/indefinite-integral-of-real-function-using-complex-numbers)
  * [ How to make a desktop computer use Ethernet to connect to one network and Wi-Fi to another simultaneously? ](https://superuser.com/questions/1886136/how-to-make-a-desktop-computer-use-ethernet-to-connect-to-one-network-and-wi-fi)
  * [ How to hold a signal high from one pulse e reset it before another pulse ](https://electronics.stackexchange.com/questions/741376/how-to-hold-a-signal-high-from-one-pulse-e-reset-it-before-another-pulse)
  * [ Edit Mode Not showing Vertices ](https://blender.stackexchange.com/questions/332307/edit-mode-not-showing-vertices)
  * [ Is the US debt "crisis" fake? ](https://economics.stackexchange.com/questions/60090/is-the-us-debt-crisis-fake)
  * [ How can I destroy the Milky Way Galaxy? ](https://worldbuilding.stackexchange.com/questions/265201/how-can-i-destroy-the-milky-way-galaxy)
  * [ Sellars treating persons as fictions ](https://philosophy.stackexchange.com/questions/123436/sellars-treating-persons-as-fictions)
  * [ Has the Trump administration explained how they're going to get people to the Moon/Mars if they're reducing the size of NASA? ](https://politics.stackexchange.com/questions/90999/has-the-trump-administration-explained-how-theyre-going-to-get-people-to-the-mo)
  * [ How to deflect interview question about most recent job ](https://workplace.stackexchange.com/questions/200533/how-to-deflect-interview-question-about-most-recent-job)
  * [ "Naive category theory", or, pedagogy and how to Introduce natural transformations? ](https://mathoverflow.net/questions/489355/na%c3%afve-category-theory-or-pedagogy-and-how-to-introduce-natural-transformatio)
  * [ Why Do We Take the Derivative of the Basis Vector When Calcuating the Acceleration in Polar Coordinates? ](https://physics.stackexchange.com/questions/845183/why-do-we-take-the-derivative-of-the-basis-vector-when-calcuating-the-accelerati)
  * [ Photon energy anomaly after converting to mass ](https://physics.stackexchange.com/questions/845208/photon-energy-anomaly-after-converting-to-mass)
  * [ How to control expansion in \str_if_eq:nnTF ](https://tex.stackexchange.com/questions/738899/how-to-control-expansion-in-str-if-eqnntf)

more hot questions 

[ Question feed ](/feeds/question/13454841 "Feed of this question and its answers")

#  Subscribe to RSS 

Question feed 

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

![](/posts/13454841/ivc/27b4?prg=8f88743e-a9c2-4551-b2cb-e9fdbe62afe9)

[](https://stackoverflow.com)

##### [Stack Overflow](https://stackoverflow.com)

  * [Questions](/questions)
  * [Help](/help)
  * [Chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)



##### [Products](https://stackoverflow.co/)

  * [Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=teams)
  * [Advertising](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=advertising)
  * [Talent](https://stackoverflow.co/advertising/employer-branding/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=talent)



##### [Company](https://stackoverflow.co/)

  * [About](https://stackoverflow.co/)
  * [Press](https://stackoverflow.co/company/press/)
  * [Work Here](https://stackoverflow.co/company/work-here/)
  * [Legal](https://stackoverflow.com/legal)
  * [Privacy Policy](https://stackoverflow.com/legal/privacy-policy)
  * [Terms of Service](https://stackoverflow.com/legal/terms-of-service/public)
  * [Contact Us](/contact)
  * Your Privacy Choices 
  * [Cookie Policy](https://stackoverflow.com/legal/cookie-policy)



##### [Stack Exchange Network](https://stackexchange.com)

  * [ Technology ](https://stackexchange.com/sites#technology)
  * [ Culture & recreation ](https://stackexchange.com/sites#culturerecreation)
  * [ Life & arts ](https://stackexchange.com/sites#lifearts)
  * [ Science ](https://stackexchange.com/sites#science)
  * [ Professional ](https://stackexchange.com/sites#professional)
  * [ Business ](https://stackexchange.com/sites#business)
  * [ API ](https://api.stackexchange.com/)
  * [ Data ](https://data.stackexchange.com/)



  * [Blog](https://stackoverflow.blog?blb=1)
  * [Facebook](https://www.facebook.com/officialstackoverflow/)
  * [Twitter](https://twitter.com/stackoverflow)
  * [LinkedIn](https://linkedin.com/company/stack-overflow)
  * [Instagram](https://www.instagram.com/thestackoverflow)



Site design / logo © 2025 Stack Exchange Inc;  user contributions licensed under  [CC BY-SA](https://stackoverflow.com/help/licensing) .  rev 2025.3.14.23880


scrape_date: 2025-03-14T15:47:27.131207
content_type: markdown
hash: b82583026c7ce8b487d44254d6b4f95e63c3360474495ef64502703d6d184311
url:
https://stackoverflow.com/questions/24745879/how-to-apply-preprocessing-methods-on-several-columns-at-one-time-in-sklearn

title:
python - how to apply preprocessing methods on several columns at one time in sklearn - Stack Overflow

content:
Skip to main content

[ Stack Overflow ](https://stackoverflow.com)

  1. [About](https://stackoverflow.co/)
  2. Products 
  3. [OverflowAI](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav-bar&utm_content=overflowai)



  1. [ Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers ](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-for-teams)
  2. [ Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand ](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-advertising)
  3. [ OverflowAI GenAI features for Teams ](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-ai)
  4. [ OverflowAPI Train & fine-tune LLMs ](https://stackoverflow.co/api-solutions/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-api)
  5. [ Labs The future of collective knowledge sharing ](https://stackoverflow.co/labs/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=labs)
  6. [About the company](https://stackoverflow.co/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=about-the-company) [Visit the blog](https://stackoverflow.blog/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=blog)



Loading…

  1. ###  [current community](https://stackoverflow.com)

     * [ Stack Overflow  ](https://stackoverflow.com)

[help](https://stackoverflow.com/help) [chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)

     * [ Meta Stack Overflow  ](https://meta.stackoverflow.com)

###  your communities 

[Sign up](https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f24745879%2fhow-to-apply-preprocessing-methods-on-several-columns-at-one-time-in-sklearn) or [log in](https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f24745879%2fhow-to-apply-preprocessing-methods-on-several-columns-at-one-time-in-sklearn) to customize your list. 

### [more stack exchange communities](https://stackexchange.com/sites)

[company blog](https://stackoverflow.blog)

  2.   3. [Log in](https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f24745879%2fhow-to-apply-preprocessing-methods-on-several-columns-at-one-time-in-sklearn)
  4. [Sign up](https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f24745879%2fhow-to-apply-preprocessing-methods-on-several-columns-at-one-time-in-sklearn)



  1.     1. [ Home ](/)
    2. [ Questions ](/questions)
    3. [ Tags ](/tags)
    4.     5. [ Users ](/users)
    6. [ Companies ](https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&so_source=SiteNav)
    7. [ Labs ](javascript:void\(0\))
    8. [ Jobs ](/jobs?source=so-left-nav)
    9. [ Discussions ](/beta/discussions)
    10. [ Collectives ](javascript:void\(0\))

    11. Communities for your favorite technologies. [Explore all Collectives](/collectives-all)

  2. Teams

![](https://cdn.sstatic.net/Img/teams/teams-promo.svg?v=e507948b81bf)

Ask questions, find answers and collaborate at work with Stack Overflow for Teams. 

[Try Teams for free](https://stackoverflowteams.com/teams/create/free/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams) [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams)

  3. [ Teams ](javascript:void\(0\))
  4. Ask questions, find answers and collaborate at work with Stack Overflow for Teams. [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams-compact)




##### Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

[ Learn more about Collectives ](/collectives)

**Teams**

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

[ Learn more about Teams ](https://stackoverflow.co/teams/)

Get early access and see previews of new features.

[ Learn more about Labs](https://stackoverflow.co/labs/)

# [how to apply preprocessing methods on several columns at one time in sklearn](/questions/24745879/how-to-apply-preprocessing-methods-on-several-columns-at-one-time-in-sklearn)

[ Ask Question ](/questions/ask)

Asked 10 years, 8 months ago

Modified [today](?lastactivity "2025-03-14 20:42:52Z")

Viewed 4k times 

2 

[](/posts/24745879/timeline "Show activity on this post.")

My question is I have so many columns in my pandas data frame and I am trying to apply the sklearn preprocessing using dataframe mapper from sklearn-pandas library such as 
    
    
    mapper= DataFrameMapper([
        ('gender',sklearn.preprocessing.LabelBinarizer()),
        ('gradelevel',sklearn.preprocessing.LabelEncoder()),
        ('subject',sklearn.preprocessing.LabelEncoder()),
        ('districtid',sklearn.preprocessing.LabelEncoder()),
        ('sbmRate',sklearn.preprocessing.StandardScaler()),
        ('pRate',sklearn.preprocessing.StandardScaler()),
        ('assn1',sklearn.preprocessing.StandardScaler()),
        ('assn2',sklearn.preprocessing.StandardScaler()),
        ('assn3',sklearn.preprocessing.StandardScaler()),
        ('assn4',sklearn.preprocessing.StandardScaler()),
        ('assn5',sklearn.preprocessing.StandardScaler()),
        ('attd1',sklearn.preprocessing.StandardScaler()),
        ('attd2',sklearn.preprocessing.StandardScaler()),
        ('attd3',sklearn.preprocessing.StandardScaler()),
        ('attd4',sklearn.preprocessing.StandardScaler()),
        ('attd5',sklearn.preprocessing.StandardScaler()),
        ('sbm1',sklearn.preprocessing.StandardScaler()),
        ('sbm2',sklearn.preprocessing.StandardScaler()),
        ('sbm3',sklearn.preprocessing.StandardScaler()),
        ('sbm4',sklearn.preprocessing.StandardScaler()),
        ('sbm5',sklearn.preprocessing.StandardScaler())
     ])
    

I am just wondering whether there is another more succinct way for me to preprocess many variables at one time without writing them out explicitly.

Another thing that I found a little bit annoying is when I transformed all the pandas data frame into arrays which sklearn can work with, they will lose the column name features, which makes the selection very difficult. Does anyone knows how to preserve the column names as the key when change the pandas data frames to np arrays?

Thank you so much! 

  * [python](/questions/tagged/python "show questions tagged 'python'")
  * [pandas](/questions/tagged/pandas "show questions tagged 'pandas'")
  * [scikit-learn](/questions/tagged/scikit-learn "show questions tagged 'scikit-learn'")
  * [sklearn-pandas](/questions/tagged/sklearn-pandas "show questions tagged 'sklearn-pandas'")



[Share](/q/24745879 "Short permalink to this question")

[Improve this question](/posts/24745879/edit)

Follow 

[edited Aug 2, 2016 at 17:08](/posts/24745879/revisions "show all edits to this post")

[![Sander van den Oord's user avatar](https://i.sstatic.net/HJKwi.jpg?s=64)](/users/3489155/sander-van-den-oord)

[Sander van den Oord](/users/3489155/sander-van-den-oord)

12.9k55 gold badges6767 silver badges118118 bronze badges

asked Jul 14, 2014 at 20:59

[![MYjx's user avatar](https://www.gravatar.com/avatar/ff03fbfb85e9e11ea95700f4014c1107?s=64&d=identicon&r=PG&f=y&so-version=2)](/users/3394937/myjx)

[MYjx](/users/3394937/myjx)MYjx

4,4271111 gold badges4242 silver badges5555 bronze badges

2

  * I'd just create a new encoded column and pass these to scikit learn if you want nice column names, you could write a scaling function that took the columns and applied the appropriate encoder depending on type and generate the new column name by adding a prefix _encoded or similar

- [EdChum](/users/704848/edchum "394,469 reputation")

Commented Jul 14, 2014 at 21:27

  * Hi @EdChum Thank you so much for the reply! But I still can't get through the prefix_encoded part. Would you please kindly post some codes about that? Thank you so much for your help! :)

- [MYjx](/users/3394937/myjx "4,427 reputation")

Commented Jul 15, 2014 at 17:05




Add a comment  | 

##  2 Answers 2

Sorted by:  [ Reset to default ](/questions/24745879/how-to-apply-preprocessing-methods-on-several-columns-at-one-time-in-sklearn?answertab=scoredesc#tab-top)

Highest score (default)  Trending (recent votes count more)  Date modified (newest first)  Date created (oldest first) 

9 

[](/posts/24747389/timeline "Show activity on this post.")
    
    
    from sklearn.preprocessing import LabelBinarizer, LabelEncoder, StandardScaler
    from sklearn_pandas import DataFrameMapper
    
    encoders = ['gradelevel', 'subject', 'districtid']
    scalars = ['sbmRate', 'pRate', 'assn1', 'assn2', 'assn3', 'assn4', 'assn5', 'attd1', 'attd2', 'attd3', 'attd4', 'attd5', 'sbm1', 'sbm2', 'sbm3', 'sbm4', 'sbm5']
    mapper = DataFrameMapper(
        [('gender', LabelBinarizer())] +
        [(encoder, LabelEncoder()) for encoder in encoders] +
        [(scalar, StandardScaler()) for scalar in scalars]
    )
    

If you're doing this a lot, you could even write your own function:
    
    
    mapper = data_frame_mapper(binarizers=['gender'],
        encoders=['gradelevel', 'subject', 'districtid'],
        scalars=['sbmRate', 'pRate', 'assn1', 'assn2', 'assn3', 'assn4', 'assn5', 'attd1', 'attd2', 'attd3', 'attd4', 'attd5', 'sbm1', 'sbm2', 'sbm3', 'sbm4', 'sbm5'])
    

[Share](/a/24747389 "Short permalink to this answer")

[Improve this answer](/posts/24747389/edit)

Follow 

[edited Aug 2, 2016 at 15:24](/posts/24747389/revisions "show all edits to this post")

[![Sander van den Oord's user avatar](https://i.sstatic.net/HJKwi.jpg?s=64)](/users/3489155/sander-van-den-oord)

[Sander van den Oord](/users/3489155/sander-van-den-oord)

12.9k55 gold badges6767 silver badges118118 bronze badges

answered Jul 14, 2014 at 22:58

[![U2EF1's user avatar](https://www.gravatar.com/avatar/811b3da6d82df046814093ec0f3d6561?s=64&d=identicon&r=PG)](/users/507762/u2ef1)

[U2EF1](/users/507762/u2ef1)U2EF1

13.3k33 gold badges3737 silver badges3737 bronze badges

3

  * Hi @U2EF1 Thank you so much for the reply! But do you know how to keep the name of the column when I change them into np array? Thx so much!!

- [MYjx](/users/3394937/myjx "4,427 reputation")

Commented Jul 15, 2014 at 17:06

  * 2

also I kind of can't understand what +\ for...I think it kind of a separator for two lines of codes. Why the comma can't work here? sorry i am really new to the Python world. Thx again!

- [MYjx](/users/3394937/myjx "4,427 reputation")

Commented Jul 15, 2014 at 18:47

  * @MYjx I don't know how to push your columns through. Numpy has structured arrays, but I'm not sure what sklearn would do with them. And you're right the \ just lets you continue the line, but it's unnecessary here inside parens.

- [U2EF1](/users/507762/u2ef1 "13,289 reputation")

Commented Jul 15, 2014 at 20:38




Add a comment  | 

0 

[](/posts/79510192/timeline "Show activity on this post.")

These days, such transformations are done with [sklearn's ColumnTransformer](<https://scikit-learn.org/stable/modules/generated/sklearn.compose.ColumnTransformer.html>) or (easier), [skrub's TableVectorizer](<https://skrub-data.org/stable/reference/generated/skrub.TableVectorizer.html>).

[Share](/a/79510192 "Short permalink to this answer")

Follow 

answered [4 mins ago](/posts/79510192/revisions "show all edits to this post")

community wiki 

  


[ Gael Varoquaux ](/posts/79510192/revisions "show revision history for this post")




Add a comment  | 

##  Your Answer 

Thanks for contributing an answer to Stack Overflow!

  * Please be sure to _answer the question_. Provide details and share your research!



But _avoid_ …

  * Asking for help, clarification, or responding to other answers.
  * Making statements based on opinion; back them up with references or personal experience.



To learn more, see our [tips on writing great answers](/help/how-to-answer).

Draft saved

Draft discarded

### Sign up or [log in](/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f24745879%2fhow-to-apply-preprocessing-methods-on-several-columns-at-one-time-in-sklearn%23new-answer)

Sign up using Google 

Sign up using Email and Password 

Submit

### Post as a guest

Name

Email

Required, but never shown

### Post as a guest

Name

Email

Required, but never shown

Post Your Answer  Discard 

By clicking “Post Your Answer”, you agree to our [terms of service](https://stackoverflow.com/legal/terms-of-service/public) and acknowledge you have read our [privacy policy](https://stackoverflow.com/legal/privacy-policy).

Start asking to get answers

Find the answer to your question by asking.

[Ask question](/questions/ask)

Explore related questions

  * [python](/questions/tagged/python "show questions tagged 'python'")
  * [pandas](/questions/tagged/pandas "show questions tagged 'pandas'")
  * [scikit-learn](/questions/tagged/scikit-learn "show questions tagged 'scikit-learn'")
  * [sklearn-pandas](/questions/tagged/sklearn-pandas "show questions tagged 'sklearn-pandas'")



See similar questions with these tags.

  * The Overflow Blog 
  * [Can climate tech startups address the current crisis?](https://stackoverflow.blog/2025/03/14/can-climate-tech-startups-address-the-current-crisis/)

  * [What we learned at TDX 2025](https://stackoverflow.blog/2025/03/14/what-we-learned-at-tdx-2025/)

  * Featured on Meta 
  * [Community Asks Sprint Announcement - March 2025](https://meta.stackexchange.com/questions/407321/community-asks-sprint-announcement-march-2025)

  * [Meta Stack Exchange site maintenance scheduled starting Monday, March 17,...](https://meta.stackexchange.com/questions/407425/meta-stack-exchange-site-maintenance-scheduled-starting-monday-march-17-2025-f "Meta Stack Exchange site maintenance scheduled starting Monday, March 17, 2025 from 13:30 UTC to 14:30 UTC \(9:30am to 10:30am ET\)")

  * [Policy: Generative AI (e.g., ChatGPT) is banned](https://meta.stackoverflow.com/questions/421831/policy-generative-ai-e-g-chatgpt-is-banned)

  * [Stacks Editor development and testing](https://meta.stackoverflow.com/questions/433034/stacks-editor-development-and-testing)

  * [Is it better to redirect users who attempt to perform actions they can't yet...](https://meta.stackoverflow.com/questions/432989/is-it-better-to-redirect-users-who-attempt-to-perform-actions-they-cant-yet-tak "Is it better to redirect users who attempt to perform actions they can't yet take?")




#### Related

[ 2 ](/q/45412816 "Question score \(upvotes - downvotes\)") [Applying several functions on dataframe columns at once](/questions/45412816/applying-several-functions-on-dataframe-columns-at-once)

[ 5 ](/q/47895434 "Question score \(upvotes - downvotes\)") [How to make pipeline for multiple dataframe columns?](/questions/47895434/how-to-make-pipeline-for-multiple-dataframe-columns)

[ 0 ](/q/51772956 "Question score \(upvotes - downvotes\)") [Process multiple columns with Pandas apply method when columns are not predefined](/questions/51772956/process-multiple-columns-with-pandas-apply-method-when-columns-are-not-predefine)

[ 4 ](/q/60273501 "Question score \(upvotes - downvotes\)") [Column-specific processing in an sklearn pipeline](/questions/60273501/column-specific-processing-in-an-sklearn-pipeline)

[ 0 ](/q/61689168 "Question score \(upvotes - downvotes\)") [Apply the same function on each record of a column in Pandas dataframe](/questions/61689168/apply-the-same-function-on-each-record-of-a-column-in-pandas-dataframe)

[ 1 ](/q/62365875 "Question score \(upvotes - downvotes\)") [How do I .apply or .replace multiple columns at once in pandas?](/questions/62365875/how-do-i-apply-or-replace-multiple-columns-at-once-in-pandas)

[ 1 ](/q/64260270 "Question score \(upvotes - downvotes\)") [How to apply each step on sklearn Pipeline on selected columns?](/questions/64260270/how-to-apply-each-step-on-sklearn-pipeline-on-selected-columns)

[ 2 ](/q/65554163 "Question score \(upvotes - downvotes\)") [Apply multiple preprocessing steps to a column in sklearn Pipeline + ColumnTransformer](/questions/65554163/apply-multiple-preprocessing-steps-to-a-column-in-sklearn-pipeline-columntrans)

[ 0 ](/q/68633720 "Question score \(upvotes - downvotes\)") [scikit preprocessing across entire dataframe](/questions/68633720/scikit-preprocessing-across-entire-dataframe)

[ 1 ](/q/70196163 "Question score \(upvotes - downvotes\)") [How to build a pipeline finding the best preprocessing per column in a fine-grained fashion?](/questions/70196163/how-to-build-a-pipeline-finding-the-best-preprocessing-per-column-in-a-fine-grai)

####  [ Hot Network Questions ](https://stackexchange.com/questions?tab=hot)

  * [ Car left idling for extended period ](https://mechanics.stackexchange.com/questions/98741/car-left-idling-for-extended-period)
  * [ Progress messages for "Repairing disk errors. This might take over an hour to complete"? ](https://superuser.com/questions/1886113/progress-messages-for-repairing-disk-errors-this-might-take-over-an-hour-to-co)
  * [ How to deflect interview question about most recent job ](https://workplace.stackexchange.com/questions/200533/how-to-deflect-interview-question-about-most-recent-job)
  * [ Web application contains a link to a non-existing domain, is this a vulnerability? ](https://security.stackexchange.com/questions/280787/web-application-contains-a-link-to-a-non-existing-domain-is-this-a-vulnerabilit)
  * [ "Naive category theory", or, pedagogy and how to Introduce natural transformations? ](https://mathoverflow.net/questions/489355/na%c3%afve-category-theory-or-pedagogy-and-how-to-introduce-natural-transformatio)
  * [ "...embedded one inch lateral to the wound edge" or "...embedded one inch laterally to the wound edge" ](https://english.stackexchange.com/questions/629897/embedded-one-inch-lateral-to-the-wound-edge-or-embedded-one-inch-latera)
  * [ What is the highest temperature the butter can be used for baking at? ](https://cooking.stackexchange.com/questions/130343/what-is-the-highest-temperature-the-butter-can-be-used-for-baking-at)
  * [ 0-30V power supply circuit function of BJT base connection ](https://electronics.stackexchange.com/questions/741454/0-30v-power-supply-circuit-function-of-bjt-base-connection)
  * [ Must getters return values as is? ](https://softwareengineering.stackexchange.com/questions/456824/must-getters-return-values-as-is)
  * [ Why do elements in Galois group permute roots in the way that they do? ](https://math.stackexchange.com/questions/5045313/why-do-elements-in-galois-group-permute-roots-in-the-way-that-they-do)
  * [ Why is Erdős' conjecture on arithmetic progressions not discussed much, and is there an active pathway to its resolution? ](https://mathoverflow.net/questions/489375/why-is-erd%c5%91s-conjecture-on-arithmetic-progressions-not-discussed-much-and-is-t)
  * [ What was the real motivation behind Walter White's decision to keep cooking meth even after securing enough money? ](https://movies.stackexchange.com/questions/124803/what-was-the-real-motivation-behind-walter-white-s-decision-to-keep-cooking-meth)
  * [ Seabird cryptic crossword ](https://puzzling.stackexchange.com/questions/130959/seabird-cryptic-crossword)
  * [ MacVim does not paste when in command line mode (i.e. ":e <D-v>" would be useful); am I missing something? ](https://vi.stackexchange.com/questions/46603/macvim-does-not-paste-when-in-command-line-mode-i-e-e-d-v-would-be-useful)
  * [ Remove space before nth root ](https://tex.stackexchange.com/questions/738918/remove-space-before-nth-root)
  * [ How can visa officials know I 'visa shopped' ](https://travel.stackexchange.com/questions/193728/how-can-visa-officials-know-i-visa-shopped)
  * [ Is Hebrews 10:26 mistranslated? ](https://hermeneutics.stackexchange.com/questions/102233/is-hebrews-1026-mistranslated)
  * [ Can I use tandem breakers to make room in a full panel with full neutral bus bars? ](https://diy.stackexchange.com/questions/315818/can-i-use-tandem-breakers-to-make-room-in-a-full-panel-with-full-neutral-bus-bar)
  * [ Is 223.1.2/24 (sic) correct way to label a subnet? ](https://networkengineering.stackexchange.com/questions/86989/is-223-1-2-24-sic-correct-way-to-label-a-subnet)
  * [ Has the Trump administration explained how they're going to get people to the Moon/Mars if they're reducing the size of NASA? ](https://politics.stackexchange.com/questions/90999/has-the-trump-administration-explained-how-theyre-going-to-get-people-to-the-mo)
  * [ Implicit differentiation - why can you substitute the expression? ](https://math.stackexchange.com/questions/5044810/implicit-differentiation-why-can-you-substitute-the-expression)
  * [ Trying to model a swish of paste ](https://blender.stackexchange.com/questions/332291/trying-to-model-a-swish-of-paste)
  * [ How to assign configuration to a pseudo chiral carbon? ](https://chemistry.stackexchange.com/questions/187893/how-to-assign-configuration-to-a-pseudo-chiral-carbon)
  * [ The arrows are not aligning ](https://tex.stackexchange.com/questions/738886/the-arrows-are-not-aligning)

more hot questions 

[ Question feed ](/feeds/question/24745879 "Feed of this question and its answers")

#  Subscribe to RSS 

Question feed 

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

![](/posts/24745879/ivc/27b4?prg=d30b73d8-f0dc-4836-b4af-ff6d22455046)

lang-py

[](https://stackoverflow.com)

##### [Stack Overflow](https://stackoverflow.com)

  * [Questions](/questions)
  * [Help](/help)
  * [Chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)



##### [Products](https://stackoverflow.co/)

  * [Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=teams)
  * [Advertising](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=advertising)
  * [Talent](https://stackoverflow.co/advertising/employer-branding/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=talent)



##### [Company](https://stackoverflow.co/)

  * [About](https://stackoverflow.co/)
  * [Press](https://stackoverflow.co/company/press/)
  * [Work Here](https://stackoverflow.co/company/work-here/)
  * [Legal](https://stackoverflow.com/legal)
  * [Privacy Policy](https://stackoverflow.com/legal/privacy-policy)
  * [Terms of Service](https://stackoverflow.com/legal/terms-of-service/public)
  * [Contact Us](/contact)
  * Your Privacy Choices 
  * [Cookie Policy](https://stackoverflow.com/legal/cookie-policy)



##### [Stack Exchange Network](https://stackexchange.com)

  * [ Technology ](https://stackexchange.com/sites#technology)
  * [ Culture & recreation ](https://stackexchange.com/sites#culturerecreation)
  * [ Life & arts ](https://stackexchange.com/sites#lifearts)
  * [ Science ](https://stackexchange.com/sites#science)
  * [ Professional ](https://stackexchange.com/sites#professional)
  * [ Business ](https://stackexchange.com/sites#business)
  * [ API ](https://api.stackexchange.com/)
  * [ Data ](https://data.stackexchange.com/)



  * [Blog](https://stackoverflow.blog?blb=1)
  * [Facebook](https://www.facebook.com/officialstackoverflow/)
  * [Twitter](https://twitter.com/stackoverflow)
  * [LinkedIn](https://linkedin.com/company/stack-overflow)
  * [Instagram](https://www.instagram.com/thestackoverflow)



Site design / logo © 2025 Stack Exchange Inc;  user contributions licensed under  [CC BY-SA](https://stackoverflow.com/help/licensing) .  rev 2025.3.14.23880


title: c++ - Cannot attach to QSharedMemory because it already exists - Stack Overflow
scrape_date: 2025-03-14T15:47:27.131199
content_type: markdown
hash: 09459b7ebddfc879ea9f9ba2cf6ff4367f665409fcff87f4d064c2bdd78c0234
url:
https://stackoverflow.com/questions/79502040/cannot-attach-to-qsharedmemory-because-it-already-exists

content:
Skip to main content

[ Stack Overflow ](https://stackoverflow.com)

  1. [About](https://stackoverflow.co/)
  2. Products 
  3. [OverflowAI](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav-bar&utm_content=overflowai)



  1. [ Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers ](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-for-teams)
  2. [ Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand ](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-advertising)
  3. [ OverflowAI GenAI features for Teams ](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-ai)
  4. [ OverflowAPI Train & fine-tune LLMs ](https://stackoverflow.co/api-solutions/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-api)
  5. [ Labs The future of collective knowledge sharing ](https://stackoverflow.co/labs/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=labs)
  6. [About the company](https://stackoverflow.co/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=about-the-company) [Visit the blog](https://stackoverflow.blog/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=blog)



Loading…

  1. ###  [current community](https://stackoverflow.com)

     * [ Stack Overflow  ](https://stackoverflow.com)

[help](https://stackoverflow.com/help) [chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)

     * [ Meta Stack Overflow  ](https://meta.stackoverflow.com)

###  your communities 

[Sign up](https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79502040%2fcannot-attach-to-qsharedmemory-because-it-already-exists) or [log in](https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79502040%2fcannot-attach-to-qsharedmemory-because-it-already-exists) to customize your list. 

### [more stack exchange communities](https://stackexchange.com/sites)

[company blog](https://stackoverflow.blog)

  2.   3. [Log in](https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79502040%2fcannot-attach-to-qsharedmemory-because-it-already-exists)
  4. [Sign up](https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79502040%2fcannot-attach-to-qsharedmemory-because-it-already-exists)



  1.     1. [ Home ](/)
    2. [ Questions ](/questions)
    3. [ Tags ](/tags)
    4.     5. [ Users ](/users)
    6. [ Companies ](https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&so_source=SiteNav)
    7. [ Labs ](javascript:void\(0\))
    8. [ Jobs ](/jobs?source=so-left-nav)
    9. [ Discussions ](/beta/discussions)
    10. [ Collectives ](javascript:void\(0\))

    11. Communities for your favorite technologies. [Explore all Collectives](/collectives-all)

  2. Teams

![](https://cdn.sstatic.net/Img/teams/teams-promo.svg?v=e507948b81bf)

Ask questions, find answers and collaborate at work with Stack Overflow for Teams. 

[Try Teams for free](https://stackoverflowteams.com/teams/create/free/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams) [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams)

  3. [ Teams ](javascript:void\(0\))
  4. Ask questions, find answers and collaborate at work with Stack Overflow for Teams. [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams-compact)




##### Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

[ Learn more about Collectives ](/collectives)

**Teams**

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

[ Learn more about Teams ](https://stackoverflow.co/teams/)

Get early access and see previews of new features.

[ Learn more about Labs](https://stackoverflow.co/labs/)

# [Cannot attach to QSharedMemory because it already exists](/questions/79502040/cannot-attach-to-qsharedmemory-because-it-already-exists)

[ Ask Question ](/questions/ask)

Asked 3 days ago

Modified [today](?lastactivity "2025-03-14 20:43:01Z")

Viewed 70 times 

2 

[](/posts/79502040/timeline "Show activity on this post.")

I'm trying to learn how to use `QSharedMemory` with a simple application. This application should

  1. create a shared memory
  2. write to it
  3. read from it



It is able to create the memory and write to it over + over without issue. However, it is not able to read from it. It has to attach to it first in order to read from the shared memory, and it errors out when it tries to attach.

The error it return is that it already exists:

`QSharedMemory::AlreadyExists`

The `QSharedMemory` constructor that's being used sets the key name, which is good, because that one has access to `.attach()`. So using `sharedMemory.setKey()` wouldn't fix it (and I tried anyway to be sure). I'm not using the other constructor specified that only takes in a parent.

I tried calling `.detach()` but that just makes the memory unable to be found later.

I tried `.setNativeKey()` but that did not fix the issue. Also, both nativeKeys and regular keys when printed inside `writeData()` and `readData()` show the exact same string.

I've looked at these posts + consulted the official `QSharedMemory` documentation but am unable to figure out the issue:

  * [Attach Existing Shared Mem with QSharedMem](https://stackoverflow.com/questions/42390672/attach-existing-shared-memory-with-qsharedmemory)
  * [Second Process Cannot Attach](https://stackoverflow.com/questions/14994970/qsharedmemory-second-process-cannot-attach)
  * [Clearing a QSharedMem](https://stackoverflow.com/questions/15018561/how-to-clear-a-qsharedmemory)
  * [Official Qt Doc](https://doc.qt.io/qt-5/qsharedmemory.html#details)



## Code Here

### It never reaches the "here" print statement. It errors out before that.
    
    
    #include <QApplication>
    #include <QSharedMemory>
    #include <QLabel>
    #include <QPushButton>
    #include <QVBoxLayout>
    #include <QFileDialog>
    #include <QImage>
    #include <QBuffer>
    #include <QDataStream>
    #include <QDebug>
    
    class SharedMemoryDialog : public QDialog
    {
        Q_OBJECT
    
    public:
        SharedMemoryDialog(QWidget *parent = nullptr)
            : QDialog(parent)
            , shmKey("ShmemKey")
            , sharedMemory(shmKey, 0)
        {
            setupUI();
        }
    
    private slots:
        void writeData()
        {
            // Create sample data
            QString data = "\nHello from shared memory!";
            
            // Create a buffer and stream
            QBuffer buffer;
            buffer.open(QBuffer::ReadWrite);
            QDataStream out(&buffer);
            out << data;
            
            // Create shared memory segment
            int size = buffer.size();
            if (!sharedMemory.create(size)) {
                qDebug() << "Size:" << sharedMemory.size();
                if (sharedMemory.error() == QSharedMemory::AlreadyExists) {
                    sharedMemory.attach();
                } else {
                    qDebug() << "Unable to create shared memory segment:" 
                             << sharedMemory.errorString();
                    return;
                }
            }
    
            // Debugging
            qDebug() << "Key:" << sharedMemory.key();
            qDebug() << "Native Key:" << sharedMemory.nativeKey();
            
            // Copy data to shared memory
            sharedMemory.lock();
            char *to = (char*)sharedMemory.data();
            const char *from = buffer.data().data();
            memcpy(to, from, qMin(sharedMemory.size(), size));
            sharedMemory.unlock();
    
            // // detach + see if it still exists
            // if (sharedMemory.detach()) {
            //     qDebug() << "successfully detached.";
            // }
    
            // // Check if segment still exists
            // if (sharedMemory.isAttached()) {
            //     qDebug() << "still attached.";
            //     sharedMemory.detach();
            //     qDebug() << "now detached.";
            // }
            
            qDebug() << "Data written to shared memory";
        }
    
        void readData()
        {
            qDebug() << "\nGONNA READ DATA NOW";
            qDebug() << "Key:" << sharedMemory.key();
            qDebug() << "Native Key:" << sharedMemory.nativeKey();
    
            // Errors out here :(
            if (!sharedMemory.attach()) {
                switch (sharedMemory.error()) {
                case QSharedMemory::NotFound:
                    qDebug() << "Shared memory not found";
                    break;
                case QSharedMemory::PermissionDenied:
                    qDebug() << "Permission denied";
                    break;
                case QSharedMemory::InvalidSize:
                    qDebug() << "Invalid size";
                    break;
                case QSharedMemory::AlreadyExists:
                    qDebug() << "Already exists";
                    break;
                default:
                    qDebug() << "Unknown error:" << sharedMemory.errorString();
                }
                return;
            }
            
            qDebug() << "here";
    
            // Read data from shared memory
            sharedMemory.lock();
            QBuffer buffer;
            buffer.setData((char*)sharedMemory.constData(), sharedMemory.size());
            buffer.open(QBuffer::ReadOnly);
            QDataStream in(&buffer);
            
            QString data;
            in >> data;
            
            sharedMemory.unlock();
            sharedMemory.detach();
            
            qDebug() << "Data read from shared memory:" << data;
        }
    
    private:
        void setupUI()
        {
            QVBoxLayout *layout = new QVBoxLayout(this);
            
            QPushButton *writeButton = new QPushButton("Write to Shared Memory");
            QPushButton *readButton = new QPushButton("Read from Shared Memory");
            
            layout->addWidget(writeButton);
            layout->addWidget(readButton);
            
            connect(writeButton, &QPushButton::clicked, this, &SharedMemoryDialog::writeData);
            connect(readButton, &QPushButton::clicked, this, &SharedMemoryDialog::readData);
            
            setWindowTitle("Shared Memory Example");
        }
    
        QString shmKey;
        QSharedMemory sharedMemory;
    };
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        
        SharedMemoryDialog dialog;
        dialog.show();
        
        return app.exec();
    }
    
    #include "main.moc"
    

  * [c++](/questions/tagged/c%2b%2b "show questions tagged 'c++'")
  * [qt](/questions/tagged/qt "show questions tagged 'qt'")
  * [qsharedmemory](/questions/tagged/qsharedmemory "show questions tagged 'qsharedmemory'")



[Share](/q/79502040 "Short permalink to this question")

[Improve this question](/posts/79502040/edit)

Follow 

[edited 4 mins ago](/posts/79502040/revisions "show all edits to this post")

[![Pamputt's user avatar](https://lh3.googleusercontent.com/a/AATXAJyd7FenmL1UnuHv20oTuaz2a-84GHx6PA0p20k=k-s64)](/users/19424365/pamputt)

[Pamputt](/users/19424365/pamputt)

44033 silver badges1414 bronze badges

asked Mar 11 at 20:25

[![Jamie's user avatar](https://i.sstatic.net/dzsq5.jpg?s=64)](/users/9739007/jamie)

[Jamie](/users/9739007/jamie)Jamie

1,17922 gold badges1515 silver badges3333 bronze badges




Add a comment  | 

##  1 Answer 1

Sorted by:  [ Reset to default ](/questions/79502040/cannot-attach-to-qsharedmemory-because-it-already-exists?answertab=scoredesc#tab-top)

Highest score (default)  Trending (recent votes count more)  Date modified (newest first)  Date created (oldest first) 

3 

[](/posts/79502098/timeline "Show activity on this post.")

I was able to read the string you expect :  
`Data read from shared memory: "\nHello from shared memory!"`  
However I think you need to rework your business logic with something like that:  
```
    
    
      // Errors out here :(
    
            if (!sharedMemory.isAttached() && !sharedMemory.attach()) {
                switch (sharedMemory.error()) {
                case QSharedMemory::NotFound:
                    qDebug() << "Shared memory not found";
                    break;
    

You have to check if the shared memory is attached first and then attach it and detach or, whatever you desire but I think that call to attach every time ruins your application. Try checking with that example check first.

[Share](/a/79502098 "Short permalink to this answer")

[Improve this answer](/posts/79502098/edit)

Follow 

answered 2 days ago

[![Ilian Zapryanov's user avatar](https://i.sstatic.net/WHuOw.jpg?s=64)](/users/887420/ilian-zapryanov)

[Ilian Zapryanov](/users/887420/ilian-zapryanov)Ilian Zapryanov

1,23022 gold badges1818 silver badges3232 bronze badges

2

  * 1

The `!sharedMemory.isAttached()` is what made the code work. Looks like it was already attached. That's why it always errored out and refused to go further in the code. Thanks!

- [Jamie](/users/9739007/jamie "1,179 reputation")

Commented 2 days ago

  * Glad that helped, please feel free to mark it as answered for other users.

- [Ilian Zapryanov](/users/887420/ilian-zapryanov "1,230 reputation")

Commented 2 days ago




Add a comment  | 

##  Your Answer 

Thanks for contributing an answer to Stack Overflow!

  * Please be sure to _answer the question_. Provide details and share your research!



But _avoid_ …

  * Asking for help, clarification, or responding to other answers.
  * Making statements based on opinion; back them up with references or personal experience.



To learn more, see our [tips on writing great answers](/help/how-to-answer).

Draft saved

Draft discarded

### Sign up or [log in](/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79502040%2fcannot-attach-to-qsharedmemory-because-it-already-exists%23new-answer)

Sign up using Google 

Sign up using Email and Password 

Submit

### Post as a guest

Name

Email

Required, but never shown

### Post as a guest

Name

Email

Required, but never shown

Post Your Answer  Discard 

By clicking “Post Your Answer”, you agree to our [terms of service](https://stackoverflow.com/legal/terms-of-service/public) and acknowledge you have read our [privacy policy](https://stackoverflow.com/legal/privacy-policy).

Start asking to get answers

Find the answer to your question by asking.

[Ask question](/questions/ask)

Explore related questions

  * [c++](/questions/tagged/c%2b%2b "show questions tagged 'c++'")
  * [qt](/questions/tagged/qt "show questions tagged 'qt'")
  * [qsharedmemory](/questions/tagged/qsharedmemory "show questions tagged 'qsharedmemory'")



See similar questions with these tags.

  * The Overflow Blog 
  * [Can climate tech startups address the current crisis?](https://stackoverflow.blog/2025/03/14/can-climate-tech-startups-address-the-current-crisis/)

  * [What we learned at TDX 2025](https://stackoverflow.blog/2025/03/14/what-we-learned-at-tdx-2025/)

  * Featured on Meta 
  * [Community Asks Sprint Announcement - March 2025](https://meta.stackexchange.com/questions/407321/community-asks-sprint-announcement-march-2025)

  * [Meta Stack Exchange site maintenance scheduled starting Monday, March 17,...](https://meta.stackexchange.com/questions/407425/meta-stack-exchange-site-maintenance-scheduled-starting-monday-march-17-2025-f "Meta Stack Exchange site maintenance scheduled starting Monday, March 17, 2025 from 13:30 UTC to 14:30 UTC \(9:30am to 10:30am ET\)")

  * [Policy: Generative AI (e.g., ChatGPT) is banned](https://meta.stackoverflow.com/questions/421831/policy-generative-ai-e-g-chatgpt-is-banned)

  * [Stacks Editor development and testing](https://meta.stackoverflow.com/questions/433034/stacks-editor-development-and-testing)

  * [Is it better to redirect users who attempt to perform actions they can't yet...](https://meta.stackoverflow.com/questions/432989/is-it-better-to-redirect-users-who-attempt-to-perform-actions-they-cant-yet-tak "Is it better to redirect users who attempt to perform actions they can't yet take?")




#### Linked

[ 2 ](/q/15018561 "Question score \(upvotes - downvotes\)") [How to clear a QSharedMemory](/questions/15018561/how-to-clear-a-qsharedmemory?noredirect=1)

[ 1 ](/q/42390672 "Question score \(upvotes - downvotes\)") [Attach existing Shared Memory with QSharedMemory](/questions/42390672/attach-existing-shared-memory-with-qsharedmemory?noredirect=1)

[ 1 ](/q/14994970 "Question score \(upvotes - downvotes\)") [QSharedMemory : Second process cannot attach](/questions/14994970/qsharedmemory-second-process-cannot-attach?noredirect=1)

#### Related

[ 0 ](/q/5550549 "Question score \(upvotes - downvotes\)") [Getting Qt to work in Fedora 12](/questions/5550549/getting-qt-to-work-in-fedora-12)

[ 665 ](/q/1939953 "Question score \(upvotes - downvotes\)") [How to find if a given key exists in a std::map](/questions/1939953/how-to-find-if-a-given-key-exists-in-a-stdmap)

[ 2 ](/q/8684833 "Question score \(upvotes - downvotes\)") [The right way of using QIODevice::readLine()](/questions/8684833/the-right-way-of-using-qiodevicereadline)

[ 664 ](/q/16710047 "Question score \(upvotes - downvotes\)") [usr/bin/ld: cannot find -l<nameOfTheLibrary>](/questions/16710047/usr-bin-ld-cannot-find-lnameofthelibrary)

[ 654 ](/q/12774207 "Question score \(upvotes - downvotes\)") [Fastest way to check if a file exists using standard C++/C++11,14,17/C?](/questions/12774207/fastest-way-to-check-if-a-file-exists-using-standard-c-c11-14-17-c)

[ 1 ](/q/21785719 "Question score \(upvotes - downvotes\)") [C++ cannot rewrite shared memory in my windows app. It allocates new memory](/questions/21785719/c-cannot-rewrite-shared-memory-in-my-windows-app-it-allocates-new-memory)

[ 1 ](/q/14994970 "Question score \(upvotes - downvotes\)") [QSharedMemory : Second process cannot attach](/questions/14994970/qsharedmemory-second-process-cannot-attach)

[ 4 ](/q/24058427 "Question score \(upvotes - downvotes\)") [PHP - Access shared Memory created with C++](/questions/24058427/php-access-shared-memory-created-with-c)

[ 181 ](/q/2241808 "Question score \(upvotes - downvotes\)") [Checking if a folder exists (and creating folders) in Qt, C++](/questions/2241808/checking-if-a-folder-exists-and-creating-folders-in-qt-c)

####  [ Hot Network Questions ](https://stackexchange.com/questions?tab=hot)

  * [ Levi-Civita Christoffel symbol in geodesic ](https://physics.stackexchange.com/questions/845196/levi-civita-christoffel-symbol-in-geodesic)
  * [ Remove space before nth root ](https://tex.stackexchange.com/questions/738918/remove-space-before-nth-root)
  * [ Can a single country simultaneously suffer from overpopulation and underpopulation? ](https://worldbuilding.stackexchange.com/questions/265297/can-a-single-country-simultaneously-suffer-from-overpopulation-and-underpopulati)
  * [ How to assign configuration to a pseudo chiral carbon? ](https://chemistry.stackexchange.com/questions/187893/how-to-assign-configuration-to-a-pseudo-chiral-carbon)
  * [ Can I use tandem breakers to make room in a full panel with full neutral bus bars? ](https://diy.stackexchange.com/questions/315818/can-i-use-tandem-breakers-to-make-room-in-a-full-panel-with-full-neutral-bus-bar)
  * [ PTIJ: Why did Mordechai insist on Esther ploughing (החרש תחרישי) at such a crucial moment? ](https://judaism.stackexchange.com/questions/148225/ptij-why-did-mordechai-insist-on-esther-ploughing-%d7%94%d7%97%d7%a8%d7%a9-%d7%aa%d7%97%d7%a8%d7%99%d7%a9%d7%99-at-such-a-cruci)
  * [ The do's and don'ts of do in French ](https://french.stackexchange.com/questions/55656/the-dos-and-donts-of-do-in-french)
  * [ Do vocalists "tune upward" as do instrumentalists, rather than downward ](https://music.stackexchange.com/questions/139145/do-vocalists-tune-upward-as-do-instrumentalists-rather-than-downward)
  * [ Trying to model a swish of paste ](https://blender.stackexchange.com/questions/332291/trying-to-model-a-swish-of-paste)
  * [ Align-like environment in text ](https://tex.stackexchange.com/questions/738944/align-like-environment-in-text)
  * [ How to properly protect .bash_history against truncation? ](https://unix.stackexchange.com/questions/792448/how-to-properly-protect-bash-history-against-truncation)
  * [ Can someone command a lycanthrope to use its shapechanger action? ](https://rpg.stackexchange.com/questions/214984/can-someone-command-a-lycanthrope-to-use-its-shapechanger-action)
  * [ "on time" in Chess Jargon ](https://english.stackexchange.com/questions/629859/on-time-in-chess-jargon)
  * [ Is this value conversion behavior change an expected change between .NET 8 and .NET 9? ](https://stackoverflow.com/questions/79505710/is-this-value-conversion-behavior-change-an-expected-change-between-net-8-and)
  * [ Indefinite integral of real function using complex numbers ](https://math.stackexchange.com/questions/5045527/indefinite-integral-of-real-function-using-complex-numbers)
  * [ Why can the time between power on and the beginning of POST vary? ](https://superuser.com/questions/1885628/why-can-the-time-between-power-on-and-the-beginning-of-post-vary)
  * [ Positioning label for multi-part features QGIS ](https://gis.stackexchange.com/questions/491132/positioning-label-for-multi-part-features-qgis)
  * [ What are the legal consequences of Tesla Germany holding back sick employees pay? ](https://law.stackexchange.com/questions/107792/what-are-the-legal-consequences-of-tesla-germany-holding-back-sick-employees-pay)
  * [ Why are some independent variables having huge std errors? ](https://stats.stackexchange.com/questions/662601/why-are-some-independent-variables-having-huge-std-errors)
  * [ What cultural practice did Jesus have in mind when he said that "the gates of Hades will not prevail" in Matthew 16:18? ](https://hermeneutics.stackexchange.com/questions/102269/what-cultural-practice-did-jesus-have-in-mind-when-he-said-that-the-gates-of-ha)
  * [ Am I better off concocting my own chain wax? ](https://bicycles.stackexchange.com/questions/96358/am-i-better-off-concocting-my-own-chain-wax)
  * [ What does the average positive referee report look like in Mathematics? ](https://academia.stackexchange.com/questions/217322/what-does-the-average-positive-referee-report-look-like-in-mathematics)
  * [ A box inside a box puzzle ](https://puzzling.stackexchange.com/questions/130950/a-box-inside-a-box-puzzle)
  * [ What techniques do writers use to create their characters' personalities? ](https://writing.stackexchange.com/questions/71012/what-techniques-do-writers-use-to-create-their-characters-personalities)

more hot questions 

[ Question feed ](/feeds/question/79502040 "Feed of this question and its answers")

#  Subscribe to RSS 

Question feed 

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

![](/posts/79502040/ivc/27b4?prg=75114c48-ae4f-4e04-9784-e086de379f07)

lang-cpp

[](https://stackoverflow.com)

##### [Stack Overflow](https://stackoverflow.com)

  * [Questions](/questions)
  * [Help](/help)
  * [Chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)



##### [Products](https://stackoverflow.co/)

  * [Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=teams)
  * [Advertising](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=advertising)
  * [Talent](https://stackoverflow.co/advertising/employer-branding/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=talent)



##### [Company](https://stackoverflow.co/)

  * [About](https://stackoverflow.co/)
  * [Press](https://stackoverflow.co/company/press/)
  * [Work Here](https://stackoverflow.co/company/work-here/)
  * [Legal](https://stackoverflow.com/legal)
  * [Privacy Policy](https://stackoverflow.com/legal/privacy-policy)
  * [Terms of Service](https://stackoverflow.com/legal/terms-of-service/public)
  * [Contact Us](/contact)
  * Your Privacy Choices 
  * [Cookie Policy](https://stackoverflow.com/legal/cookie-policy)



##### [Stack Exchange Network](https://stackexchange.com)

  * [ Technology ](https://stackexchange.com/sites#technology)
  * [ Culture & recreation ](https://stackexchange.com/sites#culturerecreation)
  * [ Life & arts ](https://stackexchange.com/sites#lifearts)
  * [ Science ](https://stackexchange.com/sites#science)
  * [ Professional ](https://stackexchange.com/sites#professional)
  * [ Business ](https://stackexchange.com/sites#business)
  * [ API ](https://api.stackexchange.com/)
  * [ Data ](https://data.stackexchange.com/)



  * [Blog](https://stackoverflow.blog?blb=1)
  * [Facebook](https://www.facebook.com/officialstackoverflow/)
  * [Twitter](https://twitter.com/stackoverflow)
  * [LinkedIn](https://linkedin.com/company/stack-overflow)
  * [Instagram](https://www.instagram.com/thestackoverflow)



Site design / logo © 2025 Stack Exchange Inc;  user contributions licensed under  [CC BY-SA](https://stackoverflow.com/help/licensing) .  rev 2025.3.14.23880


url: https://stackoverflow.com/questions/79509197/building-a-yocto-recipe-with-autoconf-and-configure
title: makefile - Building a yocto recipe with autoconf and configure - Stack Overflow
scrape_date: 2025-03-14T15:47:27.131412
content_type: markdown
hash: 27082f2dd01462d6e163db3ebfc745331c00ec9b2e7f5f4824e7c0dbfe6980a3
content:
Skip to main content

[ Stack Overflow ](https://stackoverflow.com)

  1. [About](https://stackoverflow.co/)
  2. Products 
  3. [OverflowAI](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav-bar&utm_content=overflowai)



  1. [ Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers ](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-for-teams)
  2. [ Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand ](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-advertising)
  3. [ OverflowAI GenAI features for Teams ](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-ai)
  4. [ OverflowAPI Train & fine-tune LLMs ](https://stackoverflow.co/api-solutions/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-api)
  5. [ Labs The future of collective knowledge sharing ](https://stackoverflow.co/labs/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=labs)
  6. [About the company](https://stackoverflow.co/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=about-the-company) [Visit the blog](https://stackoverflow.blog/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=blog)



Loading…

  1. ###  [current community](https://stackoverflow.com)

     * [ Stack Overflow  ](https://stackoverflow.com)

[help](https://stackoverflow.com/help) [chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)

     * [ Meta Stack Overflow  ](https://meta.stackoverflow.com)

###  your communities 

[Sign up](https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509197%2fbuilding-a-yocto-recipe-with-autoconf-and-configure) or [log in](https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509197%2fbuilding-a-yocto-recipe-with-autoconf-and-configure) to customize your list. 

### [more stack exchange communities](https://stackexchange.com/sites)

[company blog](https://stackoverflow.blog)

  2.   3. [Log in](https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509197%2fbuilding-a-yocto-recipe-with-autoconf-and-configure)
  4. [Sign up](https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509197%2fbuilding-a-yocto-recipe-with-autoconf-and-configure)



  1.     1. [ Home ](/)
    2. [ Questions ](/questions)
    3. [ Tags ](/tags)
    4.     5. [ Users ](/users)
    6. [ Companies ](https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&so_source=SiteNav)
    7. [ Labs ](javascript:void\(0\))
    8. [ Jobs ](/jobs?source=so-left-nav)
    9. [ Discussions ](/beta/discussions)
    10. [ Collectives ](javascript:void\(0\))

    11. Communities for your favorite technologies. [Explore all Collectives](/collectives-all)

  2. Teams

![](https://cdn.sstatic.net/Img/teams/teams-promo.svg?v=e507948b81bf)

Ask questions, find answers and collaborate at work with Stack Overflow for Teams. 

[Try Teams for free](https://stackoverflowteams.com/teams/create/free/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams) [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams)

  3. [ Teams ](javascript:void\(0\))
  4. Ask questions, find answers and collaborate at work with Stack Overflow for Teams. [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams-compact)




##### Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

[ Learn more about Collectives ](/collectives)

**Teams**

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

[ Learn more about Teams ](https://stackoverflow.co/teams/)

Get early access and see previews of new features.

[ Learn more about Labs](https://stackoverflow.co/labs/)

# [Building a yocto recipe with autoconf and configure](/questions/79509197/building-a-yocto-recipe-with-autoconf-and-configure)

[ Ask Question ](/questions/ask)

Asked today

Modified [today](?lastactivity "2025-03-14 20:42:41Z")

Viewed 17 times 

0 

[](/posts/79509197/timeline "Show activity on this post.")

I am learning about yocto build system and just almost a week into it. I randomly chose [calcurse Github repository](https://github.com/lfos/calcurse) and decided to build it via Yocto recipe so that I can have some practice and I am having tough time.

Manually I am able to clone and build calcurse with the following steps on my x86_64 host machine :
    
    
    $ ./autogen
    $ ./configure
    $ make
    $ make install
    

Now I want to build the same with a Yocto recipe. Below is my build configuration for reference :
    
    
    Build Configuration:
    BB_VERSION           = "2.8.0"
    BUILD_SYS            = "x86_64-linux"
    NATIVELSBSTRING      = "universal"
    TARGET_SYS           = "aarch64-poky-linux"
    MACHINE              = "qemuarm64"
    DISTRO               = "poky"
    DISTRO_VERSION       = "5.0.6"
    TUNE_FEATURES        = "aarch64 crc cortexa57"
    TARGET_FPU           = ""
    meta
    meta-poky
    meta-yocto-bsp       = "scarthgap:60b5842348f50ad44b6a64fc6201952bbbc46849"
    meta-clang           = "scarthgap:9fbfa9db33131abdf3870a94f00199eb53e276e5"
    meta-oe
    meta-python          = "scarthgap:3c293e14492f01e22a64004e2330fb620c27578a"
    meta-mylayer
    workspace            = "scarthgap:60b5842348f50ad44b6a64fc6201952bbbc46849"
    

I prepared the below recipe (which is added to meta-mylayer) and it fails at configure step.
    
    
    LICENSE = "Unknown"
    LIC_FILES_CHKSUM = "file://COPYING;md5=547ff6a749ae78798e7a1ab1c9177b9d"
    
    SRC_URI = "git://github.com/lfos/calcurse.git;protocol=https;branch=master"
    
    PV = "1.0+git"
    SRCREV = "95bb55f68b446e4461f27ef3a74a7d2eda950289"
    
    S = "${WORKDIR}/git"
    
    DEPENDS = "ncurses"
    DEPENDS += "autoconf-archive-native"
    
    
    inherit gettext autotools
    
    # Specify any options you want to pass to the configure script using EXTRA_OECONF:
    EXTRA_OECONF = "--with-ncursesw"
    
    do_configure() {
        bbplain "WORKDIR=${WORKDIR}"
        bbplain "S=${S}"
        cd ${S}
        ${S}/autogen.sh
        ${S}/configure --host=${TARGET_SYS} --prefix=/usr
    }
    
    do_compile() {
        cd ${S}
        oe_runmake
    }
    
    do_install() {
        cd ${S}
        oe_runmake install DESTDIR=${D}
    }
    

And this is the error I get when I run `bitbake calcurse-dev` :
    
    
    | configure.ac:30: error: macro PKG_CHECK_EXISTS is not defined; is a m4 file missing?
    | /mnt/secondary/poky/build/tmp/work/cortexa57-poky-linux/calcurse-dev/1.0+git/recipe-sysroot-native/usr/share/aclocal/ax_require_defined.m4:35: AX_REQUIRE_DEFINED is expanded from...
    | /mnt/secondary/poky/build/tmp/work/cortexa57-poky-linux/calcurse-dev/1.0+git/recipe-sysroot-native/usr/share/aclocal/ax_with_curses.m4:197: _FIND_CURSES_FLAGS is expanded from...
    | ../autoconf-2.72e/lib/m4sugar/m4sh.m4:697: AS_IF is expanded from...
    | /mnt/secondary/poky/build/tmp/work/cortexa57-poky-linux/calcurse-dev/1.0+git/recipe-sysroot-native/usr/share/aclocal/ax_with_curses.m4:250: AX_WITH_CURSES is expanded from...
    | configure.ac:30: the top level
    | autom4te: error: m4 failed with exit status: 1
    | aclocal: error: autom4te failed with exit status: 1
    | configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found.
    | configure.ac: You should verify that configure.ac invokes AM_INIT_AUTOMAKE,
    | configure.ac: that aclocal.m4 is present in the top-level directory,
    | configure.ac: and that aclocal.m4 was recently regenerated (using aclocal)
    | configure.ac:15: installing './config.guess'
    | configure.ac:15: installing './config.sub'
    | Makefile.am:7: error: ENABLE_DOCS does not appear in AM_CONDITIONAL
    | doc/Makefile.am:3: error: HAVE_ASCIIDOC does not appear in AM_CONDITIONAL
    | doc/Makefile.am:10: error: HAVE_A2X does not appear in AM_CONDITIONAL
    | doc/Makefile.am:61: error: HAVE_ASCIIDOC does not appear in AM_CONDITIONAL
    | doc/Makefile.am:66: error: HAVE_A2X does not appear in AM_CONDITIONAL
    | src/Makefile.am: installing './depcomp'
    

  * [makefile](/questions/tagged/makefile "show questions tagged 'makefile'")
  * [yocto](/questions/tagged/yocto "show questions tagged 'yocto'")
  * [autoconf](/questions/tagged/autoconf "show questions tagged 'autoconf'")



[Share](/q/79509197 "Short permalink to this question")

[Improve this question](/posts/79509197/edit)

Follow 

asked 7 hours ago

[![InsaneCoder's user avatar](https://i.sstatic.net/o8b6s.jpg?s=64)](/users/1460665/insanecoder)

[InsaneCoder](/users/1460665/insanecoder)InsaneCoder

8,2881717 gold badges8484 silver badges186186 bronze badges

3

  * When you have the option, it is better to start with an Autotools (source) distribution tarball, which will contain an already-built `configure` script and other, related artifacts. You then avoid `autogen.sh` or similar tools whose purpose is to build those artifacts. This is the intended usage mode of Autotools build systems for people who just want to build the software, not develop it, and it prevents exposure to issues related to differences between versions of the Autotools.

- [John Bollinger](/users/2402272/john-bollinger "181,932 reputation")

Commented 6 hours ago

  * I'm uncertain how well it fits with bitbake / yocto, but since you can build the project manually, you can _create_ a suitable distribution tarball. To do so, use `make dist` after configuring the project.

- [John Bollinger](/users/2402272/john-bollinger "181,932 reputation")

Commented 6 hours ago

  * Closely related: [stackoverflow.com/q/8578181/2402272](https://stackoverflow.com/q/8578181/2402272)

- [John Bollinger](/users/2402272/john-bollinger "181,932 reputation")

Commented 6 hours ago




Add a comment  | 

##  2 Answers 2

Sorted by:  [ Reset to default ](/questions/79509197/building-a-yocto-recipe-with-autoconf-and-configure?answertab=scoredesc#tab-top)

Highest score (default)  Trending (recent votes count more)  Date modified (newest first)  Date created (oldest first) 

0 

[](/posts/79509470/timeline "Show activity on this post.")

The errors you present come from the execution of `autogen.sh`, and they appear primarily to reflect that required components are missing from the package's bitbake compilation environment.

The documentation for calcurse gives the following [build dependencies](https://github.com/lfos/calcurse/tree/pu?tab=readme-ov-file#building-from-source):

  * gcc
  * autoconf-archive
  * automake
  * autopoint
  * asciidoc
  * gettext with development files
  * ncurses with development files



It doesn't look like your recipe is ensuring that full list of dependencies (whether explicitly or by relying on defaults).

What's more, the package docs appear to overlook a build dependency on one or more pkgconf components, which your recipe also is not ensuring.

* * *

As a separate but related matter, packages with Autotools build systems are best built from Autotools distribution tarballs, such as can be built via the project's `make dist`. These will include pre-built `configure` scripts and other built Autools artefacts, which are intended to be used as-is, not rebuilt (via `autogen.sh`, `autoreconf`, or similar). In your particular case, using such a starting point and omitting execution of `autogen.sh` would slightly reduce the build dependency list (perhaps more so if some of those deps are optional, and you're ok with not including them), but it looks like that would still leave you with some unaccounted-for deps.

[Share](/a/79509470 "Short permalink to this answer")

[Improve this answer](/posts/79509470/edit)

Follow 

answered 5 hours ago

[![John Bollinger's user avatar](https://www.gravatar.com/avatar/1182b1d5518a596d4e8cfe0567a65c4d?s=64&d=identicon&r=PG)](/users/2402272/john-bollinger)

[John Bollinger](/users/2402272/john-bollinger)John Bollinger

182k1111 gold badges9595 silver badges189189 bronze badges




Add a comment  | 

0 

[](/posts/79510047/timeline "Show activity on this post.")

#### In General

You can remove a lot from your recipe. Yocto takes care of most build steps automatically, if:

  * you `inherit` the right classes
  * the build files properly respect `$CC` variables etc.



#### Calcurse Issue

I'm able to compile `calcurse` by adding `inherit pkgconfig` to your recipe and removing the manual tasks. Hint was the line:

> configure.ac:30: error: macro PKG_CHECK_EXISTS is not defined

`PKG_CHECK_EXISTS` is a [macro by pkg-config for autotools](https://stackoverflow.com/questions/2164089/using-pkg-config-with-autotools). Something depends on `pkg-config` during compilation, as John Bollinger pointed out in detail in their answer. [`man pkg-config`](https://linux.die.net/man/1/pkg-config) says:

> The macro PKG_CHECK_MODULES can be used in configure.ac to check whether modules exist.

#### Fixed Recipe

Content of `calcurse.bb`. Set the license correctly. Disable docs, due to asciidoc issues.
    
    
    LICENSE = "BSD-2-Clause"
    LIC_FILES_CHKSUM = "file://COPYING;md5=547ff6a749ae78798e7a1ab1c9177b9d"
    
    SRC_URI = "git://github.com/lfos/calcurse.git;protocol=https;branch=master"
    
    PV = "1.0+git"
    SRCREV = "95bb55f68b446e4461f27ef3a74a7d2eda950289"
    
    S = "${WORKDIR}/git"
    
    DEPENDS += "ncurses autoconf-archive-native"
    
    inherit gettext autotools pkgconfig
    
    # Specify any options you want to pass to the configure script using EXTRA_OECONF:
    EXTRA_OECONF = "--disable-docs recipe-acl-native"
    
    

Running this should succeed:
    
    
    $ bitbake calcurse
    Loading cache: 100% |############### ...
    
    Sstate summary: Wanted 56 Local 8 Mirrors 0 Missed 48 Current 36 (14% match, 47% complete)
    NOTE: Executing Tasks
    NOTE: Tasks Summary: Attempted 406 tasks of which 399 didn't need to be rerun and all succeeded.
    
    

[Share](/a/79510047 "Short permalink to this answer")

[Improve this answer](/posts/79510047/edit)

Follow 

[edited 4 mins ago](/posts/79510047/revisions "show all edits to this post")

answered 1 hour ago

[![Mo_'s user avatar](https://www.gravatar.com/avatar/6b20f0592473ef439f30cc521d45383d?s=64&d=identicon&r=PG&f=y&so-version=2)](/users/21826195/mo)

[Mo_](/users/21826195/mo)Mo_

88111 gold badge66 silver badges2222 bronze badges




Add a comment  | 

##  Your Answer 

Thanks for contributing an answer to Stack Overflow!

  * Please be sure to _answer the question_. Provide details and share your research!



But _avoid_ …

  * Asking for help, clarification, or responding to other answers.
  * Making statements based on opinion; back them up with references or personal experience.



To learn more, see our [tips on writing great answers](/help/how-to-answer).

Draft saved

Draft discarded

### Sign up or [log in](/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509197%2fbuilding-a-yocto-recipe-with-autoconf-and-configure%23new-answer)

Sign up using Google 

Sign up using Email and Password 

Submit

### Post as a guest

Name

Email

Required, but never shown

### Post as a guest

Name

Email

Required, but never shown

Post Your Answer  Discard 

By clicking “Post Your Answer”, you agree to our [terms of service](https://stackoverflow.com/legal/terms-of-service/public) and acknowledge you have read our [privacy policy](https://stackoverflow.com/legal/privacy-policy).

Start asking to get answers

Find the answer to your question by asking.

[Ask question](/questions/ask)

Explore related questions

  * [makefile](/questions/tagged/makefile "show questions tagged 'makefile'")
  * [yocto](/questions/tagged/yocto "show questions tagged 'yocto'")
  * [autoconf](/questions/tagged/autoconf "show questions tagged 'autoconf'")



See similar questions with these tags.

  * The Overflow Blog 
  * [Can climate tech startups address the current crisis?](https://stackoverflow.blog/2025/03/14/can-climate-tech-startups-address-the-current-crisis/)

  * [What we learned at TDX 2025](https://stackoverflow.blog/2025/03/14/what-we-learned-at-tdx-2025/)

  * Featured on Meta 
  * [Community Asks Sprint Announcement - March 2025](https://meta.stackexchange.com/questions/407321/community-asks-sprint-announcement-march-2025)

  * [Meta Stack Exchange site maintenance scheduled starting Monday, March 17,...](https://meta.stackexchange.com/questions/407425/meta-stack-exchange-site-maintenance-scheduled-starting-monday-march-17-2025-f "Meta Stack Exchange site maintenance scheduled starting Monday, March 17, 2025 from 13:30 UTC to 14:30 UTC \(9:30am to 10:30am ET\)")

  * [Policy: Generative AI (e.g., ChatGPT) is banned](https://meta.stackoverflow.com/questions/421831/policy-generative-ai-e-g-chatgpt-is-banned)

  * [Stacks Editor development and testing](https://meta.stackoverflow.com/questions/433034/stacks-editor-development-and-testing)

  * [Is it better to redirect users who attempt to perform actions they can't yet...](https://meta.stackoverflow.com/questions/432989/is-it-better-to-redirect-users-who-attempt-to-perform-actions-they-cant-yet-tak "Is it better to redirect users who attempt to perform actions they can't yet take?")




#### Linked

[ 12 ](/q/8578181 "Question score \(upvotes - downvotes\)") [Using the pkg-config macro PKG_CHECK_MODULES failing](/questions/8578181/using-the-pkg-config-macro-pkg-check-modules-failing?noredirect=1)

[ 8 ](/q/2164089 "Question score \(upvotes - downvotes\)") [Using pkg-config with autotools](/questions/2164089/using-pkg-config-with-autotools?noredirect=1)

#### Related

[ 0 ](/q/73135719 "Question score \(upvotes - downvotes\)") [Building a Yocto image IMX8](/questions/73135719/building-a-yocto-image-imx8)

[ 0 ](/q/77653445 "Question score \(upvotes - downvotes\)") [Facing errors while trying to build YOCTO for orange pi-5 board](/questions/77653445/facing-errors-while-trying-to-build-yocto-for-orange-pi-5-board)

[ 0 ](/q/67861043 "Question score \(upvotes - downvotes\)") [Yocto Add own Header and Lib file's to sdk](/questions/67861043/yocto-add-own-header-and-lib-files-to-sdk)

[ 0 ](/q/53282232 "Question score \(upvotes - downvotes\)") [Trying to create sample linux mage with yocto prject but cause building error](/questions/53282232/trying-to-create-sample-linux-mage-with-yocto-prject-but-cause-building-error)

[ 1 ](/q/48622241 "Question score \(upvotes - downvotes\)") [build system derived toolchain in Yocto](/questions/48622241/build-system-derived-toolchain-in-yocto)

[ 1 ](/q/77698060 "Question score \(upvotes - downvotes\)") [bitbake fetcher failure when building Digi Embedded Yocto](/questions/77698060/bitbake-fetcher-failure-when-building-digi-embedded-yocto)

[ 0 ](/q/55813455 "Question score \(upvotes - downvotes\)") [Yocto - Bitbake RDEPENDS from External Shared library](/questions/55813455/yocto-bitbake-rdepends-from-external-shared-library)

####  [ Hot Network Questions ](https://stackexchange.com/questions?tab=hot)

  * [ How to assign configuration to a pseudo chiral carbon? ](https://chemistry.stackexchange.com/questions/187893/how-to-assign-configuration-to-a-pseudo-chiral-carbon)
  * [ Building an 8080 based computer ](https://retrocomputing.stackexchange.com/questions/31407/building-an-8080-based-computer)
  * [ Chess.com suggests moves that will lose my queen. Am I missing something? ](https://chess.stackexchange.com/questions/46768/chess-com-suggests-moves-that-will-lose-my-queen-am-i-missing-something)
  * [ A121016: Numbers whose binary expansion is properly periodic. or A328594: Numbers whose binary expansion is aperiodic ](https://codegolf.stackexchange.com/questions/278622/a121016-numbers-whose-binary-expansion-is-properly-periodic-or-a328594-number)
  * [ With what to replace uBlock Origin now after Google Chrome nerfed it? ](https://softwarerecs.stackexchange.com/questions/92047/with-what-to-replace-ublock-origin-now-after-google-chrome-nerfed-it)
  * [ How would a society with no wood reliably heat itself? ](https://worldbuilding.stackexchange.com/questions/265292/how-would-a-society-with-no-wood-reliably-heat-itself)
  * [ Why we ignore inverse gain source in transistor model? ](https://electronics.stackexchange.com/questions/741419/why-we-ignore-inverse-gain-source-in-transistor-model)
  * [ What was the real motivation behind Walter White's decision to keep cooking meth even after securing enough money? ](https://movies.stackexchange.com/questions/124803/what-was-the-real-motivation-behind-walter-white-s-decision-to-keep-cooking-meth)
  * [ Classically radiating black holes vs Quantum mechanically radiating black holes ](https://physics.stackexchange.com/questions/845192/classically-radiating-black-holes-vs-quantum-mechanically-radiating-black-holes)
  * [ How to assign Magnet File links for qBitTorrent installed as AppImage? ](https://askubuntu.com/questions/1543626/how-to-assign-magnet-file-links-for-qbittorrent-installed-as-appimage)
  * [ Is Oz a real place? ](https://movies.stackexchange.com/questions/124822/is-oz-a-real-place)
  * [ "Naive category theory", or, pedagogy and how to Introduce natural transformations? ](https://mathoverflow.net/questions/489355/na%c3%afve-category-theory-or-pedagogy-and-how-to-introduce-natural-transformatio)
  * [ What does the average positive referee report look like in Mathematics? ](https://academia.stackexchange.com/questions/217322/what-does-the-average-positive-referee-report-look-like-in-mathematics)
  * [ How to properly protect .bash_history against truncation? ](https://unix.stackexchange.com/questions/792448/how-to-properly-protect-bash-history-against-truncation)
  * [ Why are some independent variables having huge std errors? ](https://stats.stackexchange.com/questions/662601/why-are-some-independent-variables-having-huge-std-errors)
  * [ These entities are not supported: [GenAiPromptTemplate] ](https://salesforce.stackexchange.com/questions/430810/these-entities-are-not-supported-genaiprompttemplate)
  * [ "...embedded one inch lateral to the wound edge" or "...embedded one inch laterally to the wound edge" ](https://english.stackexchange.com/questions/629897/embedded-one-inch-lateral-to-the-wound-edge-or-embedded-one-inch-latera)
  * [ Do vocalists "tune upward" as do instrumentalists, rather than downward ](https://music.stackexchange.com/questions/139145/do-vocalists-tune-upward-as-do-instrumentalists-rather-than-downward)
  * [ Can someone command a lycanthrope to use its shapechanger action? ](https://rpg.stackexchange.com/questions/214984/can-someone-command-a-lycanthrope-to-use-its-shapechanger-action)
  * [ Seabird cryptic crossword ](https://puzzling.stackexchange.com/questions/130959/seabird-cryptic-crossword)
  * [ Did Trump campaign against gay people? ](https://politics.stackexchange.com/questions/90991/did-trump-campaign-against-gay-people)
  * [ Photon energy anomaly after converting to mass ](https://physics.stackexchange.com/questions/845208/photon-energy-anomaly-after-converting-to-mass)
  * [ Do two polynomials whose coefficients are the same up to permutation satisfy this relation? ](https://mathoverflow.net/questions/489416/do-two-polynomials-whose-coefficients-are-the-same-up-to-permutation-satisfy-thi)
  * [ Trying to model a swish of paste ](https://blender.stackexchange.com/questions/332291/trying-to-model-a-swish-of-paste)

more hot questions 

[ Question feed ](/feeds/question/79509197 "Feed of this question and its answers")

#  Subscribe to RSS 

Question feed 

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

![](/posts/79509197/ivc/27b4?prg=b28d142e-3f7a-468f-a417-2255f8f76a63)

[](https://stackoverflow.com)

##### [Stack Overflow](https://stackoverflow.com)

  * [Questions](/questions)
  * [Help](/help)
  * [Chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)



##### [Products](https://stackoverflow.co/)

  * [Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=teams)
  * [Advertising](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=advertising)
  * [Talent](https://stackoverflow.co/advertising/employer-branding/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=talent)



##### [Company](https://stackoverflow.co/)

  * [About](https://stackoverflow.co/)
  * [Press](https://stackoverflow.co/company/press/)
  * [Work Here](https://stackoverflow.co/company/work-here/)
  * [Legal](https://stackoverflow.com/legal)
  * [Privacy Policy](https://stackoverflow.com/legal/privacy-policy)
  * [Terms of Service](https://stackoverflow.com/legal/terms-of-service/public)
  * [Contact Us](/contact)
  * Your Privacy Choices 
  * [Cookie Policy](https://stackoverflow.com/legal/cookie-policy)



##### [Stack Exchange Network](https://stackexchange.com)

  * [ Technology ](https://stackexchange.com/sites#technology)
  * [ Culture & recreation ](https://stackexchange.com/sites#culturerecreation)
  * [ Life & arts ](https://stackexchange.com/sites#lifearts)
  * [ Science ](https://stackexchange.com/sites#science)
  * [ Professional ](https://stackexchange.com/sites#professional)
  * [ Business ](https://stackexchange.com/sites#business)
  * [ API ](https://api.stackexchange.com/)
  * [ Data ](https://data.stackexchange.com/)



  * [Blog](https://stackoverflow.blog?blb=1)
  * [Facebook](https://www.facebook.com/officialstackoverflow/)
  * [Twitter](https://twitter.com/stackoverflow)
  * [LinkedIn](https://linkedin.com/company/stack-overflow)
  * [Instagram](https://www.instagram.com/thestackoverflow)



Site design / logo © 2025 Stack Exchange Inc;  user contributions licensed under  [CC BY-SA](https://stackoverflow.com/help/licensing) .  rev 2025.3.14.23880


title: managing mutiple certbot certificates? changing cert storage without breaking? - Stack Overflow
scrape_date: 2025-03-14T15:47:27.131407
content_type: markdown
hash: 6e247faad74f3a6def3d974190181a7bbbf39a12f5590a453aa3d20166ea7fd4
url:
https://stackoverflow.com/questions/79493116/managing-mutiple-certbot-certificates-changing-cert-storage-without-breaking

content:
Skip to main content

[ Stack Overflow ](https://stackoverflow.com)

  1. [About](https://stackoverflow.co/)
  2. Products 
  3. [OverflowAI](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav-bar&utm_content=overflowai)



  1. [ Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers ](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-for-teams)
  2. [ Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand ](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-advertising)
  3. [ OverflowAI GenAI features for Teams ](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-ai)
  4. [ OverflowAPI Train & fine-tune LLMs ](https://stackoverflow.co/api-solutions/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-api)
  5. [ Labs The future of collective knowledge sharing ](https://stackoverflow.co/labs/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=labs)
  6. [About the company](https://stackoverflow.co/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=about-the-company) [Visit the blog](https://stackoverflow.blog/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=blog)



Loading…

  1. ###  [current community](https://stackoverflow.com)

     * [ Stack Overflow  ](https://stackoverflow.com)

[help](https://stackoverflow.com/help) [chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)

     * [ Meta Stack Overflow  ](https://meta.stackoverflow.com)

###  your communities 

[Sign up](https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79493116%2fmanaging-mutiple-certbot-certificates-changing-cert-storage-without-breaking) or [log in](https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79493116%2fmanaging-mutiple-certbot-certificates-changing-cert-storage-without-breaking) to customize your list. 

### [more stack exchange communities](https://stackexchange.com/sites)

[company blog](https://stackoverflow.blog)

  2.   3. [Log in](https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79493116%2fmanaging-mutiple-certbot-certificates-changing-cert-storage-without-breaking)
  4. [Sign up](https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79493116%2fmanaging-mutiple-certbot-certificates-changing-cert-storage-without-breaking)



  1.     1. [ Home ](/)
    2. [ Questions ](/questions)
    3. [ Tags ](/tags)
    4.     5. [ Users ](/users)
    6. [ Companies ](https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&so_source=SiteNav)
    7. [ Labs ](javascript:void\(0\))
    8. [ Jobs ](/jobs?source=so-left-nav)
    9. [ Discussions ](/beta/discussions)
    10. [ Collectives ](javascript:void\(0\))

    11. Communities for your favorite technologies. [Explore all Collectives](/collectives-all)

  2. Teams

![](https://cdn.sstatic.net/Img/teams/teams-promo.svg?v=e507948b81bf)

Ask questions, find answers and collaborate at work with Stack Overflow for Teams. 

[Try Teams for free](https://stackoverflowteams.com/teams/create/free/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams) [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams)

  3. [ Teams ](javascript:void\(0\))
  4. Ask questions, find answers and collaborate at work with Stack Overflow for Teams. [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams-compact)




##### Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

[ Learn more about Collectives ](/collectives)

**Teams**

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

[ Learn more about Teams ](https://stackoverflow.co/teams/)

Get early access and see previews of new features.

[ Learn more about Labs](https://stackoverflow.co/labs/)

# [managing mutiple certbot certificates? changing cert storage without breaking?](/questions/79493116/managing-mutiple-certbot-certificates-changing-cert-storage-without-breaking)

[ Ask Question ](/questions/ask)

Asked 7 days ago

Modified [today](?lastactivity "2025-03-14 20:43:39Z")

Viewed 28 times 

0 

[](/posts/79493116/timeline "Show activity on this post.")

**The[bounty](https://stackoverflow.com/help/bounty) expires in 7 days**. Answers to this question are eligible for a +50 reputation bounty. [Ray Kiddy](/users/869809/ray-kiddy) wants to **draw more attention** to this question: 

> Does everyone else know exactly how best to manage these things? It is too obvious to answer?

I have several domains, but not a very large number. I have an apache instance running on Ubuntu 20.04.6 LTS. I would like to clean up my certificates management, but I do not want to break all of my websites as I do this. The cert information is below. Which of these can be safely deleted?

Is the usual practice to have one certificate per domain? One can, of course, have a certificate for several domains on one server, but then one cannot move the site to another server. Or can one? By copying the certificate files to the new server? And multiple certificates means multiple things to manage. Hmmm.
    
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Found the following certs:
      Certificate Name: AAAAA.com-0001
        Serial Number: 4ff20...9b07e
        Key Type: ECDSA
        Domains: AAAAA.com BBBBB.com BBBBB.org opengovaccess.org CCCCC.com DDDDD.org
        Expiry Date: 2025-04-07 00:52:13+00:00 (VALID: 30 days)
        Certificate Path: /etc/letsencrypt/live/AAAAA.com-0001/fullchain.pem
        Private Key Path: /etc/letsencrypt/live/AAAAA.com-0001/privkey.pem
      Certificate Name: AAAAA.com
        Serial Number: 4842d...a19f0
        Key Type: ECDSA
        Domains: AAAAA.com
        Expiry Date: 2025-05-30 05:26:03+00:00 (VALID: 83 days)
        Certificate Path: /etc/letsencrypt/live/AAAAA.com/fullchain.pem
        Private Key Path: /etc/letsencrypt/live/AAAAA.com/privkey.pem
      Certificate Name: BBBBB.com-0001
        Serial Number: 41ee1...f1124
        Key Type: ECDSA
        Domains: BBBBB.com
        Expiry Date: 2025-05-30 05:26:11+00:00 (VALID: 83 days)
        Certificate Path: /etc/letsencrypt/live/BBBBB.com-0001/fullchain.pem
        Private Key Path: /etc/letsencrypt/live/BBBBB.com-0001/privkey.pem
      Certificate Name: BBBBB.org-0001
        Serial Number: 3731f...92edd
        Key Type: RSA
        Domains: BBBBB.org
        Expiry Date: 2025-05-30 05:26:18+00:00 (VALID: 83 days)
        Certificate Path: /etc/letsencrypt/live/BBBBB.org-0001/fullchain.pem
        Private Key Path: /etc/letsencrypt/live/BBBBB.org-0001/privkey.pem
      Certificate Name: BBBBB.org
        Serial Number: 3731f...92edd
        Key Type: RSA
        Domains: BBBBB.org
        Expiry Date: 2025-05-30 05:26:18+00:00 (VALID: 83 days)
        Certificate Path: /etc/letsencrypt/live/BBBBB.org-0001/fullchain.pem
        Private Key Path: /etc/letsencrypt/live/BBBBB.org-0001/privkey.pem
      Certificate Name: opengovaccess.org
        Serial Number: 4d17f...41c7b
        Key Type: ECDSA
        Domains: opengovaccess.org
        Expiry Date: 2025-05-30 05:26:24+00:00 (VALID: 83 days)
        Certificate Path: /etc/letsencrypt/live/opengovaccess.org/fullchain.pem
        Private Key Path: /etc/letsencrypt/live/opengovaccess.org/privkey.pem
      Certificate Name: CCCCC.com
        Serial Number: 38dae...56001
        Key Type: RSA
        Domains: CCCCC.com www.CCCCC.com
        Expiry Date: 2025-05-30 05:26:36+00:00 (VALID: 83 days)
        Certificate Path: /etc/letsencrypt/live/CCCCC.com/fullchain.pem
        Private Key Path: /etc/letsencrypt/live/CCCCC.com/privkey.pem
      Certificate Name: DDDDD.org
        Serial Number: 39ffa...a7851
        Key Type: ECDSA
        Domains: DDDDD.org
        Expiry Date: 2025-05-30 05:26:46+00:00 (VALID: 83 days)
        Certificate Path: /etc/letsencrypt/live/DDDDD.org/fullchain.pem
        Private Key Path: /etc/letsencrypt/live/DDDDD.org/privkey.pem
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    

  * [certbot](/questions/tagged/certbot "show questions tagged 'certbot'")



[Share](/q/79493116 "Short permalink to this question")

[Improve this question](/posts/79493116/edit)

Follow 

asked Mar 7 at 17:56

[![Ray Kiddy's user avatar](https://i.sstatic.net/f2wPs.jpg?s=64)](/users/869809/ray-kiddy)

[Ray Kiddy](/users/869809/ray-kiddy)Ray Kiddy

3,60633 gold badges2626 silver badges3333 bronze badges




Add a comment  | 

##  1 Answer 1

Sorted by:  [ Reset to default ](/questions/79493116/managing-mutiple-certbot-certificates-changing-cert-storage-without-breaking?answertab=scoredesc#tab-top)

Highest score (default)  Trending (recent votes count more)  Date modified (newest first)  Date created (oldest first) 

0 

[](/posts/79510193/timeline "Show activity on this post.")

**Certificate cleaning recommendation** :

  1. Identify `redundant certificates`


  * `AAAAA.com-0001` (Multi-domain certificate) which covers: `AAAAA.com`, `BBBBB.com`, `BBBBB.org`, `opengovaccess.org`, `CCCCC.com`, `DDDDD.org`. Potentially unnecessary because you have separate certificates for most of these domains.

  * `AAAAA.com` (Single-domain certificate) - Covers only `AAAAA.com`. Keep if you prefer separate certificates instead of the multi-domain one.

  * `BBBBB.com-0001` \- covers only `BBBBB.com`, keep it, unless `AAAAA.com-0001` is used and covers this domain.

  * `BBBBB.org-0001` & `BBBBB.org` \- these seem identical (same serial number). Delete the duplicate one

  * `opengovaccess.org` \- covers only `opengovaccess.org`, keep it unless `AAAAA.com-0001` is preferred.

  * `CCCCC.com`\- covers `CCCCC.com` and `www.CCCCC.com`, keep these since `AAAAA.com-0001` does not mention `www.CCCCC.com`.

  * `DDDDD.org` \- covers only `DDDDD.org, keep, unless `AAAAA.com-0001` is actively used.



  2. What Can You Safely Delete?



Based on your certificates:

  * If all your Virtual Hosts are using separate certificates, then `AAAAA.com-0001` (multi-domain certificate) is not needed.

  * Verify which `VirtualHost` entries use it:



    
    
    # check Apache configs: 
    ls -al /etc/apache2/sites-available/)
    

  * If none rely on `AAAAA.com-0001`, delete it:


    
    
    sudo certbot delete --cert-name AAAAA.com-0001
    

  * One of the `BBBBB.org` certificates is a duplicate. If `BBBBB.org-0001` and `BBBBB.org` are identical, delete the duplicate :


    
    
    sudo certbot delete --cert-name BBBBB.org
    # (or BBBBB.org-0001, depending on which is unused)
    

  3. Best Practices for Certificate Management


  * One certificate per domain?

    * Good for flexibility: You can move individual domains easily between servers.
    * More files to manage.
  * Wildcard or Multi-domain certificate?

    * Good for fewer certs: Less renewal overhead.
    * Less flexible: If moving `BBBBB.com` to another server, you'd need to copy the full cert bundle.
  * Transferring Certs to Another Server (personally I use this method in our production env, very handful you can simply run the script in cronjob)

    * You can copy `fullchain.pem` and `privkey.pem` to another server.
    * But Let’s Encrypt prefers reissuing instead of manual copying.



[Share](/a/79510193 "Short permalink to this answer")

Follow 

answered 3 mins ago

[![Farkhod Abdukodirov's user avatar](https://i.sstatic.net/iPBHQ.jpg?s=64)](/users/8278630/farkhod-abdukodirov)

[Farkhod Abdukodirov](/users/8278630/farkhod-abdukodirov)Farkhod Abdukodirov

96977 silver badges2727 bronze badges




Add a comment  | 

##  Your Answer 

Thanks for contributing an answer to Stack Overflow!

  * Please be sure to _answer the question_. Provide details and share your research!



But _avoid_ …

  * Asking for help, clarification, or responding to other answers.
  * Making statements based on opinion; back them up with references or personal experience.



To learn more, see our [tips on writing great answers](/help/how-to-answer).

Draft saved

Draft discarded

### Sign up or [log in](/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79493116%2fmanaging-mutiple-certbot-certificates-changing-cert-storage-without-breaking%23new-answer)

Sign up using Google 

Sign up using Email and Password 

Submit

### Post as a guest

Name

Email

Required, but never shown

### Post as a guest

Name

Email

Required, but never shown

Post Your Answer  Discard 

By clicking “Post Your Answer”, you agree to our [terms of service](https://stackoverflow.com/legal/terms-of-service/public) and acknowledge you have read our [privacy policy](https://stackoverflow.com/legal/privacy-policy).

Start asking to get answers

Find the answer to your question by asking.

[Ask question](/questions/ask)

Explore related questions

  * [certbot](/questions/tagged/certbot "show questions tagged 'certbot'")



See similar questions with these tags.

  * The Overflow Blog 
  * [Can climate tech startups address the current crisis?](https://stackoverflow.blog/2025/03/14/can-climate-tech-startups-address-the-current-crisis/)

  * [What we learned at TDX 2025](https://stackoverflow.blog/2025/03/14/what-we-learned-at-tdx-2025/)

  * Featured on Meta 
  * [Community Asks Sprint Announcement - March 2025](https://meta.stackexchange.com/questions/407321/community-asks-sprint-announcement-march-2025)

  * [Meta Stack Exchange site maintenance scheduled starting Monday, March 17,...](https://meta.stackexchange.com/questions/407425/meta-stack-exchange-site-maintenance-scheduled-starting-monday-march-17-2025-f "Meta Stack Exchange site maintenance scheduled starting Monday, March 17, 2025 from 13:30 UTC to 14:30 UTC \(9:30am to 10:30am ET\)")

  * [Policy: Generative AI (e.g., ChatGPT) is banned](https://meta.stackoverflow.com/questions/421831/policy-generative-ai-e-g-chatgpt-is-banned)

  * [Stacks Editor development and testing](https://meta.stackoverflow.com/questions/433034/stacks-editor-development-and-testing)

  * [Is it better to redirect users who attempt to perform actions they can't yet...](https://meta.stackoverflow.com/questions/432989/is-it-better-to-redirect-users-who-attempt-to-perform-actions-they-cant-yet-tak "Is it better to redirect users who attempt to perform actions they can't yet take?")




#### Related

[ 0 ](/q/60837446 "Question score \(upvotes - downvotes\)") [Using Certbot i have difficulties with seperate certificates for multiple domains](/questions/60837446/using-certbot-i-have-difficulties-with-seperate-certificates-for-multiple-domain)

[ 1 ](/q/54814912 "Question score \(upvotes - downvotes\)") [NET::ERR_CERT_DATE_INVALID after manual renewal with certbot](/questions/54814912/neterr-cert-date-invalid-after-manual-renewal-with-certbot)

[ 2 ](/q/55388724 "Question score \(upvotes - downvotes\)") [How can i dynamically create new LetsEncrypt/Certbot SSL certificates for domains pointing to my server?](/questions/55388724/how-can-i-dynamically-create-new-letsencrypt-certbot-ssl-certificates-for-domain)

[ 3 ](/q/56224101 "Question score \(upvotes - downvotes\)") [certbot not renewing certificates](/questions/56224101/certbot-not-renewing-certificates)

[ 92 ](/q/49172841 "Question score \(upvotes - downvotes\)") [How to install Certbot (Let's Encrypt) without interaction?](/questions/49172841/how-to-install-certbot-lets-encrypt-without-interaction)

[ 1 ](/q/55366720 "Question score \(upvotes - downvotes\)") [Renewing certbot certificates manually](/questions/55366720/renewing-certbot-certificates-manually)

####  [ Hot Network Questions ](https://stackexchange.com/questions?tab=hot)

  * [ Is the US debt "crisis" fake? ](https://economics.stackexchange.com/questions/60090/is-the-us-debt-crisis-fake)
  * [ Edit Mode Not showing Vertices ](https://blender.stackexchange.com/questions/332307/edit-mode-not-showing-vertices)
  * [ Why can the time between power on and the beginning of POST vary? ](https://superuser.com/questions/1885628/why-can-the-time-between-power-on-and-the-beginning-of-post-vary)
  * [ Is the titan summoned by the Scroll of Titan Summoning hostile to the summoner? ](https://rpg.stackexchange.com/questions/214972/is-the-titan-summoned-by-the-scroll-of-titan-summoning-hostile-to-the-summoner)
  * [ Can I use tandem breakers to make room in a full panel with full neutral bus bars? ](https://diy.stackexchange.com/questions/315818/can-i-use-tandem-breakers-to-make-room-in-a-full-panel-with-full-neutral-bus-bar)
  * [ Do two polynomials whose coefficients are the same up to permutation satisfy this relation? ](https://mathoverflow.net/questions/489416/do-two-polynomials-whose-coefficients-are-the-same-up-to-permutation-satisfy-thi)
  * [ Indefinite integral of real function using complex numbers ](https://math.stackexchange.com/questions/5045527/indefinite-integral-of-real-function-using-complex-numbers)
  * [ What cultural practice did Jesus have in mind when he said that "the gates of Hades will not prevail" in Matthew 16:18? ](https://hermeneutics.stackexchange.com/questions/102269/what-cultural-practice-did-jesus-have-in-mind-when-he-said-that-the-gates-of-ha)
  * [ How to properly protect .bash_history against truncation? ](https://unix.stackexchange.com/questions/792448/how-to-properly-protect-bash-history-against-truncation)
  * [ What does the average positive referee report look like in Mathematics? ](https://academia.stackexchange.com/questions/217322/what-does-the-average-positive-referee-report-look-like-in-mathematics)
  * [ Why is Erdős' conjecture on arithmetic progressions not discussed much, and is there an active pathway to its resolution? ](https://mathoverflow.net/questions/489375/why-is-erd%c5%91s-conjecture-on-arithmetic-progressions-not-discussed-much-and-is-t)
  * [ How to hold a signal high from one pulse e reset it before another pulse ](https://electronics.stackexchange.com/questions/741376/how-to-hold-a-signal-high-from-one-pulse-e-reset-it-before-another-pulse)
  * [ These entities are not supported: [GenAiPromptTemplate] ](https://salesforce.stackexchange.com/questions/430810/these-entities-are-not-supported-genaiprompttemplate)
  * [ Does AppleSoft BASIC really parse "LE THEN" as "LET HEN"? ](https://retrocomputing.stackexchange.com/questions/31413/does-applesoft-basic-really-parse-le-then-as-let-hen)
  * [ Can an Action Surging 7+ Eldritch Knight cast two cantrips with War Magic? ](https://rpg.stackexchange.com/questions/214979/can-an-action-surging-7-eldritch-knight-cast-two-cantrips-with-war-magic)
  * [ "...embedded one inch lateral to the wound edge" or "...embedded one inch laterally to the wound edge" ](https://english.stackexchange.com/questions/629897/embedded-one-inch-lateral-to-the-wound-edge-or-embedded-one-inch-latera)
  * [ Why are the undefined terms in geometry undefined? ](https://math.stackexchange.com/questions/5044921/why-are-the-undefined-terms-in-geometry-undefined)
  * [ Sellars treating persons as fictions ](https://philosophy.stackexchange.com/questions/123436/sellars-treating-persons-as-fictions)
  * [ Why are some independent variables having huge std errors? ](https://stats.stackexchange.com/questions/662601/why-are-some-independent-variables-having-huge-std-errors)
  * [ Do vocalists "tune upward" as do instrumentalists, rather than downward ](https://music.stackexchange.com/questions/139145/do-vocalists-tune-upward-as-do-instrumentalists-rather-than-downward)
  * [ MacVim does not paste when in command line mode (i.e. ":e <D-v>" would be useful); am I missing something? ](https://vi.stackexchange.com/questions/46603/macvim-does-not-paste-when-in-command-line-mode-i-e-e-d-v-would-be-useful)
  * [ Chess.com suggests moves that will lose my queen. Am I missing something? ](https://chess.stackexchange.com/questions/46768/chess-com-suggests-moves-that-will-lose-my-queen-am-i-missing-something)
  * [ PTIJ: Why did Mordechai insist on Esther ploughing (החרש תחרישי) at such a crucial moment? ](https://judaism.stackexchange.com/questions/148225/ptij-why-did-mordechai-insist-on-esther-ploughing-%d7%94%d7%97%d7%a8%d7%a9-%d7%aa%d7%97%d7%a8%d7%99%d7%a9%d7%99-at-such-a-cruci)
  * [ Positioning label for multi-part features QGIS ](https://gis.stackexchange.com/questions/491132/positioning-label-for-multi-part-features-qgis)

more hot questions 

[ Question feed ](/feeds/question/79493116 "Feed of this question and its answers")

#  Subscribe to RSS 

Question feed 

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

![](/posts/79493116/ivc/27b4?prg=126d7405-755d-4e41-ad91-351d644ee863)

[](https://stackoverflow.com)

##### [Stack Overflow](https://stackoverflow.com)

  * [Questions](/questions)
  * [Help](/help)
  * [Chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)



##### [Products](https://stackoverflow.co/)

  * [Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=teams)
  * [Advertising](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=advertising)
  * [Talent](https://stackoverflow.co/advertising/employer-branding/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=talent)



##### [Company](https://stackoverflow.co/)

  * [About](https://stackoverflow.co/)
  * [Press](https://stackoverflow.co/company/press/)
  * [Work Here](https://stackoverflow.co/company/work-here/)
  * [Legal](https://stackoverflow.com/legal)
  * [Privacy Policy](https://stackoverflow.com/legal/privacy-policy)
  * [Terms of Service](https://stackoverflow.com/legal/terms-of-service/public)
  * [Contact Us](/contact)
  * Your Privacy Choices 
  * [Cookie Policy](https://stackoverflow.com/legal/cookie-policy)



##### [Stack Exchange Network](https://stackexchange.com)

  * [ Technology ](https://stackexchange.com/sites#technology)
  * [ Culture & recreation ](https://stackexchange.com/sites#culturerecreation)
  * [ Life & arts ](https://stackexchange.com/sites#lifearts)
  * [ Science ](https://stackexchange.com/sites#science)
  * [ Professional ](https://stackexchange.com/sites#professional)
  * [ Business ](https://stackexchange.com/sites#business)
  * [ API ](https://api.stackexchange.com/)
  * [ Data ](https://data.stackexchange.com/)



  * [Blog](https://stackoverflow.blog?blb=1)
  * [Facebook](https://www.facebook.com/officialstackoverflow/)
  * [Twitter](https://twitter.com/stackoverflow)
  * [LinkedIn](https://linkedin.com/company/stack-overflow)
  * [Instagram](https://www.instagram.com/thestackoverflow)



Site design / logo © 2025 Stack Exchange Inc;  user contributions licensed under  [CC BY-SA](https://stackoverflow.com/help/licensing) .  rev 2025.3.14.23880


url: https://stackoverflow.com/questions/79510164/mockmvc-test-doesnt-work-when-internal-api-is-called
title: java - MockMvc Test doesnt work when internal API is called - Stack Overflow
scrape_date: 2025-03-14T15:47:27.280191
content_type: markdown
hash: 2d582921786c9bf7ec370bf670aeb92b2f233da5cdfa33aa8ef862a78629a3d6
content:
Skip to main content

[ Stack Overflow ](https://stackoverflow.com)

  1. [About](https://stackoverflow.co/)
  2. Products 
  3. [OverflowAI](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav-bar&utm_content=overflowai)



  1. [ Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers ](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-for-teams)
  2. [ Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand ](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-advertising)
  3. [ OverflowAI GenAI features for Teams ](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-ai)
  4. [ OverflowAPI Train & fine-tune LLMs ](https://stackoverflow.co/api-solutions/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-api)
  5. [ Labs The future of collective knowledge sharing ](https://stackoverflow.co/labs/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=labs)
  6. [About the company](https://stackoverflow.co/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=about-the-company) [Visit the blog](https://stackoverflow.blog/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=blog)



Loading…

  1. ###  [current community](https://stackoverflow.com)

     * [ Stack Overflow  ](https://stackoverflow.com)

[help](https://stackoverflow.com/help) [chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)

     * [ Meta Stack Overflow  ](https://meta.stackoverflow.com)

###  your communities 

[Sign up](https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79510164%2fmockmvc-test-doesnt-work-when-internal-api-is-called) or [log in](https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79510164%2fmockmvc-test-doesnt-work-when-internal-api-is-called) to customize your list. 

### [more stack exchange communities](https://stackexchange.com/sites)

[company blog](https://stackoverflow.blog)

  2.   3. [Log in](https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79510164%2fmockmvc-test-doesnt-work-when-internal-api-is-called)
  4. [Sign up](https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79510164%2fmockmvc-test-doesnt-work-when-internal-api-is-called)



  1.     1. [ Home ](/)
    2. [ Questions ](/questions)
    3. [ Tags ](/tags)
    4.     5. [ Users ](/users)
    6. [ Companies ](https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&so_source=SiteNav)
    7. [ Labs ](javascript:void\(0\))
    8. [ Jobs ](/jobs?source=so-left-nav)
    9. [ Discussions ](/beta/discussions)
    10. [ Collectives ](javascript:void\(0\))

    11. Communities for your favorite technologies. [Explore all Collectives](/collectives-all)

  2. Teams

![](https://cdn.sstatic.net/Img/teams/teams-promo.svg?v=e507948b81bf)

Ask questions, find answers and collaborate at work with Stack Overflow for Teams. 

[Try Teams for free](https://stackoverflowteams.com/teams/create/free/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams) [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams)

  3. [ Teams ](javascript:void\(0\))
  4. Ask questions, find answers and collaborate at work with Stack Overflow for Teams. [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams-compact)




##### Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

[ Learn more about Collectives ](/collectives)

**Teams**

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

[ Learn more about Teams ](https://stackoverflow.co/teams/)

Get early access and see previews of new features.

[ Learn more about Labs](https://stackoverflow.co/labs/)

# [MockMvc Test doesnt work when internal API is called](/questions/79510164/mockmvc-test-doesnt-work-when-internal-api-is-called)

[ Ask Question ](/questions/ask)

Asked today

Modified [today](?lastactivity "2025-03-14 20:42:36Z")

Viewed 8 times 

1 

[](/posts/79510164/timeline "Show activity on this post.")

I am developing a Spring Boot application/library where i have a Service that sends a request to a an API. When in integration Test the Entry Point into the Service is an /integration Endpoint. The following Code is the mvp to reproduce the error

Main Service:
    
    
    @Service
    @RequiredArgsConstructor
    public class CalculationService {
    
      private final RestClient restClient;
    
      public CalculationResponse calculate(CalculationRequest request){
        return restClient.post().uri("/service/calculate")
            .body(request)
            .retrieve()
            .toEntity(CalculationResponse.class).getBody();
    
      }
    }
    

Main Controller
    
    
    @RestController
    @RequestMapping("/service")
    public class MockApi {
    
    
      @PostMapping("/calculate")
      public CalculationResponse calculate(@RequestBody CalculationRequest calculationRequest) {
        CalculationResponse calculationResponse = new CalculationResponse();
        calculationResponse.setSummary(calculationRequest.getName()+ "----" + calculationRequest.getValue());
        return calculationResponse;
      }
    }
    

The Entry Point for my Integration Test
    
    
    @RestController
    @RequestMapping
    @RequiredArgsConstructor
    public class TestController {
    
      private final CalculationService calculationService;
    
      @PostMapping("/integration")
      public CalculationResponse integration(@RequestBody CalculationRequest request) {
        return calculationService.calculate(request);
      }
    
    }
    
    

RestClient Configuration
    
    
    @Configuration
    public class CalculationConfiguration {
    
    
      @Bean
      public RestClient restClient() {
        return RestClient.builder()
            .baseUrl("http://localhost:8080")
            .build();
      }
    
    }
    
    

Integration Test
    
    
    @AutoConfigureMockMvc
    @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
    @ExtendWith(SpringExtension.class)
    public class IntegrationTest {
    
      @Autowired
      private MockMvc mockMvc;
    
      @Autowired
      private ObjectMapper objectMapper;
    
      @Test
      public void thatSummaryIsReturned() throws Exception {
    
        CalculationRequest request = new CalculationRequest("Test", "Value");
        mockMvc.perform(MockMvcRequestBuilders.post("/integration")
                .contentType(MediaType.APPLICATION_JSON)
                .content(objectMapper.writeValueAsString(request)))
            .andExpect(status().isOk())
            .andReturn();
      }
    
    }
    

When running the test i receive following error:

Request processing failed: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://localhost:8080/service/calculate": null jakarta.servlet.ServletException: Request processing failed: org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://localhost:8080/service/calculate": null at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1022) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)

When i change the endpoint in my integration test directly to /service/calculate it works. I tried to debug but when having /integration as path in the test i dont even react the other endpoint. Has anyone an idea why this is the case ?

Edit: When the Application runs in the Background it works. So it seems that there is something missing in my TestContext ...

  * [java](/questions/tagged/java "show questions tagged 'java'")
  * [spring](/questions/tagged/spring "show questions tagged 'spring'")
  * [spring-integration](/questions/tagged/spring-integration "show questions tagged 'spring-integration'")
  * [integration-testing](/questions/tagged/integration-testing "show questions tagged 'integration-testing'")
  * [spring-webmvc](/questions/tagged/spring-webmvc "show questions tagged 'spring-webmvc'")



[Share](/q/79510164 "Short permalink to this question")

[Improve this question](/posts/79510164/edit)

Follow 

[edited 4 mins ago](/posts/79510164/revisions "show all edits to this post")

BonBonn

asked 14 mins ago

[![BonBonn's user avatar](https://www.gravatar.com/avatar/1aa05dfc98fed0758dea31cce416c341?s=64&d=identicon&r=PG)](/users/21029624/bonbonn)

[BonBonn](/users/21029624/bonbonn)BonBonn

1933 bronze badges

3

  * pls add your integration test code

- [Georgii Lvov](/users/15000097/georgii-lvov "2,820 reputation")

Commented 8 mins ago

  * Added the test code. The whole sourcecode is here: [github.com/bonbonn1912/mock-mvc-error](https://github.com/bonbonn1912/mock-mvc-error) this is a repository to reproduce the error.

- [BonBonn](/users/21029624/bonbonn "19 reputation")

Commented 7 mins ago

  * And this only happens when the restclient performs a request to an internal controller. So when going to an external endpoint it works. The TestController Bean is also in the ApplicationContext and works when the mockmvc directly calls it ...

- [BonBonn](/users/21029624/bonbonn "19 reputation")

Commented 2 mins ago




Add a comment  | 

Related questions

[ 6  Compile classfile issue in Spring 3 ](/questions/2622018/compile-classfile-issue-in-spring-3)

[ 0  Insert Data from POST Curl to JAVA Spring ](/questions/35775827/insert-data-from-post-curl-to-java-spring)

[ 203  Spring Boot REST service exception handling ](/questions/28902374/spring-boot-rest-service-exception-handling)

Related questions

[ 6  Compile classfile issue in Spring 3 ](/questions/2622018/compile-classfile-issue-in-spring-3)

[ 0  Insert Data from POST Curl to JAVA Spring ](/questions/35775827/insert-data-from-post-curl-to-java-spring)

[ 203  Spring Boot REST service exception handling ](/questions/28902374/spring-boot-rest-service-exception-handling)

[ 1  @PostMapping not working. HTTP 415 Unsupported MediaType Error ](/questions/50739123/postmapping-not-working-http-415-unsupported-mediatype-error)

[ 0  Integration test case using JUnit5 is not working for get request having curly braces in the URL ](/questions/62382602/integration-test-case-using-junit5-is-not-working-for-get-request-having-curly-b)

[ 0  Controller @RequestMapping URL returning 404 not found ](/questions/58108023/controller-requestmapping-url-returning-404-not-found)

Load 3 more related questions  Show fewer related questions 

##  0

Sorted by:  [ Reset to default ](/questions/79510164/mockmvc-test-doesnt-work-when-internal-api-is-called?answertab=scoredesc#tab-top)

Highest score (default)  Trending (recent votes count more)  Date modified (newest first)  Date created (oldest first) 

##  Know someone who can answer? Share a link to this [question](https://stackoverflow.com/questions/79510164/mockmvc-test-doesnt-work-when-internal-api-is-called) via [email](/cdn-cgi/l/email-protection#447b3731262e21273079173025272f6176740b32213622282b3361767415312137302d2b2a622529347f262b203d79092b272f09322761767410213730617674202b21372a30617674332b362f617674332c212a6176742d2a3021362a252861767405140d6176742d376176742725282821206174052c30303437617725617622617622373025272f2b32213622282b336a272b2961762235617622737d71757475727061772237212961772076), [Twitter](https://twitter.com/share?url=https%3a%2f%2fstackoverflow.com%2fq%2f79510164%3fstw%3d2), or [Facebook](https://www.facebook.com/sharer.php?u=https%3a%2f%2fstackoverflow.com%2fq%2f79510164%3fsfb%3d2). 

##  Your Answer 

Thanks for contributing an answer to Stack Overflow!

  * Please be sure to _answer the question_. Provide details and share your research!



But _avoid_ …

  * Asking for help, clarification, or responding to other answers.
  * Making statements based on opinion; back them up with references or personal experience.



To learn more, see our [tips on writing great answers](/help/how-to-answer).

Draft saved

Draft discarded

### Sign up or [log in](/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79510164%2fmockmvc-test-doesnt-work-when-internal-api-is-called%23new-answer)

Sign up using Google 

Sign up using Email and Password 

Submit

### Post as a guest

Name

Email

Required, but never shown

### Post as a guest

Name

Email

Required, but never shown

Post Your Answer  Discard 

By clicking “Post Your Answer”, you agree to our [terms of service](https://stackoverflow.com/legal/terms-of-service/public) and acknowledge you have read our [privacy policy](https://stackoverflow.com/legal/privacy-policy).

Start asking to get answers

Find the answer to your question by asking.

[Ask question](/questions/ask)

Explore related questions

  * [java](/questions/tagged/java "show questions tagged 'java'")
  * [spring](/questions/tagged/spring "show questions tagged 'spring'")
  * [spring-integration](/questions/tagged/spring-integration "show questions tagged 'spring-integration'")
  * [integration-testing](/questions/tagged/integration-testing "show questions tagged 'integration-testing'")
  * [spring-webmvc](/questions/tagged/spring-webmvc "show questions tagged 'spring-webmvc'")



See similar questions with these tags.

  * The Overflow Blog 
  * [Can climate tech startups address the current crisis?](https://stackoverflow.blog/2025/03/14/can-climate-tech-startups-address-the-current-crisis/)

  * [What we learned at TDX 2025](https://stackoverflow.blog/2025/03/14/what-we-learned-at-tdx-2025/)

  * Featured on Meta 
  * [Community Asks Sprint Announcement - March 2025](https://meta.stackexchange.com/questions/407321/community-asks-sprint-announcement-march-2025)

  * [Meta Stack Exchange site maintenance scheduled starting Monday, March 17,...](https://meta.stackexchange.com/questions/407425/meta-stack-exchange-site-maintenance-scheduled-starting-monday-march-17-2025-f "Meta Stack Exchange site maintenance scheduled starting Monday, March 17, 2025 from 13:30 UTC to 14:30 UTC \(9:30am to 10:30am ET\)")

  * [Policy: Generative AI (e.g., ChatGPT) is banned](https://meta.stackoverflow.com/questions/421831/policy-generative-ai-e-g-chatgpt-is-banned)

  * [Stacks Editor development and testing](https://meta.stackoverflow.com/questions/433034/stacks-editor-development-and-testing)

  * [Is it better to redirect users who attempt to perform actions they can't yet...](https://meta.stackoverflow.com/questions/432989/is-it-better-to-redirect-users-who-attempt-to-perform-actions-they-cant-yet-tak "Is it better to redirect users who attempt to perform actions they can't yet take?")




####  [ Hot Network Questions ](https://stackexchange.com/questions?tab=hot)

  * [ How to control expansion in \str_if_eq:nnTF ](https://tex.stackexchange.com/questions/738899/how-to-control-expansion-in-str-if-eqnntf)
  * [ Sellars treating persons as fictions ](https://philosophy.stackexchange.com/questions/123436/sellars-treating-persons-as-fictions)
  * [ Hide value in column when it is 0 ](https://superuser.com/questions/1886119/hide-value-in-column-when-it-is-0)
  * [ Emergency measures to protect a spaceship's crew from a crash landing ](https://worldbuilding.stackexchange.com/questions/265228/emergency-measures-to-protect-a-spaceships-crew-from-a-crash-landing)
  * [ MacVim does not paste when in command line mode (i.e. ":e <D-v>" would be useful); am I missing something? ](https://vi.stackexchange.com/questions/46603/macvim-does-not-paste-when-in-command-line-mode-i-e-e-d-v-would-be-useful)
  * [ Has the Trump administration explained how they're going to get people to the Moon/Mars if they're reducing the size of NASA? ](https://politics.stackexchange.com/questions/90999/has-the-trump-administration-explained-how-theyre-going-to-get-people-to-the-mo)
  * [ How can visa officials know I 'visa shopped' ](https://travel.stackexchange.com/questions/193728/how-can-visa-officials-know-i-visa-shopped)
  * [ The arrows are not aligning ](https://tex.stackexchange.com/questions/738886/the-arrows-are-not-aligning)
  * [ These entities are not supported: [GenAiPromptTemplate] ](https://salesforce.stackexchange.com/questions/430810/these-entities-are-not-supported-genaiprompttemplate)
  * [ Correlation of multi-dimensional data ](https://stats.stackexchange.com/questions/662575/correlation-of-multi-dimensional-data)
  * [ How to hold a signal high from one pulse e reset it before another pulse ](https://electronics.stackexchange.com/questions/741376/how-to-hold-a-signal-high-from-one-pulse-e-reset-it-before-another-pulse)
  * [ Is the US debt "crisis" fake? ](https://economics.stackexchange.com/questions/60090/is-the-us-debt-crisis-fake)
  * [ With what to replace uBlock Origin now after Google Chrome nerfed it? ](https://softwarerecs.stackexchange.com/questions/92047/with-what-to-replace-ublock-origin-now-after-google-chrome-nerfed-it)
  * [ Is there a concept of Turing Machine over a group, not just over the integers as a model of the tape? ](https://mathoverflow.net/questions/489309/is-there-a-concept-of-turing-machine-over-a-group-not-just-over-the-integers-as)
  * [ Building an 8080 based computer ](https://retrocomputing.stackexchange.com/questions/31407/building-an-8080-based-computer)
  * [ Indefinite integral of real function using complex numbers ](https://math.stackexchange.com/questions/5045527/indefinite-integral-of-real-function-using-complex-numbers)
  * [ How can I set ltx3 keys based on a variable? ](https://tex.stackexchange.com/questions/738902/how-can-i-set-ltx3-keys-based-on-a-variable)
  * [ How to make a desktop computer use Ethernet to connect to one network and Wi-Fi to another simultaneously? ](https://superuser.com/questions/1886136/how-to-make-a-desktop-computer-use-ethernet-to-connect-to-one-network-and-wi-fi)
  * [ Is Oz a real place? ](https://movies.stackexchange.com/questions/124822/is-oz-a-real-place)
  * [ Web application contains a link to a non-existing domain, is this a vulnerability? ](https://security.stackexchange.com/questions/280787/web-application-contains-a-link-to-a-non-existing-domain-is-this-a-vulnerabilit)
  * [ Creation of diagrams for visualization of Surface Codes ](https://quantumcomputing.stackexchange.com/questions/41431/creation-of-diagrams-for-visualization-of-surface-codes)
  * [ What was the real motivation behind Walter White's decision to keep cooking meth even after securing enough money? ](https://movies.stackexchange.com/questions/124803/what-was-the-real-motivation-behind-walter-white-s-decision-to-keep-cooking-meth)
  * [ May the federal government deny services, opportunities, or equal treatment to customers of businesses they do not like? ](https://law.stackexchange.com/questions/107776/may-the-federal-government-deny-services-opportunities-or-equal-treatment-to-c)
  * [ Strong temporal dependency with ACF or PACF ](https://ai.stackexchange.com/questions/48222/strong-temporal-dependency-with-acf-or-pacf)

more hot questions 

[ Question feed ](/feeds/question/79510164 "Feed of this question and its answers")

#  Subscribe to RSS 

Question feed 

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

![](/posts/79510164/ivc/27b4?prg=af324d81-3f84-4f70-81cb-875ece37dc50)

lang-java

[](https://stackoverflow.com)

##### [Stack Overflow](https://stackoverflow.com)

  * [Questions](/questions)
  * [Help](/help)
  * [Chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)



##### [Products](https://stackoverflow.co/)

  * [Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=teams)
  * [Advertising](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=advertising)
  * [Talent](https://stackoverflow.co/advertising/employer-branding/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=talent)



##### [Company](https://stackoverflow.co/)

  * [About](https://stackoverflow.co/)
  * [Press](https://stackoverflow.co/company/press/)
  * [Work Here](https://stackoverflow.co/company/work-here/)
  * [Legal](https://stackoverflow.com/legal)
  * [Privacy Policy](https://stackoverflow.com/legal/privacy-policy)
  * [Terms of Service](https://stackoverflow.com/legal/terms-of-service/public)
  * [Contact Us](/contact)
  * Your Privacy Choices 
  * [Cookie Policy](https://stackoverflow.com/legal/cookie-policy)



##### [Stack Exchange Network](https://stackexchange.com)

  * [ Technology ](https://stackexchange.com/sites#technology)
  * [ Culture & recreation ](https://stackexchange.com/sites#culturerecreation)
  * [ Life & arts ](https://stackexchange.com/sites#lifearts)
  * [ Science ](https://stackexchange.com/sites#science)
  * [ Professional ](https://stackexchange.com/sites#professional)
  * [ Business ](https://stackexchange.com/sites#business)
  * [ API ](https://api.stackexchange.com/)
  * [ Data ](https://data.stackexchange.com/)



  * [Blog](https://stackoverflow.blog?blb=1)
  * [Facebook](https://www.facebook.com/officialstackoverflow/)
  * [Twitter](https://twitter.com/stackoverflow)
  * [LinkedIn](https://linkedin.com/company/stack-overflow)
  * [Instagram](https://www.instagram.com/thestackoverflow)



Site design / logo © 2025 Stack Exchange Inc;  user contributions licensed under  [CC BY-SA](https://stackoverflow.com/help/licensing) .  rev 2025.3.14.23880


title: c# - Windows System Events not working before Shutdown Operation - Stack Overflow
scrape_date: 2025-03-14T15:47:27.280275
content_type: markdown
hash: 6a6f94bb1501ed3ca10d3a21445e4ab3e2a66d5b0c803dda760c8e276701ad7b
url:
https://stackoverflow.com/questions/79509783/windows-system-events-not-working-before-shutdown-operation

content:
Skip to main content

[ Stack Overflow ](https://stackoverflow.com)

  1. [About](https://stackoverflow.co/)
  2. Products 
  3. [OverflowAI](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav-bar&utm_content=overflowai)



  1. [ Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers ](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-for-teams)
  2. [ Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand ](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=stack-overflow-advertising)
  3. [ OverflowAI GenAI features for Teams ](https://stackoverflow.co/teams/ai/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-ai)
  4. [ OverflowAPI Train & fine-tune LLMs ](https://stackoverflow.co/api-solutions/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=overflow-api)
  5. [ Labs The future of collective knowledge sharing ](https://stackoverflow.co/labs/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=labs)
  6. [About the company](https://stackoverflow.co/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=about-the-company) [Visit the blog](https://stackoverflow.blog/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=top-nav&utm_content=blog)



Loading…

  1. ###  [current community](https://stackoverflow.com)

     * [ Stack Overflow  ](https://stackoverflow.com)

[help](https://stackoverflow.com/help) [chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)

     * [ Meta Stack Overflow  ](https://meta.stackoverflow.com)

###  your communities 

[Sign up](https://stackoverflow.com/users/signup?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509783%2fwindows-system-events-not-working-before-shutdown-operation) or [log in](https://stackoverflow.com/users/login?ssrc=site_switcher&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509783%2fwindows-system-events-not-working-before-shutdown-operation) to customize your list. 

### [more stack exchange communities](https://stackexchange.com/sites)

[company blog](https://stackoverflow.blog)

  2.   3. [Log in](https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509783%2fwindows-system-events-not-working-before-shutdown-operation)
  4. [Sign up](https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509783%2fwindows-system-events-not-working-before-shutdown-operation)



  1.     1. [ Home ](/)
    2. [ Questions ](/questions)
    3. [ Tags ](/tags)
    4.     5. [ Users ](/users)
    6. [ Companies ](https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&so_source=SiteNav)
    7. [ Labs ](javascript:void\(0\))
    8. [ Jobs ](/jobs?source=so-left-nav)
    9. [ Discussions ](/beta/discussions)
    10. [ Collectives ](javascript:void\(0\))

    11. Communities for your favorite technologies. [Explore all Collectives](/collectives-all)

  2. Teams

![](https://cdn.sstatic.net/Img/teams/teams-promo.svg?v=e507948b81bf)

Ask questions, find answers and collaborate at work with Stack Overflow for Teams. 

[Try Teams for free](https://stackoverflowteams.com/teams/create/free/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams) [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams)

  3. [ Teams ](javascript:void\(0\))
  4. Ask questions, find answers and collaborate at work with Stack Overflow for Teams. [Explore Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=side-bar&utm_content=explore-teams-compact)




##### Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

[ Learn more about Collectives ](/collectives)

**Teams**

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

[ Learn more about Teams ](https://stackoverflow.co/teams/)

Get early access and see previews of new features.

[ Learn more about Labs](https://stackoverflow.co/labs/)

# [Windows System Events not working before Shutdown Operation](/questions/79509783/windows-system-events-not-working-before-shutdown-operation)

[ Ask Question ](/questions/ask)

Asked today

Modified [today](?lastactivity "2025-03-14 20:43:08Z")

Viewed 22 times 

-1 

[](/posts/79509783/timeline "Show activity on this post.")

I am trying to build a prototype application to log & store user activity. For that, I am using GetForegroundWindow() to get present running application title. And I need to save those logs in DB before shutting down. I am using some System events to do that. but it is not working for me.
    
    
    [DllImport("user32.dll")]
    static extern IntPtr GetForegroundWindow();
    
    [DllImport("user32.dll")]
    static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
    
    static string connectionString = "XXXXXXXXXXXXXX";
    static string filePath = "xxxxxxxxxxxxxxxxxxxxxx";
    
    static Dictionary<string, TimeSpan> appDurations = new Dictionary<string, TimeSpan>();
    
    static void Main()
    {
        SystemEvents.PowerModeChanged += async (sender, e) => await OnPowerModeChanged(sender, e);
        SystemEvents.SessionEnding += async (sender, e) => await OnSessionEnding(sender, e);
        SystemEvents.EventsThreadShutdown += async (sender, e) => await ProcessLogs();
        SystemEvents.SessionEnded += async (sender, e) => await ProcessLogs();
    
        string currentApp = "";
        DateTime startTime = DateTime.Now;
    
        while (true)
        {
            string activeApp = GetActiveWindowTitle();
    
            if (activeApp != currentApp)
            {
                if (!string.IsNullOrEmpty(currentApp))
                {
                    LogAppUsage(currentApp, startTime, DateTime.Now);
                }
    
                currentApp = activeApp;
                startTime = DateTime.Now;
            }
    
            Thread.Sleep(1000);
        }
    }
    
    static string GetActiveWindowTitle()
    {
        const int nChars = 256;
        StringBuilder buff = new StringBuilder(nChars);
        IntPtr handle = GetForegroundWindow();
    
        if (GetWindowText(handle, buff, nChars) > 0)
            return buff.ToString();
    
        return "Unknown";
    }
    

Github REPO [link](https://github.com/Sanjuchilukuri/DigitalWellbeing)

  * [c#](/questions/tagged/c%23 "show questions tagged 'c#'")
  * [windows](/questions/tagged/windows "show questions tagged 'windows'")
  * [windows-system-events](/questions/tagged/windows-system-events "show questions tagged 'windows-system-events'")



[Share](/q/79509783 "Short permalink to this question")

[Improve this question](/posts/79509783/edit)

Follow 

[edited 4 mins ago](/posts/79509783/revisions "show all edits to this post")

Sanju Chilukuri

asked 3 hours ago

[![Sanju Chilukuri's user avatar](https://lh3.googleusercontent.com/a/ACg8ocKnzauHjEvMLH5hM4DlLFisKvE2PL3gRWD_m6Xf-WoaWg=k-s64)](/users/23551896/sanju-chilukuri)

[Sanju Chilukuri](/users/23551896/sanju-chilukuri)Sanju Chilukuri

933 bronze badges

4

  * 2

"not working" means what exactly?

- [Klaus Gutter](/users/2142950/klaus-g%c3%bctter "12,032 reputation")

Commented 3 hours ago

  * Yes, what do your event handler look like? What are you doing to terminate the app? Close window, logoff, reboot, end task, ...?

- [BandannaMan](/users/21806704/bandannaman "65 reputation")

Commented 2 hours ago

  * I want to do something before shutdown or sleep I tried with most of the system events. none of them are working.

- [Sanju Chilukuri](/users/23551896/sanju-chilukuri "9 reputation")

Commented 5 mins ago

  * For your reference I am attaching github repo link. please have look on it

- [Sanju Chilukuri](/users/23551896/sanju-chilukuri "9 reputation")

Commented 5 mins ago




Add a comment  | 

Related questions

[ 3  Set position of TabTip keyboard c# is not working ](/questions/22630783/set-position-of-tabtip-keyboard-c-sharp-is-not-working)

[ 8  How to kill an alert window in Windows using C#? ](/questions/3098629/how-to-kill-an-alert-window-in-windows-using-c)

[ 2130  How do I remedy "The breakpoint will not currently be hit. No symbols have been loaded for this document." warning? ](/questions/2155930/how-do-i-remedy-the-breakpoint-will-not-currently-be-hit-no-symbols-have-been)

Related questions

[ 3  Set position of TabTip keyboard c# is not working ](/questions/22630783/set-position-of-tabtip-keyboard-c-sharp-is-not-working)

[ 8  How to kill an alert window in Windows using C#? ](/questions/3098629/how-to-kill-an-alert-window-in-windows-using-c)

[ 2130  How do I remedy "The breakpoint will not currently be hit. No symbols have been loaded for this document." warning? ](/questions/2155930/how-do-i-remedy-the-breakpoint-will-not-currently-be-hit-no-symbols-have-been)

[ 1737  Why not inherit from List<T>? ](/questions/21692193/why-not-inherit-from-listt)

[ 0  Extract Text from External Application's Textbox(Unicode) into C# Application, using user32.dll ](/questions/18222702/extract-text-from-external-applications-textboxunicode-into-c-sharp-applicati)

[ 8  Can not pass winform control size into unmanaged code ](/questions/16031253/can-not-pass-winform-control-size-into-unmanaged-code)

[ 15  Calling GetGUIThreadInfo via P/Invoke ](/questions/719825/calling-getguithreadinfo-via-p-invoke)

Load 4 more related questions  Show fewer related questions 

##  0

Sorted by:  [ Reset to default ](/questions/79509783/windows-system-events-not-working-before-shutdown-operation?answertab=scoredesc#tab-top)

Highest score (default)  Trending (recent votes count more)  Date modified (newest first)  Date created (oldest first) 

##  Know someone who can answer? Share a link to this [question](https://stackoverflow.com/questions/79509783/windows-system-events-not-working-before-shutdown-operation) via [email](/cdn-cgi/l/email-protection#3f004c4a5d555a5c4b026c4b5e5c541a0d0f70495a4d595350481a0d0f6e4a5a4c4b565051195e524f045d505b46026856515b50484c1a0d0f6c464c4b5a521a0d0f7a495a514b4c1a0d0f51504b1a0d0f48504d545651581a0d0f5d5a59504d5a1a0d0f6c574a4b5b5048511a0d0f704f5a4d5e4b5650511a0f7e574b4b4f4c1a0c5e1a0d591a0d594c4b5e5c5450495a4d59535048115c50521a0d594e1a0d5908060a0f0608070c1a0c594c5a521a0c5b0d), [Twitter](https://twitter.com/share?url=https%3a%2f%2fstackoverflow.com%2fq%2f79509783%3fstw%3d2), or [Facebook](https://www.facebook.com/sharer.php?u=https%3a%2f%2fstackoverflow.com%2fq%2f79509783%3fsfb%3d2). 

##  Your Answer 

Thanks for contributing an answer to Stack Overflow!

  * Please be sure to _answer the question_. Provide details and share your research!



But _avoid_ …

  * Asking for help, clarification, or responding to other answers.
  * Making statements based on opinion; back them up with references or personal experience.



To learn more, see our [tips on writing great answers](/help/how-to-answer).

Draft saved

Draft discarded

### Sign up or [log in](/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f79509783%2fwindows-system-events-not-working-before-shutdown-operation%23new-answer)

Sign up using Google 

Sign up using Email and Password 

Submit

### Post as a guest

Name

Email

Required, but never shown

### Post as a guest

Name

Email

Required, but never shown

Post Your Answer  Discard 

By clicking “Post Your Answer”, you agree to our [terms of service](https://stackoverflow.com/legal/terms-of-service/public) and acknowledge you have read our [privacy policy](https://stackoverflow.com/legal/privacy-policy).

Start asking to get answers

Find the answer to your question by asking.

[Ask question](/questions/ask)

Explore related questions

  * [c#](/questions/tagged/c%23 "show questions tagged 'c#'")
  * [windows](/questions/tagged/windows "show questions tagged 'windows'")
  * [windows-system-events](/questions/tagged/windows-system-events "show questions tagged 'windows-system-events'")



See similar questions with these tags.

  * The Overflow Blog 
  * [Can climate tech startups address the current crisis?](https://stackoverflow.blog/2025/03/14/can-climate-tech-startups-address-the-current-crisis/)

  * [What we learned at TDX 2025](https://stackoverflow.blog/2025/03/14/what-we-learned-at-tdx-2025/)

  * Featured on Meta 
  * [Community Asks Sprint Announcement - March 2025](https://meta.stackexchange.com/questions/407321/community-asks-sprint-announcement-march-2025)

  * [Meta Stack Exchange site maintenance scheduled starting Monday, March 17,...](https://meta.stackexchange.com/questions/407425/meta-stack-exchange-site-maintenance-scheduled-starting-monday-march-17-2025-f "Meta Stack Exchange site maintenance scheduled starting Monday, March 17, 2025 from 13:30 UTC to 14:30 UTC \(9:30am to 10:30am ET\)")

  * [Policy: Generative AI (e.g., ChatGPT) is banned](https://meta.stackoverflow.com/questions/421831/policy-generative-ai-e-g-chatgpt-is-banned)

  * [Stacks Editor development and testing](https://meta.stackoverflow.com/questions/433034/stacks-editor-development-and-testing)

  * [Is it better to redirect users who attempt to perform actions they can't yet...](https://meta.stackoverflow.com/questions/432989/is-it-better-to-redirect-users-who-attempt-to-perform-actions-they-cant-yet-tak "Is it better to redirect users who attempt to perform actions they can't yet take?")




####  [ Hot Network Questions ](https://stackexchange.com/questions?tab=hot)

  * [ Flying from Germany to Poland and back without Schengen visa ](https://travel.stackexchange.com/questions/193733/flying-from-germany-to-poland-and-back-without-schengen-visa)
  * [ Can someone command a lycanthrope to use its shapechanger action? ](https://rpg.stackexchange.com/questions/214984/can-someone-command-a-lycanthrope-to-use-its-shapechanger-action)
  * [ Implicit differentiation - why can you substitute the expression? ](https://math.stackexchange.com/questions/5044810/implicit-differentiation-why-can-you-substitute-the-expression)
  * [ What is the reasoning that leads Evangelicals (or others) to believe attempting to determine if a prominent figure is the Antichrist is acceptable? ](https://christianity.stackexchange.com/questions/105494/what-is-the-reasoning-that-leads-evangelicals-or-others-to-believe-attempting)
  * [ How can I set ltx3 keys based on a variable? ](https://tex.stackexchange.com/questions/738902/how-can-i-set-ltx3-keys-based-on-a-variable)
  * [ A121016: Numbers whose binary expansion is properly periodic. or A328594: Numbers whose binary expansion is aperiodic ](https://codegolf.stackexchange.com/questions/278622/a121016-numbers-whose-binary-expansion-is-properly-periodic-or-a328594-number)
  * [ Generate the indices of the corners of the 12 face triangles of a cube ](https://codegolf.stackexchange.com/questions/278647/generate-the-indices-of-the-corners-of-the-12-face-triangles-of-a-cube)
  * [ "...embedded one inch lateral to the wound edge" or "...embedded one inch laterally to the wound edge" ](https://english.stackexchange.com/questions/629897/embedded-one-inch-lateral-to-the-wound-edge-or-embedded-one-inch-latera)
  * [ Is Hebrews 10:26 mistranslated? ](https://hermeneutics.stackexchange.com/questions/102233/is-hebrews-1026-mistranslated)
  * [ Correlation of multi-dimensional data ](https://stats.stackexchange.com/questions/662575/correlation-of-multi-dimensional-data)
  * [ Can an Action Surging 7+ Eldritch Knight cast two cantrips with War Magic? ](https://rpg.stackexchange.com/questions/214979/can-an-action-surging-7-eldritch-knight-cast-two-cantrips-with-war-magic)
  * [ Is Oz a real place? ](https://movies.stackexchange.com/questions/124822/is-oz-a-real-place)
  * [ Chess.com suggests moves that will lose my queen. Am I missing something? ](https://chess.stackexchange.com/questions/46768/chess-com-suggests-moves-that-will-lose-my-queen-am-i-missing-something)
  * [ PTIJ: What was the name of Mordechai's WhatsApp group? ](https://judaism.stackexchange.com/questions/148230/ptij-what-was-the-name-of-mordechais-whatsapp-group)
  * [ Can I use tandem breakers to make room in a full panel with full neutral bus bars? ](https://diy.stackexchange.com/questions/315818/can-i-use-tandem-breakers-to-make-room-in-a-full-panel-with-full-neutral-bus-bar)
  * [ 0-30V power supply circuit function of BJT base connection ](https://electronics.stackexchange.com/questions/741454/0-30v-power-supply-circuit-function-of-bjt-base-connection)
  * [ Why can the time between power on and the beginning of POST vary? ](https://superuser.com/questions/1885628/why-can-the-time-between-power-on-and-the-beginning-of-post-vary)
  * [ How would a society with no wood reliably heat itself? ](https://worldbuilding.stackexchange.com/questions/265292/how-would-a-society-with-no-wood-reliably-heat-itself)
  * [ Story Identification: A novel about a failed space colony hundreds of years later ](https://scifi.stackexchange.com/questions/295442/story-identification-a-novel-about-a-failed-space-colony-hundreds-of-years-late)
  * [ Is the US debt "crisis" fake? ](https://economics.stackexchange.com/questions/60090/is-the-us-debt-crisis-fake)
  * [ Why are some independent variables having huge std errors? ](https://stats.stackexchange.com/questions/662601/why-are-some-independent-variables-having-huge-std-errors)
  * [ Strong temporal dependency with ACF or PACF ](https://ai.stackexchange.com/questions/48222/strong-temporal-dependency-with-acf-or-pacf)
  * [ Progress messages for "Repairing disk errors. This might take over an hour to complete"? ](https://superuser.com/questions/1886113/progress-messages-for-repairing-disk-errors-this-might-take-over-an-hour-to-co)
  * [ Photon energy anomaly after converting to mass ](https://physics.stackexchange.com/questions/845208/photon-energy-anomaly-after-converting-to-mass)

more hot questions 

[ Question feed ](/feeds/question/79509783 "Feed of this question and its answers")

#  Subscribe to RSS 

Question feed 

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

![](/posts/79509783/ivc/27b4?prg=146e14cd-fbf0-4a9e-be80-49c5906dde22)

lang-cs

[](https://stackoverflow.com)

##### [Stack Overflow](https://stackoverflow.com)

  * [Questions](/questions)
  * [Help](/help)
  * [Chat](https://chat.stackoverflow.com/?tab=site&host=stackoverflow.com)



##### [Products](https://stackoverflow.co/)

  * [Teams](https://stackoverflow.co/teams/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=teams)
  * [Advertising](https://stackoverflow.co/advertising/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=advertising)
  * [Talent](https://stackoverflow.co/advertising/employer-branding/?utm_medium=referral&utm_source=stackoverflow-community&utm_campaign=footer&utm_content=talent)



##### [Company](https://stackoverflow.co/)

  * [About](https://stackoverflow.co/)
  * [Press](https://stackoverflow.co/company/press/)
  * [Work Here](https://stackoverflow.co/company/work-here/)
  * [Legal](https://stackoverflow.com/legal)
  * [Privacy Policy](https://stackoverflow.com/legal/privacy-policy)
  * [Terms of Service](https://stackoverflow.com/legal/terms-of-service/public)
  * [Contact Us](/contact)
  * Your Privacy Choices 
  * [Cookie Policy](https://stackoverflow.com/legal/cookie-policy)



##### [Stack Exchange Network](https://stackexchange.com)

  * [ Technology ](https://stackexchange.com/sites#technology)
  * [ Culture & recreation ](https://stackexchange.com/sites#culturerecreation)
  * [ Life & arts ](https://stackexchange.com/sites#lifearts)
  * [ Science ](https://stackexchange.com/sites#science)
  * [ Professional ](https://stackexchange.com/sites#professional)
  * [ Business ](https://stackexchange.com/sites#business)
  * [ API ](https://api.stackexchange.com/)
  * [ Data ](https://data.stackexchange.com/)



  * [Blog](https://stackoverflow.blog?blb=1)
  * [Facebook](https://www.facebook.com/officialstackoverflow/)
  * [Twitter](https://twitter.com/stackoverflow)
  * [LinkedIn](https://linkedin.com/company/stack-overflow)
  * [Instagram](https://www.instagram.com/thestackoverflow)



Site design / logo © 2025 Stack Exchange Inc;  user contributions licensed under  [CC BY-SA](https://stackoverflow.com/help/licensing) .  rev 2025.3.14.23880


title: Reddit - Heart of the internet
scrape_date: 2025-03-14T16:01:04.029629
content_type: markdown
hash: 8863f5a0ea1d7ae44b786752c5f2d1d8f803f9214137b91445141f6888603506
url:
https://www.reddit.com/r/ChatGPT/comments/14lisa9/chatgpt_coding_skills_seem_to_have_been_gutted_im/

content:
Skip to main content

Open menu Open navigation [ ](/)Go to Reddit Home

r/ChatGPT  A chip A close button

Get App Get the Reddit app  [ Log In ](https://www.reddit.com/login/)Log in to Reddit

Expand user menu Open settings menu

[ ![r/ChatGPT icon](https://styles.redditmedia.com/t5_7hqomg/styles/communityIcon_bzj6d1z1oizc1.png) Go to ChatGPT  ](/r/ChatGPT/)

[r/ChatGPT](/r/ChatGPT/)

![A banner for the subreddit](https://styles.redditmedia.com/t5_7hqomg/styles/bannerBackgroundImage_9ujha2cxxgzc1.jpg?format=pjpg&s=590df3b109277fce50655c17de61988ecf11f41b)

![r/ChatGPT icon](https://styles.redditmedia.com/t5_7hqomg/styles/communityIcon_bzj6d1z1oizc1.png) [r/ChatGPT](/r/ChatGPT/) ![SpinAI](https://emoji.redditmedia.com/k6oywioqmizc1_t5_7hqomg/SpinAI) ![SpinAI](https://emoji.redditmedia.com/k6oywioqmizc1_t5_7hqomg/SpinAI)

<https://dsc.gg/rchatgpt>

Subreddit to discuss ChatGPT and AI. Not affiliated with OpenAI. Thanks, Nat! 

* * *

Members Online

•

[Alchemy333](/user/Alchemy333/)

#  ChatGPT coding skills seem to have been gutted. Im asking it to write simple Pythone code to create a todo list. Simple, using GPT-4, Im a plus memebr, and it keeps giving me code with bad logic, bugs and its just getting worse each iteration. Like its confused. It used to not be this bad. 

[ Other  ](/r/ChatGPT/?f=flair_name%3A%22Other%20%22)

Archived post. New comments cannot be posted and votes cannot be cast. 

New to Reddit? 

Create your account and connect with a world of communities. 

Continue with Email 

Continue With Phone Number 

By continuing, you agree to our [User Agreement](https://www.redditinc.com/policies/user-agreement) and acknowledge that you understand the [Privacy Policy](https://www.redditinc.com/policies/privacy-policy). 

**Top 1%** [ Rank by size  ](https://www.reddit.com/best/communities/1/#t5_7hqomg/)

![SpinAI](https://emoji.redditmedia.com/k6oywioqmizc1_t5_7hqomg/SpinAI) ![SpinAI](https://emoji.redditmedia.com/k6oywioqmizc1_t5_7hqomg/SpinAI)

<https://dsc.gg/rchatgpt>

Public 

Anyone can view, post, and comment to this community

##  Top Posts 

* * *

  * [ Reddit  reReddit: Top posts of June 28, 2023

* * * ](https://www.reddit.com/posts/2023/june-28-1/)
  * [ Reddit  reReddit: Top posts of June 2023

* * * ](https://www.reddit.com/posts/2023/june/)
  * [ Reddit  reReddit: Top posts of 2023

* * * ](https://www.reddit.com/posts/2023/)



[Reddit Rules](https://www.redditinc.com/policies/content-policy) [Privacy Policy](https://www.reddit.com/policies/privacy-policy) [User Agreement](https://www.redditinc.com/policies/user-agreement) [Reddit, Inc. © 2025. All rights reserved.](https://redditinc.com)

Expand Navigation Collapse Navigation

* &nbsp;

* &nbsp;

* * *

* TOPICS

* Internet Culture (Viral)

  * [ Amazing ](https://reddit.com/t/amazing/)
  * [ Animals & Pets ](https://reddit.com/t/animals_and_pets/)
  * [ Cringe & Facepalm ](https://reddit.com/t/cringe_and_facepalm/)
  * [ Funny ](https://reddit.com/t/funny/)
  * [ Interesting ](https://reddit.com/t/interesting/)
  * [ Memes ](https://reddit.com/t/memes/)
  * [ Oddly Satisfying ](https://reddit.com/t/oddly_satisfying/)
  * [ Reddit Meta ](https://reddit.com/t/reddit_meta/)
  * [ Wholesome & Heartwarming ](https://reddit.com/t/wholesome_and_heartwarming/)



* Games

  * [ Action Games ](https://reddit.com/t/action_games/)
  * [ Adventure Games ](https://reddit.com/t/adventure_games/)
  * [ Esports ](https://reddit.com/t/esports/)
  * [ Gaming Consoles & Gear ](https://reddit.com/t/gaming_consoles_and_gear/)
  * [ Gaming News & Discussion ](https://reddit.com/t/gaming_news_and_discussion/)
  * [ Mobile Games ](https://reddit.com/t/mobile_games/)
  * [ Other Games ](https://reddit.com/t/other_games/)
  * [ Role-Playing Games ](https://reddit.com/t/role_playing_games/)
  * [ Simulation Games ](https://reddit.com/t/simulation_games/)
  * [ Sports & Racing Games ](https://reddit.com/t/sports_and_racing_games/)
  * [ Strategy Games ](https://reddit.com/t/strategy_games/)
  * [ Tabletop Games ](https://reddit.com/t/tabletop_games/)



* Q&As

  * [ Q&As ](https://reddit.com/t/q_and_as/)
  * [ Stories & Confessions ](https://reddit.com/t/stories_and_confessions/)



* Technology

  * [ 3D Printing ](https://reddit.com/t/3d_printing/)
  * [ Artificial Intelligence & Machine Learning ](https://reddit.com/t/artificial_intelligence_and_machine_learning/)
  * [ Computers & Hardware ](https://reddit.com/t/computers_and_hardware/)
  * [ Consumer Electronics ](https://reddit.com/t/consumer_electronics/)
  * [ DIY Electronics ](https://reddit.com/t/diy_electronics/)
  * [ Programming ](https://reddit.com/t/programming/)
  * [ Software & Apps ](https://reddit.com/t/software_and_apps/)
  * [ Streaming Services ](https://reddit.com/t/streaming_services/)
  * [ Tech News & Discussion ](https://reddit.com/t/tech_news_and_discussion/)
  * [ Virtual & Augmented Reality ](https://reddit.com/t/virtual_and_augmented_reality/)



* Pop Culture

  * [ Celebrities ](https://reddit.com/t/celebrities/)
  * [ Creators & Influencers ](https://reddit.com/t/creators_and_influencers/)
  * [ Generations & Nostalgia ](https://reddit.com/t/generations_and_nostalgia/)
  * [ Podcasts ](https://reddit.com/t/podcasts/)
  * [ Streamers ](https://reddit.com/t/streamers/)
  * [ Tarot & Astrology ](https://reddit.com/t/tarot_and_astrology/)



* Movies & TV

  * [ Action Movies & Series ](https://reddit.com/t/action_movies_and_series/)
  * [ Animated Movies & Series ](https://reddit.com/t/animated_movies_and_series/)
  * [ Comedy Movies & Series ](https://reddit.com/t/comedy_movies_and_series/)
  * [ Crime, Mystery, & Thriller Movies & Series ](https://reddit.com/t/crime_mystery_and_thriller_movies_and_series/)
  * [ Documentary Movies & Series ](https://reddit.com/t/documentary_movies_and_series/)
  * [ Drama Movies & Series ](https://reddit.com/t/drama_movies_and_series/)
  * [ Fantasy Movies & Series ](https://reddit.com/t/fantasy_movies_and_series/)
  * [ Horror Movies & Series ](https://reddit.com/t/horror_movies_and_series/)
  * [ Movie News & Discussion ](https://reddit.com/t/movie_news_and_discussion/)
  * [ Reality TV ](https://reddit.com/t/reality_tv/)
  * [ Romance Movies & Series ](https://reddit.com/t/romance_movies_and_series/)
  * [ Sci-Fi Movies & Series ](https://reddit.com/t/scifi_movies_and_series/)
  * [ Superhero Movies & Series ](https://reddit.com/t/superhero_movies_and_series/)
  * [ TV News & Discussion ](https://reddit.com/t/tv_news_and_discussion/)



* * *

* RESOURCES

* [ About Reddit ](https://www.redditinc.com)
* [ Advertise ](https://ads.reddit.com/register?utm_source=web3x_consumer&utm_name=left_nav_cta&utm_content=default)
* [ Reddit Pro BETA  ](/reddit-pro?utm_source=reddit&utm_medium=left_nav_resources)
* [ Help ](https://support.reddithelp.com/hc?utm_source=reddit&utm_medium=footer&utm_campaign=evergreen)
* [ Blog ](https://redditblog.com/)
* [ Careers ](https://www.redditinc.com/careers)
* [ Press ](https://www.redditinc.com/press)

* * *

* [ Communities ](https://www.reddit.com/best/communities/1/)
* [ Best of Reddit ](https://www.reddit.com/posts/2025/global/)
* [ Topics ](https://www.reddit.com/topics/a-1/)

![](https://id.rlcdn.com/472486.gif)


url: https://news.ycombinator.com/item?id=41991291
title: Google CEO says more than a quarter of the company's new code is created by AI | Hacker News
scrape_date: 2025-03-14T16:01:05.295881
content_type: markdown
hash: d2b476d4043f33adf8ae3bb76bc580a1d8562e8f2c44c82d3055a7c4f7843a16
content:
| [![](y18.svg)](https://news.ycombinator.com) | **[Hacker News](news)** [new](newest) | [past](front) | [comments](newcomments) | [ask](ask) | [show](show) | [jobs](jobs) | [submit](submit) |  [login](login?goto=item%3Fid%3D41991291)  
---|---|---  
|  | [](vote?id=41991291&how=up&goto=item%3Fid%3D41991291)| [Google CEO says more than a quarter of the company's new code is created by AI](https://www.businessinsider.com/google-earnings-q3-2024-new-code-created-by-ai-2024-10) ([businessinsider.com](from?site=businessinsider.com))  
---|---|---  
|  608 points by [S0y](user?id=S0y) [4 months ago](item?id=41991291) | [hide](hide?id=41991291&goto=item%3Fid%3D41991291) | [past](https://hn.algolia.com/?query=Google%20CEO%20says%20more%20than%20a%20quarter%20of%20the%20company%27s%20new%20code%20is%20created%20by%20AI&type=story&dateRange=all&sort=byDate&storyText=false&prefix&page=0) | [favorite](fave?id=41991291&auth=4309c4f03f507b03a129002f2c5c8d963ed03650) | [990 comments](item?id=41991291)  
  
  
| ![](s.gif)|  [](vote?id=41991323&how=up&goto=item%3Fid%3D41991291) |  [S0y](user?id=S0y) [4 months ago](item?id=41991323) | next [[–]](javascript:void\(0\))   
[https://archive.is/X43PU](https://archive.is/X43PU)  
---|---|---  
| ![](s.gif)|  [](vote?id=42002212&how=up&goto=item%3Fid%3D41991291) |  [asdfman123](user?id=asdfman123) [4 months ago](item?id=42002212) | prev | next [[–]](javascript:void\(0\))   
I work for Google, and I just got done with my work day. I was just writing I guess what you'd call "AI generated code."But the code completion engine is basically just good at finishing the lines I'm writing. If I'm writing "function getAc..." it's smart enough to complete to "function getActionHandler()", and maybe suggest the correct arguments and a decent jsdoc comment.So basically, it's a helpful productivity tool but it's not doing any engineering at all. It's probably about as good, maybe slightly worse, than Copilot. (I haven't used it recently though.)  
---|---|---  
| ![](s.gif)|  [](vote?id=42004709&how=up&goto=item%3Fid%3D41991291) |  [NotAnOtter](user?id=NotAnOtter) [4 months ago](item?id=42004709) | parent | next [[–]](javascript:void\(0\))   
I also work at google (until last Friday). Agree with what you said. My thoughts are1\. This quote is clearly meant to exaggerate reality, and they are likely including things like fully automated CL/PR's which have been around for a decade as "AI generated".2\. I stated before that if a team of 10 is equally as productive as a team of 8 utilizing things like copilot, it's fair to say "AI replaced 2 engineers", in my opinion. More importantly, Tech leaders would be making this claim if it were true. Copilot and it's clones have been around long enough know for the evidence to be in, and no one is stating "we've replaced X% of our workforce with AI" \- therefor my claim is (by 'denying the consequent'), using copilot does not materially accelerate development.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005510&how=up&goto=item%3Fid%3D41991291) |  [ahmedfromtunis](user?id=ahmedfromtunis) [4 months ago](item?id=42005510) | root | parent | next [[–]](javascript:void\(0\))   
> no one is stating "we've replaced X% of our workforce with AI"Even if that's been happening, I don't think it would be politically savvy to admit it.In today's social climate claiming to replace humans with AI would attract the wrong kind of attention from politicians (during an election year) and from the public in general.This would be even more unwise to admit for a company like Google who's an "AI producer". They may leave such a language for closed meetings with potential customers during sales pitches though.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005879&how=up&goto=item%3Fid%3D41991291) |  [whywhywhywhy](user?id=whywhywhywhy) [4 months ago](item?id=42005879) | root | parent | next [[–]](javascript:void\(0\))   
> and from the public in generalDon't think the public will be that concerned about people in Google's salary bracket losing their jobs.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008252&how=up&goto=item%3Fid%3D41991291) |  [jl6](user?id=jl6) [4 months ago](item?id=42008252) | root | parent | next [[–]](javascript:void\(0\))   
It’s a disservice to the public to assume they aren’t capable of understanding why AI job losses might be concerning even if they aren’t directly impacted. Most people aren’t so committed to class warfare that they will root for the apocalypse as long as it stomps a rich guy first.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008871&how=up&goto=item%3Fid%3D41991291) |  [wavewrangler](user?id=wavewrangler) [4 months ago](item?id=42008871) | root | parent | next [[–]](javascript:void\(0\))   
You mean poor person. As long as it stomps a poor person. The rich don’t have a habit of getting stomped. They direct other poor people to stomp their contemporaries. The poor don’t have a chance.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009354&how=up&goto=item%3Fid%3D41991291) |  [whatshisface](user?id=whatshisface) [4 months ago](item?id=42009354) | root | parent | next [[–]](javascript:void\(0\))   
I don't think a lot of people realize how few people are "rich" in the sense of not being impacted by the labor market, or how virtually all of them are retirees. CFOs aren't looking forward to a massive shift in the labor market for accountants any more than CPAs. Warren Buffet has a "job," he writes those letters for BH and oversees the firm's investments at a high level... and most of the people who live off of investments have children in the workforce. Even most people whose _children_ live off of their investments have kids in the (nonprofit) workforce.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008406&how=up&goto=item%3Fid%3D41991291) |  [tehjoker](user?id=tehjoker) [4 months ago](item?id=42008406) | root | parent | prev | next [[–]](javascript:void\(0\))   
Software engineers and grocery store workers are in different income brackets, but in the same class (labor/prolaterian). It is managers, executives, and investors that are in the capitalist class. Class is determined by your relationship to production.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009127&how=up&goto=item%3Fid%3D41991291) |  [barrkel](user?id=barrkel) [4 months ago](item?id=42009127) | root | parent | next [[–]](javascript:void\(0\))   
Software engineer salaries and stock compensation can be enough to shift alignment somewhat, especially after many years of capital accumulation.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009302&how=up&goto=item%3Fid%3D41991291) |  [tehjoker](user?id=tehjoker) [4 months ago](item?id=42009302) | root | parent | next [[–]](javascript:void\(0\))   
if you make the majority of your earnings from passive income or you do not need to work to live you are more part of the leisure class  
---|---|---  
| ![](s.gif)|  [](vote?id=42009594&how=up&goto=item%3Fid%3D41991291) |  [barrkel](user?id=barrkel) [4 months ago](item?id=42009594) | root | parent | next [[–]](javascript:void\(0\))   
Two things: capitalists don't not work; and if you have a sizeable portfolio, you may not need to work and may earn plenty of passive income, yet still work because you add more value at the margin working than fiddling with stock allocations or angel investing or whatnot (vs index funds etc.).  
---|---|---  
| ![](s.gif)|  [](vote?id=42015961&how=up&goto=item%3Fid%3D41991291) |  [datavirtue](user?id=datavirtue) [4 months ago](item?id=42015961) | root | parent | next [[–]](javascript:void\(0\))   
It's easy to get a capitalist to come out of retirement. Most of the time you just have to ask them to take a look at your business. Before you know it they accept a board position and shortly thereafter they are running point as President.  
---|---|---  
| ![](s.gif)|  [](vote?id=42031201&how=up&goto=item%3Fid%3D41991291) |  [tehjoker](user?id=tehjoker) [4 months ago](item?id=42031201) | root | parent | next [[–]](javascript:void\(0\))   
For an illustrated example, you can watch Succession  
---|---|---  
| ![](s.gif)|  [](vote?id=42037508&how=up&goto=item%3Fid%3D41991291) |  [DAGdug](user?id=DAGdug) [4 months ago](item?id=42037508) | root | parent | prev | next [[–]](javascript:void\(0\))   
I’ve switched from manager to IC and vice-versa a few times at FAANG. Didn’t strike me as moving between the capitalist and proletariat classes, lol!  
---|---|---  
| ![](s.gif)|  [](vote?id=42005957&how=up&goto=item%3Fid%3D41991291) |  [ytss](user?id=ytss) [4 months ago](item?id=42005957) | root | parent | prev | next [[–]](javascript:void\(0\))   
The public might though be concerned that if they are being replaced, many in other positions at other companies will soon be replaced as well.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007819&how=up&goto=item%3Fid%3D41991291) |  [darth_avocado](user?id=darth_avocado) [4 months ago](item?id=42007819) | root | parent | next [[–]](javascript:void\(0\))   
That’s not how the mind works. People cheered when Elon fired 80% of the Twitter staff. No one cares when people with high paying jobs suffer.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008183&how=up&goto=item%3Fid%3D41991291) |  [mmcdermott](user?id=mmcdermott) [4 months ago](item?id=42008183) | root | parent | next [[–]](javascript:void\(0\))   
The people who cheered about the firing of 80% of the Twitter staff largely believed (rightly or wrongly) that they were being adversely affected by them. While Google may be seen with more wariness in tech circles, I don't think the average person believes that Google is actively harming them (again, rightly or wrongly).  
---|---|---  
| ![](s.gif)|  [](vote?id=42011311&how=up&goto=item%3Fid%3D41991291) |  [ahmedfromtunis](user?id=ahmedfromtunis) [4 months ago](item?id=42011311) | root | parent | prev | next [[–]](javascript:void\(0\))   
These aren't the same types of events. In Twitter's case, it was a one-off act, caused by one-off circumstances. With Google, it'd be more of a precursor to a new trend that might soon take root and impact me or those I care about.  
---|---|---  
| ![](s.gif)|  [](vote?id=42010347&how=up&goto=item%3Fid%3D41991291) |  [almatabata](user?id=almatabata) [4 months ago](item?id=42010347) | root | parent | prev | next [[–]](javascript:void\(0\))   
I think twitter is an outlier because people hated the employees already for various reasons.For example they thought that twitter had a bloated workforce because of videos like this ([https://www.youtube.com/watch?v=buF4hB5_rFs](https://www.youtube.com/watch?v=buF4hB5_rFs)).And a lot of people heavily disagreed with how they handled moderation. You can take things like the hunter Biden laptop suppression or in the funny category you had the getting banned for saying learn to code ([https://reason.com/2019/03/11/learn-to-code-twitter-harassme...](https://reason.com/2019/03/11/learn-to-code-twitter-harassment-ross/)).Take random company without controversies and you will find less vitriol about them getting fired.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008367&how=up&goto=item%3Fid%3D41991291) |  [pjmlp](user?id=pjmlp) [4 months ago](item?id=42008367) | root | parent | prev | next [[–]](javascript:void\(0\))   
No one cares about self checkout on supermarkets impact on their employees, until their employer does something similar.  
---|---|---  
| ![](s.gif)|  [](vote?id=42030669&how=up&goto=item%3Fid%3D41991291) |  [alsetmusic](user?id=alsetmusic) [4 months ago](item?id=42030669) | root | parent | next [[–]](javascript:void\(0\))   
I care as a consumer who hates standing in long lines. My former bank branch had thirteen teller stations and two tellers. This wasn't on a bad day. This was for years.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009232&how=up&goto=item%3Fid%3D41991291) |  [whatshisface](user?id=whatshisface) [4 months ago](item?id=42009232) | root | parent | prev | next [[–]](javascript:void\(0\))   
People in Google salary brackets get jobs at Google-1 salary brackets, pushing junior people at Google-1 to Google-2, all the way down to IT departments at non-tech firms. This impacts everybody who's in the industry or capable of switching.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011287&how=up&goto=item%3Fid%3D41991291) |  [ahmedfromtunis](user?id=ahmedfromtunis) [4 months ago](item?id=42011287) | root | parent | prev | next [[–]](javascript:void\(0\))   
Why would the general public care about Google employees. Google is however a major saas provider. And people might start to worry that their employer is going to soon buy a subscription to whatever that that Google used to automate jobs.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008554&how=up&goto=item%3Fid%3D41991291) |  [wbl](user?id=wbl) [4 months ago](item?id=42008554) | root | parent | prev | next [[–]](javascript:void\(0\))   
The bank tellers didn't go away: they just became higher paid and higher skilled when cash management was no longer the job.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008646&how=up&goto=item%3Fid%3D41991291) |  [burningChrome](user?id=burningChrome) [4 months ago](item?id=42008646) | root | parent | prev | next [[–]](javascript:void\(0\))   
>> Even if that's been happening, I don't think it would be politically savvy to admit it.When I was working in RPA (robotic process automation) about 7 years ago, we were explicitly told not to say "You can reduce your team size by having use develop an automation that handles what they're doing!"Even back then we were told to talk about how RPA (and by proxy AI) empowers your team to focus on the really important things. Automation just reduces the friction to getting things done. Instead of doing 4 hours of mindless data input or moving folders from one place to the other, automation gives you back those four hours so your team can do something sufficiently more important and focus on the bigger picture stuff.Some teams loved the idea. Other leaders were skeptical and never adopted it. I spent the majority of those three years trying to selling them on this idea automation was good and very little time actually coding. Its interesting seeing the paradigm shift and seeing this stuff everywhere now.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008873&how=up&goto=item%3Fid%3D41991291) |  [aleph_minus_one](user?id=aleph_minus_one) [4 months ago](item?id=42008873) | root | parent | next [[–]](javascript:void\(0\))   
> Even back then we were told to talk about how RPA (and by proxy AI) empowers your team to focus on the really important things.As a non-politically savy person ;-) I have a feeling that this is a similarly dangerous message, since what prevents many teams to focus on really important things is often far too long meetings with managers and similar "important" stakeholders.  
---|---|---  
| ![](s.gif)|  [](vote?id=42010296&how=up&goto=item%3Fid%3D41991291) |  [ethbr1](user?id=ethbr1) [4 months ago](item?id=42010296) | root | parent | next [[–]](javascript:void\(0\))   
The reason you don't lead with headcount reduction is two-fold.1\. Almost every business has growing workload. That means reassigning good employees and not hiring new headcount, not firing existing headcount. Unipurpose, low-value offshore teams are the only ones who get cut (e.g. doing "{this} for every one of {these}" work).2\. Most operational automation is impossible to build well without deep process expertise from the SME currently performing it. If you fire that person immediately after automating their task, what do you think the next SME tells you, when you need their help?Successfully scaling operational automation programs therefore rely on additional headcount avoidance (aka improving their volume:employee ratio) and value measurement (FTE-equivalent time savings) to justify/measure.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007088&how=up&goto=item%3Fid%3D41991291) |  [lenerdenator](user?id=lenerdenator) [4 months ago](item?id=42007088) | root | parent | prev | next [[–]](javascript:void\(0\))   
> I don't think it would be politically savvy to admit it.Would it be? Do they care?Sam Altman's been talking about how GenAI could break capitalism (maybe not the exact quote, but something similar), and these companies have been pushing out GenAI products that could obviously and easily be used to fake photographic or video evidence of things that have occurred in the real world. Elon's obsessed with making an AI that's trained to be a 20-year-old male edgelord from the sewer pits of the internet.Compared to those things, "we've replaced X% of our workforce with AI" is absolutely anodyne.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008193&how=up&goto=item%3Fid%3D41991291) |  [agentultra](user?id=agentultra) [4 months ago](item?id=42008193) | root | parent | next [[–]](javascript:void\(0\))   
100%.Altman encourages anyone that will listen to him that monopolies are the only path to success in business. He has a lot riding on making sure everyone is addicted to AI and that he’s the one selling the shovels.Google isn’t far off.Most capitalists have this fantasy that they can reduce their labour expenses with AI and continue stock buy-backs and ever-increasing executive payouts.What sucks is that they rely on class divisions so that people don’t feel bad when the “overpaid” software developers get replaced. Problem is that software developers are also part of the proletariat and creating these artificial class divisions is breaking up the ability to organize.It’s not AI replacing jobs, it’s capital holders. AI is just the smoke and mirrors.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011333&how=up&goto=item%3Fid%3D41991291) |  [ahmedfromtunis](user?id=ahmedfromtunis) [4 months ago](item?id=42011333) | root | parent | prev | next [[–]](javascript:void\(0\))   
Sam's company is not a multi-trillion dollar behemoth that employs hundreds of thousands and has practical (near-)monopoly on a huge swaths of the digital economy.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006648&how=up&goto=item%3Fid%3D41991291) |  [rty32](user?id=rty32) [4 months ago](item?id=42006648) | root | parent | prev | next [[–]](javascript:void\(0\))   
> I don't think it would be politically savvy to admit it.Depends on who you ask.If Trump wins and Elon Musk actually gets a new job, they would be bragging about replacing humans with AI all day long. And corporates are going to love it.Not sure about what voters think though. But the fact that most of these companies are in California, New York etc means that it barely matters.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008613&how=up&goto=item%3Fid%3D41991291) |  [petre](user?id=petre) [4 months ago](item?id=42008613) | root | parent | next [[–]](javascript:void\(0\))   
Yup, just like full self driving and ending the war in Ukraine on 24 hours.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009652&how=up&goto=item%3Fid%3D41991291) |  [sfink](user?id=sfink) [4 months ago](item?id=42009652) | root | parent | next [[–]](javascript:void\(0\))   
I find the boast about ending the war to be reasonably likely -- if it is clear the US is switching sides in the conflict, a negotiated capitulation could happen pretty quickly.In a similar vein, solving world hunger is closer today than it's ever been. The previous best hope was global thermonuclear war, but honestly that would leave enough survivors as to be mostly ineffective, and much more likely to have the opposite result. Severe climate change has a better shot at fully eliminating [human] hunger.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008550&how=up&goto=item%3Fid%3D41991291) |  [ulfw](user?id=ulfw) [4 months ago](item?id=42008550) | root | parent | prev | next [[–]](javascript:void\(0\))   
Corporates will soon have to realise the hard reality that when masses of humans have been replaced there won't be masses of humans with salaries to buy said corporate's goods anymore.  
---|---|---  
| ![](s.gif)|  [](vote?id=42016014&how=up&goto=item%3Fid%3D41991291) |  [datavirtue](user?id=datavirtue) [4 months ago](item?id=42016014) | root | parent | next [[–]](javascript:void\(0\))   
AI is socialism, and it's unstoppable. People are trying to stop progress and go back to the old days. Nothing about the universe permits this.A new economy is forming and there is nothing that can stop it without causing major, unintended fallout.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009648&how=up&goto=item%3Fid%3D41991291) |  [burningChrome](user?id=burningChrome) [4 months ago](item?id=42009648) | root | parent | prev | next [[–]](javascript:void\(0\))   
>> they would be bragging about replacing humans with AI all day long.Has either bragged about this at all?The only thing I've heard floated is Musk running a "government efficiency commission" which I just assumed meant he would be looking for ways to gut a lot of the never ending, never dying government programs. I've never heard him saying the commissions goal was to replace people with AI.[https://www.newsnationnow.com/politics/2024-election/trump-m...](https://www.newsnationnow.com/politics/2024-election/trump-musk-government-efficiency/)_The former president said such an audit would be to combat waste and fraud and suggested it could save trillions for the economy.__As the first order of business, Trump said that this commission will develop an action plan to eliminate fraud and improper payments within six months._  
---|---|---  
| ![](s.gif)|  [](vote?id=42015998&how=up&goto=item%3Fid%3D41991291) |  [datavirtue](user?id=datavirtue) [4 months ago](item?id=42015998) | root | parent | next [[–]](javascript:void\(0\))   
Trump and Musk will get bored quickly if elected. Once in office your power is checked.  
---|---|---  
| ![](s.gif)|  ![](s.gif) |  [tjahg](user?id=tjahg) [4 months ago](item?id=42006961) | root | parent | prev | next [[4 more]](javascript:void\(0\))   
[flagged]   
---|---|---  
| ![](s.gif)|  [](vote?id=42007116&how=up&goto=item%3Fid%3D41991291) |  [lenerdenator](user?id=lenerdenator) [4 months ago](item?id=42007116) | root | parent | next [[–]](javascript:void\(0\))   
That would be the way someone with no real awareness of the philosophies and realities of the two parties in the US would see it. And to be fair, that's a good description of a large chunk of the American electorate.But you can't have a guy who literally used to relieve himself into a golden toilet take over your party and be anything but the party of big business and billionaires.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007782&how=up&goto=item%3Fid%3D41991291) |  [Thorrez](user?id=Thorrez) [4 months ago](item?id=42007782) | root | parent | next [[–]](javascript:void\(0\))   
>Despite widespread rumors, there is no verified evidence that Trump actually owns a gold toilet.[https://royaltoiletry.com/does-trump-have-a-gold-toilet-unpa...](https://royaltoiletry.com/does-trump-have-a-gold-toilet-unpacking-the-myths-and-realities/)  
---|---|---  
| ![](s.gif)|  [](vote?id=42008792&how=up&goto=item%3Fid%3D41991291) |  [lenerdenator](user?id=lenerdenator) [4 months ago](item?id=42008792) | root | parent | next [[–]](javascript:void\(0\))   
Fair enough.Still a guy who operated multiple luxury hotel and golf course properties that would laugh a working man out the front door if he asked for an affordable room.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004899&how=up&goto=item%3Fid%3D41991291) |  [onion2k](user?id=onion2k) [4 months ago](item?id=42004899) | root | parent | prev | next [[–]](javascript:void\(0\))   
_no one is stating "we've replaced X% of our workforce with AI"_That's only worth doing if you're trying to cut costs though. If the company has unmet ambitions there's no reason to shrink the headcount from 10 to 8 and have the same amount of output when you can keep 10 people and have the output of 12 by leveraging AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005190&how=up&goto=item%3Fid%3D41991291) |  [hyperpape](user?id=hyperpape) [4 months ago](item?id=42005190) | root | parent | next [[–]](javascript:void\(0\))   
Almost all the big tech companies have had layoffs over the past several years. I think it’s safe to say cost cutting is very much part of their goal.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005835&how=up&goto=item%3Fid%3D41991291) |  [lupire](user?id=lupire) [4 months ago](item?id=42005835) | root | parent | next [[–]](javascript:void\(0\))   
But the specific roles being laid off are arbitrary, and the overall goal headcount reduction is driven by macroeconomics factors (I'm being generous there), not based on new efficiencies.Note the difft between "cost cutting" (do less, to lower cost) and "efficiency" (do same, but with less cost)  
---|---|---  
| ![](s.gif)|  [](vote?id=42008748&how=up&goto=item%3Fid%3D41991291) |  [theptip](user?id=theptip) [4 months ago](item?id=42008748) | root | parent | prev | next [[–]](javascript:void\(0\))   
The goal of these cost cutting initiatives is not an absolute reduction in cost, but a relative one. They needed to show an improvement in operating margin, ie % of revenue spent on engineers.If your engineers become 20% more efficient then your margins are better and your problem is solved. (Indeed if you have tech that can make any engineer 20% more efficient then you are back in the game of hiring as many as you can find, as long as each added engineer brings in enough additional revenue.)  
---|---|---  
| ![](s.gif)|  [](vote?id=42005966&how=up&goto=item%3Fid%3D41991291) |  [ktnaWA](user?id=ktnaWA) [4 months ago](item?id=42005966) | root | parent | prev | next [[–]](javascript:void\(0\))   
Thanks, that is how I read the announcement. The powers that be decided that there must be some quota to be fulfilled, and magically that quota was fulfilled.AI engineers will not yet get a Nobel prize for putting everyone out of work.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007010&how=up&goto=item%3Fid%3D41991291) |  [pj_mukh](user?id=pj_mukh) [4 months ago](item?id=42007010) | root | parent | prev | next [[–]](javascript:void\(0\))   
"we've replaced X% of our workforce with AI"Most likely what is actually happening is that the X% of workforce you would lay off is being put to other projects and Google in general can take on X% more projects for the same labor $$. So there is no real reason to make that particular "replaced" statement.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009879&how=up&goto=item%3Fid%3D41991291) |  [Sparkyte](user?id=Sparkyte) [4 months ago](item?id=42009879) | root | parent | prev | next [[–]](javascript:void\(0\))   
Google has to sell its AI some how. The problem is that businesses will see this and want to fire head count because they go, "Well I guess AI can do it for freeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee!". Nope no way is it writing code freely.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008517&how=up&goto=item%3Fid%3D41991291) |  [wcoenen](user?id=wcoenen) [4 months ago](item?id=42008517) | root | parent | prev | next [[–]](javascript:void\(0\))   
> _including things like fully automated CL /PR's which have been around for a decade_I haven't seen this yet so I'm intrigued. Is this a commercial product, or internal tooling?  
---|---|---  
| ![](s.gif)|  [](vote?id=42008924&how=up&goto=item%3Fid%3D41991291) |  [OkGoDoIt](user?id=OkGoDoIt) [4 months ago](item?id=42008924) | root | parent | next [[–]](javascript:void\(0\))   
I’m assuming this refers to things analogous to dependabot on GitHub where maybe it automatically updates a library version reference and runs the tests and creates a PR if everything seems good, or similarly for fixing style issues or other stuff that is pretty trivial and has good test coverage.When you maintain an open source project on GitHub you will occasionally get some open source automated bot that submits a PR to do things like this without you even asking, and I’m sure there’s plenty more you can sign up for or implement yourself.I wouldn’t really call it AI, but it is automated. I agree with the parent comment that a journalist trying to push an angle would probably lump it in as AI in order to make the number seem larger.  
---|---|---  
| ![](s.gif)|  [](vote?id=42028639&how=up&goto=item%3Fid%3D41991291) |  [NotAnOtter](user?id=NotAnOtter) [4 months ago](item?id=42028639) | root | parent | prev | next [[–]](javascript:void\(0\))   
It's common at most mega-corps like google. For example, if a utility function in an internal library was deprecated and replaced with a different function that has the same functionality. A team might write a script which generates hundreds/thousands of PR's to make the migration to the new function.You don't want a single PR that does that, because that would affect thousands of projects, and if something goes wrong with a single one, the whole PR needs to be rolled back.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004808&how=up&goto=item%3Fid%3D41991291) |  [nlehuen](user?id=nlehuen) [4 months ago](item?id=42004808) | parent | prev | next [[–]](javascript:void\(0\))   
I also work at Google and I agree with the general sentiment that AI completion is not doing engineering per se, simply because writing code is just a small part of engineering.However in my experience the system is much more powerful than you described. Maybe this is because I'm mostly writing C++ for which there is a much bigger training corpus than JavaScript.One thing the system is already pretty good at is writing entire short functions from a comment. The trick is not to write:
    
    
      function getAc...
    

But instead:
    
    
      // This function smargls the bleurgh
      // by flooming the trux.
      function getAc...
    

This way the completion goes much farther and the quality improves a lot. Essentially, use comments as the prompt to generate large chunks of code, instead of giving minimum context to the system, which limits it to single line completion.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005456&how=up&goto=item%3Fid%3D41991291) |  [Aachen](user?id=Aachen) [4 months ago](item?id=42005456) | root | parent | next [[–]](javascript:void\(0\))   
This type of not having to think about the implementation, especially in a language that we've by now well-established can't be written safely by humans (including by Google's own research into Android vulnerabilities if I'm not mistaken), at least with the current level of LLM, worries me the mostTime will tell whether it outputs worse, equal, or better quality than skilled humans, but I'd be very wary of anything it suggests beyond obvious boilerplate (like all the symbols needed in a for loop) or naming things (function name and comment autocompletes like the person above you described)  
---|---|---  
| ![](s.gif)|  [](vote?id=42007507&how=up&goto=item%3Fid%3D41991291) |  [munksbeer](user?id=munksbeer) [4 months ago](item?id=42007507) | root | parent | next [[–]](javascript:void\(0\))   
> worries me the mostIt isn't something I worry about at all. If it doesn't work and starts creating bugs and horrible code, the best places will adjust to that and it won't be used or will be used more judiciously.I'll still review code like I always do and prevent bad code from making it into our repo. I don't see why it's my problem to worry about. Why is it yours?  
---|---|---  
| ![](s.gif)|  [](vote?id=42008095&how=up&goto=item%3Fid%3D41991291) |  [Aachen](user?id=Aachen) [4 months ago](item?id=42008095) | root | parent | next [[–]](javascript:void\(0\))   
Because I do security auditsFunctional bugs in edge cases are annoying enough, and I seem to run into these regularly as a user, but there's yet another class of people creating edge cases for their own purposes. The nonchalant "if it doesn't work"... I don't know whether that confirms my suspicion that not all developers are aware of (as a first step; let alone control for) the risks  
---|---|---  
| ![](s.gif)|  [](vote?id=42008523&how=up&goto=item%3Fid%3D41991291) |  [twoWhlsGud](user?id=twoWhlsGud) [4 months ago](item?id=42008523) | root | parent | next [[–]](javascript:void\(0\))   
And especially if it generates bugs in ways different from humans - human review might be less effective at catching it...  
---|---|---  
| ![](s.gif)|  [](vote?id=42027266&how=up&goto=item%3Fid%3D41991291) |  [xp84](user?id=xp84) [4 months ago](item?id=42027266) | root | parent | next [[–]](javascript:void\(0\))   
It generates bugs in pretty similar ways. It’s based on human-written code, after all.Edge cases will usually be the ones to get through. Most developers don’t correctly write tests that exercise the limits of each input (or indeed have time to both unit test every function that way, and integration test to be sure the bigger stories are correctly working). Nothing about ai assist changes any of this.(If anybody starts doing significant fully unsupervised “ai” coding they would likely pay the price in extreme instability so I’m assuming here that humans still basically read/skim PRs the same as they always have)  
---|---|---  
| ![](s.gif)|  [](vote?id=42008299&how=up&goto=item%3Fid%3D41991291) |  [mbfg](user?id=mbfg) [4 months ago](item?id=42008299) | root | parent | prev | next [[–]](javascript:void\(0\))   
Except that no one trusts Barney down the hall that has stack overflow open 24/7\. People naturally trust AI implicitly.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007801&how=up&goto=item%3Fid%3D41991291) |  [caeril](user?id=caeril) [4 months ago](item?id=42007801) | root | parent | prev | next [[–]](javascript:void\(0\))   
It's worrying, yes, but we've had stackoverflow copy-paste coding for over a decade now already, which has exactly the same effects.This isn't a new concern. Thoughtless software development started a long time ago.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008178&how=up&goto=item%3Fid%3D41991291) |  [Aachen](user?id=Aachen) [4 months ago](item?id=42008178) | root | parent | next [[–]](javascript:void\(0\))   
As a security consultant, I think I'm aware of security risks all the time, also when I'm developing code just as a hobby in spare time. I can't say that I've come across a lot of stackoverflow code that was unsafe. It happened (like unsafe SVG file upload handling advice) and I know of analyses that find it in spades, but I personally correct the few that I see (got enough stackoverflow rep to downvote, comment, or even edit without the user's approval though I'm not sure I've ever needed that) and the ones found in studies may be in less-popular answers that people don't come across as often because we should be seeing more of them otherwise, both personally and in the customer's codeSo that's not to say there is nothing to be concerned about on stackoverflow, just that the risk seems manageable and understood. You also nearly always have to fit it to your own situation anyway. With the custom solutions from generative models, this is all not yet established and you're not having to customise (look at) it further if it made a plausible-looking suggestionPerhaps this way of coding ends up introducing fewer bugs. Time will tell, but we all know how many wrong answers these things generate in text as well as what they were trained on, giving grounds for worry—while also gathering experience, of course. I'm not saying to not use it at all. It's a balance and something to be aware ofI also can't say that I find it to be thoughtless when I look for answers on stackoverflow. Perhaps as a beginning coder, you might copy bigger bits? Or without knowing what it does? That's not my current experience, though  
---|---|---  
| ![](s.gif)|  [](vote?id=42005294&how=up&goto=item%3Fid%3D41991291) |  [miki123211](user?id=miki123211) [4 months ago](item?id=42005294) | root | parent | prev | next [[–]](javascript:void\(0\))   
This is a good idea even outside of Google, with tools like copilot and such.Often when I don't know exactly what function / sequence of functions I need to achieve a particular outcome, I put in a comment describing what I want to do, and Copilot does the rest. I then remove the comment once I make sure that the generated code actually works.I find it a lot less flow-breaking than stackoverflow or even asking an LLM.It doesn't work all of the time, and sometimes you do have to Google still, but for the cases it does work for, it's pretty nice.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005426&how=up&goto=item%3Fid%3D41991291) |  [Aachen](user?id=Aachen) [4 months ago](item?id=42005426) | root | parent | next [[–]](javascript:void\(0\))   
Why remove the comment that summarises the intent for humans? The compiler will ignore your comment anyway, so it's only there for the next human who comes along and will help them understand the code  
---|---|---  
| ![](s.gif)|  [](vote?id=42020730&how=up&goto=item%3Fid%3D41991291) |  [miki123211](user?id=miki123211) [4 months ago](item?id=42020730) | root | parent | next [[–]](javascript:void\(0\))   
Because the code, when written, is usually obvious enough.Something like:
    
    
      query = query.orderBy(field: "username", Ordering.DESC)
    

Doesn't need an explanation, but when working in a language I don't know well, I might not remember whether I'm supposed to call orderBy on the query or on the ORM module and pass query as the argument, whether the kwarg is called "field" or "column", whether it wants a string or something like `User.name` as the column expression, how to specify the ordering and so on.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006489&how=up&goto=item%3Fid%3D41991291) |  [randomdata](user?id=randomdata) [4 months ago](item?id=42006489) | root | parent | prev | next [[–]](javascript:void\(0\))   
Like he says, the "comment" describes _what he wants to do_. That's not what humans are interested in. The human already knows "what he wants to do" when they read the code. It's the things like "why did he want to do this in the first place?" that is lacking in the code, and what information is available to add in a comment for the sake of humans.Remember, LLMs are just compilers for programming languages that just so happen to have a lot of similarities with natural language. The code is not the comment. You still need to comment your code for humans.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007277&how=up&goto=item%3Fid%3D41991291) |  [JohnFen](user?id=JohnFen) [4 months ago](item?id=42007277) | root | parent | next [[–]](javascript:void\(0\))   
> Like he says, the "comment" describes what he wants to do. That's not what humans are interested in.When I'm maintaining other people's code, or my own after enough time has gone by, I'm very interested in that sort of comment. It gives me a chance to see if the code as written does what the comment says it was intended to do. It's not valuable for most of the code in a project, but is incredibly valuable for certain key parts.You're right that comments about why things were done the way they were are the most valuable ones, but this kind of comment is in second place in my book.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008696&how=up&goto=item%3Fid%3D41991291) |  [mithametacs](user?id=mithametacs) [4 months ago](item?id=42008696) | root | parent | next [[–]](javascript:void\(0\))   
Or for something that needs like a quick mathematical lemma or a worked example. A comment on what is fantastic.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005630&how=up&goto=item%3Fid%3D41991291) |  [qwertox](user?id=qwertox) [4 months ago](item?id=42005630) | root | parent | prev | next [[–]](javascript:void\(0\))   
It's often unnecessarily verbose. If you read a comment and glance at the code that follows, you'll understand what it is supposed to do. But the comment you're giving as an instruction to an LLM usually contains information which will then be duplicated in the generated code.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005741&how=up&goto=item%3Fid%3D41991291) |  [Aachen](user?id=Aachen) [4 months ago](item?id=42005741) | root | parent | next [[–]](javascript:void\(0\))   
I see. Might still be good to have a verbose comment than no comment at all, as well as a marker of "this was generated" so (by the age of the code) you have some idea of what quality the LLM was in that year and whether to proofread it once more or not  
---|---|---  
| ![](s.gif)|  [](vote?id=42005882&how=up&goto=item%3Fid%3D41991291) |  [lupire](user?id=lupire) [4 months ago](item?id=42005882) | root | parent | next [[–]](javascript:void\(0\))   
External comments are API usage comments. LLM prompts are also implementation proposal.Implementation comments belong inside the implementation, so they should be over if not deleted.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005531&how=up&goto=item%3Fid%3D41991291) |  [cryptonym](user?id=cryptonym) [4 months ago](item?id=42005531) | root | parent | prev | next [[–]](javascript:void\(0\))   
Next human will put the code in a prompt and ask what it does. Chinese Whispers.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005723&how=up&goto=item%3Fid%3D41991291) |  [Aachen](user?id=Aachen) [4 months ago](item?id=42005723) | root | parent | next [[–]](javascript:void\(0\))   
I tried making a meme some months ago with exactly this idea, but for emails. One person would tell an LLM "answer that I'm fine with either option" and sends a 5 KB email, in response to which the recipient receives it and gets the automatic summary function to tell them (in a good case) "they're happy either way" or (in a bad case) "they don't give a damn". It didn't really work, too complex for meme format as far as my abilities went, but yeah the _bad translator_ effect is something I'm very much expecting from people who use an LLM without disclosing it  
---|---|---  
| ![](s.gif)|  [](vote?id=42006278&how=up&goto=item%3Fid%3D41991291) |  [_heimdall](user?id=_heimdall) [4 months ago](item?id=42006278) | root | parent | next [[–]](javascript:void\(0\))   
If someone is going to use an LLM to send me an email, I'd much rather them just send me the prompt directly. For the LLM message to be useful the prompt would have included all the context and details anyway, I don't need an LLM to make it longer and sound more "professional" or polite.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007422&how=up&goto=item%3Fid%3D41991291) |  [Aachen](user?id=Aachen) [4 months ago](item?id=42007422) | root | parent | next [[–]](javascript:void\(0\))   
That is actually exactly my unstated point / the awareness I was hoping to achieve by trying to make that meme :D  
---|---|---  
| ![](s.gif)|  [](vote?id=42008732&how=up&goto=item%3Fid%3D41991291) |  [mithametacs](user?id=mithametacs) [4 months ago](item?id=42008732) | root | parent | prev | next [[–]](javascript:void\(0\))   
Not necessarily. Your prompt could include instructions to gather information from your emails and address book to tell your friend about all the relevant contacts you know in the shoe industry.  
---|---|---  
| ![](s.gif)|  [](vote?id=42013263&how=up&goto=item%3Fid%3D41991291) |  [_heimdall](user?id=_heimdall) [4 months ago](item?id=42013263) | root | parent | next [[–]](javascript:void\(0\))   
Well that sounds reasonable enough. My only request is that you send me the prompt and let me decide if I want to comply...informed consent!  
---|---|---  
| ![](s.gif)|  [](vote?id=42056517&how=up&goto=item%3Fid%3D41991291) |  [alexxys](user?id=alexxys) [4 months ago](item?id=42056517) | root | parent | prev | next [[–]](javascript:void\(0\))   
This meme already exists ;) [https://www.reddit.com/r/ChatGPT/comments/128nwi2/bullet_poi...](https://www.reddit.com/r/ChatGPT/comments/128nwi2/bullet_point/)  
---|---|---  
| ![](s.gif)|  [](vote?id=42006754&how=up&goto=item%3Fid%3D41991291) |  [rty32](user?id=rty32) [4 months ago](item?id=42006754) | root | parent | prev | next [[–]](javascript:void\(0\))   
Wow, I love good, original programming jokes like these, even the ideas of the jokes. I used to browse r/ProgrammerHumor frequently, but it is too repetitive -- mostly recycled memes and there is anything new.This is one that I really liked: [https://www.reddit.com/r/ProgrammerHumor/comments/l5gg3t/thi...](https://www.reddit.com/r/ProgrammerHumor/comments/l5gg3t/this_website_doesnt_use_cookies/)  
---|---|---  
| ![](s.gif)|  [](vote?id=42005867&how=up&goto=item%3Fid%3D41991291) |  [lupire](user?id=lupire) [4 months ago](item?id=42005867) | root | parent | prev | next [[–]](javascript:void\(0\))   
(No need to Orientalize to defamiarize, especially when a huge fraction of the audience is Chinese, so Orientalizing doesn't defamiliarize. Game of Whispers or Telephone works fine.)  
---|---|---  
| ![](s.gif)|  [](vote?id=42006549&how=up&goto=item%3Fid%3D41991291) |  [protomolecule](user?id=protomolecule) [4 months ago](item?id=42006549) | root | parent | next [[–]](javascript:void\(0\))   
Do the Chinese call it English Whispers?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007887&how=up&goto=item%3Fid%3D41991291) |  [tessierashpool](user?id=tessierashpool) [4 months ago](item?id=42007887) | root | parent | next [[–]](javascript:void\(0\))   
Chinese-Americans, at least, call it a game of Telephone, like everyone else in the English-speaking world except for the actual English.We call it “Telephone” because “Chinese Whispers” not only sounds racist, it is also super confusing. You need a lot of cultural context to understand the particular way in which Chinese whispers would be different from any other set of whispers.  
---|---|---  
| ![](s.gif)|  [](vote?id=42128792&how=up&goto=item%3Fid%3D41991291) |  [tessierashpool](user?id=tessierashpool) [4 months ago](item?id=42128792) | root | parent | next [[–]](javascript:void\(0\))   
I happened to re-read this, and to be clear, I'm not Chinese-American. the "we" there means "everyone else in the English-speaking world except for the actual English."  
---|---|---  
| ![](s.gif)|  [](vote?id=42007078&how=up&goto=item%3Fid%3D41991291) |  [ahoka](user?id=ahoka) [4 months ago](item?id=42007078) | root | parent | prev | next [[–]](javascript:void\(0\))   
It’s all Greek to them.  
---|---|---  
| ![](s.gif)|  [](vote?id=42039642&how=up&goto=item%3Fid%3D41991291) |  [cryptonym](user?id=cryptonym) [4 months ago](item?id=42039642) | root | parent | prev | next [[–]](javascript:void\(0\))   
Pardon my French.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005641&how=up&goto=item%3Fid%3D41991291) |  [jappgar](user?id=jappgar) [4 months ago](item?id=42005641) | root | parent | prev | next [[–]](javascript:void\(0\))   
I can guarantee you there is more publicly accessible javascript in the world than C++.Copilot will autocomplete entire functions as well, sometimes without comments or even after just typing "f". It uses your previous edits as context and can assume what you're implementing pretty well.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005958&how=up&goto=item%3Fid%3D41991291) |  [infecto](user?id=infecto) [4 months ago](item?id=42005958) | root | parent | next [[–]](javascript:void\(0\))   
I can guarantee you that the author was referencing code within Google. That is, their tooling is trained off internal code bases. I am imagining c++ dwarfs javascript.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005848&how=up&goto=item%3Fid%3D41991291) |  [lupire](user?id=lupire) [4 months ago](item?id=42005848) | root | parent | prev | next [[–]](javascript:void\(0\))   
Google does not write much publicly available JavaScript. They wrote their own special flavor. (Same for any hugel legacy operation)  
---|---|---  
| ![](s.gif)|  [](vote?id=42006010&how=up&goto=item%3Fid%3D41991291) |  [bilekas](user?id=bilekas) [4 months ago](item?id=42006010) | root | parent | next [[–]](javascript:void\(0\))   
Can we get some more info on what you're reffering to ?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007547&how=up&goto=item%3Fid%3D41991291) |  [jkaptur](user?id=jkaptur) [4 months ago](item?id=42007547) | root | parent | next [[–]](javascript:void\(0\))   
They're probably talking about Closure Compiler type annotations [0], which never really took off outside Google, but (imo) were pretty great in the days before TypeScript. (Disclosure: Googler)0\. [https://github.com/google/closure-compiler/wiki/Annotating-J...](https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler)  
---|---|---  
| ![](s.gif)|  [](vote?id=42005568&how=up&goto=item%3Fid%3D41991291) |  [cryptonym](user?id=cryptonym) [4 months ago](item?id=42005568) | root | parent | prev | next [[–]](javascript:void\(0\))   
I find writing code to be almost relaxing plus that's really a tiny fraction of dev work. Not too excited about potential productivity gains based purely on authoring snippets. I find it much more interesting on boosting maintainability, robustness and other quality metrics (not focusing on quality of AI output, actual quality of the code base).  
---|---|---  
| ![](s.gif)|  [](vote?id=42027159&how=up&goto=item%3Fid%3D41991291) |  [xp84](user?id=xp84) [4 months ago](item?id=42027159) | root | parent | prev | next [[–]](javascript:void\(0\))   
I frequently use copilot and also find that writing comments like you do, to describe what I expect each function/class/etc to do gives superb results, and usually eliminates most of the actual coding work. Obviously it adds significant specification work but that’s not usually a bad thing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005670&how=up&goto=item%3Fid%3D41991291) |  [michaelbuckbee](user?id=michaelbuckbee) [4 months ago](item?id=42005670) | root | parent | prev | next [[–]](javascript:void\(0\))   
I don't work at Google, but I do something similar with my code: write comments, generate the code, and then have the AI tooling create test cases.AI coding assistants are generally really good at ramping up a base level of tests which you can then direct to add more specific scenario's to.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007038&how=up&goto=item%3Fid%3D41991291) |  [tomhallett](user?id=tomhallett) [4 months ago](item?id=42007038) | root | parent | prev | next [[–]](javascript:void\(0\))   
Has anyone made a coding assistant which can do this based off audio which I’m saying out loud while I’m typing (interview/pairing style), so instead of typing the comment I can just say it?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007768&how=up&goto=item%3Fid%3D41991291) |  [hecanjog](user?id=hecanjog) [4 months ago](item?id=42007768) | root | parent | next [[–]](javascript:void\(0\))   
I had some success using this for basic input, but never took it very far. It's meant to be customizable for that sort of thing though: [https://talon.wiki/quickstart/getting_started/](https://talon.wiki/quickstart/getting_started/) (Edit: just the voice input part)  
---|---|---  
| ![](s.gif)|  [](vote?id=42005623&how=up&goto=item%3Fid%3D41991291) |  [alickz](user?id=alickz) [4 months ago](item?id=42005623) | root | parent | prev | next [[–]](javascript:void\(0\))   
Comment Driven Programming might be interesting, as an offshoot of Documentation Driven Programming  
---|---|---  
| ![](s.gif)|  [](vote?id=42005841&how=up&goto=item%3Fid%3D41991291) |  [gniv](user?id=gniv) [4 months ago](item?id=42005841) | root | parent | prev | next [[–]](javascript:void\(0\))   
That's pretty nice. Does it write modern C++, as I guess it's expected?  
---|---|---  
| ![](s.gif)|  [](vote?id=42018414&how=up&goto=item%3Fid%3D41991291) |  [nlehuen](user?id=nlehuen) [4 months ago](item?id=42018414) | root | parent | next [[–]](javascript:void\(0\))   
Yes it does. Internally Google uses C++20 ([https://google.github.io/styleguide/cppguide.html#C++_Versio...](https://google.github.io/styleguide/cppguide.html#C++_Version)) and the model picks the style from training, I suppose.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003639&how=up&goto=item%3Fid%3D41991291) |  [atoav](user?id=atoav) [4 months ago](item?id=42003639) | parent | prev | next [[–]](javascript:void\(0\))   
So this is basically the google CEO saying "a quarter of our terminal inputs is written by a glorified tab completion"?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003911&how=up&goto=item%3Fid%3D41991291) |  [asdfman123](user?id=asdfman123) [4 months ago](item?id=42003911) | root | parent | next [[–]](javascript:void\(0\))   
Yes. Most AI hype is this bad. They have to justify the valuations.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004322&how=up&goto=item%3Fid%3D41991291) |  [remus](user?id=remus) [4 months ago](item?id=42004322) | root | parent | next [[–]](javascript:void\(0\))   
"tab completion good enough to write 25% of code" feels like a pretty good hit rate to me! Especially when you consider that a good chink of the other 75% is going to be the complex, detailed stuff where you probably want someone thinking about it fairly carefully.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004596&how=up&goto=item%3Fid%3D41991291) |  [rantallion](user?id=rantallion) [4 months ago](item?id=42004596) | root | parent | next [[–]](javascript:void\(0\))   
The problem being that the time spent fixing the bugs in that 25% outweighs the time saved. Now that tools like Copilot are being widely used, studies are showing that they do not in fact boost productivity. All claims to the contrary seem to be either anecdotal or marketing fluff.[https://www.techspot.com/news/104945-ai-coding-assistants-do...](https://www.techspot.com/news/104945-ai-coding-assistants-do-not-boost-productivity-or.html)  
---|---|---  
| ![](s.gif)|  [](vote?id=42005430&how=up&goto=item%3Fid%3D41991291) |  [pawelmurias](user?id=pawelmurias) [4 months ago](item?id=42005430) | root | parent | next [[–]](javascript:void\(0\))   
The AI tap complition is >100000% better than the coding assistants, it just saves you typing and doesn't introduce new bugs you need to fix instead of writting buggy shitty code from a text description.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005771&how=up&goto=item%3Fid%3D41991291) |  [red_admiral](user?id=red_admiral) [4 months ago](item?id=42005771) | root | parent | prev | next [[–]](javascript:void\(0\))   
As far as I know, LLMs are a genuine boost for junior developers, but still not close to what senior/principal engineers get up to.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006676&how=up&goto=item%3Fid%3D41991291) |  [makestuff](user?id=makestuff) [4 months ago](item?id=42006676) | root | parent | next [[–]](javascript:void\(0\))   
I have around 7 YOE, and I have found LLMs useful for very specific questions about syntax whenever I am working in a new language. For example, I needed to write some typescript recently and asked it how can I make a type that does X.It is not as good with questions about API documentation for popular java libraries though and it will just hallucinate APIs/method names.If I ask it a generic question like "how can I create a class in Java to invoke this API and store the data in this database" it is pretty useless. I'm sure I could spend more time giving it a better prompt but at that point I can just write the code myself.Overall they are a better search engine for stackoverflow, but the LLMs are not really helping me code 30% faster or whatever the latest claim is.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006334&how=up&goto=item%3Fid%3D41991291) |  [_heimdall](user?id=_heimdall) [4 months ago](item?id=42006334) | root | parent | prev | next [[–]](javascript:void\(0\))   
It'd be interesting to know how much of Google's code is written by junior engineers. I can't imagine 25% of the code is from juniors, at which point Google's CEO is either exaggerating what he considers LLM-generated code or more than just juniors are using it.I agree with your take though, it does seem helpful to juniors but not beyond that (yet), and this OP stat seems dubious unless juniors are doing a big portion of the work.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005762&how=up&goto=item%3Fid%3D41991291) |  [red_admiral](user?id=red_admiral) [4 months ago](item?id=42005762) | root | parent | prev | next [[–]](javascript:void\(0\))   
"rm re[TAB]" to remove a file called something like "report-accounting-Q1_2024.docx" is really helpful, especially when it adds quotes as required, but not exciting enough to get me out of bed any earlier in the morning.I feel it's a bit like the old "measuring developer productivity in LoC" metric.As I hinted at in another comment, in Java if you had a "private String name;" then the following:
    
    
        /**
         * Returns the name.
         * @return The name.
         */
        public String getName() {
            return this.name;
        }
    

and the matching setter, are easy enough to generate automatically and you don't need a LLM for it. If AI can do that part of coding a bit better, sure it's helpful in a way, but I'm not worried about my job just yet (or rather, I'm more worried about the state of the economy and other factors).  
---|---|---  
| ![](s.gif)|  [](vote?id=42004332&how=up&goto=item%3Fid%3D41991291) |  [Maxion](user?id=Maxion) [4 months ago](item?id=42004332) | root | parent | prev | next [[–]](javascript:void\(0\))   
For me it's really goddam satisfying having good autocomplete, especially when you are just writing boilerplate lines of code to get the code into a state where you actually get to work on the fun stuff (ther harder problems).  
---|---|---  
| ![](s.gif)|  [](vote?id=42004396&how=up&goto=item%3Fid%3D41991291) |  [amelius](user?id=amelius) [4 months ago](item?id=42004396) | root | parent | next [[–]](javascript:void\(0\))   
Also if your code gets sent to someone else's cloud?  
---|---|---  
| ![](s.gif)|  [](vote?id=42006009&how=up&goto=item%3Fid%3D41991291) |  [infecto](user?id=infecto) [4 months ago](item?id=42006009) | root | parent | next [[–]](javascript:void\(0\))   
I don't care. The vast majority of code written in the private space is garbage and not unique. Products are usually not won because of the code.Would I send the source of a trading algo or chatgpt to a third party, probably not but those are the outliers. The code for your xyz SAAS does not matter.I am probably an outlier in that I don't really care what corpus a LLM trains off of. Its its available in the public space, go for it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004527&how=up&goto=item%3Fid%3D41991291) |  [mewpmewp2](user?id=mewpmewp2) [4 months ago](item?id=42004527) | root | parent | prev | next [[–]](javascript:void\(0\))   
Have you ever had your code repository hosted by Github, Bitbucket, Gitlab or similar?If so, all your code is sent to cloud.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005709&how=up&goto=item%3Fid%3D41991291) |  [amelius](user?id=amelius) [4 months ago](item?id=42005709) | root | parent | next [[–]](javascript:void\(0\))   
Answer: yes, some code. But other code I and my company like to keep private.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005824&how=up&goto=item%3Fid%3D41991291) |  [mewpmewp2](user?id=mewpmewp2) [4 months ago](item?id=42005824) | root | parent | next [[–]](javascript:void\(0\))   
Where exactly is the repo hosted if there is one?  
---|---|---  
| ![](s.gif)|  [](vote?id=42006627&how=up&goto=item%3Fid%3D41991291) |  [cesarb](user?id=cesarb) [4 months ago](item?id=42006627) | root | parent | next [[–]](javascript:void\(0\))   
It's common for companies to have something like self-hosted GitHub Enterprise or self-hosted GitLab hidden behind the company's VPN.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007523&how=up&goto=item%3Fid%3D41991291) |  [mewpmewp2](user?id=mewpmewp2) [4 months ago](item?id=42007523) | root | parent | next [[–]](javascript:void\(0\))   
But where is the box where it's hosted? Is it in-house?  
---|---|---  
| ![](s.gif)|  [](vote?id=42006362&how=up&goto=item%3Fid%3D41991291) |  [_heimdall](user?id=_heimdall) [4 months ago](item?id=42006362) | root | parent | prev | next [[–]](javascript:void\(0\))   
There are alternatives out there for self-hosted git. I have a Gitea instance running on a mini PC at home for my own projects.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007539&how=up&goto=item%3Fid%3D41991291) |  [mewpmewp2](user?id=mewpmewp2) [4 months ago](item?id=42007539) | root | parent | next [[–]](javascript:void\(0\))   
Do you have backups of that as well? If something were to happen to your mini pc would you lose your code?  
---|---|---  
| ![](s.gif)|  [](vote?id=42009902&how=up&goto=item%3Fid%3D41991291) |  [_heimdall](user?id=_heimdall) [4 months ago](item?id=42009902) | root | parent | next [[–]](javascript:void\(0\))   
Great question, yeah I do. Right now it backs up to a separate NAS on my home network. Every once in a while I'll copy the most important directories onto a microSD card backup, but its usually going to be at least a few weeks out of date.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006476&how=up&goto=item%3Fid%3D41991291) |  [amelius](user?id=amelius) [4 months ago](item?id=42006476) | root | parent | prev | next [[–]](javascript:void\(0\))   
Own servers.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007529&how=up&goto=item%3Fid%3D41991291) |  [mewpmewp2](user?id=mewpmewp2) [4 months ago](item?id=42007529) | root | parent | next [[–]](javascript:void\(0\))   
Do they manage their own servers? I wonder what proportion of companies would have in house servers managed by themselves.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008804&how=up&goto=item%3Fid%3D41991291) |  [amelius](user?id=amelius) [4 months ago](item?id=42008804) | root | parent | next [[–]](javascript:void\(0\))   
They are colocated in a data center and you need physical keys to access the rack.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005792&how=up&goto=item%3Fid%3D41991291) |  [red_admiral](user?id=red_admiral) [4 months ago](item?id=42005792) | root | parent | prev | next [[–]](javascript:void\(0\))   
Internally hosted gitlab instances are a thing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005819&how=up&goto=item%3Fid%3D41991291) |  [mewpmewp2](user?id=mewpmewp2) [4 months ago](item?id=42005819) | root | parent | next [[–]](javascript:void\(0\))   
They are, but frequently the boxes where they are hosted are in AWS or similar. Or do frequently companies have actual in house servers for this purpose?  
---|---|---  
| ![](s.gif)|  [](vote?id=42008391&how=up&goto=item%3Fid%3D41991291) |  [red_admiral](user?id=red_admiral) [4 months ago](item?id=42008391) | root | parent | next [[–]](javascript:void\(0\))   
Not in house, but in a "segmented" part of the cloud that comes with service level agreements and access control and restrictions on which countries the data can be hosted in and compliance procedures etc. etc.An extreme example of this would be the AWS GovCloud for government/military applications.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005348&how=up&goto=item%3Fid%3D41991291) |  [keybored](user?id=keybored) [4 months ago](item?id=42005348) | root | parent | prev | next [[–]](javascript:void\(0\))   
25% is a great win if you are prone to RSI. And for quicker feedback. But in terms of the overarching programming goal? Churning out code is a small part of it.Code is often a liability.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006998&how=up&goto=item%3Fid%3D41991291) |  [shombaboor](user?id=shombaboor) [4 months ago](item?id=42006998) | root | parent | prev | next [[–]](javascript:void\(0\))   
It would be funny if they had a metric for how much code is completed by CTRL+V  
---|---|---  
| ![](s.gif)|  [](vote?id=42004242&how=up&goto=item%3Fid%3D41991291) |  [unglaublich](user?id=unglaublich) [4 months ago](item?id=42004242) | root | parent | prev | next [[–]](javascript:void\(0\))   
Yes, isn't that the essential idea of industrialization and automation?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004625&how=up&goto=item%3Fid%3D41991291) |  [OtherShrezzing](user?id=OtherShrezzing) [4 months ago](item?id=42004625) | root | parent | next [[–]](javascript:void\(0\))   
I think the critique here is that the AI currently deployed at Google hasn't meaningfully automated this user's life, because most IDEs already solved "very good autocomplete" more than a decade ago.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006384&how=up&goto=item%3Fid%3D41991291) |  [tormeh](user?id=tormeh) [4 months ago](item?id=42006384) | root | parent | next [[–]](javascript:void\(0\))   
LLM autocomplete is on an entirely different level. It's not comparable to traditional autocomplete and mostly does not even compete with traditional autocomplete. LLM autocomplete will sometimes write entire blocks of code for you, with surprising skill. I often wonder how it knew what I wanted. It also generates some wrong code from time to time, but that's well worth it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006587&how=up&goto=item%3Fid%3D41991291) |  [randomdata](user?id=randomdata) [4 months ago](item?id=42006587) | root | parent | next [[–]](javascript:void\(0\))   
_> LLM autocomplete is on an entirely different level._Which is how they've surpassed 25% in new code, as compared to the 10% (made up number, but clearly non-zero) in the past. But incremental improvement, is all.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007312&how=up&goto=item%3Fid%3D41991291) |  [busterarm](user?id=busterarm) [4 months ago](item?id=42007312) | root | parent | prev | next [[–]](javascript:void\(0\))   
glorified, EXPENSIVE tab completion.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007660&how=up&goto=item%3Fid%3D41991291) |  [walthamstow](user?id=walthamstow) [4 months ago](item?id=42007660) | root | parent | next [[–]](javascript:void\(0\))   
I assume you're referring to the compute/energy used to run the completion?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007864&how=up&goto=item%3Fid%3D41991291) |  [busterarm](user?id=busterarm) [4 months ago](item?id=42007864) | root | parent | next [[–]](javascript:void\(0\))   
to train the model  
---|---|---  
| ![](s.gif)|  [](vote?id=42003999&how=up&goto=item%3Fid%3D41991291) |  [mmmpetrichor](user?id=mmmpetrichor) [4 months ago](item?id=42003999) | root | parent | prev | next [[–]](javascript:void\(0\))   
Yeah, but he wants people to hear "reduce headcount by 25% if you buy our shit!"  
---|---|---  
| ![](s.gif)|  [](vote?id=42004542&how=up&goto=item%3Fid%3D41991291) |  [mewpmewp2](user?id=mewpmewp2) [4 months ago](item?id=42004542) | root | parent | next [[–]](javascript:void\(0\))   
How do you know that? You are creating this false sense of expectations and hype yourself.I am going to argue contrary. If AI increases productivity 2x, it opens up as much new usecases that previously didn't seem worthy to do for its cost. So overall there will just be more work.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005065&how=up&goto=item%3Fid%3D41991291) |  [JimDabell](user?id=JimDabell) [4 months ago](item?id=42005065) | root | parent | next [[–]](javascript:void\(0\))   
> I am going to argue contrary. If AI increases productivity 2x, it opens up as much new usecases that previously didn't seem worthy to do for its cost. So overall there will just be more work.This is the entire history of the computing industry. We’ve been automating our work away for decades and it just creates more demand.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005280&how=up&goto=item%3Fid%3D41991291) |  [mewpmewp2](user?id=mewpmewp2) [4 months ago](item?id=42005280) | root | parent | next [[–]](javascript:void\(0\))   
Yeah, this is only side projects, but I've been spending pretty much all of my free time now on side projects, largely because I feel much faster building them with LLMs and it has a compounding motivational effect. I also see so many use cases and work left to do, even with AI, the possibilities almost overwhelm me.Well I do freelancing as well besides my usual day to day work, and that's also where direct benefits apply, and I'm getting more and more work, overwhelmingly so.  
---|---|---  
| ![](s.gif)|  ![](s.gif) |  [pawelmurias](user?id=pawelmurias) [4 months ago](item?id=42005448) | root | parent | prev | next [[2 more]](javascript:void\(0\))   
[flagged]   
---|---|---  
| ![](s.gif)|  [](vote?id=42005846&how=up&goto=item%3Fid%3D41991291) |  [binkHN](user?id=binkHN) [4 months ago](item?id=42005846) | root | parent | next [[–]](javascript:void\(0\))   
I wouldn't call it genius tab completion. Unfortunately, more than half of the time that the "genius" produces the code, I'm wasting my time reviewing code that is incorrect.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005572&how=up&goto=item%3Fid%3D41991291) |  [tguinot](user?id=tguinot) [4 months ago](item?id=42005572) | root | parent | prev | next [[–]](javascript:void\(0\))   
I'm sorry but I don't understand how people say LLMs are simply "tab completion".They allow me to do much more than that thanks to all the knowledge they contain.For instance, yesterday I wanted to write a tool that transfers any large file that is still being appended to to multiple remote hosts, with a fast throughput.By asking Claude for help I obtained exactly what I want in under two hours.I'm no C/C++ expert yet I have now a functional program using libtorrent and libfuse.By using libfuse my program creates a continuously growing list of virtual files (chunks of the big file).A torrent is created to transfer the chunks to remote hosts.Each chunk is added to the torrent as it appears on the file system thanks to the BEP46 mutable torrent feature in libtorrent.On each receving host, the program rebuilds the large file by appending new chunks as soon as they are downloaded through the torrent.Now I can transfer a 25GB file (and growing) to 15 hosts as it is being written too.Before LLM this would have taken me at least four days as I did not know those libraries.LLMs aren't just parrots or tab completers, they actually contain a lot of useful knowledge and they're very good at explaining it clearly.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005674&how=up&goto=item%3Fid%3D41991291) |  [qwertox](user?id=qwertox) [4 months ago](item?id=42005674) | root | parent | next [[–]](javascript:void\(0\))   
> By asking Claude for help I obtained exactly what I want in under two hours.Did you use it in your editor or via the chat interface in the browser? Because they are two different approaches, and the one in the editor is mostly a (pretty awesome) tab completion.When I tell an LLM to "create a script which does ..." I won't be doing this in the editor, even if copilot does have the chat interface. I'll be doing this in the browser because there I have a proper chat topic to which I can get back later, or review it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005775&how=up&goto=item%3Fid%3D41991291) |  [tguinot](user?id=tguinot) [4 months ago](item?id=42005775) | root | parent | next [[–]](javascript:void\(0\))   
I did not use copilot or cursor. I used the Claude interface. I'm planning to setup a proper editor tool such as Cursor as I believe they got much better lately. Last time I tried was 2023 and it was kind of a pain in the butt.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005909&how=up&goto=item%3Fid%3D41991291) |  [qwertox](user?id=qwertox) [4 months ago](item?id=42005909) | root | parent | next [[–]](javascript:void\(0\))   
I tried Cursor this month but even though it is much better than copilot, it also tries to do too much. And both of them fail regularly at generating proper autocompletions, which makes Cursor a bigger annoyance because it messes up your code quite often, which copilot doesn't do. Cursor is too aggressive.But using copilot as a better autocomplete is really helpful and well worth the subscription. Just while typing as well as giving it more precise instructions via comments.It's like a little helper in the editor, while the ChatGPT/Claude in the browser are more like "thinking machines" which can generate really usable code.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006194&how=up&goto=item%3Fid%3D41991291) |  [tguinot](user?id=tguinot) [4 months ago](item?id=42006194) | root | parent | next [[–]](javascript:void\(0\))   
good to know, thanks  
---|---|---  
| ![](s.gif)|  [](vote?id=42005906&how=up&goto=item%3Fid%3D41991291) |  [lupire](user?id=lupire) [4 months ago](item?id=42005906) | root | parent | prev | next [[–]](javascript:void\(0\))   
That's fine for your quick hack that is probably a reimplementation of an existing program you can't find.But it's not a production quality implementation of new need.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008096&how=up&goto=item%3Fid%3D41991291) |  [pizzafeelsright](user?id=pizzafeelsright) [4 months ago](item?id=42008096) | root | parent | next [[–]](javascript:void\(0\))   
I am of the strong opinion most problems were solved 20-40 years ago and that most code written today is reimplementation using different languages.I have shipped production code using LLMs in languages I did not study approved by seasoned SWE's is evidence that an acceleration is happening.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006180&how=up&goto=item%3Fid%3D41991291) |  [tguinot](user?id=tguinot) [4 months ago](item?id=42006180) | root | parent | prev | next [[–]](javascript:void\(0\))   
It's a knowledge base that can explain the knowledge it returns when you ask, how is that not useful in a professional environment for production code?I mean if you assume all devs are script kiddies who simply copy paste what they find on google (or ChatGPT without asking for explanations) then yeah it's never gonna be useful in a prod setting.Also you're very wrong to believe every technical need or combination of libraries has already been implemented in open source before.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006820&how=up&goto=item%3Fid%3D41991291) |  [rty32](user?id=rty32) [4 months ago](item?id=42006820) | root | parent | prev | next [[–]](javascript:void\(0\))   
True, but hey, even if it's not production code, it may be an ad-hoc thing that never gets push to production, it may be code reviewed by C++ experts and improved to production quality. At very least, someone saved _four days_ with it, and could use the time for something, maybe something they are expert at. Isn't that still good?  
---|---|---  
| ![](s.gif)|  [](vote?id=42014533&how=up&goto=item%3Fid%3D41991291) |  [mdavid626](user?id=mdavid626) [4 months ago](item?id=42014533) | root | parent | next [[–]](javascript:void\(0\))   
Most of the time saving time is just an illusion. When that code will needed to be changed, people will spend more than 4 days debugging and understanding it. The mental model of it was written by AI. It can make sense or not at all. You’ll figure it out after 4 days.  
---|---|---  
| ![](s.gif)|  [](vote?id=42015368&how=up&goto=item%3Fid%3D41991291) |  [tguinot](user?id=tguinot) [4 months ago](item?id=42015368) | root | parent | next [[–]](javascript:void\(0\))   
The code is 2 files of 80 lines each and is very clear. There's no way any software developer needs 4 days to understand what it does.Moreover Claude can explain the functions used very clearly (if you're too lazy to jump to definition in your editor)LLMs are becoming actually useful to developers new to a language. Just as Google was 20 years ago.  
---|---|---  
| ![](s.gif)|  [](vote?id=42024647&how=up&goto=item%3Fid%3D41991291) |  [mdavid626](user?id=mdavid626) [4 months ago](item?id=42024647) | root | parent | next [[–]](javascript:void\(0\))   
People talk about completey different things. The article was about Google using LLM-s to generate code, not people making 80 lines with them at home. There is a huge difference. I don’t see any problem with the latter, but with the former there are many problems.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005685&how=up&goto=item%3Fid%3D41991291) |  [znpy](user?id=znpy) [4 months ago](item?id=42005685) | root | parent | prev | next [[–]](javascript:void\(0\))   
That sounds like a great idea, are you going to open source that?  
---|---|---  
| ![](s.gif)|  [](vote?id=42005780&how=up&goto=item%3Fid%3D41991291) |  [tguinot](user?id=tguinot) [4 months ago](item?id=42005780) | root | parent | next [[–]](javascript:void\(0\))   
I think I will, I don't have time to maintain additional software right for other people now but I'm definitely planning on open sourcing it when I get time  
---|---|---  
| ![](s.gif)|  [](vote?id=42006245&how=up&goto=item%3Fid%3D41991291) |  [znpy](user?id=znpy) [4 months ago](item?id=42006245) | root | parent | next [[–]](javascript:void\(0\))   
Yeah i see your point.However i think that you might open source the thing with a disclaimer of no maintenance. Whoever is willing to maintain it can just fork it and move along.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007572&how=up&goto=item%3Fid%3D41991291) |  [bitcharmer](user?id=bitcharmer) [4 months ago](item?id=42007572) | root | parent | prev | next [[–]](javascript:void\(0\))   
> thanks to all the knowledge they containThis is what's problematic with modern "AI". Most people inexperienced with it, like the parent commenter will uncritically assume these LLMs poses "knowledge". This I find the most dangerous and prevalent assumption. Most people are oblivious to the fact how bad LLMs are.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007750&how=up&goto=item%3Fid%3D41991291) |  [tguinot](user?id=tguinot) [4 months ago](item?id=42007750) | root | parent | next [[–]](javascript:void\(0\))   
I know excatly how bad the output they give is, because I ask for output that I can understand, debug and improve.People misusing tools don't make tools useless or bad. Especially since LLMs designers never claimed the compressed information inside models is spotless or 100% accurate, or based on logical reasoning.Any serious engineer with a modicum of knowledge about neural networks knows what can or can't be done with the output.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003559&how=up&goto=item%3Fid%3D41991291) |  [OnionBlender](user?id=OnionBlender) [4 months ago](item?id=42003559) | parent | prev | next [[–]](javascript:void\(0\))   
Do people find these AI auto complete things helpful? I was trying the XCode one and it kept suggesting API calls that don't exist. I spent more time fixing its errors than I would have spent typing the correct API call.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004410&how=up&goto=item%3Fid%3D41991291) |  [_kidlike](user?id=_kidlike) [4 months ago](item?id=42004410) | root | parent | next [[–]](javascript:void\(0\))   
I really really dislike the ones that get in your way. Like I start typing something and it injects random stuff (yes in the auto-complete colors). I have a similar feeling to when you hear your voice back in a phone: completely disabling your thought process.In IntelliJ thankfully you can disable that part of the AI, and keep the part that you trigger it when you want something from it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005089&how=up&goto=item%3Fid%3D41991291) |  [frereubu](user?id=frereubu) [4 months ago](item?id=42005089) | root | parent | next [[–]](javascript:void\(0\))   
> I have a similar feeling to when you hear your voice back in a phone: completely disabling your thought process.This is a fantastic description of how it disturbs my coding practice which I hadn't been able to put into words. It's like someone is constantly interrupting you with small suggestions whether you want them or not.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005529&how=up&goto=item%3Fid%3D41991291) |  [gtirloni](user?id=gtirloni) [4 months ago](item?id=42005529) | root | parent | prev | next [[–]](javascript:void\(0\))   
This is it. I have a picture in my mind and then it puts 10 lines of code in front of me and my brain can't ignore. When I'm done reviewing that, it's already tainted my idea.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003596&how=up&goto=item%3Fid%3D41991291) |  [mu53](user?id=mu53) [4 months ago](item?id=42003596) | root | parent | prev | next [[–]](javascript:void\(0\))   
I find the simpler engines work better.I want the end of the line completed with focus on context from the working code base, and I don't want an entire 5 line function completed with incomplete requirements.It is really impressive when it implements a 5 line function correctly, but its like hitting the lottery  
---|---|---  
| ![](s.gif)|  [](vote?id=42004568&how=up&goto=item%3Fid%3D41991291) |  [ncruces](user?id=ncruces) [4 months ago](item?id=42004568) | root | parent | prev | next [[–]](javascript:void\(0\))   
I particularly like the part where it suggests changes to pasted code.When I copy and paste code, very often it needs some small changes (like changing all xs to ys and at the same time widths to heights).It's very good at this, and does the right thing the vast majority of the time.It's also good with test code. Test code is _supposed_ to be explicit, and not very abstracted (so someone only mildly familiar with a codebase that's looking at a failing test can at least figure the cause). This means it's full of boilerplate, and a smart code generator can help fill that in.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005193&how=up&goto=item%3Fid%3D41991291) |  [andyjohnson0](user?id=andyjohnson0) [4 months ago](item?id=42005193) | root | parent | prev | next [[–]](javascript:void\(0\))   
Visual Studio "intellisense" has always been pretty good for me. Seemed to make good guesses about my intentions without doing anything wild. It seemed to use ad hoc rules and patterns, but it worked and then got out of the way.Then it got worse a couple of years ago when they tried some early-stage AI approach. I turned it off. I expect that next time I update VS it'll have got substantially worse and it will have removed the option for me to disable it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009491&how=up&goto=item%3Fid%3D41991291) |  [nobleach](user?id=nobleach) [4 months ago](item?id=42009491) | root | parent | next [[–]](javascript:void\(0\))   
Agreed, the old Visual Basic, Visual C++, Borland Delphi, Visual C# experiences were how I dove into the deep end of several languages back in the late 90's/early 2000's. Things were VERY discoverable at that point. Obviously a deeper understanding of a language is necessary for doing real work, but noodling around just trying to get a feel for what can be done, is a great way to get started.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004193&how=up&goto=item%3Fid%3D41991291) |  [mcintyre1994](user?id=mcintyre1994) [4 months ago](item?id=42004193) | root | parent | prev | next [[–]](javascript:void\(0\))   
I like Cursor, it seems very good at keeping its autocomplete within my code base. If I use its chat feature and ask it to generate new code that doesn’t work super well. But it’ll almost always autocomplete the right function name as I’m typing, and then infer the correct parameters to pass in if they’re variables and if the function is in my codebase rather than a library. It’s also unsurprisingly really good at pattern recognition, so if you’re adding to an enum or something it’ll autocomplete that sensibly too.I think it’d be more useful if it was clipboard aware though. Sometimes I’ll copy a type, then add a param of that type to a function, and it won’t have the clipboard context to suggest the param I’m trying to add.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004598&how=up&goto=item%3Fid%3D41991291) |  [qeternity](user?id=qeternity) [4 months ago](item?id=42004598) | root | parent | next [[–]](javascript:void\(0\))   
I really like Cursor but the more I use it the more frustrated I get when it ends up in a tight loop of wanting to do something that I do not want to do. There doesn’t seem to be a good way to say “do not do this thing or things like it for the next 5 minutes”.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003968&how=up&goto=item%3Fid%3D41991291) |  [M4v3R](user?id=M4v3R) [4 months ago](item?id=42003968) | root | parent | prev | next [[–]](javascript:void\(0\))   
It probably depends on the tool you use and on the programming language. I use Supermaven autocomplete when writing Typescript and it’s working great, it often feels like it’s reading my mind, suggesting what I would write next myself.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004324&how=up&goto=item%3Fid%3D41991291) |  [vbezhenar](user?id=vbezhenar) [4 months ago](item?id=42004324) | root | parent | prev | next [[–]](javascript:void\(0\))   
I mostly use one-line completes and they are pretty good. Also I really like when Copilot generates boilerplate like
    
    
        if err != nil {
          return fmt.Errorf("Cannot open settings: %w", err);
        }  
  
---|---|---  
| ![](s.gif)|  [](vote?id=42004009&how=up&goto=item%3Fid%3D41991291) |  [I_AM_A_SMURF](user?id=I_AM_A_SMURF) [4 months ago](item?id=42004009) | root | parent | prev | next [[–]](javascript:void\(0\))   
I use the one at G and it's definitely helpful. It's not revolutionary, but it makes writing code less of a headache when I kinda know what that method is called but not quite.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003699&how=up&goto=item%3Fid%3D41991291) |  [skybrian](user?id=skybrian) [4 months ago](item?id=42003699) | root | parent | prev | next [[–]](javascript:void\(0\))   
I often delete large chunks of it unread if it doesn't do what I expected. It's much like copy and paste; deleting code doesn't take long.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004003&how=up&goto=item%3Fid%3D41991291) |  [card_zero](user?id=card_zero) [4 months ago](item?id=42004003) | root | parent | next [[–]](javascript:void\(0\))   
So your test is "seems to work"?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004027&how=up&goto=item%3Fid%3D41991291) |  [skybrian](user?id=skybrian) [4 months ago](item?id=42004027) | root | parent | next [[–]](javascript:void\(0\))   
No, what I meant is that, much like when copying code, I only keep the generated source code if it's written the way I would write it.(By "unread" I meant that I don't look very closely before deleting if it looks weird.)And then write tests. Or perhaps I wrote the test first.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004087&how=up&goto=item%3Fid%3D41991291) |  [card_zero](user?id=card_zero) [4 months ago](item?id=42004087) | root | parent | next [[–]](javascript:void\(0\))   
Oh, if the _AI_ doesn't do what you expected, got it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005890&how=up&goto=item%3Fid%3D41991291) |  [binkHN](user?id=binkHN) [4 months ago](item?id=42005890) | root | parent | prev | next [[–]](javascript:void\(0\))   
Right now my opinion is that they're 60% unhelpful, so I largely agree with you. Sometimes I'll find the AI came up with a somewhat better way of doing something, but the vast majority of the time it does something wrong or does something that appears right, but it's actually wrong and I can only spot it with a somewhat decent code review.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004373&how=up&goto=item%3Fid%3D41991291) |  [guappa](user?id=guappa) [4 months ago](item?id=42004373) | root | parent | prev | next [[–]](javascript:void\(0\))   
I suspect that if you work on trivial stuff that has been asked on stackoverflow countless of times they work very nicely.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008326&how=up&goto=item%3Fid%3D41991291) |  [OnionBlender](user?id=OnionBlender) [4 months ago](item?id=42008326) | root | parent | next [[–]](javascript:void\(0\))   
This is what I've been noticing. For C++ and Swift, it makes pretty unhelpful suggestions. For Python, its suggestions are fine.Swift is especially frustrating because it will hallucinate the method name and/or the argument names (since you often have to specify the argument names when calling a method).  
---|---|---  
| ![](s.gif)|  [](vote?id=42040312&how=up&goto=item%3Fid%3D41991291) |  [guappa](user?id=guappa) [4 months ago](item?id=42040312) | root | parent | next [[–]](javascript:void\(0\))   
Ah I've had it hallucinate non-existing methods in python rather often.Or when I say I need to do something, it invents a library that conveniently happens to just do that thing and writes code to import and use it. Except there's no such library of course.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004333&how=up&goto=item%3Fid%3D41991291) |  [0points](user?id=0points) [4 months ago](item?id=42004333) | root | parent | prev | next [[–]](javascript:void\(0\))   
No, not at all."classic" intellisense is reliable, so why introduce random source in the process?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007683&how=up&goto=item%3Fid%3D41991291) |  [4lb0](user?id=4lb0) [4 months ago](item?id=42007683) | root | parent | prev | next [[–]](javascript:void\(0\))   
I use Codeium in NeoVim and yes I find it very helpful. Of course, is not 100% error free, but even when it has errors most of the time it is easier for me to fix them than to write it from scratch.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003802&how=up&goto=item%3Fid%3D41991291) |  [sharpy](user?id=sharpy) [4 months ago](item?id=42003802) | root | parent | prev | next [[–]](javascript:void\(0\))   
Often yes. There were times when I was writing unit tests that was me just naming the test case, with 99% of the test code auto generated based on the existing code, and the name.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005519&how=up&goto=item%3Fid%3D41991291) |  [simne](user?id=simne) [4 months ago](item?id=42005519) | root | parent | prev | next [[–]](javascript:void\(0\))   
Looks like model is not trained well. From my exp, after make few projects (2 looks enough), oldest XCode managed to give good suggestions in much more than 50% cases.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004494&how=up&goto=item%3Fid%3D41991291) |  [karmasimida](user?id=karmasimida) [4 months ago](item?id=42004494) | root | parent | prev | next [[–]](javascript:void\(0\))   
It is useful in our use case.Realtime tab completion is good at some really mundane things within the current file.You still need a chat model, like Claude 3.5 to do more explorational things.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007054&how=up&goto=item%3Fid%3D41991291) |  [DecoySalamander](user?id=DecoySalamander) [4 months ago](item?id=42007054) | root | parent | prev | next [[–]](javascript:void\(0\))   
I was evaluating it for a month and caught myself regularly switching to an IDE with non-AI intellisense because I wanted code that actually works.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004372&how=up&goto=item%3Fid%3D41991291) |  [mdavid626](user?id=mdavid626) [4 months ago](item?id=42004372) | root | parent | prev | next [[–]](javascript:void\(0\))   
No, not at all. It’s just the hype. It doesn’t replace engineering.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004313&how=up&goto=item%3Fid%3D41991291) |  [saagarjha](user?id=saagarjha) [4 months ago](item?id=42004313) | root | parent | prev | next [[–]](javascript:void\(0\))   
The one Xcode has is particularly bad, unfortunately.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004884&how=up&goto=item%3Fid%3D41991291) |  [myworkinisgood](user?id=myworkinisgood) [4 months ago](item?id=42004884) | root | parent | prev | next [[–]](javascript:void\(0\))   
Copilot is very good.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004083&how=up&goto=item%3Fid%3D41991291) |  [cryptica](user?id=cryptica) [4 months ago](item?id=42004083) | parent | prev | next [[–]](javascript:void\(0\))   
This is my experience as well. LLMs are great to boost productivity, especially in the hands of senior engineers who have a deep understanding of what they're doing because they know what questions to ask, they know when it's safe to use AI-generated code and they know what issues to look for.In the hands of a junior, AI can create a false sense of confidence and it acts as a technical debt and security flaw multiplier.We should bring back the title "Software engineer" instead of "Software developer." Many people from other engineering professions look down on software engineers as "Not real engineers" but that's because they have the same perspective on coding as typical management types have. They think all code is equal, it's unavoidable spaghetti. They think software design and architecture doesn't matter.The problems a software engineer faces when building a software system are the same kinds of problems that a mechanical or electrical engineer faces when building any engine or system. It's about weighing up trade-offs and making a large number of nuanced technical decisions to ultimately meet operational requirements in the most efficient, cost-effective way possible.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003391&how=up&goto=item%3Fid%3D41991291) |  [alxjrvs](user?id=alxjrvs) [4 months ago](item?id=42003391) | parent | prev | next [[–]](javascript:void\(0\))   
In my day to day, this still remains the main way I interact with AI coding tools.I regularly describe it as "The best snippet tool I've ever used (because it plays horseshoes)".  
---|---|---  
| ![](s.gif)|  [](vote?id=42003713&how=up&goto=item%3Fid%3D41991291) |  [tomcam](user?id=tomcam) [4 months ago](item?id=42003713) | root | parent | next [[–]](javascript:void\(0\))   
Horseshoes? As in “close enough”?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003963&how=up&goto=item%3Fid%3D41991291) |  [ttul](user?id=ttul) [4 months ago](item?id=42003963) | root | parent | next [[–]](javascript:void\(0\))   
Or, as in, “Ouch, man! You hit my foot!”  
---|---|---  
| ![](s.gif)|  [](vote?id=42003981&how=up&goto=item%3Fid%3D41991291) |  [goykasi](user?id=goykasi) [4 months ago](item?id=42003981) | root | parent | next [[–]](javascript:void\(0\))   
As long as hand grenades arent introduced, I could live with that.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004107&how=up&goto=item%3Fid%3D41991291) |  [DanHulton](user?id=DanHulton) [4 months ago](item?id=42004107) | root | parent | next [[–]](javascript:void\(0\))   
Honestly, I don't think "close only count in horseshoes, hand grenades, and production code" will ever catch on...  
---|---|---  
| ![](s.gif)|  [](vote?id=42007783&how=up&goto=item%3Fid%3D41991291) |  [alxjrvs](user?id=alxjrvs) [4 months ago](item?id=42007783) | root | parent | next [[–]](javascript:void\(0\))   
This is why I frame it as a "snippets" plugin, rather than a Code generation tool.I would be very confused if someone told me that they uncritically used the generated code from a snippet program with no manual input or understanding, and I feel the same with Copilot. At best, it suggests an auto-complete that I read and interpret before accepting.The closest I come to "code generation" is during test writing, where _occasionally_ I will let the description generate some setup, but only in tests where there are a broad number of examples to follow, and I am still going to end up re-writing a decent chunk of it based on personal example. I would not "let it write the test suite for me" and then trust the green, and I suspect that would easily fail code review (though it would be an interesting experiment...).Obviously your comment as a good goof and well made, but it does speak to a little bit of the disconnect between what is being touted as an "AI coding tool" and how I, a person who makes react native apps to pay my rent, actually use the dang thing (i.e., "A pretty good snippets plugin"). Is My code 'AI generated'? I wouldn't call it that, but who can say definitively? We're in a fun new semantic world now.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004594&how=up&goto=item%3Fid%3D41991291) |  [davedx](user?id=davedx) [4 months ago](item?id=42004594) | parent | prev | next [[–]](javascript:void\(0\))   
I'm working on a CRM with a flexible data model, and ChatGPT has written most of the code. I don't use the IDE integrations because I find them too "low level" \- I work with GPT more in a sort of "pair programming" session: I give it high level, focused tasks with bits of low level detail if necessary; I paste code back and forth; and I let it develop new features or do refactorings.This workflow is not perfect but I am definitely building out all the core features way faster than if I wrote the code myself, and the code is in quite a good state. Quite often I do some bits of cleanup, refactorings, making sure typings are complete myself, then update ChatGPT with what the code now looks like.I think what people miss is there are dozens of different ways to apply AI to your day-to-day as a software engineer. It also helps with thinking things through, architecture, describing best practices.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004695&how=up&goto=item%3Fid%3D41991291) |  [littlestymaar](user?id=littlestymaar) [4 months ago](item?id=42004695) | root | parent | next [[–]](javascript:void\(0\))   
I share your sentiment, I've written three apps where I've used language models extensively (a different one for each: ChatGPT, Mixtral and Llama-70B) and while I agree that they where immensely helpful in terms of velocity, there are a bunch of caveats:\- it only works well when you write code from scratch, context length is too short to be really helpful for working on existing codebase.\- the output code is pretty much always broken in some way, and you need to be accustomed to doing code reviews to use them effectively. If you trust the output and had to debug it later it would be a painfully slow process.Also, I didn't really noticed a significant difference in code quality, even the best model (GPT-4) write code that doesn't work, and I find it much more efficient to use open models on Groq due to the really fast inference. Looking at ChatGPT slowly typing is really annoying (I didn't test o1 and I have no interest in doing so because of its very low throughput).  
---|---|---  
| ![](s.gif)|  [](vote?id=42004855&how=up&goto=item%3Fid%3D41991291) |  [davedx](user?id=davedx) [4 months ago](item?id=42004855) | root | parent | next [[–]](javascript:void\(0\))   
> context length is too short to be really helpful for working on existing codebase.This is kind of true, my approach is I spend a fairly large amount of time copy-pasting code from relevant modules back and forth into ChatGPT so it has enough context to make the correct changes. Most changes I need to make don't need more than 2-3 modules though.> the output code is pretty much always broken in some way, and you need to be accustomed to doing code reviews to use them effectively.I think this really depends on what you're building. Making a CRM is a very well trodden path so I think that helps? But even when it came to asking ChatGPT to design and implement a flexible data model it did a very good job. Most of the code it's written has worked well. I'd say maybe 60-70% of the code it writes I don't have to touch at all.The slow typing is definitely a hindrance! Sometimes when it's a big change I lose focus and alt-tab away, like I used to do when building large C++ codebases or waiting for big test suites to run. So that aspect saps productivity. Conversely though I don't want to use a faster model that might give me inferior results.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005131&how=up&goto=item%3Fid%3D41991291) |  [littlestymaar](user?id=littlestymaar) [4 months ago](item?id=42005131) | root | parent | next [[–]](javascript:void\(0\))   
> approach is I spend a fairly large amount of time copy-pasting code from relevant modules back and forth into ChatGPTIt can work, but what a terrible developer experience.> I'd say maybe 60-70% of the code it writes I don't have to touch at allI used to to write web apps so the ratio was even higher I'd say (maybe 80/90% of the code didn't need any modification) but the app itself wouldn't work at all if I didn't make those 10% changes. And you really need to read 100% of the code because you won't know upfront where those 10% will be.> The slow typing is definitely a hindrance! Sometimes when it's a big change I lose focus and alt-tab away, like I used to do when building large C++ codebases or waiting for big test suites to run.Yeah exactly, it's xkcd 303 but with “IA processing the response” instead of “compiling”. Having instant response was a game changer for me in terms of focus hence productivity.> I don't want to use a faster model that might give me inferior resultsAs I said earlier, I didn't really feel the difference in quality so the switch was without drawbacks.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005098&how=up&goto=item%3Fid%3D41991291) |  [chrisjj](user?id=chrisjj) [4 months ago](item?id=42005098) | root | parent | prev | next [[–]](javascript:void\(0\))   
> I'd say maybe 60-70% of the code it writes I don't have to touch at all....yet. Bugs can take time to surface.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005342&how=up&goto=item%3Fid%3D41991291) |  [michaelteter](user?id=michaelteter) [4 months ago](item?id=42005342) | root | parent | next [[–]](javascript:void\(0\))   
And this is equally true whether the code was entirely written by a human or not.  
---|---|---  
| ![](s.gif)|  [](vote?id=42044554&how=up&goto=item%3Fid%3D41991291) |  [chrisjj](user?id=chrisjj) [4 months ago](item?id=42044554) | root | parent | next [[–]](javascript:void\(0\))   
... except "not" delivers this "the output code is pretty much always broken in some way".  
---|---|---  
| ![](s.gif)|  [](vote?id=42005412&how=up&goto=item%3Fid%3D41991291) |  [creesch](user?id=creesch) [4 months ago](item?id=42005412) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Also, I didn't really noticed a significant difference in code quality, even the best model (GPT-4) write code that doesn't work,Interesting, personally I have noticed a difference. Mostly in how well the models pick up small details and context. Although I do have to agree that the open Llama models are generally fairly serviceable.Recently I have tended to lean towards Claude Sonnet 3.5 as it seems slightly better. Although that does differ per language as well.As far as them being slow, I haven't really noticed a difference. I use them mostly through the API with open webui and the answers come quick enough.  
---|---|---  
| ![](s.gif)|  [](vote?id=42016630&how=up&goto=item%3Fid%3D41991291) |  [mind-blight](user?id=mind-blight) [4 months ago](item?id=42016630) | root | parent | prev | next [[–]](javascript:void\(0\))   
I use o1 for research rather than coding. If I have a complex question that requires combining multiple ideas or references and checking the result, it's usually pretty good at that.Sometimes that results in code, but it's the research and cross referencing that's actually useful with it  
---|---|---  
| ![](s.gif)|  [](vote?id=42006417&how=up&goto=item%3Fid%3D41991291) |  [_heimdall](user?id=_heimdall) [4 months ago](item?id=42006417) | root | parent | prev | next [[–]](javascript:void\(0\))   
Its interesting to see these LLM tools turning developers into no-code customers. Where tools like visual site builders allowed those without coding experience to code a webpage, LLMs are letting those with coding experience to avoid the step of coding.There's not even anything wrong with that, don't take my comment the wrong way. It is an interesting question of what happens at scale though. We could easily find ourselves in a spot where very few people know how to code and most producing code don't actually know how it works and couldn't find or fix a bug if they needed to. It also means LLMs would be stuck with today's code for a training set until it can invent its own coding paradigms and languages, at which point we're all left in the dust trusting it to work right.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005719&how=up&goto=item%3Fid%3D41991291) |  [sampo](user?id=sampo) [4 months ago](item?id=42005719) | root | parent | prev | next [[–]](javascript:void\(0\))   
> I paste code back and forthThere is this tool Aider. Takes your prompt, adds code files (sometimes not all of your code files but files it figures relevant) and prepares one long prompt, sends it to an LLM, receives the response, and makes a git commit based on the response. If you rather review git commits, it can save you the back-and-forth copy-pasting. [https://aider.chat/](https://aider.chat/)  
---|---|---  
| ![](s.gif)|  [](vote?id=42010521&how=up&goto=item%3Fid%3D41991291) |  [maleldil](user?id=maleldil) [4 months ago](item?id=42010521) | root | parent | next [[–]](javascript:void\(0\))   
Note that the default mode will automatically change and commit the code, which I found counter-intuitive. I prefer using the architect mode, where it first tells you what it is going to do, so you can iterate on it before making changes.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004050&how=up&goto=item%3Fid%3D41991291) |  [simplyluke](user?id=simplyluke) [4 months ago](item?id=42004050) | parent | prev | next [[–]](javascript:void\(0\))   
This is exactly how I’ve used copilot for over a year now. It’s really helpful! Especially with repetitive code. Certainly worth what my employer pays for it.The general public has a very different idea of that though and I frequently meet people very surprised the entire profession hasn’t been automated yet based on headlines like this.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004170&how=up&goto=item%3Fid%3D41991291) |  [arisAlexis](user?id=arisAlexis) [4 months ago](item?id=42004170) | root | parent | next [[–]](javascript:void\(0\))   
Because you are using it like that doesn't mean that it can't be used for the whole stack and on its own and the public including laymen such as the Nvidia CEO and Sam think that yes, we (I'm a dev) will be replaced. Plan accordingly my friend.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004267&how=up&goto=item%3Fid%3D41991291) |  [robertlagrant](user?id=robertlagrant) [4 months ago](item?id=42004267) | root | parent | next [[–]](javascript:void\(0\))   
> Because you are using it like that doesn't mean that it can't be used for the whole stackWell no, but we have no evidence it can be used for the whole stack, whatever that means.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004624&how=up&goto=item%3Fid%3D41991291) |  [arisAlexis](user?id=arisAlexis) [4 months ago](item?id=42004624) | root | parent | next [[–]](javascript:void\(0\))   
Even last year's gpt4 could make a whole iphone app from scratch for someone that doesn't know how to code. You can find videos online. I think you are applying the ostrich method which is understandable. We need to adapt.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004686&how=up&goto=item%3Fid%3D41991291) |  [papichulo2023](user?id=papichulo2023) [4 months ago](item?id=42004686) | root | parent | next [[–]](javascript:void\(0\))   
Complexity increase over time. I can create new features in minutes for my new selfhosted projects, equivalent work on my entreprise work takes days...  
---|---|---  
| ![](s.gif)|  [](vote?id=42004852&how=up&goto=item%3Fid%3D41991291) |  [arisAlexis](user?id=arisAlexis) [4 months ago](item?id=42004852) | root | parent | next [[–]](javascript:void\(0\))   
New Gemini has millions of context windows. Think big and project 1-2 years  
---|---|---  
| ![](s.gif)|  [](vote?id=42005377&how=up&goto=item%3Fid%3D41991291) |  [robertlagrant](user?id=robertlagrant) [4 months ago](item?id=42005377) | root | parent | prev | next [[–]](javascript:void\(0\))   
> I think you are applying the ostrich method which is understandableAsking for evidence is not being an ostrich.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008595&how=up&goto=item%3Fid%3D41991291) |  [arisAlexis](user?id=arisAlexis) [4 months ago](item?id=42008595) | root | parent | next [[–]](javascript:void\(0\))   
The ostrich method is avoiding existing evidencea available online and searchable for full stack llm programming  
---|---|---  
| ![](s.gif)|  [](vote?id=42009189&how=up&goto=item%3Fid%3D41991291) |  [robertlagrant](user?id=robertlagrant) [4 months ago](item?id=42009189) | root | parent | next [[–]](javascript:void\(0\))   
Making a simple app isn't evidence that it will replace people, any more than a 90%-good self-driving car is evidence that we'll get a 100%-good self-driving car.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005926&how=up&goto=item%3Fid%3D41991291) |  [ktnaWA](user?id=ktnaWA) [4 months ago](item?id=42005926) | root | parent | prev | next [[–]](javascript:void\(0\))   
Which industry would you pivot to? The only industry that is desperate for workers right now is the defense industry. But manufacturing shells for Ukraine and Israel does not seem appealing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007712&how=up&goto=item%3Fid%3D41991291) |  [simplyluke](user?id=simplyluke) [4 months ago](item?id=42007712) | root | parent | prev | next [[–]](javascript:void\(0\))   
I was a hacker before the entire stack I work in was common or released, and I’ll be one when all our tools change again in the future. I have family who programmed with punch cards.But I doubt the predictions from men whose net worth depends on the hype they foment.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008600&how=up&goto=item%3Fid%3D41991291) |  [arisAlexis](user?id=arisAlexis) [4 months ago](item?id=42008600) | root | parent | next [[–]](javascript:void\(0\))   
It's not tools. It's intelligent agents capable of human output.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005759&how=up&goto=item%3Fid%3D41991291) |  [arisAlexis](user?id=arisAlexis) [4 months ago](item?id=42005759) | root | parent | prev | next [[–]](javascript:void\(0\))   
The laymen was ironic of course..  
---|---|---  
| ![](s.gif)|  [](vote?id=42005683&how=up&goto=item%3Fid%3D41991291) |  [red_admiral](user?id=red_admiral) [4 months ago](item?id=42005683) | parent | prev | next [[–]](javascript:void\(0\))   
A few years ago we called that IntelliSense, right?I remember many years ago as a Java developer, Netbeans could do such things as complete `psvm` to "public static void main() {...}", or if you had a field "private String name;" you could press some key combination and it would generate you the getter and setter, complete with javadoc which was mandatory at that place because apparently you need "Returns the name.\n @return The name." on a method called getName() in case you wondered what it was for.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006877&how=up&goto=item%3Fid%3D41991291) |  [rty32](user?id=rty32) [4 months ago](item?id=42006877) | root | parent | next [[–]](javascript:void\(0\))   
I think most people define "Intellisense" as "IDE suggestions based on static anaysis results". Sometimes it blends a bit of heuristics/usage statistics as added feature depending on the tool. They are mostly deterministic, based on actual AST of your code, and never hallucinates. They may not be helpful but can never be wrong.On the other hand, LLMs are completely different -- based on machine learning and everything is random and about statistics. It depends on training data and context. It is more useful but make a ton of mistakes.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006300&how=up&goto=item%3Fid%3D41991291) |  [_heimdall](user?id=_heimdall) [4 months ago](item?id=42006300) | root | parent | prev | next [[–]](javascript:void\(0\))   
Yes, Copilot and other LLM coding tools are just a (much) better version of IntelliSense.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006387&how=up&goto=item%3Fid%3D41991291) |  [snowe2010](user?id=snowe2010) [4 months ago](item?id=42006387) | root | parent | next [[–]](javascript:void\(0\))   
Much worse imo.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006486&how=up&goto=item%3Fid%3D41991291) |  [_heimdall](user?id=_heimdall) [4 months ago](item?id=42006486) | root | parent | next [[–]](javascript:void\(0\))   
That could be too. I don't use LLMs so I'm just giving it the benefit of the doubt based on other commentors here.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006301&how=up&goto=item%3Fid%3D41991291) |  [skydhash](user?id=skydhash) [4 months ago](item?id=42006301) | root | parent | prev | next [[–]](javascript:void\(0\))   
Most jetbrains IDEs come with those snippets and if you’re using IDEA, the code will be 50%+ generated by the IDE.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009328&how=up&goto=item%3Fid%3D41991291) |  [peepee1982](user?id=peepee1982) [4 months ago](item?id=42009328) | parent | prev | next [[–]](javascript:void\(0\))   
That's what I thought. In recent weeks, most of the code I’ve written has been AI-generated. But it was mostly JSDoc comments, type checking (I'm writing JavaScript), abstracting code if I see that I'm repeating myself a little too often, etc.All things that I would consider tedious housekeeping, but nothing that needs serious reasoning.It's basically a glorified LSP.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009386&how=up&goto=item%3Fid%3D41991291) |  [inanepenguin](user?id=inanepenguin) [4 months ago](item?id=42009386) | root | parent | next [[–]](javascript:void\(0\))   
I know you're not saying anything revolutionary but this is the best succinct yet fair description of these tools that I've seen. They're not worthless but they're not job destroying.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009673&how=up&goto=item%3Fid%3D41991291) |  [peepee1982](user?id=peepee1982) [4 months ago](item?id=42009673) | root | parent | next [[–]](javascript:void\(0\))   
You're right, it's not revolutionary at all. But I'm glad you liked my summary!  
---|---|---  
| ![](s.gif)|  [](vote?id=42004457&how=up&goto=item%3Fid%3D41991291) |  [hgomersall](user?id=hgomersall) [4 months ago](item?id=42004457) | parent | prev | next [[–]](javascript:void\(0\))   
Before I go and rip out and replace my development workflow, is it notably better than auto complete suggestions from CoC in neovim (with say, rust-analyzer)? I'm generally pretty impressed how quickly it gives me the right function call or whatever, or it's the one of the top few.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005932&how=up&goto=item%3Fid%3D41991291) |  [Leherenn](user?id=Leherenn) [4 months ago](item?id=42005932) | root | parent | next [[–]](javascript:void\(0\))   
It's more than choosing the right function call, it goes further than that. If your code has patterns, it recognises and suggests them.For instance, one I find very useful is that we have this pattern of checking the result of a function call, logging the error and returning, or whatever. So now, every time you have `result = foo()`, it will auto suggest `if (!result) log_error...` with a generally very good error message.Very basic, but damn convenient. The more patterns you use, the more helpful it becomes.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003354&how=up&goto=item%3Fid%3D41991291) |  [ghostpepper](user?id=ghostpepper) [4 months ago](item?id=42003354) | parent | prev | next [[–]](javascript:void\(0\))   
Does it make you 25% more productive?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003563&how=up&goto=item%3Fid%3D41991291) |  [vundercind](user?id=vundercind) [4 months ago](item?id=42003563) | root | parent | next [[–]](javascript:void\(0\))   
Between the fraction of my time I spend actually writing code, and how much of the typing time I’m using to think anyway, I dunno how much of an increase in my overall productivity could realistically be achieved by something that just helped me type the code in faster. Probably not 25% no matter how fast it made that part. 5% is maybe possible, for something that made that part like 2-3x faster, but much more than that and it’d run up against a wall and stop speeding things up.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003609&how=up&goto=item%3Fid%3D41991291) |  [imchillyb](user?id=imchillyb) [4 months ago](item?id=42003609) | root | parent | next [[–]](javascript:void\(0\))   
I imagine that those who cherished the written word thought similar thoughts when the printing press was invented, when the typewriter was invented, and before excel took over bookkeeping.My productivity isn't so much enhanced. It's only 1%... 2%... 5%... globally, for each employee.Have you ever dabbled with, mucked around in, a command line? Autocomplete functions there save millions of man-hour-typing-units per year. Something to think about.A single employee, in a single task, for a single location may not equal much gained productivity, but companies now think on much larger scales than a single office location.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003816&how=up&goto=item%3Fid%3D41991291) |  [moron4hire](user?id=moron4hire) [4 months ago](item?id=42003816) | root | parent | next [[–]](javascript:void\(0\))   
This is a fallacy because there is no way to add up 1% savings across 100 employees into an extra full time employee.Work gets scheduled on short time frames. 5% savings isn't enough to change the schedule for any one person. At most, it gives me time to grab an extra coffee. I can't string together "foregone extra coffees" into "more tasks/days in the schedule".  
---|---|---  
| ![](s.gif)|  [](vote?id=42004277&how=up&goto=item%3Fid%3D41991291) |  [robertlagrant](user?id=robertlagrant) [4 months ago](item?id=42004277) | root | parent | next [[–]](javascript:void\(0\))   
This. I had the same conversation years ago with someone who said "imagine if Windows booted 30s faster, all the productivity gains across the world!" And I said the same thing you did: people turn their computer on and then make a cup of tea.Now making a _kettle_ faster? That might actually be something.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003721&how=up&goto=item%3Fid%3D41991291) |  [rustcleaner](user?id=rustcleaner) [4 months ago](item?id=42003721) | root | parent | prev | next [[–]](javascript:void\(0\))   
If 25% of code was AI-written, wouldn't it be a 33[.333...]% increase in productivity?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004665&how=up&goto=item%3Fid%3D41991291) |  [PeterStuer](user?id=PeterStuer) [4 months ago](item?id=42004665) | root | parent | next [[–]](javascript:void\(0\))   
It is not a direct correlation. I might write 80% of the lines of code in a week, then spend the next 6 months on the remaining 20%. If the AI was mostly helpfull in that first week, overall productivity gain would be very low.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007973&how=up&goto=item%3Fid%3D41991291) |  [vundercind](user?id=vundercind) [4 months ago](item?id=42007973) | root | parent | prev | next [[–]](javascript:void\(0\))   
Who spends 100% of their time actually typing code?It’s probably closer to 10% than 100%, especially at big companies.One thing I would love to see is reports of benefits from various tools coming with one’s typing ability in WPM. I’d also like to see that on posts where people express a preference for “a quick call” or stopping by your desk rather than posting what they want in chat. I have some hypotheses I’d like to test out.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004064&how=up&goto=item%3Fid%3D41991291) |  [card_zero](user?id=card_zero) [4 months ago](item?id=42004064) | root | parent | prev | next [[–]](javascript:void\(0\))   
Not if there was also an 8.333̅% increase in slacking off.Wait, no. That should be based on how much slacking off Google employees do ordinarily, an unknown quantity.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004317&how=up&goto=item%3Fid%3D41991291) |  [saagarjha](user?id=saagarjha) [4 months ago](item?id=42004317) | root | parent | next [[–]](javascript:void\(0\))   
You can just check Memegen traffic to figure that one out.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003488&how=up&goto=item%3Fid%3D41991291) |  [nycdatasci](user?id=nycdatasci) [4 months ago](item?id=42003488) | parent | prev | next [[–]](javascript:void\(0\))   
This is a great anecdote. SOTA models will not provide “engineering” per se, but they will easily double productivity of a product manager that is exploring new product ideas or technologies. They are much more than intelligent auto-complete. I have done more with side projects in the last year than I did in the preceding decade.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003616&how=up&goto=item%3Fid%3D41991291) |  [llm_trw](user?id=llm_trw) [4 months ago](item?id=42003616) | root | parent | next [[–]](javascript:void\(0\))   
One of my friends put it best: I just did a months worth of experimentation in two hours.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003673&how=up&goto=item%3Fid%3D41991291) |  [Sateeshm](user?id=Sateeshm) [4 months ago](item?id=42003673) | root | parent | next [[–]](javascript:void\(0\))   
I find this hard to believe. Can someone give me an example of something that takes months that AI can correctly do in hours?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003750&how=up&goto=item%3Fid%3D41991291) |  [jvanveen](user?id=jvanveen) [4 months ago](item?id=42003750) | root | parent | next [[–]](javascript:void\(0\))   
Not hours; but days instead of months: porting around 30k lines of legacy livescript project to typescript. Most of the work is in tweaking a prompt for Claude (using Aider) so the porting process is done correctly.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003829&how=up&goto=item%3Fid%3D41991291) |  [cdchn](user?id=cdchn) [4 months ago](item?id=42003829) | root | parent | next [[–]](javascript:void\(0\))   
Thankfully it seems like AI is best at automating the most tedious and arguably most useless endeavor in software engineering- rewriting perfectly good code in whatever the language du jour is.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004244&how=up&goto=item%3Fid%3D41991291) |  [disgruntledphd2](user?id=disgruntledphd2) [4 months ago](item?id=42004244) | root | parent | next [[–]](javascript:void\(0\))   
Again, what AI is good at shows the revealed preferences of the training data, so it does make sense that it would excel at pointless rewrites.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006933&how=up&goto=item%3Fid%3D41991291) |  [protomolecule](user?id=protomolecule) [4 months ago](item?id=42006933) | root | parent | prev | next [[–]](javascript:void\(0\))   
Legacy code in a dynamically typed language is never good.  
---|---|---  
| ![](s.gif)|  [](vote?id=42013496&how=up&goto=item%3Fid%3D41991291) |  [llm_trw](user?id=llm_trw) [4 months ago](item?id=42013496) | root | parent | prev | next [[–]](javascript:void\(0\))   
Use Undermind to gather a literature review of a field adjacent to the one you’re working in but with a wealth of information that you don’t yet know.Use OpenAI to convert a few thousand lines of code from a language you're familiar with to one you’re not, as all the state-of-the-art tools in the field above use that language. Debug all the issues that arise from the impedance mismatch between the languages. Recreate the results from the seminal paper in the field to verify that the code works, and run it on your own problem. Write a stream-of-consciousness post without spell-checking, then throw it into GPT and ask it to fix it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42012311&how=up&goto=item%3Fid%3D41991291) |  [hnisoss](user?id=hnisoss) [4 months ago](item?id=42012311) | root | parent | prev | next [[–]](javascript:void\(0\))   
sounds to me like you're tooting your own horn.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004489&how=up&goto=item%3Fid%3D41991291) |  [karmasimida](user?id=karmasimida) [4 months ago](item?id=42004489) | parent | prev | next [[–]](javascript:void\(0\))   
I can totally see it.It is actually a testament that, part of Google's code are ... kinda formulaic to some degree. Prior to the LLM take over, we already heard praise how Google's code search works wonder in helping its engineer writing code, LLM just brought that experience to next level.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007119&how=up&goto=item%3Fid%3D41991291) |  [jb1991](user?id=jb1991) [4 months ago](item?id=42007119) | parent | prev | next [[–]](javascript:void\(0\))   
Long before this current AI hype cycle, we’ve had excellent code completion in editors for decades. So I guess by that definition, we’ve all been writing AI assisted code for a very long time.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007215&how=up&goto=item%3Fid%3D41991291) |  [fhd2](user?id=fhd2) [4 months ago](item?id=42007215) | root | parent | next [[–]](javascript:void\(0\))   
I'd say so, and it's a bit misleading to leave that out. Code generation is almost as old as computing. So far, most of it happened to be deterministic.  
---|---|---  
| ![](s.gif)|  [](vote?id=42015608&how=up&goto=item%3Fid%3D41991291) |  [player1234](user?id=player1234) [4 months ago](item?id=42015608) | root | parent | prev | next [[–]](javascript:void\(0\))   
Yeah but it didn't cost trillions and needed its own nuclear power plant. Noone disputes that llm/ai is cool/can be helpful but at what cost, where is the roi?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003527&how=up&goto=item%3Fid%3D41991291) |  [afro88](user?id=afro88) [4 months ago](item?id=42003527) | parent | prev | next [[–]](javascript:void\(0\))   
So more or less on par with continue.dev using a local starcoder2:3b model  
---|---|---  
| ![](s.gif)|  [](vote?id=42003335&how=up&goto=item%3Fid%3D41991291) |  [hackerknew](user?id=hackerknew) [4 months ago](item?id=42003335) | parent | prev | next [[–]](javascript:void\(0\))   
I wondered if this the real context. i.e. They are just referring to code-completion as AI-generated code. But, the article seems like it is referring to more than that?  
---|---|---  
| ![](s.gif)|  [](vote?id=42008508&how=up&goto=item%3Fid%3D41991291) |  [jszymborski](user?id=jszymborski) [4 months ago](item?id=42008508) | parent | prev | next [[–]](javascript:void\(0\))   
Sounds like the JetBrains new local AI autocomplete. If it's anything like that, it's honestly my ideal application of generative deep learning.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008062&how=up&goto=item%3Fid%3D41991291) |  [awkward](user?id=awkward) [4 months ago](item?id=42008062) | parent | prev | next [[–]](javascript:void\(0\))   
Stuff that works well with AI seems to correlate pretty well with high churn changes. I've had good luck using AI to port large numbers of features from version A to version B, or getting code with a a lot of dependencies under mocked unit tests.It's easy to see that adding up quickly to represent large percentages of the codebase by line, but it's not feature development or solving hard problems.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008129&how=up&goto=item%3Fid%3D41991291) |  [blindhippo](user?id=blindhippo) [4 months ago](item?id=42008129) | root | parent | next [[–]](javascript:void\(0\))   
Same things I use it for as well - crap like "update this class to use JDK21" or "re-implement this client to use AWS SDKv2" or whatever.And it works maybe... 80% of the way and I spend all my time fixing the remaining 20%. Anecdotally I don't "feel" like this really accelerates me or reduces the time it would take me to do the change if I just implemented the translation manually.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009876&how=up&goto=item%3Fid%3D41991291) |  [awkward](user?id=awkward) [4 months ago](item?id=42009876) | root | parent | next [[–]](javascript:void\(0\))   
Amazon is publicly claiming that they have saved hundreds of millions on jvm upgrades using AI, so while it feels trivial - because before that work would end up in the "just don't do it" pile - it's a relevant use case.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007834&how=up&goto=item%3Fid%3D41991291) |  [theodric](user?id=theodric) [4 months ago](item?id=42007834) | parent | prev | next [[–]](javascript:void\(0\))   
I wonder how this works with IP rights in the USA. Like, is `function getAc` eligible for copyright protection, but `tionHandler()` isn't? After all, [1][1] [https://www.reuters.com/legal/ai-generated-art-cannot-receiv...](https://www.reuters.com/legal/ai-generated-art-cannot-receive-copyrights-us-court-says-2023-08-21/)  
---|---|---  
| ![](s.gif)|  [](vote?id=42007456&how=up&goto=item%3Fid%3D41991291) |  [bambax](user?id=bambax) [4 months ago](item?id=42007456) | parent | prev | next [[–]](javascript:void\(0\))   
Thank you for this comment. So the code written in this manner isn't really "created by AI"; AI is just a nice additional feature of an editor.I wonder if the enormous hype around AI is a good or bad thing; it's obviously both but will the good win out the bad, or will the disappointment eventually be so overwhelming as to extinguish any enthusiasm.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009515&how=up&goto=item%3Fid%3D41991291) |  [segasaturn](user?id=segasaturn) [4 months ago](item?id=42009515) | parent | prev | next [[–]](javascript:void\(0\))   
How do you square this comment with the one right below it[1], which explicitly confirms the statement that Google is using GenAI via Gemini to write code? Lots of mixed signals coming from the Googlers here.1: [https://news.ycombinator.com/item?id=41992028](https://news.ycombinator.com/item?id=41992028)  
---|---|---  
| ![](s.gif)|  [](vote?id=42008789&how=up&goto=item%3Fid%3D41991291) |  [prismatic-david](user?id=prismatic-david) [4 months ago](item?id=42008789) | parent | prev | next [[–]](javascript:void\(0\))   
This is pretty much what I've found with Copilot as well. It's like a slightly smarter autocomplete in most cases. Copilot tends toward being a little eager sometimes, but it's easy enough to just ignore the suggestions when it starts going down a weird path.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003323&how=up&goto=item%3Fid%3D41991291) |  [ImaCake](user?id=ImaCake) [4 months ago](item?id=42003323) | parent | prev | next [[–]](javascript:void\(0\))   
This autocomplete seems about on par with github copilot. Do you also get options for prompting it on specific chunks of code and performing specific actions such as writing docs or editing existing code? All things that come standard with gh copilot now.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007444&how=up&goto=item%3Fid%3D41991291) |  [_dp9d](user?id=_dp9d) [4 months ago](item?id=42007444) | parent | prev | next [[–]](javascript:void\(0\))   
I'm confused, I've been doing similar tab completion for function names in eclipse since about 2003...  
---|---|---  
| ![](s.gif)|  [](vote?id=42006845&how=up&goto=item%3Fid%3D41991291) |  [aforty](user?id=aforty) [4 months ago](item?id=42006845) | parent | prev | next [[–]](javascript:void\(0\))   
We have this at our company too. I guess it’s useful but doesn’t really have a whole lot of time.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006989&how=up&goto=item%3Fid%3D41991291) |  [markstos](user?id=markstos) [4 months ago](item?id=42006989) | parent | prev | next [[–]](javascript:void\(0\))   
Which editor is Google's AI code completion integrated with? VS Code?  
---|---|---  
| ![](s.gif)|  [](vote?id=42008269&how=up&goto=item%3Fid%3D41991291) |  [hoveringhen](user?id=hoveringhen) [4 months ago](item?id=42008269) | root | parent | next [[–]](javascript:void\(0\))   
Yeah  
---|---|---  
| ![](s.gif)|  [](vote?id=42008180&how=up&goto=item%3Fid%3D41991291) |  [insane_dreamer](user?id=insane_dreamer) [4 months ago](item?id=42008180) | parent | prev | next [[–]](javascript:void\(0\))   
also useful for writing unit tests, comments, descriptions, so if you count all of that as code, together with boilerplate stuff, then yeah, it could add up to 25%.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005664&how=up&goto=item%3Fid%3D41991291) |  [znpy](user?id=znpy) [4 months ago](item?id=42005664) | parent | prev | next [[–]](javascript:void\(0\))   
> If I'm writing "function getAc..." it's smart enough to complete to "function getActionHandler()", and maybe suggest the correct arguments and a decent jsdoc comment.I really mean no offense, but your example doesn't sound much different from what old IDEs (say, Netbeans) used to do 15 years ago.I could design a Swing ui and it would generate the code and if I wanted to override a method it would generate a decent boilerplate boilerplate (a getter, like in your example) along with usual comments and definitely correct parameters list (with correct types).Is this "AI Code" thing something that appears new because at some point we abandoned IDEs with very strong intellisense (etc) ?  
---|---|---  
| ![](s.gif)|  [](vote?id=42008368&how=up&goto=item%3Fid%3D41991291) |  [hoveringhen](user?id=hoveringhen) [4 months ago](item?id=42008368) | root | parent | next [[–]](javascript:void\(0\))   
This video is a pretty good one on how it works in practice: [https://storage.googleapis.com/gweb-research2023-media/media...](https://storage.googleapis.com/gweb-research2023-media/media/AIforSE-ExampleIDE3.mp4)  
---|---|---  
| ![](s.gif)|  [](vote?id=42005398&how=up&goto=item%3Fid%3D41991291) |  [heresie-dabord](user?id=heresie-dabord) [4 months ago](item?id=42005398) | parent | prev | next [[–]](javascript:void\(0\))   
"Our overhyped Autocomplete Implementation (A.I.) is completing 25% of our lines of code so well that we need to fund nuclear reactors to power the server farms."  
---|---|---  
| ![](s.gif)|  [](vote?id=42008195&how=up&goto=item%3Fid%3D41991291) |  [josh_carterPDX](user?id=josh_carterPDX) [4 months ago](item?id=42008195) | parent | prev | next [[–]](javascript:void\(0\))   
My first reaction to the title was, "That explains why things are broken." but this explanation makes so much sense. Thanks for clarifying.But yeah, I wish the new version of Chrome worked better. ¯\\_(ツ)_/¯  
---|---|---  
| ![](s.gif)|  [](vote?id=42003447&how=up&goto=item%3Fid%3D41991291) |  [Galatians4_16](user?id=Galatians4_16) [4 months ago](item?id=42003447) | parent | prev | next [[–]](javascript:void\(0\))   
Kerry said hi  
---|---|---  
| ![](s.gif)|  [](vote?id=41992028&how=up&goto=item%3Fid%3D41991291) |  [ntulpule](user?id=ntulpule) [4 months ago](item?id=41992028) | prev | next [[–]](javascript:void\(0\))   
Hi, I lead the teams responsible for our internal developer tools, including AI features. We work very closely with Google DeepMind to adapt Gemini models for Google-scale coding and other Software Engineering usecases. Google has a unique, massive monorepo which poses a lot of fun challenges when it comes to deploying AI capabilities at scale.1\. We take a lot of care to make sure the AI recommendations are safe and have a high quality bar (regular monitoring, code provenance tracking, adversarial testing, and more).2\. We also do regular A/B tests and randomized control trials to ensure these features are improving SWE productivity and throughput.3\. We see similar efficiencies across all programming languages and frameworks used internally at Google and engineers across all tenure and experience cohorts show similar gain in productivity.You can read more on our approach here:[https://research.google/blog/ai-in-software-engineering-at-g...](https://research.google/blog/ai-in-software-engineering-at-google-progress-and-the-path-ahead/)  
---|---|---  
| ![](s.gif)|  [](vote?id=41992465&how=up&goto=item%3Fid%3D41991291) |  [hitradostava](user?id=hitradostava) [4 months ago](item?id=41992465) | parent | next [[–]](javascript:void\(0\))   
I'm continually surprised by the amount of negativity that accompanies these sort of statements. The direction of travel is very clear - LLM based systems will be writing more and more code at all companies.I don't think this is a bad thing - if this can be accompanied by an increase in software quality, which is possible. Right now its very hit and miss and everyone has examples of LLMs producing buggy or ridiculous code. But once the tooling improves to:1\. align produced code better to existing patterns and architecture 2\. fix the feedback loop - with TDD, other LLM agents reviewing code, feeding in compile errors, letting other LLM agents interact with the produced code, etc.Then we will definitely start seeing more and more code produced by LLMs. Don't look at the state of the art not, look at the direction of travel.  
---|---|---  
| ![](s.gif)|  [](vote?id=41993430&how=up&goto=item%3Fid%3D41991291) |  [latexr](user?id=latexr) [4 months ago](item?id=41993430) | root | parent | next [[–]](javascript:void\(0\))   
> if this can be accompanied by an increase in software qualityThat’s a huge “if”, and by your own admission not what’s happening now.> other LLM agents reviewing code, feeding in compile errors, letting other LLM agents interact with the produced code, etc.What a stupid future. Machines which make errors being “corrected” by machines which make errors in a death spiral. An unbelievable waste of figurative and literal energy.> Then we will definitely start seeing more and more code produced by LLMs.We’re already there. And there’s a lot of bad code being pumped out. Which will in turn be fed back to the LLMs.> Don't look at the state of the art not, look at the direction of travel.That’s what leads to the eternal “in five years” which eventually sinks everyone’s trust.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999653&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=41999653) | root | parent | next [[–]](javascript:void\(0\))   
> What a stupid future. Machines which make errors being “corrected” by machines which make errors in a death spiral. An unbelievable waste of figurative and literal energy.Humans are machines which make errors. Somehow, we got to the moon. The suggestion that errors just mindlessly compound and that there is no way around it, is what's stupid.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001268&how=up&goto=item%3Fid%3D41991291) |  [latexr](user?id=latexr) [4 months ago](item?id=42001268) | root | parent | next [[–]](javascript:void\(0\))   
> Humans are machinesEven if we accept the premise (seeing humans as machines is literally dehumanising and a favourite argument of those who exploit them), not all machines are created equal. Would you use a bicycle to fill your taxes?> Somehow, we got to the moonQuite hand wavey. We didn’t get to the Moon by reading a bunch of text from the era then probabilistically joining word fragments, passing that around the same funnel a bunch of times, then blindly doing what came out, that’s for sure.> The suggestion that errors just mindlessly compound and that there is no way around itIs one that you made up, as that was not my argument.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002556&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42002556) | root | parent | next [[–]](javascript:void\(0\))   
LLMs are a lot better at a lot of things than a lot of humans.We got to the moon using a large number of systems to a) avoid errors where possible and b) build in redundancies. Even an LLM knows this and knew what the statement meant:[https://chatgpt.com/share/6722e04f-0230-8002-8345-5d2eba2e7d...](https://chatgpt.com/share/6722e04f-0230-8002-8345-5d2eba2e7db6)Putting "corrected" in quotes and saying "death spiral" implies error compounding.[https://chatgpt.com/share/6722e19c-7f44-8002-8614-a560620b37...](https://chatgpt.com/share/6722e19c-7f44-8002-8614-a560620b37e0)These LLMs seem so smart.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002587&how=up&goto=item%3Fid%3D41991291) |  [philipwhiuk](user?id=philipwhiuk) [4 months ago](item?id=42002587) | root | parent | next [[–]](javascript:void\(0\))   
> LLMs are a lot better at a lot of things than a lot of humans.Sure, I'm really poor painter, Midjourney is better than me. Are they better than a human trained for that task, on that task? That's the real question.And I reckon the answer is currently no.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002671&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42002671) | root | parent | next [[–]](javascript:void\(0\))   
The real question is can they do a good enough job quickly and cheaply to be valuable. ie, quick and cheap at some level of quality is often "better". Many people are using them in the real world because they can do in 1 minute what might take them hours. I personally save a couple hours a day using ChatGPT.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005305&how=up&goto=item%3Fid%3D41991291) |  [latexr](user?id=latexr) [4 months ago](item?id=42005305) | root | parent | prev | next [[–]](javascript:void\(0\))   
Ah, well then, if the LLM said so then it’s surely right. Because as we all know, LLMs are never ever wrong and they can read minds over the internet. If it says something about a human, then surely you can trust it.You’ve just proven my point. My issue with LLMs is precisely people turning off their brains and blindly taking them at face value, even arduously defending the answers in the face of contrary evidence.If you’re basing your arguments on those answers then we don’t need to have this conversation. I have access to LLMs like everyone else, I don’t need to come to HN to speak with a robot.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008516&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42008516) | root | parent | next [[–]](javascript:void\(0\))   
You didn't read the responses from an LLM. You've turned your brain off. You probably think self-driving cars are also a nonsense idea. Can't work. Too complex. Humans are geniuses without equal. AI is all snake oil. None of it works.  
---|---|---  
| ![](s.gif)|  [](vote?id=42010425&how=up&goto=item%3Fid%3D41991291) |  [latexr](user?id=latexr) [4 months ago](item?id=42010425) | root | parent | next [[–]](javascript:void\(0\))   
You missed the mark _entirely_. But it does reveal how you latch on to an idea about someone and don’t let it go, completely letting it cloud your judgement and arguments. You are not engaging with the conversation at hand, you’re attacking a straw man you have constructed in your head._Of course_ self-driving cars aren’t a nonsense idea. The execution and continued missed promises suck, but that doesn’t affect _the idea_. Claiming “humans are geniuses without equal” would be pretty dumb too, and is again something you’re making up. And something doesn’t have to be “all snake oil” to deserve specific criticism.The world has nuance, learn to see it. It’s not all black and white and I’m not your enemy.  
---|---|---  
| ![](s.gif)|  [](vote?id=42010569&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42010569) | root | parent | next [[–]](javascript:void\(0\))   
Nope, hit the mark.Actually understand LLMs in detail and you'll see it isn't some huge waste of time and energy to have LLMs correct outputs from LLMs.Or, don't, and continue making silly, snarky comments about how stupid some sensible thing is, in a field you don't understand.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006753&how=up&goto=item%3Fid%3D41991291) |  [malcolmgreaves](user?id=malcolmgreaves) [4 months ago](item?id=42006753) | root | parent | prev | next [[–]](javascript:void\(0\))   
> These LLMs seem so smart.Yes, they do *seem* smart. My experience with a wide variety of LLM-based tools is that they are the industrialization of the Dunning-Kruger effect.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007515&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42007515) | root | parent | next [[–]](javascript:void\(0\))   
It's more likely the opposite. Humans rationalize their errors out the wazoo. LLMs are showing us we really aren't very smart at all.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006390&how=up&goto=item%3Fid%3D41991291) |  [Johanx64](user?id=Johanx64) [4 months ago](item?id=42006390) | root | parent | prev | next [[–]](javascript:void\(0\))   
Humans are obviously machines. If not, what are humans then? Fairies?Now once you've recognized that, you're better equiped for task at hand - which is augmenting and ultimately automating away every task that humans-as-machines perform by building equivalent or better machine that performs said tasks at fraction of the cost!People who want to exploit humans are the ones that oppose automation.There's still long way to go, but now we've finally reached a point where some tasks that were very ellusive to automation are starting to show great promise of being automated, or atleast being greatly augmented.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007445&how=up&goto=item%3Fid%3D41991291) |  [beepbooptheory](user?id=beepbooptheory) [4 months ago](item?id=42007445) | root | parent | next [[–]](javascript:void\(0\))   
Profoundly spiritual take. Why is that the task at hand?The conceit that humans are machines carries with it such powerful ideology: humans are _for_ something, we are some kind of utility, not just things in themselves, like birds and rocks. How is it anything other than an affirmation of metaphysical/theological _purpose_ to particularly humans? Why is it like that? This must be coming from a religious context, right?I cannot at least see how you could believe this while sustaining a rational, scientific mind about nature, cosmology, etc. Which is fine! We can all believe things, just know you cant have your cake and eat it too. Namely, if anybody should believe in fairies around here, it should probably be you!  
---|---|---  
| ![](s.gif)|  [](vote?id=42007584&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42007584) | root | parent | next [[–]](javascript:void\(0\))   
> Why is that the task at hand?Because it's boring stuff, and most of us would prefer to be playing golf/tennis/hanging out with friends/painting/etc. If you look at the history of humanity, we've been automating the boring stuff since the start. We don't automate the stuff we like.  
---|---|---  
| ![](s.gif)|  [](vote?id=42012824&how=up&goto=item%3Fid%3D41991291) |  [Johanx64](user?id=Johanx64) [4 months ago](item?id=42012824) | root | parent | prev | next [[–]](javascript:void\(0\))   
Where's the spiritual part?Recognizing that humans, just like birds are self-replicating biological machines is the most level-headed way of looking at it.It is consistent with observations and there are no (apparent) contraditions.The spritual beliefs are the ones with the fairies, binding of the soul, made of special substrate, beyond reason and understanding.If you have desire to improve human condition (not everyone does) then the task at hand naturally arisies - eliminate forced labour, aging, disease, suffering, death, etc.This all naturally leads to automation and transhumanism.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006531&how=up&goto=item%3Fid%3D41991291) |  [lelanthran](user?id=lelanthran) [4 months ago](item?id=42006531) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Humans are obviously machines. If not, what are humans then? Fairies?If humans are machines, then so are fairies.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001819&how=up&goto=item%3Fid%3D41991291) |  [kelnos](user?id=kelnos) [4 months ago](item?id=42001819) | root | parent | prev | next [[–]](javascript:void\(0\))   
The difference is that when we humans learn from our errors, we learn how to make them less often.LLMs get their errors fed back into them and become more confident that their wrong code is right.I'm not saying that's completely unsolvable, but that does seem to be how it works today.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002474&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42002474) | root | parent | next [[–]](javascript:void\(0\))   
That isn't the way they work today. LLMs can easily find errors in outputs they themselves just produced.Start adding different prompts, different models and you get all kinds of ways to catch errors. Just like humans.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004424&how=up&goto=item%3Fid%3D41991291) |  [Lio](user?id=Lio) [4 months ago](item?id=42004424) | root | parent | next [[–]](javascript:void\(0\))   
I don’t think LLMs can easily find errors in their output.There was a recent meme about asking LLMs to draw a wineglass full to the brim with wine.Most really struggle with that instruction. No matter how much you ask them to correct themselves they can’t.I’m sure they’ll get better with more input but what it reveals is that right now they definitely do not understand their own output.I’ve seen no evidence that they are better with code than they are with images.For instance, if the time to complete only scales with length of the token and not the complexity of its contents then it probably safe to assume it’s not being comprehended.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002595&how=up&goto=item%3Fid%3D41991291) |  [philipwhiuk](user?id=philipwhiuk) [4 months ago](item?id=42002595) | root | parent | prev | next [[–]](javascript:void\(0\))   
> LLMs can easily find errors in outputs they themselves just produced.No. LLMs can be told that there was an error and produce an alternative answer.In fact LLMs can be told there was an error when there wasn't one and produce an alternative answer.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002680&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42002680) | root | parent | next [[–]](javascript:void\(0\))   
You don't use LLMs.[https://chatgpt.com/share/6722e41d-6b20-8002-8cbb-3012cd9179...](https://chatgpt.com/share/6722e41d-6b20-8002-8cbb-3012cd9179dd)  
---|---|---  
| ![](s.gif)|  [](vote?id=42004350&how=up&goto=item%3Fid%3D41991291) |  [mavidser](user?id=mavidser) [4 months ago](item?id=42004350) | root | parent | next [[–]](javascript:void\(0\))   
[https://chatgpt.com/share/672331d2-676c-8002-b8b3-10fc4c8d88...](https://chatgpt.com/share/672331d2-676c-8002-b8b3-10fc4c8d8896)In my experience, if you confuse an LLM by deviating from the the "expected", then all the shims of logic seem to disappear, and it goes into hallucination mode.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007619&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42007619) | root | parent | next [[–]](javascript:void\(0\))   
Try asking this question to a bunch of adults.  
---|---|---  
| ![](s.gif)|  [](vote?id=42057909&how=up&goto=item%3Fid%3D41991291) |  [mavidser](user?id=mavidser) [4 months ago](item?id=42057909) | root | parent | next [[–]](javascript:void\(0\))   
Tbf that was exactly my point. An adult might use 'inference' and 'reasoning' to ask clarification, or go with an internal logic of their choosing.ChatGPT here went with a lexigraphical order in Python for some reason, and then proceeded to make false statements from false observations, while also defying its own internal logic.
    
    
        "six" > "ten" is true because "six" comes after "ten" alphabetically.

No.
    
    
        "ten" > "seven" is false because "ten" comes before "seven" alphabetically.

No.From what I understand of LLMs (which - I admit - is not very much), logical reasoning isn't a property of LLMs, unlike information retrieval. I'm sure this problem can be solved at some point, but a good solution would need development of many more kinds of inference and logic engines than there are today.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003854&how=up&goto=item%3Fid%3D41991291) |  [cdchn](user?id=cdchn) [4 months ago](item?id=42003854) | root | parent | prev | next [[–]](javascript:void\(0\))   
Do you believe that the LLM understands what it is saying and is applying the logic that you interprets from its response, or do you think its simply repeating similar patterns of words its seen associated with the question you presented it?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007713&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42007713) | root | parent | next [[–]](javascript:void\(0\))   
If you take the time to build an (S?)LM yourself, you'll realize it's neither of these. "Understands" is an ill-defined term, as is "applying logic".But a LLM is not "simply" doing anything. It's extremely complex and sophisticated. Once you go from tokens into high-dimensional embeddings... it seems these models (with enough training) figure out how all the concepts go together. I'd suggest reading the word2vec paper first, then think about how attention works. You'll come to the conclusion these things are likely to be able to beat humans at almost everything.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004661&how=up&goto=item%3Fid%3D41991291) |  [lomase](user?id=lomase) [4 months ago](item?id=42004661) | root | parent | prev | next [[–]](javascript:void\(0\))   
You said humans are machines that make errors ans that LLMs can easily find errors in output they themself produce.Are you sure you wanted to say that? Or is the other way around?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007730&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42007730) | root | parent | next [[–]](javascript:void\(0\))   
Yes. Just like humans. It's called "checking your work" and we teach it to children. It's effective.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004409&how=up&goto=item%3Fid%3D41991291) |  [0points](user?id=0points) [4 months ago](item?id=42004409) | root | parent | prev | next [[–]](javascript:void\(0\))   
> LLMs can easily find errors in outputs they themselves just produced.Really? That must be a very recent development, because so far this has been a reason for not using them at scale. And noone is.Do you have a source?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007627&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42007627) | root | parent | next [[–]](javascript:void\(0\))   
Lots of companies are using them at scale.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000382&how=up&goto=item%3Fid%3D41991291) |  [reverius42](user?id=reverius42) [4 months ago](item?id=42000382) | root | parent | prev | next [[–]](javascript:void\(0\))   
To err is human. To err at scale is AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004199&how=up&goto=item%3Fid%3D41991291) |  [cetu86](user?id=cetu86) [4 months ago](item?id=42004199) | root | parent | next [[–]](javascript:void\(0\))   
I fear that we'll see a lot of humans err at scale next Tuesday. Global warming is another example of human error at scale.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011058&how=up&goto=item%3Fid%3D41991291) |  [fuzztester](user?id=fuzztester) [4 months ago](item?id=42011058) | root | parent | next [[–]](javascript:void\(0\))   
>next Tuesday.USA (s)election, I guess.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002484&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42002484) | root | parent | prev | next [[–]](javascript:void\(0\))   
To err at scale isn't unique to AI. We don't say "no software, it can err at scale".  
---|---|---  
| ![](s.gif)|  [](vote?id=42007224&how=up&goto=item%3Fid%3D41991291) |  [munk-a](user?id=munk-a) [4 months ago](item?id=42007224) | root | parent | next [[–]](javascript:void\(0\))   
CEOs embracing the marginal gains of LLMs by dumping billions into it are certainly great examples of humans erring at scale.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011063&how=up&goto=item%3Fid%3D41991291) |  [fuzztester](user?id=fuzztester) [4 months ago](item?id=42011063) | root | parent | next [[–]](javascript:void\(0\))   
yep, nano mega.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003546&how=up&goto=item%3Fid%3D41991291) |  [trod123](user?id=trod123) [4 months ago](item?id=42003546) | root | parent | prev | next [[–]](javascript:void\(0\))   
It is by will alone that I set my mind in motion.It is by the juice of Sapho that thoughts acquire speed, the lips become stained, the stains become a warning...  
---|---|---  
| ![](s.gif)|  [](vote?id=42003751&how=up&goto=item%3Fid%3D41991291) |  [fuzztester](user?id=fuzztester) [4 months ago](item?id=42003751) | root | parent | prev | next [[–]](javascript:void\(0\))   
_err_ , "hallucinate" is the euphemism you're looking for. ;)  
---|---|---  
| ![](s.gif)|  [](vote?id=42004562&how=up&goto=item%3Fid%3D41991291) |  [arkh](user?id=arkh) [4 months ago](item?id=42004562) | root | parent | next [[–]](javascript:void\(0\))   
I don't like the use of hallucinate. It implies that LLM have some kind of model of reality and some times get confused. They don't have any kind of model of anything, they cannot "hallucinate", they can only output wrong results.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011194&how=up&goto=item%3Fid%3D41991291) |  [fuzztester](user?id=fuzztester) [4 months ago](item?id=42011194) | root | parent | next [[–]](javascript:void\(0\))   
>They don't have any kind of model of anything, they cannot "hallucinate", they can only output wrong results.it's even more fundamental than that.even if they had any model, they would not be able to think.thinking requires consciousness. only humans and some animals have it. maybe plants too.machines? no way, jose.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011165&how=up&goto=item%3Fid%3D41991291) |  [fuzztester](user?id=fuzztester) [4 months ago](item?id=42011165) | root | parent | prev | next [[–]](javascript:void\(0\))   
yeah, i get you. it was a joke, though.that "hallucinate" term is a marketing gimmick to make it seem to the gullible that this "AI" (i.e. LLMs) can actually think, which is flat out BS.as many others have said here on hn, those who stand to benefit a lot from this are the ones promoting this bullcrap idea (that they (LLMs) are intelligent).greater fool theory.picks and shovels.etc.In detective or murder novels, the cliche is "look for the woman".[https://en.m.wikipedia.org/wiki/Cherchez_la_femme](https://en.m.wikipedia.org/wiki/Cherchez_la_femme)in this case, "follow the money" is the translation, i.e. who really benefits (the investors and founders, the few), as opposed to who is grandly proclaimed to be the beneficiary (us, the many).  
---|---|---  
| ![](s.gif)|  [](vote?id=42013020&how=up&goto=item%3Fid%3D41991291) |  [fuzztester](user?id=fuzztester) [4 months ago](item?id=42013020) | root | parent | next [[–]](javascript:void\(0\))   
s/grand/grandiose/gfrom a search for grand vs grandiose:When it comes to bigness, there's grand and then there's grandiose. Both words can be used to describe something impressive in size, scope, or effect, but while grand may lend its noun a bit of dignity (i.e., “we had a grand time”), grandiose often implies a whiff of pretension.[https://www.merriam-webster.com/dictionary/grandiose](https://www.merriam-webster.com/dictionary/grandiose)  
---|---|---  
| ![](s.gif)|  [](vote?id=42004971&how=up&goto=item%3Fid%3D41991291) |  [openrisk](user?id=openrisk) [4 months ago](item?id=42004971) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Humans are machines which make errors.Indeed, and one of the most interesting errors some human machines are making is hallucinating false analogies.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007766&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=42007766) | root | parent | next [[–]](javascript:void\(0\))   
It wasn't an analogy.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004237&how=up&goto=item%3Fid%3D41991291) |  [goatlover](user?id=goatlover) [4 months ago](item?id=42004237) | root | parent | prev | next [[–]](javascript:void\(0\))   
Machines are intelligently designed for a purpose. Humans are born and grow up, have social lives, a moral status and are conscious, and are ultimately the product of a long line of mindless evolution that has no goals. Biology is not design. It's way messier.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000269&how=up&goto=item%3Fid%3D41991291) |  [nuancebydefault](user?id=nuancebydefault) [4 months ago](item?id=42000269) | root | parent | prev | next [[–]](javascript:void\(0\))   
Exactly my thought. Humans can correct humans. Machines can correct, or at least point to failures in the product of, machines.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000029&how=up&goto=item%3Fid%3D41991291) |  [paradox242](user?id=paradox242) [4 months ago](item?id=42000029) | root | parent | prev | next [[–]](javascript:void\(0\))   
I don't see how this is sustainable. We have essentially eaten the seed corn. These current LLMs have been trained by an enormous corpus of mostly human-generated technical knowledge from sources which we already know to be currently being polluted by AI-generated slop. We also have preliminary research into how poorly these models do when training on data generated by other LLMs. Sure, it can coast off of that initial training set for maybe 5 or more years, but where will the next giant set of unpolluted training data come from? I just don't see it, unless we get something better than LLMs which is closer to AGI or an entire industry is created to explicitly create curated training data to be fed to future models.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000136&how=up&goto=item%3Fid%3D41991291) |  [_DeadFred_](user?id=_DeadFred_) [4 months ago](item?id=42000136) | root | parent | next [[–]](javascript:void\(0\))   
These tools also require the developer class to that they are intended to replace to continue to do what they currently do (create the knowledge source to train the AI on). It's not like the AIs are going to be creating the accessible knowledge bases to train AIs on, especially for new language extensions/libraries/etc. This is a one and f'd development. It will give a one time gain and then companies will be shocked when it falls apart and there's no developers trained up (because they all had to switch careers) to replace them. Unless Google's expectation is that all languages/development/libraries will just be static going forward.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001653&how=up&goto=item%3Fid%3D41991291) |  [layer8](user?id=layer8) [4 months ago](item?id=42001653) | root | parent | next [[–]](javascript:void\(0\))   
One of my concerns is that AI may actually slow innovation in software development (tooling, languages, protocols, frameworks and libraries), because the opportunity cost of adopting them will increase, if AI remains unable to be taught new knowledge quickly.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004722&how=up&goto=item%3Fid%3D41991291) |  [mathw](user?id=mathw) [4 months ago](item?id=42004722) | root | parent | next [[–]](javascript:void\(0\))   
It also bugs me that these tools will reduce the incentive to write better frameworks and language features if all the horrible boilerplate is just written by an LLM for us rather than finding ways to design systems which don't need it.The idea that our current languages might be as far as we get is absolutely demoralising. I don't want a tool to help me write pointless boilerplate in a bad language, I want a better language.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002803&how=up&goto=item%3Fid%3D41991291) |  [batty_alex](user?id=batty_alex) [4 months ago](item?id=42002803) | root | parent | prev | next [[–]](javascript:void\(0\))   
This is my main concern. What's the point of other tools when none of the LLMs have been trained on it and you need to deliver yesterday?It's an insanely conservative tool  
---|---|---  
| ![](s.gif)|  [](vote?id=42003940&how=up&goto=item%3Fid%3D41991291) |  [jamil7](user?id=jamil7) [4 months ago](item?id=42003940) | root | parent | prev | next [[–]](javascript:void\(0\))   
You already see this if you use a language outside of Python, JS or SQL.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003154&how=up&goto=item%3Fid%3D41991291) |  [wahnfrieden](user?id=wahnfrieden) [4 months ago](item?id=42003154) | root | parent | prev | next [[–]](javascript:void\(0\))   
that is solved via larger contexts  
---|---|---  
| ![](s.gif)|  [](vote?id=42003866&how=up&goto=item%3Fid%3D41991291) |  [layer8](user?id=layer8) [4 months ago](item?id=42003866) | root | parent | next [[–]](javascript:void\(0\))   
It’s not, unless contexts get as large as comparable training materials. And you’d have to compile adequate materials. Clearly, just adding some documentation about $tool will not have the same effect as adding all the gigabytes of internet discussion and open source code regarding $tool that the model would otherwise have been trained on. This is similar to handing someone documentation and immediately asking questions about the tool, compared to asking someone who had years of experience with the tool.Lastly, it’s also a huge waste of energy to feed the same information over and over again for each query.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008548&how=up&goto=item%3Fid%3D41991291) |  [wahnfrieden](user?id=wahnfrieden) [4 months ago](item?id=42008548) | root | parent | next [[–]](javascript:void\(0\))   
\- context of millions of tokens is frontier\- context over training is like someone referencing docs vs vaguely recalling from decayed memory\- context caching  
---|---|---  
| ![](s.gif)|  [](vote?id=42009197&how=up&goto=item%3Fid%3D41991291) |  [layer8](user?id=layer8) [4 months ago](item?id=42009197) | root | parent | next [[–]](javascript:void\(0\))   
You’re assuming that everything can be easily known from documentation. That’s far from the truth. A lot of what LLMs produce is informed by having been trained on large amounts of source code and large amounts of discussions where people have shared their knowledge from experience, which you can’t get from the documentation.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004490&how=up&goto=item%3Fid%3D41991291) |  [0points](user?id=0points) [4 months ago](item?id=42004490) | root | parent | prev | next [[–]](javascript:void\(0\))   
Yea, I'm thinking along the same lines.The companies valuing the expensive talent currently working on Google will be the winner.Google and others are betting big right now, but I feel the winner might be those who watches how it unfolds first.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000148&how=up&goto=item%3Fid%3D41991291) |  [brainwad](user?id=brainwad) [4 months ago](item?id=42000148) | root | parent | prev | next [[–]](javascript:void\(0\))   
The LLM codegen at Google isn't unsupervised. It's integrated into the IDE as both autocomplete and prompt-based assistant, so you get a lot of feedback from a) what suggestions the human accepts and b) how they fix the suggestion when it's not perfect. So future iterations of the model won't be trained on LLM output, but on a mixture of human written code and human-corrected LLM output.As a dev, I like it. It speeds up writing easy but tedious code. It's just a bit smarter version of the refactoring tools already common in IDEs...  
---|---|---  
| ![](s.gif)|  [](vote?id=42001831&how=up&goto=item%3Fid%3D41991291) |  [kelnos](user?id=kelnos) [4 months ago](item?id=42001831) | root | parent | next [[–]](javascript:void\(0\))   
What about (c) the human doesn't realize the LLM-generated code is flawed, and accepts it?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003376&how=up&goto=item%3Fid%3D41991291) |  [monocasa](user?id=monocasa) [4 months ago](item?id=42003376) | root | parent | next [[–]](javascript:void\(0\))   
I mean what happens when a human doesn't realize the human generated code is wrong and accepts the PR and it becomes part of the corpus of 'safe' code?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003513&how=up&goto=item%3Fid%3D41991291) |  [jaredsohn](user?id=jaredsohn) [4 months ago](item?id=42003513) | root | parent | next [[–]](javascript:void\(0\))   
Presumably someone will notice the bug in both of these scenarios at some point and it will no longer be treated as safe.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006503&how=up&goto=item%3Fid%3D41991291) |  [skydhash](user?id=skydhash) [4 months ago](item?id=42006503) | root | parent | prev | next [[–]](javascript:void\(0\))   
Do you ask a junior to review your code or someone experienced in the codebase?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003284&how=up&goto=item%3Fid%3D41991291) |  [loki-ai](user?id=loki-ai) [4 months ago](item?id=42003284) | root | parent | prev | next [[–]](javascript:void\(0\))   
maybe most of the code in the future will be very different from what we’re used to. For instance, AI image processing/computer vision algorithms are being adopted very quickly given the best ones are now mostly transformers networks.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003728&how=up&goto=item%3Fid%3D41991291) |  [spockz](user?id=spockz) [4 months ago](item?id=42003728) | root | parent | prev | next [[–]](javascript:void\(0\))   
My main gripe with this form of code generation is that is primarily used to generate “leaf” code. Code that will not be further adjusted or refactored into the right abstractions.It is now very easy to sprinkle in regexes to validate user input , like email addresses, on every controller instead of using a central lib/utility for that.In the hands of a skilled engineer it is a good tool. But for the rest it mainly serves to output more garbage at a higher rate.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003844&how=up&goto=item%3Fid%3D41991291) |  [cdchn](user?id=cdchn) [4 months ago](item?id=42003844) | root | parent | next [[–]](javascript:void\(0\))   
>It is now very easy to sprinkle in regexes to validate user input , like email addresses, on every controller instead of using a central lib/utility for that.Some people are touting this as a major feature. "I don't have to pull in some dependency for a minor function - I can just have AI write that simple function for me." I, personally, don't see this as a net positive.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003942&how=up&goto=item%3Fid%3D41991291) |  [spockz](user?id=spockz) [4 months ago](item?id=42003942) | root | parent | next [[–]](javascript:void\(0\))   
Yes, I have heard similar arguments before. It could be an argument for including the functionality in the standard lib for the language. There can be a long debate about dependencies, and then there is still the benefit of being able to vendor and prune them.The way it is now just leads to bloat and cruft.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002610&how=up&goto=item%3Fid%3D41991291) |  [philipwhiuk](user?id=philipwhiuk) [4 months ago](item?id=42002610) | root | parent | prev | next [[–]](javascript:void\(0\))   
> The direction of travel is very clearAnd if we get 9 women we can produce a baby in a single month.There's no guarantee such progression will continue. Indeed, there's much more evidence it is coming to a a halt.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004293&how=up&goto=item%3Fid%3D41991291) |  [Towaway69](user?id=Towaway69) [4 months ago](item?id=42004293) | root | parent | next [[–]](javascript:void\(0\))   
It might also be an example of 80/20 - we're just entering the 20% of features that take 80% of the time & effort.It might be possible but will shareholders/investors foot the bill for the 80% that they still have to pay.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004123&how=up&goto=item%3Fid%3D41991291) |  [farseer](user?id=farseer) [4 months ago](item?id=42004123) | root | parent | prev | next [[–]](javascript:void\(0\))   
Its not even been 2 years, and you think things are coming to a halt?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004441&how=up&goto=item%3Fid%3D41991291) |  [0points](user?id=0points) [4 months ago](item?id=42004441) | root | parent | next [[–]](javascript:void\(0\))   
Yes. The models require training data and they already been fed the internet.More and more of the content generated since is LLM generated and useless as training data.The models get worse, not better by being fed their own output, and right now they are out of training data.This is why Reddit just went profitable, AI companies buy their text to train their models because it is at least somewhat human written.Of course, even reddit is crawling with LLM generated text, so yes. It is coming to a halt.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005679&how=up&goto=item%3Fid%3D41991291) |  [CaptainFever](user?id=CaptainFever) [4 months ago](item?id=42005679) | root | parent | next [[–]](javascript:void\(0\))   
Data is not the only factor. Architecture improvements, data filtering etc. matter too.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004152&how=up&goto=item%3Fid%3D41991291) |  [simianparrot](user?id=simianparrot) [4 months ago](item?id=42004152) | root | parent | prev | next [[–]](javascript:void\(0\))   
I know for a fact they are because rate _and_ quality of improvement is diminishing exponentially. I keep a close eye on this field as part of my job.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006520&how=up&goto=item%3Fid%3D41991291) |  [lelanthran](user?id=lelanthran) [4 months ago](item?id=42006520) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Don't look at the state of the art not, look at the direction of travel.That's what people are doing. The direction of travel over the most recent few (6-12) months is mostly flat.The direction of travel when first introduced was a very steep line going from bottom-left to top-right.We are not there anymore.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004196&how=up&goto=item%3Fid%3D41991291) |  [olalonde](user?id=olalonde) [4 months ago](item?id=42004196) | root | parent | prev | next [[–]](javascript:void\(0\))   
> I'm continually surprised by the amount of negativityMaybe I'm just old, but to me, LLMs feel like magic. A decade ago, anyone predicting their future capabilities would have been laughed at.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004275&how=up&goto=item%3Fid%3D41991291) |  [Towaway69](user?id=Towaway69) [4 months ago](item?id=42004275) | root | parent | next [[–]](javascript:void\(0\))   
Magic Makes Money - the more magical something seems, the more people are willing to pay for that something.The discussion here seems to bare this out: CEO claims AI is magical, here the truth becomes that it’s just an auto-complete engine.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004482&how=up&goto=item%3Fid%3D41991291) |  [guappa](user?id=guappa) [4 months ago](item?id=42004482) | root | parent | prev | next [[–]](javascript:void\(0\))   
Nah, you just were not up to speed with the current research. Which is completely normal. Now marketing departments are on the job.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004610&how=up&goto=item%3Fid%3D41991291) |  [davedx](user?id=davedx) [4 months ago](item?id=42004610) | root | parent | next [[–]](javascript:void\(0\))   
Transformers were proposed in 2017. A decade ago none of this was predictable.  
---|---|---  
| ![](s.gif)|  [](vote?id=42016697&how=up&goto=item%3Fid%3D41991291) |  [guappa](user?id=guappa) [4 months ago](item?id=42016697) | root | parent | next [[–]](javascript:void\(0\))   
emacs psichologist was there from before :DAnd so were a lot of markov chain based chatbots. Also Doretta, the microsoft AI/search engine chatbot.Were they as good? No. Is this an iteration of those? Absolutely.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011149&how=up&goto=item%3Fid%3D41991291) |  [protomolecule](user?id=protomolecule) [4 months ago](item?id=42011149) | root | parent | prev | next [[–]](javascript:void\(0\))   
Kurzweil would disagree)  
---|---|---  
| ![](s.gif)|  [](vote?id=42003765&how=up&goto=item%3Fid%3D41991291) |  [mmmpetrichor](user?id=mmmpetrichor) [4 months ago](item?id=42003765) | root | parent | prev | next [[–]](javascript:void\(0\))   
That's the hype isn't it. The direction of travel hasn't been proven to be more than a surface level yet.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000839&how=up&goto=item%3Fid%3D41991291) |  [randomNumber7](user?id=randomNumber7) [4 months ago](item?id=42000839) | root | parent | prev | next [[–]](javascript:void\(0\))   
Because there seems to be a fundamental misunderstanding producing a lot of nonsense.Of course LLMs are a fantastic tool to improve productivity, but current LLM's cannot produce anything novel. They can only reproduce what they have seen.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003716&how=up&goto=item%3Fid%3D41991291) |  [visarga](user?id=visarga) [4 months ago](item?id=42003716) | root | parent | next [[–]](javascript:void\(0\))   
But they assist developers and collect novel coding experience from their projects all the time. Each application of LLM creates feedback to the AI code - the human might leave it as is, slightly change it, or refuse it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004369&how=up&goto=item%3Fid%3D41991291) |  [0points](user?id=0points) [4 months ago](item?id=42004369) | root | parent | prev | next [[–]](javascript:void\(0\))   
> LLM based systems will be writing more and more code at all companies.At Google, today, for sure.I do believe we still are not across the road on this one.> if this can be accompanied by an increase in software quality, which is possible. Right now its very hit and missSo, is it really a smart move of Google to enforce this today, before quality have increased? Or did this set off their path to losing market shares because their software quality will deteriorate further over the next couple years?From the outside it just seems Google and others have no choice, they must walk this path or lose market valuation.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008118&how=up&goto=item%3Fid%3D41991291) |  [dogleash](user?id=dogleash) [4 months ago](item?id=42008118) | root | parent | prev | next [[–]](javascript:void\(0\))   
> I'm continually surprised by the amount of negativity that accompanies these sort of statements.I'm excited about the possibilities and I still recoil at the refined marketer prose.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003197&how=up&goto=item%3Fid%3D41991291) |  [fallingknife](user?id=fallingknife) [4 months ago](item?id=42003197) | root | parent | prev | next [[–]](javascript:void\(0\))   
I'm not really seeing this direction of travel. I hear a lot of claims, but they are always 3rd person. I don't know or work with any engineers who rely heavily on these tools for productivity. I don't even see any convincing videos on Youtube. Just show me on engineer sitting down with theses tools for a couple hours and writing a feature that would normally take a couple of days. I'll believe it when I see it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004160&how=up&goto=item%3Fid%3D41991291) |  [Roark66](user?id=Roark66) [4 months ago](item?id=42004160) | root | parent | next [[–]](javascript:void\(0\))   
Well, I rely on it a lot, but not in the IDE, I copy/paste my code and prompts between the ide and LLM. By now I have a library of prompts in each project I can tweak that I can just reuse. It makes me 25% up to 50% faster. Does this mean every project t is done in 50/75% of the time? No, the actual completion time is maybe 10% faster, but i do get a lot more time to spend on thinking about the overall design instead of writing boilerplate and reading reference documents.Why no youtube videos thought? Well, most dev you tubers are actual devs that cultivate an image of "I'm faster than LLM, I never re-read library references, I memorise them on first read" and do on. If they then show you a video how they forgot the syntax for this or that maven plugin config and how LLM fills it in 10s instead of a 5min Google search that makes them look less capable on their own. Why would they do that?  
---|---|---  
| ![](s.gif)|  [](vote?id=42006571&how=up&goto=item%3Fid%3D41991291) |  [skydhash](user?id=skydhash) [4 months ago](item?id=42006571) | root | parent | next [[–]](javascript:void\(0\))   
Why don’t you read reference documents? The thing with bite-sized information is that is never gives you a coherent global view of the space. It’s like exploring a territory by crawling instead of using a map.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009075&how=up&goto=item%3Fid%3D41991291) |  [fallingknife](user?id=fallingknife) [4 months ago](item?id=42009075) | root | parent | prev | next [[–]](javascript:void\(0\))   
Can you give me an example of one of these useful prompts? I'd love to try it out.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003755&how=up&goto=item%3Fid%3D41991291) |  [fuzztester](user?id=fuzztester) [4 months ago](item?id=42003755) | root | parent | prev | next [[–]](javascript:void\(0\))   
you said it, bro.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003271&how=up&goto=item%3Fid%3D41991291) |  [baxtr](user?id=baxtr) [4 months ago](item?id=42003271) | root | parent | prev | next [[–]](javascript:void\(0\))   
I think that at least partially the negativity is due to the tech bros hyping AI just like they hyped crypto.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992035&how=up&goto=item%3Fid%3D41991291) |  [reverius42](user?id=reverius42) [4 months ago](item?id=41992035) | parent | prev | next [[–]](javascript:void\(0\))   
To me the most interesting part of this is the claim that you can accurately and meaningfully measure software engineering productivity.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992562&how=up&goto=item%3Fid%3D41991291) |  [ozim](user?id=ozim) [4 months ago](item?id=41992562) | root | parent | next [[–]](javascript:void\(0\))   
You can - but not on the level of a single developer and you cannot use those measures to manage productivity of a specific dev.For teams you can measure meaningful outcomes and improve team metrics.You shouldn’t really compare teams but it also is possible if you know what teams are doing.If you are some disconnected manager that thinks he can make decisions or improvements reducing things to single numbers - yeah that’s not possible.  
---|---|---  
| ![](s.gif)|  [](vote?id=41994081&how=up&goto=item%3Fid%3D41991291) |  [deely3](user?id=deely3) [4 months ago](item?id=41994081) | root | parent | next [[–]](javascript:void\(0\))   
> For teams you can measure meaningful outcomes and improve team metrics.How? Which metrics?  
---|---|---  
| ![](s.gif)|  [](vote?id=41999603&how=up&goto=item%3Fid%3D41991291) |  [anthonyskipper](user?id=anthonyskipper) [4 months ago](item?id=41999603) | root | parent | next [[–]](javascript:void\(0\))   
My company uses the Dora metrics to measure the productivity of teams and those metrics are incredibly good.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008048&how=up&goto=item%3Fid%3D41991291) |  [Capricorn2481](user?id=Capricorn2481) [4 months ago](item?id=42008048) | root | parent | next [[–]](javascript:void\(0\))   
These are awesome, but feel more applicable to DevOps than anything else. Development can certainly affect these metrics, but assuming your code doesn't introduce a huge bug that crashes the server, this is mostly for people deploying apps.I think it's harder to measure things like developer productivity. The closest thing we have is making an estimate and seeing how far off you are, but that doesn't account for hedging estimates or requirements suddenly changing. Changing requirements doesn't matter for DORA as it's just another sample to test for deployment.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003039&how=up&goto=item%3Fid%3D41991291) |  [neaanopri](user?id=neaanopri) [4 months ago](item?id=42003039) | root | parent | prev | next [[–]](javascript:void\(0\))   
There's only one metric that matters at the end of the day, and that's $. Revenue.Unfortunately there's a lot of lag  
---|---|---  
| ![](s.gif)|  [](vote?id=42003342&how=up&goto=item%3Fid%3D41991291) |  [ImaCake](user?id=ImaCake) [4 months ago](item?id=42003342) | root | parent | next [[–]](javascript:void\(0\))   
> Unfortunately there's a lot of lagA great generalisation and understatement! Often looking like you are becoming more efficient is more important than actually being more efficient, e.g you need to impress investors. So you cut back on maintenance and other cost centres and the new management can blame you in 6 years time for it when you are far enough away from it to not hurt you.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003763&how=up&goto=item%3Fid%3D41991291) |  [fuzztester](user?id=fuzztester) [4 months ago](item?id=42003763) | root | parent | prev | next [[–]](javascript:void\(0\))   
s/Revenue/profit/g  
---|---|---  
| ![](s.gif)|  [](vote?id=41994340&how=up&goto=item%3Fid%3D41991291) |  [ozim](user?id=ozim) [4 months ago](item?id=41994340) | root | parent | prev | next [[–]](javascript:void\(0\))   
That is what we pay managers -to figure out- for. They should find out which and how by knowing the team, familiarity with domain knowledge, understanding company dynamics, understanding customer, understanding market dynamics.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999773&how=up&goto=item%3Fid%3D41991291) |  [seanmcdirmid](user?id=seanmcdirmid) [4 months ago](item?id=41999773) | root | parent | next [[–]](javascript:void\(0\))   
That's basically a non-answer. Measuring "productivity" is a well known hard problem, and managers haven't really figured it out...  
---|---|---  
| ![](s.gif)|  [](vote?id=42000607&how=up&goto=item%3Fid%3D41991291) |  [mdorazio](user?id=mdorazio) [4 months ago](item?id=42000607) | root | parent | next [[–]](javascript:void\(0\))   
It's not a non-answer. Good managers need to figure out what metrics make sense for the team they are managing, and that will change depending on the company and team. It might be new features, bug fixes, new product launch milestones, customer satisfaction, ad revenue, or any of a hundred other things.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000770&how=up&goto=item%3Fid%3D41991291) |  [seanmcdirmid](user?id=seanmcdirmid) [4 months ago](item?id=42000770) | root | parent | next [[–]](javascript:void\(0\))   
I would want a specific example in that case rather than "the good managers figure it out" because in my experience, the bad managers pretend to figure it out while the good managers admit that they can't figure it out. Worse still, if you tell your reports what those metrics are, they will optimize them to death, potentially tanking the product (I can increase my bug fix count if there are more bugs to fix...).  
---|---|---  
| ![](s.gif)|  [](vote?id=42001093&how=up&goto=item%3Fid%3D41991291) |  [ozim](user?id=ozim) [4 months ago](item?id=42001093) | root | parent | next [[–]](javascript:void\(0\))   
So for a specific example I would have to outline 1-2 years of history of a team and product as a starter.Then I would have to go on outlining 6-12 months of trying stuff out.Because if I just give "an example" I will get dozens of "smart ass" replies how this specific one did not work for them and I am stupid. Thanks but don't have time for that or for writing an essay that no one will read anyway and call me stupid or demand even more explanation. :)  
---|---|---  
| ![](s.gif)|  [](vote?id=42002350&how=up&goto=item%3Fid%3D41991291) |  [seanmcdirmid](user?id=seanmcdirmid) [4 months ago](item?id=42002350) | root | parent | next [[–]](javascript:void\(0\))   
I get it, you are a true believer. I just disagree with your belief, and the fact that you can't bring credible examples to the table just reinforces that disagreement in my mind.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005659&how=up&goto=item%3Fid%3D41991291) |  [hshshshshsh](user?id=hshshshshsh) [4 months ago](item?id=42005659) | root | parent | prev | next [[–]](javascript:void\(0\))   
The thing is even bad managers can thrive in a company with a large userbase like Google. There is a lot of momentum built into product and engineering.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000760&how=up&goto=item%3Fid%3D41991291) |  [randomNumber7](user?id=randomNumber7) [4 months ago](item?id=42000760) | root | parent | prev | next [[–]](javascript:void\(0\))   
I heard lines of code is a hot one.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001754&how=up&goto=item%3Fid%3D41991291) |  [hshshshshsh](user?id=hshshshshsh) [4 months ago](item?id=42001754) | root | parent | prev | next [[–]](javascript:void\(0\))   
So basically you have nothing useful to say?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004734&how=up&goto=item%3Fid%3D41991291) |  [ozim](user?id=ozim) [4 months ago](item?id=42004734) | root | parent | next [[–]](javascript:void\(0\))   
I have to say that there is no solution that will work for "every team on every product".This seems to be useful to understand and internalize that there are no simple answers like "use story points!".There is also loads of people who don't understand that, so I stand by that is useful and important to repeat on every possible occasion.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000225&how=up&goto=item%3Fid%3D41991291) |  [yorwba](user?id=yorwba) [4 months ago](item?id=42000225) | root | parent | prev | next [[–]](javascript:void\(0\))   
Economists are generally fine with defining productivity as the ratio of aggregate outputs to aggregate inputs.Measuring it is not the hard part.The hard part is doing anything about it. If you can't attribute specific outputs to specific inputs, you don't know how to change inputs to maximize outputs. That's what managers need to do, but of course they're often just guessing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000312&how=up&goto=item%3Fid%3D41991291) |  [seanmcdirmid](user?id=seanmcdirmid) [4 months ago](item?id=42000312) | root | parent | next [[–]](javascript:void\(0\))   
Measuring human productivity is hard since we can't quantify output beyond silly metrics like lines of code written or amount of time speaking during meetings. Maybe if we were hunter/gatherers we could measure it by amount of animals killed.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001226&how=up&goto=item%3Fid%3D41991291) |  [ozim](user?id=ozim) [4 months ago](item?id=42001226) | root | parent | next [[–]](javascript:void\(0\))   
Well I pretty much see which team members are slacking and which are working hard.But I do code myself, I write requirements so I do know which ones are trivial and which ones are not. I also see when there are complex migrations.If you work in a group of people you will also get feedback - doesn't have to be snitching but still you get the feel who is a slacker in the group.It is hard to quantify the output if you want to be removed from the group "give me a number" manager. If you actually do the work of a manager so you get the feel of the group like who is "Hermione Granger" nagging that others are slacking and disregard their opinion, you see who is the "silent doer" or you see who is "we should do it properly" bullshitter you can make a lot of meaningful adjustments.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005103&how=up&goto=item%3Fid%3D41991291) |  [rightbyte](user?id=rightbyte) [4 months ago](item?id=42005103) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Maybe if we were hunter/gatherers we could measure it by amount of animals killed.Even that would be hard since hunting is complex. If you are the one chasing the pray into the arms of someone else, you surely want it to be considered a team effort.You need like 'blueberries picked'.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000423&how=up&goto=item%3Fid%3D41991291) |  [yorwba](user?id=yorwba) [4 months ago](item?id=42000423) | root | parent | prev | next [[–]](javascript:void\(0\))   
That's why upthread we have [https://news.ycombinator.com/item?id=41992562](https://news.ycombinator.com/item?id=41992562)"You can [accurately and meaningfully measure software engineering productivity] - but not on the level of a single developer and you cannot use those measures to manage productivity of a specific dev."At the level of a company like Google, it's easy: both inputs and outputs are measured in terms of money.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001346&how=up&goto=item%3Fid%3D41991291) |  [ozim](user?id=ozim) [4 months ago](item?id=42001346) | root | parent | next [[–]](javascript:void\(0\))   
As you point back to my comment.I am not Amazon person - but from my experience 2 pizza teams was what worked and I never implemented it myself just what I observed in wild.Measuring Google in terms of money is also flawed, there is loads of BS hidden there and lots of people paying big companies more just because they are big companies.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004235&how=up&goto=item%3Fid%3D41991291) |  [js8](user?id=js8) [4 months ago](item?id=42004235) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Maybe if we were hunter/gatherers we could measure it by amount of animals killed.So that's how animal husbandry came about!  
---|---|---  
| ![](s.gif)|  [](vote?id=42002770&how=up&goto=item%3Fid%3D41991291) |  [beefnugs](user?id=beefnugs) [4 months ago](item?id=42002770) | root | parent | prev | next [[–]](javascript:void\(0\))   
haha that is not what managers do. Managers follow their KPIs exactly. If their KPIs say they get payed a bonus if profit goes up, then manager does smart number stuff and sees "if we fire 15% of employees this year, my pay goes up 63%" and then that happens  
---|---|---  
| ![](s.gif)|  [](vote?id=42001767&how=up&goto=item%3Fid%3D41991291) |  [hshshshshsh](user?id=hshshshshsh) [4 months ago](item?id=42001767) | root | parent | prev | next [[–]](javascript:void\(0\))   
That sounds like a micro manager. I would imagine good engineers can figure out something for themselves.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008202&how=up&goto=item%3Fid%3D41991291) |  [zac23or](user?id=zac23or) [4 months ago](item?id=42008202) | root | parent | prev | next [[–]](javascript:void\(0\))   
I knew a superstar developer who worked on reports in an SQL tool. In the company metrics, the developer scored 420 points per month, the second developer scored 60 points. “Please learn how to score more points from the leader”, the boss would say.The superstar developer’s secret… he would send blank reports to clients (who would only realize it days later, and someone else would end up redoing the report), and he would score many more points without doing anything. I’ve seen this happen a lot in many different companies. As a friend of mine used to say, “it’s very rare, but it happens all the time.”I have no doubt that AI can help developers, but I don’t trust the metrics of the CEO or people who work on AI, because they are too involved in the subject.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009500&how=up&goto=item%3Fid%3D41991291) |  [svieira](user?id=svieira) [4 months ago](item?id=42009500) | root | parent | next [[–]](javascript:void\(0\))   
> When people are pressured to meet a target value there are three ways they can proceed:1) They can work to improve the system2) They can distort the system3) Or they can distort the data[https://commoncog.com/goodharts-law-not-useful/](https://commoncog.com/goodharts-law-not-useful/)  
---|---|---  
| ![](s.gif)|  [](vote?id=42009579&how=up&goto=item%3Fid%3D41991291) |  [torginus](user?id=torginus) [4 months ago](item?id=42009579) | root | parent | prev | next [[–]](javascript:void\(0\))   
Honestly I doubt he got away with this for long (unless it was a very dysfunctional org). Being the best gets you noticed (in a good way), and screwing people over gets you noticed too (in a bad way), the combination of the two paints a target on your back.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009868&how=up&goto=item%3Fid%3D41991291) |  [GeoAtreides](user?id=GeoAtreides) [4 months ago](item?id=42009868) | root | parent | next [[–]](javascript:void\(0\))   
> Being the best gets you noticed (in a good way), and screwing people over gets you noticed too (in a bad way),ah, to be young again...  
---|---|---  
| ![](s.gif)|  [](vote?id=42015263&how=up&goto=item%3Fid%3D41991291) |  [torginus](user?id=torginus) [4 months ago](item?id=42015263) | root | parent | next [[–]](javascript:void\(0\))   
I don't know what you're implying - I have had a few instances in my career when I went above and beyond and while I didn't receive too much praise for my efforts directly, after a while I noticed people who had no business knowing who I was, actually did.Now, I was really bad at capitalizing on it, so nothing much came of it, but still, there are some positive things that higher-ups do notice.  
---|---|---  
| ![](s.gif)|  [](vote?id=41993341&how=up&goto=item%3Fid%3D41991291) |  [UncleMeat](user?id=UncleMeat) [4 months ago](item?id=41993341) | root | parent | prev | next [[–]](javascript:void\(0\))   
At scale you can do this in a bunch of interesting ways. For example, you could measure "amount of time between opening a crash log and writing the first character of a new change" across 10,000s of engineers. Yes, each individual data point is highly messy. Alice might start coding as a means of investigation. Bob might like to think about the crash over dinner. Carol might get a really hard bug while David gets a really easy one. But at scale you can see how changes in the tools change this metric.None of this works to evaluate individuals or even teams. But it can be effective at evaluating tools.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000688&how=up&goto=item%3Fid%3D41991291) |  [fwip](user?id=fwip) [4 months ago](item?id=42000688) | root | parent | next [[–]](javascript:void\(0\))   
There's lots of stuff you can measure. It's not clear whether any of it is correlated with productivity.To use your example, a user with an LLM might say "LLM please fix this" as a first line of action, drastically improving this metric, even if it ruins your overall productivity.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992282&how=up&goto=item%3Fid%3D41991291) |  [valval](user?id=valval) [4 months ago](item?id=41992282) | root | parent | prev | next [[–]](javascript:void\(0\))   
You can come up with measures for it and then watch them, that’s for sure.  
---|---|---  
| ![](s.gif)|  [](vote?id=41994401&how=up&goto=item%3Fid%3D41991291) |  [lr1970](user?id=lr1970) [4 months ago](item?id=41994401) | root | parent | next [[–]](javascript:void\(0\))   
when metric becomes the target it ceases to be a good metric. when discovered how it works developers will type the first character immediately after opening the log.edit: typo  
---|---|---  
| ![](s.gif)|  [](vote?id=42000673&how=up&goto=item%3Fid%3D41991291) |  [joshuamorton](user?id=joshuamorton) [4 months ago](item?id=42000673) | root | parent | next [[–]](javascript:void\(0\))   
Only if the developer is being judged on the thing. If the _tool_ is being judged on the thing, it's much less relevant.That is, I, personally, am not measured on how much AI generated code I create, and while the number is non-zero, I can't tell you what it is because I don't care and don't have any incentive to care. And I'm someone who is personally fairly bearish on the value of LLM-based codegen/autocomplete.  
---|---|---  
| ![](s.gif)|  [](vote?id=42010049&how=up&goto=item%3Fid%3D41991291) |  [valval](user?id=valval) [4 months ago](item?id=42010049) | root | parent | prev | next [[–]](javascript:void\(0\))   
That was my point, veiled in an attempt to be cute.  
---|---|---  
| ![](s.gif)|  [](vote?id=41994239&how=up&goto=item%3Fid%3D41991291) |  [LinuxBender](user?id=LinuxBender) [4 months ago](item?id=41994239) | parent | prev | next [[–]](javascript:void\(0\))   
Is AI ready to crawl through all open source and find / fix all the potential security bugs or all bugs for that matter? If so will that become a commercial service or a free service?Will AI be able to detect bugs and back doors that require multiple pieces of code working together rather than being in a single piece of code? Humans have a hard time with this.\- _Hypothetical Example: Authentication bugs in sshd that requires a flaw in systemd which then requires a flaw in udev or nss or PAM or some underlying library ... but looking at each individual library or daemon there are no bugs that a professional penetration testing organization such as the NCC group or Google 's Project Zero would find._ In other words, will AI soon be able to find more complex bugs in a year than Tavis has found in his career and will they start to compete with one another and start finding all the state sponsored complex bugs and then ultimately be able to create a map that suggests a common set of developers that may need to be notified? Will there be a table that logs where AI found things that professional human penetration testers could not?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004617&how=up&goto=item%3Fid%3D41991291) |  [0points](user?id=0points) [4 months ago](item?id=42004617) | root | parent | next [[–]](javascript:void\(0\))   
No, that would require AGI. Actual reasoning.Adversaries are already detecting issues tho, using proven means such as code review and fuzzing.Google project zero consists of a team of rock star hackers. I don't see LLM even replacing junior devs right now.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999961&how=up&goto=item%3Fid%3D41991291) |  [paradox242](user?id=paradox242) [4 months ago](item?id=41999961) | root | parent | prev | next [[–]](javascript:void\(0\))   
Seems like there is more gain on the adversary side of this equation. Think nation-states like North Korea or China, and commercial entities like Pegasus Group.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000551&how=up&goto=item%3Fid%3D41991291) |  [AnimalMuppet](user?id=AnimalMuppet) [4 months ago](item?id=42000551) | root | parent | next [[–]](javascript:void\(0\))   
Google's AI would have the advantage of the source code. The adversaries would not. (At least, not without hacking Google's code repository, which isn't impossible...)  
---|---|---  
| ![](s.gif)|  [](vote?id=42004476&how=up&goto=item%3Fid%3D41991291) |  [saagarjha](user?id=saagarjha) [4 months ago](item?id=42004476) | root | parent | prev | next [[–]](javascript:void\(0\))   
FWIW: NSO is the group, Pegasus is their product  
---|---|---  
| ![](s.gif)|  [](vote?id=42003599&how=up&goto=item%3Fid%3D41991291) |  [nycdatasci](user?id=nycdatasci) [4 months ago](item?id=42003599) | parent | prev | next [[–]](javascript:void\(0\))   
You mention safety as #1, but my impression is that Google has taken a uniquely primitive approach to safety with many of their models. Instead of influencing the weights of the core model, they check core model outputs with a tiny and much less competent “safety model”. This approach leads to things like a text-to-image model that refuses to output images when a user asks to generate “a picture of a child playing hopscotch in front of their school, shot with a Sony A1 at 200 mm, f2.8”. Gemini has similar issue: it will stop mid-sentence, erase its entire response and then claim that something is likely offensive and it can’t continue.The whole paradigm should change. If you are indeed responsible for developer tools, I would hope that you’re activity leveraging Claude 3.5 Sonnet and o1-preview.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000536&how=up&goto=item%3Fid%3D41991291) |  [wslh](user?id=wslh) [4 months ago](item?id=42000536) | parent | prev | next [[–]](javascript:void\(0\))   
As someone working in cybersecurity and actively researching vulnerability scanning in codebases (including with LLMs), I’m struggling to understand what you mean by “safe.” If you’re referring to detecting security vulnerabilities, then you’re either working on a confidential project with unpublished methods, or your approach is likely on par with the current state of the art, which primarily addresses basic vulnerabilities.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002830&how=up&goto=item%3Fid%3D41991291) |  [bcherny](user?id=bcherny) [4 months ago](item?id=42002830) | parent | prev | next [[–]](javascript:void\(0\))   
How are you measuring productivity? And is the effect you see in A/B tests statistically significant? Both of these were challenging to do at Meta, even with many thousands of engineers —- curious what worked for you.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001677&how=up&goto=item%3Fid%3D41991291) |  [assanineass](user?id=assanineass) [4 months ago](item?id=42001677) | parent | prev | next [[–]](javascript:void\(0\))   
Was this comment cleared by comms  
---|---|---  
| ![](s.gif)|  [](vote?id=42000268&how=up&goto=item%3Fid%3D41991291) |  [bogwog](user?id=bogwog) [4 months ago](item?id=42000268) | parent | prev | next [[–]](javascript:void\(0\))   
Is any of the AI generated code being committed to Google's open source repos, or is it only being used for private/internal stuff?  
---|---|---  
| ![](s.gif)|  [](vote?id=41992117&how=up&goto=item%3Fid%3D41991291) |  [fhdsgbbcaA](user?id=fhdsgbbcaA) [4 months ago](item?id=41992117) | parent | prev | next [[–]](javascript:void\(0\))   
I’ve been thinking a lot lately about how an LLM trained in really high quality code would perform.I’m far from impressed with the output of GPT/Claude, all they’ve done is weight against stack overflow - which is still low quality code relative to Google.What is probability Google makes this a real product, or is it too likely to autocomplete trade secrets?  
---|---|---  
| ![](s.gif)|  [](vote?id=41999590&how=up&goto=item%3Fid%3D41991291) |  [hshshshshsh](user?id=hshshshshsh) [4 months ago](item?id=41999590) | parent | prev | next [[–]](javascript:void\(0\))   
Seems like everything is working out without any issues. Shouldn't you be a bit suspicious?  
---|---|---  
| ![](s.gif)|  [](vote?id=41994430&how=up&goto=item%3Fid%3D41991291) |  [mysterydip](user?id=mysterydip) [4 months ago](item?id=41994430) | parent | prev | next [[–]](javascript:void\(0\))   
I assume the amount of monitoring effort is less than the amount of effort that would be required to replicate the AI generated code by humans, but do you have numbers on what that ROI looks like? Is it more like 10% or 200%?  
---|---|---  
| ![](s.gif)|  [](vote?id=42007268&how=up&goto=item%3Fid%3D41991291) |  [ActionHank](user?id=ActionHank) [4 months ago](item?id=42007268) | parent | prev | next [[–]](javascript:void\(0\))   
Would you say that the efficiency gain is less than, equal to, or greater than the cost?It's always felt like having AI in the cloud for better autocomplete is a lot for a small gain.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999945&how=up&goto=item%3Fid%3D41991291) |  [Twirrim](user?id=Twirrim) [4 months ago](item?id=41999945) | parent | prev | next [[–]](javascript:void\(0\))   
> We work very closely with Google DeepMind to adapt Gemini models for Google-scale coding and other Software Engineering usecases.Considering how terrible and frequently broken the code that the public facing Gemini produces, I'll have to be honest that that kind of scares me.Gemini frequently fails at some fairly basic stuff, even in popular languages where it would have had a lot of source material to work from; where other public models (even free ones) sail through.To give a fun, fairly recent example, here's a prime factorisation algorithm it produce for python:
    
    
      # Find the prime factorization of n
      prime_factors = []
      while n > 1:
        p = 2
        while n % p == 0:
          prime_factors.append(p)
          n //= p
        p += 1
      prime_factors.append(n)
    

Can you spot all the problems?  
---|---|---  
| ![](s.gif)|  [](vote?id=42002294&how=up&goto=item%3Fid%3D41991291) |  [ijidak](user?id=ijidak) [4 months ago](item?id=42002294) | root | parent | next [[–]](javascript:void\(0\))   
I'm the first to say that AI will not replace human coders.But I don't understand this attempt to tell companies/persons that are successfully using AI that no they really aren't.In my opinion, if they feel they're using AI successfully, the goal should be to learn from that.I don't understand this need to tell individuals who say they are successfully using AI that, "no you aren't."It feels like a form of denial.Like someone saying, "I refuse to accept that this could work for you, no matter what you say."  
---|---|---  
| ![](s.gif)|  [](vote?id=42000410&how=up&goto=item%3Fid%3D41991291) |  [kgeist](user?id=kgeist) [4 months ago](item?id=42000410) | root | parent | prev | next [[–]](javascript:void\(0\))   
They probably use AI for writing tests, small internal tools/scripts, building generic frontends and quick prototypes/demos/proofs of concept. That could easily be that 25% of the code. And modern LLMs are pretty okayish with that.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000332&how=up&goto=item%3Fid%3D41991291) |  [gerash](user?id=gerash) [4 months ago](item?id=42000332) | root | parent | prev | next [[–]](javascript:void\(0\))   
I believe most people use AI to help them quickly figure out how to use a library or an API without having to read all their (often out dated) documentation instead of helping them solve some mathematical challenge  
---|---|---  
| ![](s.gif)|  [](vote?id=42002366&how=up&goto=item%3Fid%3D41991291) |  [delfinom](user?id=delfinom) [4 months ago](item?id=42002366) | root | parent | next [[–]](javascript:void\(0\))   
I've never had an AI not just make up API when it didn't exist, instead of saying "it doesn't exist". Lol  
---|---|---  
| ![](s.gif)|  [](vote?id=42000422&how=up&goto=item%3Fid%3D41991291) |  [taeric](user?id=taeric) [4 months ago](item?id=42000422) | root | parent | prev | next [[–]](javascript:void\(0\))   
If the documentation is out of date, such that it doesn't help, this doesn't bode well for the training data of the AI helping it get it right, either?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000538&how=up&goto=item%3Fid%3D41991291) |  [macintux](user?id=macintux) [4 months ago](item?id=42000538) | root | parent | next [[–]](javascript:void\(0\))   
AI can presumably integrate all of the forum discussions talking about how people really use the code.Assuming discussions don't happen in Slack, or Discord, or...  
---|---|---  
| ![](s.gif)|  [](vote?id=42001104&how=up&goto=item%3Fid%3D41991291) |  [woodson](user?id=woodson) [4 months ago](item?id=42001104) | root | parent | next [[–]](javascript:void\(0\))   
Unfortunately, it often hallucinates wrong parameters (or gets their order wrong) if there are multiple different APIs for similar packages. For example, there are plenty ML model inference packages, and the code suggestions for NVIDIA Triton Inference Server Python code are pretty much always wrong, as it generates code that’s probably correct for other Python ML inference packages with slightly different API.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003444&how=up&goto=item%3Fid%3D41991291) |  [jon_richards](user?id=jon_richards) [4 months ago](item?id=42003444) | root | parent | prev | next [[–]](javascript:void\(0\))   
I often find the opposite. Documentation can be up to date, but AI suggests deprecated or removed functions because there’s more old code than new code. Pgx v5 is a particularly consistent example.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000731&how=up&goto=item%3Fid%3D41991291) |  [randomNumber7](user?id=randomNumber7) [4 months ago](item?id=42000731) | root | parent | prev | next [[–]](javascript:void\(0\))   
And all the code on which it was trained...  
---|---|---  
| ![](s.gif)|  [](vote?id=42007976&how=up&goto=item%3Fid%3D41991291) |  [Capricorn2481](user?id=Capricorn2481) [4 months ago](item?id=42007976) | root | parent | prev | next [[–]](javascript:void\(0\))   
Forum posts can also be out of date.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000720&how=up&goto=item%3Fid%3D41991291) |  [randomNumber7](user?id=randomNumber7) [4 months ago](item?id=42000720) | root | parent | prev | next [[–]](javascript:void\(0\))   
I think that too but google claims something else.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000742&how=up&goto=item%3Fid%3D41991291) |  [calf](user?id=calf) [4 months ago](item?id=42000742) | root | parent | prev | next [[–]](javascript:void\(0\))   
We are sorely lacking a "Make Computer Science a Science" movement, the tech lead's blurb is par for the course, talking about "SWE productivity" with no reference to scientific inquiry and a foundational understanding of safety, correctness, verification, validation of these new LLM technologies.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001838&how=up&goto=item%3Fid%3D41991291) |  [almostgotcaught](user?id=almostgotcaught) [4 months ago](item?id=42001838) | root | parent | next [[–]](javascript:void\(0\))   
Did you know that Google is a for-profit business and not a university? Did you know that most places where people work on software are the same?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004843&how=up&goto=item%3Fid%3D41991291) |  [zifpanachr23](user?id=zifpanachr23) [4 months ago](item?id=42004843) | root | parent | next [[–]](javascript:void\(0\))   
So are most medical facilities. Somehow, the vibes are massively different.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005237&how=up&goto=item%3Fid%3D41991291) |  [almostgotcaught](user?id=almostgotcaught) [4 months ago](item?id=42005237) | root | parent | next [[–]](javascript:void\(0\))   
That's rich? Never heard of the opioid crisis? Or the over-prescription of imaging tests?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004835&how=up&goto=item%3Fid%3D41991291) |  [calf](user?id=calf) [4 months ago](item?id=42004835) | root | parent | prev | next [[–]](javascript:void\(0\))   
Did you know that Software Engineering is a university level degree? That it is a field of scientific study, with professors who dedicate their lives to it? What happens when companies ignore science and worse yet cause harm like pollution or medical malpractice, or in this case, spread Silicon Valley lies and bullshit???Did you know? How WEIRD.How about you not harass other commenters with such arrogantly ignorant sarcastic questions?? Or is that part of corporate "for-profit" culture too????  
---|---|---  
| ![](s.gif)|  [](vote?id=42005245&how=up&goto=item%3Fid%3D41991291) |  [almostgotcaught](user?id=almostgotcaught) [4 months ago](item?id=42005245) | root | parent | next [[–]](javascript:void\(0\))   
> Did you know that Software Engineering is a university level degree? That it is a field of scientific study, with professors who dedicate their lives to it?So is marketing? So finance? So is petroleum engineering?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000890&how=up&goto=item%3Fid%3D41991291) |  [justinpombrio](user?id=justinpombrio) [4 months ago](item?id=42000890) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Can you spot all the problems?You were probably being rhetorical, but there are two problems:\- `p = 2` should be outside the loop\- `prime_factors.append(n)` appends `1` onto the end of the list for no reasonWith those two changes I'm pretty sure it's correct.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002950&how=up&goto=item%3Fid%3D41991291) |  [kenjackson](user?id=kenjackson) [4 months ago](item?id=42002950) | root | parent | next [[–]](javascript:void\(0\))   
You don't need to append 'p' in the inner while loop more than once. Maybe instead of an array for keeping the list of prime factors do it in a set.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003601&how=up&goto=item%3Fid%3D41991291) |  [zeroonetwothree](user?id=zeroonetwothree) [4 months ago](item?id=42003601) | root | parent | next [[–]](javascript:void\(0\))   
It’s valid to return the multiplicity of each prime, depending on the goal of this.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007640&how=up&goto=item%3Fid%3D41991291) |  [justinpombrio](user?id=justinpombrio) [4 months ago](item?id=42007640) | root | parent | prev | next [[–]](javascript:void\(0\))   
[https://www.wolframalpha.com/input?i=prime+factors+of+12](https://www.wolframalpha.com/input?i=prime+factors+of+12)  
---|---|---  
| ![](s.gif)|  [](vote?id=42001854&how=up&goto=item%3Fid%3D41991291) |  [rmbyrro](user?id=rmbyrro) [4 months ago](item?id=42001854) | root | parent | prev | next [[–]](javascript:void\(0\))   
`n` isn't defined  
---|---|---  
| ![](s.gif)|  [](vote?id=42002630&how=up&goto=item%3Fid%3D41991291) |  [justinpombrio](user?id=justinpombrio) [4 months ago](item?id=42002630) | root | parent | next [[–]](javascript:void\(0\))   
The implicit context that the poster removed (as you can tell from the indentation) was a function definition:
    
    
        def factorize(n):
          ...
          return prime_factors  
  
---|---|---  
| ![](s.gif)|  [](vote?id=42000226&how=up&goto=item%3Fid%3D41991291) |  [senko](user?id=senko) [4 months ago](item?id=42000226) | root | parent | prev | next [[–]](javascript:void\(0\))   
We collectively deride leetcoding interviews yet ask AI to flawlessly solve leetcode questions.I bet I'd make more errors on my first try at it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000534&how=up&goto=item%3Fid%3D41991291) |  [AnimalMuppet](user?id=AnimalMuppet) [4 months ago](item?id=42000534) | root | parent | next [[–]](javascript:void\(0\))   
Writing a prime-number factorization function is hardly "leetcode".  
---|---|---  
| ![](s.gif)|  [](vote?id=42001204&how=up&goto=item%3Fid%3D41991291) |  [senko](user?id=senko) [4 months ago](item?id=42001204) | root | parent | next [[–]](javascript:void\(0\))   
I didn't say it's hard, but it's most definitely leetcode, as in "pointless algorithmic exercise that will only show you if the candidate recently worked on a similar question".If that doesn't satisfy, here's a similar one at leetcode.com: [https://leetcode.com/problems/distinct-prime-factors-of-prod...](https://leetcode.com/problems/distinct-prime-factors-of-product-of-array/)I would not expect a programmer of any seniority to churn stuff like that and have it working without testing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001308&how=up&goto=item%3Fid%3D41991291) |  [AnimalMuppet](user?id=AnimalMuppet) [4 months ago](item?id=42001308) | root | parent | next [[–]](javascript:void\(0\))   
> "pointless algorithmic exercise that will only show you if the candidate recently worked on a similar question".I've been able to write one, not from memory but from first principles, any time in the last 40 years.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001502&how=up&goto=item%3Fid%3D41991291) |  [senko](user?id=senko) [4 months ago](item?id=42001502) | root | parent | next [[–]](javascript:void\(0\))   
Curious, I would expect a programmer of your age to remember Knuth's "beware of the bugs in above code, I have only proven it's correct but haven't actually run it".I'm happy you know math, but my point before this thread got derailed was that we're holding (coding) AI to a higher standard than actual humans, namely to expect to write bug-free code.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004674&how=up&goto=item%3Fid%3D41991291) |  [0points](user?id=0points) [4 months ago](item?id=42004674) | root | parent | next [[–]](javascript:void\(0\))   
> my point before this thread got derailed was that we're holding (coding) AI to a higher standard than actual humans, namely to expect to write bug-free codeThis seems like a very layman attitude and I would be surprised to find many devs adhering to this idea. Comments in this thread alone suggests that many devs on HN do not agree.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003595&how=up&goto=item%3Fid%3D41991291) |  [smrq](user?id=smrq) [4 months ago](item?id=42003595) | root | parent | prev | next [[–]](javascript:void\(0\))   
I hold _myself_ to a higher standard than AI tools are capable of, from my experience. (Maybe some people don't, and that's where the disconnect is between the apologists and the naysayers?)  
---|---|---  
| ![](s.gif)|  [](vote?id=42003330&how=up&goto=item%3Fid%3D41991291) |  [Jensson](user?id=Jensson) [4 months ago](item?id=42003330) | root | parent | prev | next [[–]](javascript:void\(0\))   
Humans can actually run the code and knows what it should output. the LLM can't, and putting it in a loop against code output doesn't work well either since the LLM can't navigate that well.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005687&how=up&goto=item%3Fid%3D41991291) |  [eesmith](user?id=eesmith) [4 months ago](item?id=42005687) | root | parent | prev | next [[–]](javascript:void\(0\))   
A senior programmer like me knows that primality-based problems like the one posed in your link are easily gamed.Testing for small prime factors is easy - brute force is your friend. Testing for large prime factors requires more effort. So the first trick is to figure out the bounds to the problem. Is it int32? Then brute-force it. Is it int64, where you might have a value like the Mersenne prime 2^61-1? Perhaps it's time to pull out a math reference. Is it longer, like an unbounded Python int? Definitely switch to something like the GNU Multiple Precision Arithmetic Library.In this case, the maximum value is 1,000, which means we can enumerate all distinct prime values in that range, and test for its presence in each input value, one one-by-one:
    
    
        # list from https://www.math.uchicago.edu/~luis/allprimes.html
        _primes = [
            2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59,
            61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131,
            137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197,
            199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271,
            277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353,
            359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433,
            439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509,
            521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601,
            607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677,
            683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769,
            773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859,
            863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953,
            967, 971, 977, 983, 991, 997]
    
        def distinctPrimeFactors(nums: list[int]) -> int:
            if __debug__:
                # The problem definition gives these constraints
                assert 1 <= len(nums) <= 10_000, "size out of range"
                assert all(2 <= num <= 1000 for num in nums), "num out of range"
    
            num_distinct = 0
            for p in _primes:
                for num in nums:
                    if num % p == 0:
                        num_distinct += 1
                        break
            return num_distinct
    

That worked without testing, though I felt better after I ran the test suite, which found no errors. Here's the test suite:
    
    
        import unittest
    
        class TestExamples(unittest.TestCase):
            def test_example_1(self):
                self.assertEqual(distinctPrimeFactors([2,4,3,7,10,6]), 4)
    
            def test_example_2(self):
                self.assertEqual(distinctPrimeFactors([2,4,8,16]), 1)
    
            def test_2_is_valid(self):
                self.assertEqual(distinctPrimeFactors([2]), 1)
    
            def test_1000_is_valid(self):
                self.assertEqual(distinctPrimeFactors([1_000]), 2) # (2*5)**3
    
            def test_10_000_values_is_valid(self):
                values = _primes[:20] * (10_000 // 20)
                assert len(values) == 10_000
                self.assertEqual(distinctPrimeFactors(values), 20)
    
        @unittest.skipUnless(__debug__, "can only test in debug mode")
        class TestConstraints(unittest.TestCase):
            def test_too_few(self):
                with self.assertRaisesRegex(AssertionError, "size out of range"):
                    distinctPrimeFactors([])
            def test_too_many(self):
                with self.assertRaisesRegex(AssertionError, "size out of range"):
                    distinctPrimeFactors([2]*10_001)
            def test_num_too_small(self):
                with self.assertRaisesRegex(AssertionError, "num out of range"):
                    distinctPrimeFactors([1])
            def test_num_too_large(self):
                with self.assertRaisesRegex(AssertionError, "num out of range"):
                    distinctPrimeFactors([1_001])
    
        if __name__ == "__main__":
            unittest.main()
    

I had two typos in my test suite (an "=" for "==", and a ", 20))" instead of "), 20)"), and my original test_num_too_large() tested 10_001 instead of the boundary case of 1_001, so three mistakes in total.If I had no internet access, I would compute that table thusly:
    
    
      _primes = [2]
      for value in range(3, 1000):
        if all(value % p > 0 for p in _primes):
            _primes.append(value)
    

Do let me know of any remaining mistakes.What kind of senior programmers do you work with who can't handle something like this?EDIT: For fun I wrote an implementation based on sympy's integer factorization:
    
    
        from sympy.ntheory import factorint
        def distinctPrimeFactors(nums: list[int]) -> int:
            distinct_factors = set()
            for num in nums:
                distinct_factors.update(factorint(num))
            return len(distinct_factors)
    

Here's a new test case, which takes about 17 seconds to run:
    
    
            def test_Mersenne(self):
                self.assertEqual(distinctPrimeFactors(
                    [2**44497-1, 2,4,3,7,10,6]), 5)  
  
---|---|---  
| ![](s.gif)|  [](vote?id=42000667&how=up&goto=item%3Fid%3D41991291) |  [atomic128](user?id=atomic128) [4 months ago](item?id=42000667) | root | parent | prev | next [[–]](javascript:void\(0\))   
Empirical testing (for example: [https://news.ycombinator.com/item?id=33293522](https://news.ycombinator.com/item?id=33293522)) has established that the people on Hacker News tend to be junior in their skills. Understanding this fact can help you understand why certain opinions and reactions are more likely here. Surprisingly, the more skilled individuals tend to be found on Reddit (same testing performed there).  
---|---|---  
| ![](s.gif)|  [](vote?id=42000861&how=up&goto=item%3Fid%3D41991291) |  [louthy](user?id=louthy) [4 months ago](item?id=42000861) | root | parent | next [[–]](javascript:void\(0\))   
I’m not sure that’s evidence; I looked at that and saw it was written in Go and just didn’t bother. As someone with 40 years of coding experience and a fundamental dislike of Go, I didn’t feel the need to even try. So the numbers can easily be skewed, surely.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000923&how=up&goto=item%3Fid%3D41991291) |  [atomic128](user?id=atomic128) [4 months ago](item?id=42000923) | root | parent | next [[–]](javascript:void\(0\))   
Only individuals who submitted multiple bad solutions before giving up were counted as failing. If you look but don't bother, or submit a single bad solution, you aren't counted. Thousands of individuals were tested on Hacker News and Reddit, and surprisingly, it's not even close: Reddit is where the hackers are. I mean, at the time of the testing, years ago.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000995&how=up&goto=item%3Fid%3D41991291) |  [louthy](user?id=louthy) [4 months ago](item?id=42000995) | root | parent | next [[–]](javascript:void\(0\))   
That doesn’t change my point. It didn’t test every dev on all platforms, it tested a subset. That subset may well have different attributes to the ones that didn’t engage. So, it says nothing about the audience for the forums as a whole, just the few thousand that engaged.Perhaps even, there could be fewer Go programmers here and some just took a stab at it even though they don’t know the language. So it could just select for which forum has the most Go programmers. Hardly rigourous.So I’d take that with a pinch of salt personally  
---|---|---  
| ![](s.gif)|  [](vote?id=42001039&how=up&goto=item%3Fid%3D41991291) |  [atomic128](user?id=atomic128) [4 months ago](item?id=42001039) | root | parent | next [[–]](javascript:void\(0\))   
Agreed. But remember, this isn't the only time the population has been tested. This is just the test (from two years ago, in 2022) that I happen to have a link to.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001072&how=up&goto=item%3Fid%3D41991291) |  [louthy](user?id=louthy) [4 months ago](item?id=42001072) | root | parent | next [[–]](javascript:void\(0\))   
The population hasn’t been tested. A subset has.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004225&how=up&goto=item%3Fid%3D41991291) |  [59nadir](user?id=59nadir) [4 months ago](item?id=42004225) | root | parent | next [[–]](javascript:void\(0\))   
It's also fine to be an outlier. I've been programming for 24 years and have been hanging out on HackerNews on and off for 11. HN was way more relevant to me 11 years ago than it is now, and I don't think that's necessarily only because the subject matter changed, but probably also because I have.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000967&how=up&goto=item%3Fid%3D41991291) |  [Izikiel43](user?id=Izikiel43) [4 months ago](item?id=42000967) | root | parent | prev | next [[–]](javascript:void\(0\))   
How is that thing testing? Is it expecting a specific solution or actually running the code? I tried some solutions and it complained anyways  
---|---|---  
| ![](s.gif)|  [](vote?id=42001009&how=up&goto=item%3Fid%3D41991291) |  [atomic128](user?id=atomic128) [4 months ago](item?id=42001009) | root | parent | next [[–]](javascript:void\(0\))   
The way the site works is explained in the first puzzle, "Hack This Site". TLDR, it builds and runs your code against a test suite. If your solutions weren't accepted, it's because they're wrong.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001084&how=up&goto=item%3Fid%3D41991291) |  [0xDEAFBEAD](user?id=0xDEAFBEAD) [4 months ago](item?id=42001084) | root | parent | prev | next [[–]](javascript:void\(0\))   
Where is the data?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004812&how=up&goto=item%3Fid%3D41991291) |  [freilanzer](user?id=freilanzer) [4 months ago](item?id=42004812) | root | parent | prev | next [[–]](javascript:void\(0\))   
Yeah, this is useless.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000521&how=up&goto=item%3Fid%3D41991291) |  [devonbleak](user?id=devonbleak) [4 months ago](item?id=42000521) | prev | next [[–]](javascript:void\(0\))   
It's Go. 25% of the code is just basic error checking and returning nil.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000557&how=up&goto=item%3Fid%3D41991291) |  [QuercusMax](user?id=QuercusMax) [4 months ago](item?id=42000557) | parent | next [[–]](javascript:void\(0\))   
In Java, 25% of the code is import statements and curly braces  
---|---|---  
| ![](s.gif)|  [](vote?id=42001680&how=up&goto=item%3Fid%3D41991291) |  [layer8](user?id=layer8) [4 months ago](item?id=42001680) | root | parent | next [[–]](javascript:void\(0\))   
You generally don’t write those by hand though.I’m pretty sure around 50% of the code I write is already auto-complete, without any AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001736&how=up&goto=item%3Fid%3D41991291) |  [amomchilov](user?id=amomchilov) [4 months ago](item?id=42001736) | root | parent | next [[–]](javascript:void\(0\))   
Exactly, you write them with AI  
---|---|---  
| ![](s.gif)|  [](vote?id=42001972&how=up&goto=item%3Fid%3D41991291) |  [throwaway106382](user?id=throwaway106382) [4 months ago](item?id=42001972) | root | parent | next [[–]](javascript:void\(0\))   
IDEs have been auto completing braces, inserting imports and generating framework boilerplate for decades.We don’t need AI for this and it’s 10x the compute to do it slower with AI.LLMs are useful but they aren’t a silver bullet. We don’t need to replace everything with it just because.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002622&how=up&goto=item%3Fid%3D41991291) |  [philipwhiuk](user?id=philipwhiuk) [4 months ago](item?id=42002622) | root | parent | next [[–]](javascript:void\(0\))   
Yeah, but the management achievement is to call 'autocomplete' AI.AI doesn't mean LLM after all. AI means 'a computer thing'.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002960&how=up&goto=item%3Fid%3D41991291) |  [throwaway106382](user?id=throwaway106382) [4 months ago](item?id=42002960) | root | parent | next [[–]](javascript:void\(0\))   
I’ve been calling if-statements AI since before I graduated college  
---|---|---  
| ![](s.gif)|  [](vote?id=42004045&how=up&goto=item%3Fid%3D41991291) |  [jansan](user?id=jansan) [4 months ago](item?id=42004045) | root | parent | prev | next [[–]](javascript:void\(0\))   
Simply strech your definition of AI and voilá, you are writing it with AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005764&how=up&goto=item%3Fid%3D41991291) |  [rwmj](user?id=rwmj) [4 months ago](item?id=42005764) | root | parent | next [[–]](javascript:void\(0\))   
The most important thing is to put out a press release about how half your code is written by AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000778&how=up&goto=item%3Fid%3D41991291) |  [contravariant](user?id=contravariant) [4 months ago](item?id=42000778) | root | parent | prev | next [[–]](javascript:void\(0\))   
In lisp about 50% of the code is just closing parentheses.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001018&how=up&goto=item%3Fid%3D41991291) |  [harry8](user?id=harry8) [4 months ago](item?id=42001018) | root | parent | next [[–]](javascript:void\(0\))   
Heh, but it can't be that, no reason to think llms can count brackets needing a close any more than they can count words.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002233&how=up&goto=item%3Fid%3D41991291) |  [int_19h](user?id=int_19h) [4 months ago](item?id=42002233) | root | parent | next [[–]](javascript:void\(0\))   
LLMs can count words (and letters) just fine if you train them to do so.Consider the fact that GPT-4 can generate valid XML (meaning balanced tags, quotes etc) in base64-encoded form. Without CoT, just direct output.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011585&how=up&goto=item%3Fid%3D41991291) |  [maleldil](user?id=maleldil) [4 months ago](item?id=42011585) | root | parent | next [[–]](javascript:void\(0\))   
That's GPT-4, which you wouldn't use for in-line suggestions because it's too slow.I don't know what model Copilot uses these days, but it constantly makes bracket mistakes in Python.  
---|---|---  
| ![](s.gif)|  [](vote?id=42014388&how=up&goto=item%3Fid%3D41991291) |  [int_19h](user?id=int_19h) [4 months ago](item?id=42014388) | root | parent | next [[–]](javascript:void\(0\))   
You don't need a GPT-4-sized model to count brackets. You just need to make sure that your training data includes enough cases like that for NN to learn it. My point is that GPT-4 can do much more complicated things than that, so there's nothing specific about LMs that preclude them from doing this kind of stuff right.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001490&how=up&goto=item%3Fid%3D41991291) |  [overhead4075](user?id=overhead4075) [4 months ago](item?id=42001490) | root | parent | prev | next [[–]](javascript:void\(0\))   
Logically, it couldn't be 50% since that would imply that the other 50% would be open brackets and that would leave 0% room for macros.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002627&how=up&goto=item%3Fid%3D41991291) |  [philipwhiuk](user?id=philipwhiuk) [4 months ago](item?id=42002627) | root | parent | next [[–]](javascript:void\(0\))   
That's just a rounding error ;)  
---|---|---  
| ![](s.gif)|  [](vote?id=42004042&how=up&goto=item%3Fid%3D41991291) |  [xxs](user?id=xxs) [4 months ago](item?id=42004042) | root | parent | prev | next [[–]](javascript:void\(0\))   
Over 3 imports from the same package - use an asterisk.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000659&how=up&goto=item%3Fid%3D41991291) |  [NeoTar](user?id=NeoTar) [4 months ago](item?id=42000659) | root | parent | prev | next [[–]](javascript:void\(0\))   
Does auto-code generation count as AI?  
---|---|---  
| ![](s.gif)|  [](vote?id=42002404&how=up&goto=item%3Fid%3D41991291) |  [remram](user?id=remram) [4 months ago](item?id=42002404) | parent | prev | next [[–]](javascript:void\(0\))   
Another 60% is auto-generated protobuf/grpc code. Maybe protoc counts as "AI".  
---|---|---  
| ![](s.gif)|  [](vote?id=42003343&how=up&goto=item%3Fid%3D41991291) |  [GeneralMayhem](user?id=GeneralMayhem) [4 months ago](item?id=42003343) | root | parent | next [[–]](javascript:void\(0\))   
Google does not check in protoc-generated code. It's all generated on demand by Blaze/Bazel.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007641&how=up&goto=item%3Fid%3D41991291) |  [remram](user?id=remram) [4 months ago](item?id=42007641) | root | parent | next [[–]](javascript:void\(0\))   
Oh thanks for the info.On the other hand, that doesn't mean it doesn't count for the purpose of this press release/advertisement...  
---|---|---  
| ![](s.gif)|  [](vote?id=42036308&how=up&goto=item%3Fid%3D41991291) |  [Groxx](user?id=Groxx) [4 months ago](item?id=42036308) | root | parent | prev | next [[–]](javascript:void\(0\))   
new headline: Protoc Generates Many Times More Code Than Humans Or AI(because it's like 50k lines regenerated for every build, everywhere, all the time)  
---|---|---  
| ![](s.gif)|  [](vote?id=42003677&how=up&goto=item%3Fid%3D41991291) |  [hiddencost](user?id=hiddencost) [4 months ago](item?id=42003677) | parent | prev | next [[–]](javascript:void\(0\))   
Go is a very small fraction of the code at Google.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003871&how=up&goto=item%3Fid%3D41991291) |  [yangcheng](user?id=yangcheng) [4 months ago](item?id=42003871) | prev | next [[–]](javascript:void\(0\))   
Having worked at both FAANG companies and startups, I can offer a perspective on AI's coding impact in different environments. At startups, engineers work with new tech stacks, start projects from scratch, and need to ship something quickly. LLMs can wrtie way more code. I've seen ML engineers build React frontends without any previous frontend experience, flutter developers write 100-line SQL queries for data analysis, with LLM 10x productivity for this type of work. At FAANG companies, codebases contain years of business logic, edge cases, and 'not-bugs-but-features.' Engineers know their tech stacks well, and legacy constraints make LLMs less effective, and can generate wrong code that needs to be fixed  
---|---|---  
| ![](s.gif)|  [](vote?id=42005111&how=up&goto=item%3Fid%3D41991291) |  [davnicwil](user?id=davnicwil) [4 months ago](item?id=42005111) | parent | next [[–]](javascript:void\(0\))   
It might not quite be there yet, but one key advantage large codebases have that I think LLMs in time will be able to better exploit is the detection of existing patterns - presuming they're consistent - and application to new code doing similar things or to fix bugs in existing code that deviates from the pattern in some way that causes a bug.It's a different thing to what you're talking about, but it's one way I'd expect to see LLMs contribute a lot to productivity on larger codebases specifically.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006736&how=up&goto=item%3Fid%3D41991291) |  [mdgrech23](user?id=mdgrech23) [4 months ago](item?id=42006736) | root | parent | next [[–]](javascript:void\(0\))   
large application codebase - consistent - have you worked in the field? I feel like usually there are 3 or 4 patterns from different people/teams at different points in time that spearheaded a particular ideology about how things "should" be done.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007019&how=up&goto=item%3Fid%3D41991291) |  [dep_b](user?id=dep_b) [4 months ago](item?id=42007019) | prev | next [[–]](javascript:void\(0\))   
A quarter of all new code? Of course. Especially if you include all "smart autocomplete" code.When dealing with a fermenting pile of technical debt? I expect very little. LLM's don't have application-wide context yet.AI is definitely revolutionizing our field, but the same people that said that no-code tools and all of the other hype-of-the-decade technologies would make developers jobless are actually the people AI is making jobless.Generate an opinion piece about how AI is going to make developers jobless, using AI? Less than a minute. And you don't need to maintain that article, once it's published, it's done.While there's a tsunami of AI-generated almost-there projects coming that need to be moved to a shippable and sellable state. So I'm more afraid about the kind of work I'm going to get while still getting paid handsomely for my skills, than ever being jobless as the only guy that really understands the whole stack from top to bottom.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007060&how=up&goto=item%3Fid%3D41991291) |  [randomdata](user?id=randomdata) [4 months ago](item?id=42007060) | parent | next [[–]](javascript:void\(0\))   
At the end of the day an LLM is just a compiler anyway. The developer isn't going away even if 100% of the code is generated by LLMs, just as the developer didn't go away when we stopped spending our days flipping toggle switches.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007244&how=up&goto=item%3Fid%3D41991291) |  [dep_b](user?id=dep_b) [4 months ago](item?id=42007244) | root | parent | next [[–]](javascript:void\(0\))   
I'm actually surprised that _the others_ always think that the programmers somehow will make themselves obsolete first? If it gets cheaper to make software, more software will be made, until we reach the point again we're running short on people capable enough to keep it all running.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000174&how=up&goto=item%3Fid%3D41991291) |  [fzysingularity](user?id=fzysingularity) [4 months ago](item?id=42000174) | prev | next [[–]](javascript:void\(0\))   
While I get the MBA-speak of lines-of-code that AI is now able to accomplish, it does make me think about their highly-curated internal codebase that makes them well placed to potentially get to 50% AI-generated code.One common misconception is that all LLMs are the same. The models are trained the same, but trained on wildly different datasets. Google, and more specifically the Google codebase is arguably one of the most curated, and iterated on datasets in existence. This is a massive lever for Google to train their internal code-gen models, that realistically could easily replace any entry-level or junior developer.\- Code review is another dimension of the process of maintaining a codebase that we can expect huge improvements with LLMs. The highly-curated commentary on existing code / flawed diff / corrected diff that Google possesses give them an opportunity to build a whole set of new internal tools / infra that's extremely tailored to their own coding standard / culture.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000977&how=up&goto=item%3Fid%3D41991291) |  [bqmjjx0kac](user?id=bqmjjx0kac) [4 months ago](item?id=42000977) | parent | next [[–]](javascript:void\(0\))   
> that realistically could easily replace any entry-level or junior developer.This is a massive, unsubstantiated leap.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001443&how=up&goto=item%3Fid%3D41991291) |  [risyachka](user?id=risyachka) [4 months ago](item?id=42001443) | root | parent | next [[–]](javascript:void\(0\))   
The issue is it doesn't really replace junior dev. You become one - as you have to babysit it all the time, check every line of code, and beg it to make it work.In many cases it is counterproductive  
---|---|---  
| ![](s.gif)|  [](vote?id=42001952&how=up&goto=item%3Fid%3D41991291) |  [throwaway106382](user?id=throwaway106382) [4 months ago](item?id=42001952) | root | parent | prev | next [[–]](javascript:void\(0\))   
I’d take pair programming with a junior over a GPT bot any day.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003046&how=up&goto=item%3Fid%3D41991291) |  [neaanopri](user?id=neaanopri) [4 months ago](item?id=42003046) | root | parent | next [[–]](javascript:void\(0\))   
I'd take coding by own damn self over either a junior or a gpt bot  
---|---|---  
| ![](s.gif)|  [](vote?id=42005333&how=up&goto=item%3Fid%3D41991291) |  [jtbetz22](user?id=jtbetz22) [4 months ago](item?id=42005333) | parent | prev | next [[–]](javascript:void\(0\))   
> Google codebase is arguably one of the most curated, and iterated on datasets in existenceI spent 12 years of my career in the Google codebase.This assertion is technically correct in that google3 has been around for 20 years, and all code gets reviewed, but the implication that Google's codebase is a high-quality training set is not consistent with my experience.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003877&how=up&goto=item%3Fid%3D41991291) |  [unit149](user?id=unit149) [4 months ago](item?id=42003877) | parent | prev | next [[–]](javascript:void\(0\))   
Philosophically, these models are akin to scholars prior to differentiation during their course of study. Throttling data, depending on one's course of study, and this shifting of the period in history step-by-step. Either it's a tit-for-tat manner of exchange that the junior developer is engaged in, when overseeing every edit that an LLM has modified, or I'd assume that there are in-built methods of garbage collection, that another LLM evaluating a hash function partly identifying a block of tokenized internal code would be responsible for.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000958&how=up&goto=item%3Fid%3D41991291) |  [morkalork](user?id=morkalork) [4 months ago](item?id=42000958) | parent | prev | next [[–]](javascript:void\(0\))   
Is the public gemini code gen LLM trained on their internal repo? I wonder if one could get it to cough up propriety code with the right prompt.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001479&how=up&goto=item%3Fid%3D41991291) |  [p1esk](user?id=p1esk) [4 months ago](item?id=42001479) | root | parent | next [[–]](javascript:void\(0\))   
I’m curious if Microsoft lets OpenAI train on GH private repos.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003878&how=up&goto=item%3Fid%3D41991291) |  [happyopossum](user?id=happyopossum) [4 months ago](item?id=42003878) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Is the public gemini code gen LLM trained on their internal repo?Nope  
---|---|---  
| ![](s.gif)|  [](vote?id=41999953&how=up&goto=item%3Fid%3D41991291) |  [Taylor_OD](user?id=Taylor_OD) [4 months ago](item?id=41999953) | prev | next [[–]](javascript:void\(0\))   
If we are talking about the boilerplate code and autofill syntax code that copilot or any other "AI" will offer me when I start typing... Then sure. Sounds about right.The other 75% is the stuff you actually have to think about.This feels like saying linters impact x0% of code. This just feels like an extension of that.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001589&how=up&goto=item%3Fid%3D41991291) |  [creativenolo](user?id=creativenolo) [4 months ago](item?id=42001589) | parent | next [[–]](javascript:void\(0\))   
It probably does. But an amazing number of commenters think they are prompting the copy & pasting, and hoping for the best.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002925&how=up&goto=item%3Fid%3D41991291) |  [Kalabasa](user?id=Kalabasa) [4 months ago](item?id=42002925) | root | parent | next [[–]](javascript:void\(0\))   
Yep, a lot of headline readers here.It's just a very advanced autocomplete, completely integrated into the internal codebase and IDE. You can read this on the research blog (maybe if everyone just read the blog).e.g.I start typing `var notificationManager`It would suggest `= (Notification Manager) context.getSystemService(NOTIFICATION_MANAGER);`If you've done Android then you know how much boilerplate there is to suggest.I press Ctrl+Enter or something to accept the suggestion.Voila, more than 50% of that code was written by AI.> blindly committing AI codeEven before AI, no one blindly accepts autocomplete.A lot of headline-readers seem to imagine some sort of semi-autonomous or prompt based code generation that writes whole blocks of code to then be blindly accepted by engineers.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006701&how=up&goto=item%3Fid%3D41991291) |  [skydhash](user?id=skydhash) [4 months ago](item?id=42006701) | root | parent | next [[–]](javascript:void\(0\))   
That makes a while since I’ve done Android, but I’m sure that this variable should be a property and be set as part of the lifecycle. And while Android (and any big project) is full of boilerplate, each line is subtly different or it would have already been abstracted in some base class. And even then, the code completion is already so good in Android Studio that you would have to be a complete junior (in this case, you wouldn’t know that the AI suggestion is good) to complain that writing code is slow. Most time spent is designing code, fixing subtle bugs, and refactoring to clean up the code.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003258&how=up&goto=item%3Fid%3D41991291) |  [esjeon](user?id=esjeon) [4 months ago](item?id=42003258) | parent | prev | next [[–]](javascript:void\(0\))   
> The other 75% is the stuff you actually have to think about.I’m pretty sure the actual ratio is much lower than that. In other words, LLMs are currently not good enough to remove the majority of chores, even with the state of the art model trained on highly curated dataset.  
---|---|---  
| ![](s.gif)|  [](vote?id=42043569&how=up&goto=item%3Fid%3D41991291) |  [Taylor_OD](user?id=Taylor_OD) [4 months ago](item?id=42043569) | root | parent | next [[–]](javascript:void\(0\))   
Have you used CoPilot with vs code? It's not perfect all the time but its autocomplete is right a significant amount of time.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991568&how=up&goto=item%3Fid%3D41991291) |  [imaginebit](user?id=imaginebit) [4 months ago](item?id=41991568) | prev | next [[–]](javascript:void\(0\))   
I think he's trying to promote AI, somehow raises questions about thrir code quality among some  
---|---|---  
| ![](s.gif)|  [](vote?id=41991669&how=up&goto=item%3Fid%3D41991291) |  [dietr1ch](user?id=dietr1ch) [4 months ago](item?id=41991669) | parent | next [[–]](javascript:void\(0\))   
I think it just shows how much noise there is in coding. Code gets reviewed anyways (although review quality was going down rapidly the more PMs where added to the team)Most of the code must be what could be snippets (opening files and handling errors with absl::, and moving data from proto to proto). One thing that doesn't help here, is that when writing for many engineers on different teams to read, spelling out simple code instead of depending on too many abstractions seems to be preferred by most teams.I guess that LLMs do provide smarter snippets that I don't need to fill out in detail, and when it understands types and whether things compile it gets quite good and "smart" when it comes to write down boilerplate.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999702&how=up&goto=item%3Fid%3D41991291) |  [ryoshu](user?id=ryoshu) [4 months ago](item?id=41999702) | prev | next [[–]](javascript:void\(0\))   
Spoken like an MBA who counts lines of code.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999698&how=up&goto=item%3Fid%3D41991291) |  [pfannkuchen](user?id=pfannkuchen) [4 months ago](item?id=41999698) | prev | next [[–]](javascript:void\(0\))   
It’s replaced the 25% previously copy pasted from stack overflow.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000737&how=up&goto=item%3Fid%3D41991291) |  [rkagerer](user?id=rkagerer) [4 months ago](item?id=42000737) | parent | next [[–]](javascript:void\(0\))   
This may have been intended as a joke, but it's the only explanation that reconciles the quote for me.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000210&how=up&goto=item%3Fid%3D41991291) |  [brainwad](user?id=brainwad) [4 months ago](item?id=42000210) | parent | prev | next [[–]](javascript:void\(0\))   
The split is roughly 25% AI, 25% typed, 50% pasted.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003983&how=up&goto=item%3Fid%3D41991291) |  [ttul](user?id=ttul) [4 months ago](item?id=42003983) | prev | next [[–]](javascript:void\(0\))   
I wanted a new feature in our customer support console and the dev lead suggested I write a JIRA. I’m the CEO, so this is not my usual thing (and probably should not be). I told Claude what I wanted and pasted in a .js file from the existing project so that it would get a sense of the context. It cranked out a fully functional React component that actually looks quite nice too. Two new API calls were needed, but Claude helpfully told me that. So I pasted the code sample and a screenshot of the HTML output into the JIRA and then got Claude to write me the rest of the JIRA as well.Everyone knows this was “made by AI” because there’s no way in hell I would ever have the time. These models might not be able to sit there and build an entire project from scratch yet, but if what you need is some help adding the next control panel page, Claude’s got your back on that.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004167&how=up&goto=item%3Fid%3D41991291) |  [simianparrot](user?id=simianparrot) [4 months ago](item?id=42004167) | parent | next [[–]](javascript:void\(0\))   
You’re also the CEO so chances are the people looking at that ticket aren’t going to tell you the absolute mess the AI snippet actually is and how pointless it was to include it instead of a simple succinct sentence explaining the requirements.If you’re not a developer chances are very high the code it produces will look passable but is actually worthless — or worse, it’s misleading and now a dev has to spend more time deciphering the task.  
---|---|---  
| ![](s.gif)|  [](vote?id=42017153&how=up&goto=item%3Fid%3D41991291) |  [ttul](user?id=ttul) [4 months ago](item?id=42017153) | root | parent | next [[–]](javascript:void\(0\))   
LoL, I really appreciate this comment. My team is very frank with me about code quality and they said Claude’s work looked pretty good — this time. But I’ll take your recommendation to heart for next time.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004752&how=up&goto=item%3Fid%3D41991291) |  [JonChesterfield](user?id=JonChesterfield) [4 months ago](item?id=42004752) | parent | prev | next [[–]](javascript:void\(0\))   
> Everyone knows this was “made by AI” because there’s no way in hell I would ever have the time.Doubtful. A decent fraction of the people reading it will guess that you've wasted your time writing incoherent nonsense in the jira. Engineers don't usually have much insight into what the C suite are doing. It would be a prudent move to spend the couple of seconds to write "something like this AI sketch:" before the copy&paste.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004263&how=up&goto=item%3Fid%3D41991291) |  [gloflo](user?id=gloflo) [4 months ago](item?id=42004263) | parent | prev | next [[–]](javascript:void\(0\))   
> Everyone knows this was “made by AI” because ...They should know because you told them so.Having to decipher weird code only to discover it was not written by a human is not nice.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008246&how=up&goto=item%3Fid%3D41991291) |  [zac23or](user?id=zac23or) [4 months ago](item?id=42008246) | parent | prev | next [[–]](javascript:void\(0\))   
> dev lead suggested I write a JIRA. I’m the CEO, so this is not my usual thing (and probably should not be)Fascinating point of view.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992024&how=up&goto=item%3Fid%3D41991291) |  [nosbo](user?id=nosbo) [4 months ago](item?id=41992024) | prev | next [[–]](javascript:void\(0\))   
I don't write code as I'm a sysadmin. Mostly just scripts. But is this like saying intellisense writes 25% of my code? Because I use autocomplete to shortcut stuff or to create a for loop to fill with things I want to do.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992077&how=up&goto=item%3Fid%3D41991291) |  [n_ary](user?id=n_ary) [4 months ago](item?id=41992077) | parent | next [[–]](javascript:void\(0\))   
You just made it less attractive to the target corps who are to buy this product from Google. Saying, intellisense means corps already have license of various of these and some are even mostly free. Saying AI generate our 25% code sounds more attractive to corps, because it feels like something new and novel and you can imagine laying off 25% of the personnel and justify buying this product from Google.When someone who uses a product says it, there is a 50% chance of it being true, but when someone far away from the user says it, it is 100% promotion of product and setup for trust building for a future sale.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000001&how=up&goto=item%3Fid%3D41991291) |  [coldpie](user?id=coldpie) [4 months ago](item?id=42000001) | parent | prev | next [[–]](javascript:void\(0\))   
Looks like it's an impressive autocomplete feature, yeah. Check out the video about halfway down here: [https://research.google/blog/ai-in-software-engineering-at-g...](https://research.google/blog/ai-in-software-engineering-at-google-progress-and-the-path-ahead/) (linked from other comment [https://news.ycombinator.com/item?id=41992028](https://news.ycombinator.com/item?id=41992028) )Not what I thought when I heard "AI coding", but seems pretty neat.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003414&how=up&goto=item%3Fid%3D41991291) |  [stephenr](user?id=stephenr) [4 months ago](item?id=42003414) | parent | prev | next [[–]](javascript:void\(0\))   
> I don't write code as I'm a sysadmin. Mostly just scripts..... so what do you put in your scripts if not code?  
---|---|---  
| ![](s.gif)|  [](vote?id=42012291&how=up&goto=item%3Fid%3D41991291) |  [nosbo](user?id=nosbo) [4 months ago](item?id=42012291) | root | parent | next [[–]](javascript:void\(0\))   
Don't disagree. But I think it's pretty accepted that sysadminy scripts and full blown applications are different. Just don't want to give the wrong impression that I know what I'm talking about I guess.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008923&how=up&goto=item%3Fid%3D41991291) |  [bongodongobob](user?id=bongodongobob) [4 months ago](item?id=42008923) | root | parent | prev | next [[–]](javascript:void\(0\))   
The colloquial difference is a few lines, maybe a dozen or two, for maintenance and one off stuff, not a full blown application.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999782&how=up&goto=item%3Fid%3D41991291) |  [0xCAP](user?id=0xCAP) [4 months ago](item?id=41999782) | prev | next [[–]](javascript:void\(0\))   
People overestimate faang. There are many talents working there, sure, but a lot of garbage gets pumped into their codebases as well.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009059&how=up&goto=item%3Fid%3D41991291) |  [mattgreenrocks](user?id=mattgreenrocks) [4 months ago](item?id=42009059) | parent | next [[–]](javascript:void\(0\))   
Devs who pride themselves on their capacity for rational thought seem to forget that regression to the mean applies everywhere...even to the places that they aspire to.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005030&how=up&goto=item%3Fid%3D41991291) |  [fuzzfactor](user?id=fuzzfactor) [4 months ago](item?id=42005030) | parent | prev | next [[–]](javascript:void\(0\))   
>a lot of garbage gets pumped into their codebasesI would imagine it always has.>Google CEO says more than a quarter of the company's new code is created by AIIt may very well be starting to become apparent anyway :\  
---|---|---  
| ![](s.gif)|  [](vote?id=42002036&how=up&goto=item%3Fid%3D41991291) |  [summerlight](user?id=summerlight) [4 months ago](item?id=42002036) | prev | next [[–]](javascript:void\(0\))   
In Google, there is a process called "Large Scale Change" which is primarily meant for trivial/safe but extremely tedious code changes that potentially span over the entire monorepo. Such as foundational API changes, trivial optimization, code style etc etc. This is a perfectly suitable for LLM driven code changes (in fact I'm seeing more and more of LLM generated LSC) and I guess a large fraction of mentioned "AI generated codes" can be actually attributable to this.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003501&how=up&goto=item%3Fid%3D41991291) |  [bubaumba](user?id=bubaumba) [4 months ago](item?id=42003501) | parent | next [[–]](javascript:void\(0\))   
yeh, but the main problem is the quality. with algorithm bug can be fixed. with llm it's more complicated. in practice they do some mistakes consistently, and in some cases cannot recover even with assistance. (don't take me wrong, I'm very happy with the results most of the time)  
---|---|---  
| ![](s.gif)|  [](vote?id=42003795&how=up&goto=item%3Fid%3D41991291) |  [afro88](user?id=afro88) [4 months ago](item?id=42003795) | root | parent | next [[–]](javascript:void\(0\))   
You just fix the mistakes and keep moving. It's like autocomplete where you still need to fill in the blanks or select a different completion.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004512&how=up&goto=item%3Fid%3D41991291) |  [saagarjha](user?id=saagarjha) [4 months ago](item?id=42004512) | root | parent | next [[–]](javascript:void\(0\))   
Spotting and fixing mistakes in a LSC is no small feat.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002335&how=up&goto=item%3Fid%3D41991291) |  [drunken_thor](user?id=drunken_thor) [4 months ago](item?id=42002335) | prev | next [[–]](javascript:void\(0\))   
A company that used to be the pinnacle of software development is now just generating code in order to sell their big data models. Horrifying. Devastating.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001551&how=up&goto=item%3Fid%3D41991291) |  [motoxpro](user?id=motoxpro) [4 months ago](item?id=42001551) | prev | next [[–]](javascript:void\(0\))   
People talk about how AI is bad at generating non-trivial code, but why are people using it to generate non-trivial code?25% of coding is just the most basic boilerplate. I think of AI not as a thinking machine but as a 1000 WPM boilerplate typer.If it is halucinating, you're trying to make it do stuff that is too complex.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001741&how=up&goto=item%3Fid%3D41991291) |  [ghosty141](user?id=ghosty141) [4 months ago](item?id=42001741) | parent | next [[–]](javascript:void\(0\))   
But for this boiletplate creating a few snippets in your code generally works better. Especially if things change you dont have to retrain your model.Thats my main problem: for trivial things it works but isnt much better than conventional tools, for hard things it just produces incorrect code such that writing it from scratch barely makes a difference  
---|---|---  
| ![](s.gif)|  [](vote?id=42002170&how=up&goto=item%3Fid%3D41991291) |  [motoxpro](user?id=motoxpro) [4 months ago](item?id=42002170) | root | parent | next [[–]](javascript:void\(0\))   
I think thats a great analogy.What would it look like if I could have 3-500 snippets instead of 30. Those 300 are things that I do all over my codebase e.g. same basic where query but in the context of whatever function I am in, a click handler with the correct types for that purpose, etc.There is no way I can have enough hotkeys or memorize that much, and I truly can't type faster than I can hit tab.I don't need it to think for me. Most coding (front-end/back-end web) involves typing super basic stuff, not writing complex algorithms.This is where the 10-20% speed-up comes in. On average I am just typing 20% faster by hitting tab.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004462&how=up&goto=item%3Fid%3D41991291) |  [globular-toast](user?id=globular-toast) [4 months ago](item?id=42004462) | parent | prev | next [[–]](javascript:void\(0\))   
Were people seriously writing this boilerplate by hand up until this point? I started using snippets and stuff more than 15 years ago!  
---|---|---  
| ![](s.gif)|  [](vote?id=41991337&how=up&goto=item%3Fid%3D41991291) |  [ausbah](user?id=ausbah) [4 months ago](item?id=41991337) | prev | next [[–]](javascript:void\(0\))   
i would be may more impressed if LLMs could do code compression. more code == more things that can break, and when llms can generate boatloads of it with a click you can imagine what might happen  
---|---|---  
| ![](s.gif)|  [](vote?id=41991354&how=up&goto=item%3Fid%3D41991291) |  [Scene_Cast2](user?id=Scene_Cast2) [4 months ago](item?id=41991354) | parent | next [[–]](javascript:void\(0\))   
This actually sparked an idea for me. Could code complexity be measured as cumulative entropy as measured by running LLM token predictions on a codebase? Notably, verbose boilerplate would be pretty low entropy, and straightforward code should be decently low as well.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991427&how=up&goto=item%3Fid%3D41991291) |  [jeffparsons](user?id=jeffparsons) [4 months ago](item?id=41991427) | root | parent | next [[–]](javascript:void\(0\))   
Not quite, I think. Some kinds of redundancy are good, and some are bad. Good redundancy tends to reduce mistakes rather than introduce them. E.g. there's lots of redundancy in natural languages, and it helps resolve ambiguity and fill in blanks or corruption if you didn't hear something properly. Similarly, a lot of "entropy" in code could be reduced by shortening names, deleting types, etc., but all those things were helping to clarify intent to other humans, thereby reducing mistakes. But some is copy+paste of rules that should be enforce in one place. Teaching a computer to understand the difference is... hard.Although, if we were to ignore all this for a second, you could also make similar estimates with, e.g., gzip: the higher the compression ratio attained, the more "verbose"/"fluffy" the code is.Fun tangent: there are a lot of researchers who believe that compression and intelligence are equivalent or at least very tightly linked.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991723&how=up&goto=item%3Fid%3D41991291) |  [8note](user?id=8note) [4 months ago](item?id=41991723) | root | parent | next [[–]](javascript:void\(0\))   
Interpreting this comment, it would predict low complexity for code copied unnecessarily.I'm not sure though. If it's copied a bunch of times, and it actually doesn't matter because each usecase of the copying is linearly independent, does it matter that it was copied?Over time, you'd still see copies being changed by themselves show up as increased entropy  
---|---|---  
| ![](s.gif)|  [](vote?id=41999610&how=up&goto=item%3Fid%3D41991291) |  [david-gpu](user?id=david-gpu) [4 months ago](item?id=41999610) | root | parent | prev | next [[–]](javascript:void\(0\))   
_> Could code complexity be measured as cumulative entropy as measured by running LLM token predictions on a codebase? Notably, verbose boilerplate would be pretty low entropy, and straightforward code should be decently low as well._WinRAR can do that for you quite effectively.  
---|---|---  
| ![](s.gif)|  [](vote?id=41996609&how=up&goto=item%3Fid%3D41991291) |  [malfist](user?id=malfist) [4 months ago](item?id=41996609) | root | parent | prev | next [[–]](javascript:void\(0\))   
Code complexity can already be measured deterministically with cyclomatic complexity. No need to use an AI fuzzy logic at this. Especially when they're bad at math.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000799&how=up&goto=item%3Fid%3D41991291) |  [contravariant](user?id=contravariant) [4 months ago](item?id=42000799) | root | parent | next [[–]](javascript:void\(0\))   
There's nothing fuzzy about letting an LLM determine the probability of a particular piece of text.In fact it's the one thing they are explicitly designed to do, the rest is more or less a side-effect.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991374&how=up&goto=item%3Fid%3D41991291) |  [ks2048](user?id=ks2048) [4 months ago](item?id=41991374) | parent | prev | next [[–]](javascript:void\(0\))   
I agree. It seems like counting lines of generated code is like counting bytes/instructions of compiled code - who cares? If “code” becomes prompts, then AI should lead to much smaller code than before.I’m aware that the difference is that AI-generated code can be read and modified by humans. But that quantity is bad because humans have to understand it to read or modify it.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991663&how=up&goto=item%3Fid%3D41991291) |  [TZubiri](user?id=TZubiri) [4 months ago](item?id=41991663) | root | parent | next [[–]](javascript:void\(0\))   
What's that line about accounting for lines of code on the wrong side of the balance sheet?  
---|---|---  
| ![](s.gif)|  [](vote?id=41993450&how=up&goto=item%3Fid%3D41991291) |  [latexr](user?id=latexr) [4 months ago](item?id=41993450) | root | parent | prev | next [[–]](javascript:void\(0\))   
> If “code” becomes prompts, then AI should lead to much smaller code than before.What’s the point of shorter code if you can’t trust it to do what it’s supposed to?I’ll take 20 lines of code that do what they should consistently over 1 line that may or may not do the task depending on the direction of the wind.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991573&how=up&goto=item%3Fid%3D41991291) |  [AlexandrB](user?id=AlexandrB) [4 months ago](item?id=41991573) | parent | prev | next [[–]](javascript:void\(0\))   
Exactly this. Code is a liability, if you can do the same thing with less code you're often better off.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991697&how=up&goto=item%3Fid%3D41991291) |  [EasyMark](user?id=EasyMark) [4 months ago](item?id=41991697) | root | parent | next [[–]](javascript:void\(0\))   
Not if it’s already stable and has been running for years. Legacy doesn’t necessarily mean “need replacement because of technical debt”. I’ve seen lots of people want to replace code that has been running basically bug free for years because “there are better coding styles and practices now”  
---|---|---  
| ![](s.gif)|  [](vote?id=41991710&how=up&goto=item%3Fid%3D41991291) |  [8note](user?id=8note) [4 months ago](item?id=41991710) | parent | prev | next [[–]](javascript:void\(0\))   
How would it know which edge cases are being useful and which ones aren't?I understand more code as being more edge cases  
---|---|---  
| ![](s.gif)|  [](vote?id=42000440&how=up&goto=item%3Fid%3D41991291) |  [wvenable](user?id=wvenable) [4 months ago](item?id=42000440) | root | parent | next [[–]](javascript:void\(0\))   
More code could just be useless code that no longer serves any purpose but still looks reasonable to the naked eye. An LLM can certainly figure out and suggest maybe some conditional is impossible given the rest of the code.I can also suggest alternatives, like using existing library functions for things that might have been coded manually.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004615&how=up&goto=item%3Fid%3D41991291) |  [ekwav](user?id=ekwav) [4 months ago](item?id=42004615) | root | parent | next [[–]](javascript:void\(0\))   
Or just refactor to use early returns  
---|---|---  
| ![](s.gif)|  [](vote?id=41991517&how=up&goto=item%3Fid%3D41991291) |  [asah](user?id=asah) [4 months ago](item?id=41991517) | parent | prev | next [[–]](javascript:void\(0\))   
meh - the LLM code I'm seeing isn't particularly more verbose. And as others have said, if you want tighter code, just add that to the prompt.fun story: today I had an LLM write me a non-trivial perl one-liner. It tried to be verbose but I insisted and it gave me one tight line.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000565&how=up&goto=item%3Fid%3D41991291) |  [randomNumber7](user?id=randomNumber7) [4 months ago](item?id=42000565) | prev | next [[–]](javascript:void\(0\))   
I cannot imagine this to be true, cause imo current LLM's coding abilities are very limited. It definitely makes me more productive to use it as a tool, but I use it mainly for boilerplate and short examples (where I had to read some library documentation before).Whenever the problem requires thinking, it horribly fails because it cannot reason (yet). So unless this is also true for google devs, I cannot see that 25% number.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004176&how=up&goto=item%3Fid%3D41991291) |  [Wheatman](user?id=Wheatman) [4 months ago](item?id=42004176) | parent | next [[–]](javascript:void\(0\))   
My guess is that they counted each line of code made by an engineer using AI coding tools.Besides, even google employees write a lot of boilerplate, especially android IIRC, not to mention simple but essential code, so AI can prevent carpal tunnel for the junior devs working on that.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004857&how=up&goto=item%3Fid%3D41991291) |  [zifpanachr23](user?id=zifpanachr23) [4 months ago](item?id=42004857) | root | parent | next [[–]](javascript:void\(0\))   
Roughly only one quarter (assuming they are outputting similar amounts of code as non AI using engineers) of engineers actually using AI regularly for coding is a statistic that is actually believable to me based on my own experience. A lot of small teams have their "AI guy" who has drunk the kool aid, but it's not as widespread as HackerNews would make you think.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005365&how=up&goto=item%3Fid%3D41991291) |  [chrisjj](user?id=chrisjj) [4 months ago](item?id=42005365) | root | parent | prev | next [[–]](javascript:void\(0\))   
> My guess is that they counted each line of code made by an engineer using AI coding tools.... and forgot to count the Delete presses.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007781&how=up&goto=item%3Fid%3D41991291) |  [jdefr89](user?id=jdefr89) [4 months ago](item?id=42007781) | parent | prev | next [[–]](javascript:void\(0\))   
80% or more of the code you write day to day is just grunt work. Boring code that has, for the most part, already been written in some form such that it was copied from Google or StackOverflow. AI is basically a shortcut to using that stuff..  
---|---|---  
| ![](s.gif)|  [](vote?id=42006923&how=up&goto=item%3Fid%3D41991291) |  [d_burfoot](user?id=d_burfoot) [4 months ago](item?id=42006923) | prev | next [[–]](javascript:void\(0\))   
I'd be far more impressed if the CEO said "The AI deleted a quarter of our company's code".  
---|---|---  
| ![](s.gif)|  [](vote?id=42009781&how=up&goto=item%3Fid%3D41991291) |  [zh3](user?id=zh3) [4 months ago](item?id=42009781) | parent | next [[–]](javascript:void\(0\))   
Yes, like the old story about why not to measure productivity by LoC generated.[https://www.folklore.org/Negative_2000_Lines_Of_Code.html](https://www.folklore.org/Negative_2000_Lines_Of_Code.html)  
---|---|---  
| ![](s.gif)|  [](vote?id=42002820&how=up&goto=item%3Fid%3D41991291) |  [avsteele](user?id=avsteele) [4 months ago](item?id=42002820) | prev | next [[–]](javascript:void\(0\))   
Everyone here is arguing about the average AI code quality and I'm here just not believing the claim.Is Google out there monitoring the IDE activity of every engineer, logging the amount of code created, by what, lines, characters, and how it was generated? Dubious.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005229&how=up&goto=item%3Fid%3D41991291) |  [Jyaif](user?id=Jyaif) [4 months ago](item?id=42005229) | parent | next [[–]](javascript:void\(0\))   
> Is Google out there monitoring the IDE activity of every engineer, logging the amount of code created, by what, lines, characters, and how it was generatedA good chunk (_) of their code goes in a centralized repo, and is written via a centralized web IDE. So measuring everything you mentioned is not hard.(_) Android, Chrome, and other similar projects are exceptions.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005965&how=up&goto=item%3Fid%3D41991291) |  [avsteele](user?id=avsteele) [4 months ago](item?id=42005965) | root | parent | next [[–]](javascript:void\(0\))   
How does this allow them to measure the % generated by AI tooling?  
---|---|---  
| ![](s.gif)|  [](vote?id=42008108&how=up&goto=item%3Fid%3D41991291) |  [Jyaif](user?id=Jyaif) [4 months ago](item?id=42008108) | root | parent | next [[–]](javascript:void\(0\))   
The IDE integrates the AI generator, like copilot.Yes, they'll miss AI-generated code that is copy pasted, so they only have a lower bound of AI-generated code.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004776&how=up&goto=item%3Fid%3D41991291) |  [kunley](user?id=kunley) [4 months ago](item?id=42004776) | parent | prev | next [[–]](javascript:void\(0\))   
Very good point. How was the 25% measured?  
---|---|---  
| ![](s.gif)|  [](vote?id=41999869&how=up&goto=item%3Fid%3D41991291) |  [sbochins](user?id=sbochins) [4 months ago](item?id=41999869) | prev | next [[–]](javascript:void\(0\))   
It’s probably code that was previously machine generated that they’re now calling “AI Generated”.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000010&how=up&goto=item%3Fid%3D41991291) |  [frank_nitti](user?id=frank_nitti) [4 months ago](item?id=42000010) | parent | next [[–]](javascript:void\(0\))   
That would make sense and be a good use case, essentially doing what OpenAPI generators do (or Yeoman generators of yore), but less deterministic I’d imagine. So optimistically I would guess it covers ground that isn’t already solved by mainstream tools.For the example of generating an http app scaffolding from an openapi spec, it would probably account for at least 25% of the text in the generated source code. But I imagine this report would conveniently exclude the creation of the original source yaml driving the generator — I can’t imagine you’d save much typing (or mental overhead) trying to prompt a chatbot to design your api spec correctly before the codegen  
---|---|---  
| ![](s.gif)|  [](vote?id=42008609&how=up&goto=item%3Fid%3D41991291) |  [xen0](user?id=xen0) [4 months ago](item?id=42008609) | prev | next [[–]](javascript:void\(0\))   
I really do wonder who these engineers are, that the current 'AI' tools are able to write so much of their code.Maybe my situation is unusual; I haven't written all that much code at Google lately, but what I do write is pretty tied to specific details of the program and the AI auto completion is just not that useful. Sometimes it auto completes a method signature correctly, but it never gets the body right (or even particularly close).And it routinely making up methods or fields on objects I want to use is anti productive.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004712&how=up&goto=item%3Fid%3D41991291) |  [arethuza](user?id=arethuza) [4 months ago](item?id=42004712) | prev | next [[–]](javascript:void\(0\))   
I'm waiting for some Google developer to say "More than a quarter of the CEOs statements are now created by AI"... ;-)  
---|---|---  
| ![](s.gif)|  [](vote?id=42004919&how=up&goto=item%3Fid%3D41991291) |  [freilanzer](user?id=freilanzer) [4 months ago](item?id=42004919) | parent | next [[–]](javascript:void\(0\))   
I'd say most CEO statements are quite useless already, as they're mostly corporate newspeak.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001225&how=up&goto=item%3Fid%3D41991291) |  [prmoustache](user?id=prmoustache) [4 months ago](item?id=42001225) | prev | next [[–]](javascript:void\(0\))   
Aren't we just talking about auto completion?In that case those 25% are probably the very same 25% that were automatically generated by LTP based auto-completion.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004421&how=up&goto=item%3Fid%3D41991291) |  [alienchow](user?id=alienchow) [4 months ago](item?id=42004421) | prev | next [[–]](javascript:void\(0\))   
When setting up unit tests traditionally took more time and LOC than the logic itself, LLMs are particularly useful.1\. Paste in my actual code.2\. Prompt: Write unit tests, test tables. Include scenarios: A, B, C, D, E. Include all other scenarios I left out, isolate suggestions for review.I used to spend the majority of the coding time writing unit tests and mocking test data, now it's more like 10%.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004616&how=up&goto=item%3Fid%3D41991291) |  [arkh](user?id=arkh) [4 months ago](item?id=42004616) | parent | next [[–]](javascript:void\(0\))   
> Paste in my actual code.> Prompt: Write unit testsTDD in shambles. What you'd like is:> Give your specs to some AI> Get a test suite generated with all edge cases accounted for> Code  
---|---|---  
| ![](s.gif)|  [](vote?id=42004655&how=up&goto=item%3Fid%3D41991291) |  [alienchow](user?id=alienchow) [4 months ago](item?id=42004655) | root | parent | next [[–]](javascript:void\(0\))   
Matter of preference. I've found TDD to be inflexible for my working style. But your suggestion would indeed work for a staunch TDD practitioner.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999634&how=up&goto=item%3Fid%3D41991291) |  [lysace](user?id=lysace) [4 months ago](item?id=41999634) | prev | next [[–]](javascript:void\(0\))   
Github Copilot had an outage for me this morning. It was kind of shocking. I now believe this metric. :-)I'll be looking into ways of running a local LLM for this purpose (code assistance in VS Code). I'm already really impressed with various quite large models running on my 32 GB Mac Studio M2 Max via Ollama. It feels like having a locally running chatgpt.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000302&how=up&goto=item%3Fid%3D41991291) |  [evoke4908](user?id=evoke4908) [4 months ago](item?id=42000302) | parent | next [[–]](javascript:void\(0\))   
Ollama, docker and "open webui".It immediately works out of the box and that's it. I've been using local LLMs on my laptop for a while, it's pretty nice.The only thing you really need to worry about is VRAM. Make sure your GPU has enough memory to run your model and that's pretty much it.Also "open webui" is the worst project name I've ever seen.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999974&how=up&goto=item%3Fid%3D41991291) |  [kulahan](user?id=kulahan) [4 months ago](item?id=41999974) | parent | prev | next [[–]](javascript:void\(0\))   
I'm very happy to hear this; maybe it's finally time to buy a ton of ram for my PC! A local, private LLM would be great. I'd try talking to it about stuff I don't feel comfortable being on OpenAI's servers.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000154&how=up&goto=item%3Fid%3D41991291) |  [lysace](user?id=lysace) [4 months ago](item?id=42000154) | root | parent | next [[–]](javascript:void\(0\))   
Getting lots of ram will let you run large models on the CPU, but it will be so slow.The Apple Silicon Macs have this shared memory between CPU and GPU that let's the (relatively underpowered GPU, compared to a decent Nvidia GPU) run these models at decent speeds, compared with a CPU, when using llama.cpp.This should all get _dramatically_ better/faster/cheaper within a few years, I suspect. Capitalism will figure this one out.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000187&how=up&goto=item%3Fid%3D41991291) |  [kulahan](user?id=kulahan) [4 months ago](item?id=42000187) | root | parent | next [[–]](javascript:void\(0\))   
Interesting, so this is a Mac-specific solution? That's pretty cool.I assume, then, that the primary goal would be to drop in the beefiest GPU possible when on windows/linux?  
---|---|---  
| ![](s.gif)|  [](vote?id=42003188&how=up&goto=item%3Fid%3D41991291) |  [evilduck](user?id=evilduck) [4 months ago](item?id=42003188) | root | parent | next [[–]](javascript:void\(0\))   
There's nothing Mac specific about running LLMs locally, they just happen to be a convenient way to get a ton of VRAM in a single small power efficient package.In Windows and Linux, yes you'll want at least 12GB of VRAM to have much of any utility but the beefiest consumer GPUs are still topping out at 24GB which is still pretty limiting.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000221&how=up&goto=item%3Fid%3D41991291) |  [lysace](user?id=lysace) [4 months ago](item?id=42000221) | root | parent | prev | next [[–]](javascript:void\(0\))   
With Windows/Linux I think the issue is that NVidia is artificially limiting the amount of onboard RAM (they want to sell those devices for 10x more to openai, etc) and that AMD for whatever reason can't get their shit together.I'm sure that there are other much more knowledgeable people here though, on this topic.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007724&how=up&goto=item%3Fid%3D41991291) |  [rustcleaner](user?id=rustcleaner) [4 months ago](item?id=42007724) | root | parent | next [[–]](javascript:void\(0\))   
This is why the DMCA must be repealed.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004454&how=up&goto=item%3Fid%3D41991291) |  [makerofthings](user?id=makerofthings) [4 months ago](item?id=42004454) | prev | next [[–]](javascript:void\(0\))   
I keep trying to use these things but I always end up back in vim (in which I don't have any ai autocomplete set up.)The AI is fine, but every time it makes a little mistake that I have to correct it really breaks my flow. I might type a lot more boilerplate without it but I get better flow and overall that saves me time with less mistakes.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992468&how=up&goto=item%3Fid%3D41991291) |  [rcarmo](user?id=rcarmo) [4 months ago](item?id=41992468) | prev | next [[–]](javascript:void\(0\))   
There is a running gag among my friends using Google Chat (or whatever their corporate IM tool is now called) that this explains a lot of what they’re experiencing while using it…  
---|---|---  
| ![](s.gif)|  [](vote?id=42000143&how=up&goto=item%3Fid%3D41991291) |  [tdeck](user?id=tdeck) [4 months ago](item?id=42000143) | parent | next [[–]](javascript:void\(0\))   
I didn't know anyone outside Google actually used that...  
---|---|---  
| ![](s.gif)|  [](vote?id=42001320&how=up&goto=item%3Fid%3D41991291) |  [skywhopper](user?id=skywhopper) [4 months ago](item?id=42001320) | prev | next [[–]](javascript:void\(0\))   
All this means is that 25% of code at Google is trivial boilerplate that would be better factored out of their process rather than tasking inefficient LLM tools with. The more they are willing to leave the “grunt work” to an LLM, the less likely they are to ever eliminate it from the process.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001694&how=up&goto=item%3Fid%3D41991291) |  [mirkodrummer](user?id=mirkodrummer) [4 months ago](item?id=42001694) | prev | next [[–]](javascript:void\(0\))   
Sometimes I wonder why we would want LLMs spit out human readable code. Wouldn’t be a better future where LLMs generate highly efficient machine code and eventually we read the “source map” for debugging? Wasn’t source code just for humans?  
---|---|---  
| ![](s.gif)|  [](vote?id=42002593&how=up&goto=item%3Fid%3D41991291) |  [sparcpile](user?id=sparcpile) [4 months ago](item?id=42002593) | parent | next [[–]](javascript:void\(0\))   
You just reinvented the compiler.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001733&how=up&goto=item%3Fid%3D41991291) |  [palata](user?id=palata) [4 months ago](item?id=42001733) | parent | prev | next [[–]](javascript:void\(0\))   
Because you can't trust what the LLM generates, so you have to read it. Of course the question then is whether you can trust your developer or not.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001809&how=up&goto=item%3Fid%3D41991291) |  [mirkodrummer](user?id=mirkodrummer) [4 months ago](item?id=42001809) | root | parent | next [[–]](javascript:void\(0\))   
I’d rather reply with LLMs aren’t just capable of that. They’re okay with Python and JS simply because there’s a lot of training data out in the open. My point was that it seems like we’re delegating the future to tools that could generate critical code using languages originally thought to be easy to learn.. it doesn’t make sense  
---|---|---  
| ![](s.gif)|  [](vote?id=42002481&how=up&goto=item%3Fid%3D41991291) |  [mattxxx](user?id=mattxxx) [4 months ago](item?id=42002481) | parent | prev | next [[–]](javascript:void\(0\))   
I think they spit out human-readable code, because they've been tried on human authors.But you make an interesting point: eventually AI will be making for other AI's + machines, and human verification can be an after thought.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001703&how=up&goto=item%3Fid%3D41991291) |  [standardUser](user?id=standardUser) [4 months ago](item?id=42001703) | prev | next [[–]](javascript:void\(0\))   
I use it all the time for work. Not much for actual code that goes into production, but a lot for "tell me what this does" or "given x, how do I do y". It speeds me up a ton. I'll also have it do code review when I'm uncertain about something, asking if there's any bugs or inefficiencies in a given chunk of code. I've actually found it to be more reliable about code than more general topics. Though I'm using it in a fairly specific way with code, versus asking for deep information about history for example, where is frequently gets facts very wrong.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005686&how=up&goto=item%3Fid%3D41991291) |  [redbell](user?id=redbell) [4 months ago](item?id=42005686) | prev | next [[–]](javascript:void\(0\))   
Wait a second—didn't Google _warn_ its employees against using AI-generated code? ([https://news.ycombinator.com/item?id=36399021](https://news.ycombinator.com/item?id=36399021)). What had changed?! Has Gemini now surpassed Bard in capabilities? Did they manage to resolve the _copyright_ issues? Or maybe they've noticed a boost in productivity? I'm not sure, but let’s see if other big tech companies would follow this path.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006032&how=up&goto=item%3Fid%3D41991291) |  [KeplerBoy](user?id=KeplerBoy) [4 months ago](item?id=42006032) | parent | next [[–]](javascript:void\(0\))   
Different audiences.You tell investors that AI is freaking magic and going to usher in an age of savings and productivity gains.You tell your developers that it's a neat autocomplete, they should use carefully.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000637&how=up&goto=item%3Fid%3D41991291) |  [SavageBeast](user?id=SavageBeast) [4 months ago](item?id=42000637) | prev | next [[–]](javascript:void\(0\))   
Google needs to bolster their AI story and this is good click bait. I'm not buying it personally.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000055&how=up&goto=item%3Fid%3D41991291) |  [hggigg](user?id=hggigg) [4 months ago](item?id=42000055) | prev | next [[–]](javascript:void\(0\))   
I reckon he’s talking bollocks. Same as IBM was when it was about to disguise layoffs as AI uplift and actually just shovelled the existing workload on to other people.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005555&how=up&goto=item%3Fid%3D41991291) |  [submeta](user?id=submeta) [4 months ago](item?id=42005555) | prev | next [[–]](javascript:void\(0\))   
Pandora‘s box has been opened.Some say „this is mere tab completion“, some say „it won’t replace the senior engineer.“I can remember how many fiercely argued 2 years ago that GenAI and Copilot are producing garbage. But here we are: These systems improve the workflow of creating / editing code enormously. You seniors might not be affected, but there are endless many scenarios where it replaces the junior who‘d write code to transform data, write scripts, write one-off scripts, or even write boilerplate, test code and what not.And this is only after a short time. I cannot even imagine what we‘ll have ten years from now where we can propably have much larger context windows where the system can „unterstand“ the whole code base, not just parts.I am sorry for low level engineering jobs, but I am super exited as well.With GebAI I have been writing super complex Elisp code to automate workflow in Emacs, or VBA scripts in Excel, or Bash scripts I wouldn’t have otherwise been able to write, or JavaScript, or quickly write Python code to solve very tricky problems (and I am very high level in Python), or even React code for web apps for my personal use.The future looks exiting to me.  
---|---|---  
| ![](s.gif)|  [](vote?id=42015135&how=up&goto=item%3Fid%3D41991291) |  [Capricorn2481](user?id=Capricorn2481) [4 months ago](item?id=42015135) | parent | next [[–]](javascript:void\(0\))   
> I can remember how many fiercely argued 2 years ago that GenAI and Copilot are producing garbage. But here we are: These systems improve the workflow of creating / editing code enormouslyThis is the disconnect. I, along with others, haven't seen this yet. I'm begging to see it because I'd love to automate my work away, but I can't. This comment comes off as hand-wavy to me because it says "here we are" as if Google saying their AI works is evidence itself and not a statement that requires evidence.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006558&how=up&goto=item%3Fid%3D41991291) |  [gmm1990](user?id=gmm1990) [4 months ago](item?id=42006558) | parent | prev | next [[–]](javascript:void\(0\))   
I don’t fully understand the workflow were you hand boiler plate code off to a junior wouldn’t the communication overhead be higher than writing it yourself. Certainly llms have valid uses but I see improving junior productivity more than senior productivity  
---|---|---  
| ![](s.gif)|  [](vote?id=42000248&how=up&goto=item%3Fid%3D41991291) |  [LudwigNagasena](user?id=LudwigNagasena) [4 months ago](item?id=42000248) | prev | next [[–]](javascript:void\(0\))   
How much of that generated code is `if err != nil { return err }`?  
---|---|---  
| ![](s.gif)|  [](vote?id=42043146&how=up&goto=item%3Fid%3D41991291) |  [ken47](user?id=ken47) [4 months ago](item?id=42043146) | prev | next [[–]](javascript:void\(0\))   
Without context, not very meaningful. Does this simple measure lines of code? Characters written? Is it “oversuggesting” code that it shouldn’t be confident in? Does this code make it into production or is a large percentage of it fixed by humans at great cost?Google, and really, the whole financial machine has a vested interest playing up the potential of AI. Unfortunate that it isn’t being given time to grow organically.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003153&how=up&goto=item%3Fid%3D41991291) |  [yearolinuxdsktp](user?id=yearolinuxdsktp) [4 months ago](item?id=42003153) | prev | next [[–]](javascript:void\(0\))   
Of course when so much of it is written in verbose-as-fuck languages like Java and Go, you’d be stupid not to let computers generate lack chunks of it. It’s sad, we as humans stopped trying to do better at better coding languages. At least Java is slowly making progress—-maybe in another 10 years, it will finally become a high level language. Go never tried to be one. You surprised you need AI to tab complete your boilerplate?!Financial incentives at large companies are not aligned with low volumes of code. There are no rewards for less code. People get rewarded for another bullshit framework to slap on their resume. Box me in, no, cube me in to a morass of a thick ingress layer, that uses 1/8th of my CPU.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001685&how=up&goto=item%3Fid%3D41991291) |  [holtkam2](user?id=holtkam2) [4 months ago](item?id=42001685) | prev | next [[–]](javascript:void\(0\))   
Can we also see the stats for how much code used to come from StackOverflow? Probably 25%  
---|---|---  
| ![](s.gif)|  [](vote?id=42003072&how=up&goto=item%3Fid%3D41991291) |  [tgtweak](user?id=tgtweak) [4 months ago](item?id=42003072) | prev | next [[–]](javascript:void\(0\))   
I feel like, given my experience lately with all the API models currently available, that this is only a fact if the models google is using internally are SIGNIFICANTLY better than what is available publicly even on closed models.Claude 3.5-sonnet (latest) is barely able to stay coherent on 500 LOC files, and easily gets tripped up when there are several files in the same directory.I have tried similarly with o1-preview and 4o, and gemini pro...If google is using a 5M token context window LLM with 100k+ token-output trained on all the code that is not public... then I can believe this claim.This just goes to show how critical of an issue this is that these models are behind closed doors.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003107&how=up&goto=item%3Fid%3D41991291) |  [nomel](user?id=nomel) [4 months ago](item?id=42003107) | parent | next [[–]](javascript:void\(0\))   
> This just goes to show how critical of an issue this is that these models are behind closed doors.How is competitive advantage, using in-house developed/funded tools, a critical issue? Every company has tools that only they have, that they pay significantly for to develop, and use extensively. It's can often be the primary thing that really differentiates companies who are all doing similar things.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006275&how=up&goto=item%3Fid%3D41991291) |  [thelittleone](user?id=thelittleone) [4 months ago](item?id=42006275) | prev | next [[–]](javascript:void\(0\))   
I understand CEOs need to promote their companies, but it's notable that Google - arguably the world's leading information technology company - fell behind in AI development under Pichai's leadership. Now he's touting Google's internal capabilities, yet Gemini is being outperformed by relative newcomers like Anthropic and OpenAI.His position seems secure despite these missteps, which highlights an interesting double standard: there appears to be far more tolerance for strategic failures at the CEO level compared to the rigorous performance standards expected of engineering staff.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007764&how=up&goto=item%3Fid%3D41991291) |  [jdefr89](user?id=jdefr89) [4 months ago](item?id=42007764) | parent | next [[–]](javascript:void\(0\))   
To be fair the paper that helped launch LLMs to a new level was from Google. “All You Need Is Attention”, Keras… They fell behind when it comes to marketing AI maybe…  
---|---|---  
| ![](s.gif)|  [](vote?id=42000717&how=up&goto=item%3Fid%3D41991291) |  [mjhay](user?id=mjhay) [4 months ago](item?id=42000717) | prev | next [[–]](javascript:void\(0\))   
100% of Sundar Pichai could be replaced by an AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000810&how=up&goto=item%3Fid%3D41991291) |  [elzbardico](user?id=elzbardico) [4 months ago](item?id=42000810) | prev | next [[–]](javascript:void\(0\))   
Well. When I developed in Java, I think that Eclipse did similar figures circa 2005.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008752&how=up&goto=item%3Fid%3D41991291) |  [sreitshamer](user?id=sreitshamer) [4 months ago](item?id=42008752) | prev | next [[–]](javascript:void\(0\))   
Software development isn't a code-production activity, it's a knowledge-acquisition activity. It involves refactoring and deleting code too. I guess the AI isn't helping with that?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000746&how=up&goto=item%3Fid%3D41991291) |  [deterministic](user?id=deterministic) [4 months ago](item?id=42000746) | prev | next [[–]](javascript:void\(0\))   
Not impressed. I currently auto generate 90% or more of the code I need to implement business solutions. With no AI involved. Just high level declarations of intent auto translated to C++/Typescript/…  
---|---|---  
| ![](s.gif)|  [](vote?id=42007550&how=up&goto=item%3Fid%3D41991291) |  [syngrog66](user?id=syngrog66) [4 months ago](item?id=42007550) | prev | next [[–]](javascript:void\(0\))   
> "and we continue to be laser-focused on building great products."NO! False. I can confirm they are not. I've known of several major obvious unfixed bugs/flaws in Google apps for years. and in the last year or so especially theres been an explosion in the number of head-scratching, jaw-dropping fails and UX anti-patterns in their code. GMail, Search, Maps and Android are now riddled with them.on Sundar Pichai's watch he's been devolving Google to be yet another Microsoft type in terms of quality, care and taste.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002118&how=up&goto=item%3Fid%3D41991291) |  [agomez314](user?id=agomez314) [4 months ago](item?id=42002118) | prev | next [[–]](javascript:void\(0\))   
I thought great engineers reduce the amount of new code in a codebase?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000993&how=up&goto=item%3Fid%3D41991291) |  [jeffbee](user?id=jeffbee) [4 months ago](item?id=42000993) | prev | next [[–]](javascript:void\(0\))   
It's quite amusing to me because I am old enough to remember when Copilot emerged the HN mainthought was that it was the death sentence for big corps, the scrappy independent hacker was going to run circles around them. But here we see the predictable reality: an organization that is already in an elite league in terms of developer velocity gets more benefit from LLM code assistants than Joe Hacker. These technologies serve to entrench and empower those who are already enormously powerful.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000421&how=up&goto=item%3Fid%3D41991291) |  [twis](user?id=twis) [4 months ago](item?id=42000421) | prev | next [[–]](javascript:void\(0\))   
How much code was "written by" autocomplete before LLMs came along? From my experience, LLM integration is advanced autocomplete. 25% is believable, but misleading.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000641&how=up&goto=item%3Fid%3D41991291) |  [scottyah](user?id=scottyah) [4 months ago](item?id=42000641) | parent | next [[–]](javascript:void\(0\))   
My linux terminal tab-complete has written 50% of my code  
---|---|---  
| ![](s.gif)|  [](vote?id=42001233&how=up&goto=item%3Fid%3D41991291) |  [blibble](user?id=blibble) [4 months ago](item?id=42001233) | prev | next [[–]](javascript:void\(0\))   
this is the 2024 version of "25% of our code is now produced by outsourced resources"  
---|---|---  
| ![](s.gif)|  [](vote?id=42000769&how=up&goto=item%3Fid%3D41991291) |  [arminiusreturns](user?id=arminiusreturns) [4 months ago](item?id=42000769) | prev | next [[–]](javascript:void\(0\))   
I was a luddite about the generative LLMs at first, as a crusty sysadmin type. I came around and started experimenting. It's been a boon for me.My conclusion is that we are at the first wave of a split between those who use LLMs to augment their abilities and knowledge, and those who delay. In cyberpunk terminally, it's aug-tech, not real AGI. (and the lesser ones code abilities and simpler the task, the more benefit, it's an accelerator)  
---|---|---  
| ![](s.gif)|  [](vote?id=42001328&how=up&goto=item%3Fid%3D41991291) |  [skatanski](user?id=skatanski) [4 months ago](item?id=42001328) | prev | next [[–]](javascript:void\(0\))   
I think at this moment, this sounds more like "quarter of the company's new code is created using stackoverflow and other forums. Many many people use all these tools to find information, as they did using stackoverflow a month ago, but now suddenly we can call it "created by AI". It'd be nice to have a distinction. I'm saying this, while being very excited about using LLMs as a developer.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001475&how=up&goto=item%3Fid%3D41991291) |  [jmartin2683](user?id=jmartin2683) [4 months ago](item?id=42001475) | prev | next [[–]](javascript:void\(0\))   
I’m gonna bet this is a lie.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001775&how=up&goto=item%3Fid%3D41991291) |  [freedomben](user?id=freedomben) [4 months ago](item?id=42001775) | parent | next [[–]](javascript:void\(0\))   
I don't think it's a lie, but I do think it's very misleading. With common languages probably 25% of code can be generated by an AI, but IME it's mostly just boilerplate or some pattern that largely just saves typing time, not programming/thinking time. In other words it's the 25% lowest hanging fruit, so thinking like "1/4 of programming is now done by AI" is misleading. It's probably more like 5 to 10 percent.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002750&how=up&goto=item%3Fid%3D41991291) |  [hsuduebc2](user?id=hsuduebc2) [4 months ago](item?id=42002750) | prev | next [[–]](javascript:void\(0\))   
I believe it is absolutely suitable for generating controllers in java spring or connecting to database and making a simple query which from my experience as an ordinary enterprise developer in Fintech is most of the job. Making these huge applicatins is a lot of repetitive work and integrations. Not a work that usually requires some advanced logic.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007659&how=up&goto=item%3Fid%3D41991291) |  [sanj](user?id=sanj) [4 months ago](item?id=42007659) | prev | next [[–]](javascript:void\(0\))   
Caveat: I formerly worked at Google.What missing is that _code_ being written by AI may have less of an impact than dataset that are developed or refined by AI. Consider examples like a utility function's coefficients, or the weights of a model.As these are aggressively tuned using ML feedback, they'll influence far more systems than raw code.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006144&how=up&goto=item%3Fid%3D41991291) |  [nenadg](user?id=nenadg) [4 months ago](item?id=42006144) | prev | next [[–]](javascript:void\(0\))   
Internet random person (me) says more than 99% of Google's 25%+ code written by AI has already been written by humans.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007011&how=up&goto=item%3Fid%3D41991291) |  [baalimago](user?id=baalimago) [4 months ago](item?id=42007011) | prev | next [[–]](javascript:void\(0\))   
To me, programming assistants have two usecases:1\. Generate unit tests for modules which are already written to be tested 2\. Generate documentation for interfacesBoth of these require quite deep knowledge in what to write, then it simply documents and fills in the blanks using the context which already has been laid out.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004790&how=up&goto=item%3Fid%3D41991291) |  [agilob](user?id=agilob) [4 months ago](item?id=42004790) | prev | next [[–]](javascript:void\(0\))   
So we're using CoL as a metric now?  
---|---|---  
| ![](s.gif)|  [](vote?id=42008786&how=up&goto=item%3Fid%3D41991291) |  [piyuv](user?id=piyuv) [4 months ago](item?id=42008786) | prev | next [[–]](javascript:void\(0\))   
I wish Tim Cook would reply with “more than half of all iMessages are created with autocomplete”  
---|---|---  
| ![](s.gif)|  [](vote?id=42004466&how=up&goto=item%3Fid%3D41991291) |  [daylet](user?id=daylet) [4 months ago](item?id=42004466) | prev | next [[–]](javascript:void\(0\))   
[https://www.thoughtworks.com/insights/blog/generative-ai/tdd...](https://www.thoughtworks.com/insights/blog/generative-ai/tdd-and-pair-programming-the-perfect-companions-for-copilot)  
---|---|---  
| ![](s.gif)|  [](vote?id=42001066&how=up&goto=item%3Fid%3D41991291) |  [Hamuko](user?id=Hamuko) [4 months ago](item?id=42001066) | prev | next [[–]](javascript:void\(0\))   
How do Google's IP lawyers feel about a quarter of the company's code not being copyrightable?  
---|---|---  
| ![](s.gif)|  [](vote?id=42006990&how=up&goto=item%3Fid%3D41991291) |  [sjs382](user?id=sjs382) [4 months ago](item?id=42006990) | parent | next [[–]](javascript:void\(0\))   
This was one of my first thoughts, too. In what ways can this contaminate their codebase? What if they use AI to add uncopyrightable code to GPL projects?  
---|---|---  
| ![](s.gif)|  [](vote?id=42002228&how=up&goto=item%3Fid%3D41991291) |  [horns4lyfe](user?id=horns4lyfe) [4 months ago](item?id=42002228) | prev | next [[–]](javascript:void\(0\))   
I’d bet at least a quarter of their code is class definitions, constructors, and all the other minutiae files required for modern software, so that makes sense. But people weren’t writing most of that before either, we’ve had autocomplete and code geb for a long time.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000569&how=up&goto=item%3Fid%3D41991291) |  [ThinkBeat](user?id=ThinkBeat) [4 months ago](item?id=42000569) | prev | next [[–]](javascript:void\(0\))   
This is quite interesting to know.I will be curious to see if it has any impact positive or negative over a couple of years.Will the code be more secure since the AI does not make the mistakes humans do?Or will the code, not well enough understood by the employees, exposes exploits that would not be there?Will it change average up time?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004821&how=up&goto=item%3Fid%3D41991291) |  [kunley](user?id=kunley) [4 months ago](item?id=42004821) | parent | next [[–]](javascript:void\(0\))   
what makes you think that current direction of AI development would lead to making less mistakes than humans do, as opposed to repeating same miskates plus hallucinating more?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000050&how=up&goto=item%3Fid%3D41991291) |  [Starlevel004](user?id=Starlevel004) [4 months ago](item?id=42000050) | prev | next [[–]](javascript:void\(0\))   
No wonder search barely works anymore  
---|---|---  
| ![](s.gif)|  [](vote?id=42001262&how=up&goto=item%3Fid%3D41991291) |  [tabbott](user?id=tabbott) [4 months ago](item?id=42001262) | prev | next [[–]](javascript:void\(0\))   
Without a clear explanation of methodology, this is meaningless. My guess is this statistic is generated using misleading techniques like classifying "code changes generated by existing bulk/automated refactoring tools" as "AI generated".  
---|---|---  
| ![](s.gif)|  [](vote?id=42001789&how=up&goto=item%3Fid%3D41991291) |  [mastazi](user?id=mastazi) [4 months ago](item?id=42001789) | prev | next [[–]](javascript:void\(0\))   
The auto-linter in my editor probably generates a similar percentage of the characters I commit.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991689&how=up&goto=item%3Fid%3D41991291) |  [nine_zeros](user?id=nine_zeros) [4 months ago](item?id=41991689) | prev | next [[–]](javascript:void\(0\))   
Writing more code means more needs to be maintained and they are cleverly hiding that fact. Software is a lot more like complex plumbing than people want to admit:More lines == more shit to maintain. Complex lines == the shit is unmanageable.But wall street investors love simplistic narratives such as More X == More revenue. So here we are. Pretty clever marketing imo.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001036&how=up&goto=item%3Fid%3D41991291) |  [davidclark](user?id=davidclark) [4 months ago](item?id=42001036) | prev | next [[–]](javascript:void\(0\))   
If I tab complete my function and variable symbols, does my lsp write 80%+ of my lines of code?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000523&how=up&goto=item%3Fid%3D41991291) |  [_spduchamp](user?id=_spduchamp) [4 months ago](item?id=42000523) | prev | next [[–]](javascript:void\(0\))   
I can ask AI to generate the same code multiple times, and get new variations on programming style each time, and get the occasional solution that is just not quite right but sort of works. Sounds like a recipe for a gloppy mushy mess of style salad.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991557&how=up&goto=item%3Fid%3D41991291) |  [mjbale116](user?id=mjbale116) [4 months ago](item?id=41991557) | prev | next [[–]](javascript:void\(0\))   
If you manage to convince software engineers that you are doing them a favour by employing them then they will approach any workplace negotiations with a specific mindset which will make them grab the first number it gets thrown to them.These statements are brilliant.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000046&how=up&goto=item%3Fid%3D41991291) |  [akira2501](user?id=akira2501) [4 months ago](item?id=42000046) | parent | next [[–]](javascript:void\(0\))   
These statements rely on an unchallenged monopoly position. This is not sustainable. These statements will hasten the collapse.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003741&how=up&goto=item%3Fid%3D41991291) |  [hiptobecubic](user?id=hiptobecubic) [4 months ago](item?id=42003741) | prev | next [[–]](javascript:void\(0\))   
I've had mixed results writing "normal" business logic in c++, but i gotta say, for SQL it's pretty incredible. Granted SQL has a lot of boilerplate and predictable structure, but it saves a ton of time honestly.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004002&how=up&goto=item%3Fid%3D41991291) |  [echoangle](user?id=echoangle) [4 months ago](item?id=42004002) | prev | next [[–]](javascript:void\(0\))   
Does protobuf count as AI now?  
---|---|---  
| ![](s.gif)|  [](vote?id=42001428&how=up&goto=item%3Fid%3D41991291) |  [Terr_](user?id=Terr_) [4 months ago](item?id=42001428) | prev | next [[–]](javascript:void\(0\))   
My concern is that "frequently needed and immediately useful results" is strongly correlated to "this code should already be abstracted away into a library by now."Search Copy-Paste as a Service is hiding a deeper issue.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005939&how=up&goto=item%3Fid%3D41991291) |  [fredgrott](user?id=fredgrott) [4 months ago](item?id=42005939) | prev | next [[–]](javascript:void\(0\))   
Kind of useless stat given how much code a typical dev refactors....  
---|---|---  
| ![](s.gif)|  [](vote?id=42004428&how=up&goto=item%3Fid%3D41991291) |  [zxilly](user?id=zxilly) [4 months ago](item?id=42004428) | prev | next [[–]](javascript:void\(0\))   
As a go developer, Copilot write 100% "if err != nnil for me  
---|---|---  
| ![](s.gif)|  [](vote?id=42004444&how=up&goto=item%3Fid%3D41991291) |  [Kiro](user?id=Kiro) [4 months ago](item?id=42004444) | prev | next [[–]](javascript:void\(0\))   
I find it interesting that the people who dismiss the utility of AI are being so aggressive, sarcastic and hateful about it. Why all the anger? Where's the curiosity?  
---|---|---  
| ![](s.gif)|  [](vote?id=41996990&how=up&goto=item%3Fid%3D41991291) |  [oglop](user?id=oglop) [4 months ago](item?id=41996990) | prev | next [[–]](javascript:void\(0\))   
No surprise. I give my career about 2 years before I’m useless.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000256&how=up&goto=item%3Fid%3D41991291) |  [k4rli](user?id=k4rli) [4 months ago](item?id=42000256) | parent | next [[–]](javascript:void\(0\))   
Seems just overhyped tech to push up stock prices. It was already claimed 2 years ago that half of the jobs would be taken by "AI" but barely any have and AI has barely improved since GPT3.5. Latest Anthropic is only slightly helpful for software development, mostly for unusual bug investigations and logs analysis, at least in my experience.  
---|---|---  
| ![](s.gif)|  [](vote?id=41998700&how=up&goto=item%3Fid%3D41991291) |  [phi-go](user?id=phi-go) [4 months ago](item?id=41998700) | parent | prev | next [[–]](javascript:void\(0\))   
They still need someone to write 75% of the code.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000418&how=up&goto=item%3Fid%3D41991291) |  [cebert](user?id=cebert) [4 months ago](item?id=42000418) | prev | next [[–]](javascript:void\(0\))   
Did AI have to go thru several rounds of Leetcode interviews?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000656&how=up&goto=item%3Fid%3D41991291) |  [scottyah](user?id=scottyah) [4 months ago](item?id=42000656) | parent | next [[–]](javascript:void\(0\))   
yes: [https://alphacode.deepmind.com/](https://alphacode.deepmind.com/) edit: blog link [https://deepmind.google/discover/blog/competitive-programmin...](https://deepmind.google/discover/blog/competitive-programming-with-alphacode/)  
---|---|---  
| ![](s.gif)|  [](vote?id=41992027&how=up&goto=item%3Fid%3D41991291) |  [ChrisArchitect](user?id=ChrisArchitect) [4 months ago](item?id=41992027) | prev | next [[–]](javascript:void\(0\))   
Related:_Alphabet ($GOOG) 2024 Q3 earnings release_[https://news.ycombinator.com/item?id=41988811](https://news.ycombinator.com/item?id=41988811)  
---|---|---  
| ![](s.gif)|  [](vote?id=42001062&how=up&goto=item%3Fid%3D41991291) |  [hi_hi](user?id=hi_hi) [4 months ago](item?id=42001062) | prev | next [[–]](javascript:void\(0\))   
> More than a quarter of new code created at Google is generated by AI, said CEO Sundar Pichai...How do they know this? At face value, it sounds like alot, but it only says "new code generated". Nothing about code making it into source control or production, or even which parts of googles vast business units.For all we know, this could be the result of some internal poll "Tell us if you've been using Goose recently" or some marketing analytics on the Goose "Generate" button.It's puff piece to put Google back in the lime light, and everyone is lapping it up.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000724&how=up&goto=item%3Fid%3D41991291) |  [wokkaflokka](user?id=wokkaflokka) [4 months ago](item?id=42000724) | prev | next [[–]](javascript:void\(0\))   
No wonder their products are getting worse and worse...  
---|---|---  
| ![](s.gif)|  [](vote?id=42005373&how=up&goto=item%3Fid%3D41991291) |  [me551ah](user?id=me551ah) [4 months ago](item?id=42005373) | prev | next [[–]](javascript:void\(0\))   
AI has boosted my productivity but only marginally. Earlier I used to copy paste stuff from stackoverflow and now AI generates that for me.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006028&how=up&goto=item%3Fid%3D41991291) |  [teknopaul](user?id=teknopaul) [4 months ago](item?id=42006028) | prev | next [[–]](javascript:void\(0\))   
I'd say the same. But 90% of my time not writing code. It is mostly time wasted with github and k8s build issues.  
---|---|---  
| ![](s.gif)|  [](vote?id=42007492&how=up&goto=item%3Fid%3D41991291) |  [okokwhatever](user?id=okokwhatever) [4 months ago](item?id=42007492) | prev | next [[–]](javascript:void\(0\))   
People still don't understand those who pay the bills are those who claim developers are less and less necessary. It doesn't matter how much we love our job and how much we care for quality, at the end those who pay take more care of reducing workforce for something potentially free or cheap. We are less needed, less cared and less seen as engineers. We are just a cost in a wrong column of Quickbooks. Get use to it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42013730&how=up&goto=item%3Fid%3D41991291) |  [tremorscript](user?id=tremorscript) [4 months ago](item?id=42013730) | prev | next [[–]](javascript:void\(0\))   
Sounds about right and it explains a lot about the current quality of google products and google search. :-)  
---|---|---  
| ![](s.gif)|  [](vote?id=42007673&how=up&goto=item%3Fid%3D41991291) |  [gilfoyle](user?id=gilfoyle) [4 months ago](item?id=42007673) | prev | next [[–]](javascript:void\(0\))   
This is like saying more than a quarter of the code is from oss, examples and stackoverflow before LLMs.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004718&how=up&goto=item%3Fid%3D41991291) |  [meindnoch](user?id=meindnoch) [4 months ago](item?id=42004718) | prev | next [[–]](javascript:void\(0\))   
I saw code on master which was parsing HTML with regex. The author was proud that this code was mostly generated by AI.:)  
---|---|---  
| ![](s.gif)|  [](vote?id=42009445&how=up&goto=item%3Fid%3D41991291) |  [matt3210](user?id=matt3210) [4 months ago](item?id=42009445) | prev | next [[–]](javascript:void\(0\))   
NVIDIA CEO said there would be no more developers too and it totally wasn't a marketing thing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005286&how=up&goto=item%3Fid%3D41991291) |  [nottorp](user?id=nottorp) [4 months ago](item?id=42005286) | prev | next [[–]](javascript:void\(0\))   
The protobuf boilerplate, right? :)  
---|---|---  
| ![](s.gif)|  [](vote?id=42009401&how=up&goto=item%3Fid%3D41991291) |  [erlend_sh](user?id=erlend_sh) [4 months ago](item?id=42009401) | prev | next [[–]](javascript:void\(0\))   
Self-interested hyperbole aside, I think that’s a laughably low number for what is now effectively an ‘AI Company’. I’m sure >95% of Google employees use Google (well, at least until recent years).If this stuff really works as well as these companies claim it does, wouldn’t their entire workforce excitedly be using these tools already?  
---|---|---  
| ![](s.gif)|  [](vote?id=42009522&how=up&goto=item%3Fid%3D41991291) |  [flessner](user?id=flessner) [4 months ago](item?id=42009522) | parent | next [[–]](javascript:void\(0\))   
"AI generated code" essentially means using Github Copilot or an alternative - these barely write a function without errors, nor are they even close to implementing a new feature autonomously.I expect these tools to improve productivity for new-ish developers, however for anyone that is literate in a programming language the effect is marginal at best ("Copilot pause" etc.)  
---|---|---  
| ![](s.gif)|  [](vote?id=42009266&how=up&goto=item%3Fid%3D41991291) |  [hollywood_court](user?id=hollywood_court) [4 months ago](item?id=42009266) | prev | next [[–]](javascript:void\(0\))   
Cursor and v0.dev write 95% of the code for myself and the two other devs on my team.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999956&how=up&goto=item%3Fid%3D41991291) |  [chabes](user?id=chabes) [4 months ago](item?id=41999956) | prev | next [[–]](javascript:void\(0\))   
When Google announced their big layoffs, I noted the timing in relation to some big AI announcements. People here told me I was crazy for suggesting that corporations could replace employees with AI this early. Now the CEO is confirming that more than a quarter of new code is created by AI. Can’t really deny that reality anymore folks.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000121&how=up&goto=item%3Fid%3D41991291) |  [hbn](user?id=hbn) [4 months ago](item?id=42000121) | parent | next [[–]](javascript:void\(0\))   
I'd suggest the bigger factor in those layoffs is the money was made in earlier covid years where money was flowing and everyone was overhiring to show off record growth, then none of those employees had any justification for being kept around and were just a money sink so they fired them all.Not to mention Elon publicly demonstrated losing 80% of staff when he took over twitter and - you can complain about his management all you want - as someone who's been using it the whole way through, from a technical POV their downtimes and software quality has not been any worse and they're shipping features faster. A lot of software companies are overstaffed, especially Google who has spent years paying people to make projects just to get a PO promoted, then letting the projects rot and die to be replaced by something else. That's a lot of useless work being done.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999983&how=up&goto=item%3Fid%3D41991291) |  [akira2501](user?id=akira2501) [4 months ago](item?id=41999983) | parent | prev | next [[–]](javascript:void\(0\))   
> Can’t really deny that reality anymore folks.You have to establish that the CEO is actually aware of the reality and is interested in accurately conveying that to you. As far as I can tell there is absolutely no reason to believe any part of this.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000085&how=up&goto=item%3Fid%3D41991291) |  [paradox242](user?id=paradox242) [4 months ago](item?id=42000085) | parent | prev | next [[–]](javascript:void\(0\))   
When leaders without the requisite technical knowledge are making decisions then the question of whether AI is capable of replacing human workers is orthogonal to the question of whether human workers will be replaced by AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000389&how=up&goto=item%3Fid%3D41991291) |  [robohoe](user?id=robohoe) [4 months ago](item?id=42000389) | parent | prev | next [[–]](javascript:void\(0\))   
Who claims that he is speaking the truth and not some marketing jargon?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000976&how=up&goto=item%3Fid%3D41991291) |  [randomNumber7](user?id=randomNumber7) [4 months ago](item?id=42000976) | root | parent | next [[–]](javascript:void\(0\))   
People who have replaced 25% of their brain with ai.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002156&how=up&goto=item%3Fid%3D41991291) |  [foobarian](user?id=foobarian) [4 months ago](item?id=42002156) | prev | next [[–]](javascript:void\(0\))   
The real question is, what fraction of the company’s code is _deleted_ by AI :-)  
---|---|---  
| ![](s.gif)|  [](vote?id=42002246&how=up&goto=item%3Fid%3D41991291) |  [bryanrasmussen](user?id=bryanrasmussen) [4 months ago](item?id=42002246) | prev | next [[–]](javascript:void\(0\))   
Public says more than a quarter of Google's search results are absolute crap.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004096&how=up&goto=item%3Fid%3D41991291) |  [Timber-6539](user?id=Timber-6539) [4 months ago](item?id=42004096) | prev | next [[–]](javascript:void\(0\))   
All this talk means nothing until Google gives AI permissions to push to prod.  
---|---|---  
| ![](s.gif)|  [](vote?id=42034942&how=up&goto=item%3Fid%3D41991291) |  [silexia](user?id=silexia) [4 months ago](item?id=42034942) | prev | next [[–]](javascript:void\(0\))   
Is this why Google search results are so bad now?  
---|---|---  
| ![](s.gif)|  [](vote?id=41999725&how=up&goto=item%3Fid%3D41991291) |  [marstall](user?id=marstall) [4 months ago](item?id=41999725) | prev | next [[–]](javascript:void\(0\))   
maps with recent headlines about AI improving programmer productivity 20-30%.which puts it in line with previous code-generation technologies i would imagine. I wonder which of these increased productivity the most?\- Assembly Language\- early Compilers\- databases\- graphics frameworks\- ui frameworks (windows)\- web apps\- code generators (rails scaffolding)\- genAI  
---|---|---  
| ![](s.gif)|  [](vote?id=42000033&how=up&goto=item%3Fid%3D41991291) |  [akira2501](user?id=akira2501) [4 months ago](item?id=42000033) | parent | next [[–]](javascript:void\(0\))   
Early Compilers. By a wide margin. They are the enabling factor for everything that comes below it. It's what allows you to share library interfaces and actually use them in a consistent manor and across multiple architectures. It entirely changed the shape of software development.The gap between "high level assembly" and "compiled language" is about as large as it gets.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000561&how=up&goto=item%3Fid%3D41991291) |  [soperj](user?id=soperj) [4 months ago](item?id=42000561) | prev | next [[–]](javascript:void\(0\))   
The real question is how many lines of code was it responsible for removing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004602&how=up&goto=item%3Fid%3D41991291) |  [haccount](user?id=haccount) [4 months ago](item?id=42004602) | prev | next [[–]](javascript:void\(0\))   
No wonder Gemini is a garbage fire if had chatgpt write the code for it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004693&how=up&goto=item%3Fid%3D41991291) |  [1GZ0](user?id=1GZ0) [4 months ago](item?id=42004693) | prev | next [[–]](javascript:void\(0\))   
I wonder how much of that code is boilerplate vs. actual functionality.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002880&how=up&goto=item%3Fid%3D41991291) |  [defactor](user?id=defactor) [4 months ago](item?id=42002880) | prev | next [[–]](javascript:void\(0\))   
Try any AI tool to write basic factor code.hallucinates most of the time  
---|---|---  
| ![](s.gif)|  [](vote?id=41999917&how=up&goto=item%3Fid%3D41991291) |  [otabdeveloper4](user?id=otabdeveloper4) [4 months ago](item?id=41999917) | prev | next [[–]](javascript:void\(0\))   
That explains a lot about Google's so-called "quality".  
---|---|---  
| ![](s.gif)|  [](vote?id=42001070&how=up&goto=item%3Fid%3D41991291) |  [zxvkhkxvdvbdxz](user?id=zxvkhkxvdvbdxz) [4 months ago](item?id=42001070) | prev | next [[–]](javascript:void\(0\))   
I feel this made me loose the respect I still had for Google  
---|---|---  
| ![](s.gif)|  [](vote?id=42001945&how=up&goto=item%3Fid%3D41991291) |  [niobe](user?id=niobe) [4 months ago](item?id=42001945) | prev | next [[–]](javascript:void\(0\))   
This explains a LOT about Google's quality decline.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004691&how=up&goto=item%3Fid%3D41991291) |  [mgaunard](user?id=mgaunard) [4 months ago](item?id=42004691) | prev | next [[–]](javascript:void\(0\))   
AI is pretty good at helping you manage a messy large codebase and making it even more messy and verbose.Is that a good thing though? We should work and making code small and easy to manage without AI tools.  
---|---|---  
| ![](s.gif)|  [](vote?id=42013808&how=up&goto=item%3Fid%3D41991291) |  [socrateslee](user?id=socrateslee) [4 months ago](item?id=42013808) | prev | next [[–]](javascript:void\(0\))   
or saying that most of the Google engineers are using tools like copilot, and they use the copilot just as everyone else.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009942&how=up&goto=item%3Fid%3D41991291) |  [fortylove](user?id=fortylove) [4 months ago](item?id=42009942) | prev | next [[–]](javascript:void\(0\))   
Is this why we finally got darkmode in gcal?  
---|---|---  
| ![](s.gif)|  [](vote?id=42002183&how=up&goto=item%3Fid%3D41991291) |  [rockskon](user?id=rockskon) [4 months ago](item?id=42002183) | prev | next [[–]](javascript:void\(0\))   
No shit a quarter of Google's new code is created by AI. How else do you explain why Google search has been so aggressively _awful_ for the past 5~ years?Seriously. The penchant for outright ignoring user search terms, relentlessly forcing irrelevant or just plain wrong information on users, and the obnoxious UI changes on YouTube! If I'm watching a video on full screen I have explicitly made it clear that I want YouTube to _only_ show me video! STOP BRINGING UP THE FUCKING VIDEO DESCRIPTION TO TAKE UP HALF THE SCREEN IF I TRY TO BRIEFLY SWIPE TO VIEW THE TIME OR READ A MESSAGE.I have such deep-seated contempt for AI and it's products for just how much _worse_ it makes people's lives.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002440&how=up&goto=item%3Fid%3D41991291) |  [remram](user?id=remram) [4 months ago](item?id=42002440) | parent | next [[–]](javascript:void\(0\))   
Yeah that might explain some of the loss of quality. Google apps and sites used to be solid, now they are full of not-breaking-but-annoying bugs like race conditions (don't press buttons too fast), display glitches, awful recommendations, and other usability problems.Then again, their devices are also coming out with known fatal design flaws, like not being able to make phone calls, or the screen going black permanently.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002239&how=up&goto=item%3Fid%3D41991291) |  [nektro](user?id=nektro) [4 months ago](item?id=42002239) | prev | next [[–]](javascript:void\(0\))   
Google used to be respected, a place so highly sought after that engineers who worked there were revered like wizards. oh how they've fallen :(  
---|---|---  
| ![](s.gif)|  [](vote?id=42004912&how=up&goto=item%3Fid%3D41991291) |  [fmardini](user?id=fmardini) [4 months ago](item?id=42004912) | prev | next [[–]](javascript:void\(0\))   
Proto-plumbing is very LLM amenable  
---|---|---  
| ![](s.gif)|  [](vote?id=42019203&how=up&goto=item%3Fid%3D41991291) |  [dickersnoodle](user?id=dickersnoodle) [4 months ago](item?id=42019203) | prev | next [[–]](javascript:void\(0\))   
That explains a lot, actually.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000615&how=up&goto=item%3Fid%3D41991291) |  [ThinkBeat](user?id=ThinkBeat) [4 months ago](item?id=42000615) | prev | next [[–]](javascript:void\(0\))   
So um. With making this public statement, can we expect that 25% of "the bottom" coders at Google will soon be granted a lot more time and ability to spend time with their loves ones.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002911&how=up&goto=item%3Fid%3D41991291) |  [shane_kerns](user?id=shane_kerns) [4 months ago](item?id=42002911) | prev | next [[–]](javascript:void\(0\))   
It's no wonder that their search absolutely sucks now. Duckduckgo is so much better in comparison now.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999673&how=up&goto=item%3Fid%3D41991291) |  [marstall](user?id=marstall) [4 months ago](item?id=41999673) | prev | next [[–]](javascript:void\(0\))   
first thought is that much of that 25% is test code for non-ai-gen code...  
---|---|---  
| ![](s.gif)|  [](vote?id=41991434&how=up&goto=item%3Fid%3D41991291) |  [evbogue](user?id=evbogue) [4 months ago](item?id=41991434) | prev | next [[–]](javascript:void\(0\))   
I'd be turning off the autocomplete in my IDE if I was at Google. Seems to double as a keylogger.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000975&how=up&goto=item%3Fid%3D41991291) |  [marviel](user?id=marviel) [4 months ago](item?id=42000975) | prev | next [[–]](javascript:void\(0\))   
> 80% at Reasonote  
---|---|---  
| ![](s.gif)|  [](vote?id=42020301&how=up&goto=item%3Fid%3D41991291) |  [octacat](user?id=octacat) [4 months ago](item?id=42020301) | prev | next [[–]](javascript:void\(0\))   
It is visible...  
---|---|---  
| ![](s.gif)|  [](vote?id=42006746&how=up&goto=item%3Fid%3D41991291) |  [tylerchilds](user?id=tylerchilds) [4 months ago](item?id=42006746) | prev | next [[–]](javascript:void\(0\))   
as a consumer, i never could have guessed  
---|---|---  
| ![](s.gif)|  [](vote?id=42006219&how=up&goto=item%3Fid%3D41991291) |  [anacrolix](user?id=anacrolix) [4 months ago](item?id=42006219) | prev | next [[–]](javascript:void\(0\))   
Puts on Google  
---|---|---  
| ![](s.gif)|  [](vote?id=42014575&how=up&goto=item%3Fid%3D41991291) |  [annlee2019](user?id=annlee2019) [4 months ago](item?id=42014575) | prev | next [[–]](javascript:void\(0\))   
google CEO doesn't write code  
---|---|---  
| ![](s.gif)|  [](vote?id=42006318&how=up&goto=item%3Fid%3D41991291) |  [sheeshkebab](user?id=sheeshkebab) [4 months ago](item?id=42006318) | prev | next [[–]](javascript:void\(0\))   
and it shows… Google codebases I see in the wild are the worst - jumbled mess of hard to read code.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008380&how=up&goto=item%3Fid%3D41991291) |  [psunavy03](user?id=psunavy03) [4 months ago](item?id=42008380) | prev | next [[–]](javascript:void\(0\))   
And yet the 2024 State of DevOps report THAT GOOGLE PRODUCES has a butt-ton of caveats about the effectiveness of GenAI . . .  
---|---|---  
| ![](s.gif)|  [](vote?id=42002767&how=up&goto=item%3Fid%3D41991291) |  [AI_beffr](user?id=AI_beffr) [4 months ago](item?id=42002767) | prev | next [[–]](javascript:void\(0\))   
i like how people say that ai can only write "trivial" code well or without mistakes. but what about from the point of view of the AI? writing "trivial" code is probably almost exactly as much of a challenge as writing the most complex code a human could ever write. the scales are not the same. dont allow yourself to feel so safe..  
---|---|---  
| ![](s.gif)|  [](vote?id=42015146&how=up&goto=item%3Fid%3D41991291) |  [Capricorn2481](user?id=Capricorn2481) [4 months ago](item?id=42015146) | parent | next [[–]](javascript:void\(0\))   
You think when people say AI can only write trivial code that they are writing from the perspective of AI, where trivial is actually impressive? That's is backward ass logic.  
---|---|---  
| ![](s.gif)|  [](vote?id=42021804&how=up&goto=item%3Fid%3D41991291) |  [AI_beffr](user?id=AI_beffr) [4 months ago](item?id=42021804) | root | parent | next [[–]](javascript:void\(0\))   
no im saying they are anthropomorphizing the capabilities of these AIs which disguises how advanced they really are.  
---|---|---  
| ![](s.gif)|  [](vote?id=42026745&how=up&goto=item%3Fid%3D41991291) |  [Capricorn2481](user?id=Capricorn2481) [4 months ago](item?id=42026745) | root | parent | next [[–]](javascript:void\(0\))   
Not really what you said. In any case, people aren't doing that, they are just pointing out that AI writes poor code beyond very basic things. That's not Anthropomorphizing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42028700&how=up&goto=item%3Fid%3D41991291) |  [AI_beffr](user?id=AI_beffr) [4 months ago](item?id=42028700) | root | parent | next [[–]](javascript:void\(0\))   
it is what i said exactly and they are doing it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005292&how=up&goto=item%3Fid%3D41991291) |  [jdmoreira](user?id=jdmoreira) [4 months ago](item?id=42005292) | prev | next [[–]](javascript:void\(0\))   
I would prefer if he was more competent and made the stock price go up. I guess grifters are going to grift  
---|---|---  
| ![](s.gif)|  [](vote?id=42002715&how=up&goto=item%3Fid%3D41991291) |  [sigmonsays](user?id=sigmonsays) [4 months ago](item?id=42002715) | prev | next [[–]](javascript:void\(0\))   
imho code that is written by AI is code that is not worth having.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008560&how=up&goto=item%3Fid%3D41991291) |  [hodder](user?id=hodder) [4 months ago](item?id=42008560) | prev | next [[–]](javascript:void\(0\))   
The market would be even more shocked to learn that another 30% is pasted in from Stack Overflow!  
---|---|---  
| ![](s.gif)|  [](vote?id=42006738&how=up&goto=item%3Fid%3D41991291) |  [AmazingTurtle](user?id=AmazingTurtle) [4 months ago](item?id=42006738) | prev | next [[–]](javascript:void\(0\))   
Yeah, go ahead and lay off another 25% of development staff and see how well AI coders perform.:))  
---|---|---  
| ![](s.gif)|  [](vote?id=42007636&how=up&goto=item%3Fid%3D41991291) |  [fennecbutt](user?id=fennecbutt) [4 months ago](item?id=42007636) | prev | next [[–]](javascript:void\(0\))   
That explains a lot.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002591&how=up&goto=item%3Fid%3D41991291) |  [est](user?id=est) [4 months ago](item?id=42002591) | prev | next [[–]](javascript:void\(0\))   
Now maintain quarter of your old code base with AI, don't shut down services randomly.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999727&how=up&goto=item%3Fid%3D41991291) |  [skrebbel](user?id=skrebbel) [4 months ago](item?id=41999727) | prev | next [[–]](javascript:void\(0\))   
To my experience, AIs can generate perfectly good code relatively easy things, the kind you might as well copy&paste from stackoverflow, and they'll very confidently generate _subtly wrong_ code for anything that's non-trivial for an experienced programmer to write. How do people deal with this? I simply don't understand the value proposition. Does Google now have 25% subtly wrong code? Or do they have 25% trivial code? Or do all their engineers babysit the AI and bugfix the subtly wrong code? Or are all their engineers so junior that an AI is such a substantial help?Like, isn't this announcement a terrible indictment of how inexperienced their engineers are, or how trivial the problems they solve are, or both?  
---|---|---  
| ![](s.gif)|  [](vote?id=41999968&how=up&goto=item%3Fid%3D41991291) |  [toasteros](user?id=toasteros) [4 months ago](item?id=41999968) | parent | next [[–]](javascript:void\(0\))   
> the kind you might as well copy&paste from stackoverflowThis bothers me. I completely understand the conversational aspect - "what approach might work for this?", "how could we reduce the crud in this function?" \- it worked a lot for me last year when I tried learning C.But the vast majority of AI use that I see is...not that. It's just glorified, very expensive search. We are willing to burn far, far more fuel than necessary because we've decided we can't be bothered with traditional search.A lot of enterprise software is poorly cobbled together using stackoverflow gathered code as it is. It's part of the reason why MS Teams makes your laptop run so hot. We've decided that power-inefficient software is the best approach. Now we want to amplify that effect by burning more fuel to get the same answers, but from an LLM.It's frustrating. It should be snowing where I am now, but it's not. Because we want to frivolously chase false convenience and burn gallons and gallons of fuel to do it. LLM usage is a part of that.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001737&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42001737) | root | parent | next [[–]](javascript:void\(0\))   
What I can't wrap my head around is that making good, efficient software doesn't (by and large) take significantly longer than making bloated, inefficient enterprise spaghetti. The problem is finding people to do it with who care enough to think rigorously about what they're going to do before they start doing it. There's this bizarre misconception popular among bigtech managers that there's some tunable tradeoff between quality and development speed. But it doesn't actually work that way at all. I can't even count anymore how many times I've had to explain how taking this or that locally optimal shortcut will make it take longer overall to complete the project.In other words, it's a skill issue. LLMs can only make this worse. Hiring unskilled programmers and giving them a machine for generating garbage isn't the way. Instead, train them, and reject low quality work.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002517&how=up&goto=item%3Fid%3D41991291) |  [aleph_minus_one](user?id=aleph_minus_one) [4 months ago](item?id=42002517) | root | parent | next [[–]](javascript:void\(0\))   
> What I can't wrap my head around is that making good, efficient software doesn't (by and large) take significantly longer than making bloated, inefficient enterprise spaghetti. The problem is finding people to do it with who care enough to think rigorously about what they're going to do before they start doing it.I don't think finding such programmers is really difficult. What _is_ difficult is finding such people if you expect them to be docile to incompetent managers and other incompetent people involved in the project who, for example, got their position not by merit and competence, but by playing political games.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002161&how=up&goto=item%3Fid%3D41991291) |  [giantg2](user?id=giantg2) [4 months ago](item?id=42002161) | root | parent | prev | next [[–]](javascript:void\(0\))   
"What I can't wrap my head around is that making good, efficient software doesn't (by and large) take significantly longer than making bloated, inefficient enterprise spaghetti."In my opinion the reason we get enterprise spaghetti is largely due to requirement issues and scope creep. It's nearly impossible to create a streamlined system without knowing what it should look like. And once the system gets to a certain size, it's impossible to get business buy-in to rearchitect or refactor to the degree that is necessary. Plus the full requirements are usually poorly documented and long forgotten by that time.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002364&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42002364) | root | parent | next [[–]](javascript:void\(0\))   
When scopes creep and requirements change, simply refactor. Where is it written in The Law that you have to accrue technical debt? EDIT: I'm gonna double down on this one. The fact that your organization thinks they can demand of you that you can magically weathervane your codebase to their changeable whims is evidence that you have failed to realistically communicate to them what is actually possible to do _well_. The fact that they think it's a move you can make to creep the scope, or change the requirements, _is the problem_. Every time that happens it should be studied within the organization as a major, costly failure--like an outage or similar.> it's impossible to get business buy-in to rearchitect or refactor to the degree that is necessaryThat's a choice. There are some other options:\- Simply don't get business buy-in. Do without. Form a terrorist cell within your organization. You'll likely outpace them. Or you'll get fired, which means you'll get severance, unemployment, a vacation, and the opportunity to apply to a job at a better company.\- Fight viciously for engineering independence. You business people can do the businessing, but us engineers are going to do the engineering. We'll tell you how we'll do it, not the other way.\- Build companies around a culture of doing good, consistent work instead of taking expedient shortcuts. They're rare, but they exist!  
---|---|---  
| ![](s.gif)|  [](vote?id=42002531&how=up&goto=item%3Fid%3D41991291) |  [aleph_minus_one](user?id=aleph_minus_one) [4 months ago](item?id=42002531) | root | parent | next [[–]](javascript:void\(0\))   
> Fight viciously for engineering independence.Or simply find a position in an industry or department where you commonly have more independence. In my opinion this fight is not worth it - look for another position instead is typically easier.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002654&how=up&goto=item%3Fid%3D41991291) |  [llm_trw](user?id=llm_trw) [4 months ago](item?id=42002654) | root | parent | prev | next [[–]](javascript:void\(0\))   
>When scopes creep and requirements change, simply refactor.Congratulations, you just refactored out a use case which was documented in a knowledge base which has been replaced by 3 newer ones since then, happens once every 18 months and makes the company go bankrupt if it isn't carried out promptly.The type of junior devs who think that making code tidy is fixing the application are the type of dev who you don't let near the heart of the code base, and incidentally the type who are best replaced with code gen AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002903&how=up&goto=item%3Fid%3D41991291) |  [wpietri](user?id=wpietri) [4 months ago](item?id=42002903) | root | parent | next [[–]](javascript:void\(0\))   
Refactoring is improving the design of existing code. It shouldn't change behavior.And regardless, the way you prevent loss of important functionality isn't by hoping people read docs that no longer exist. It's by writing coarse-grained tests that makes sure the software does the important things. If a programmer wants to change something that breaks a test like that, they go ask a product manager (or whatever you call yours) if that feature still matters.And if nobody can say whether a feature still matters, the organization doesn't have a software problem, it has a serious management problem. Not all the coding techniques in the world can fix that.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002685&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42002685) | root | parent | prev | next [[–]](javascript:void\(0\))   
If you don't understand your systems well enough to comfortably refactor them, you're losing the war. I probably should have put "simply" in scare quotes, it _isn 't_ simple--and that's the point. Responding to unreasonable demands, like completely changing course at the 11th hour, shouldn't come at a low price.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003055&how=up&goto=item%3Fid%3D41991291) |  [galdosdi](user?id=galdosdi) [4 months ago](item?id=42003055) | root | parent | prev | next [[–]](javascript:void\(0\))   
It's a market for lemons.Without redoing their work or finding a way to have deep trust (which is possible, but uncommon at a bigcorp) it's hard enough to tell who is earnest and who is faking it (or buying their own baloney) when it comes to propositions like "investing in this piece of tech debt will pay off big time"As a result, if managers tend to believe such plans, bad ideas drive out good and you end up investing in a tech debt proposal that just wastes time. Burned managers therefore cope by undervaluing any such proposals and preferring the crappy car that at least you know is crappy over the car that allegedly has a brand new 0 mile motor on it but you have no way of distinguishing from a car with a rolled back odometer. They take the locally optimal path because it's the best they can do.It's taken me 15 years of working in the field and thinking about this to figure it out.The only way out is an organization where everyone is trusted and competent and is worthy of trust, which again, hard to do at most random bigcorps.This is my current theory anyway. It's sad, but I think it kind of makes sense.  
---|---|---  
| ![](s.gif)|  [](vote?id=42009185&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42009185) | root | parent | next [[–]](javascript:void\(0\))   
Soviet vs NATO. The Soviet management style is micromanaging exactly how to do everything from the rear. The NATO style is delegating to the front line ranks.Being good at the NATO style of management means focusing on the big picture--what, when, why--and leaving how to the people actually doing it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002881&how=up&goto=item%3Fid%3D41991291) |  [wpietri](user?id=wpietri) [4 months ago](item?id=42002881) | root | parent | prev | next [[–]](javascript:void\(0\))   
Agreed.The way I explain this to managers is that software development is unlike most work. If I'm making widgets and I fuck up, that widget goes out the door never to be seen again. But in software, today's outputs are tomorrow's raw materials. You can trade quality for speed in the very short term at the cost of future productivity, so you're really trading speed for speed.I should add, though, that one can do the rigorous thinking before or after the doing, and ideally one should do both. That was the key insight behind Martin Fowler's "Refactoring: Improving the Design of Existing Code". Think up front if you can, but the best designs are based on the most information, and there's a lot of information that is not available until later in a project. So you'll want to think as information comes in and adjust designs as you go.That's something an LLM absolutely can't do, because it doesn't have access to that flow of information and it can't think about where the system should be going.  
---|---|---  
| ![](s.gif)|  [](vote?id=42011998&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42011998) | root | parent | next [[–]](javascript:void\(0\))   
> the best designs are based on the most information, and there's a lot of information that is not available until later in a projectThis is an important point. I don't remember where I read it, but someone said something similar about taking a loss on your first few customers as an early stage startup--basically, the idea is you're buying information about how well or poorly your product meets a need.Where it goes wrong is if you choose not to act on that information.  
---|---|---  
| ![](s.gif)|  [](vote?id=42016875&how=up&goto=item%3Fid%3D41991291) |  [wpietri](user?id=wpietri) [4 months ago](item?id=42016875) | root | parent | next [[–]](javascript:void\(0\))   
For sure. Or, worse, choose to run a company in such a way that anybody making choices is insulated from that information.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002376&how=up&goto=item%3Fid%3D41991291) |  [c0balt](user?id=c0balt) [4 months ago](item?id=42002376) | root | parent | prev | next [[–]](javascript:void\(0\))   
It's relatively easy to find a programmer(s) who can realize enterprise project X, it's hard to find a programmer(s) who cares about X. Throwing an increased requirement like speed at it makes this worse because it usually ends up burning out both ends of the equation.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002185&how=up&goto=item%3Fid%3D41991291) |  [jihadjihad](user?id=jihadjihad) [4 months ago](item?id=42002185) | root | parent | prev | next [[–]](javascript:void\(0\))   
> The problem is finding people to do it with who care enough to think rigorously> ...> train them, and reject low quality work.I agree very strongly with both of these points.But I've observed a truth about each of them over the last decade-plus of building software.1) very few people approach the field of software engineering with anything remotely resembling rigor, and2) there is often little incentive to train juniors and reject subpar output (move fast and break things, etc.)I don't know where this takes us as an industry? But I feel your comment on a deep level.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002501&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42002501) | root | parent | next [[–]](javascript:void\(0\))   
> 1) very few people approach the field of software engineering with anything remotely resembling rigorThis is a huge problem. I don't know where it comes from, I think maybe sort of learned helplessness? Like, if systems are so complex that you don't believe a single person can understand it then why bother trying anyway? I think it's possible to inspire people to not accept not understanding. That motivation to figure out _what 's actually happening_ and _how things actually work_ is the carrot. The stick is thorough, critical (but kind and fair) code--and, crucially, _design_ \--review, and demanding things be re-done when they're not up to par. I've been extremely lucky in my career to have had senior engineers apply both of these tools excellently in my general direction.> 2) there is often little incentive to train juniors and reject subpar output (move fast and break things, etc.)One problem is our current (well, for years now) corporate culture is this kind of gig-adjacent-economy where you're only expected to stick around for a few years at most and therefore in order to be worth your comp package you need to be productive on your first day. Companies even advertise this as a good thing "you'll push code to prod on your first day!" It reminds me of those scammy books from when I was a kid in the late 90s "Learn C In 10 Days!".  
---|---|---  
| ![](s.gif)|  [](vote?id=42002968&how=up&goto=item%3Fid%3D41991291) |  [wpietri](user?id=wpietri) [4 months ago](item?id=42002968) | root | parent | next [[–]](javascript:void\(0\))   
> This is a huge problem. I don't know where it comes fromI think it's a bunch of things, but one legitimate issue is that software is stupidly complex these days. I had the advantage of starting when computers were pretty simple and have had a chance to grow along with it. (And my dad started when you could still lift up the hood and look at each bit. [1])When I'm working with junior engineers I have a hard time even summing up how many layers lie beneath what they're working on. And so much of what they have to know is historically contingent. Just the other day I had to explain what LF and CR mean and how it relates to physical machinery that they probably won't see outside of a museum: [https://sfba.social/@williampietri/113387049693365012](https://sfba.social/@williampietri/113387049693365012)So I get how junior engineers struggle to develop a belief that the can sort it all out. Especially when so many people end up working on garbage code, where little sense is to be had. It's no wonder so many turn to cargo culting and other superstitious rituals.[1] [https://en.wikipedia.org/wiki/Magnetic-core_memory](https://en.wikipedia.org/wiki/Magnetic-core_memory)  
---|---|---  
| ![](s.gif)|  [](vote?id=42002395&how=up&goto=item%3Fid%3D41991291) |  [steve_adams_86](user?id=steve_adams_86) [4 months ago](item?id=42002395) | root | parent | prev | next [[–]](javascript:void\(0\))   
I agree as well. These are actually things that bother me a lot about the industry. I’d love to write software that should run problem-free in 2035, but the reality is almost no one cares.I’ve had the good fortune of getting to write some firmware that will likely work well for a long time to come, but I find most things being written on computers are written with (or very close to) the minimum care possible in order to get the product out. Clean up is intended but rarely occurs.I think we’d see real benefits from doing a better job, but like many things, we fail to invest early and crave immediate gratification.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002468&how=up&goto=item%3Fid%3D41991291) |  [karolinepauls](user?id=karolinepauls) [4 months ago](item?id=42002468) | root | parent | prev | next [[–]](javascript:void\(0\))   
> very few people approach the field of software engineering with anything remotely resembling rigor, andI have this one opinion which I would not say at work:In software development it's easy to feel smart because what you made "works" and you can show "effects".\- Does it wrap every failable condition in `except Exception`? Uhh, but look, it _works_.\- Does it define a class hierarchy for what should be a dictionary lookup? It _works_ great tho!\- Does it create a cyclic graph of objects calling each other's methods to create more objects holding references to the objects that created them? And for what, to produce a flat dictionary of data at end of the day? But see, it _works_._this is getting boring, maybe just skip past the list_ \- Does it stuff what should be local variables and parameters in self, creating a big stateful blob of an object where every attribute is optional and methods need to be called in the right order, otherwise you get an exception? Yes, but it _works_.\- Does it embed a browser engine? But it _works_!The programmer, positively affirmed, continues spewing out crap, while the senior keep fighting fires to keep things running, while insulating the programmer from the taste of their own medicine.But more generally, it's hard to expect people to learn how to solve problems simply if they're given gigantic OO languages with all the features and no apparent cost to any of them. People learn how to write classes and then never learn get good at writing code with a clear data flow.Even very bright people can get fall for this trap because engineering isn't just about being smart but about using intelligence and experience to solve a problem while minmaxing correctly chosen properties. Those properties should generally be: dev time, complexity (state/flow), correctness, test coverage, ease of change, performance (anything else?). Anyway, "Affirming one's opinions about how things should be done" isn't one of them.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002791&how=up&goto=item%3Fid%3D41991291) |  [mos_basik](user?id=mos_basik) [4 months ago](item?id=42002791) | root | parent | next [[–]](javascript:void\(0\))   
The whole one about the stateful blob of an object with all optional attributes got me real good. Been fighting that for years. But the dev that writes this produces code faster than me and understands parts of the system no one else does and doesn't speak great English, so it continues. And the company is still afloat. So who's right in the end? And does it matter?  
---|---|---  
| ![](s.gif)|  [](vote?id=42005859&how=up&goto=item%3Fid%3D41991291) |  [karolinepauls](user?id=karolinepauls) [4 months ago](item?id=42005859) | root | parent | next [[–]](javascript:void\(0\))   
I don't know who's right but I know that it's the ergonomics of programming languages that make producing stateful blobs fast and easy that are in the wrong.  
---|---|---  
| ![](s.gif)|  [](vote?id=42012329&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42012329) | root | parent | next [[–]](javascript:void\(0\))   
You know it's a problem when you have to read a book having couple hundred pages to learn how to hold it right ;)  
---|---|---  
| ![](s.gif)|  [](vote?id=42002211&how=up&goto=item%3Fid%3D41991291) |  [A4ET8a8uTh0](user?id=A4ET8a8uTh0) [4 months ago](item?id=42002211) | root | parent | prev | next [[–]](javascript:void\(0\))   
<< Instead, train them, and reject low quality work.Ahh, well, in order to save money, training is done via an online class with multiple choice questions, or, if your company is like mine and really committed to making sure that you know they take your training seriously, they put portions of a generic book on 'tech Z' in pdf spread spread over a drm ridden web pages.As for code, that is reviewed, commented and rejected by llms as well. It is used to be turtles. Now it truly is llms all the way down.That said, in a sane world, this is what should be happening for a company that actually wants to get good results over time .  
---|---|---  
| ![](s.gif)|  [](vote?id=42003797&how=up&goto=item%3Fid%3D41991291) |  [noisy_boy](user?id=noisy_boy) [4 months ago](item?id=42003797) | root | parent | prev | next [[–]](javascript:void\(0\))   
> The problem is finding people to do it with who care enough to think rigorously about what they're going to do before they start doing it.There is no incentive to do it. I worked that way, focused on quality and testing and none of my changes blew up in production. My manager opined that this approach is too slow and that it was ok to have minor breakages as long as they are fixed soon. When things break though, it's blame game all around. Loads of hypocrisy.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002139&how=up&goto=item%3Fid%3D41991291) |  [sethammons](user?id=sethammons) [4 months ago](item?id=42002139) | root | parent | prev | next [[–]](javascript:void\(0\))   
"Slow is smooth and smooth is fast"  
---|---|---  
| ![](s.gif)|  [](vote?id=42002642&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42002642) | root | parent | next [[–]](javascript:void\(0\))   
It's true every single time.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000246&how=up&goto=item%3Fid%3D41991291) |  [chongli](user?id=chongli) [4 months ago](item?id=42000246) | root | parent | prev | next [[–]](javascript:void\(0\))   
_we 've decided we can't be bothered with traditional search_Traditional search (at least on the web) is dying. The entire edifice is drowning under a rapidly rising tide of spam and scam sites. No one, including Google, knows what to do about it so we're punting on the whole project and hoping AI will swoop in like _deus ex machina_ and save the day.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000772&how=up&goto=item%3Fid%3D41991291) |  [photonthug](user?id=photonthug) [4 months ago](item?id=42000772) | root | parent | next [[–]](javascript:void\(0\))   
Maybe it is naive but I think search would probably work again if they could roll back code to 10 or 15 years ago and just make search engines look for text in webpages.Google wasn’t crushed by spam, they decided to stop doing text search and build search bubbles that are user specific, location-specific, decided to surface pages that mention search terms in metadata instead of in text users might read, etc. Oh yeah, and about a decade before LLMs were actually usable, they started to sabotage simple substring searches and kind of force this more conversational interface. That’s when simple search terms stopped working very well, and you had to instead ask yourself “hmm how would a very old person or a small child phrase this question for a magic oracle”This is how we get stuff like: Did you mean “when did Shakespeare die near my location”? If anyone at google cared more about quality than printing money, that thirsty gambit would at least be at the bottom of the page instead of the top.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001573&how=up&goto=item%3Fid%3D41991291) |  [hughesjj](user?id=hughesjj) [4 months ago](item?id=42001573) | root | parent | next [[–]](javascript:void\(0\))   
I remember in like 5th grade rural PA schools learning about Boolean operators in search engines and falling in love with them. For context, they were presenting alta vista and yahoo kids search as the most popular with Google being a "simple but effective new search platform" we might want to check out.By the time I graduated highschool you already couldn't trust that Boolean operators would be treated literally. By the time I graduated college, they basically didn't seem to do anything, at best a weak suggestion.Nowadays quotes don't even seem to be consistently honored.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001989&how=up&goto=item%3Fid%3D41991291) |  [II2II](user?id=II2II) [4 months ago](item?id=42001989) | root | parent | next [[–]](javascript:void\(0\))   
Even though I miss using boolean operators in search, I doubt that it was ever sustainable outside of specialized search engines. Very few people seem to think in those terms. Many of those who do would still have difficulty forming complex queries.I suspect the real problem is that search engines ceased being search engines when they stopped taking things literally and started trying to interpret what people mean. Then they became some sort of poor man's AI. Now that we have LLMs, of course it is going to replace the poor excuse for search engines that exist today. We were heading down that road already, and it actually summarizes what is out there.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003128&how=up&goto=item%3Fid%3D41991291) |  [jordanb](user?id=jordanb) [4 months ago](item?id=42003128) | root | parent | next [[–]](javascript:void\(0\))   
People were learning. Just like with mice and menus, people are capable of learning new skills and querying search engines was one. I remember when it was considered a really "n00b" thing to type a full question into a search engine.Then Google decided to start enforcing that, because they had this idea that they would be able to divine your "intent" from a "natural question" rather than just matching documents including your search terms.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001392&how=up&goto=item%3Fid%3D41991291) |  [layer8](user?id=layer8) [4 months ago](item?id=42001392) | root | parent | prev | next [[–]](javascript:void\(0\))   
> just make search engines look for text in webpages.Google’s verbatim search option roughly does that for me (plus an ad blocker that removes ads from the results page). I have it activated by default as a search shortcut.(To activate it, one can add “tbs=li:1” as a query parameter to the Google search URL.)  
---|---|---  
| ![](s.gif)|  [](vote?id=42001625&how=up&goto=item%3Fid%3D41991291) |  [alex1138](user?id=alex1138) [4 months ago](item?id=42001625) | root | parent | next [[–]](javascript:void\(0\))   
To me the stupidest thing was the removal of things like + and -. You can say it's because of Google+ but annoyingly duckduckgo also doesn't seem to honor it. Kagi seems to and I hope they don't follow the others down the road of stupid  
---|---|---  
| ![](s.gif)|  [](vote?id=42002665&how=up&goto=item%3Fid%3D41991291) |  [jcgrillo](user?id=jcgrillo) [4 months ago](item?id=42002665) | root | parent | prev | next [[–]](javascript:void\(0\))   
> ?tbs=li:1Thank you, this is almost life-alteringly good to know.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003568&how=up&goto=item%3Fid%3D41991291) |  [photonthug](user?id=photonthug) [4 months ago](item?id=42003568) | root | parent | next [[–]](javascript:void\(0\))   
Funny, I can’t even test this because I’d need to know another neat trick to get my browser to let me actually edit the URL.Seems that Firefox on mobile allows editing the url for most pages, but on google search results pages, the url bar magically turns into a did-you-mean alternate search selector where I cannot see nor edit a url. Surprised but not surprised.Sure, there’s a work around for this too, somehow. But I don’t want to spend my life collecting and constantly updating a huge list of temporary hacks to fix things that others have intentionally broken.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003887&how=up&goto=item%3Fid%3D41991291) |  [layer8](user?id=layer8) [4 months ago](item?id=42003887) | root | parent | next [[–]](javascript:void\(0\))   
You can select verbatim search manually on the Google results page under Search tools > All results > Verbatim. You can also have a bookmark with a dummy search activating it, so you can then type your search terms into the Google search field instead of into the address bar.Yes, it’s annoying that you can’t set it as the default on Google search itself.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002393&how=up&goto=item%3Fid%3D41991291) |  [tru3_power](user?id=tru3_power) [4 months ago](item?id=42002393) | root | parent | prev | next [[–]](javascript:void\(0\))   
Wow what? Thanks!  
---|---|---  
| ![](s.gif)|  [](vote?id=42002208&how=up&goto=item%3Fid%3D41991291) |  [CapeTheory](user?id=CapeTheory) [4 months ago](item?id=42002208) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Maybe it is naive but I think search would probably work again if they could roll back code to 10 or 15 years ago and just make search engines look for text in webpages.Even more naive, but my personal preference: just ban all advertising. The fact that people will pay for ChatGPT implies people will also pay for good search if the free alternative goes away.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002513&how=up&goto=item%3Fid%3D41991291) |  [Atreiden](user?id=Atreiden) [4 months ago](item?id=42002513) | root | parent | next [[–]](javascript:void\(0\))   
It's working for Kagi  
---|---|---  
| ![](s.gif)|  [](vote?id=42000600&how=up&goto=item%3Fid%3D41991291) |  [masfuerte](user?id=masfuerte) [4 months ago](item?id=42000600) | root | parent | prev | next [[–]](javascript:void\(0\))   
Google results are not polluted with spam because Google doesn't know how to deal with it.Google results are polluted with spam because it is more profitable for Google. This is a conscious decision they made five years ago.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001054&how=up&goto=item%3Fid%3D41991291) |  [chongli](user?id=chongli) [4 months ago](item?id=42001054) | root | parent | next [[–]](javascript:void\(0\))   
_because it is more profitable for Google_ Then why are DuckDuckGo results also (arguably even more so) polluted with spam/scam sites? I doubt DDG is making any profit from those sites since Google essentially owns the display ad business.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001393&how=up&goto=item%3Fid%3D41991291) |  [JohnDone](user?id=JohnDone) [4 months ago](item?id=42001393) | root | parent | next [[–]](javascript:void\(0\))   
Ddg is actually Bing. Search as a service.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001723&how=up&goto=item%3Fid%3D41991291) |  [djvuvtgcuehb](user?id=djvuvtgcuehb) [4 months ago](item?id=42001723) | root | parent | next [[–]](javascript:void\(0\))   
And Bing is google.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002525&how=up&goto=item%3Fid%3D41991291) |  [redwall_hp](user?id=redwall_hp) [4 months ago](item?id=42002525) | root | parent | prev | next [[–]](javascript:void\(0\))   
If you own the largest ad network that spam sites use and own the traffic firehose, pointing the hose at the spam sites and ensuring people spend _more time_ clicking multiple results that point to ad-filled sites will make you more money.Google not only has multiple monopolies, but a cut and dry perverse incentive to produce lower quality results to make the whole session longer instead of short and effective.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000813&how=up&goto=item%3Fid%3D41991291) |  [skissane](user?id=skissane) [4 months ago](item?id=42000813) | root | parent | prev | next [[–]](javascript:void\(0\))   
I personally think a big problem with search is major search engines try to be all things to all people and hence suffer as a result.For example: a beginner developer is possibly better served by some SEO-heavy tutorial blog post; an experienced developer would prefer results weighted towards the official docs, the project’s bug tracker and mailing list, etc. But since less technical and non-technical people vastly outnumber highly technical people, Google and Bing end up focusing on the needs of the former, at the cost of making search worse for the later.One positive about AI: if an AI is doing the search, it likely wants the more advanced material not the more beginner-focused one. It can take more advanced material and simplify it for the benefit of less experienced users. It is (I suspect) less likely to make mistakes if you ask it to simplify the more advanced material than if you just gave it more beginner-oriented material instead. So if AI starts to replace humans as the main clients of search, that may reverse some of the pressure to “dumb it down”.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001301&how=up&goto=item%3Fid%3D41991291) |  [photonthug](user?id=photonthug) [4 months ago](item?id=42001301) | root | parent | next [[–]](javascript:void\(0\))   
> But since less technical and non-technical people vastly outnumber highly technical people, Google and Bing end up focusing on the needs of the former, at the cost of making search worse for the later.I mostly agree with your interesting comment, and I think your analysis basically jives with my sibling comment.But one thing I take issue with is the idea that this type of thing is a good faith effort, because it’s more like a convenient excuse. Explaining substring search or even include/exclude ops to children and grandparents is actually easy. Setting preferences for tutorials vs API docs would also be easy. But companies don’t really want user-directed behavior as much as they want to herd users to preferred content with algorithms, then convince the user it was their idea or at least the result of relatively static ranking processes.The push towards more fuzzy semantic search and “related content” everywhere is not to cater to novice users but to blur the line between paid advertisement and organic user-directed discovery.No need to give megacorp the benefit of the doubt on stuff like this, or make the underlying problems seem harder than they are. All platforms land in this place by convergent evolution wherein the driving forces are money and influence, not insurmountable technical difficulties or good intentions for usability.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001614&how=up&goto=item%3Fid%3D41991291) |  [consp](user?id=consp) [4 months ago](item?id=42001614) | root | parent | prev | next [[–]](javascript:void\(0\))   
> For example: a beginner developer is possibly better served by some SEO-heavy tutorial blog postGood luck finding those, you end op with SEO spam and clone page spam. These days you have to look for unobvious hidden meanings which only relate to your exact problem to find what you are looking for.I have the strong feeling search these days is back to the Altavista era. You'd have to use trickery to find what you were looking for back then as well. Too bad + no longer works in google due to their stupid naming of a dead product (no, literal is not the same and no replacement).  
---|---|---  
| ![](s.gif)|  [](vote?id=42002417&how=up&goto=item%3Fid%3D41991291) |  [tru3_power](user?id=tru3_power) [4 months ago](item?id=42002417) | root | parent | next [[–]](javascript:void\(0\))   
Yeah but this is just the name of the game. How can you even stop SEO style gamification at this point? I’m sure even LLMs are vulnerable/have been trained on SEO bs. End of the day it takes an informed user. Remember back in the day? Don’t trust the internet? I think that mindset will become the main school of thought once again. Which tbh, I think maybe a good thing.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001213&how=up&goto=item%3Fid%3D41991291) |  [skydhash](user?id=skydhash) [4 months ago](item?id=42001213) | root | parent | prev | next [[–]](javascript:void\(0\))   
> _Traditional search (at least on the web) is dying._ That's not my experience at all. While there are scammy sites, using the search engines as an index instead of an oracle still yields useful results. It only requires to learn the keywords which you can do by reading the relevant materials .  
---|---|---  
| ![](s.gif)|  [](vote?id=42040654&how=up&goto=item%3Fid%3D41991291) |  [chongli](user?id=chongli) [4 months ago](item?id=42040654) | root | parent | next [[–]](javascript:void\(0\))   
How do you read the relevant materials if you haven’t found them yet? It’s a chicken and egg problem. If your goal is to become an expert in a subject but you’re currently a novice, search can’t help you if it’s only giving you terrible results until you “crack the code.”  
---|---|---  
| ![](s.gif)|  [](vote?id=42001569&how=up&goto=item%3Fid%3D41991291) |  [rubyfan](user?id=rubyfan) [4 months ago](item?id=42001569) | root | parent | prev | next [[–]](javascript:void\(0\))   
AI will make the problem of low quality, fake, fraudulent and arbitrage content way worse. I highly doubt it will improve searching for quality content at all.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000449&how=up&goto=item%3Fid%3D41991291) |  [AnimalMuppet](user?id=AnimalMuppet) [4 months ago](item?id=42000449) | root | parent | prev | next [[–]](javascript:void\(0\))   
But it can't save the day.The problem with Google search is that it indexes all the web, and there's (as you say) a rising tide of scam and spam sites.The problem with AI is that it scoops up all the web as training data, _and there 's a rising tide of scam and spam sites._  
---|---|---  
| ![](s.gif)|  [](vote?id=42001358&how=up&goto=item%3Fid%3D41991291) |  [AtlasBarfed](user?id=AtlasBarfed) [4 months ago](item?id=42001358) | root | parent | prev | next [[–]](javascript:void\(0\))   
There's no way the search AI will beat out the spamgen AI.Tailoring/retraining the main search AI will be so much more expensive that retraining the spam special purpose AIs.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001451&how=up&goto=item%3Fid%3D41991291) |  [layer8](user?id=layer8) [4 months ago](item?id=42001451) | root | parent | prev | next [[–]](javascript:void\(0\))   
Without a usable web search index, AI will be in trouble eventually as well. There is no substitute for it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000590&how=up&goto=item%3Fid%3D41991291) |  [akoboldfrying](user?id=akoboldfrying) [4 months ago](item?id=42000590) | root | parent | prev | next [[–]](javascript:void\(0\))   
>The entire edifice is drowning under a rapidly rising tide of spam and scam sites.You make this claim with such confidence, but what is it based on?There have always been hordes of spam and scam websites. Can you point to anything that actually indicates that the ratio is now getting worse?  
---|---|---  
| ![](s.gif)|  [](vote?id=42001035&how=up&goto=item%3Fid%3D41991291) |  [chongli](user?id=chongli) [4 months ago](item?id=42001035) | root | parent | next [[–]](javascript:void\(0\))   
_There have always been hordes of spam and scam websites. Can you point to anything that actually indicates that the ratio is now getting worse?_ No, there haven't always been hordes of spam and scam websites. I remember the web of the 90s. When Google first arrived on the scene every site on the results page was a real site, not a spam/scam site.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002646&how=up&goto=item%3Fid%3D41991291) |  [ShroudedNight](user?id=ShroudedNight) [4 months ago](item?id=42002646) | root | parent | next [[–]](javascript:void\(0\))   
That was PageRank flexing its capability. There were lots of sites with reams of honeypot text that caught the other search engines.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001421&how=up&goto=item%3Fid%3D41991291) |  [quickthrowman](user?id=quickthrowman) [4 months ago](item?id=42001421) | root | parent | prev | next [[–]](javascript:void\(0\))   
Google could fix the problem if they wanted to, but it’s not in their interests to fix it since the spam sites generally buy ads from Google and/or display Google ads on their spam websites. Google wants to maximize their income, so..  
---|---|---  
| ![](s.gif)|  [](vote?id=42001287&how=up&goto=item%3Fid%3D41991291) |  [ponector](user?id=ponector) [4 months ago](item?id=42001287) | root | parent | prev | next [[–]](javascript:void\(0\))   
>> No one, including Google, knows what to do about itI'm sure they can. But they have no incentive. Try to Google an item, and it will show you a perfect match of sponsored ads and some other not-so-relevant non-sponsored results  
---|---|---  
| ![](s.gif)|  [](vote?id=42000365&how=up&goto=item%3Fid%3D41991291) |  [petre](user?id=petre) [4 months ago](item?id=42000365) | root | parent | prev | next [[–]](javascript:void\(0\))   
AI will generate even more spam and scam sites more trivially.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002818&how=up&goto=item%3Fid%3D41991291) |  [ses1984](user?id=ses1984) [4 months ago](item?id=42002818) | root | parent | next [[–]](javascript:void\(0\))   
What do you mean “will”, we are a few years past that point.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000516&how=up&goto=item%3Fid%3D41991291) |  [lokar](user?id=lokar) [4 months ago](item?id=42000516) | root | parent | prev | next [[–]](javascript:void\(0\))   
It took the scam/spam sites a few years to catch up to Google search. Just wait a bit, equilibrium will return.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000840&how=up&goto=item%3Fid%3D41991291) |  [cyanydeez](user?id=cyanydeez) [4 months ago](item?id=42000840) | root | parent | prev | next [[–]](javascript:void\(0\))   
If only google was trying to solve search rather than shareholdet values.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003672&how=up&goto=item%3Fid%3D41991291) |  [fmos](user?id=fmos) [4 months ago](item?id=42003672) | root | parent | prev | next [[–]](javascript:void\(0\))   
Kagi has fixed traditional search for me.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000384&how=up&goto=item%3Fid%3D41991291) |  [romwell](user?id=romwell) [4 months ago](item?id=42000384) | root | parent | prev | next [[–]](javascript:void\(0\))   
_Narrator: it did not, in fact, save the day._  
---|---|---  
| ![](s.gif)|  [](vote?id=42002267&how=up&goto=item%3Fid%3D41991291) |  [jihadjihad](user?id=jihadjihad) [4 months ago](item?id=42002267) | root | parent | prev | next [[–]](javascript:void\(0\))   
Another frustration I have with these models is that it is yet another crutch and excuse for turning off your brain. I was tagged on a PR a couple days ago where a coworker had added a GIN index to a column in Postgres, courtesy of GPT-4o, of course.He couldn't pronounce the name of the extension, apparently not noticing that _trgm_ == _trigram_ , or what that might even be. Copying the output from the LLM and pasting it into a PR didn't result in anything other than him checking off a box, moving a ticket in Jira, and then onto the next thing--not even a _pretense_ of being curious about what any of it all meant. But look at those query times now!It's been possible for a while to shut off your brain as a programmer and blindly copy-paste from StackOverflow etc., but the level of enablement that LLMs afford is staggering.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002445&how=up&goto=item%3Fid%3D41991291) |  [tru3_power](user?id=tru3_power) [4 months ago](item?id=42002445) | root | parent | next [[–]](javascript:void\(0\))   
Out of curiosity- did it work though?  
---|---|---  
| ![](s.gif)|  [](vote?id=42002894&how=up&goto=item%3Fid%3D41991291) |  [gonzobonzo](user?id=gonzobonzo) [4 months ago](item?id=42002894) | root | parent | prev | next [[–]](javascript:void\(0\))   
Doesn't this get to one of the fundamental issues though, that many of these frameworks and languages are poorly constructed in the first place? A lot of the times people turn to web searches, Stack Overflow, or AI is because they want to do X, and there's no quick, clear, and intuitive way to do X. I write cheat sheets for opaque parts of various frameworks myself. A lot of them aren't fundamentally difficult once you understand them, but they're constructed in an extremely convoluted way, and there's usually extremely poor documentation explaining how to actually use them.In fact, I'd say I use AI more for documentation than I do for code itself, because AI generated documentation is often superior to official documentation.In the end, these things shouldn't be necessary (or barely necessary) if we had well constructed languages, frameworks, libraries and documentation, but it appears like it's easier to build AI than to make things non-convoluted in the first place.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002397&how=up&goto=item%3Fid%3D41991291) |  [GaggiX](user?id=GaggiX) [4 months ago](item?id=42002397) | root | parent | prev | next [[–]](javascript:void\(0\))   
These models are simply much more powerful than a tradition search engine and stackoverflow, so many people use these models for a reason, a friend of mine that never tried ChatGPT until very recently managed to solve a problem he couldn't find a solution on stackoverflow using GPT-4o, next time he's probably going to ask the model directly.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008620&how=up&goto=item%3Fid%3D41991291) |  [toasteros](user?id=toasteros) [4 months ago](item?id=42008620) | root | parent | next [[–]](javascript:void\(0\))   
I don't know what your friend's prompts were, but this probably speaks to the conversational aspect. I've found success in using LLMs to "search" for things I don't know how to search for - a 'tip of my tongue' type scenario."How do I do a for loop" though is a waste of time and energy and should be put into a search engine. There is no need to use the inefficient power needs of an LLM to answer that question. The search engine will have cached the results of that question, leading to a much faster discovery of the answer, and less power draw to do it, whereas an LLM needs to ponder your question EVERY. SINGLE. TIME. A huge waste.Stop using LLMs for simple things.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002631&how=up&goto=item%3Fid%3D41991291) |  [braiamp](user?id=braiamp) [4 months ago](item?id=42002631) | root | parent | prev | next [[–]](javascript:void\(0\))   
> because we've decided we can't be bothered with traditional searchTraditional search was only Google, and Google figured out that they don't need to improve their tools to make it better, because everyone will continue to use it as a force of habit (google is a verb!). Traditional search is being abandoned because traditional search isn't good enough for the kinds of search we need (also, while google may claim their search is very useful, people rarely search stuff nowadays, instead prefer being passively fed content via recommendations algorithm (that also use AI!))  
---|---|---  
| ![](s.gif)|  [](vote?id=42002713&how=up&goto=item%3Fid%3D41991291) |  [dleeftink](user?id=dleeftink) [4 months ago](item?id=42002713) | root | parent | next [[–]](javascript:void\(0\))   
Algolia, Marginalia, Kagi, Scopus, ConnectedPapers, Lense[0] all stick to more or less traditional search and yield consistent high quality results. It shouldn't be one or the other, and I think the first one to combine both paradigms in a seamless fashion would be quite successfull (it has been tried, I know, but it's still a niche in many cases).[0]: [https://www.lens.org/lens/search/](https://www.lens.org/lens/search/)  
---|---|---  
| ![](s.gif)|  [](vote?id=42001525&how=up&goto=item%3Fid%3D41991291) |  [worik](user?id=worik) [4 months ago](item?id=42001525) | root | parent | prev | next [[–]](javascript:void\(0\))   
> But the vast majority of AI use that I see is...not that. It's just glorified, very expensive search.Since the collapse of Internet search (rose tinted hindsight - was it ever any good?) I have been using a LLM as my syntax advisor. I pay for my own tokens, and I can say it is astonishingly cheapIt is also very good.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001631&how=up&goto=item%3Fid%3D41991291) |  [hawski](user?id=hawski) [4 months ago](item?id=42001631) | root | parent | prev | next [[–]](javascript:void\(0\))   
A human can't be trusted to not make memory safety bugs. At the same time we can trust AI with logic bugs.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001763&how=up&goto=item%3Fid%3D41991291) |  [kelnos](user?id=kelnos) [4 months ago](item?id=42001763) | root | parent | next [[–]](javascript:void\(0\))   
Since LLMs are just based on human output, we should trust LLMs (at best) as much as we trust the average human coder. And in reality we should probably trust them less.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002172&how=up&goto=item%3Fid%3D41991291) |  [Dalewyn](user?id=Dalewyn) [4 months ago](item?id=42002172) | root | parent | prev | next [[–]](javascript:void\(0\))   
>We are willing to burn far, far more fuel than necessary because we've decided we can't be bothered with traditional search.That's because traditional search _fucking sucks balls_.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000406&how=up&goto=item%3Fid%3D41991291) |  [rpcope1](user?id=rpcope1) [4 months ago](item?id=42000406) | parent | prev | next [[–]](javascript:void\(0\))   
I don't get it either. People will say all sorts of strange stuff about how it writes the code for them or whatever, but even using the new Claude 3.5 Sonnet or whatever variant of GPT4, the moment I ask it anything that isn't the most basic done-to-death boilerplate, it generates stuff that's wrong, and often subtly wrong. If you're not at least pretty knowledgeable about exactly what it's generating, you'll be stuck trying to troubleshoot bad code, and if you are it's often about as quick to just write it yourself. It's especially bad if you get away from Python, and try to make it do anything else. SQL especially, for whatever reason, I've seen all of the major players generate either stuff that's just junk or will cause problems (things that your run of the mill DBA will catch).Honestly, I think it will become a better Intellisense but not much more. I'm a little excited because there's going to be so many people buying into this, generating so much bad code/bad architecture/etc. that will inevitably need someone to fix after the hype dies down and the rug is pulled, that I think there will continue to be employment opportunities.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000680&how=up&goto=item%3Fid%3D41991291) |  [solumunus](user?id=solumunus) [4 months ago](item?id=42000680) | root | parent | next [[–]](javascript:void\(0\))   
Supermaven is an incredible intellisense. Most code IS trivial and I barely write trivial code anymore. My imports appear instantly, with high accuracy. I have lots of embedded SQL queries and it’s able to guess the structure of my database very accurately. As I’m writing a query the suggested joins are accurate probably 80% of the time. I’m significantly more productive and having to type much less. If this is as good as it ever gets I’m quite happy. I rarely use AI for non trivial code, but non trivial code is what I want to work on…  
---|---|---  
| ![](s.gif)|  [](vote?id=42000829&how=up&goto=item%3Fid%3D41991291) |  [ta_1138](user?id=ta_1138) [4 months ago](item?id=42000829) | root | parent | next [[–]](javascript:void\(0\))   
This is all about the tooling most companies choose when building software: Things with more than enough boilerplate most code is trivial. We can build tools that have far less triviality and more density, where the distance between the code we write and business logic is very narrow.. but then every line of code we write is hard, because it's meaningful, and that feels bad enough to many developers, so we end up with tools where we might not be more productive, but we might feel productive, even though most of that apparent productivity is trivially generated.We also have the ceremonial layers of certain forms of corporate architecture, where nothing actually happens, but the steps must exist to match the holy box, box cylinder architecture. Ceremonial input massaging here, ceremonial data transformation over there, duplicated error checking... if it's easy for the LLM to do, maybe we shouldn't be doing it everywhere in the first place.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001125&how=up&goto=item%3Fid%3D41991291) |  [thfuran](user?id=thfuran) [4 months ago](item?id=42001125) | root | parent | next [[–]](javascript:void\(0\))   
>but then every line of code we write is hard, because it's meaningful, and that feels bad enough to many developers,I don't know that I've ever even met a developer who wants to be writing endless pools of trivial boilerplate instead of meaningful code. Even the people at work who are willing to say they don't want to deal with the ambiguity and high level design stuff and just want to be told what to do pretty clearly don't want endless drudgery.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001369&how=up&goto=item%3Fid%3D41991291) |  [Aeolun](user?id=Aeolun) [4 months ago](item?id=42001369) | root | parent | next [[–]](javascript:void\(0\))   
That, but boilerplate stuff is also incredibly easy to understand. As compared to high density, high meaning code anyway. I prefer more low density low meaning code as it makes it much easier to reason about any part of the system.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003160&how=up&goto=item%3Fid%3D41991291) |  [wruza](user?id=wruza) [4 months ago](item?id=42003160) | root | parent | next [[–]](javascript:void\(0\))   
So basically it’s a presentation problem.We want to control code at the call site, boilerplate helps with that by being locally modifiable.We also want to systematize chunks of code so that they don’t flicker around and mess with a reader.We wanted this since forever and no one does anything because anything above simple text completion is traditionally seen as an overkill, not the true way, not unix, etc. All sorts of stubborn arguments.This can be solved by simply allowing code trees instead of lines of code (tree vs table). You drop a boilerplate into code marked as “boilerplate ‘foo’ {…}” and edit it as you see fit, which creates a boilerplate-local patch. Then you can instantly see diffs, find, update boilerplates, convert them to and from regular functions, merge best practices from boilerplate libraries, etc. Problem solved.It feels like the development itself got collectively stuck in some stupid principles that no one dares to question. Everything that we invent stumbles upon the simple fact that we don’t have any sensible devtime structure, apart from this “file” and “import file” dullness.  
---|---|---  
| ![](s.gif)|  [](vote?id=42016596&how=up&goto=item%3Fid%3D41991291) |  [thfuran](user?id=thfuran) [4 months ago](item?id=42016596) | root | parent | prev | next [[–]](javascript:void\(0\))   
In and of itself, it's usually easy to understand. But the more fluff you stuff between the nontrivial bits, the harder it is to take in all at once. I think large quantities of simple boilerplate make the overall project harder to understand and debug. Though that is in comparison to an imagined alternative that's somehow exactly the same but with all the glue removed, so maybe that's not entirely fair.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003234&how=up&goto=item%3Fid%3D41991291) |  [codr7](user?id=codr7) [4 months ago](item?id=42003234) | root | parent | prev | next [[–]](javascript:void\(0\))   
I think you just nailed the paradox of Go's popularity among developers, managers are obvious.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000973&how=up&goto=item%3Fid%3D41991291) |  [monksy](user?id=monksy) [4 months ago](item?id=42000973) | root | parent | prev | next [[–]](javascript:void\(0\))   
I don't think that is the signal that I think most people are hoping for here.When I hear that most code is trivial, I think of this as a language design or a framework related issue making things harder than they should be.Throwing AI or generates at the problem just to claim that they fixed it is just frustrating.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001850&how=up&goto=item%3Fid%3D41991291) |  [throw234234234](user?id=throw234234234) [4 months ago](item?id=42001850) | root | parent | next [[–]](javascript:void\(0\))   
> When I hear that most code is trivial, I think of this as a language design or a framework related issue making things harder than they should be.This was one of my thoughts too. If the pain of using bad frameworks and clunky languages can be mitigated by AI, it seems like the popular but ugly/verbose languages will win out since there's almost no point to better designed languages/framework. I would rather a good language/framework/etc where it is just as easy to just write the code directly. Similar time in implementation to a LLM prompt, but more deterministic.If people don't feel the pain of AI slop why move to greener pastures? It almost encourages things to not improve at the code level.  
---|---|---  
| ![](s.gif)|  [](vote?id=42005016&how=up&goto=item%3Fid%3D41991291) |  [solumunus](user?id=solumunus) [4 months ago](item?id=42005016) | root | parent | prev | next [[–]](javascript:void\(0\))   
I'm writing software independently, with an extremely barebones framework (just handles routing pretty much) and very lean architecture. Maybe I should re-phrase it, "a lot of characters in the code base are trivial". Imports, function declarations, variable declarations. Is this stuff code/logic? Barely, but it's completely unavoidable. It all takes time and it's now time I rarely have to spend.Just as an example, I have "service" functions. They're incredibly simple, a higher order function where I can inject the DB handler, user permissions, config, etc. Every time I write one of these I have to import the ServiceDependencies type and declare which dependencies I need to write the service. I now spend close to zero time doing that and all my time focusing on the service logic. I don't see a downside to this.Most of my business logic is done in raw SQL, which can be complex, but the autocomplete often helps there too. It's not helping me figure out the logic, it's simply cutting down on my typing. I don't know how anyone could be offered "do you want to have type significantly less characters on your keyboard to get the same thing done?" and say "no thanks". The AI is almost NEVER coding for me, it's just typing for me and it's awesome.I don't care how lean your system is, there will at least be repetition in how you declare things. There will be imports, there will be dependencies. You can remove 90% of this repetitive work for almost no cost...I've tried to use ChatGPT to "code for me", and I agree with you that it's not a good option if you're trying to do anything remotely complex and want to avoid bugs. I never do this. But integrated code suggestions (with Supermaven, NOT CoPilot) are incredibly beneficial and maybe you should just try it instead of trying to come up with theoretical arguments. I was also a non-believer once.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001946&how=up&goto=item%3Fid%3D41991291) |  [int_19h](user?id=int_19h) [4 months ago](item?id=42001946) | root | parent | prev | next [[–]](javascript:void\(0\))   
Well, Google did design Go...  
---|---|---  
| ![](s.gif)|  [](vote?id=42001042&how=up&goto=item%3Fid%3D41991291) |  [Kiro](user?id=Kiro) [4 months ago](item?id=42001042) | root | parent | prev | next [[–]](javascript:void\(0\))   
Interesting that you believe your subjective experience outweighs the claims of all others who report successfully using LLMs for coding. Wouldn't a more charitable interpretation be that it doesn't fit the stuff you're doing?  
---|---|---  
| ![](s.gif)|  [](vote?id=42001782&how=up&goto=item%3Fid%3D41991291) |  [kelnos](user?id=kelnos) [4 months ago](item?id=42001782) | root | parent | next [[–]](javascript:void\(0\))   
Why wouldn't someone's subjective experience outweigh someone else's subjective experience?Regardless, I do wonder how accurate those successful reports are. Do people take LLM output, use it verbatim, not notice subtle bugs, and report that as success?  
---|---|---  
| ![](s.gif)|  [](vote?id=42004115&how=up&goto=item%3Fid%3D41991291) |  [Kiro](user?id=Kiro) [4 months ago](item?id=42004115) | root | parent | next [[–]](javascript:void\(0\))   
There's a big difference between "I've seen X" and "I've not seen X". The latter does not invalidate the former, unless you believe the person is lying or being delusional.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000334&how=up&goto=item%3Fid%3D41991291) |  [tobyjsullivan](user?id=tobyjsullivan) [4 months ago](item?id=42000334) | parent | prev | next [[–]](javascript:void\(0\))   
I'm not a Google employee but I've heard enough stories to know that a surprising amount of code changes at google are basically updating API interfaces.The way google works, the person changing an interface is responsible for updating all dependent code. They create PRs which are then sent to code owners for approval. For lower-level dependencies, this can involve creating thousands of PRs across hundreds of projects.Google has had tooling to help with these large-scale refactors for decades, generally taking the form of static analysis tools. However, these would be inherently limited in their capability. Manual PR authoring would still be required in many cases.With this background, LLM code gen seems like a natural tool to augment Google's existing process.I expect Google is currently executing a wave of newly-unblocked refactoring projects.If anyone works/worked at google, feel free to correct me on this.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002055&how=up&goto=item%3Fid%3D41991291) |  [cj](user?id=cj) [4 months ago](item?id=42002055) | root | parent | next [[–]](javascript:void\(0\))   
Do they have tooling for generating scaffolding for various things (like unit/integration tests)?If we’re guessing what code is easiest and largest proportion of codebase to write, my first guess would be test suites. Lots of lines of repetitive code patterns that repeat and AI is decent at dealing with  
---|---|---  
| ![](s.gif)|  [](vote?id=42000695&how=up&goto=item%3Fid%3D41991291) |  [slibhb](user?id=slibhb) [4 months ago](item?id=42000695) | parent | prev | next [[–]](javascript:void\(0\))   
Most programming is trivial. Lots of non-trivial programming tasks can be broken down into pure, trivial sections. Then, the non-trivial part becomes knowing how the entire system fits together.I've been using LLMs for about a month now. It's a nice productivity gain. You do have to read generated code and understand it. Another useful strategy is pasting a buggy function and ask for revisions.I think most programmers who claim that LLMs aren't useful are reacting emotionally. They don't want LLMs to be useful because, in their eyes, that would lower the status of programming. This is a silly insecurity: ultimately programmers are useful because they can think formally better than most people. For the forseeable future, there's going to be massive demand for that, and people who can do it will be high status.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001040&how=up&goto=item%3Fid%3D41991291) |  [tonyedgecombe](user?id=tonyedgecombe) [4 months ago](item?id=42001040) | root | parent | next [[–]](javascript:void\(0\))   
>I think most programmers who claim that LLMs aren't useful are reacting emotionally.I don't think that's true. Most programmers I speak to have been keen to try it out and reap some benefits.The almost universal experience has been that it works for trivial problems, starts injecting mistakes for harder problems and goes completely off the rails for anything really difficult.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002326&how=up&goto=item%3Fid%3D41991291) |  [theshackleford](user?id=theshackleford) [4 months ago](item?id=42002326) | root | parent | next [[–]](javascript:void\(0\))   
> I don't think that's true. Most programmers I speak to have been keen to try it out and reap some benefits.I’ve been seeing the complete opposite. So it’s out there.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000791&how=up&goto=item%3Fid%3D41991291) |  [gorjusborg](user?id=gorjusborg) [4 months ago](item?id=42000791) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Most programming is trivialThat's a bold statement, and incorrect, in my opinion.At a junior level software development can be about churning out trivial code in a previously defined box. I don't think its fair to call that 'most programming'.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000960&how=up&goto=item%3Fid%3D41991291) |  [BobbyJo](user?id=BobbyJo) [4 months ago](item?id=42000960) | root | parent | next [[–]](javascript:void\(0\))   
Probably overloading of the term "programming" is the issue here. Most "software engineering" is non-programming work. Most programming is not actually typing code.Most of the time, when I am typing code, the code I am producing is trivial, however.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002768&how=up&goto=item%3Fid%3D41991291) |  [uh_uh](user?id=uh_uh) [4 months ago](item?id=42002768) | root | parent | prev | next [[–]](javascript:void\(0\))   
Think of all the menial stuff you must perform regardless of experience level. E.g. you change the return type of a function and now you have to unpack the results slightly differently. Traditional automated tools fail at this. But if you show some examples to Cursor, it quickly catches on to the pattern and start autocompleting semi-automatically (semi because you still have to put the cursor to the right place but then you can tab, tab, tab…).  
---|---|---  
| ![](s.gif)|  [](vote?id=42010411&how=up&goto=item%3Fid%3D41991291) |  [gorjusborg](user?id=gorjusborg) [4 months ago](item?id=42010411) | root | parent | next [[–]](javascript:void\(0\))   
Don't misunderstand. I am not making an assertion that GenAI tools for development are useless.I am just pointing out that the thread parent started his logical climb at a step one that is incorrect: 'Most programming is trivial'.Given that they got it wrong on step one, how good do you thing step ten is?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000971&how=up&goto=item%3Fid%3D41991291) |  [r14c](user?id=r14c) [4 months ago](item?id=42000971) | root | parent | prev | next [[–]](javascript:void\(0\))   
From my perspective, writing out the requirements for an AI to produce the code I want is just as easy as writing it myself. There are some types of boilerplate code that I can see being useful to produce with an LLM, but I don't write them often enough to warrant actually setting up the workflow.Even with the debugging example, if I just read what I wrote I'll find the bug because I understand the language. For more complex bugs, I'd have to feed the LLM a large fraction of my codebase and at that point we're exceeding the level of understanding these things can have.I would be pretty happy to see an AI that can do effective code reviews, but until that point I probably won't bother.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001092&how=up&goto=item%3Fid%3D41991291) |  [er4hn](user?id=er4hn) [4 months ago](item?id=42001092) | root | parent | prev | next [[–]](javascript:void\(0\))   
It's reasonable to say that LLMs are not completely useless. There is also a very valid case to make that LLMs are not good at generating production ready code. I have found asking LLMs to make me Nix flakes to be a very nice way to make use of Nix without learning the Nix language.As an example of not being production ready: I recently tried to use ChatGPT-4 to provide me with a script to manage my gmail labels. The APIs for these are all online, I didn't want to read them. ChatGPT-4 gave me a workable PoC that was extremely slow because it was using inefficient APIs. It then lied to me about better APIs existing and I realized that when reading the docs. The "vibes" outcome of this is that it can produce working slop code. For the curious I discuss this in more specific detail at: [https://er4hn.info/blog/2024.10.26-gmail-labels/#using-ai-to...](https://er4hn.info/blog/2024.10.26-gmail-labels/#using-ai-to-write-the-script)  
---|---|---  
| ![](s.gif)|  [](vote?id=42001332&how=up&goto=item%3Fid%3D41991291) |  [Aeolun](user?id=Aeolun) [4 months ago](item?id=42001332) | root | parent | next [[–]](javascript:void\(0\))   
I find a recurring theme in these kind of comments where people seem to blame their laziness on the tool. The problem is not that the tools are imperfect, it’s that you apparently use them in situations where you expect perfection.Does a carpenter blame their hammer when it fails to drive in a screw?  
---|---|---  
| ![](s.gif)|  [](vote?id=42001457&how=up&goto=item%3Fid%3D41991291) |  [er4hn](user?id=er4hn) [4 months ago](item?id=42001457) | root | parent | next [[–]](javascript:void\(0\))   
I'd argue that a closer analogy is I bought a laser based measuring device. I point it a distant point and it tells me the distance from the tip of the device to that point. Many people are excited that this tool will replace rulers and measuring tapes because of the ease of use.However this laser measuring tool is accurate within a range. There's a lot of factors that affect it's accuracy like time of day, how you hold it, the material you point it at, etc. Sometimes these accuracy errors are minimal, sometimes they are pretty big. You end up getting a lot of measurements that seem "close enough". but you still need to ask if each one is correct. "Measure Twice, Cut Once" begins to require one measurement with the laser tool and once with the conventional tool when accuracy matters.One could have a convoluted analogy where the carpenter has an electric hammer that for some reason has a rounded head that does cause some number of nails to not go in cleanly, but I like my analogy better :)  
---|---|---  
| ![](s.gif)|  [](vote?id=42002884&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42002884) | root | parent | prev | next [[–]](javascript:void\(0\))   
>Does a carpenter blame their hammer when it fails to drive in a screw?That's the exact problem. I have plenty of screwdrivers but there's so much pressure from people not in carpentry telling me to use this shiny new army Swiss knife contraption. Will it work? Probably, if I'm just screwing in a few screws. Would I readily abandon my set of precision built, magnetic tip, etc. Screwdriver set for it? Definitely not.I'm sure it's great for non-carpenters to have so many tools in so small a space. But I developed skills and tools already. My job isn't just to screw in a few screws a day and call it quits. People wanting to replace me for a quarter the cost for this Swiss army carpenter will quickly see a quality difference and realize why it's not a solution to everything.Or in the software sense, maybe they are fine with unlevel shelves and hanging nails in carpet. It's certainly not work I'd find acceptable.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002827&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42002827) | root | parent | prev | next [[–]](javascript:void\(0\))   
> I think most programmers who claim that LLMs aren't useful are reacting emotionally. They don't want LLMs to be useful because, in their eyes, that would lower the status of programming.I think revealing the domain each programmer works in and asking in hose domains would reveal obvious trends. I imagine if you work in Web that you'll get workable enough AI gen code, but something like High Performance computing would get slop worse than copying and lasting the first result on Stackoverflow.A model is only as good as its learning set, and not all types are code are readily able to be indexable.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000939&how=up&goto=item%3Fid%3D41991291) |  [adriand](user?id=adriand) [4 months ago](item?id=42000939) | root | parent | prev | next [[–]](javascript:void\(0\))   
> Lots of non-trivial programming tasks can be broken down into pure, trivial sections. Then, the non-trivial part becomes knowing how the entire system fits together.I think that’s exactly right. I used to have to create the puzzle pieces and then fit them together. Now, a lot of the time something else makes the piece and I’m just doing the fitting together part. Whether there will come a day when we just need to describe the completed puzzle remains to be seen.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002451&how=up&goto=item%3Fid%3D41991291) |  [boringg](user?id=boringg) [4 months ago](item?id=42002451) | root | parent | prev | next [[–]](javascript:void\(0\))   
Trivial is fine but as you compound all the triviality the system starts to have a difficult time with putting it together. I don't expect it to nail it but then you have to unwind everything and figure out the issues so it isn't all gravy - fair bit of debug.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001862&how=up&goto=item%3Fid%3D41991291) |  [shinycode](user?id=shinycode) [4 months ago](item?id=42001862) | root | parent | prev | next [[–]](javascript:void\(0\))   
It’s always harder to build a mental model of the code written by someone else. No matter what, if you trust an LLM on small things in the long run you’ll trust it for bigger things. And the most code the LLM writes, the harder it is to build this mental construct. In the end it’ll be « it worked on 90% of cases so we trust it ». And who will debug 300 millions of code written by a machine that no one read based on trust ?  
---|---|---  
| ![](s.gif)|  [](vote?id=42001719&how=up&goto=item%3Fid%3D41991291) |  [jolt42](user?id=jolt42) [4 months ago](item?id=42001719) | root | parent | prev | next [[–]](javascript:void\(0\))   
They are useful, but so far, I haven't seen LLMs being obviously more useful than stackoverflow. It might generate code closer to what I need than what I find already coded, but it also produces buggier code. Sometimes it will show me a function I wasn't aware of or approach I wouldn't have considered, but I have to balance that with all the other attempts that didn't produce something useful.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002299&how=up&goto=item%3Fid%3D41991291) |  [jerb](user?id=jerb) [4 months ago](item?id=42002299) | root | parent | prev | next [[–]](javascript:void\(0\))   
Yes. Productivity tools make programmer time _more_ valuable, not less. This is basic economics. You’re now able to generate _more_ value per hour than before.(Or if you’re being paid to waste time, maybe consider coding in assembly?)So don’t be afraid. Learn to use the tools. They’re not magic, so stop expecting that. It’s like anything else, good at some things and not others.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000834&how=up&goto=item%3Fid%3D41991291) |  [Reason077](user?id=Reason077) [4 months ago](item?id=42000834) | root | parent | prev | next [[–]](javascript:void\(0\))   
A good farmer isn’t likely to complain about getting a new tractor. But it might put a few horses out of work.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001313&how=up&goto=item%3Fid%3D41991291) |  [derefr](user?id=derefr) [4 months ago](item?id=42001313) | root | parent | prev | next [[–]](javascript:void\(0\))   
I would add that a lot of the time when I'm programming, I'm an expert on the _problem_ domain but not the _solution_ domain — that is, I know exactly what the _pseudocode_ to solve my problem should look like; but I'm not necessarily fluent in the particular language and libraries/APIs I happen to have to use, in the particular codebase I'm working on, to operationalize that pseudocode.LLMs are great at translating already-rigorously-thought-out pseudocode requirements, into a specific (non-esoteric) programming language, with calls to (popular) libraries/APIs of that language. They might make little mistakes — but so can human developers. If you're good at _catching_ little mistakes, then this can still be faster!For a concrete example of what I mean:I hardly ever code in JavaScript; I'm mostly a backend developer. But sometimes I want to quickly fix a problem with our frontend that's preventing end-to-end testing; or I want to add a proof-of-concept frontend half to a new backend feature, to demonstrate to the frontend devs by example the way the frontend should be using the new API endpoint.Now, I can sit down with a JS syntax + browser-DOM API cheat-sheet, and _probably, eventually_ write correct code that doesn't accidentally e.g. incorrectly reject reject zero or empty strings because they're "false-y", or incorrectly interpolate the literal string "null" into a template string, or incorrectly try to call Element.setAttribute with a boolean true instead of an empty string (or any of JS's other thousand warts.) And I can do that because I _have_ written _some_ JS, and have been bitten by those things, just enough times now to _recognize_ those JS code smells when I see them when _reviewing_ code.But just because I can recognize bad JS code, doesn't mean that I can instantly conjure to mind whole blocks of JS code that do everything right and avoid all those pitfalls. I know "the right way" exists, and I've probably even used it before, and I would know it if I saw it... but it's not "on the tip of my tongue" like it would be for languages I'm more familiar with. I'd probably need to look it up, or check-and-test in a REPL, or look at some other code in the codebase to verify how it's done.With an LLM, though, I can just tell it the pseudocode (or equivalent code in a language I know better), get an initial attempt at the JS version of it out, immediately see whether it passes the "sniff test"; and if it doesn't, iterate just by pointing out my concerns in plain English — which will either result in code updated to solve the problem, or an explanation of why my concern isn't relevant. (Which, in the latter case, is a learning opportunity — but one to follow up in _non_ -LLM sources.)The product of this iteration process is basically the same JS code I would have written myself — the same code I _wanted_ to write myself, but didn't remember exactly "how it went." But I didn't have to spend any time dredging my memory for "how it went." The LLM handled that part.I would liken this to the difference between asking someone who knows anatomy but only ever does sculpture, to draw (rather than sculpt) someone's face; vs sitting the sculptor in front of a professional illustrator (who also knows anatomy), and having the sculptor describe the person's face to the illustrator in anatomical terms, with the sketch being iteratively improved through conversation and observation. The illustrator won't perfectly understand the requirements of the sculptor immediately — but the illustrator is still a lot more _fluent in the medium_ than the sculptor is; and both parties have all the required _knowledge of the domain_ (anatomy) to communicate efficiently about the sculptor's vision. So it still goes faster!  
---|---|---  
| ![](s.gif)|  [](vote?id=42002645&how=up&goto=item%3Fid%3D41991291) |  [coliveira](user?id=coliveira) [4 months ago](item?id=42002645) | root | parent | prev | next [[–]](javascript:void\(0\))   
> people who can do it will be high statusThey don't have high status even today, imagine in a world where they will be seen as just reviewers for AI code...  
---|---|---  
| ![](s.gif)|  [](vote?id=42002725&how=up&goto=item%3Fid%3D41991291) |  [uh_uh](user?id=uh_uh) [4 months ago](item?id=42002725) | root | parent | next [[–]](javascript:void\(0\))   
> They don't have high status even todayTry putting on a dating website that you work at Google vs you work in agriculture and tell us which yielded more dates.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002906&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42002906) | root | parent | next [[–]](javascript:void\(0\))   
Does it matter? I imagine the tanned shirtless farmer would get more hits than the pasty million dollar salary Googler anyway. (no offense to Googleers).With so many hits, it's about hitting all the checkmarks instead of minmaxing on one check.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002974&how=up&goto=item%3Fid%3D41991291) |  [uh_uh](user?id=uh_uh) [4 months ago](item?id=42002974) | root | parent | next [[–]](javascript:void\(0\))   
You can't just arbitrarily change (confounding) variables like that for a proper experiment. All other factors (including physique) must remain the same while you change one thing only: occupation.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003041&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42003041) | root | parent | next [[–]](javascript:void\(0\))   
"confounding" implies occupancy doesn't influce other factors of your life. I'm sure everyone wants the supermodel millionaire genius who's perfectly in touch with the feelings of their parter. If that was the norm then sure, farmers would be in trouble.My comment was more a critique on online dating culture and the values it weighs compared to in person meetups.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003470&how=up&goto=item%3Fid%3D41991291) |  [uh_uh](user?id=uh_uh) [4 months ago](item?id=42003470) | root | parent | next [[–]](javascript:void\(0\))   
I think it’s possible to create 2 dating profiles with the same pictures and change occupation only. It doesn’t have to be real to measure the impact of occupation.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000378&how=up&goto=item%3Fid%3D41991291) |  [wvenable](user?id=wvenable) [4 months ago](item?id=42000378) | parent | prev | next [[–]](javascript:void\(0\))   
> Or do they have 25% trivial code?We all have probably 25% or more trivial code. AI is great for that. I have X (table structure, model, data, etc) and I want to make Y with it. A lot of code is pretty much mindless shuffling data around.The other thing is good for is anything pretty standard. If I'm using a new technology and I just want to get started with whatever is the best practice, it's going to do that.If I ever have to do PowerShell (I hate PowerShell), I can get AI to generate pretty much whatever I want and then I'm smart enough to fix any issues. But I really don't like starting from nothing in a tech I hate.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000792&how=up&goto=item%3Fid%3D41991291) |  [lambdasquirrel](user?id=lambdasquirrel) [4 months ago](item?id=42000792) | root | parent | next [[–]](javascript:void\(0\))   
I’ve already had one job interview where the applicant seemed broadly knowledgeable about everything we asked them during lead-in questions before actual debugging. Then when they had to actually dig deeper or demonstrate understanding while solving some problem, they fell short.I’m pretty sure they weren’t the first and there’ve been others we didn’t know about. So now I don’t ask lead-in questions anymore. Surprisingly, it doesn’t seem to make much of a difference and I don’t need to get burned again.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000696&how=up&goto=item%3Fid%3D41991291) |  [randomNumber7](user?id=randomNumber7) [4 months ago](item?id=42000696) | root | parent | prev | next [[–]](javascript:void\(0\))   
Yes but then it would be more logical to say "AI makes our devs 25% more efficient". This is not what he said, but imo you are obviously right.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000768&how=up&goto=item%3Fid%3D41991291) |  [wvenable](user?id=wvenable) [4 months ago](item?id=42000768) | root | parent | next [[–]](javascript:void\(0\))   
Not necessarily. If 25% of the code is written by AI but that code isn't very interesting or difficult, it might not be making the devs 25% more efficient. It could even possibly be more but, either way, these are different metrics.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000785&how=up&goto=item%3Fid%3D41991291) |  [johannes1234321](user?id=johannes1234321) [4 months ago](item?id=42000785) | root | parent | prev | next [[–]](javascript:void\(0\))   
The benefit doesn't translate 1:1. The generated code has to be read and verified and might require small adaptions. (Partially that can be done by AI as well)But for me it massively improved all the boilerplate generic work. A lot of those things which are just annoying work, but not interesting.Then I can focus on the bigger things, on the important parts.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000265&how=up&goto=item%3Fid%3D41991291) |  [groestl](user?id=groestl) [4 months ago](item?id=42000265) | parent | prev | next [[–]](javascript:void\(0\))   
> do they have 25% trivial code?From what I've seen on Google Cloud, both as a user and from leaked source code, 25% of their code is probably just packing and unpacking of protobufs.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001531&how=up&goto=item%3Fid%3D41991291) |  [hughesjj](user?id=hughesjj) [4 months ago](item?id=42001531) | root | parent | next [[–]](javascript:void\(0\))   
I'd bet at least 25% of code attributes to me in gitfarm at Amazon was generated by octane and/or bones.God I miss that, thanks for the other person on HN introducing me to projen. Yeoman wasnt cutting it.These days I write a surprising amount of shell script and awk with LLMs. I review and adapt it, of course, but for short snippets of low context scripting it's been a huge time saver. I'm talking like 3-4, up to 20 lines of POSIX shell.Idk. Some day I'll actually learn AWK, and while I've gotten decent with POSIX shell (and bash), it's definitely been more monkey see monkey do than me going over all the libraries and reference docs like I did for python and the cpp FAQ.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999959&how=up&goto=item%3Fid%3D41991291) |  [akira2501](user?id=akira2501) [4 months ago](item?id=41999959) | parent | prev | next [[–]](javascript:void\(0\))   
> isn't this announcement a terrible indictmentOf obviously flawed corporate structures. This CEO has no particular programming expertise and most of his companies profits do not seem to flow from this activity. I strongly doubt he has a grip on the actual facts here and is uncritically repeating what was told to him in a meeting.He should, given his position, been the very _first_ person to ask the questions you've posed here.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002328&how=up&goto=item%3Fid%3D41991291) |  [nimithryn](user?id=nimithryn) [4 months ago](item?id=42002328) | parent | prev | next [[–]](javascript:void\(0\))   
An example:I'm looking for a new job, so I've been grinding leetcode (oof). I'm an experienced engineer and have worked at multiple FAANGs, so I'm pretty good at leetcode.Today I solved a leetcode problem 95% of the way to completion, but there was a subtle bug (maybe 10% of the test cases failing). I decided to see if Claude could help debug the code.I put the problem and the code into Claude and asked it to debug. Over the course of the conversation, Claude managed to provide 5 or 6 totally plausible but also completely wrong "fixes". Luckily, I am experienced enough at leetcode, and leetcode problems are simple enough, that I could easily tell that Claude was mistaken. Note that I am also very experienced with prompt engineering, as I ran a startup that used prompt engineering very heavily. Maybe it's a skill issue (my company did fail, hence why I need a job), but somehow I doubt it.Eventually, I found the bug on my own, without Claude's help. But leetcode are super simple, with known answers, and probably mostly in the training set! I can't imagine writing a big system and using an LLM heavily.Similarly, the other day I was trying to learn about e-graphs (the data structure). I went to Claude for help. I noticed that the more I used Claude, the more confused I became. I found other sources, and as it turns out, Claude was subtly wrong about e-graphs, an uncommon but reasonably well-researched data structure! Once again, it's lucky I was able to recognize that something was up. If the problem wasn't limited in scope, I'd have been totally lost!I use LLMs to help me code. I'm pro new technology. But when I see people bragging on Twitter about their fully automated coding solutions, or coding complex systems, or using LLMs for medical records or law or military or other highly critical domains, I seriously question their wisdom and experience.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001410&how=up&goto=item%3Fid%3D41991291) |  [bluerooibos](user?id=bluerooibos) [4 months ago](item?id=42001410) | parent | prev | next [[–]](javascript:void\(0\))   
At what point are people going to stop shitting on the code that Copilot or other LLM tools generate?> how trivial the problems they solve areA single line of code IS trivial. Simple code is good code. If I write the first 3 lines of a complex method and I let Copilot complete the 4th, that's 25% of my code written by an LLM.These tools have exploded in popularity for good reason. If they were no good, people wouldn't be using them.I can only assume people making such comments don't actually code on a daily basis and use these tools daily. Either that or you haven't figured out the knack of how to make it work properly for you.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002207&how=up&goto=item%3Fid%3D41991291) |  [thegrim33](user?id=thegrim33) [4 months ago](item?id=42002207) | root | parent | next [[–]](javascript:void\(0\))   
_These tools have exploded in popularity for good reason. If they were no good, people wouldn 't be using them._You're saying anything that's ever been popular is popular for a good reason? You can't think of counter examples that disprove this?You're saying anything that people decide to do is good, or else people wouldn't do it? People never act irrationally? People never blindly act on trends? People never sacrifice long-term results for short-term gain? You can't come up with any counter examples?  
---|---|---  
| ![](s.gif)|  [](vote?id=42094598&how=up&goto=item%3Fid%3D41991291) |  [bluerooibos](user?id=bluerooibos) [4 months ago](item?id=42094598) | root | parent | next [[–]](javascript:void\(0\))   
I don't really care to get into a philosophical debate about what's good or what people should use.I use these tools daily and they help me immensely. If you prefer Googling for docs, browsing stack overflow, or even flicking through textbooks to find the answers/materials you need - that's great! Do what works for you. I value my time slightly more than that and prefer not to remain stuck in the past.Perhaps you hold all the information you need in your head like an oracle and never need to learn new concepts or ever forget syntax? Wonderful. The rest of us aren't so naturally talented, so have found these new tools super helpful.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002705&how=up&goto=item%3Fid%3D41991291) |  [nijave](user?id=nijave) [4 months ago](item?id=42002705) | root | parent | prev | next [[–]](javascript:void\(0\))   
_remembers Bitcoin et al_  
---|---|---  
| ![](s.gif)|  [](vote?id=42001682&how=up&goto=item%3Fid%3D41991291) |  [ghosty141](user?id=ghosty141) [4 months ago](item?id=42001682) | root | parent | prev | next [[–]](javascript:void\(0\))   
I havent seen anybody use them and be more productive.With c++ my experience is that the results are completely worthless. It saves you from writing a few keywords but nothing that really helps in a big way.Yes Copilot CAN work, for example writing some JS or filter functions, but in my job these trivial snippets are rather uncommon.I‘d genuinely love to see some resources that show its usefulness that arent just PR bs.  
---|---|---  
| ![](s.gif)|  [](vote?id=42094538&how=up&goto=item%3Fid%3D41991291) |  [bluerooibos](user?id=bluerooibos) [4 months ago](item?id=42094538) | root | parent | next [[–]](javascript:void\(0\))   
> I havent seen anybody use them and be more productive.What does that even mean? What are you expecting to see?I've seen people who can't code ship entire new applications which actually work, in a few days or so. That to me seems more productive?I use these tools daily in a FAANG level SWE role and they help me debug issues quickly - all the time, especially with tech I'm new to and have no experience with. I really don't understand the hate - it's like skipping stack overflow and giving you the ideal answer a lot faster.Nobody likes to shout that they're using these tools but most people are.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001466&how=up&goto=item%3Fid%3D41991291) |  [fuzzy2](user?id=fuzzy2) [4 months ago](item?id=42001466) | parent | prev | next [[–]](javascript:void\(0\))   
I'll just answer here, but this isn't about this post in particular. It's about all of them. I've been struggling with a team of junior devs for the past months. How would I describe the experience? It's easy: just take any of these posts, replace "AI" with "junior dev", done.Except of course AI at least can do spelling. (Or at least I haven't encountered a problem in that regard.)I'm highly skeptical regarding LLM-assisted development. But I must admit: it works. If paired with an experienced senior developer. IMHO it must not be used otherwise.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001717&how=up&goto=item%3Fid%3D41991291) |  [palata](user?id=palata) [4 months ago](item?id=42001717) | root | parent | next [[–]](javascript:void\(0\))   
Isn't the whole point of hiring a junior dev that they will learn and become senior devs eventually?  
---|---|---  
| ![](s.gif)|  [](vote?id=42002954&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42002954) | root | parent | next [[–]](javascript:void\(0\))   
Your mindset is sadly a decade put of touch. Companies long since shifted to churn mentality. They not only slashed retention perks, they actively expect people to move around every few years. So they don't bother stopping them or counter offering unless they are a truly exceptional person.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001517&how=up&goto=item%3Fid%3D41991291) |  [alfiedotwtf](user?id=alfiedotwtf) [4 months ago](item?id=42001517) | root | parent | prev | next [[–]](javascript:void\(0\))   
> replace "AI" with "junior dev", done.Damn, that’s a good way of putting it. But I’ll go one further:replace "AI" with "junior dev who doesn’t like reading documentation or googling how things work so instead confidently types away while guessing the syntax and API so it kind of looks right”  
---|---|---  
| ![](s.gif)|  [](vote?id=42001726&how=up&goto=item%3Fid%3D41991291) |  [hughesjj](user?id=hughesjj) [4 months ago](item?id=42001726) | root | parent | next [[–]](javascript:void\(0\))   
I've been saying it's like an intern who has an incredible breadth of knowledge but very little depth, is excessively over confident in their own abilities given the error rates they commit, and is anxious to the point they'll straight up lie to you rather than admit a mistake.Currently, they don't learn skills as fast as a motivated intern. A stellar intern can go from no idea to "makes relevant contributions to our product with significant independence and low error rate" (hi Matt if you ever see this) in 3 months. LLMs, to my understanding, take significantly more attention from super smart people working long hours and an army of mechanical Turks, but won't be able to independently implement a feature and will still have a higher error rate in the same 3 months.It's still super impressive what LLMs can do, but that same intern is going to keep growing at that faster rate in skills and competency as they go from jr->mid->sr. Sure the intern won't have as large of a competency pool, and takes longer to respond to any given question, but the scope of what they can implement is so much greater.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000375&how=up&goto=item%3Fid%3D41991291) |  [skissane](user?id=skissane) [4 months ago](item?id=42000375) | parent | prev | next [[–]](javascript:void\(0\))   
> To my experience, AIs can generate perfectly good code relatively easy things, the kind you might as well copy&paste from stackoverflow, and they'll very confidently generate subtly wrong code for anything that's non-trivial for an experienced programmer to write. How do people deal with this?Well, just in the last 24 hours, ChatGPT gave me solutions to some relatively complex problems that turned out to be significantly wrong.Did that mean it was a complete waste of my time? I’m not sure. Its broken code gave me a starting point for tinkering and exploring and trying to understand why it wasn’t working (even if superficially it looked like it should). I’m not convinced I lost anything by trying its suggestions. And I learned some things in the process (e.g. asyncio doesn’t play well together with Flask-Sock)  
---|---|---  
| ![](s.gif)|  [](vote?id=42000630&how=up&goto=item%3Fid%3D41991291) |  [JohnMakin](user?id=JohnMakin) [4 months ago](item?id=42000630) | parent | prev | next [[–]](javascript:void\(0\))   
> To my experience, AIs can generate perfectly good code relatively easy things, the kind you might as well copy&paste from stackoverflow,This, imho, is what is happening. In the olden days, when StackOverflow + Google used to magically find the exact problem from the exact domain you needed every time - even then you'd often need to sift through the answers (top voted one was increasingly not what you needed) to find what you needed, then modify it further to precisely fit whatever you were doing. This worked fine for me for a long time until search rendered itself worthless and the overall answer quality of StackOverflow has gone down (imo). So, we are here, essentially doing the exact same thing in a much more expensive way, as you said.Regarding future employment opportunities - this rot is already happening and hires are coming from it, at least from what I'm seeing in my own domain.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000566&how=up&goto=item%3Fid%3D41991291) |  [eco](user?id=eco) [4 months ago](item?id=42000566) | parent | prev | next [[–]](javascript:void\(0\))   
I'd be terribly scared to use it in a language that isn't statically typed with many, many compile time error checks.Unless you're the type of programmer that is writing sabots all day (connecting round pegs into square holes between two data sources) you've got to be very critical of what these things are spitting out.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002227&how=up&goto=item%3Fid%3D41991291) |  [int_19h](user?id=int_19h) [4 months ago](item?id=42002227) | root | parent | next [[–]](javascript:void\(0\))   
I can't help but think that Go might be one of the better languages for AI to target - statically typed, verbose with a lot of repeated scaffolding, yet generally not that easy to shoot yourself in the foot. Which might explain why this is a thing at Google specifically.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000610&how=up&goto=item%3Fid%3D41991291) |  [randomNumber7](user?id=randomNumber7) [4 months ago](item?id=42000610) | root | parent | prev | next [[–]](javascript:void\(0\))   
It is way more scary to use it for C or C++ than Python imo.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000709&how=up&goto=item%3Fid%3D41991291) |  [cybrox](user?id=cybrox) [4 months ago](item?id=42000709) | root | parent | prev | next [[–]](javascript:void\(0\))   
If you use it as advanced IntelliSense/auto-complete, it's not any worse than with typed languages.If you just let it generate and run the code... yeah, probably, since you won't catch the issues at compile time.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001746&how=up&goto=item%3Fid%3D41991291) |  [aiforecastthway](user?id=aiforecastthway) [4 months ago](item?id=42001746) | parent | prev | next [[–]](javascript:void\(0\))   
I decided to go into programming instead of becoming an Engineer because most Engineering jobs seemed systematic and boring. (Software Engineers weren't really a thing at the time.)For most of my career, Software Engineering was a misnomer. The field was too young, and the tools used changed too quickly, for an appreciable amount of the work to be systematic and boring enough to consider it an Engineering discipline.I think we're now at the point where Software Engineering is... actually Engineering. Particularly in the case of large established companies that take software seriously, like Google (as opposed to e.g. a bank).Call it "trivial" and "boring" all you want, but at some point a road is just a road, and a train track is just a train track, and if it's not "trivial and boring" then you've probably fucked up pretty badly.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001823&how=up&goto=item%3Fid%3D41991291) |  [javaunsafe2019](user?id=javaunsafe2019) [4 months ago](item?id=42001823) | root | parent | next [[–]](javascript:void\(0\))   
Since when is engineering boring? Stranges ideas and claims u made.I’m an engineer who writes code since 20 years and it’s far away from trivial . Maybe to do web dev for a simple Webshop is. Elsewhere software has often times special requirements. Be them technical or domain wise both make the process complex and not simple IMHO  
---|---|---  
| ![](s.gif)|  [](vote?id=42001942&how=up&goto=item%3Fid%3D41991291) |  [aiforecastthway](user?id=aiforecastthway) [4 months ago](item?id=42001942) | root | parent | next [[–]](javascript:void\(0\))   
Boring is the opposite of exciting/dynamic.Not all engineering is boring. Also, boring is not bad.A lot of my career has been spent working to make software boring. To the extent that I've helped contribute to the status quo, where we can build certain types of software in a relatively secure fashion and on relatively predictable timelines, I am proud to have made the world more boring!(Also, complexity can be extraordinarily boring. Some of the most complex things are also the most boring. Nothing more boring than a set of business rules that has an irreducible complexity coming in at 5,211 lines of if-else blocks wrapped in two while loops! Give me a simple set of partial differential equations any day -- much more exciting to work with those! If you're the type of person who enjoys reading tax code, then we just have different definitions of boring; and if you're the type of person doesn't think tax code is complex, then I'm just a dummy compared to you :))But e.g. in the early naughts doing structural engineering work for residential new build projects was certainly less engaging and exciting work than building websites.Most engineering works aims for repeatable and predictable outcomes. That's a good thing, and it's not easy to achieve! But if Software has reached the point where the process of building certain types of software is "repeatable and predictable", and if Google needs a lot of that type of software, then if the main criticism of AI code assistants is "it's only good for repeatable and predictable", well, then the criticism isn't exactly the indictment that skeptics think it is.There is nothing wrong with boring in the sense I'm using it. Boring can be tremendously intellectually demanding. Also, predictable and repeatable processes are incredibly important if you want quality work at scale. Engineering is a good thing. Maturing as a field is a good thing.But if we're maturing from "wild west everything is a greenfield project" to "70% of things are pretty systematic and repeatable" then that says something about the criticism of AI coding assistants as being only good for the systematic and repeatable stuff, right?Also: the AI coding assistant paradigm is coming for structural/mechanical/civil engineering next, and in a big way!  
---|---|---  
| ![](s.gif)|  [](vote?id=42002280&how=up&goto=item%3Fid%3D41991291) |  [sally_glance](user?id=sally_glance) [4 months ago](item?id=42002280) | root | parent | next [[–]](javascript:void\(0\))   
I was totally with you until "70% of things are pretty systematic and repeatable". This has not been my experience, and I think you acknowledged it yourself when you said "Google (as opposed to e.g. a bank)" \- there are many more banks in the world than Googles. The main challenge will be transitioning all those "banks" to "Google's" and further still. They have 10y+ codebases written in 5 months by a single genius engineer (who later found his luck elsewhere), then hammered by multiple years of changing maintainers. That's the real "70% of things" :D  
---|---|---  
| ![](s.gif)|  [](vote?id=42002879&how=up&goto=item%3Fid%3D41991291) |  [aiforecastthway](user?id=aiforecastthway) [4 months ago](item?id=42002879) | root | parent | next [[–]](javascript:void\(0\))   
No, I think we agree! Google SWE roles will be automated faster SWE roles in the financial sector :)  
---|---|---  
| ![](s.gif)|  [](vote?id=42001347&how=up&goto=item%3Fid%3D41991291) |  [grepLeigh](user?id=grepLeigh) [4 months ago](item?id=42001347) | parent | prev | next [[–]](javascript:void\(0\))   
I have a whole "chop wood, carry water" speech born from leading corporate software teams. A lot of work at a company of sufficient size boils down to keeping up with software entropy while also chipping away at some initiative that rolls up to an OKR. It can be such a demotivating experience for the type of smart, passionate people that FANNGs like to hire.There's even a buzzword for it: KTLO (keep the lights on). You don't want to be spending 100% of your time on KTLO work, but it's unrealistic to expect to do done of it. Most software engineers would gladly outsource this type of scutwork.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003336&how=up&goto=item%3Fid%3D41991291) |  [girvo](user?id=girvo) [4 months ago](item?id=42003336) | root | parent | next [[–]](javascript:void\(0\))   
> KTLO (keep the lights on)Some places also call this "RTB" for "run the business" type work. Nothing but respect for the engineers who enjoy that kind of approach, I work with several!  
---|---|---  
| ![](s.gif)|  [](vote?id=42002218&how=up&goto=item%3Fid%3D41991291) |  [asdfman123](user?id=asdfman123) [4 months ago](item?id=42002218) | parent | prev | next [[–]](javascript:void\(0\))   
No, AI is generating a quarter of all _characters_. It's an autocomplete engine. You press tab, it finishes the line. Doesn't do any heavy lifting at all.Source: I work there, see my previous comment.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001520&how=up&goto=item%3Fid%3D41991291) |  [dmurray](user?id=dmurray) [4 months ago](item?id=42001520) | parent | prev | next [[–]](javascript:void\(0\))   
> Or do they have 25% trivial code?Surely yes.I (not at Google) rarely use the LLM for anything more than two lines at a time, but it writes/autocompletes 25% of my code no problem.I believe Google have character-level telemetry for measuring things like this, so they can easily count it in a way that can be called "writing 25% of the code".Having plenty of "trivial code" isn't an indictment of the organisation. Every codebase has parts that are straightforward.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999874&how=up&goto=item%3Fid%3D41991291) |  [Nasrudith](user?id=Nasrudith) [4 months ago](item?id=41999874) | parent | prev | next [[–]](javascript:void\(0\))   
I wouldn't call it an indictment necessarily, because so much is dependent upon circumstances. They can't all be "deep problems" in the real world. Projects tend to have two components, "deep" work which is difficult and requires high skill and cannot be made up with by using masses of inexperienced and "shallow" work where being skilled doesn't really help, or doesn't help too much compared to throwing more bodies at the problem. To use an example it is like advanced accounting vs just counting up sales receipts.Even if their engineers were inexperienced that wouldn't be an indictment in itself so long as they had a sufficient necessary amount of shallow work. Using all experienced engineers to do shallow work is just inefficient, like having brain surgeons removing bunions. Automation is basically a way to transform deep work to a producer of "free" shallow work.That said, the real impressive thing with code isn't in its creation but in its ability to losslessly delete code and maintain or improve functionality.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999824&how=up&goto=item%3Fid%3D41991291) |  [hifromwork](user?id=hifromwork) [4 months ago](item?id=41999824) | parent | prev | next [[–]](javascript:void\(0\))   
25% trivial code sounds like a reasonable guess.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000022&how=up&goto=item%3Fid%3D41991291) |  [fzysingularity](user?id=fzysingularity) [4 months ago](item?id=42000022) | root | parent | next [[–]](javascript:void\(0\))   
This seems reasonable - but I'm interpreting this as most junior-level coding needs will end and be replaced with AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000295&how=up&goto=item%3Fid%3D41991291) |  [mrguyorama](user?id=mrguyorama) [4 months ago](item?id=42000295) | root | parent | next [[–]](javascript:void\(0\))   
And the non junior developers will then just magically appear from the aether!With 10 years experience in a four year old stack.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002203&how=up&goto=item%3Fid%3D41991291) |  [TacticalCoder](user?id=TacticalCoder) [4 months ago](item?id=42002203) | parent | prev | next [[–]](javascript:void\(0\))   
> and they'll very confidently generate subtly wrong code for anything that's non-trivial for an experienced programmer to writeThankfully I don't find it subtle but plain wrong for anything but trivial stuff. I use it (and pay an AI subscription) for things where false positive won't ruin the day, like parameters validation.But for anything advanced, it's pretty hopeless.I've talked with lawyers: same thing. With doctors: same thing.Which ain't no surprise see how these things do work.> Like, isn't this announcement a terrible indictment of how inexperienced their engineers are, or how trivial the problems they solve are, or both?Probably lots of highly repetitive boilerplate stuff everywhere. Which in itself is quite horrifying if you think about it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000381&how=up&goto=item%3Fid%3D41991291) |  [sangnoir](user?id=sangnoir) [4 months ago](item?id=42000381) | parent | prev | next [[–]](javascript:void\(0\))   
> Does Google now have 25% subtly wrong code?How do you quantify "new code" \- is it by lines of code or number of PRs/changesets generated? I can easily see it being the latter - if an AI workflow suggests 1 naming-change/cleanup commit to your PR made of 3 other human-authored commits, has it authored 25% of code? Arguably, yes - but it's trivial code that ought to be reviewed by humans. Dependabot is responsible for a good chunk of PRs already.Having a monorepo brings plenty of opportunities for automation when refactoring - whether its AI, AST manipulation or even good old grep. The trick is not to merge the code directly, but have humans in the loop to approve, or take-over and correct the code first.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001148&how=up&goto=item%3Fid%3D41991291) |  [ants_everywhere](user?id=ants_everywhere) [4 months ago](item?id=42001148) | parent | prev | next [[–]](javascript:void\(0\))   
Google's internal codebase is nicer and more structured than the average open source code base.Their internal AI tools are presumably trained on their code, and it wouldn't surprise me if the AI is capable of much more internally than public coding AIs are.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003118&how=up&goto=item%3Fid%3D41991291) |  [geodel](user?id=geodel) [4 months ago](item?id=42003118) | parent | prev | next [[–]](javascript:void\(0\))   
> Like, isn't this announcement a terrible indictment of how inexperienced their engineers are..Well, Rob Pike said same thing about experience and that seemed to pissed lot of people endlessly.However I don't think it as indictment It just seems very reasonable to me. In fact 25% seem to be on lower end. Amazon seems to have thousands of software engineers who are doing _API calling API calling API.._ kind of crap. Now their annual income might be more than my lifetime earnings. But to think that all these highly paid engineers are doing highly complex work that need high skills seems just a myth that is useful to boost ego of engineers and their employers alike.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000934&how=up&goto=item%3Fid%3D41991291) |  [afavour](user?id=afavour) [4 months ago](item?id=42000934) | parent | prev | next [[–]](javascript:void\(0\))   
> Or do they have 25% trivial code?If anything that's probably an underestimate. Not to downplay the complexity in much of what Google does but I'm sure they also do an absolute ton of tedious, boring CRUD operations that an AI could write.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002641&how=up&goto=item%3Fid%3D41991291) |  [herval](user?id=herval) [4 months ago](item?id=42002641) | parent | prev | next [[–]](javascript:void\(0\))   
In my experience, that was always the case with gpt3.5, most times the case with gpt4, some times the case with the latest sonnet. It’s getting better FAST, and the kind of code they can handle is increasing fast too  
---|---|---  
| ![](s.gif)|  [](vote?id=42001718&how=up&goto=item%3Fid%3D41991291) |  [djvuvtgcuehb](user?id=djvuvtgcuehb) [4 months ago](item?id=42001718) | parent | prev | next [[–]](javascript:void\(0\))   
A better analogy is a self driving car where you need to keep your hands on the wheel in case something goes wrong.For the most part, it drives itself.Yes, the majority of my code is trivial. But I've also had ai iterate on some very non trivial work including writing the test suite.It's basically autocomplete on steroids that predicts your next change in the file, not just the next change on the line.The copy paste from stack overflow trope is a bit weird, I haven't done that in ten years and I don't think the code it produces is that low quality either. Copy paste from an open source repo on GitHub maybe?  
---|---|---  
| ![](s.gif)|  [](vote?id=42002422&how=up&goto=item%3Fid%3D41991291) |  [pjmorris](user?id=pjmorris) [4 months ago](item?id=42002422) | parent | prev | next [[–]](javascript:void\(0\))   
> Like, isn't this announcement a terrible indictment of how inexperienced their engineers are, or how trivial the problems they solve are, or both?Or maybe there's a KPI around lines of code or commits.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001258&how=up&goto=item%3Fid%3D41991291) |  [fsckboy](user?id=fsckboy) [4 months ago](item?id=42001258) | parent | prev | next [[–]](javascript:void\(0\))   
> _Does Google now have 25% subtly wrong code?_ maybe the ai generates 100% of the company's new code, and then by the time the programmers have fixed it, only 25% is left of the AI's ship of Theseus  
---|---|---  
| ![](s.gif)|  [](vote?id=42003040&how=up&goto=item%3Fid%3D41991291) |  [rh2323o4jl234](user?id=rh2323o4jl234) [4 months ago](item?id=42003040) | parent | prev | next [[–]](javascript:void\(0\))   
> Does Google now have 25% subtly wrong code?I think you underestimate the amount of boiler-plate code that a typical job at Google requires. I found it soul-crushingly boring (though their pay is insane).  
---|---|---  
| ![](s.gif)|  [](vote?id=41999777&how=up&goto=item%3Fid%3D41991291) |  [airstrike](user?id=airstrike) [4 months ago](item?id=41999777) | parent | prev | next [[–]](javascript:void\(0\))   
By definition, "trivial" code should make up a significant portion of any code base, so perhaps the 25% is precisely the bit that is trivial and easily automated.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000240&how=up&goto=item%3Fid%3D41991291) |  [Smaug123](user?id=Smaug123) [4 months ago](item?id=42000240) | root | parent | next [[–]](javascript:void\(0\))   
I don't think the word "definition" means what you think it means!  
---|---|---  
| ![](s.gif)|  [](vote?id=42002457&how=up&goto=item%3Fid%3D41991291) |  [manquer](user?id=manquer) [4 months ago](item?id=42002457) | parent | prev | next [[–]](javascript:void\(0\))   
if their sales and stock depends on saying that new shinny thing is changing the world then they have to say so, and say how it is changing their world .It is not Netflix or Airbnb or Stripe etc making this claim, google managers have a vested interest in this.If this metric was meaningful either of two things should have happened - google should have fired 25 % developers or built 25 % more product .Both of this would visible in their financial reporting and has not happened.metrics like this claim depends on how you count, that is easily gamed and can be made to show any % between 0-99 you want. Of the top of head\- I could count all AI generated code used for training as new code\- consider compiler output to assembly as AI code by adding some meaningless AI step in it\- code generated with boilerplate perhaps even generated by llm now\- mix autocomplete with llm prompts so onThe number only needs to believable , 25 is believable now, it is not true but you would believe it >50 has psychological significance and bad PR on machines replacing humans jobs , less than 10 is bad for AI sales , 25 works all the commenters in this thread is testament to that  
---|---|---  
| ![](s.gif)|  [](vote?id=41999938&how=up&goto=item%3Fid%3D41991291) |  [jajko](user?id=jajko) [4 months ago](item?id=41999938) | parent | prev | next [[–]](javascript:void\(0\))   
I can generate in eclipse pojo classes or their accessor methods. I can let maven build entire packages from say XSDs (I know I am talking old boring tech, just giving an example). I can copy&paste half the code (if not more) from stack overflow.Now replace all this and much more with 'AI'. If they said AI helped them increase say ad effectivity by 3-5%, I'll start paying attention.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001950&how=up&goto=item%3Fid%3D41991291) |  [signa11](user?id=signa11) [4 months ago](item?id=42001950) | parent | prev | next [[–]](javascript:void\(0\))   
``` Like, isn't this announcement a terrible indictment of how inexperienced their engineers are, or how trivial the problems they solve are, or both? ```there is a 3rd possibility as well: having spent a huge chunk of change on these techniques, why not overhype it (not outright lie about it) and hope to, somewhat recoup the cost from unsuspecting masses ?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000686&how=up&goto=item%3Fid%3D41991291) |  [cybrox](user?id=cybrox) [4 months ago](item?id=42000686) | parent | prev | next [[–]](javascript:void\(0\))   
Depends if they include test code in this metric. I have found AI most valuable in generating test code. I usually want to keep tests as simple as possible, so I prefer some repetition over abstraction to make sure there's no issues with the test logic itself, AI makes this somewhat verbose process very easy and efficient.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002008&how=up&goto=item%3Fid%3D41991291) |  [sally_glance](user?id=sally_glance) [4 months ago](item?id=42002008) | parent | prev | next [[–]](javascript:void\(0\))   
I guess the obvious response would be - yes, they have _at least_ 25% trivial code (as any other enterprise), and yes, they should have lots of engineers 'babysitting' (aka generating training data). So in another year or two there will be no manpower at all needed for the trivial tasks.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000409&how=up&goto=item%3Fid%3D41991291) |  [skeeter2020](user?id=skeeter2020) [4 months ago](item?id=42000409) | parent | prev | next [[–]](javascript:void\(0\))   
trivial code could very easily include the vast majority of most apps we're building these days. Most of it's just glue, and AI can probably stitch together a bunch of API calls and some UI as well as a human. It could also be a lot of non-product code, tooling, one-time things, etc.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001395&how=up&goto=item%3Fid%3D41991291) |  [Cthulhu_](user?id=Cthulhu_) [4 months ago](item?id=42001395) | parent | prev | next [[–]](javascript:void\(0\))   
You're quick to jump to the assertion that AI only generates SO style utility code to do X, but it can also be used to generate boring mapping code (e.g. to/from SQL datasets). I heard one ex Google dev say that most of his job wat fiddling with Protobuf definitions and payloads.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000801&how=up&goto=item%3Fid%3D41991291) |  [aorloff](user?id=aorloff) [4 months ago](item?id=42000801) | parent | prev | next [[–]](javascript:void\(0\))   
Its been a while since I was really fully in the trenches, but not that long.How people deal with this is they start by writing the test case.Once they have that, debugging that 25% comes relatively easily and after that its basically packaging up the PR  
---|---|---  
| ![](s.gif)|  [](vote?id=41999911&how=up&goto=item%3Fid%3D41991291) |  [andyjohnson0](user?id=andyjohnson0) [4 months ago](item?id=41999911) | parent | prev | next [[–]](javascript:void\(0\))   
I suspect that a lot of the hard, google-scale stuff has already been done and packaged as an internal service or library - and just gets re-used. So the AIs are probably churning out new settings dialogs and the like.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001277&how=up&goto=item%3Fid%3D41991291) |  [vkou](user?id=vkou) [4 months ago](item?id=42001277) | parent | prev | next [[–]](javascript:void\(0\))   
How would you react to a tech firm that in 2018, proudly announced that 25% of their code was generated by IntelliJ/Resharper/Visual Studio's codegen and autocomplete and refactoring tools?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000048&how=up&goto=item%3Fid%3D41991291) |  [nwellinghoff](user?id=nwellinghoff) [4 months ago](item?id=42000048) | parent | prev | next [[–]](javascript:void\(0\))   
They probably have ai that scans existing human written code and auto generates patches and fixes to improve performance or security. The 25% is just a top level stat with no real meaning without context.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999962&how=up&goto=item%3Fid%3D41991291) |  [jjtheblunt](user?id=jjtheblunt) [4 months ago](item?id=41999962) | parent | prev | next [[–]](javascript:void\(0\))   
Maybe the trick is to hide vetted correct code, of whatever origin, behind function calls for documented functions, thereby iteratively simplifying the work a later-trained LLM would need to do?  
---|---|---  
| ![](s.gif)|  [](vote?id=42001523&how=up&goto=item%3Fid%3D41991291) |  [uoaei](user?id=uoaei) [4 months ago](item?id=42001523) | parent | prev | next [[–]](javascript:void\(0\))   
I've suspected for a while now that the people who find value in AI-generated code don't actually have hard problems to solve. I wonder how else they might justify their salary.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001575&how=up&goto=item%3Fid%3D41991291) |  [dyauspitr](user?id=dyauspitr) [4 months ago](item?id=42001575) | parent | prev | next [[–]](javascript:void\(0\))   
This subtly wrong thing happens maybe 10% of the time in my experience and asking it to generate unit tests or writing your own ahead of time almost completely eliminates it.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000678&how=up&goto=item%3Fid%3D41991291) |  [notyourwork](user?id=notyourwork) [4 months ago](item?id=42000678) | parent | prev | next [[–]](javascript:void\(0\))   
To your point, I don't buy the truth of the statement. I work in big tech and am convinced that 25% of the code being written is not coming from AI.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001426&how=up&goto=item%3Fid%3D41991291) |  [ZiiS](user?id=ZiiS) [4 months ago](item?id=42001426) | parent | prev | next [[–]](javascript:void\(0\))   
Yes 25% of code is trivial; certainly for companies like Google that have always been a bit NIH.  
---|---|---  
| ![](s.gif)|  [](vote?id=41999772&how=up&goto=item%3Fid%3D41991291) |  [tmoravec](user?id=tmoravec) [4 months ago](item?id=41999772) | parent | prev | next [[–]](javascript:void\(0\))   
Does the figure include unit tests?  
---|---|---  
| ![](s.gif)|  [](vote?id=42000427&how=up&goto=item%3Fid%3D41991291) |  [ithkuil](user?id=ithkuil) [4 months ago](item?id=42000427) | parent | prev | next [[–]](javascript:void\(0\))   
Or perhaps that even for excellent engineers and complicated problems a quarter of the code one writes is stupid almost copy-pasteable boilerplate which is now an excellent target for the magic lArge text Interpolator  
---|---|---  
| ![](s.gif)|  [](vote?id=42000916&how=up&goto=item%3Fid%3D41991291) |  [Kiro](user?id=Kiro) [4 months ago](item?id=42000916) | parent | prev | next [[–]](javascript:void\(0\))   
You're doing circular reasoning based on your initial concern actually being a problem in practice. In my experience it's not, which makes all your other speculations inherently incorrect.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002613&how=up&goto=item%3Fid%3D41991291) |  [llm_trw](user?id=llm_trw) [4 months ago](item?id=42002613) | parent | prev | next [[–]](javascript:void\(0\))   
Or alternatively you don't know how to use AI to help you code and are in the 2020s equivalent of the 'Why do I need google when I have the yellow pages?' phase a lot of adults went through in the 2000s.This is not a bad thing since you can improve, but constantly dismissing something that a lot of people are finding an amazing productivity boost should give you some pause.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002975&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42002975) | root | parent | next [[–]](javascript:void\(0\))   
It's like blockchain right now. I'm sure there is some killer feature that can justify its problem space.But as of now the field is full of swamps. Of grifters, of people with a solution looking for a problem. Of outright scams of questionable legality being challenged as we speak.I'll wait until the swamps work itself out before evaluating an LLM workflow.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003607&how=up&goto=item%3Fid%3D41991291) |  [llm_trw](user?id=llm_trw) [4 months ago](item?id=42003607) | root | parent | next [[–]](javascript:void\(0\))   
Blockchain was always a solution looking for a problem.LLMs are being used right now by a lot of people, myself included, to do tasks which we would have never bothered with before.Again, if you don't know how to use them you can learn.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003812&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42003812) | root | parent | next [[–]](javascript:void\(0\))   
And the same was said with the last fad when Blockcbain was all investors wanted to hear about ("Big Data" I suppose). It's all a pattern.It's a legal nightmare in my domain as of now, so I'll make sure the Sam Breaker-Friends are weeded out. If it's really all the hype it won't be going anywhere in 5 years.  
---|---|---  
| ![](s.gif)|  [](vote?id=42013507&how=up&goto=item%3Fid%3D41991291) |  [llm_trw](user?id=llm_trw) [4 months ago](item?id=42013507) | root | parent | next [[–]](javascript:void\(0\))   
It's been 5 years since GPT2. I'm really struggling to understand the amount of negativity towards the biggest breakthrough in computing since the WWW.  
---|---|---  
| ![](s.gif)|  [](vote?id=42013542&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42013542) | root | parent | next [[–]](javascript:void\(0\))   
If you're unaware of the general mood towards big tech in the 2020's, the downward trend of the economy, extreme speculation in all the tech sector over AI (which again, is not new), and the dozens of ethical quandries towards the methods of how LLMs obtain their data set, then yes. I can see why you're struggling to understand. There's so much literature on each point that I will only implore you to research these things on your own time if you care to.In a purely technical vacuum though: it is truly amazing tech. I will give it that. Although it both excites and alarms me that apparently the power output predicted to properly leverage this at scale is having tech companies consider an investment in nuclear power.  
---|---|---  
| ![](s.gif)|  [](vote?id=42013677&how=up&goto=item%3Fid%3D41991291) |  [llm_trw](user?id=llm_trw) [4 months ago](item?id=42013677) | root | parent | next [[–]](javascript:void\(0\))   
Yes it's wonderful that AI will solve global warming as a side effect.  
---|---|---  
| ![](s.gif)|  [](vote?id=42021688&how=up&goto=item%3Fid%3D41991291) |  [johnnyanmac](user?id=johnnyanmac) [4 months ago](item?id=42021688) | root | parent | next [[–]](javascript:void\(0\))   
This is kind of why I'm skeptical of AI. When supposed tech experts are wearing rose tinted lens and missing the red flags, it's either because they want to wear them or because their livelihood depends on wearing them.I won't blame people for that latter, I'd love a good quick way out of traditional work as well (gives me more time to hack on stuff without money troubles). But it's not a good model for curiosity and scrutiny. Again, I'll wait it out. Take care.  
---|---|---  
| ![](s.gif)|  [](vote?id=42023407&how=up&goto=item%3Fid%3D41991291) |  [llm_trw](user?id=llm_trw) [4 months ago](item?id=42023407) | root | parent | next [[–]](javascript:void\(0\))   
The rose tinted glasses are everyone expecting batteries to become a major part of the grid so we don't have to shut it down when the sun isn't shining.Investing trillions in carbon free energy for AI is the most benign form of bubble I can imagine. If the bubble pops we have enough base load for the next century and don't die from climate change. If it doesn't we have the expertise to keep building large nuclear power plants.  
---|---|---  
| ![](s.gif)|  [](vote?id=42008273&how=up&goto=item%3Fid%3D41991291) |  [ajkjk](user?id=ajkjk) [4 months ago](item?id=42008273) | prev | next [[–]](javascript:void\(0\))   
Well yeah he sells AI and wants you to believe in it so the stock price stays good.  
---|---|---  
| ![](s.gif)|  [](vote?id=42010135&how=up&goto=item%3Fid%3D41991291) |  [stevenally](user?id=stevenally) [4 months ago](item?id=42010135) | prev | next [[–]](javascript:void\(0\))   
Yeah. I just wrote 600 lines of SQL using a macro processor. Took 10 minutes.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003266&how=up&goto=item%3Fid%3D41991291) |  [throwaway290](user?id=throwaway290) [4 months ago](item?id=42003266) | prev | next [[–]](javascript:void\(0\))   
"More than a quarter of our code is created by autocomplete!"That's not that much...  
---|---|---  
| ![](s.gif)|  [](vote?id=42007688&how=up&goto=item%3Fid%3D41991291) |  [odinkara](user?id=odinkara) [4 months ago](item?id=42007688) | prev | next [[–]](javascript:void\(0\))   
and it shows  
---|---|---  
| ![](s.gif)|  [](vote?id=42005993&how=up&goto=item%3Fid%3D41991291) |  [jagged-chisel](user?id=jagged-chisel) [4 months ago](item?id=42005993) | prev | next [[–]](javascript:void\(0\))   
“Created _by_ ” or “with the _assistance_ of”?  
---|---|---  
| ![](s.gif)|  [](vote?id=42006299&how=up&goto=item%3Fid%3D41991291) |  [josephd79](user?id=josephd79) [4 months ago](item?id=42006299) | prev | next [[–]](javascript:void\(0\))   
that explains everything.  
---|---|---  
| ![](s.gif)|  [](vote?id=42004095&how=up&goto=item%3Fid%3D41991291) |  [DidYaWipe](user?id=DidYaWipe) [4 months ago](item?id=42004095) | prev | next [[–]](javascript:void\(0\))   
No wonder it sucks. Google's vaunted engineering has always been suspect, but their douchebaggery has been an accepted fact (even by them)>  
---|---|---  
| ![](s.gif)|  [](vote?id=42002132&how=up&goto=item%3Fid%3D41991291) |  [_m9r2](user?id=_m9r2) [4 months ago](item?id=42002132) | prev | next [[–]](javascript:void\(0\))   
Can we move on to the next grift yet?  
---|---|---  
| ![](s.gif)|  [](vote?id=42005526&how=up&goto=item%3Fid%3D41991291) |  [bamboozled](user?id=bamboozled) [4 months ago](item?id=42005526) | prev | next [[–]](javascript:void\(0\))   
"Product has not improved, or maybe even become worse in that time"  
---|---|---  
| ![](s.gif)|  [](vote?id=42003971&how=up&goto=item%3Fid%3D41991291) |  [martin82](user?id=martin82) [4 months ago](item?id=42003971) | prev | next [[–]](javascript:void\(0\))   
I guess that must be the reason for the shocking enshitification of Google  
---|---|---  
| ![](s.gif)|  [](vote?id=42002601&how=up&goto=item%3Fid%3D41991291) |  [yapyap](user?id=yapyap) [4 months ago](item?id=42002601) | prev | next [[–]](javascript:void\(0\))   
yikes  
---|---|---  
| ![](s.gif)|  [](vote?id=41992182&how=up&goto=item%3Fid%3D41991291) |  [pixelat3d](user?id=pixelat3d) [4 months ago](item?id=41992182) [flagged]  | prev | next [[–]](javascript:void\(0\))   
Sooo... is this why Google sucks now?  
---|---|---  
| ![](s.gif)|  [](vote?id=41991347&how=up&goto=item%3Fid%3D41991291) |  [jrockway](user?id=jrockway) [4 months ago](item?id=41991347) | prev | next [[–]](javascript:void\(0\))   
When I was there, way more than 25% of the code was copying one proto into another proto, or so people complained. What sort of memes are people making now that this task has been automated?  
---|---|---  
| ![](s.gif)|  [](vote?id=41991523&how=up&goto=item%3Fid%3D41991291) |  [hn_throwaway_99](user?id=hn_throwaway_99) [4 months ago](item?id=41991523) | parent | next [[–]](javascript:void\(0\))   
I am very interested in how this 25% number is calculated, and if it's a lot of boilerplate that in the past would have been just been big copy-paste jobs like a lot of protobuffers work. Would be curious if any Googlers could comment.Not that I'm really discounting the value of AI here. For example, I've found a ton of value and saved time getting AI to write CDKTF (basically, Terraform in Typescript) config scripts for me. I don't write Terraform that often, there are a ton of options I always forget, etc. So asking ChatGPT to write a Terraform config for, say, a new scheduled task for example saves me from a lot of manual lookup.But at the same time, the AI isn't really writing the complicated logic pieces for me. I think that comes down to the fact that when I do need to write complicated logic, I'm a decent enough programmer that it's probably faster for me to write it out in a high-level programming language than write it in English first.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991508&how=up&goto=item%3Fid%3D41991291) |  [dietr1ch](user?id=dietr1ch) [4 months ago](item?id=41991508) | parent | prev | next [[–]](javascript:void\(0\))   
I miss old memegen, but it got ruined by HR :/  
---|---|---  
| ![](s.gif)|  [](vote?id=41992487&how=up&goto=item%3Fid%3D41991291) |  [rcarmo](user?id=rcarmo) [4 months ago](item?id=41992487) | root | parent | next [[–]](javascript:void\(0\))   
I am reliably told that it is alive and well, even if it’s changed a bit.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000798&how=up&goto=item%3Fid%3D41991291) |  [anon1243](user?id=anon1243) [4 months ago](item?id=42000798) | root | parent | next [[–]](javascript:void\(0\))   
Memegen is there but unrecognizable now. A dedicated moderator team deletes memes, locks comments, bans people for mentioning "killing a process" (threatening language!) and contacts their managers.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000864&how=up&goto=item%3Fid%3D41991291) |  [dietr1ch](user?id=dietr1ch) [4 months ago](item?id=42000864) | root | parent | next [[–]](javascript:void\(0\))   
Yup, I simply stopped using it, which means they won.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991375&how=up&goto=item%3Fid%3D41991291) |  [kev009](user?id=kev009) [4 months ago](item?id=41991375) | prev | next [[–]](javascript:void\(0\))   
I would hope a CEO, especially a technical one, would have enough sense to couple that statement to some useful business metric, because in isolation it might be announcement of public humiliation.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991406&how=up&goto=item%3Fid%3D41991291) |  [dmix](user?id=dmix) [4 months ago](item?id=41991406) | parent | next [[–]](javascript:void\(0\))   
The elitism of programmers who think the boilerplate code they write for 25% of the job, that's already been written before by 1000 other people before, is in fact a valuable use of company time to write by hand again.IMO it's only really an issue if a competent human wasn't involved in the process, basically a person who could have written it if needed, then they do the work connecting it to the useful stuff, and have appropriate QA/testing in place...the latter often taking far more effort than the actual writing-the-code time itself, even when a human does it.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991457&how=up&goto=item%3Fid%3D41991291) |  [marcosdumay](user?id=marcosdumay) [4 months ago](item?id=41991457) | root | parent | next [[–]](javascript:void\(0\))   
If 25% of your code is boilerplate, you have a serious architectural problem.That said, I've seen even higher ratios. But never in any place that survived for long.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991542&how=up&goto=item%3Fid%3D41991291) |  [hn_throwaway_99](user?id=hn_throwaway_99) [4 months ago](item?id=41991542) | root | parent | next [[–]](javascript:void\(0\))   
Depends on how you define "boilerplate". E.g. Terraform configs count for a significant number of the total lines in one of my repos. It's not really "boilerplate" in that it's not the exact same everywhere, but it is boilerplate in the since that setting up, say, a pretty standard Cloud SQL instance can take many, many lines of code just because there are so many config options.  
---|---|---  
| ![](s.gif)|  [](vote?id=41997043&how=up&goto=item%3Fid%3D41991291) |  [marcosdumay](user?id=marcosdumay) [4 months ago](item?id=41997043) | root | parent | next [[–]](javascript:void\(0\))   
Terraform is verbose.It's only boilerplate if you write it again to set almost the same thing again. What, granted, if you are writing bare terraform config, it's probably both.But on either case, if your terraform config is repetitive and a large part of the code on an entire thing (not a repo, repos are arbitraty divisions, maybe "product", but it's also a bad name). Than that thing is certainly close to useless.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991491&how=up&goto=item%3Fid%3D41991291) |  [cryptoz](user?id=cryptoz) [4 months ago](item?id=41991491) | root | parent | prev | next [[–]](javascript:void\(0\))   
Android mobile development has gotten so …architectured that I would guess most apps have a much higher rate of “boilerplate” than you’d hope for.Everything is getting forced into a scalable, general purpose way, that most apps have to add a ridiculous amount of boilerplate.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992921&how=up&goto=item%3Fid%3D41991291) |  [TheNewsIsHere](user?id=TheNewsIsHere) [4 months ago](item?id=41992921) | root | parent | prev | next [[–]](javascript:void\(0\))   
To add: it’s been my experience that it’s the company that thinks the boilerplate code is some special, secret, proprietary thing that no other business could possibly have produced.Not the developer who has written the same effective stanza 10 times before.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991746&how=up&goto=item%3Fid%3D41991291) |  [8note](user?id=8note) [4 months ago](item?id=41991746) | root | parent | prev | next [[–]](javascript:void\(0\))   
Is it though? It seems to me like a team ownership boundary question rather than an architecture question.Architecturally, it sounds like different architecture components map somewhere close to 1:1 to teams, rather than teams hacking components to be closer coupled to each other because they have the same ownership.I'd see too much boilerplate as being a organization/management org issue rather than a code architecture issue  
---|---|---  
| ![](s.gif)|  [](vote?id=42000467&how=up&goto=item%3Fid%3D41991291) |  [wvenable](user?id=wvenable) [4 months ago](item?id=42000467) | root | parent | prev | next [[–]](javascript:void\(0\))   
25% of _new_ code might be boilerplate. All my apps in my organization start out roughly the same way with all the same stuff. You could argue on day one that 100% of the code is boilerplate and by the end of the project it is only a small percentage.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991534&how=up&goto=item%3Fid%3D41991291) |  [dmix](user?id=dmix) [4 months ago](item?id=41991534) | root | parent | prev | next [[–]](javascript:void\(0\))   
You're probably thinking of just raw codebases, your company source code repo. Programmers do far, far more boilerplate stuff than raw code they commit with git. Debugging, data processing, system scripts, writing SQL queries, etc.Combine that with generic functions, framework boilerplate, OS/browser stuff, or explicit x-y-z code then your 'boilerplate' (ie repetitive, easily reproducible) easily gets to 25% of code you're programmers write every month. If your job is >75% pure human cognition problem solving you're probably in a higher tier of jobs than the vast majority of programmers on the planet.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991827&how=up&goto=item%3Fid%3D41991291) |  [kev009](user?id=kev009) [4 months ago](item?id=41991827) | root | parent | prev | next [[–]](javascript:void\(0\))   
Doing the same thing but faster might just mean you are masturbating more furiously. Show me the money, especially from a CEO.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991530&how=up&goto=item%3Fid%3D41991291) |  [mistrial9](user?id=mistrial9) [4 months ago](item?id=41991530) | root | parent | prev | next [[–]](javascript:void\(0\))   
you probably underestimate the endless miles of verbose code that are possible, by human or machine but especially by machine.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991388&how=up&goto=item%3Fid%3D41991291) |  [dyauspitr](user?id=dyauspitr) [4 months ago](item?id=41991388) | parent | prev | next [[–]](javascript:void\(0\))   
Or a statement of pride that the intelligence they created is capable of lofty tasks.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991499&how=up&goto=item%3Fid%3D41991291) |  [joeevans1000](user?id=joeevans1000) [4 months ago](item?id=41991499) | prev | next [[–]](javascript:void\(0\))   
I read these threads and the usual 'I have to fix the AI code for longer than it would have taken to write it from scratch' and can't help but feel folks are truly trying to downplay what is going to eat the software industry alive.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002442&how=up&goto=item%3Fid%3D41991291) |  [steve_adams_86](user?id=steve_adams_86) [4 months ago](item?id=42002442) | parent | next [[–]](javascript:void\(0\))   
I’m not convinced it’s there yet. I think it’s actively eating part of the software industry, but I wonder where that’ll stop—at least for some time—and a new shape of the industry is settled upon.There are still things I do in my IDE that I can’t seem to get AI to do. It’s not really close yet. I don’t doubt it could get there eventually, but I suppose I don’t believe it’s about to eat those parts of the industry.I do anticipate a massive issue from lower skill software jobs vanishing. I don’t know what entry into the industry will look like. There will be a strange gap that’s filled by AI and some people who use it to do basic things but have no idea how it does it. They will be somewhat like data entry workers, knowing how to use a spreadsheet or word processor but having no idea how the program actually works let alone the underlying operating system. I fully expect that to happen, and I can’t properly imagine what the implications will be.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991357&how=up&goto=item%3Fid%3D41991291) |  [tylerchilds](user?id=tylerchilds) [4 months ago](item?id=41991357) | prev | next [[–]](javascript:void\(0\))   
if the golden rule is that code is a liability, what does this headline imply?  
---|---|---  
| ![](s.gif)|  [](vote?id=41992006&how=up&goto=item%3Fid%3D41991291) |  [eddd-ddde](user?id=eddd-ddde) [4 months ago](item?id=41992006) | parent | next [[–]](javascript:void\(0\))   
The code would be getting written anyways, its an invariant. The difference is less time wasted typing keys (albeit small amount of time) and more importantly (in my experience) it helps A LOT for discoverability.With g3's immense amount of context, LLMs can vastly help you discover how other people are using existing libraries.  
---|---|---  
| ![](s.gif)|  [](vote?id=41993730&how=up&goto=item%3Fid%3D41991291) |  [tylerchilds](user?id=tylerchilds) [4 months ago](item?id=41993730) | root | parent | next [[–]](javascript:void\(0\))   
my experience dabbling with the ai and code is that it is terrible at coming up with new stuff unless it already existsin regards to how others are using libraries, that’s where the technology will excel— re-writing code. once it has a stable AST to work with, the mathematical equation it is solving is a refactor.until it has that AST that solves the business need, the game is just prompt spaghetti until it hits altitude to be able to refactor.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992896&how=up&goto=item%3Fid%3D41991291) |  [JimDabell](user?id=JimDabell) [4 months ago](item?id=41992896) | parent | prev | next [[–]](javascript:void\(0\))   
Nothing at all. The headline talks about the proportion of code written by AI. Contrary to what a lot of comments here are assuming, it does not say that the volume of code written has increased.Google could be writing the same amount of code with fewer developers (they have had multiple layoffs lately), or their developers could be focusing more of their time and attention on the code they do write.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000814&how=up&goto=item%3Fid%3D41991291) |  [contravariant](user?id=contravariant) [4 months ago](item?id=42000814) | parent | prev | next [[–]](javascript:void\(0\))   
Well, either they just didn't spend as much time writing the code or they increased their liability by about 33%.The truth is likely somewhere in between.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991567&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=41991567) | parent | prev | next [[–]](javascript:void\(0\))   
I'm sure google won't pay you money to take all their code off their hands.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991582&how=up&goto=item%3Fid%3D41991291) |  [AlexandrB](user?id=AlexandrB) [4 months ago](item?id=41991582) | root | parent | next [[–]](javascript:void\(0\))   
But they would pay me money to audit it for security.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991601&how=up&goto=item%3Fid%3D41991291) |  [danielmarkbruce](user?id=danielmarkbruce) [4 months ago](item?id=41991601) | root | parent | next [[–]](javascript:void\(0\))   
yup, you can get paid all kinds of money to fix/guard/check billion/trillion dollar assets..  
---|---|---  
| ![](s.gif)|  [](vote?id=41991381&how=up&goto=item%3Fid%3D41991291) |  [an_d_rew](user?id=an_d_rew) [4 months ago](item?id=41991381) | prev | next [[–]](javascript:void\(0\))   
Huh.That may explain why google search has, in the past couple of months, become so unusable for me that I switched (happily) to kagi.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991503&how=up&goto=item%3Fid%3D41991291) |  [twarge](user?id=twarge) [4 months ago](item?id=41991503) | parent | next [[–]](javascript:void\(0\))   
Which uses Google results?  
---|---|---  
| ![](s.gif)|  [](vote?id=41991392&how=up&goto=item%3Fid%3D41991291) |  [croes](user?id=croes) [4 months ago](item?id=41991392) | prev | next [[–]](javascript:void\(0\))   
Related?> New tool bypasses Google Chrome’s new cookie encryption system[https://news.ycombinator.com/item?id=41988648](https://news.ycombinator.com/item?id=41988648)  
---|---|---  
| ![](s.gif)|  [](vote?id=41991402&how=up&goto=item%3Fid%3D41991291) |  [hipadev23](user?id=hipadev23) [4 months ago](item?id=41991402) | prev | next [[–]](javascript:void\(0\))   
Google is now mass-producing techdebt at rates not seen since Martin Fowler’s first design pattern blogposts.  
---|---|---  
| ![](s.gif)|  [](vote?id=42000948&how=up&goto=item%3Fid%3D41991291) |  [nelup20](user?id=nelup20) [4 months ago](item?id=42000948) | parent | next [[–]](javascript:void\(0\))   
We've now entered the age of exponential tech debt, it'll be a sight to behold  
---|---|---  
| ![](s.gif)|  [](vote?id=41991518&how=up&goto=item%3Fid%3D41991291) |  [joeevans1000](user?id=joeevans1000) [4 months ago](item?id=41991518) | parent | prev | next [[–]](javascript:void\(0\))   
Not really technical debt when you will be able to regenerate 20K lines of code in a minute then QA and deploy it automatically.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991912&how=up&goto=item%3Fid%3D41991291) |  [1attice](user?id=1attice) [4 months ago](item?id=41991912) | root | parent | next [[–]](javascript:void\(0\))   
Assuming, of course:\- You know _which_ 20K lines need changing \- You have _perfect_ QA \- Nothing _ever_ goes wrong in deployment.I think there's a tendency in our industry to only take the hypotenuse of curves at the steepest point  
---|---|---  
| ![](s.gif)|  [](vote?id=41992935&how=up&goto=item%3Fid%3D41991291) |  [TheNewsIsHere](user?id=TheNewsIsHere) [4 months ago](item?id=41992935) | root | parent | next [[–]](javascript:void\(0\))   
That is a fantastic way to put it. I’d argue that you’ve described a bubble, which fits perfectly with the topic and where _most_ of it will eventually end up.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991901&how=up&goto=item%3Fid%3D41991291) |  [kibwen](user?id=kibwen) [4 months ago](item?id=41991901) | root | parent | prev | next [[–]](javascript:void\(0\))   
So a fresh, new ledger of technical debt every morning, impossible to ever pay off?  
---|---|---  
| ![](s.gif)|  [](vote?id=41991741&how=up&goto=item%3Fid%3D41991291) |  [Tier3r](user?id=Tier3r) [4 months ago](item?id=41991741) | prev | next [[–]](javascript:void\(0\))   
Google is getting enshittified. It's already visible in many small ways. I was just using Google maps and in the route they called X (bus) Interchange as X International. I can only assume this happened because they are using AI to summarise routes now. Why in the world are they doing that? They have exact location names available.  
---|---|---  
| ![](s.gif)|  ![](s.gif) |  [pyuser583](user?id=pyuser583) [4 months ago](item?id=41991436) | prev | next [[3 more]](javascript:void\(0\))   
[flagged]   
---|---|---  
| ![](s.gif)|  [](vote?id=41991505&how=up&goto=item%3Fid%3D41991291) |  [YPPH](user?id=YPPH) [4 months ago](item?id=41991505) | parent | next [[–]](javascript:void\(0\))   
Actually 0%, assembly language is assembled to machine code, not compiled.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991629&how=up&goto=item%3Fid%3D41991291) |  [ndesaulniers](user?id=ndesaulniers) [4 months ago](item?id=41991629) | root | parent | next [[–]](javascript:void\(0\))   
Inline asm has to go through the compiler to get wired up by the register allocator.  
---|---|---  
| ![](s.gif)|  [](vote?id=42006057&how=up&goto=item%3Fid%3D41991291) |  [floor_](user?id=floor_) [4 months ago](item?id=42006057) | prev | next [[–]](javascript:void\(0\))   
So no one owns a quarter of the new code at google. It's going to be very funny when it hits 100%.  
---|---|---  
| ![](s.gif)|  ![](s.gif) |  [FactKnower69](user?id=FactKnower69) [4 months ago](item?id=41991356) | prev | next [[13 more]](javascript:void\(0\))   
[flagged]   
---|---|---  
| ![](s.gif)|  [](vote?id=41991373&how=up&goto=item%3Fid%3D41991291) |  [eob](user?id=eob) [4 months ago](item?id=41991373) | parent | next [[–]](javascript:void\(0\))   
So GCS customers will trust their codegen product. (Engineers aren’t the buyer; corp suite is)  
---|---|---  
| ![](s.gif)|  [](vote?id=41991476&how=up&goto=item%3Fid%3D41991291) |  [hn_throwaway_99](user?id=hn_throwaway_99) [4 months ago](item?id=41991476) | parent | prev | next [[–]](javascript:void\(0\))   
I don't understand why you think this at all. Care to explain?  
---|---|---  
| ![](s.gif)|  [](vote?id=41991571&how=up&goto=item%3Fid%3D41991291) |  [dartharva](user?id=dartharva) [4 months ago](item?id=41991571) | parent | prev | next [[–]](javascript:void\(0\))   
Why? Especially when said AI helpers are a part of what the company itself is selling?  
---|---|---  
| ![](s.gif)|  [](vote?id=41991507&how=up&goto=item%3Fid%3D41991291) |  [joeevans1000](user?id=joeevans1000) [4 months ago](item?id=41991507) | parent | prev | next [[–]](javascript:void\(0\))   
These companies are competing to be the next codegen service provider.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991541&how=up&goto=item%3Fid%3D41991291) |  [foota](user?id=foota) [4 months ago](item?id=41991541) | parent | prev | next [[–]](javascript:void\(0\))   
Translation: They'd love to lay off all the engineers.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991551&how=up&goto=item%3Fid%3D41991291) |  [sfmz](user?id=sfmz) [4 months ago](item?id=41991551) | root | parent | next [[–]](javascript:void\(0\))   
We should watch for dev layoffs as a sign/signal of the impact of generated code. I remember reading about an anime shop that fired 80% of its illustrators due to ai-images.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992912&how=up&goto=item%3Fid%3D41991291) |  [TheNewsIsHere](user?id=TheNewsIsHere) [4 months ago](item?id=41992912) | root | parent | prev | next [[–]](javascript:void\(0\))   
By some intuitive measures, it’s surprising they have very many still writing their code. Google’s product quality isn’t what it once was. There is no amount of AI accelerators and energy they can burn through to fix that without humans.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991526&how=up&goto=item%3Fid%3D41991291) |  [lesuorac](user?id=lesuorac) [4 months ago](item?id=41991526) | parent | prev | next [[–]](javascript:void\(0\))   
Well, the article has a paywall so it might go into this.I'm not sure this stat is as important as people point it out to be. If I start of `for` and the AI auto-completes `for(int i=0; i<args.length; i++) {` then a lot more than 25% of the code is AI written but it's also not significant. I could've figured out how to write the for-loop and its also not a meaningful amount of time saved because most of the time is figuring out and testing which the AI doesn't do.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991394&how=up&goto=item%3Fid%3D41991291) |  [dyauspitr](user?id=dyauspitr) [4 months ago](item?id=41991394) | parent | prev | next [[–]](javascript:void\(0\))   
I don’t think the public cares wether their code is written by machines or real people as long as the product works.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991512&how=up&goto=item%3Fid%3D41991291) |  [Nullabillity](user?id=Nullabillity) [4 months ago](item?id=41991512) | root | parent | next [[–]](javascript:void\(0\))   
Just today, Google Calendar asked me whether I wanted the "easy" or "depressed" colour scheme.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991708&how=up&goto=item%3Fid%3D41991291) |  [mattigames](user?id=mattigames) [4 months ago](item?id=41991708) | root | parent | next [[–]](javascript:void\(0\))   
It's for when you have an upcoming funeral, the calendar it's just trying to dress appropriately.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991658&how=up&goto=item%3Fid%3D41991291) |  [Mistletoe](user?id=Mistletoe) [4 months ago](item?id=41991658) | root | parent | prev | next [[–]](javascript:void\(0\))   
Ironically, your comment brightened my day.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001542&how=up&goto=item%3Fid%3D41991291) |  [xyst](user?id=xyst) [4 months ago](item?id=42001542) | prev | next [[–]](javascript:void\(0\))   
I remember Google used to market "lines of code" for their products. Chrome at one point had 6.7 LoC. Now the new marketing term is: "product was made with 1M lines of AI generated code (slop)!11!". Or "Chrome refactored with 10% AI" or some bs  
---|---|---  
| ![](s.gif)|  [](vote?id=42007799&how=up&goto=item%3Fid%3D41991291) |  [klocksib](user?id=klocksib) [4 months ago](item?id=42007799) | prev | next [[–]](javascript:void\(0\))   
it's quicker and easier than ever to generate a project to send to the Google Graveyard.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991570&how=up&goto=item%3Fid%3D41991291) |  [ultra_nick](user?id=ultra_nick) [4 months ago](item?id=41991570) | prev | next [[–]](javascript:void\(0\))   
Why work at big businesses anymore? Let's just create more startups.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991648&how=up&goto=item%3Fid%3D41991291) |  [IAmGraydon](user?id=IAmGraydon) [4 months ago](item?id=41991648) | parent | next [[–]](javascript:void\(0\))   
Risk appetite.  
---|---|---  
| ![](s.gif)|  [](vote?id=42001011&how=up&goto=item%3Fid%3D41991291) |  [game_the0ry](user?id=game_the0ry) [4 months ago](item?id=42001011) | root | parent | next [[–]](javascript:void\(0\))   
Not so sure nowadays. Given how often big tech lays off employees and the abundance of recently laid off tech talent, trying to start your own company sounds a lot more appealing than ever.I consider myself risk-averse and even I am contemplating starting a small business in the event I get laid off.  
---|---|---  
| ![](s.gif)|  [](vote?id=42003441&how=up&goto=item%3Fid%3D41991291) |  [shiroiushi](user?id=shiroiushi) [4 months ago](item?id=42003441) | root | parent | next [[–]](javascript:void\(0\))   
> trying to start your own company sounds a lot more appealing than ever.It really isn't. Even if you get laid off from a large tech company, you probably didn't have to pay a cent to get the job there in the first place, and you started drawing a paycheck right away (after the initial delay due to the pay cycle). If you only work there for 6 months, you can save a really good amount of money if you have frugal habits.Starting a company isn't nearly as easy, usually requires up-front investment, and there can be a long time before you generate any profit. Either you need some business idea that's going to generate profit (or at least enough revenue to give the founder(s) a paycheck), or a business loan or other funding, which means convincing someone to invest in your company somehow.Starting your own company only sounds appealing if you ignore reality, or have the privilege of having plenty of cash saved up for such a venture.  
---|---|---  
| ![](s.gif)|  [](vote?id=42018055&how=up&goto=item%3Fid%3D41991291) |  [game_the0ry](user?id=game_the0ry) [4 months ago](item?id=42018055) | root | parent | next [[–]](javascript:void\(0\))   
I look at it differently.If I was working a typical corp job, I would "quiet quit" and start using my excess savings to run small experiments. Maybe run like 3 in parallel a month and let them cook.Example - start a niche blog based on my hobby, hire 3 writers and pay them up to $3k a month to write content for the blog. Let it cook for months. If it gets traffic, monetize with ads. If very profitable, quit job.Starting an internet based business if fairly cheap nowadays, especially with cursor and ai.  
---|---|---  
| ![](s.gif)|  [](vote?id=42002052&how=up&goto=item%3Fid%3D41991291) |  [wayoverthecloud](user?id=wayoverthecloud) [4 months ago](item?id=42002052) | root | parent | prev | next [[–]](javascript:void\(0\))   
Interesting. I think the same thing but I wonder if the market is not ready for products created by the big guys, what can I offer? Have you thought in that line?  
---|---|---  
| ![](s.gif)|  [](vote?id=42026209&how=up&goto=item%3Fid%3D41991291) |  [IAmGraydon](user?id=IAmGraydon) [4 months ago](item?id=42026209) | root | parent | next [[–]](javascript:void\(0\))   
You’re thinking about it wrong. Most large companies won’t put development time into an idea that would only make them $1-5M per year. On the other hand, $1-5M per year is great money to an individual. So there’s a lot of untouched markets that can make you rich but just don’t interest the big guys.All of that said, there are a lot of products that are produced by large companies and are just bad. Don’t be afraid to go after a Goliath if you see an opportunity.  
---|---|---  
| ![](s.gif)|  [](vote?id=42018010&how=up&goto=item%3Fid%3D41991291) |  [game_the0ry](user?id=game_the0ry) [4 months ago](item?id=42018010) | root | parent | prev | next [[–]](javascript:void\(0\))   
Well the whole point is that you have some edge that the "big guys" cannot compete with or you have discovered an opportunity they have not (making you ripe for acquisition).New successful businesses are being created all the time. We just focus on the ones that have already been successful for a long time.  
---|---|---  
| ![](s.gif)|  [](vote?id=41991981&how=up&goto=item%3Fid%3D41991291) |  [1oooqooq](user?id=1oooqooq) [4 months ago](item?id=41991981) | prev [[–]](javascript:void\(0\))   
this only means employees sign up to use new toys and they are paying enough seats for all employees.it's like companies paying all those todolist and tutorial apps left running on aws ec2 instances in 2007ish.I'd be worried if i were a google investor. lol.  
---|---|---  
| ![](s.gif)|  [](vote?id=41992000&how=up&goto=item%3Fid%3D41991291) |  [fragmede](user?id=fragmede) [4 months ago](item?id=41992000) | parent [[–]](javascript:void\(0\))   
I'm not sure I get your point. Google created Gemini and whatever internal LLM their employees are using for code generation. Who are they paying, and for what seats? Not Microsoft or OpenAI or Anthropic...  
---|---|---  
  
  
  
![](s.gif)|   
---  
  
Join us for [_AI Startup School_](https://events.ycombinator.com/ai-sus) this June 16-17 in San Francisco!  
[Guidelines](newsguidelines.html) | [FAQ](newsfaq.html) | [Lists](lists) | [API](https://github.com/HackerNews/API) | [Security](security.html) | [Legal](https://www.ycombinator.com/legal/) | [Apply to YC](https://www.ycombinator.com/apply/) | [Contact](mailto:hn@ycombinator.com)  
  
Search: 


