Kommer program för PPC?

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1

Hej!

Jag är på väg att köpa mig en mac mini, men jag är lite bekymrad över om hur länge den kommer att hålla på grund av Intel bytet.
Så min fråga är: Tror in att program som görs för mac idag kommer komma med uppgraderingar för både PPC-macar och Intel-macar om några år? Tex. nya program från Adobe, Microsoft och mac.

  • Medlem
  • Alingsås
  • 2005-06-13 22:47

Hej!

Det finns många trådar som handlar om detta här på forumet (testa sökfunktionen) och summan av dessa är att det kommer dröja flera år (säker 3-4 minst) innan program kommer exklusivt för Intel. Sedan finns ju teknologi för att översätta program mellan plattformarna så detta kommer nog inte bli nåt problem för dig.

  • Medlem
  • Örebro
  • 2005-06-17 00:33

Som sagt, tanken är väl att om man skriver med xcode skall det inte vara några problem att växla, speciellt när de nu redan vet om att båda finns.
Och med tanke på att det finns miljontals ppcmacar att sälja mjukvara till så tror jag svaret är definitivt ja.

  • Medlem
  • 2005-06-17 08:57

Så länge samma kodbas kan kompileras till både x86 och PPC ska det inte vara några problem, det innebär minimalt med extra arbete för utvecklaren. Problemet blir de applikationer som är optimerade "för hand" mot respektive plattform; när det gäller programvaror som har sitt ursprung i PPC lär dessa hänga kvar ett tag, även om de kanske inte blir lika hårt optimerade - dock kan det dyka upp en del nya program (exempelvis spel) som tidigare varit optimerade för x86 och Windows, där lär inte en konvertering till PPC-optimerad kod vara aktuellt då det skulle kräva alldeles för mycket jobb.

  • Medlem
  • Stockholm
  • 2005-06-17 10:10
Ursprungligen av SirN:

Så länge samma kodbas kan kompileras till både x86 och PPC ska det inte vara några problem, det innebär minimalt med extra arbete för utvecklaren.

Jag är själv programvaruutvecklare med erfarenhet av att porta program mellan olika arkitekturer. Det du säger är rätt, men endast i teorin.

I praktiken är finns det alltid buggar i programmen. Och buggarna kan vara så beskaffade att de bara syns på den ena plattformen, medans de inte har någon effekt på den andra. En skillnad är att x86 är little-endian och PPC är big-endian. Ett program som (felaktigt, detta är en bug) råkar anta att den minst signifikanta byten i ett ord ligger först i minnet kommer att fungera bra på x86 och krasha på PPC. Jag talar inte om en medveten "optimering" av programmet utan ett vanligt hederligt programmerarmisstag. Andra saker som kan skilja är hur variabler på stacken allokeras med olika kompilatorer (x86 vs PPC) och därför kan programmet verka fungera på ena plattformen och krasha på den andra.

Det enda sättet att faktiskt få programmen att fungera bra på båda plattformarna är att testa på båda. Helst kontinuerligt under utvecklingen. Det räcker inte att bara trycka på en knapp i XCode då man utvecklat klart på sin x86-Mac och trycka ut en PPC-kompilering.

Det här vet nog alla utvecklare om, men jag är rädd att utvecklare i framtiden kommer att slarva med att testa på båda plattformarna. Det kräver mera tid och extra hårdvara, något som kostar om man är liten och har tighta release-planer. Då kan kvaliteten på den ena plattformen bli lidande. Hoppas att jag har fel!

Ursprungligen av pesc:

Jag är själv programvaruutvecklare med erfarenhet av att porta program mellan olika arkitekturer. Det du säger är rätt, men endast i teorin.

I praktiken är finns det alltid buggar i programmen. Och buggarna kan vara så beskaffade att de bara syns på den ena plattformen, medans de inte har någon effekt på den andra. En skillnad är att x86 är little-endian och PPC är big-endian. Ett program som (felaktigt, detta är en bug) råkar anta att den minst signifikanta byten i ett ord ligger först i minnet kommer att fungera bra på x86 och krasha på PPC. Jag talar inte om en medveten "optimering" av programmet utan ett vanligt hederligt programmerarmisstag. Andra saker som kan skilja är hur variabler på stacken allokeras med olika kompilatorer (x86 vs PPC) och därför kan programmet verka fungera på ena plattformen och krasha på den andra.

Det enda sättet att faktiskt få programmen att fungera bra på båda plattformarna är att testa på båda. Helst kontinuerligt under utvecklingen. Det räcker inte att bara trycka på en knapp i XCode då man utvecklat klart på sin x86-Mac och trycka ut en PPC-kompilering.

Det här vet nog alla utvecklare om, men jag är rädd att utvecklare i framtiden kommer att slarva med att testa på båda plattformarna. Det kräver mera tid och extra hårdvara, något som kostar om man är liten och har tighta release-planer. Då kan kvaliteten på den ena plattformen bli lidande. Hoppas att jag har fel!

Går det att bygga in kontroller som kontrollerar i kompilator/parser t.ex. att pekningar inte orsakar problem när man kompilerar både för PPC och Intel?

Jag vet att inte alla fel upptäcks, men vissa borde man kunna upptäcka vid kompilering/parsing. Det skulle minimera antalet "onödiga" buggar. Men nogranna tester måste ialla fall göras.

  • Medlem
  • Stockholm
  • 2005-06-17 14:13
Ursprungligen av The Real Viking:

Går det att bygga in kontroller som kontrollerar i kompilator/parser t.ex. att pekningar inte orsakar problem när man kompilerar både för PPC och Intel?

Det kan vara svårt i ett språk byggt på C.

Precis det här har man rättat till i språk som Java och C#. Det kostar lite prestanda, men det kan det vara värt för ett stabilare program.

Ursprungligen av pesc:

Det kan vara svårt i ett språk byggt på C.

Precis det här har man rättat till i språk som Java och C#. Det kostar lite prestanda, men det kan det vara värt för ett stabilare program.

Jag vet att i Java och C# har man tagit bort pekare så man måste använda andra metoder istället. I Cocoa finns ju pekare kvar både på gott och ont.

Det jag nu tänkte var om kompilatorn först känner av processor typ man har valt och sedan skapar kompilatorn felrapporter om man t.ex. börjar leta efter information på fel ställe (som t.ex. har med little endian och big endian att göra). Har man valt båda processorer och kompilatorn godkänner den ena kompileringen inte den andra, då skulle hela processen avbrytas, så programmeraren inte av misstag kan skapa en Fat fil som kraschar på den ena plattformen. Då tvingas programmeraren att rätta till buggen.

  • Oregistrerad
  • 2005-06-17 11:03

Tänkte också köpa en Mac Mini snart. Leopard borde ju släppas till PPC. Det känns bara som att det är naturligt att det nya stannar kvar i det gamla ett litet tag. Sen kanske småprogram som kommer från andra tillverkare än Apple välja bort PPC. Vad tror ni?

  • Medlem
  • Skövde
  • 2005-06-19 09:33

Köp du din Mac Mini. En mycket trevlig dator för en billig peng! Programmen som redan nu finns slutar ju inte fungera när Intel-Macarna kommer, programmen blir heller inte sämre. Samt att programmen som utvecklas nu kommer att fungera på PPC en lång tid framöver. Sluta oroa dig och införskaffa dig en Mac Mini och njut...

1
Bevaka tråden