Vlákno názorů k článku AI asistenti pro vývoj software: postupy vhodné pro programátory od Heron - Používá někdo AI na skutečné programování v praxi? Můj...

  • 13. 11. 2025 10:53

    Heron

    Používá někdo AI na skutečné programování v praxi?

    Můj přístup k programování je následující:

    * Naučit a neustále si doplňovat něco jako "best practise" tedy vlastně jak psát dobrý kód (v daném jazyce).
    * Učit se nové postupy - tady bych uvedl zásadní změnu myšlení, ke kterému mě přivedlo jednak sledování přednášek Joe Armstronga (Erlang), kdy v erlangu je každé volání funkce vlastně jen předání informací (message passing) do jiného threadu. Takže vlastně každá funkce může běžet ve vlastním threadu a volání fce je jen předání parametrů do nějakého inboxu.
    * Takto to používám v golangu, kdy vše, co může být ve vlastní gorutině je automaticky psané jako gorutina (tedy předávání dat pomocí kanálů).
    * A pochopitelně znalost knihoven.

    Nějak mi tady chybí prostor pro AI. Možná je to oblastí, ve které pracuju, ale vlastně vůbec nevím, kde přesně by mi mohla AI pomoci. Pokud mi poradí alg. který jsem neznal, tak se jej stejně musím naučit nebo si na to najít vhodnou knihovnu (a nebo jej prostě z různých důvodů odmítnout).

    A tak jak vnímám například copilota, tak je to v podstatě něco, co mělo už před 30 lety Borland Delphi, tedy něco jako šablony. Pokud mám ve formuláři 10 políček s daty, tak systém fakt nepotřebuje AI na to, aby se "zamyslel" nad tím, že s těmi daty bude potřeba něco udělat. Tohle kupodivu už před 30 lety napadlo i autory těch komponent, takže každá komponenta měla vhodné rozhraní, jak předat data někam jinam. A copilot dělá přesně tohle, "jééé tady je struktura s daty, tady je databázový dotaz, tak navrhnu jak data poslat do toho prepared statementu" - tohle ale vůbec nepovažuju za umělou inteligenci, na tohle si napíšu generátor kódu klidně sám, stačí vzít struct, její exportované fieldy a udělat z toho insert nebo update do DB.

    říct mu, že toto je moje upravená verze a teď se budeme bavit o ní, a že tam chci nějaké změny.

    Nechci opravdu rýpat do každého odstavce, ale na tohle jsem četl návod už někdy v knížkách o refaktoringu (Martin Fowler), tedy že pokud je změna tak velká, větší než je položená otázka, tak by to mělo automaticky vést k zamyšlení se nad strukturou kódu. Takže pokud bych si měl s AI povídat o tom, jak upravit ten kód, tak to prakticky vždy udělám rychleji, než vůbec zvládnu vygenerovat vhodný dotaz a pokud tohle nezvládnu, tak je to indikátor mnohem většího problému v tom kódu.

    kopírovali ze StackOverflow

    Aha, a já jsem si vždy myslel, že to je vtip (napadá mě obal knížky Copying from StactOverflow - https://sl.bing.net/iKiOHOn9B3A)

    Těším se na další díl, třeba se dostaneme k tomu, kde se to reálně používá a co nelze dělat jinak (a lépe).

  • 13. 11. 2025 14:14

    wsh

    Ano, používám to na skutečné programování v praxi (integrované v JetBrains IDE).

    - autocomplete - výrazně psaní, ale také zanáší záludné chyby (když neví název proměnné, klidně si vymyslí neexistjící, třeba "oder" místo "ordering")

    - super je to na self review před odevzdáním kódu - poradí mí lepší naming, navrhne extrahovat kód do samostatné metody pro lepší čitelnost apod.

    - zrychluje/nahrazuje vyhledávání v dokumentaci a dokáže člověka navést na postup, který by ho nenapadl (nedávno jsem chtěl třeba navodit v dockeru situaci síťové latence a výpadků - poradil konkrétní docker image a přepínače pro "tc")

    - případně i řeší konkrétní problémy - po upgrade Ubuntu mi VPN hodila nějakou chybu a AI mi řekla, že nějaký formát certifikátu přestal být podporován a hodila konkrétní přikaz pro zkonvertování

    Pořád to ale beru jako nástroj a ne jako autoritu. Bohužel u mladších kolegů pozoruju mnohem větší tendenci brát rady AI jako autoritu a míváme občas abstraktnější debaty (typu řešit daný problém dědičností nebo kompozicí), kde někdo dá otázku do ChatGPT a odpověď bere jako větší argument než názor kolegy.

    Navíc je to technologie jako každá jiná a k dobrým výsledkům je zapotřebí se ji dobře naučit používat (jak psát prompty apod.).

  • 13. 11. 2025 15:53

    Heron

    když neví název proměnné, klidně si vymyslí neexistjící, třeba "oder" místo "ordering"

    Jo, u Golangu si Copilot občas vymýšlí neexistující metody a třeba umí ignorovat stringer, takže místo obyčejného printf("%s", obj) to vymyslí nějakou konverzi obj.GetData()­.String(), případně to ještě vezme přes hex, asi aby ten řádek byl delší - vypadá to na myšlenkový zkrat, kdy ono to sice ví, že potřebuje string, ale potom to udělá libovolnou konstrukci, ze které sice na konci vypadne string, ale ta optimalizace uprostřed té úvahy tam nějak chybí, takže to protáhne data přes 3 další filtry.

    případně i řeší konkrétní problémy - po upgrade Ubuntu mi VPN hodila nějakou chybu a AI mi řekla, že nějaký formát certifikátu přestal být podporován a hodila konkrétní přikaz pro zkonvertování

    Což se dá většinou poznat už jen z chybové hlášky a snadno najít na google.

    No mě obecně chybí nadšení pro to, co se dneska nazývá AI. Neříkám, že je to špatná nebo nevhodná technologie, ale obecně mi vadí nadšené nasazování (nebo alespoň předstírání), že "to tady ještě nebylo" nebo "teď už to konečně jde" a použije se machine learning na vše, kde doslova stačí dva ify, kdyby data byla v pořádku, před čímž (nepořádek v datech) někdo varoval už v minulém století.

    Právě proto jsem se ptal spíše na konkrétní použití u programování, protože mě jednak baví se dotýkat své práce, takže nerad používám nějaké nástroje tam, kde si to prostě můžu napsat (pokud to není vyloženě stovky řádek něčeho extra nudného) a taky mě baví si ty cestičky projít sám, takže pokud přijdu na nějakou novou techniku něčeho, tak z toho mám větší radost, než kdyby mi to napsalo AI samo.

    A v kombinaci s tím, co jsem napsal v prvním komentáři prostě nevidím pro AI místo a upřímně řečeno, zatím to spíše vypadá na použití v nějakém legacy hrozném kódu, kde jsou všichni rádi, že mají nástroj, který jim v tom pomůže se vyznat. Protože v novém kódu tohle není potřeba, všichni se v tom vyznají a baví je to psát.