Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Pages är Carbon

Tråden skapades och har fått 8 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Göteborg
  • 2006-01-24 19:03

Jag har hört så mycket om att iWork ersätter gamla Carbon-AppleWorks, men jag upptäckt till min förvåning (med otool -L path-to-pages) att det faktikt är ett Carbon-applikation! Skumt!

Jag tycker att det ser bra ut, och fungerar som ett Cocoa-program.. Betyder detta att Carbon och Cocoa är jämnstälda numera??? Att man inte kan se skillnad på dem? Att dom är lika snabba?

MVH
Anders

Är det Pages 1 eller 2?

  • Medlem
  • Göteborg
  • 2006-01-24 19:25

Båda!

Eftersom jag har både iWork och iWork '06, testade jag på båda!

Här har ni så att ni kan testa själva, skapa ett /usr/bin/coco script eller nått!

#!/bin/sh
if [ "$1" = "" ]; then
echo "coco path-to-exec"
exit
fi
var=`otool -L "$1" |grep Cocoa.framework|wc -l`;
var=`echo $var`
if [ "$var" = 1 ]; then
echo Cocoa
else
echo Not Cocoa
fi

Men snälla nån - Carbon och Cocoa handlar överhuvudtaget inte om att något är "bättre eller sämre" - det är bara två olika sätt att anropa funktioner. iTunes är också carbon - gör det programmet sämre?

Och det har i princip inte ett spår att göra med hur "snabbt" en program är. (om man skulle generalisera så är tvärtom carbon-program snabbare)

  • Medlem
  • Göteborg
  • 2006-01-24 19:32

Beror på hur man ser det

Om du har provat att programmera i dem, så märker du att det är helt olika miljöer!

För mig är detta intressant eftersom jag föredrar C++, det är SNABBT! Dock fungerar det historiskt mera kompletta och snygga (t.ex. spara varningen som "droppar" ner i Cocoa program såsom textedit bara funnits i Cocoa, vet inte hur det är nu). Därför borde iTunes vara SNABBT eftersom det är skrivet i C++.

Problemet är att Carbon är bakåtkompatibelt mot OS9, och dess trådtekniker är verkligen undermåttliga. Dessutom är det mycket overhead, för att få det att fungera på både OS9 och OSX, vilket gör att program lätt bli MYCKET taffliga; sega, känns inte bra. Jämför Photoshop 6 och 7 på OS9 så förstår ni..

Ett annat problem med Carbon är att det är skrivet för C (procedur-språk) inte C++, vilket gör att du inte kan objekt-orinetera med Carbon speciellt bra. Med andra ord har jag tvingats över till Objective-C (Cocoas språk). Det är lite bökigt om man kommer från C++, och mycket långsammare eftersom det körs i en runtime.

Det possitiva jag ser med detta, är att Apple kanske insett att Carbon måste bli bättre, och att vissa stora program som t.ex. Pages gör sig bättre i C++.

För visst ser Pages ut som Cocoa? Ärligt?

Med andra ord, vi tänker samma. Carbon borde vara snabbare, men har historikt sett varigt FULT och SEGT pga bakåtkompabiliteten. Det kanske håller på att ändras.

Dessutom är Keynote Cocoa. Applikationerna känns onekligen ganska lika, och bode ha delad kod. Ett mycket attraktiv tanke vore ju om Cocoa och Carbon kommit så nära varandra att dom snart kommer att bli som en. För visst är det skumt att Keynote är Cocoa och Pages Carbon, trots att dom känns så lika?

Pages är en gammal relik från Next-tiden.

Hela Carbon är ju Apples svar på att tunga företag sa att de aldrig kommer att skriva om alla sina program i Cocoa. Det är helt uteslutet för låt säga Macromedia/Adobe/Microsoft att skriva rubbet i Cocoa. Gradvis har ju också Carbon och Coca närmat sig varandra, ett bra exempel på det är t.ex. hur moderna Carbon-program kan använda Tjänster (menyn alltså)

Bara för att program är gjorda i Carbon så behöer det inte betyda att det är bakåtkompatiblet. Idag är väl knappast något av de stora carbon-programmen bakåtkompatibla, så den delen av Carbon är ju idag mindre intressant. Det intressanta är väl som du säger möjligheten att t.ex. använda C++ och därmed få ett något enklare jobb för program som måste existera även om på Windows-sidan

  • Medlem
  • Göteborg
  • 2006-01-24 20:09

Bakåt..

Vad jag menar är att Carbon är skrivet för att fungera både på en icke-trådad platform som OS9, och en multitrådad som OSX. Detta var självfallet ganska problematiskt, och när vi dessutom betänker att hela Carbon innehåller wrappers som gör att UI:t anpassar sig efter om det körs på OS9 eller OSX, gör att man oavsett vilka delar av Carbon man väljer att använda, så är det i grund och botten programmerat för att vara cross-platform. Och jag har själv benchmarkat det.

Carbon är ganska långsamt. Tro mig.
Cocoa blir segt, mycket pga ObjC live bindings.
X11 är wrappers mot Cocoa, så det är också ganska segt.

Ingen av teknikerna har kunnat göra ett riktigt snappy UI, och det behövs. Jag hoppas verkligen Apple skriver ett OO framework, native, för OS X, för C++. Eller helt enkelt släpper in C++ i Cocoa världen. (ObjC++ är inget svar, det körs också under en runtime med garbage collection etc, vilket drar ner prestandan)

Du har säkert rätt. Jag är personligen bara lite less på att se hur vanliga användare fått för sig att Carbon automatiskt är "bättre". Det är ju inte utvecklingsmiljön som är det centrala för en användare, utan att det funkar bra.

För dig som utvecklar är det väl egentligen heller inte vad saker kallas som är det viktiga, utan att du på ett enkelt sätt kan göra vad du vill - på det sätt du vill, och det kanske är det som var poängen med ditt inlägg - att pages trots att det är carbon känns som om det vore cocoa

1
Bevaka tråden