Objective-C lernen - Lohnt sich das noch? Aufwand?

Diskutiere das Thema Objective-C lernen - Lohnt sich das noch? Aufwand? im Forum Mac OS Entwickler, Programmierer.

  1. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.453
    Zustimmungen:
    1.282
    Mitglied seit:
    06.06.2006
    Mir hat er geschrieben, dass die Nacht wunderbar war… :p

    Viele Grüße
     
  2. Loki M

    Loki M unregistriert

    Beiträge:
    3.513
    Zustimmungen:
    1.032
    Mitglied seit:
    07.02.2005
    Wtf? Ich auch :)
     
  3. elChupete

    elChupete Mitglied

    Beiträge:
    711
    Zustimmungen:
    177
    Mitglied seit:
    13.10.2007
    Off Topic
    - Gibts auch Buchempfehlungen für Swift
    Back to topic
     
  4. Dextera

    Dextera Mitglied

    Beiträge:
    12.091
    Zustimmungen:
    7.210
    Mitglied seit:
    13.09.2008
    Für Swift find ich ehrlich gesagt die Apple-Tutorials schon recht nett gemacht ... also die iPad App Playgrounds.
    Ich bin aber auch jemand der gerne Tutorials durcharbeitet, deswegen hab ich auch einige Kurse auf Udemy gekauft. Bücher sind mir oft zu trocken - die nehm ich gerne als Nachschlagewerke ...

    Ich nehm mir jetzt seit Jahren vor dass ich mal ne App mache - aber ehrlich gesagt hab ich absolut keinen Anwendungsfall. Alles, was ich an Apps brauchen könnte, gibts schlicht schon :D Es lohnt einfach nicht da Zeit zu versenken um etwas zu erstellen was es 100x schöner und wohl besser bereits gibt.
     
  5. lisanet

    lisanet Mitglied

    Beiträge:
    838
    Zustimmungen:
    289
    Mitglied seit:
    05.12.2006
    Ein kleiner Vorteil von Objectiv-C ist, dass du es direkt mit C source codes mischen und in den selben files schreiben kannst. Gerade bei bestehenden open source Projekten ist das oft ein Vorteil, weil die sehr häufig in C geschrieben sind.

    Andererseits hat Swift auch ein paar richtig gute Sprachkonstrukte, die objective-C nicht kennt, z.B. tuples. Ein Funktion kann nicht nur einen einzigen Rückgabewert liefern, sondern mehrere, auch beliebigen Typs.
     
  6. Kaito

    Kaito Mitglied

    Beiträge:
    6.456
    Zustimmungen:
    1.383
    Mitglied seit:
    31.12.2005
    Gar nicht so wild. Der in C geschriebene Videoplayer mpv hat das OSX Video-Backend inzwischen in Swift: https://github.com/mpv-player/mpv/tree/master/video/out/cocoa-cb
    Wenn dein C-Teil eine halbwegs ordentliche Schnittstelle hat, dann ist das kein Problem.
     
  7. lisanet

    lisanet Mitglied

    Beiträge:
    838
    Zustimmungen:
    289
    Mitglied seit:
    05.12.2006
    ja, das ist klar. Ich wollte eher ausdrücken, dass du objektive-C direkt in *.c files verwenden kannst (und natürlich noch ein compiler flag ergänzen musst)
     
  8. Atalantia

    Atalantia Mitglied

    Beiträge:
    1.175
    Medien:
    3
    Zustimmungen:
    162
    Mitglied seit:
    26.11.2009
    Also wenn jemand keine Kenntnisse von C oder C++ hat würde ich mal behaupten es lohnt sich nicht Obj-C zu lernen. Ich habe es in drei Anläufen versucht und habe in wochenlanger Arbeit ein kleines Programm erstellt, dass in einem Text Objekt zufällig generiert Passwörter in wählbarer Länge ausgibt. Auch die gerühmten Bücher von Negwed Amwad waren nicht hilfreich weil dort oft Apfel Birnen Vergleiche mit viel Drumrummtamtam geschrieben steht ohne das man wirklich verifizierbare Informationen kriegt.
    Ich würde mal behaupten, dass das Erlernen von Obj-C nur einen Kurs möglich ist. Wie gesagt ich habe es aus Büchern versucht und bin gescheitert obwohl ich nicht gerade der dümmste bin.
     
  9. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.453
    Zustimmungen:
    1.282
    Mitglied seit:
    06.06.2006
    Guten Morgen,

    Vielleicht lese ich es falsch, oder interpretiere zu viel, aber genau das zeigt mir, dass es eben kein Problem nach der Frage der Sprache ist.
    Du kannst doch in Apples Frameworks mit Objektive-C, Swift, AppleScript und sogar mit JavaScript arbeiten.
    Dein Vorhaben und Scheitern hat nicht im Ansatz etwas mit der Sprache zutun. Wenn Dein Fenster mit Knöpfen, Textfelder und Optionsfeldern haben magst, dann ist das eine Frage über das Wissen der Bibliotheken und der Frage "Wie funktioniert eine Mac App?" und nicht eine Frage der Sprache.
    Und aus diesem Grund ist für mich die Behauptung falsch.

    Da fehlt mir irgendwie der Zusammenhang. Die Bücher beantworten Dir keine Fragen, die Du gerade im Kopf hast.
    Die Bücher werfen Fragen beim Lesen auf und animieren Dich zum Nachdenken und zum Verstehen warum etwas gerade ein Problem ist.
    Und liefern dann in Beispielen die Antworten, die man "durchlebt". Man muss überhaupt nicht verstehen was da steht, total irrelevant am Anfang.
    Durchhalten ist angesagt und sich darauf einlassen und stumpf folgen. Mehr und mehr macht es dann klick.

    Ich finde Kurse gut und wichtig, aber das Erlernen selbst geht nur mit einem selbst.
    Kaum einer kann bei einem Kurs, der sich vorher nicht im Ansatz damit beschäftigt hat, der Geschwindigkeit standhalten.

    In meinem Kurs hat damals nach dem zweiten Tag einer gefragt "Was macht die Klasse NSView?".
    Das soll auf keinen Fall herabschauend sein, aber als solches kann der gleich gehen. Da zahlt jemand 1k Euro und kommt so etwas von unvorbereitet in den Kurs. Da gibt es einige, die danach denken sie sind fit vom Zuhören.
    So läuft es halt nicht.

    Und nochmals zusammengefasst: Das hat alles Null mit Objective-C zutun.

    Viele Grüße
     
  10. xentric

    xentric Mitglied

    Beiträge:
    3.887
    Zustimmungen:
    696
    Mitglied seit:
    11.05.2007
    Glaub ich nicht. Ich hab C(++) gelernt ohne Kurs. Ich würde eher behaupten reine Bücher sind zum Ersterlernen einer Programmiersprache ungeeinet. Da schaut man rein, wenn man die Basics kann, Programmiererfahrung hat oder neue Konzepte verstehen will. Die heutigen (Anfänger-)Programmierbücher sind einfach zu viel Text, zu viel drum herrum, kein richtiger Bezug, und es dauert Ewigkeiten.

    Ich würde mir ein kleines Projekt machen mit Bezug zum Problem auf das ich richtig Lust habe es zu lösen und loslegen! Das ist das entscheidene. Klar, man kann dann in einzelne Bücherkapitel schauen, aber auch genau so gut ins Internet weil die Antworten da präziser auf das Problem bezogen sind (z.B. Stackoverflow) oder mit kleinen Tutorials sich die Grundlagen erarbeiten. Aber Programmieren lernen in dem man ein Buch von vorne bis hinten durchliest, ich glaube nicht dass das die einfachste Variante ist. Man braucht eben ein Projekt mit Bezug, sonst hat man schnell keine Lust mehr wenn es bei bestimmten Sachen nicht direkt klickt macht. Außerdem wendet man so direkt das Gelernte an und hinterfragt mehr.

    Das ist richtig.
     
  11. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.453
    Zustimmungen:
    1.282
    Mitglied seit:
    06.06.2006
    Vielleicht animiert es Dich zum Wiedereinstieg…

    Viele Grüße

    Code:
    -(void)applicationDidFinishLaunching:(NSNotification *)aNotification
    {
    
        
        // …
        
        NSUInteger length = 32;
        
        // …
        
        NSString *string = [self randomTextWithLength:length];
        
        // …
        
        NSLog(@"%@", string);
        
        // …
    
    }
    
    -(NSString*)randomTextWithLength:(NSUInteger)aLength
    {
        
        // …
        
        if(aLength < 1)
        {
            
            return nil;
            
        }
        
        // …
        
        NSMutableString *mutableString = [NSMutableString string];
        
        if(mutableString == nil)
        {
            
            return nil;
            
        }
        
        // …
        
        for(NSUInteger n = 0; n < aLength; n++)
        {
            
            // …
            
            unichar nChar = [self randomChar];
            
            // …
            
            [mutableString appendFormat:@"%C", nChar];
            
            // …
            
        }
        
        // …
        
        NSString *stirng = [NSString stringWithString:mutableString];
        
        if([stirng length] < 1)
        {
            
            return nil;
            
        }
        
        // …
        
        return stirng;
        
        // …
        
    }
    
    
    -(unichar)randomChar
    {
        
        // …
        
        NSString *string = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789";
        
        NSInteger length = [string length];
        
        // …
        
        NSUInteger index = (NSUInteger)(arc4random() % length);
        
        unichar aChar = [string characterAtIndex:index];
        
        // …
        
        return aChar;
        
        // …
        
    }
    
     
  12. Atalantia

    Atalantia Mitglied

    Beiträge:
    1.175
    Medien:
    3
    Zustimmungen:
    162
    Mitglied seit:
    26.11.2009
    Genau so habe ich das oben erwähnte Programmchen zum generieren von Passwörtern gemacht. Ich brauchte mit allem Recherchieren und Fehler, Versuchen, Fehler, wieder Versuchen usw. soviel Zeit, dass mir die Lust diese Sprache zu lernen und überhaupt Programme zu entwickeln gründlich vergangen ist. Ich habe zwar xCode noch auf der Platte ist aber ein Mülleimer Kandidat.
     
  13. xentric

    xentric Mitglied

    Beiträge:
    3.887
    Zustimmungen:
    696
    Mitglied seit:
    11.05.2007
    Okay.

    Ne andere Variante ist du suchst dir ein kleines, kompaktes Einmann Open Source Projekt (davon gibts leider genügend) das dich anspricht und in der Sprache ist die du erlernen willst und probierst es zu Erweitern oder dort Probleme zu lösen. Der Vorteil ist, du hast schonmal Code da der funktioniert und du musst dir weniger selbst ersuchen sondern kannst dir die Konzepte direkt in dem Code anschauen. Z.B. einfach mal alles laufen lassen mit dem Debugger an, und schauen wie der Programmfluss ist, und warum der Code so ist wie er ist. Klar, dass dauert 2-3 Tage (abhängig von Größe), aber imho lernt man so schneller das warum.

    Du kannst natürlich auch mit swift anfangen, und dann immernochmal in Obj-C reinschauen, wenn du dann willst. Ich meine es ist klar, dass du damit schneller Erfolgserlebnisse hast, so höher die Sprache ist. Wenn das ganze Memorymanagement wegfällt fällt es dir evlt einfacher, wenn du schonmal aufgegeben hast mit Obj-C. Und es ergibt ja auch durchaus Sinn das es die andere Sprachen gibt. Oftmals braucht man nicht die Performance von C.
     
  14. Bitcruncher

    Bitcruncher unregistriert

    Beiträge:
    2.807
    Zustimmungen:
    3.658
    Mitglied seit:
    11.10.2003
    Gerade am Anfang braucht man zum erlernen der Programmiergrundlagen (und die gibt es) halt sehr viel Zeit.
    Ich hab mir mit 14 Jahren in den 80er Jahren das Programmieren selbst beigebracht, habe eine versucht ein größeres Programm zu schreiben, irgendwann lief es aber es war dann so schrecklich geschrieben das ich das Teil ingesamt sechsmal weggeworfen habe und neu geschrieben habe. Die Jahre danach hab ich dann den Gang durch alle möglichen Programmiersprachen gemacht (Basic,Pascal, C, Elan, Assembler usw....).Später habe ich mehrere IT-Berufe gelernt, heute bin ich Programmierer und Projektleiter im Großrechnerbereich.

    Worauf ich hinauswill: das Erlernen der Grundlagen, wie funktioniert das und vor allem WELCHE MÖGLICHKEITEN gibt es im Programmierbereich das zu Erlernen
    braucht einfach viel Zeit. Allein das rausfinden was geht alles beim Programmieren kann mehr Spass machen als die eigentliche Freude ein Programm zu erstellen.
     
  15. Atalantia

    Atalantia Mitglied

    Beiträge:
    1.175
    Medien:
    3
    Zustimmungen:
    162
    Mitglied seit:
    26.11.2009
    Also, ich habe mich jetzt nochmals eine Woche mit dem Thema auseinandergesetzt, Tutorials auf YouTube (die teilweise grauenhaft daherkommen) angeschaut, http://www.swift-blog.de/projekte/ angeschaut, das Buch von denen gelesen, mein Passwortprojekt nochmal revidiert. Ich verstehe zwar Operatoren, Funktionen, Tuples, Konditionen usw. aber ein Programm erstellen... ne. Fazit: reine Zeitverschwendung. Bis ich das verstanden habe, programmiert niemand mehr mit Swift. Xcode und die Developer-tools sind jetzt definitiv in die Tonne gewandert.
     
  16. Loki M

    Loki M unregistriert

    Beiträge:
    3.513
    Zustimmungen:
    1.032
    Mitglied seit:
    07.02.2005
    Ich hab sowohl Objective-C, C++ und Swift aus Büchern gelernt, aus WWDC Videos und den exzellenten Kursen von Stanford (über iTunes U). Paul Hegarty ist der Hammer. Auch auf youtube:



    Ältere Vorlesungen (ebeso legendär mit Evan Doll bzw Josh Shaeffer, heute Apple) zu Objective-C sollten sich finden lassen
     
  17. Bitcruncher

    Bitcruncher unregistriert

    Beiträge:
    2.807
    Zustimmungen:
    3.658
    Mitglied seit:
    11.10.2003
    Das kannst Du auch !!! Nur Mut ! Programmierer kochen auch nur mit Wasser :Waveypb:
     
  18. lisanet

    lisanet Mitglied

    Beiträge:
    838
    Zustimmungen:
    289
    Mitglied seit:
    05.12.2006
    wie little_pixel schon mal angemerkt hat, glaube auch ich, dass das bei dir nichts mit der Sprache Swift an sich zu tun hat, sondern mit den Frameworks von Apple, die dir einfach noch nicht geläufig sind.

    Ja, die ganzen Frameworks von Apple sind gerade am Anfang sehr schwer zugänglich, da sie sehr, sehr umfangreich sind und man sich zu Beginn schnell mal darin verliert. Allerdings sind sie auch extrem vollständig in dem Sinn, dass es kaum nötig ist eigene Klassen abzuleiten oder gar selbst zu erstellen. Ich habe gemerkt, dass immer dann wenn ich dachte ich müsse nun eine eigene Klasse erstellen, mir eigentlich immer nur die korrekte API nicht bekannt war, die mein Problem gerade erforderte. Das ist am Anfang nervig, da es bedeutet, viel in der Doku zu den Frameworks zu suchen und zu lesen. Aber es lohnt sich.
     
  19. Mondmann

    Mondmann Mitglied

    Beiträge:
    2.926
    Zustimmungen:
    91
    Mitglied seit:
    21.07.2004
    Da sagst du was. Genau so ist es.
    Oft fummelt man tagelang an einem vorhandenen Programm oder an einer Problemstellung herum, um es immer noch besser, noch einfach und effizienter zu machen: So lernt man am meisten, brauche aber viiiiel Zeit.

    Aber ich bin (leider) Windows-Entwickler auf C#. Zu Hause ist alles komplett "veräppelt".


    Und als dieser hätte ich ne Frage:
    Mit Swift...kann man da "Apps" für iOS und OSX - mit einer Datenbasis erstellen? Oder sind das dann immer noch zwei grundlegend verschiedene Dinge?
    Ich vermute stark, dass es so ist :)
     
  20. lisanet

    lisanet Mitglied

    Beiträge:
    838
    Zustimmungen:
    289
    Mitglied seit:
    05.12.2006
    Viele der Frameworks sind identisch zwischen iOS und macOS. Bei der GUI gibts dann aber unterschiedliche Klassen
     
Die Seite wird geladen...

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite weitersurfst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...