Google voorziet Android Studio van generatieve AI die code kan helpen schrijven

Google voorziet Android Studio van een AI-bot die automatisch code kan schrijven. De concurrent van onder andere CoPilot is alleen beschikbaar voor Amerikaanse ontwikkelaars en bevindt zich nog in een vroeg stadium, waarschuwt Google.

De bot heet Studio Bot. Google kondigde de generatieve code-AI aan tijdens ontwikkelaarsconferentie I/O. Studio Bot is een 'vroeg experiment' dat alleen beschikbaar is voor Amerikaanse ontwikkelaars, zegt Google. De bot wordt geïntegreerd in Android Studio en kan worden gebruikt om code voor het mobiele besturingssysteem te schrijven. Studio Bot zit in de Canary-versie van Hedgehog. Wanneer er een definitieve versie beschikbaar komt voor internationale gebruikers, is niet bekend.

Studio Bot is een chatbot waar ontwikkelaars met natuurlijke taal vragen aan kunnen stellen. Google geeft als voorbeeld de vraag: 'Hoe kan een ontwikkelaar cameraondersteuning aan een app toevoegen?' De bot geeft dan een uitleg van het proces, maar kan ook automatisch de code daarvoor schrijven. Vervolgens verschijnen er contextgevoelige menu's waarmee het mogelijk is de code direct in een editor in de IDE te plaatsen of om direct de nodige dependency's te integreren.

Google waarschuwt dat de bot nog fouten kan maken. Studio Bot is gebaseerd op PaLM 2, een nieuwe versie van Googles taalmodel dat Google tijdens de ontwikkelaarsconferentie aankondigde. PaLM 2 wordt ook gebruikt voor onder andere Bard en voor toekomstige AI-toepassingen

Het model is getraind op 'een gecureerde dataset' die volgens Google best practices voor Android-ontwikkeling volgt. De trainingsdata is volgens het bedrijf niet van gebruikers afkomstig. Ook als ontwikkelaars de chatbot gebruiken, wordt de gegenereerde of zelfgeschreven code uit Android Studio niet gebruikt om de chatbot verder te trainen. Hoewel alles dat in het chatvenster wordt geschreven naar Googles servers wordt gestuurd, wordt het niet voor trainingsdoeleinden gebruikt.

Door Tijs Hofmans

Nieuwscoördinator

11-05-2023 • 10:13

50

Reacties (50)

50
49
28
1
0
17
Wijzig sortering
Anoniem: 454358 11 mei 2023 10:18
Programmeren zal de komende jaren ook een compleet ander vak worden voor 90% van de programmeurs denk ik.
Net als bij website development waar velen denken programmeur te zijn door wat wordpress modules aan elkaar te knopen. Zal met ai veel aankomen om de ai de juiste instructies/ wensen voor te schotelen. Testen doet nu toch al niemand, dat is voor de klant of eindgebruiker :+
Beetje een n=1 comment maar ik krijg waar ik werk niks gemerged zonder unit tests toe te voegen. Binnen mijn development kringen heerst exact dezelfde werkwijze. Wat dat betreft merk ik nu wel de voordelen van AI (met name Github CoPilot) die vrij rap boilerplate code kan genereren. Deze zijn vaak voor 90% prima. Dus vanuit dat perspectief zou ik het helemaal lui en tevens dom vinden om het testen van je applicatie te vermijden.
Er is nu ook TestPilot.
TestPilot takes the pain out of writing unit tests. It uses GitHub Copilot's AI technology to suggest tests based on your existing code and documentation. Unlike many other tools, TestPilot generates readable tests with meaningful assertions, and it can iteratively improve its suggestions based on your feedback.
AI technology to suggest tests based on your existing code
Wat als die 'existing code' ook grotendeels uit de koker van AI bots komt?
Wie (of wat) valideert dan of het juiste is geimplementeerd?
The proof of the pudding is in the eating. Uiteindelijk kan alleen een eindgebruiker bepalen of het "is wat we willen". Je kunt 100% bugvrije code schrijven met 100% coverage die exact aan de specificaties voldoet (al kost dat nu wel onredelijk veel moeite) om er dan achter te komen dat de echte bug in de specificaties zat. Dat is nu ook al zo, of de code en de tests nu door mensen, AI of buitenaardse wezens geschreven wordt.

