Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

TIOBE-Index: Objective-C & Swift weniger gefragt

Wie aus dem aktuellen TIOBE-Index für Oktober hervorgeht, sind bei den Programmiersprachen die von Apple bevorzugten Sprachen Objective-C und Swift weniger gefragt als vor einem Jahr. Woran dies im Detail liegt, ist nicht bekannt, doch ist bei App-Entwicklern ein anhaltender Trend zu Multi-Plattform-Bibliotheken auszumachen, um gleichzeitig für iOS und Android entwickeln zu können.


Vom Trend profitieren Microsoft C#/Xamarin und JavaScript-basierte Frameworks wie Cordova und Ionic. Darunter leiden folgerichtig die plattformspezifischen Sprachen, was unter iOS sowohl Objective-C als auch Swift betrifft und unter Android vor allem Java. Während Java trotz der hohen Verluste immer noch den Spitzenplatz bei den Programmiersprachen innehat, sind Swift (-4) und Objective-C (-7) auf Platz 16 und 17 abgerutscht.


Die großen Zuwächse in den Top-20 können teilweise überraschen, was aber auch mit der Bildung des TIOBE-Index anhand der Anzahl der Suchergebnisse zusammenhängt. Mehrere Plätzen aufsteigen konnten unter anderem Scratch (+9), MATLAB (+6), Object Pascal (+4), R (+3), Ruby (+3) und Assembler (+2). Googles Programmiersprache Go (-4), immerhin letztes Jahr noch TIOBE-Aufsteiger des Jahres, befindet sich hingegen kurz vor dem Rauswurf aus den Top-20.

Kommentare

Michael Fuchs11.10.17 11:45
Wie steht es hier eigentlich mit Lernmaterial?
Für Java gibt es schon einiges und vor allem es gibt was für absolute Anfänger,
die noch nie nur eine Zeile Code geschrieben haben. Für die Anfänger gibt es unter anderem BlueJ oder den Java-Hamster, für Fortgeschrittene: die bekanntesten Bücher sind "Java ist auch eine Insel" oder "Sprechen Sie Java?", da gibt es aber noch paar mehr.
Wie sieht es in Apple-Welt aus, welche Unterlagen, Bücher etc. hat hier ein versierter Anfänger, um in die Materie reinzukommen?
0
germansnowman12.10.17 08:57
Da gibt es einiges. Als ich vor nun schon 14 Jahren einstieg, war »Cocoa Programming for Mac OS X« von Aaron Hillegass (Big Nerd Ranch) so ziemlich das Beste, was es gab. Ich glaube, die haben auch ein Buch zu Swift herausgegeben.

Apple selbst stellt ja E-Books zu Swift zur Verfügung, sowie die Playgrounds-App auf iPads, mit der man interaktiv lernen kann.
0
gfhfkgfhfk12.10.17 09:56
Das Buch von Hillegass ist aber eher für Programmierer gedacht, die schon programmieren können und nur auf Cocoa wechseln wollen.
0
Michael Fuchs12.10.17 10:26
germansnowman
Apple selbst stellt ja E-Books zu Swift zur Verfügung, sowie die Playgrounds-App auf iPads, mit der man interaktiv lernen kann.
Ich füge den Link ein: Apple Swift
Nicht schlecht, werde es mir mal anschauen.

Das ist ein sehr leidiges Thema: Einstieg.
Habe selbst vor kurzem damit angefangen und musste leider feststellen, dass es kaum gute und verständliche Bücher gibt, welche
die Grundlagen behandeln. Die überwiegende Anzahl an Bücher, welche um die Anfängergunst brüllen, sind meist von Leuten geschrieben, welche dank des Bildungsgrades den Draht zu den Menschen, für welche man die Bücher schrieb, teils verlieren und
auf einem Niveau unterrichten, welches erst erreicht werden muss.
Von dem roten Faden ganz abgesehen. Bis jetzt ist mir nur eine Buchreihe unter die Hände gekommen, welche den Stoff Kapitel auf Kapitel aufbauend vermittelt. Aber auch da übertreibt es der Autor teils
maßlos und bietet auch keine Musterlösungen an. Da stelle ich mir dann Fragen wie: wenn ich als Erwachsener es mir schwer erkämpfe, wie das dann bei einem Jugendlichen funktionieren soll?
Ich finde, da wird viel zu wenig dafür getan, Menschen für Programmieren zu begeistern..leider.
0
gfhfkgfhfk12.10.17 22:47
Das ist generell ein sehr schwieriges Thema, da es zu allem Überfluss keinen einen goldenen Weg gibt. So unterschiedlich Menschen sind, so unterschiedlich sind auch ihre Erwartungen an den optimalen Weg zum Erlernen.

