V dnešním článku si představíme zajímavý software nazývaný Mini Commander. Jedná se o klon známého Midnight Commanderu, který je oblíbený mezi uživateli Linuxu a Unixu. Co jej však dělá zajímavým je fakt, že většina jeho kódu byla generována umělou inteligencí GPT-4.
Umělá inteligence má tendenci vytvářet kód, který je jednoduchý a snadno pochopitelný. To je obrovským přínosem pro ty, kteří chtějí upravit nebo rozšířit Mini Commander. Kód je čistý, snadno čitelný a často obsahuje i komentáře.
Na druhé straně umělá inteligence GPT-4 není zatím vhodná pro komplexnější úkoly. Často potřebuje postupovat krok po kroku pomocí jednoduchých pokynů. Pokud byste chtěli přidat složitější funkce nebo provést komplexní úpravy, může být potřeba poskytnout jasnější pokyny a v průběhu kódování je ještě upravovat. Také je potřeba vygenerovaný kód číst a hledat v něm chyby, chatbot se po upozornění na ně vždy hezky omluví a sám si je opraví. Občas je potřeba kód opravit ručně. Toto ukazuje, že umělá inteligence má své omezení a pro složitější úkoly je stále zapotřebí lidská interakce.
ChatGPT je ale ideálním nástrojem pro ty, kteří umí programovat obecně, ale nemají praktické zkušenosti s konkrétním programovacím jazykem (jako zde například C), Stačí říct, co chcete udělat, a chatbot se postará o zbytek. Ve vygenerovaném kódu se dá zorientovat mnohem jednodušeji, než ho celý psát.
Mini Commander obsahuje základní funkce, které byste očekávali od správce souborů:
Základní informace o souborech a složkách: Rychlý přehled o souborech a složkách, včetně jejich velikosti, a data poslední změny.
Náhled obsahu souboru: Snadný náhled obsahu souboru, což je užitečné pro rychlou kontrolu souborů.
Textový editor: zatím není, ale časem bude
Kopírování, mazání a přesunování souborů: Standardní operace pro manipulaci se soubory a složkami.
Přívětivé textové rozhraní: Mini Commander disponuje jednoduchým textovým rozhraním, které je snadno použitelné, dokonce i pro ty, kteří nejsou zkušení uživatelé příkazového řádku.
Mini Commander je zajímavým experimentem v oblasti softwarového vývoje. Využití umělé inteligence pro generování kódu přináší fascinující pohled na to, jakým způsobem se může změnit tvorba softwaru. I přesto, že ChatGPT může mít svá omezení v případě složitějších úkolů, je skvělým nástrojem pro programátory, kteří potřebují vytvořit něco jednoduchého v jazyku, jehož syntax úplně neznají.
Vyzkoušejte mini commander zde: https://github.com/Tomas-M/mini-commander
No nevím. Jeho zdrojáky jsem neviděl, ale tak polovina kódu vytvořeného umělou inteligencí, který jsem až doteď potkal nijak zvlášť hezká opravdu nebyla; často spíš naopak, rozhodně pod mým standardem. Chtěl jsem AI používat, ale bylo to celkem zklamání, jenom mě zdržovalo. Už proto, že revidovat ten kód je mentálně, zvlášť u složitějších věcí, naročnější, otravné a často i pomalejší, než ho rovnou napsat celý. Že to možná někomu, kdo jazyk neovládá přijde naopak je hezké, ale nevypovídá to celkem o ničem. Ostatně je to celkem logické.
A to samozřejmě nemluvím o tom, že vkladem programátora opravdu není to, že umí používat programovací jazyk.
... hm, update, nakonec jsem se na něj podíval a kód je kvalitativně většinou průměr, místy spíš dost podprůměr a totální špageta s deseti úrovněmi zanoření řídídích struktur, pod "často obsahuje komentáře" si tedy představuji něco dost jiného a ten klon je opravdu minimalistický, toho kódu je trocha. Takže v podstatě přesně to, co jsem pozoroval doteď a proč AI nepoužívám i když jsem chtěl.
Jo v readme se výslovně píše, že chatbot moc chytrý není a často dělá podivné chyby. Pan Matějíček to ve zprávičce podává podstatně optimističtěji než v readme u toho zdrojáku.
Ja to proste vidim jako pokus. Zkouska co dnes lze. Je to treba videt z toho pohledu, ze 5 let zpatky by na to vsichni cuceli jak na vrata od garaze. Za 5 let to bude nuda, a za 10 let bude treba AI davat lepsi kod nez ty, pokud teda tou dobu nebudes trpet pod ocelovou nohou terminatora :)
Možná. Ale on se tam právě projevuje přesně to, že nejde o inteligenci ale jen statistický model. Většina kódu na internetu je (logicky) průměrné kvality a z mého hlediska dost často spíš podprůměr (ostatně ukažte mi třeba, jakkoliv je to dnes už historie, alespoň trochu pěkně napsaný třeba jQuery plugin, bleh). Takže výstupem nutně také musí být průměrný až podprůměrný kód. Kde nic není, ani smrt nebere.
Možná by (snad) šlo nějakou neuronku natrénovat na postupy, jak mizerný kód refaktorovat do něčeho pěknějšího. Jenže zase máte otázku, kde vzít potřebnou codebase. To by každopádně byl zajímavý a obecně dost přínosný úkol už proto, že to je něco, co člověk fakt dělat nechce pokud nemusí.
v podstate to v tomto pripade dela copy&paste ciziho kodu (takze to musi byt spis podprumer, uz jen z principu toho, jake zdrojaky to mohlo videt a natrenovat se na nich). Tak by to aspon melo umet 'inferovat' autory a licenci/licence.
Fakt by me zajimala analyza (idealne nekoho nezavisleho), ktera by ukazala miru "opisovani" AI (myslim ve zdrojacich, psany text je asi neco jinyho tam je vic vstupu pro generativni model).
Hezky pokus.
Ale zklamalo me ze ten kod neni skoro vubec komentovany. Jasne, lidem se do toho nechce, ale UI by to mohla delat, aspon do te doby nez ji nekdo nauci se nudit :)
Uz nejakou dobu se razi heslo ze kod musi byt napsany tak prehladne aby zadny komentar nutny nebyl. Jako vymluva dobre ne?
Jinak jsem fanousek komentaru a pisu je protoze delam vic veci tak pak rychle zapominam co jsem delal pred tydnem.
No slashCount je lepsi nez sc, ale porad je to nahouby, protoze z toho se clovek nedovi proc je vubec potreba pocitat 'slashes'.
Ne. Ten kocept je sirsi. Tedy ze funkce jsou tak male a jednoznacne napsane ze neni potreba uz nic dodat. Coz je pekna teorie. Tak do skolnich cviceni, ale v praxi ten komentar tam patri. Napriklad se nim odkazujete na zdroj tvrzeni nejakeho vzpoctu a pod.
Preco vymluva? ja som pracoval na niekolkych roznych korporatnych programoch, aj na takych, kde kazdu cast robil iny student a az na par vynimiek som vzdy do par minut pochopil o co tam ide. Komentare jedine, ak sa tam robia nejake specialne vynimky, alebo nestandardne upravy.
Jde také o rychlost, s jakou je možno opravit případnou chybu. Až budete někdy hledat chybu v kódu, který napsal někdo před deseti lety a projevila se až nyní a zákazníkovi tečou prachy do kanálu, budete rád za jakýkoliv komentář, který jednak ušetří těch pár sekund, ale také může ukázat, že v komentáři je něco a v kódu něco jiného a pak to ukazuje na potenciální problém.
Pohled z druhé strany: Nejde se spoléhat na to, že když to pochopím já, pochopí to všichni. Mít geniálního kolegu (měl jsem), tak dle vašeho "pravidla" nemusí komentovat nic, protože ON tomu rozumí. A co ten "průměrný" zbytek teamu? Ten má pak problém.
Nakonec stručně: Komentáře se píší především pro kolegy, ale pro sebe jsou také užitečné.
Tohle je hezká teorie, ale v praxi to funguje tak, že "v komentáři je něco a v kódu něco jiného" nastane hned během prvního refaktoru - kód se změní, ale komentář zůstane.
Ano, tohle někteří lidé dělají. Během pár minut pochopíte, o co tam jde. Což mě obvykle strašně štve, protože mě nazajímá o co tam jde, ale o to, co to dělá a co ne. Chci vědět, jaké to má parametry a co to vrací. Chci, aby to pro mě byl black box.
Do kódu se chci dívat jen pokud mě zajímají nějaké corner cases. A i pak ocením, když jsou v kódu nějak explicitně zmíněné. Protože se mi už nejednou stalo, že jsem používal nějakou "feature", u které se časem někdo rozhodl, že jde o bug a opravil ho. Při code review to odchytíte a ptáte se stylem "Hele, když ti někdo jako student_id pošle null, tak ti ta procedura vyhučí na exception can't insert null into not null column. Je to úmysl?" Jenže je tu i balík legacy kódu, u kterého nevíte, zda je to chyba, nebo úmysl. A zatímco vy to berete jako úmysl a spoléháte se na to, že to vyhodí exception, tak někdo jiný uvidí bug, který obratem fixne.
hm, zaujimavo to vyzera ale davam prednost double commanderu alebo ghost commanderu.
MC ked je slaby pc
Tomáš je autorem několika více či méně známých projektů jak z oblasti operačních systémů, tak internetu. V současnosti samozvaný expert na Linux, Bash, PHP a MySQL.
Přečteno 26 215×
Přečteno 24 107×
Přečteno 19 594×
Přečteno 18 371×
Přečteno 12 972×