iOS und Garbage Collection - warum?

  • Lateiner schrieb:

    Ich finde es vielmehr gut, wenn sehr gute Entwicklungswerkzeuge immer einfacher zu bedienen werden. Dann ist es nämlich auch mittelmäßig talentierten Menschen wir mir möglich, ihre Probleme selbst zeitnah und vor allem einigermaßen performant zu lösen

    Bessere Entwicklungswerkzeuge sind immer gut. Allerdings habe ich bei so manchen Neueinsteigern den Eindruck, dass sie das „Erlernen der Bedienung von Xcode“ (das ist oft das Einzige was man von YouTube Tutorials lernen kann) mit „Programmieren lernen“ verwechseln. Das sind nämlich zwei verschiedene Paar Schuhe. Zum Programmieren lernen braucht man nicht zwangsläufig ein Xcode. Ich finde sogar, dass man am Anfang ruhig mal nur mit Texteditor und Terminal die ersten Schritte wagt, damit man auch versteht, das eine IDE wie Xcode nur ein Werkzeug ist.

    Michael
  • Amin Negm-Awad schrieb:

    Lucas de Vil schrieb:

    Amin Negm-Awad schrieb:

    Aber mit ARC ist die GC ohnehin so mausetot wie eine ägyptische Mumie.

    Ach, ARC ist der aktuelle GC-Abklatsch, der sich die nächsten drei Jahre nicht durchsetzen wird?

    ARC ist wie der Name sagt RC.

    Wäre ARC RC, hieße ARC nicht ARC sondern RC.
    ARC ist Automatisiertes RC und damit vielleicht eine echte Teilmenge von RC, jedoch nicht RC.

    Wie dem auch sei:
    ARC is supported in Xcode 4.2 for Mac OS X v10.6 and v10.7 (64-bit applications) and for iOS 4 and iOS 5.

    Existiert auf beiden Systemen, das ist schön. Sollte das wirklich wie von dir behauptet funktionieren (so wie diverse Andere es von GC auch behaupteten) mag es tatsächlich eine gute Sache sein.
    Mal testen.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • lio schrieb:

    also ich halte ARC auch für überflüssig, es wird wohl aber genutzt werden, somit ist es aus Apples Sicht natürlich richtig, es eingeführt zu haben

    Ich halte manuellen Code für die Speicherverwaltung für überflüssig.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • chartus schrieb:

    warum fragst du? ich finde damit sich der entwickler gezwungen sieht wenigstens einmal gedanken zu machen welche und wieviel resourcen er grad verschleudert...

    ist ja schön das wir mittlerweile alle einen rechner in der hosentasche haben, der wohl 360 mondlandungen gleichzeitig koordinieren könnte... dummerweise lasten wir ihn aber meist nur damit aus, ein icon halbwegs flüssig übern bildschirm zu schieben...

    Und das ist bei ARC anders als bei MRC?
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Lucas de Vil schrieb:

    Amin Negm-Awad schrieb:

    Lucas de Vil schrieb:

    Amin Negm-Awad schrieb:

    Aber mit ARC ist die GC ohnehin so mausetot wie eine ägyptische Mumie.

    Ach, ARC ist der aktuelle GC-Abklatsch, der sich die nächsten drei Jahre nicht durchsetzen wird?

    ARC ist wie der Name sagt RC.

    Wäre ARC RC, hieße ARC nicht ARC sondern RC.
    ARC ist Automatisiertes RC und damit vielleicht eine echte Teilmenge von RC, jedoch nicht RC.

    Ein Perswonenkraftwagen ist ein Kraftwagen.
    Ein Lastkraftwagen ist ein Kraftwagen.

    Manuelles RC ist RC.
    Automatisches RC ist RC.

    Das hat mit Teilmengen nichts zu tun, sondern mit Ober- und Unterbegriffen.

    Lucas de Vil schrieb:

    Wie dem auch sei:
    ARC is supported in Xcode 4.2 for Mac OS X v10.6 and v10.7 (64-bit applications) and for iOS 4 and iOS 5.

    Existiert auf beiden Systemen, das ist schön. Sollte das wirklich wie von dir behauptet funktionieren (so wie diverse Andere es von GC auch behaupteten) mag es tatsächlich eine gute Sache sein.
    Mal testen.

    "Nun habe ich einen ersten Blick auf iOS geworfen und stellte fest, dass hier die Garbage Collection fehlt."

    Und auf keinen Fall testen: Erst hier schreiben, wie schlecht das ist. Dann testen.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Lateiner schrieb:

    Auch doof, wenn man die Nutzer von 32-bit-Systemen ausschließt, nur weil mein ARC nutzen will... Also ist GC auf Mac OS noch nicht "deprecated" ;)

    Sag mal konkret, welches OS du ausschließen möchtest.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Lateiner schrieb:

    Auch doof, wenn man die Nutzer von 32-bit-Systemen ausschließt, nur weil mein ARC nutzen will... Also ist GC auf Mac OS noch nicht "deprecated" ;)

    Sag mal konkret, welches OS du ausschließen möchtest.

    Leider klappt ARC nur mit der 64-bittigen runtime, d.h. die 32Bit-SL Rechner (erste Intel Mac-Minis und MBs) gehen damit leider nicht. Habe letzte Woche ein neues Projekt begonnen, wofür ich eigentlich ARC benutzen wollte - leider muss ich 10.6 und besagte Rechner unterstützen, d.h. ARC ist keine Option.
  • Markus Müller schrieb:

    Amin Negm-Awad schrieb:

    Lateiner schrieb:

    Auch doof, wenn man die Nutzer von 32-bit-Systemen ausschließt, nur weil mein ARC nutzen will... Also ist GC auf Mac OS noch nicht "deprecated" ;)

    Sag mal konkret, welches OS du ausschließen möchtest.

    Leider klappt ARC nur mit der 64-bittigen runtime, d.h. die 32Bit-SL Rechner (erste Intel Mac-Minis und MBs) gehen damit leider nicht. Habe letzte Woche ein neues Projekt begonnen, wofür ich eigentlich ARC benutzen wollte - leider muss ich 10.6 und besagte Rechner unterstützen, d.h. ARC ist keine Option.

    Soweit ich weiß, geht es auf Yonah nicht. Deren Produktion ist vor 4 Jahren eingestellt worden. Ich weiß jetzt nicht, wann Apple die das letzte Mal vertickt hat, aber viel länger dürfte es kaum gedauert haben.

    Soll jetzt der Nachteil von ARC sein, dass man es auf etqwa 4 Jahren alten Rechnern nicht mehr einsetzen kann? Und das als Rat an jemanden, der gerade mit der iOS-Programmierung anfängt und von GC wegkommen will? Dem rät man deshalb jetzt MRC?

    Ebenso gut kannst du von @property abraten, @synthesize, automatischen Ivars usw. usf. Alles tolle Sachen, die für Systeme irgendwann aus der <Vergangenheit nicht, nicht vollständig oder nicht richtig funktionieren.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Markus Müller schrieb:

    Amin Negm-Awad schrieb:

    Lateiner schrieb:

    Auch doof, wenn man die Nutzer von 32-bit-Systemen ausschließt, nur weil mein ARC nutzen will... Also ist GC auf Mac OS noch nicht "deprecated" ;)

    Sag mal konkret, welches OS du ausschließen möchtest.

    Leider klappt ARC nur mit der 64-bittigen runtime, d.h. die 32Bit-SL Rechner (erste Intel Mac-Minis und MBs) gehen damit leider nicht. Habe letzte Woche ein neues Projekt begonnen, wofür ich eigentlich ARC benutzen wollte - leider muss ich 10.6 und besagte Rechner unterstützen, d.h. ARC ist keine Option.

    Soweit ich weiß, geht es auf Yonah nicht. Deren Produktion ist vor 4 Jahren eingestellt worden. Ich weiß jetzt nicht, wann Apple die das letzte Mal vertickt hat, aber viel länger dürfte es kaum gedauert haben.

    Soll jetzt der Nachteil von ARC sein, dass man es auf etqwa 4 Jahren alten Rechnern nicht mehr einsetzen kann? Und das als Rat an jemanden, der gerade mit der iOS-Programmierung anfängt und von GC wegkommen will? Dem rät man deshalb jetzt MRC?

    Ebenso gut kannst du von @property abraten, @synthesize, automatischen Ivars usw. usf. Alles tolle Sachen, die für Systeme irgendwann aus der <Vergangenheit nicht, nicht vollständig oder nicht richtig funktionieren.

    Nein, ich rate nicht von ARC ab. Mein Post bezog sich auf Mac OS. Und SL ist immer noch da und es gibt eine Menge Leute, die noch 32bittige Rechner haben, die prima ihren Dienst tun. Nicht jeder Entwickler kann denen sagen "Go f*ck yourself". Die Marschrichtung seitens Apple ist klar und die Migration hin zu 64bit-only mit dem Zuckerbrot ARC ist eine gute Sache. Für Anfänger in der Cocoa-Programmierung ist die Sache klar: benutzt ARC!
  • Markus Müller schrieb:

    Amin Negm-Awad schrieb:

    Markus Müller schrieb:

    Amin Negm-Awad schrieb:

    Lateiner schrieb:

    Auch doof, wenn man die Nutzer von 32-bit-Systemen ausschließt, nur weil mein ARC nutzen will... Also ist GC auf Mac OS noch nicht "deprecated" ;)

    Sag mal konkret, welches OS du ausschließen möchtest.

    Leider klappt ARC nur mit der 64-bittigen runtime, d.h. die 32Bit-SL Rechner (erste Intel Mac-Minis und MBs) gehen damit leider nicht. Habe letzte Woche ein neues Projekt begonnen, wofür ich eigentlich ARC benutzen wollte - leider muss ich 10.6 und besagte Rechner unterstützen, d.h. ARC ist keine Option.

    Soweit ich weiß, geht es auf Yonah nicht. Deren Produktion ist vor 4 Jahren eingestellt worden. Ich weiß jetzt nicht, wann Apple die das letzte Mal vertickt hat, aber viel länger dürfte es kaum gedauert haben.

    Soll jetzt der Nachteil von ARC sein, dass man es auf etqwa 4 Jahren alten Rechnern nicht mehr einsetzen kann? Und das als Rat an jemanden, der gerade mit der iOS-Programmierung anfängt und von GC wegkommen will? Dem rät man deshalb jetzt MRC?

    Ebenso gut kannst du von @property abraten, @synthesize, automatischen Ivars usw. usf. Alles tolle Sachen, die für Systeme irgendwann aus der <Vergangenheit nicht, nicht vollständig oder nicht richtig funktionieren.

    Nein, ich rate nicht von ARC ab. Mein Post bezog sich auf Mac OS. Und SL ist immer noch da und es gibt eine Menge Leute, die noch 32bittige Rechner haben, die prima ihren Dienst tun. Nicht jeder Entwickler kann denen sagen "Go f*ck yourself". Die Marschrichtung seitens Apple ist klar und die Migration hin zu 64bit-only mit dem Zuckerbrot ARC ist eine gute Sache. Für Anfänger in der Cocoa-Programmierung ist die Sache klar: benutzt ARC!

    Okay, dann hatte ich das zu sehr auf den Gesamtthread bezogen, mea culpa, sorry.

    Nur um das noch einmal klarzustellen, nicht in Bezug auf dich: Wenn es ein Argument gegen ARC sein soll, dass es nicht auf der Legacy.RT läuft, gälte das auch für zahlreiche andere Dinge, die komischerweise schon in der Vergangenheit selbstverständlich benutzt wurden. Da erscheint es wenig glaubwürdig, wenn jemand zwar seinen Code mit @property pflastert, dann aber die ARC nicht will, weil es auf alten Systemen nicht läuft.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Soll jetzt der Nachteil von ARC sein, dass man es auf etwa 4 Jahren alten Rechnern nicht mehr einsetzen kann? Und das als Rat an jemanden, der gerade mit der iOS-Programmierung anfängt und von GC wegkommen will? Dem rät man deshalb jetzt MRC?

    Apple selbst hat mit Snow Leopard die letzten PowerPC Prozessoren für ausgestorben erklärt, Blizzard und Konsorten zogen nach.
    Das passierte gut 5 Jahre nach Abkündigung der PowerPC Prozessoren.

    Der Nachteil an den verdammten Applekisten war seinerzeit ja, dass die einfach mal nicht durch normalen Betrieb kaputtzukriegen waren.
    Ich habe die Krise bekommen, weil ich mir in alter Microsoftmanier neue Hardware kaufen musste - wobei ich doch extra umgestiegen bin um mich nicht alle 3 Jahre mit neuer Hardwarezusammenstellung rumzuprügeln.

    Andererseits: es ist vier Jahre her.
    Wenn es eine Notwendigkeit gibt die Software $irgendwann für eine Hand voll Leute und ein halbes Vermögen von ARC auf RC umzustellen, dann kann man sich damit immer noch auseinandersetzen.
    Ich mag den ARC.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Sich mit Speicherverwaltung auseinander zu setzten wird doch mit ARC nicht überflüssig. Wie weit kommt denn ein Anfänger, bevor er sich mal Gedanken machen muss, was es mit diesen weak und strong Dingern auf sich hat?

    Ich finde es bis jetzt ganz gut. Zugegeben, ich hab nur damit rumexperimentiert. Ob es in "richtigen" Projekten zuverlässig funktioniert - na das lass ich erst mal Andere ausprobieren :D

    Aber wenn es geht (und davon gehe ich aus) ist es doch besser zur Compilezeit etwas mehr Strom zu investieren, den man dann dann auf 1000000 installierten Programmen mit der fehlenden GC einspart.

    Ihr müsst das von der ökologischen Seite betrachten.
    Seminare, Artikel, Code. ObjectiveCeeds - alles für die Apfelzucht.
  • Manfred Kreß schrieb:

    Ich finde es bis jetzt ganz gut. Zugegeben, ich hab nur damit rumexperimentiert. Ob es in "richtigen" Projekten zuverlässig funktioniert - na das lass ich erst mal Andere ausprobieren :D

    Werde ich beim nächsten richtigen Projekt definitiv angehen. ^^
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Manfred Kreß schrieb:

    Sich mit Speicherverwaltung auseinander zu setzten wird doch mit ARC nicht überflüssig. Wie weit kommt denn ein Anfänger, bevor er sich mal Gedanken machen muss, was es mit diesen weak und strong Dingern auf sich hat?

    Nein, überflüssig wird es nicht. Es vereinfacht sich. Vor allem in der Anwendung. Deshalb sage ich ja auch, dass ARC weiterhin RC ist.

    Manfred Kreß schrieb:

    Ich finde es bis jetzt ganz gut. Zugegeben, ich hab nur damit rumexperimentiert. Ob es in "richtigen" Projekten zuverlässig funktioniert - na das lass ich erst mal Andere ausprobieren :D

    Wenn man nach Fehlern sucht, sieht man, dass die angeblichen Fehler von ARC Fehler des Programmierers bei RC sind. Komischerweise haben die sich bei MRC nicht darüber beschwert, sondern die Leaks hingenommen. Das gfeht sogar so weit, dass Leute schreiben: "Juuuhuuuu, dank ARC habe ich das Leak in meiner App gefunden, das ich mit MRC programmiert hatte." Dass es schon längere Zeit einen Analyzer gab … Nun, ja, auch dort hieß es ja gerne, dass das Ding nicht richtig funktioniert, wenn es bei einem selbst nicht richtig funktioniert …

    Und wenn die Leute dann hier den Ratschlag bekommen, mit undokumentierten Tricks zu hantieren, anstatt die Doku zu lesen, wird es sicherlich auch weiterhin tolle angebliche Fehler geben. Diese Leute, die die Doku nicht lesen und stattdessen mit Trial & Error herumexperimentieren werden dann sicherlich immer noch nicht kapiert haben, was für einen Murks sie da verkaspern.

    Manfred Kreß schrieb:

    Aber wenn es geht (und davon gehe ich aus) ist es doch besser zur Compilezeit etwas mehr Strom zu investieren, den man dann dann auf 1000000 installierten Programmen mit der fehlenden GC einspart.

    Ihr müsst das von der ökologischen Seite betrachten.

    Wie gesagt: Mit GC hat ARC nichts, gar nichts, rein gar nichts zu tun. Deshalb lässt sich ja auch ARC und MRC gnadenlos mischen.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Ich nutze mittlerweile ARC bei 4 iOS Projekten, 1 davon ein Framework, als statische lib in andere Projekte eingebunden, und ich finde ARC der Hammer. Der Hauptunterschied ist dass ich die ivars und properties nicht mehr 4x (ivar, property, synthesize und dealloc) sondern noch 2x (property und synthesize) schreiben muss. Abgesehen vom Weglassen der release/autorelease-calls, welche bei mir seit den Properties sowieso immer spärlicher aufgetaucht sind, ändert sich sonst praktisch nichts. Ergo viel getippe gespart ohne Nebenwirkungen :thumbsup:

    Auf dem Mac mag die Entscheidung für ARC härter sein, beim iPhone werde ich den Support für iOS 3.x nicht nur wegen ARC, sondern auch wegen Blocks und GCD langsam fallen lassen und möglichst überall auf ARC umstellen. :whistling:
    Widgetschmie.de • Life is too short for gadgets