Kakao (software)
Kakao je Apple počítač' s domorodec objektově orientovaná aplikace programovací prostředí pro Mac OS X operační systém. To je jeden z pěti hlavních programovacích dostupných prostředí pro Mac OS X; jiní jsou Uhlík, Klasický, BSD, a Java. (prostředí takový jako Perl a Python je považován za menší prostředí, protože oni nejsou obecně užití na dospělé aplikační programování).Kakaové aplikace jsou typicky rozvinuté používat rozvojové nástroje poskytované jablkem, specificky projektovat stavitele (nebo více nedávno Xcode) a stavitel rozhraní. Nicméně kakaové programovací prostředí může být zpřístupňováno používat jiné nástroje, takový jako Perl, Python a PyObjC.
Pro koncové uživatele, kakaové aplikace jsou považovány za ty psaný používat kakaové programovací prostředí. Takové aplikace často mají velmi jedinečný pocit od té doby, co kakaové programovací prostředí automatizuje mnohé stránky žádosti vyhovět Appleovu lidskému uživatelskému rozhraní směrnice.
| Tabulka s obsahem |
| 1 kakaová historie 2 hlavní kostry 3 správa paměti 4 implementace 5 externích spojení |
Kakao je pocházel z NeXTSTEP a OPENSTEP programování prostředí se vyvíjela Příští v pozdní 1980 . Apple získal příště v prosinci, 1996, a následovně šel do práce na rapsódii operační systém, který měl být přímý nástupce OPENSTEP a používat OPENSTEP vlastní technologii, a mít základ emulace pro Mac OS aplikace, který byl nazývaný Modrá krabice. OPENSTEP základ knihoven a binární podpora byli nazývaní Žlutá krabice. Nicméně, zájem o rapsódii zmenšil a Apple brzy přeřadil na vyvíjející se Macintosh OS X.
Hodně z práce, která šla do vyvíjení OPENSTEP byl aplikován na vývoj Maca OS X. kakao je nejviditelnější napůl toho synergy. Tam být, nicméně, některé velmi důležité základní rozdíly. Nejviditelnější který je ten NeXTSTEP a OPENSTEP používal Dodatek displeje pro filmovou ukázku textu a grafiky, zatímco kakao závisí na Appleově křemene (která použití PDF). Kakao také má nějakou úroveň podpory internetu (NSUrl třídy, a jiní), zatímco pod OPENSTEP jeden řídil připojení do sítě přes NSFileHandle třídy a Berkeley zásuvky.
Kakao sestává z dva Cíl-C knihovny volaly kostry. Kostry jsou pojem jedinečný pro NeXTSTEP/OpenStep/kakaová rodina programovacích prostředí. Oni jsou funkčně velmi podobný sdíleným knihovnám, který být často odkazoval se na zkratkou DSO, pro dynamický sdílený objekt, nebo DLL, pro dynamicky spojenou knihovnu. Kostra sestává z zkompilovaného objektu, který může být dynamicky načten do programového adresového prázdna u provozní, spolu se sdruženými prostředky, soubory záhlaví a dokumentací.
- Výstroj aplikace nebo AppKit je přímo pocházející z originální NeXTSTEP aplikační výstroje. To obsahuje kód se kterým programy mohou vytvářet a ovlivňovat se s grafickými uživatelskými rozhraními. NSWindow a NSButton je příklady AppKit tříd.
- Nadace nejprve se objevila v OpenStep. To druhová objektově orientovaná knihovna poskytuje řetězec a cenit manipulaci, nádoby a iteraci, distribuovaná práce na počítači, zacházení události, síťování a ostatní funkce, které nejsou přímo remizovali ke grafickému uživatelskému rozhraní. NSString, NSDictionary a NSURLHandle je příklady tříd nadace.
Jeden rys kakaového prostředí, které je, jestliže ne jedinečný, jistě neobvyklý je jeho talent na řídící dynamicky přidělenou paměť. Kakao je NSObject třída, od kterého celé kakao řadí, oba prodavač a uživatel, být odvozen, realizuje odkaz počítat schéma pro správu paměti. Každý objekt má udržet metoda a vydání metoda, a proměnná příkladu dostupný přes retainCount accessor metoda. Nově přidělený objekt, vytvořený s alloc, má udržet počet jednoho. Posílat ten objekt udržet inkrementy zprávy udržet počet, zatímco pošle to vydání zpráva zmenší udržet počet. Když objekt je udržet počet dosáhne nuly, to je deallocated a jeho paměť je uvolněna. (Deallocation je k cíli C namítá jak ničení je k C + + namítá. dealloc metoda je funkčně rovnocenná k C + + destruktor.)
Kromě ručního odkazového počítání, programátoři aplikace mohou rozhodnout se přimět k používání autorelease kaluže. posílat objekt autorelease zpráva dá deallocation toho objektu dolů kontrola nad nití je globální autorelease kaluž. Autorelease kaluž pustí objekt nějaký čas po toku programu omdlil bloku kde ten objekt byl autoreleased.
Kakao dá programátorovi výběr zda k ručně řídit jeho objekty nebo ne. Názory na toto jsou rozděleny. Někteří říkají správa paměti toho kakaa je nadřazená, protože to dovolí programátorovi mít přesnou kontrolu přes když jeho objekty jsou deallocated, ale nezatěžuje jej nutností dělat tak pro každý objekt program přidělí. Jiní říkají, že celý nepořádek je zbytečný, a ta Java-automat stylu odvoz odpadu je nadřazený, protože to odstraní možnost programátorské chyby ve správě paměti.
Jávská vázání pro kakaové kostry jsou také dostupná. Nicméně kostry sám jsou psáni v cíli-C a od této doby cíl-C presently přednostní jazyk pro aplikace kakaa.
Otevřená zdrojová realizace OpenStep specifikace je dostupná dolů jmenovat GNUstep.