Ik denk wel dat het ophoesten van specifiek dingen als unit tests grotendeels waardeloos is als je het zelfs maar door hetzelfde soort modellen laat doen als dat code schrijft buiten de tests (hoeft niet eens hetzelfde model te zijn). Je krijgt dan namelijk inderdaad dat dingen zichzelf gaan bevestigen, in de zin dat het hebben van tests die passen geen ondersteuning biedt voor het correct krijgen van de code -- wat tenslotte het doel ervan is. Ook dat gebeurt overigens nu ook al, als mensen het code coverage percentage belangrijker gaan vinden dan wat de tests nu daadwerkelijk garanderen.

Tests op hoger niveau die feitelijk de specificatie vertegenwoordigen in een systematischere vorm hebben dan meerwaarde om uit te leggen wat de code nu doet, want dat het doet waar je om gevraagd hebt is niet per se altijd duidelijk. Die meerwaarde houden ze zelfs als ze geschreven zouden zijn naar aanleiding van de code.

[Reactie gewijzigd door MneoreJ op 22 juli 2024 14:03]

Hier is een "creative coding" site'je dat ik zonder te coden in elkaar heb "genudged" met Chat GPT. Coden zal ik het natuurlijk niet noemen, maar het was wel leuk om te doen en je kan er creativiteit in kwijt. Serieuze, data-kritische sites maken is natuurlijk iets anders dan kunstzinnige sites maken....
Interessant maar geluid werkt niet in Safari op een iPad Pro.
Ok dank voor het uitproberen.

Da’s gek, dat iPad-probleem. Ik heb het niet op iPad getest. Op iPhone Safari werkt het. Ik ga er eens naar kijken als ‘t me lukt.

Niet alle pagina’s hebben audio trouwens, en bij Web Audio API moet je een manuele trigger geven, playknop dus bijv.

[Reactie gewijzigd door Rutger Muller op 22 juli 2024 14:03]

Ik kan bevestigen dat het geluid op een iPhone wel werkt. Vreemd!
Apart, dit soort audio API's zitten al een tijdje in WebKit als het goed is. Misschien een Safari bug?
Testen doet nu toch al niemand? Dat kan ik niet onderschrijven, bij veel enterprise organisaties ligt de minimum test coverage al snel rond de 80%.
Ja, alleen is het aandeel enterprise verwaarloosbaar ten opzichte van alle software/websites in het algemeen die worden ontwikkeld. Daar wordt vrijwel niet (uitgebreid) getest. Is ook niet gek, willen al die klanten ook geen budget voor vrijmaken - als ze het überhaupt al hebben.
Ik denk niet dat het een compleet ander vak gaat worden. Misschien voor het laaghangend fruit, maar ik verwacht dat de impact van AI hetzelfde gaat zijn als een StackOverflow.
Ik verwacht eerder dat het merendeel van alle software het equivalent van lowcode/nocode zal worden.

We hebben al AI die volledige codebases kan inlezen en refactoren of omzetten naar een andere taal, AI die op basis van een schets een frontend in elkaar steekt, enz. Dit betekent niet dat ontwikkelaars overbodig worden, maar dat je een soort van business analyst wordt. Minder mensen per project, maar meer projecten en hopelijk wordt zo de wanhopige nood aan IT-personeel enigszins verlicht.

Ik knutsel in mijn vrije tijd in UE5 en daar zie je al dat 95% van het werk gewoon bestaat uit nodes heen en weer schuiven (blueprints) en je enkel voor specifieke high performance elementen in de code moet duiken. Je moet nog altijd weten waar je mee bezig bent om een project te voltooien, maar je moet geen C++-expert zijn om ermee te beginnen, en de C++-experts kunnen nog steeds goed geld verdienen met het schrijven van packages voor procgen enz.
Misschien als de AI beter word, maar om nu houwtje touwtje gegenereerde code aan elkaar te plakken lijkt me ook geen goed idee. Kan je meer tijd kosten dan dat het opleverd.
TDD kan ook met AI, is denk ik nog belangrijker dan voorheen!
Het zijn per saldo gewoon nog 'tools'. Net als 'handwerk vakken' al jaren betere tools en machines tot hun beschikking hebben, je zal nog steeds de kennis en knowhow moeten hebben om deze goed te gebruiken.

