Citat:
Nedeljko:
Vidi, ja pojma nemam da li je taj Linux/glibc char* kodiran sa uvek istim byte order-om ili zavisi od arhitekture. Možda Branimir Maksimović zna.
E, sad, šta ti misliš, da li je bolje to ili ovo MS-ovo? Ja mislim da je dobro oboje i da u oba slučaja može da se programira.
Naravno da je bolje Linux resenje (u jbt...) - i naravno da "u oba slucaja moze da se programira", wtf? Mozes da programiras i na papiru, busenim karticama, u masinskom kodu... nisi bas puno rekao sa tim.
Zato je Linux pristup bolji?
1. Zato sto ti je od starta internacionalno (UTF-8) - Microsoftu su trebale godine i godine da "namoli" korisnike da predju na "UNICODE"
2. UTF-8 te tera da se "ponasas" i pazis ako ti trebaju pozicije karaktera... A! Znaci dobre sanse za bagoviti kod? Da, ali... ni Microsoftov 16-bitni "UNICODE" nije fiksne velicine, ako nizi Kinez manje su sanse da vidis bagove, ali bez brige... tu su :-)
3. UTF-8 zahteva, sto ja zovem "zdravu" kompleksnost koda: to je kompleksnost koja je ili neizbezna ili pokriva vecinu slucajeva. Znaci od samog starta znas da velicina u bajtovima nije nuzno duzina stringa u karakterima, te da adresiranje nije direktno. S*anje? Zavisi, to te tera da to imas u vidu i da kod prilagodis kako treba - ako ti treba direktno adresiranje zbog performansi, to ces biti prisiljen da uradis svesno (sto povecava sansu da znas sta radis). Ako ne znas, oslonices se na neku biblioteku koju je pisao neko kompetentan i resio probleme za tebe.
Kako se to razlikuje od Win32 API-ja: pa pogledaj Windows-ov "UNICODE": za pocetak, wchar_t u Win32 je 16-bitni, sto znaci da i tu ne mozes da izbegnes dr*anje
ALI godine i godine lose prakse su gomili dali uverenje da je jedan karakter = 16 bita, sto i jeste bilo tako do Win2K, kada je Microsoft UCS-2 zamenio sa UTF-16... pogadjas, na kretenski nacin - odjednom je "UNICODE" postao UTF-16 preko noci, Win32FunkcijaW je postala UTF-16 i tako dalje...
Ovo je vec uobicajeni nivo idiotizma koji ocekujes od Win32...
Ali neeeee.... ima jos!
Vidis, Microsoft je uspeo da za*ere i svoj "UNICODE"... standard? Pa su tako imena fajlova zapisana sa kodiranjem koje je... interesantno:
https://unascribed.com/b/2019-08-02-the-tragedy-of-ucs2.html
Citat:
Windows, being such a popular platform (and therefore having a lot of... not very good developers making software for it) has become somewhat well-known for having filenames and other such things with malformed UTF-16, such as a surrogate pair in the wrong order, or only one half of a surrogate pair, due to naive string manipulation code that expects UCS-2 and not UTF-16. This has resulted in the creation of WTF-8, which stands for Wobbly Transformation Format, not what you thought it stood for. Sheesh.
WTF-8 is UTF-8 but capable of encoding malformed UTF-16 surrogates, to faithfully reproduce these broken strings on systems that use UTF-8.
Najbolji dokaz da je API djubre je ovo gore - cak i tvoji sopstveni developeri se za*base. Sta ocekujes od drugih tj. "trecih strana" :-)
Uspeh: kada ljudi naprave format koji se zove WTF-8, samo da bi mogli da parsiraju tvoj bagoviti kvazi-UTF-16.
Btw, jasno je da je u pocetku u pitanju bio samo los tajming - Microsoft je NT dizajnirao u vreme kada nisu postojali ni UTF-8 ni UTF-16, vec samo UCS-2. UTF-8 je nastao 1992 (UTF-16 1996-te.).
Ali kada su prelazili na novi format u Windows 2000, mogli su komotno da predju na UTF-8. Naravno, kao i uvek, Microsoft je odabrao put najmanjeg otpora, kako bi oni i armije 3rd party programera imali manji posao, ali vise bagova. To je skroz OK, zato i imamo WTF-8... ali brate, to ima svoj izraz: djubre. U ovom slucaju "jeftino". Komercijalno to ima smisla, bas kao sto i "pink slime" proteinski proizvod koji neki zovu meso ima smisla. Ali ima i svoje ime.
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos:
http://www.digicortex.net/node/17 Gallery:
http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! -
https://github.com/psyq321/PowerMonkey