cocoa wrote:
Na kraju, velika pobeda NeXT-a 😉
Ja bih se složio da je NeXT ekipa pobedila što se tiče nekih stvari u UI-ju (recimo izbacivanje, tj. degradacija, kontekstnog menija zarad ‘Service’ menija, dodavanje sve više funkcija Docku itd…); ali nikako nije pobedila po pitanju onoga što se pomenuo, a što se može svesti na podršku bogatom setu metadata u fajl sistemu. Naprotiv, tu je izgubila i mislim da je odlazak Aviea posledica toga. Rezultati tog poraza se mogu videti još od Tigra, pojavom ACL-a, extended atributa (čak su i resurs fork i FinderInfo postali extended atributi sa rezervisanim imenom) i ostalih stvari koje se kače na već vremešan HFS+, zatim pojavom UTI-ja kao superiornog rešenja uz opis tipova fajlova. Kojim pravcem su Avie i NeXT ekipa želeli da idu može se pročtati u njegovoj čuvenoj TN #2034 (još se valjda arhivirana može naći negde na netu, jer ju je Epl vrlo brzo nakon objavljivanja povukao, zbor problematičnog ‘attitude’-a); koju je erovatno on sam pisao, a gde se traži od kreatora programa da izbegavaju korišćenje resurs forkova, da koriste ekstenzije umesto Type/Creator koda, da koriste ‘path-based’ API-je za pristup fajlovima (što je put u katastrofu ako se fajl šeta tamo - vamo)... Ima toga još.
E sada, ekstenzije, bez obzira koliko ružno i glupo ‘rešenje’ bilo da se opiše tip fajla, su uvedene prevashodno da se korisnici drugih sistema ne bi našli u čudu što ne mogu da otvore fajl ni u kom programu (jer nema ekstenziju). Ovo nije bio toliki problem dok su mašine bile izolovane i fajl se vrteo samo u okviru jedne mašine, ali se to značajno promenilo dolaskom Interneta. Upravo iz tih razlova je Epl i uveo UTI-je, koji su zaista trenutno najbolji i najfleksibilniji sistem za opis tipova fajlova i međusobnog odnosa među različtim tipovima.
Ono što UTI ne rešava je tzv. ‘Application Binding’ (a nije mu ni posao da to reši, ono ‘T’ je upravo od ‘Type’). To rešava LaunchService i Epl je tu promenio pravilo u Snow-u, već se može pročtati na linkovima gore, da ne ponavljam. Ono što je još uvek loše i što bih ja voleo da se reši u 10.7, je upravo ‘Application Binding’. S obzirom da se Creator kodovi više ne poštuju, ne postoji API kojim to može programski da se uradi. Može se jedino uraditi što radi i Finder kada odete u ‘Get Info’ i eksplicitno vežete neku aplikaciju da otvori neki fajl. A to što Finder radi, bar poslednji put kada sam proverio, je izuzeto ružno, lič na nekakav hack: upiše se ‘usro’ resurs u resors fork fajla tako da sadrži STATIČKU PUTANJU do app paketa koji treba da ga otvori!!! Dakle, ako kažete Finderu da hoćete da se fajl stalno otvara u Codi, a onda Codu pomerite na neko drugo mesto na disku, vaša veza je prekinuta!
Ima tu još sitnih stvarčca koje bih voleo da se srede, a jedna od njih je izbacivanje (napokon) .DS_Store fajlova. Uz postojanje bogate podrška za ext. atribute, ovi fajlovi gube svaki smisao. Međutim, ponekad se čni da u Eplu ima i teških toluzina, pa i dalje insistiraju na njihovom korišćenju. Što je najgore, to još bude odobreno od viših instanci. Na primer, Snow je doneo meni stavku ‘Put Back’ kada kliknete na fajl iz kante, koji ga vraća na lokaciju sa koje je obrisan. To znač da je sa fajlom nekako sačuvana informacija odakle je dospeo u kantu, pa bi svako normalan pomislio da je taj podatak upisan u ext. atribut specifičnog (od strane Epla razervisanog) imena. Ali neeee, ta informacija je upisana, verovali ili ne, u .DS_Store fajl priparajućeg foldera (tj. same kante, ~/.Trash).
Takođe, voleo bih povratak na staro što se tiče snimanja fajlova iz Cocoa programa. Počev od Snow-a, ako koristite standardne Cocoa API-je za snimanje dokumenta, možete da krljate po dozvolama (permissions) fajlova samo tako. Na primer, ako u Tigru (i pre) probate da izmenite read-only fajl, prilikom snimanja vam izađe greška da ne može jer nemate dozvolu i da ako hoćete da vidite i eventualno izmenite dozvole odete u ‘Get Info’ i tamo to odradite. U Leopardu se kaže nešto kao da ne može da se fajl snimi, jer je zaključan, ali vam se ponudi da ga ‘otključate’ i snimite. Ispod haube, sistem izbriše original, upiše nov fajl sa istim imenom i na kraju mu da dozvole originala, tako da izgleda kao da ste modifikovali read-only fajl! U Snow-u ne dobijete čak ni grešku! Sistem uradi sve ovo iz prethodne rečenice, a da vas uopšte ne obavesti o tome! Ako ga pak zajebete, pa direktorijumu, u kome se fajl nalazi, date samo read/traverse dozvole, sistem vas samo obavesti ‘da ne može da snimi’ fajl, a zbog čega… nemate pojma. Razumem ja da je ovo urađeno zbog ‘običnih’ korisnika koji mogu biti zbunjeni da ne mogu da modifikuju fajl koji mogu da otvore, ali zaista ‘enough is enough’.
Eto tako, ima još toga (i krupnijeg) što bih voleo da vidim, ali kasnije, već sam se dovoljno raspisao.