Diverse aspecten zijn al van 'code naar visueel' gegaan (al het begin van WYSIWYG), Unreal heeft dit inmiddels ook al in zeer goeie vorm werken, maar met houtwerkers voorbeeld te nemen: of je zelf een gat boort of je laat deze boren, je moet nog steeds weten waar dat gat precies geboord moet worden.

Testen zal een interessant aspect worden, je elimineert enerzijds de 'human errors', anderzijds verwacht ik veel 'selfmade' programmeurs code van AI blind over te nemen. En zelfs als daar een logica in zit, ik vraag me af tot hoeverre dit later bijvoorbeeld serieuze beveiligingsissues gaat opleveren.
Testen doet nu toch al niemand, dat is voor de klant of eindgebruiker :+
Het is een geintje natuurlijk... maar volgens mij bestaat software op veel meer dan alleen 'het internet'. Fabrieken en regelsystemen voor infrastructuur hebben allemaal software draaien - daarbij testen overslaan is onmogelijk.
En dat dit soort generatieve AI kan helpen - vast wel. Code-generation is ook niet bepaald nieuw. Dat je het kan sturen met 'normale taal' is dat wel.
Maar zomaar stellen dat het een ander vak wordt is een stapje te ver denk ik.
Het is niet dat software ontwikkeling zonder tools wordt gedaan. En weer een extra tool erbij is wellicht handig.
Ik hoor dat al meer dan twintig jaar, maar feitelijk wordt de complexe code en code waar de programmeur added value heeft door product of branch kennis nog steeds door de mens gemaakt. Dus die 90% die jij aangeeft kunnen we rustig met een korrel zout nemen. Ik heb langzamerhand een hoge bloeddruk van al die korrels.
Testen doet nu toch al niemand, dat is voor de klant of eindgebruiker
Bij de code knutselaar misschien, maar in een professionele omgeving heb je gewoon te maken met PR, code quality gates waaronder codecoverage van je unittests, dependency check, regressietest in je ci/cd pipeline enz enz.
Ik zie het niet snel compleet ander vak worden. Wel gaat de tooling eromheen veel impact hebben hoe je werkt. Ik gebruik dagelijks copilot van Github en kan niet meer zonder. Voor eenvoudige taken is het gewoon super handig. Vooral autocomplete van boiler plate code.
Maar de architectuur is niet echt iets wat een AI assistant voor je doet. Wellicht kan je met bv een chatGPT wel een eenzicht en advies krijgen. Maar je zal het zelf wel uiteindelijk moeten implementeren en bouwen.
Ik denk dat software developers in Nederland langzaam moeten denken aan een carrière switch.

Waar een bedrijf nu nog 20-200 developers nodig heeft, zal dit straks door AI met wel 80% teruggebracht kunnen worden. Uiteindelijk zal software maken makkelijker en toegankelijker worden. Met lagere salarissen als gevolg.

Ik vermoed dat het richting een administratieve baan gaat.

Met uitzonderingen voor de mensen die extreem goed zijn in hun werk en kunnen mee ontwikkelen aan AI.

Toch ironisch dat software ontwikkelaars uiteindelijk hun eigen ondergang maken.
Net zoals nu, dankzij AI image generators, 80% van alle tekenaars, 3D artiesten en fotografen op straat staan, want wat je met een promptje eruit laat rollen is toch al wel goed. Right? Of ligt het toch iets genuanceerder dan dat?

Dit soort taalmodellen kunnen heel behulpzaam zijn, maar met niks anders dan een AI relevante, correcte code uitspugen is toch echt te hoog gegrepen. Je zult nog steeds een developer nodig hebben die weet van de hoed en de rand om die AI aan te sturen, de juiste resultaten eruit te schudden, aan te vullen waar een taalmodel er echt geen kaas van heeft gegeten en zorgen dat het geheel doet waar je naar op zoek bent. Zeker bij code is het vele malen belangrijker dat het eindresultaat klopt dan bij de meeste andere output van taalmodellen, waar het minder erg is of zelfs een creatief pluspunt als een en ander met onvolkomenheden eruit rolt.

