Magičan kod i magične mogućnosti
"Magija" je osobina frameworka ili biblioteke gde nije odmah očigledno zašto i kako nešto radi, ali radi na način na koji očekujemo, uz nikakav ili minimalan napor sa naše strane. Ovakvo ponašanje pozitivno utiče na programersko iskustvo jer se sa vrlo malo koda postižu gotovo magični rezultati.
Šta tu ima loše? U suštini ništa, dok radi. Kad magija ne radi na očekivan način, programer je u problemu. “Magiju" kao pa pravilu nije lako debagovati, posebno u početku. Jedno malo slovo gde framework očekuje veliko i neće moći pravilno da poveže akciju kontrolera sa odgovarajućim viewom. Koliko god bila korisna kad radi, kada prestane onda ume baš da nas namuči.
Pod magičnom mogućnošću mislim na stvari za koje korisnik ne zna kako rade, ali rade toliko dobro, kao da mu pogađaju misli.
Na primer, ActiveCollab vam neće tražiti da unosite ručno broj fakture. Umesto toga, preporučiće sledeći broj na osnovu broja zadnje izdate fakture. Kroz godine smo videli puno formata faktura na osnovu kojih smo napravili kod koji lepo pogađa broj sledeće fakture. Ako spadate u 99.9% firmi koji koriste te česte formate, ActiveCollab će bezx problema pogoditi broj nove fakture.
Problem koji magične mogućnosti dele sa magičnim kodom je što sva magija pada u vodu kada ne radi kako očekujemo. Tada počinjemo da se borimo sa njom. Ukoliko upadate u onih 0.1% firmi koje koriste format za koji ne umemo pravilno da odredimo sledeći broj, moraćete da ga promenite svaki put (javite se da popravimo).
Trik kod magičnih mogućnosti je terati do kraja, juriti primere gde magija nestaje i popravljati ih. Cilj je doći u stanje da magija uvek radi. Ako nismo spremni da idemo toliko daleko, treba ih izbegavati. Ali ako jesmo i istrajemo, takav softver na kraju stvarno deluje magično.
AI je najmagičnija od sve magije sa kojom smo do sada imali posla. Pošto ga možemo koristiti direktno, ali i kroz drugi softver, živimo u svetu gde će sav softver težiti magiji. To je zasebna priča.