Najbolje stvari su često i najjednostavnije. Najbolja rješenja su jednostavna rješenja. Postoji samo jedan problem u tome - do jednostavnih rješenja često je vrlo teško doći.
Creative Bloq u zadnje vrijeme piše o logotipu savezne države Vermont. Najprije su komentari išli u smjeru da se za logotip upotrijebio ozloglašeni Comic Sans font. To nije taj font, a komentirali su valjda ljudi kojima je svaki "neozbiljan" font Comic Sans. Tako je to kad danas na internetu svatko ima pravo na svoje mišljenje, ali ne samo to, često takve algoritam izbaci gore na površinu.
Kad imate jednostavan logotip prva najčešća stvar su komentari kako je to moglo nacrtati i malo dijete. McDonald's, Nike, Mastercard, Apple (ne onaj prvi), Twitter, National Geographic. Jednostavnost je jedno od najvažnijih pravila kod logotipa. Mora biti prepoznatljiv na prvu, nije na njemu da objašnjava već da identificira. Jednostavan logotip ne pokazuje nedostatak ideje već vrhunac optimizacije, zadržavanje najbitnijeg.
"Savršenstvo nije postignuto kada se više nema što dodati, nego kada se više nema što oduzeti." (Antoine de Saint-Exupéry)
Logotip ne mora ispričati cijelu povijest tvrtke ili onoga što predstavlja, ali u slučaju Vermonta u to jednostavno rješenje je upletena i priča - planina, mjesec, zavojite ceste.
Jednostavno programiranje
Kad sam počeo mentorirati kolege programere jednostavnost je bila jedna od stvari koju sam tražio. Kad je nešto bilo jako komplicirano tražio sam da se to pojednostavni. Kontra argument je najčešće bio "ali to radi". Da, u većini slučajeva se moglo proći s tim, ali kad je rješenje počelo nalikovati na nevjerojatne strojeve onda je ipak trebalo krenuti s popravljanjem i oduzimanjem.
U agentskom programiranju (to je ono kad programer provjerava kod koji generira LLM, za razliku od programiranja po osjećaju/vibe coding gdje toga nema) često naletim na slučajeve kompliciranih rješenja ili s jako puno ponavljanja koda. Kad programer piše kod i kad vidi da se kod ponavlja onda proradi gen kreativne lijenosti i taj kod izdvoji u metodu koju kasnije koristi na više mjesta. LLM nema taj problem, svejedno mu je generira li 5 ili 50 linija koda. KISS princip ne stanuje tu. Problem je i u kontekstu pa često minorne stvari, koje bi čovjek ignorirao, utječu na konačno rješenje. Za neka rješenja su krivi i zahtjevi, "nemoj napraviti grešku", i onda LLM pokušava predvidjeti sve rubne slučajeve i ubaci cijeli niz nepotrebnih provjera. Murphyjev zakon osigurava to da će "zaboraviti" onu najvažniju.
Za to smo krivi i mi programeri. U vremenu prije ove LLM ludnice bio je primjetan trend da se u aplikacijama piše previše koda. To sam spomenuo i u članku "I na kraju prstohvat koda" gdje sam pisao o low-code platformama koje su načele teren na kojem su danas zavladali LLM-ovi. Use case je isti samo što su danas LLM-ovi daleko moćniji nego što su to bile low-code platforme.
LLM-ovi su učili na tom kodu kojeg je bilo previše, LLM će dati prioritet rješenju koje se najčešće ponavlja, na kraju pobjeđuje prosječnost, a ne jednostavnost i najbolje rješenje. Ali to radi...

PHOTO: