Welchen weg soll ich gehen und wo wären die Vorteile

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Welchen weg soll ich gehen und wo wären die Vorteile

    Hallo Forum,

    ich habe leider eine Entscheidung´s Frage und weis nicht wirklich in welchen Zweig ich gehen soll.
    Da ich immer Objective-C kennenlernen wollte um ein paar Tools zu schreiben bin ich nach vielen Büchern immer wieder hängen geblieben da mir die Grundlagen fehlen. Man möchte doch nicht immer das Forum strapazieren wenn es an den Basic´s scheitert.
    Nun habe ich mich für einen Kurs angemeldet der Heute begonnen hat. Ich mache an der IHK einen Kurs in "Programmierung Grundlagen auf Basic C" nun stellte ich heute fest das man ab nächstes Jahr den zweiten Kurs abändert. Es gab immer "Grundlagen der objektorientierten Programmierung" dieser wird ab nächstes Jahr jeweils gesplittet und nur auf eine Sprache jeweils für den fortlaufenden Zweig eingegangen. Nun stelle ich mir die Frage welche Richtung soll ich gehen? IHK bietet folgendes an:

    Hier

    iOS ist zwar interessant aber in dem Sinne nur iOS. Soll ich einen anderen Zweig wählen und erneut mit Bücher lernen oder was meint ihr? Vielleicht hat der eine oder andere Erfahrung in den Sprachen und kann mir vielleicht helfen was das Auswählen angeht da ich nicht sicher bin. Java ist unabhängiger aber was können die anderen Sprachen?

    Ich hoffe ihr könnt mir ein paar pro und contras nennen was eure Erfahrung betrifft. Das ganze dient als Hobby und nicht als Nebenverdienst oder Jobausbau.

    Gruß und danke schonmal :thumbup:
    "Mit jedem Tag siehst du hübscher aus und siehst heute schon wie nächste Woche aus."
  • Es behandelt nur iOS und nicht OSX obwohl es um paar Sachen sich handelt die vielleicht anders sind wenn ich das so mal sagen darf ;)
    Ist der Sprung von C# oder Java groß auf Objective-C?

    Gruss
    "Mit jedem Tag siehst du hübscher aus und siehst heute schon wie nächste Woche aus."
  • Wenn Du Objective-C kennen lernen willst, dann solltest Du Objective-C kennen lernen.
    C# nützt Dir nur was unter Windows und in Verbindung mit dem .NET Framework.
    Java nützt Dir sehr viel, da es auf nahezu allen Betriebssystemen läuft. (Es gibt Kühlschränke mit Java...)
    C++ nützt Dir am Meisten, da es auf allen Betriebssystemen läuft. Für hardwarenahe zeitkritische Entwicklung ist C++ nahezu unschlagbar. (außer durch C und natürlich ASM – aber das ist noch weniger objektorientiert als C++)
    Objective-C nutzt Dir nur was auf dem Mac oder unter iOS (die Konzepte sind ähnlich) und natürlich bei weiteren Exoten wie GNUStep oder Smalltalk.

    Der Sprung von C# oder Java auf Objective-C ist nicht groß. Er ist exorbitant riesig.
    Du musst von starrer Typisierung zu loser Typisierung.
    Du musst von Exception Handling zu Error Handling.
    Du musst von Null Pointer Exception zu 'Messages To Nil Are Allowed'
    Du musst von Entwurfsmustern wie dem Factory Pattern weg (es sei denn jemand kann mir ein sinnvolles Beispiel dafür unter Objective-C nennen.)

    Kurz: Du musst komplett umdenken. Selbst wenn du beide Dinge sehr gut beherrscht dauert das Umdenken je nach vorheriger Zeitspanne in der einen Sprache einige Stunden bis mehrere Tage.
    Lern das, was du lernen möchtest. :)
    «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
  • Wie Du oben sagtest, Dir fehlten die Grundlagen ... für diese ist es m. E. nahezu egal, in welcher Programmiersprache Du unterwegs bist, wobei objektorientierte natürlich von Vorteil sind. Damit solltest Du die Prinzipien kennen lernen. Nun auf Objective-C zu wechseln, ist nicht so kompliziert: Es gibt ein paar syntaktische Besonderheiten und ein paar Kernthemen wie Delegation, Notifications, insgesamt der stark dynamische Aufbau, aber hey: Die wirst Du Dir im Laufe kleinerer Projekte leicht selber beibringen können.

    Wenn Du den Einstieg über die genannten IHK-Kurse suchst, ist iOS nicht so falsch: Tatsächlich ist weniger Objective-C der Lernaufwand, sondern die Verwendung der x Klassen und Frameworks. Die sind unter iOS zwar häufig andere als unter OS X, aber an dieser Stelle lernt man m. E. eh permanent und durch konkrete Anforderungen weiter...

    Mein Credo: Wenn Du schon programmieren kannst, sollten (gute) Bücher und Internetrecherche reichen. Wenn nicht, ist ein Seminar sicher nicht schlecht, aber ohne üben, üben, üben wird das nichts werden. Ist eben auch ein Handwerk, das Begabung und Fleiss brauch :)

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Ja die Basics haben mir einfach nur gefehlt und daher der Kurs. Nächstes Jahr gibt es speziell zur jeder Sprache den passenden Kurs zur OOP, anstatt wie bis jetzt alle Sprachen in einen Topf zu schmeißen.
    Der Nachteil an der ihk besteht leider darin, dass wenn es keine Teilnehmer für iOS oder Java gibt, wird dieser nicht gehalten. In der jetzigen Klasse machen alle c# und keiner iOS oder Java. Daher wird der Kurs nicht gegeben. Das ist das blöde. Vielleicht mache ich OOP für Java und mit Java weiter und besuche später dann den Einsteiger Kurs iOS. Wäre vielleicht auch eine Möglichkeit. Vorteil Java läuft bis auf ein paar Änderung auf jeden System.
    Wobei unterscheiden sich Java und Objective-c voneinander wenn man auf Mac eine Software erstellt?

    Gruss
    "Mit jedem Tag siehst du hübscher aus und siehst heute schon wie nächste Woche aus."
  • Wobei unterscheiden sich Java und Objective-c voneinander wenn man auf Mac eine Software erstellt?
    Komplett - kann man schon so sagen. Andere Sprache, andere Konzepte, anderes Framework. Ich kam damals von der Java Ecke und musste damals feststellen, dass Grundlagen in C Programmierung eine ganz große Hilfe gewesen war. Das Cocoa API hat auch noch viel C (Foundation Krams z.B.)

    Ich würde an deiner Stelle lieber was mit C oder gleich Objective C anfangen als was mit Java oder xy Sprache.
    Aus macfreakz wurde Apfelbeisser …
  • Also wollte mich nochmals bei euch bedanken. Ihr wart eine große Hilfe.
    Ich habe mir überlegt wie ich zu dem Kurs kam und das war wegen mangels in Kenntnissen als ich versucht habe Objective-C zu verstehen :)
    Ich werde in Objective-C gehen ;)


    Niklay schrieb:


    Machs so wie ich :p so geht es auch



    Das sagt mir eigentlich nicht viel was du meinst. Aber egal.

    Jedenfalls danke für die Hilfe


    Gruß
    "Mit jedem Tag siehst du hübscher aus und siehst heute schon wie nächste Woche aus."
  • Welche Hardware und wie ansprechen?

    Es gibt eine Objective-C API, um sagen wir mal, die LED-Lampe vom iPhone einzuschalten. Es gibt leider keine offiziell nutzbare API, um den Zustand des Ring/Silent Schalters an der Seite des iPhones abzufragen. Es gibt eben das, was Apple erlaubt.

    Es wird aber vermutlich sehr wenige Hardwaretreiber geben, die in Objective-C geschrieben sind. Das ist dann im besten Fall C++, oder eben C oder stellenweise dann sogar Assembler.

    Auf der andere Seite ist Objective-C eine Obermenge von C. Also Du kannst in einer App, die grundsätzlich in Objektive-C geschrieben ist, auch C oder C++ Code unterbringen. Manchmal schränkt Apple dann aber hier die Dinge etwas ein. Siehe z.B. die Beraubung um die Möglichkeit, via C Funktion die WLAN MAC-Adresse eines iPhones auszulesen in iOS 7. Oder die Beschränkung, bestimmte Verzeichnisse im Dateisystem eines iPhones selbst mit rudimentären C Funktionen nicht mehr lesen zu können.

    Das ist aber alles keine Frage der Programmiersprache, sondern der Umgebung auf der das Programm dann läuft.
  • Oh das ist aber mal eine gute Antwort :thumbsup:
    danke für die Erklärung.
    Werde jetzt ganz sicher auf Objective-C gehen anhand von iOS wie es angeboten wird.
    Super und schönen Abend noch
    "Mit jedem Tag siehst du hübscher aus und siehst heute schon wie nächste Woche aus."