Programmering

Tråden skapades och har fått 14 svar. Det senaste inlägget skrevs .
1
  • Oregistrerad
  • 2001-05-18 21:50

Är där någon som kan obj-c? Jag funderar på att skaffa mac och börja programmera till macOS-x, just nu sitter jag i beos istället. Om någon vet så kan ni skriva till mig snälla.

Tjena,

Först av allt, jag är ingen obj c guru, jag skulle nog inte ens vilja säga att jag kan obj c men däremot har jag kollat på det, lekt med det och klämt lite på det.

Om du har någon tidigare erfarenhet av objektorienterad programmering i tex. java eller c++ torde obj c inte vara något problem att lära sig. Det är ganska lustig syntax och språkets utformning skiljer sig från både java och c++ men det finns också många likheter.

I likhet med c++ så är obj c en vidareutveckling av c. All c kod går att kompilera i en obj c kompilator och man kan således använda alla vanliga c bibliotek. I likhet med java så har alla klasser en gemensam basklass kallad object (eller liknande). Dessutom är obj c något förenklat (som java) tex. har man tagit bort metodöverlagring vilket kan verka ganska konstigt. Man kan alltså inte göra två metoder med samma namn men olika signatur. Till skillnad från båda språken finns det något som heter klass-objekt som är objekt av klassen som ansvarar för konstruktion av objekt och som innehåller de metoder som i java skulle vara statiska metoder.

