Lära sig programmera till mac

Tråden skapades och har fått 12 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Vellinge
  • 2005-12-09 18:32

Hej

När skolan började efter sommarlovet började jag läsa programmering i skolan, tyvärr valde min lärare att språket skulle vara Visual Basic, konstigt nog hade han inget överseende om att alla inte körde windows - jag och en till). Jag skulle gärna vilja lära mig att programmera till mac dock inget avancerat.

Nu till mina frågor:

1. Vad behöver jag lära mig för att kunna göra ett GUI - bara något enkelt, knapp, textruta m.m
2. Var hittar jag detta?
3. Vad är cocoa?

Om ni inte läser objektorientering så är det nog bättre att använda Carbon än Cocoa. Carbon är en OSX-anpassning av Mac Toolbox, det API som Macen programmerats i alla år, och det fungerar från alla språk. Cocoa bör användas från Objective-C (vilket är ett specialspråk som enbart Apple använder - en återvändsgränd om nån frågar mig).

Kanske en C-tillämpning med Xcode? Det är inte jätteenkelt men inte så fruktansvärt svårt heller. Xcode laddar du ner från Apple. Och sedan letar du upp onlineboken "Macintosh C" och så enklast möjliga exempelprogram.

En annan variant, som kan vara närmare det dina kompisar gör, är att hitta den där Basicen som är gjord för att likna Visual Basic. Tyvärr minns jag inte vad den heter.

  • Medlem
  • Linköping
  • 2005-12-09 22:46
Ursprungligen av Ingemar Ragnemalm:

En annan variant, som kan vara närmare det dina kompisar gör, är att hitta den där Basicen som är gjord för att likna Visual Basic. Tyvärr minns jag inte vad den heter.

Du menar realbasic. För mina små och töntiga program är det jättebra. Enkelt att lära sig och liknar som sagt visual basic väldigt mycket. Dessutom kan man skapa program för windows också genom att bara kryssa i en extra ruta.

Tyvärr kostar det lite, men det kanske det är värt? Demo finns...

Jajamen, RealBasic var det ja! Bra val eftersom det liknar, för det är inte speciellt bra att försöka lära sig ett helt annat språk än det som undervisningen handlar om. Det är bra att kunna flera språk, men ett första är nog bäst att lära sig innan man spretar ut sig på flera.

  • Oregistrerad
  • 2005-12-14 11:20

Varför inte applescript?
Finns också med i xcode med många exempel och lätt att bygga gränssnitt med interface builder.

  • Medlem
  • 2005-12-14 13:07

Varför inte Java? Relativt lätt att börja med och framför allt plattformsoberoende! Nu när ni ska samsas mac- och winanvändare. Dessutom är det ett utbrett språk. Mycket bra litteratur finns och många exempel på internet.

  • Medlem
  • Gävle
  • 2005-12-14 13:51

Det finns även bindings till Cocoa från Ruby och Python (om man inte gillar ObjC, vilket är helt förståerligt):

http://rubycocoa.sourceforge.net/
http://developer.apple.com/cocoa/pyobjc.html

Ruby och Python är väldigt mycket trevligare språk än ObjC. Särskilt Ruby, om du frågar mig.

Ursprungligen av tjogin:

Det finns även bindings till Cocoa från Ruby och Python (om man inte gillar ObjC, vilket är helt förståerligt):

http://rubycocoa.sourceforge.net/
http://developer.apple.com/cocoa/pyobjc.html

Ruby och Python är väldigt mycket trevligare språk än ObjC. Särskilt Ruby, om du frågar mig.

Jag är också väldigt förtjust i Python (har inte kommit mig för att sätta mig med Ruby ännu), och kan verkligen rekommendera det till nya programmerare. Vill man ha möjlighet att skriva GUI-program kan man använda sig av Qt-bindningarna; inte riktigt 100% Mac-känsla men däremot blir det ju portabelt mellan Windows, Linux och Mac.

Däremot förstår jag inte varför folk rackar ner på Obj-C. IMHO är det ett trevligt språk, trevligare än C++, men det spelar inte så stor roll. Om man vill lära sig programmera Cocoa är ju 95% av jobbet faktiskt att lära sig förstå ramverket, och kanske 5% att lära sig Obj-C. För erfarna programmerare är ju problemet än mindre, eftersom man oftast då har en stor låda med språk man lärt sig och därför ännu lättare att lära sig ett till.

/Erik

  • Medlem
  • Gävle
  • 2005-12-15 10:48
Ursprungligen av Erik Aderstedt:

Däremot förstår jag inte varför folk rackar ner på Obj-C. IMHO är det ett trevligt språk, trevligare än C++, men det spelar inte så stor roll.

Och pest är trevligare än kolera. Jag ogillar hur Obj-C "känns", jag mår dåligt när jag läser Obj-C (och för den delen C++ också, men inte lika illa).

