Frage von ThomasVegas, 83

Welche Programmiersprache ist einfacher zu erlernen: Java (für Android) oder Swift (für IOS)?

Bitte nur beantworten, wenn ihr auch beide Sprachen gut kennt. Ich kann bisher nur Visual Basic, vielleicht ist ja auch eine der beiden Sprachen näher dran an VB.

(Hintergrund: Ich will mich bald in die App-Programmierung stürzen und weiß natürlich, dass andere Fakten viel wichtiger sind als die Sprache. Dazu habe ich schon sehr viel recherchiert. Aber ein kleiner Fakt ist nun mal auch die Sprache und hierzu habe ich keinen Vergleich gefunden.)

Danke euch schon mal, Gruß Tom

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von boardsports85, 80

Die Sprache an sich macht in beiden Szenarien nur einen kleinen Teil der Komplexität aus und sollte eine eher nachgelagerte Rolle für die Entscheidung spielen.

Trotzdem ein paar Fakten zu dem Thema:

- Java ist "uralt", d.h. es gibt tonnenweise Material, unendlich viele Entwickler die dich unterstützen können und die Sprache hat eine gewisse "Stabilität" im Sinne von Änderungen an der API.
- Swift ist vergleichsweise neu, es gibt viel Material (aber nichts im Vergleich zu Java) und die API ändert sich noch regelmäßig, was auch immer wieder zu inkompatiblen Änderungen führt.

- Java ist "uralt", d.h. viele Materialien sind längst veraltet
- Swift ist vergleichsweise neu, durch die häufigen Änderungen sind allerdings viele Materialien im Netz wieder überholt. Dazu ist zu sagen dass die Community extrem aktiv ist und die Änderungen ziemlich schnell nacharbeitet. Ein "Buch" zu dem Thema würde ich trotzdem nicht empfehlen.

- Java: OOP ist das Paradigma der Wahl, mit allen Vor- und Nachteilen
- Swift: OOP rückt in den Hintergrund, FRP ist das Paradigma der Wahl.

- Java: Kannst du auch ausserhalb der App-Welt anwenden.
- Swift: Wird bald open source, was dann passiert ist allerdings noch nicht gesagt. Bislang ist die Sprache auf die Entwicklung von nativen Anwendungen für OS X, iOS, WatchOS und tvOS begrenzt.

Nicht vergessen: Analysiere lieber den Markt in den du mit deinen Anwendungen willst, was du an technischen Voraussetzungen brauchst, wer deine Zielgruppe ist und was die für Hardware haben.

Du kannst für beide Plattform auch in einer Reihe anderer Sprachen entwickeln, z.B.:

- Ruby mit RubyMotion
- C# mit Xamarin (könnte evtl. für dich mit Visual Basic Hintergrund interessant sein, C# gehört immerhin auch zum MS Portfolio)

Ich hoffe ich konnte dir ein paar Entscheidungsgrundlagen liefern 😄

Kommentar von ThomasVegas ,

Wow, danke für die ausführliche Anwort. Das hilft mir schon mal sehr weiter. Ich habe mich zu den ganzen anderen Fragen bereits sehr informiert, auch zu Cross-Plattform-Möglichkeiten. Und die Sprache ist nur ein kleines Argument, aber da ich mich noch nicht entscheiden konnte, können momentan auch solche Dinge den Ausschlag geben.

Weißt du zufällig, welche Sprache leichter zu erlernen, wenn man einen Visual Basic-Hintergrund hat?

Kommentar von boardsports85 ,

Die Sprachen sind beide ziemlich weit von Visual Basic entfernt, insofern ist das wahrscheinlich egal.

Cross-Platform kann ich übrigens nicht empfehlen. Die beiden Tools die ich oben genannt habe sind KEINE Cross Platform Tools. Sie verwenden nur auf beiden Plattformen dieselbe Sprache, was für dich als Entwickler bedeutet dass du deine sog. Business Logik in beiden Apps wiederverwenden kannst. Die UI wirst du allerdings trotzdem zweimal schreiben müssen und das auch aus gutem Grund: Android und iOS sind konzeptionell vom UI Framework her sehr unterschiedlich.

Was ich dir vorschlagen würde ist, ein bisschen (oder ein bisschen mehr) code aus beiden Ökosystemen zu lesen: Offizielle Tutorials, weit verbreitete Open Source Projekte und Beispielanwendungen. Dann wirst du relativ schnell feststellen welche der beiden Sprachen für dich leichter lesbar ist. Nie vergessen: Du liest deinen eigenen und fremden Code um ein vielfaches häufiger als du ihm schreibst.

Viel Spaß dabei!

Kommentar von ThomasVegas ,

Ich habe mich auch gegen Xamarin und Co entschieden, da ich es für sehr aufwändig halte als Einzelkämpfer mehrere Plattformen zu bedienen (lernen, entwickeln, warten ...). Das Thema ist für mich durch.