En annan stor skillnad mellan obj c och de andra språken är att obj c är mycket dynamiskt. Det som i andra språk avgörs vid kompilering avgörs under exekvering i obj c. Fördelen är att man slipper typecastning och kan göra mer dynamiska program (fråga mig inte hur men nackdelen är att kompilatorn upptäcker inte alla fel.

Syntaxen är väldigt lustig. Man säger inte att man kallar på metoder i obj c, man skickar meddelanden. Vilket meddelande som helst kan skickas till vilket objekt som helst vilket gör språket otroligt dynamiskt (se ovan) om ett objekt inte kan ta emot meddelandet ignoreras det helt enkelt.

Exempel:
java:
mittObjekt.minMetod(minParameter);

obj c:
[mittObjekt mittMeddelande:minParameter];

Om du vill kalla på en metod (skicka ett meddelande till) ett objekt som returneras av en metod blir det således:

[[mittObjekt mittMeddelande:minParameter] mittAndraMeddelande];

Du kanske kan föreställa dig att [ och ] är ganska välanvända tecken i obj c

Obj c används med fördel tillsammans med Cocoa APIn som är ett stort klassbibliotek med klasser för GUI, filhantering och en massa annat skoj. Ganska lik java APIn men utan java APIns suveräna dokumentation.

Du använder enklast Apples egna verktyg som dels är gratis och dels följer med MacOS X när du ska göra saker i obj c. ProjectBuilder för programmering, InterfaceBuilder för GUI konstruktion.

Självklart finns det nackdelar med obj c som med alla andra språk. Det är tex. ganska långsamt eftersom mycket som i andra språk kompileras avgörs vid körningen i obj c. En annan nackdel som är väldigt stor är utbredningen av objective c som inte direkt är överväldigande.

Bra hemsidor:

Filmer från WWDC 2000 (rekommenderas starkt om du har bredband)
http://connect.apple.com/WWDC2000/main.html

Beskrivning av språket Objective C
http://www.toodarkpark.org/computers/objc/coreobjc.html

Allehanda tips om programmering för MacOS X
http://www.stepwise.com/

Sök omnigroups obj c mailinglista (bra lista att vara med i)
http://www.omnigroup.com/search-bin/macosx-dev?Search=

ProjectBuilder och andra utvecklingsverktyg
http://developer.apple.com/tools/projectbuilder/ http://developer.apple.com/techpubs/macosx/DeveloperTools/devtools.html

Cocoa för Objectiva C (finns för java också) http://developer.apple.com/techpubs/macosx/Cocoa/Reference/Foundation/Obj C_classic/FoundationTOC.html http://developer.apple.com/techpubs/macosx/Cocoa/Reference/ApplicationKit /ObjC_classic/AppKitTOC.html

Apples Cocoa sida
http://developer.apple.com/techpubs/macosx/Cocoa/CocoaTopics.html

Lycka till med programmeringen!

Hälsningar,
Gabriel Falkenberg

[ 18 Maj 2001: Meddelandet ändrat av: Gabriel Falkenberg ]

  • Oregistrerad
  • 2001-05-19 00:15

Takkar takkar mycket rikig information sparade en kopia på sidan direkt, så jag har kvar det tills imorgon. En fråga, du vet inte om där finns någon 100% svensk bok om obj-c?
Skulle vara kanon med det. :rolleyes:

Hej igen,

Nej, tyvärr så vet jag inte om det finns någon sådan bok på svenska men det tror jag inte ska behövas heller, det finns en hel del information att läsa på internet.

Har du någon tidigare erfarenhet av att programmera? Om du inte har det kan det kanske vara värt att börja med c, c++ eller java och sedan gå över till obj c. Jag tror nästan det är enklare för det finns mycket mer grundläggande information, tutorials och dylikt kring dessa språk.

Jag började med c vilket är (enligt mig) ett bra språk att börja med eftersom det är icke objektorienterat och inte innehåller så många olika komplicerade koncept. Sedan började jag med java sedan c++ och däremellan kollade jag lite på obj c.

Men om du vill börja direkt med obj c så kommer här ytterligare länkar till bra sidor:

En beskrivning av Objective C gjord av Apple (läs den) http://developer.apple.com/techpubs/macosx/Cocoa/ObjectiveC/ObjC.pdf

Objective C Newsgroup
news:comp.lang.objective-c
eller om du föredrar att se den som en hemsida
http://groups.google.com/groups?hl=sv&lr=&safe=off&group=comp.lang.objective-c

Objective C FAQ (läs den innan du frågar något på newsgroupen) http://users.pandora.be/stes/faq.html

Länksamlingar
http://www.cetus-links.org/oo_objective_c.html
http://www.swarm.org/resources-objc.html
http://dmoz.org/Computers/Programming/Languages/Objective-C/

/Gabbe

[ 19 Maj 2001: Meddelandet ändrat av: Gabriel Falkenberg ]

  • Oregistrerad
  • 2001-05-19 14:05

Jodå jag kan både c++ och java, som jag gillar mycket, just nu programmerar jag i BeOS. Men när jag har råd(vet inte hur lång tid det tar) så funderar jag på att byta upp till Mac OS X och programmera där med.

Om du har tillgång till BeOS så kan du kolla in easyIRC på http://easyirc.highsoftware.org/, detta är mitt första nätverks program för BeOS dock lite brister

Finns där något sätt att programmera och kompilera för Mac OS X utan att ha det än?

Crosskompile eller vad det heter. Skulle varit perfekt.

Det är nog mest syntaxen för obj-c som jag tycker verkar helt skumm. Men så kan det vara med alla språk innan man satt sig in i det.

Jag tror att Apples verktyg använder sig av gcc när de kompilerar objective c så om du kan fixa det till BeOS (ingen aning om det finns, står inte under supported platforms på gcc.gnu.org) så borde det inte vara några problem. Däremot att fixa ett GUI är nog lite jobbigare för att inte säga näst intill omöjligt speciellt som du inte kan provköra det du kompilerat.

Alternativt så kan du ju skaffa ett konto på någons MacOS X burk eller någon annan burk som har gcc med objecitve c stöd och kompilera och köra via ssh eller telnet.

/Gabbe

  • Oregistrerad
  • 2001-05-19 16:40

Jo GCC finns, är med som standard, vid gratis version får man dock ladda ner det seperat, men undra om beos versionen stödjer obj-c, menar är inte gcc gjort för c++ och c, iof krosskompilera till dreamcast med c/c++ kod går perfekt i både windows och linux så vem vet. Precis som du sa så kan man kompilera över ssh japp, hmm men då riskerar man att få sin källkod snodd, även om jag gillar opensource rörelsen så drar jag för att ge ut min kod till andra.
Någon som vill översätta ett gammalt program jag har gjort i c++ till macosx? Skulle varit kul att ha det där, väldigt enkelt program. Mitt första officiella program som folk kunde ladda ner, ett äkta terminal program som jag sen byggde api till. Maila mig den som vill så skickar jag koden. Bara jag får tillbaka exe filen och ev. ändrad kod. Lägger med personen på en credit lista för den som vill också.....

När det gäller att kolla hur gui blir kan man juh alltid vnc´a till någons burk och testa

Ha det gött

  • Oregistrerad
  • 2001-05-19 19:47

Tja ULF, mycket möjligt men när man sitter på bredband så vill man få svar i realtid, man börjar bli kräsen...

Synd inte alla ville svara lika snabbt som man skriver men sånt är livet. :rolleyes:

Alltså du kan ju alltid pröva om din kompilator stödjer obj c genom att försöka kompilera lite obj c. Och att använda vnc mot MacOS X går väl inte ännu, det finns väl inga vnc-servers till MacOS X? Till X-Windows ja, till Aqua nej, eller?

Tror du att någon skulle vilja sno din absolut första obj c kod? Man börjar ju inte direkt att göra nästa killerapp när man lär sig ett nytt språk, eller det skulle inte jag göra Snarare HelloWorld och lite sånt kul, inte kod som någon skulle vilja sno (tror jag).

Vad är det för c++ program och vad menar du med att du gjorde en api till det? Menar du att du gjorde ett terminalprogram som du senare lade ett gui över eller?

/Gabbe

  • Oregistrerad
  • 2001-05-20 00:59

Japp jag gjorde ett c++ program för terminalen i windows och i beos, sen så skapade jag ett gui i windows och ett annat i BeOS, alltså det jag menade var ett program som skapar enklare websidor, inte för jag tror någon skulle sno koden men man vet aldrig. Hmm jo jag såg screenshoots på någon linux burk som vnc´ade mot en macosx bord som körde aqua. http://www.osxvnc.com där finner du mer info :), jag sitter på 10mbit/s så jag hade nog kunnat vnc´a i rätt bra hastighet mot en aqua burk.

Tjena, hade ingen aning om att det fanns en vnc-server till MacOS X, schysst!

Hur som helst så är det kanske inte ultimat att skriva om hela ditt program i objective c för att få ett grafiskt gränssnitt på det. Det enklaste skulle kanske, beroende lite på hur programmet fungerar, vara att göra det grafiska i REALbasic

Det ska gå att kommunicera med kommandoraden från REALbasic vilket jag dock inte provat. Ett annat alternativ är att använda ett c++ framework för gränssnitt så kan du behålla koden från BeOS versionen. Det finns ett antal olika gratis frameworks som fungerar med MacOS X. Lättast är nog att kolla på www.versiontracker.com under development tools

/Gabbe

  • Oregistrerad
  • 2001-05-20 03:36

Hmm får kolla det iså fall imorgon nu ska det nannas iaf ha det.

  • Medlem
  • 2001-05-20 18:43

gnustep projektets sida finns det lite info om obj-c...
du kan ju skriva obj-c i linux, det borde ju gå att köra på den burken som du har beos på.

  • Oregistrerad
  • 2001-05-20 21:01

Takkar för tipset arvid, jag sparar all information så jag inte missar något
Så om någon annan vill tipsa så gör gärna det

Bra sida från företaget Oops som sysslar med programmering under MacOSX : http://oops.se/cgi-bin/wiki

1
Bevaka tråden