Fred Brooks zei het ooit al: "there is no silver bullet". Er zit een zekere essentiële complexiteit in bevatten wat het probleem is dat je met een computer op wil lossen en hoe de computer het dan dient op te lossen, en dat stukje kun je nooit volledig weg-automatiseren, ook niet met een heel doorwrocht taalmodel dat al een hoop code gezien heeft, want het gaat stiekem niet om de code zelf. De manier waarop code geschreven wordt is altijd aan verandering onderhevig en daar kunnen dingen als AI zeker helpen om sneller code te krijgen (niet noodzakelijkerwijs betere, helaas), maar dat gaat programmeren zelf niet tot administratieve handeling reduceren -- of althans niet meer dan het in sommige gevallen al is.

Het is niet volledig uitgesloten dat we er ooit in slagen programma's te maken die even goed als een mens kunnen programmeren, of wellicht zelfs beter, maar dat is dit nog net niet. Ironisch zou ik dat niet willen noemen, ik zou het machtig mooi vinden aan zoiets mee te kunnen werken. :)

[Reactie gewijzigd door MneoreJ op 22 juli 2024 14:03]

Net zoals nu, dankzij AI image generators, 80% van alle tekenaars, 3D artiesten en fotografen op straat staan, want wat je met een promptje eruit laat rollen is toch al wel goed. Right? Of ligt het toch iets genuanceerder dan dat?
Dit is inderdaad momenteel aan de gang. Freelance artiesten en schrijvers verliezen aan ijltempo klanten. IBM heeft aangekondigd dat ze niet meer zullen aanwerven voor jobs die een AI beter kan doen, Dropbox heeft een deel van hun developers ontslagen en AI-experts aangeworven, enz.
Dit soort taalmodellen kunnen heel behulpzaam zijn, maar met niks anders dan een AI relevante, correcte code uitspugen is toch echt te hoog gegrepen. Je zult nog steeds een developer nodig hebben die weet van de hoed en de rand om die AI aan te sturen, de juiste resultaten eruit te schudden, aan te vullen waar een taalmodel er echt geen kaas van heeft gegeten en zorgen dat het geheel doet waar je naar op zoek bent.
En automobielen zijn geen oplossing voor alles omdat je een mekanieker moet zijn om ermee te rijden. Steeds maar carburator en kleppen afstellen, voortdurend in een drogisterij benzine moeten kopen, en om de 20 kilometer een lekke band. Er is nog steeds een grote rol weggelegd voor paard en kar, toch?

Neen hoor, programmeren is een aflopend verhaal. Over twee jaar ben je ofwel een AI-hoeder en klantencontact ofwel ben je werkloos samen met alle andere beroepsgroepen (dokter, jurist, schrijver, universitair professor, HR-medewerker) die binnen het jaar volledig door een AI vervangen kunnen worden die goedkoper en beter werkt.
Neen hoor, programmeren is een aflopend verhaal. Over twee jaar ben je ofwel een AI-hoeder en klantencontact ofwel ben je werkloos samen met alle andere beroepsgroepen (dokter, jurist, schrijver, universitair professor, HR-medewerker) die binnen het jaar volledig door een AI vervangen kunnen worden die goedkoper en beter werkt.
Ik denk dat dit vooral neerkomt op hoe je "programmeren" omschrijft. Als je dit definieert als "code kloppen", wat niet ongebruikelijk is, dan klopt wat je zegt wel. Als je dit definieert als "dingen automatiseren met behulp van een computer die nog niet eerder geautomatiseerd zijn op de manier die wij willen" dan niet.