Du hast mich mit Deinen Aussagen schon sehr in Richtung Android geschubst. Habe eben mal geschaut: Finde in deutscher Sprache (finde ich schon schöner) auf die Schnelle 3 gute besuchte Android-Entwickler-Foren und nur ein mäßig besuchtes deutschsprachiges Swift-Forum ...

Antwort
von Harvix, 83

Ich bevorzuge Swift, es ist meiner Meinung nach einfacher zu lernen.

Außerdem: Solltest du irgendwann mal deine Apps verkaufen wollen, ist iOS profitabler, da die iOS-Benutzer mehr Geld ausgeben, als die auf Android - das ist Fakt.

http://www.pcwelt.de/news/Android-vs.-iOS-Wer-gibt-mehr-Geld-fuer-Apps-aus-Studi...

Kommentar von ThomasVegas ,

Danke. Damit ich das einordnen kann: Kennst du denn beide Sprachen?

Kommentar von AliasX ,

Sollte man sie jedoch gratis anbieten, und mit Werbung Geld verdienen, ist Android wegen der größeren Nutzerbasis profitabler.  ;-)  

Antwort
von PfrageXL, 65

Über die Programmierung kann ich nichts sagen, aber wenn du damit auch mal Geld verdienen willst ist IOS bestimmt sinnvoller. Bei Android kauft sich einer die APP und verteilt die apk schön weiter als download. Oder gekauft, extrahiert und Geld zurück. Bei IOS ist das nicht so einfach ;)

Kommentar von ThomasVegas ,

Meinst du, das wird sehr häufig gemacht? Wenn es 10% der Anwender wäre kann ich mit leben. Bei 50% sähe es schon anders aus ...

Kommentar von PfrageXL ,

also jeder der ein gerootetes Handy hat kann einfach kaufen, die app raus kopieren und Geld zurück holen. oder wenn du bei Google irgend eine APP ein gibst die was kostet kommen sofort 10 seiten mit der apk deshalb denke ich das wird sehr häufig gemacht. die einzige Möglichkeit wäre per email einen code für die APP als pro Version zB zu schicken da wärst du sicherer

Antwort
von Redmoon147, 66

Es ist ansichtssache ich persönlich finde Java besser

Kommentar von ThomasVegas ,

Danke. Damit ich das einordnen kann: Kennst du denn beide Sprachen?

Antwort
von mojo47, 59

wenn du schon erfahrung mit programmieraprachen wie c++ hast, dann ist java eigentlich ziemlich leicht. ist nicht so ätzend und unlogisch verschachtelt, das grundprinzip ist aber sehr ähnlich. über swift kann ich dir jedoch leider nichts sagen.

Antwort
von Babelfish, 29

Von boardsports85 hast du ja schon eine sehr umfangreiche und gute Antwort erhalten. Als Anmerkung noch dazu, dass Xcode für Swift sogenannte Playgrounds bietet, mit denen du viele Sachen einfach testen und ausprobieren kannst. Gerade für jemanden, der eine Sprache oder das Programmieren an sich neu lernt, sind diese Playgrounds sehr hilfreich und soweit ich weiß gibt es nichts vergleichbares für Java.

Antwort
von PferrerJonas, 60

Also ich finde Java einfacher...

Kommentar von ThomasVegas ,

Danke. Damit ich das einordnen kann: Kennst du denn beide Sprachen?

Antwort
von wolfgang1956, 25

In der Schule lernen wir 9 … 13 Jahre unsere Muttersprache, mehrere Jahre Englisch und weitere Fremdsprachen. Welche Sprache war da „einfacher“ zu lernen?

Programmiersprachen sollte man ebenso sehen. Sie sind eben Sprachen, über die wir uns mit dem Compiler unterhalten. Wenn wir Swift bzw. Java „richtig“ schreiben, gibt es keine Syntaxfehler und ansonsten müssen wir die Fehler eben korrigieren!

„Einfach“ ist keine Programmiersprache! Wenn das so wäre, könnten wir uns auf der ganzen Welt nicht retten vor Programmierern … :-)

Antwort
von heyruubin, 24

Kleiner Tipp noch, ich lerne selber Swift und kann dir Kan Brinkmann's Kurs auf Udemy ans Herz legen.
Dort entwickelst du 15 Apps, sogar ein Instagram Klon, gibt's immer etwas günstiger. Einfach mal bei Google eingeben.

Antwort
von superman200, 52

Java natürlich

Kommentar von ThomasVegas ,

Danke. Damit ich das einordnen kann: Kennst du denn beide Sprachen?

Kommentar von PferrerJonas ,

Ja, aber ich habe mich mehr mit Java beschäftigt.

Keine passende Antwort gefunden?

Fragen Sie die Community