Erfarna programmerare har sällan problem med att lära sig nya språk, det brukar snarare handla om att stå ut med dem. Ju "trevligare" språk man vänjer sig vid desto mindre tolerans får man för "otrevliga" språk (som Ruby-programmerare har jag numera noll tolerans ).

  • Medlem
  • Stockholm
  • 2005-12-15 12:55
Ursprungligen av tjogin:

Och pest är trevligare än kolera. Jag ogillar hur Obj-C "känns", jag mår dåligt när jag läser Obj-C (och för den delen C++ också, men inte lika illa).

Erfarna programmerare har sällan problem med att lära sig nya språk, det brukar snarare handla om att stå ut med dem. Ju "trevligare" språk man vänjer sig vid desto mindre tolerans får man för "otrevliga" språk (som Ruby-programmerare har jag numera noll tolerans ).

Just nu låter det som du fått en jättestor hammare och du har djäkligt många spikar att slå i. Varför är något fel med Ruby? Därför att du är fortfarande helt beroende av nyckelbibliotek som är skrivna i C.

Ta det inte fel, jag tycker också Ruby är trevligt, men varje språk löser på något sätt sitt problem. Det finns orsaker varför man inte skriver operativsystem i Ruby. Objective-C är därför enligt min mening den perfekta kompromissen för ett lager som ligger mellan operativsystemet (skrivet i C) och utvecklaren. Bindings fungerar i stort sett aldrig lika bra som ett native interfaces (gissa varför Apple har droppat sina Java-bindings?).

  • Medlem
  • Gävle
  • 2005-12-16 16:17
Ursprungligen av kalleh:

Just nu låter det som du fått en jättestor hammare och du har djäkligt många spikar att slå i. Varför är något fel med Ruby? Därför att du är fortfarande helt beroende av nyckelbibliotek som är skrivna i C.

Jag ser inte bibliotek skrivna i C som ett "fel", snarare som en styrka.

Ursprungligen av kalleh:

Ta det inte fel, jag tycker också Ruby är trevligt, men varje språk löser på något sätt sitt problem. Det finns orsaker varför man inte skriver operativsystem i Ruby. Objective-C är därför enligt min mening den perfekta kompromissen för ett lager som ligger mellan operativsystemet (skrivet i C) och utvecklaren. Bindings fungerar i stort sett aldrig lika bra som ett native interfaces (gissa varför Apple har droppat sina Java-bindings?).

Visst är det så, men för mig personligen så spelar det ingen roll eftersom jag inte skriver operativsystem, Ruby fungerar klockrent för mina behov. Hur väl Ruby-Cocoa bindings:arna fungerar vet jag inte av personlig erfarenhet, men jag har bara hört gott om dem.

Ursprungligen av Erik Aderstedt:

Min poäng var väl bara att om man ska lära sig programmera till mac idag så är det ju ramverket som tar tid att lära sig, inte språket.

Och min poäng var att inlärningstiden så gott som aldrig är problemet när det gäller att ta till sig nya språk/miljöer för en duktig programmerare.

Ursprungligen av tjogin:

Och pest är trevligare än kolera. Jag ogillar hur Obj-C "känns", jag mår dåligt när jag läser Obj-C (och för den delen C++ också, men inte lika illa).

Tja, jag antar att det är jag som är svag för språk där man gör det mesta på stacken (som exempelvis Postscript, det är ett roligt språk, om än med begränsad användbarhet). I Obj-C kan man ju köra med lite olika stilar; antingen ganska C-likt, eller långa kedjor av meddelanden mellan olika typer av objekt.

Min poäng var väl bara att om man ska lära sig programmera till mac idag så är det ju ramverket som tar tid att lära sig, inte språket.

/Erik

  • Medlem
  • Simrishamn
  • 2005-12-25 21:08

Ni som föreslår Carbon framför Cocoa (i generell mac-programmering), får en känsla av att ni inte riktigt förstår vad ni pratar om ...
Har ni t.ex. kollat in Cocoa Bindings och Core Data...?
Dessutom är Objective-C ett väldigt praktiskt och snyggt språk. Svårt är det egentligen inte heller.

Ang. bryggor mellan Cocoa och t.ex. Python eller Ruby, har bara kollat in PyObjC lite, men det verkar väldigt simpelt.
Minns jag rätt så är följande Objective-C-metod:

NSSound *mySound = [[NSSound alloc] init];
[mySound beep];

Ekvivalent med denna Pythonkod:

mySound = NSSound.alloc().init()
mySound.beep()

EDIT: Ett exempel till med selektorer:

NSString *myString = [NSString initWithString:anotherString];

Motsvarar:

myString = NSString.initWithString_(anotherString)

Senast redigerat 2005-12-25 21:22
1
Bevaka tråden