Zelfde met die dokter, jurist, schrijver en andere beroepen waarbij het idee dat al het grote werk wel gedaan is en dat we vanaf nu de AI's aan de slag kunnen laten gaan met wat die mensen al gemaakt hebben gewoon niet op gaat -- althans niet zonder heel wat meer nuance. Bij dokters en juristen speelt dan ook nog een heel stuk ethiek mee omdat daar beslissingen worden genomen die nogal ingrijpen op het leven van andere mensen; daar "gewoon overnemen wat de computer zegt" ligt gevoelig, zelfs als de computer beter werk aflevert. Je wil de eerste niet zijn, en ook niet de laatste, die moet verdedigen dat er een kardinale fout gemaakt is omdat iemand even niet keek naar wat de computer uitspuugde. Ook al is dat qua resultaten niet rationeel en kunnen mensen op eigen houtje nog veel ergere fouten maken.

Ik zou het overigens fantastisch vinden als ik over 2 jaar alleen nog maar een AI hoeder ben voor een AI die stiekem alle code gewoon kan uitspugen, en dat dan in combinatie sneller dan dat ik het zelf gedaan had. Ik denk niet dat het zo'n vaart gaat lopen, maar we gaan het zien.

[Reactie gewijzigd door MneoreJ op 22 juli 2024 14:03]

Het zal niet zo'n vaart lopen.

Programmeren vereist nog altijd analytisch denkvermogen.
AI kan je code presenteren, uiteindelijk moet je het zelf valideren en nog integreren.
Uiteindelijk vraag ik mij dan ook af of je werkelijk snelheidsboost behaalt. Maar dat ligt natuurlijk ook aan de context en de complexiteit van de applicatie waar je aan werkt.

Vooralsnog zie ik het als een storm in een glas water. Een beetje als met de low code toepassingen, de software ontwikkelaar zou ook overbodig worden en we weten allemaal wat daar van terecht is gekomen.
Programmeren vereist nog altijd analytisch denkvermogen.
AI kan je code presenteren, uiteindelijk moet je het zelf valideren en nog integreren.
AI kan nu al volledige applicaties schrijven, testen én deployen. Het feit dat AI-code en door mensen geschreven code niet vlekkeloos samenwerkt, wordt zo een probleem voor de mensen en niet voor de AI.
Noem eens drie voorbeelden?

Gros wat ik op zie verschijnen (bij GPT danwel) aan code is op een of andere slimme manier bij elkaar gezochte code wat eventueel nog vertaald wordt naar gewenste ontwikkeltaal.

Ben met een specifiek iets bezig voor thuis als ik aan gpt vraag van, schrijf code voor ....., dan kan ik 95% van de gegeneerde code herleiden naar zaken die al gepubliceerd zijn op het internet in het (verre) verleden.

[Reactie gewijzigd door mvrhrln op 22 juli 2024 14:03]

Kom maar op met een generator die kan wat jij zegt.
Die bestaan echt nog niet.
Anoniem: 80910 @NoSugar11 mei 2023 11:53
De competitie wordt groter, ik denk dat software maken niet goedkoper wordt. De ene schrijver is de andere niet, de ene maakt kinderboeken, de ander romans. Je moet niet denken dat je zomaar veilige code kan schrijven. Daar moet je de ai echt nog op trainen. Als dat getackeld is, kan iedereen een website maken. Dat wil je toch ook zodat een Facebook niet meer nodig is.
Programmeren zal anders gaan worden, maar software engineering zal echt niet gaan verdwijnen. Alleen de manier waarop we code in gaan kloppen gaat veranderen.

Programmeren is eigenlijk niets anders als specificaties inkloppen, dat is iets wat je via AI ook moet doen, anders zal het niet exact volgens specificaties zijn. Daarnaast zal testen (zowel geautomatiseerd als UX) ook echt niet gaan verdwijnen. Requirements van opdrachtgevers ontvangen en vertalen, testen met eindgebruikers, iteratief ontwerpen, etc...

Dat doet een software engineer. Code is slechts bijzaak.
Volgens het rapport van het WEF zal IT zelfs een groeisector worden (!), maar hierbij worden jobs als "business transformation specialist" gerekend.

