Är det 18 år sedan Cocoa visades upp?

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

Är det inte idag det är 18 år sedan som NeXTStep och dåvarande Cocoa visades upp för första gången? Jag har fått för mig att det ska ha varit den 12 oktober.

  • Medlem
  • Umeå
  • 2006-10-12 22:16

Vet inte, men det är inte helt otroligt med tanke på Nexts ålder. Men gamalt betyder inte nödvändigt vis dåligt om ramverket underhålls och uppdateras under åren.

  • Medlem
  • Mölndal
  • 2006-10-13 10:47

Fast nog känns det ändå att Cocoa har ett gäng år på nacken. Nivån känns väldigt mycket lågnivåprogrammering jämfört med många andra ramverk.

  • Oregistrerad
  • 2006-10-14 19:18
Ursprungligen av memark:

Fast nog känns det ändå att Cocoa har ett gäng år på nacken. Nivån känns väldigt mycket lågnivåprogrammering jämfört med många andra ramverk.

Jag vet inte riktigt ifall jag håller med där. Cocoa är på många sätt bra mycket modernare än många andra språk och ramverk.

Är det något särskilt du tänker på som är väldigt mycket lågnivåprogrammering, eller något särskilt ramverk som skulle vara mycket bättre?

  • Medlem
  • Stockholm
  • 2006-10-15 18:54
Ursprungligen av memark:

Fast nog känns det ändå att Cocoa har ett gäng år på nacken. Nivån känns väldigt mycket lågnivåprogrammering jämfört med många andra ramverk.

Satte nästan kaffet i halsen! Vilka ramverk tänker du på då?

/Kalle

  • Medlem
  • Örebro
  • 2006-10-15 04:06

Jag har aldrig kodat något av det, men hur står det sig relativt exempelvis QT?

  • Medlem
  • Mölndal
  • 2006-10-15 19:08

Det jag själv har stor erfarenhet av är främst .NET 2.0. Det är som sagt mest en känsla jag har, ska se om jag kan komma fram med några exempel.

Edit: Några exempel är t ex hanteringen av strängar och Font Manager. Jag skrev en liten plugin till Adium som skulle göra om *ord* till fetstil. Det blev ett himla meckande med NSRange:ar hit och dit.

Sen har vi det här med garbage collection... men det är väl en egen diskussion gissar jag. Det känns iaf lite 90-tal att det fortfarande saknas (även om det är på gång).

Till viss del är jag säkert färgad av att jag tycker såväl Objective-C som XCode saknar en hel del flexibilitet jämfört med C# (t ex vanliga properties) och Visual Studio (suverän intellisense).

Senast redigerat 2006-10-15 19:34
  • Medlem
  • Mölndal
  • 2006-10-18 17:44

För att sätta kaffe och annat i halsen blev ni väldigt tysta.

  • Medlem
  • Stockholm
  • 2006-10-18 22:57
Citat:

För att sätta kaffe och annat i halsen blev ni väldigt tysta.

Microsoft är mycket duktiga på utvecklingsmiljöer! .Net 2.0 och Visual Studio 2005 är fullkomligt lysande. Intellisense, refaktorisering, syntaktiskt socker i stil med generics, properties och /// i C# gör att produktiviteten blir hög.

Med detta sagt, så är däremot ramverket i Cocoa fullkomligt genialiskt, på ett betydligt djupare plan än i .Nets ramverk. Objective-C och Cocoa är som Smalltalk, fast det funkar i verkligheten!

Det sätt som olika design patterns utnyttjats till (i det närmaste) fulländning, gör att det är en väldigt bra miljö, trots bristen på garbage collection, halvknackig intellisense, frånvaron av refactoring-stöd, att det är knepigt med unittestning, en något yxig syntax (dvs det som tillhör arvet från C -- syntaxen i Smalltalk-arvet är briljant) mm.

Mer konkret då? CoreData! KVC och KVO! Bindings! Löst kopplade klasser med NSNotification! Delegate-mönstret! Fyll i själv: ___________________________

Å sen kommer ju Objective-C 2.0. Med garbage collection och syntaktiskt socker som properties!

/Dan

  • Medlem
  • Stockholm
  • 2006-10-18 23:03

Interface Builder förstås! Den hjälp man får att "aligna" olika objekt.

  • Medlem
  • Mölndal
  • 2006-10-19 08:22

Tack för ditt nyanserade svar, Uggla!

Men det var ändå inte vilket ramverk som var bäst jag menade, utan att Cocoa (trots sin genialitet, den kan jag köpa), känns vara på en lägre nivå => mer kod krävs för att utföra en viss uppgift.

Det här med löst kopplade klasser är ju lite av en filosofifråga också. Vissa tycker om lösa kopplingar, medan andra gör allt de kan för att slippa runtime-fel och typar alla variabler och anrop stenhårt.

  • Medlem
  • Stockholm
  • 2006-10-19 09:29

Men, i moderna utvecklingsmiljöer går det inte att koppla loss ramverket från diskussionen! Utan ramverket Cocoa (eller .Net) får man verkligen skriva mer kod själv!

Jag håller definitivt med om att Cocoa känns äldre och "yxigare"/"råare" när man skriver kod. Jag håller med om att det känns som att man måste skriva mer själv (intellisensen och auto-completion i VS 2005 är nästintill perfekt!). I specifika fall som stränghantering må andra miljöer vara vassare. I andra specifika fall, som att hantera modelldelen i MVC, kan Cocoa (dvs Core Data) göra att man slipper skriva flera tusen rader kod!

Med "löst kopplade" menar jag just det, och inte "löst typade". Stark kontra lös typning är en filosofifråga, det håller jag med om. Lös typning är en del i grunddesignen i Cocoa, utan det är t.ex. Interface Builder omöjligt. Hård typning i .Net å andra sidan gör t.ex. att man kan köra en typad Dictionary<Person, Department> och hur coolt är inte det!

Lös koppling däremot -- att klasser inte är starkt beroende -- är däremot en fråga om objektivt god objektorienterad design!

/Dan

1
Bevaka tråden