Dann ist ein wesentliches Problem, dass man kaum Rückmeldung bekommt was denn nun beim Verständnis problematisch war. So kann man auch nichts ändern, weil das nicht wirklich ersichtlich ist.
0
Michael Fuchs13.10.17 21:40
Du hast schon recht. Das mit Feedback ist leider nur bedingt hilfreich, da die Vorschläge, wenn von dem Autor überhaupt erhört werden, erst mit der nächsten Auflage erscheinen, wenn es den eine nächste gibt.

Mein größter Kritikpunkt ist der fehlende Faden.
In meisten Bücher wird kein Ziel verfolgt, da wird je nach Kapitel zwar viel und teils sehr detailliert erklärt, jedoch handelt es sich meist um Themen, die für ein Anfänger so noch nicht stehen. Bestes Beispiel ist Enum, beinahe in jedem Fachbuch, welches ich jetzt zu Gesicht bekam, wird der Enum Wochentag angesprochen. Meistens wird von Aufzählungen gefasselt, dabei ist ein Enum sehr nützlich und machvoll, erleichtert das Leben ungemein und wird, wie das Thema Vererbung entweder unzureichend, oder sehr schwerverständlich, erklärt. Dabei bietet das tägliche Leben etliche Beispiele dazu. Beinahe zu allem kann man ein Enum-Beispiel gestalten.
So gesehen, ist ein Enum nicht nur eine Aufzählung, es ist ein Schutzmechanismus und ein Begrenzer. Warum das so nicht erklärt wird, ist mir ein Rätsel.
Und wie schon angesprochen, fehlt mir meistens ein Ziel, welches verfolgt wird und
von Kapitel zu Kapitel immer mehr, größer und komplizierter wird.
Eher kenne ich es so nach dem Motto: ich zeige dir, wie man den Stift hält, jetzt schreib ein Roman. Oft einfach überzogen.

Eins ist gut: da draußen gibt es wirklich viele, die in ihren Blogs manches Thema wesentlich verständlicher erklären, als so ein studierter Diplominformatiker.
0
gfhfkgfhfk14.10.17 17:43
Michael Fuchs
Mein größter Kritikpunkt ist der fehlende Faden.
Mir persönlich waren solche Bücher "mit Faden" immer zuwider, weil die Informationen im Buch dann total verstreut sind und man sie nur schlecht benutzen kann, wenn man beim Programmieren offene Fragen hat. Aber da sind wir wieder an den Punkt - unterschiedliche Vorlieben.

Es gibt übrigens massenweise Literatur wie man Programme entwirft, die sind dann aber meist relativ unabhängig von einer Programmiersprache, was auch so gut ist. Denn das ist ein Prozess beim dem die konkrete Programmiersprache kaum eine bis keine Rolle spielt. Z.B. Lehrbuch der Objektmodellierung: Analyse und Entwurf mit der UML 2; Heide Balzert oder .
Michael Fuchs
So gesehen, ist ein Enum nicht nur eine Aufzählung, es ist ein Schutzmechanismus und ein Begrenzer. Warum das so nicht erklärt wird, ist mir ein Rätsel.
Weil es das eben in den meisten Programmiersprachen nicht der Fall ist, so auch bei C. Der Basistyp jedes enum ist int, und in der enum Definition werden nur Literale für bestimmte Werte des Typs int definiert, das ist alles. D.h. man kann beliebig int Werte an einen enum zuweisen, die in der Definition des enums nicht aufgeführt wurden. Es ist also kein Schutzmechanismus.
#include <stdlib.h>
#include <stdio.h>

int main () {
    enum wochentag {Mo, Di, Mi, Do, Fr, Sa, So};

    enum wochentag wt = Mo;
    printf("%i\n",wt);
    wt = 15;
    printf("%i\n",wt);

    return EXIT_SUCCESS;
}
Wie man sieht, wird hier 15 anstandslos akzeptiert, obwohl der Wert nicht zur Aufzählung passt.

Anders sieht die Sache in Ada aus, da sind solche Zuweisungen mit Werten außerhalb des definierten Wertebereiches unmöglich. Da wird sowohl beim Übersetzen, wie auch während der Laufzeit das überprüft. In so einem Fall ist der Schutzmechanismus vorhanden.
Michael Fuchs
Und wie schon angesprochen, fehlt mir meistens ein Ziel, welches verfolgt wird und von Kapitel zu Kapitel immer mehr, größer und komplizierter wird.
Eher kenne ich es so nach dem Motto: ich zeige dir, wie man den Stift hält, jetzt schreib ein Roman. Oft einfach überzogen.
Bücher zum Erlernen einer Programmiersprache dienen dazu die Grundlagen zu lernen, das ist so wie das Schreiben lernen in der Grundschule. Erst später an der weiterführenden Schule lernt man dann eigene Texte zu verfassen. Die Übungen in diesen Büchern dienen also nur dazu bestimmte Sprachaspekte zu vermitteln - mehr nicht. Früher war das zumindest an der Uni so, dass de facto jeder schon programmieren konnte, als er mit dem Studium anfing. Deshalb sind die meisten Bücher für die Uni so geschrieben, dass sie sich an ein Auditorium richten, dass nur eine weitere Programmiersprache lernt.