Ik denk dat we over twee jaar niet langer code zullen schrijven, maar bedrijven zullen helpen hun processen om te zetten naar AI, data te centraliseren in een inhouse AI-systeem, enz. Toch wel een mooie runway van enkele jaren voor ook dit geautomatiseerd wordt.
Ik denk dat het zo'n vaart niet zal lopen. Wat er hooguit gaat gebeuren, is dat de al bestaande programmeurs veel sneller werkende applicaties kunnen schrijven. Er is zo veel vraag naar ontwikkelaars en dus zo veel werkvoorraad, en dat wordt alleen maar meer.
Kijk dat is toch mooi, kan straks iedereen een app ontwikkelen
Verschrikkelijk dus, want er zijn al zoveel onzin-apps die beter als website aangeboden kunnen worden.

Maar goed, gelukkig kan ik die op mijn simpele Nokia toch niet installeren.
Iedereen kan nu ook al muziek maken, alleen zal 99,9% niet door andere beluisterd worden.
Datzelfde geldt voor video's, kunst en nu dus ook applicaties.

Je HOEFT ze niet te installeren, net zoals dat je bepaalde muziek niet HOEFT te beluisteren.
Zou je denken, maar ik kwam laatst iemand tegen die een oven had gekocht waarvoor je een app moest installeren als je bepaalde functionaliteit wou gebruiken die op domme ovens ook gewoon te gebruiken is.
Dat heeft alleen niet veel te maken met wat ik zei en waar dit artikel over gaat.
Dat denk ik wel. Probleem is dat veel programmatuur al grotendeels uitontwikkeld is, waardoor als programmeurs aanblijven ze, ofwel uit hun neus gaan peuteren, ofwel meer onzin gaan schrijven. Geef ze er nog wat extra productiviteit bij en ze gaan nog meer onzin schrijven.

Lijkt misschien op het eerste gezicht vergezocht, maar denk er maar eens goed over na.

Hier kun je zien dat programmeurs tegenwoordig teveel tijd hebben, talloze voorbeelden: https://twitter.com/internetofshit

[Reactie gewijzigd door ByteArray op 22 juli 2024 14:03]

Dat is niet zozeer het probleem van programmeurs met tijd teveel, maar de smart-everything hype welke bedrijven najagen, omdat ze denken dat consumenten het willen. (Mensen kopen het blijkbaar, dus het werkt wel)
En nogmaals: dat heeft echt helemaal niets met dit te maken.
Het is zo handig voor dagelijkse werkzaamheden waarbij je makkelijk kan wisselen tussen frameworks. Ipv dat je zelf alles moet Googlen en uitvogelen hoe je ook alweer een Activity bijvoorbeeld maakt. Focus je nu daadwerkelijk om datgene wat je wilt maken.
Je ziet steeds meer de effecten van "Code Red" verschijnen.. ik denk dat we nog maar het topje van de ijsberg hebben gezien qua AI aankondigingen van Google.

Dat gezegd hebbende, fijn dat ze deze functionaliteit bieden. Ik vraag me wel af hoe goed het werkt en of er ook ondersteuning is voor alternatieve programmeertalen zoals Kotlin.
Wat ik me van de stream herinner ondersteunen ze in Google Codey nu een twintigtal talen waaronder Kotlin.

Edit: Het ging om Bard, niet Codey. Zo fijn dat Google 3 modellen naast elkaar gebruikt.

[Reactie gewijzigd door melvinjoosten op 22 juli 2024 14:03]

Zo fijn dat Google 3 modellen naast elkaar gebruikt.
Google heeft wel iets met chat en meerdere parallelle oplossingen.
Als ik even mijn alu-hoedje op zet: wat weerhoudt een bedrijf als Google (of [insert random Chinees/Russisch bedrijf]) om via zo'n code-bot allerlei achterdeurtjes of spyware-achtige code toe te voegen? Deze chatbots worden volgens mij vooral gebruikt door mensen die weinig verstand van programmeren hebben, dus die gaan dat nooit door hebben.
Ofwel is het artikel aangevuld, of je hebt het einde van het artikel niet gehaald.
Oeps, meer dat laatste ;)
Wat dat betreft heb ik meer vertrouwen in AI dan in de mensheid zelf.

Op dit item kan niet meer gereageerd worden.