Ok, es bleibt das Problem, dass man einmal in das kalte Wasser springen muss. Dabei ist es sch****egal, welche Sprache man dafür nimmt. Auch wenn Du für einen Mac programmieren willst, ist es nicht notwendig Swift oder Objective-C als erstes zu erlernen. Wichtiger ist es, dass man die Grundkonzepte versteht und nicht der Literatur kämpft (z.B. für Swift gibt es bisher nur englischsprachige Literatur).

Es gibt weiterführende Literatur, die sich explizit damit beschäftigt wie man Programme aus realen Problemen erstellt und diese dann auch runter programmiert. Leider sind die guten Buchhandlungen faktisch ausgestorben und man kann so nicht mehr in die Bücher reinschauen bevor man sie kauft. Obige OOA und OOD Literatur erklärt schlussendlich auch, weshalb man OOP überhaupt macht. Durch die Analyse realer Probleme sieht man recht schnell, dass OOP dabei hilft diese Probleme in Software abbilden zu können. Das Buch von Balzert behandelt mehrere Fallbeispiele an denen gezeigt wird, wie man das umsetzt.
0
Michael Fuchs16.10.17 09:35
gfhfkgfhfk
Es ist also kein Schutzmechanismus
Ich bin natürlich ein Anfänger und eventuell ist die Vorgehensweise so nicht ganz korrekt, jedoch bin ich bis jetzt immer den Weg gegangen:
Programmiersprache Java:
Enum Gewichtsindex
package materialberechnunginterface;

enum Gewichtsindex
{
    /**
     * angebotene Stahlsorten;
     */
    BAUSTAHL, VERGUETUNGSSTAHL, ALLEGIERUNG;

    /**
     * die Masse pro dm³ der jeweiligen Stahlsorte;
     */
    final static double MASSE_BAUSTAHL = 7.85;
    final static double MASSE_VERGUETUNGSSTAHL = 7.9;
    final static double MASSE_ALLEGIERUNG = 2.7;

    /**
     * liefert Umrechnungswert;
     *
     * @return Gewichtsindex des Werkstoffes
     */
    protected double getGewichtsindex()
    {
        if (null == this) {
            return 0;
        } else {
            switch (this) {
                case BAUSTAHL:
                    return MASSE_BAUSTAHL;
                case VERGUETUNGSSTAHL:
                    return MASSE_VERGUETUNGSSTAHL;
                default:
                    return MASSE_ALLEGIERUNG;
            }

        }
    }

}
Hauptprogramm
public static void main(String[] args)
    {
        MasseBerechnung vk = new Vierkant(1000, 1000, 1000);
        double masse = vk.getMasse(Gewichtsindex.BAUSTAHL);
    }
Ich empfinde den Enum hier als ein Schutzmechanismus, weil an der Stelle in der Parameterliste nur ein Enum stehen kann, welches ein bestimmten Wert liefert. So ist es auch bequem, denn Enum
lässt sich hier sehr gut erweitern und für alle dann nur an einer Stelle
ändern.
Es gibt weiterführende Literatur, die sich explizit damit beschäftigt wie man Programme aus realen Problemen erstellt und diese dann auch runter programmiert. Leider sind die guten Buchhandlungen faktisch ausgestorben und man kann so nicht mehr in die Bücher reinschauen bevor man sie kauft.
Das unterschreibe ich! Bis auf die zwei Ausnahmen wie die Bücher
"Java ist auch eine Insel" oder "Go to Java" kauft man eine Katze im Sack. (Beide Bücher stellen die Vorgänger ins Netz, man kann also sich ein Bild machen, ob man der Literatur gewachsen ist).
Vielen Dank für den Link, werde mir es anschauen.
Denn das ist das nächste Thema.
Im Augenblick befasse ich mich mit Klassen und Vererbung so wie
abstrakte Klassen und Interfaces. Später kommen innere Klassen und
wenn ich ehrlich sein soll, kann ich die gegebenen Möglichkeiten nicht überblicken. Zwar leuchtet es mir jetzt ein, wo die Vorteile von Interfaces, als Beispiel, liegen, jedoch mir vorzustellen, wie ein größeres Projekt auszusehen hat, da fehlt es noch. Die unglaubliche Fülle der
gegebenen Möglichkeiten und Wege lässt sich nicht richtig in Worte fassen. Am Anfang las ich in einem Blog, dass das Programmieren wie Motorrad fahren ist, also der Weg ist das Ziel. Das gibt mir Mut
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.