Anzeige

Am Puls von Microsoft

Anzeige

Swift: Apple bringt seine Programmiersprache offiziell zu Windows

DrWindows

Redaktion
Es ist schon einige Zeit her, dass Apple mit der Programmiersprache Swift den Nachfolger des altgedienten Objective-C vorgestellt hat, welche den Vorgänger in den folgenden Jahren nach und nach ersetzen und zur bevorzugten Sprache für die Entwicklung von Apps unter...

Klicke hier, um den Artikel zu lesen
 
Anzeige
Nun ja - meine Begeisterung haelt sich in Grenzen. Swift war halt schon auf dem MacOS und iOS eine Fehlentwicklung aller ersten Ranges was den Syntax angeht: der Vorteil von Objective-C in Sachen Klarheit und Lesbarkeit wurde einfach aufgegeben.
Wie gut die in Objective-C geschriebenen Frameworks waren sieht man daran, dass deren APIs im Kern unveraendert seit NextStep bestehen - seit 1988...
 
Da ich mich ja auch ein wenig damit beschäftige: Bei den vielen Programmiersprache, Frameworks und Runtimes da draußen raucht mir einfach der Kopf... das erinnert mich an die Sache mit den Software-Standards, und die viele Linux-Distributionen. Schade, dass nicht mal viele an einigen wenigen Sachen arbeiten, sondern jeder meint, er könnte noch etwas Tolleres erfinden, und man dann vor lauter Vielfalt gar nicht mehr weiß, in welche Richtung man sich denn persönlich entwickeln soll. Allein schon die viele Sachen, die man bei Webentwicklung kennen muss...

Dazu kommt ja auch noch, dass sich die einzelnen Programmiersprachen in so einer Lichtgeschwindigkeit entwickeln, dass man kaum noch mit dem Lernen hinterher kommt.
 
Was heißt das jetzt... kann man unter Windows Apps für iOS programmieren, testen und dann auf AppleStore deployen? Bisher musste man ja ein OSX PC haben, um für iOS entwickeln zu können. Oder wird es ähnlich wie die MS Cross-Plattform-Framework in Visual Studio eine Art Emulation und kein iOS native App möglich sein.
Wird es dann auch eine Art iOS Simuator geben oder kann ich direkt von Windows auf das iPhobe/iPad deployen, um zu testen?

Oder soll Swift mit Windows Libraries kommen, so dass in Swift für Windows Applikationen entwickelt werden sollen, diese aber nicht auf dem iOS lauffähig sind? In diesem Falle, ist das jetzt nicht unbedingt eine "so prominente" Information wert. Warum soll ein Entwickler auf Windows Plattform von Java oder C++/C# oder den modernen Funktionalen Sprachen wir F# etc. auf Swift wechseln? Was bietet Swift für ein Mehrwert gegenüber diesen bereits auf Windows etablierten Sprachen?

Ein bisschen mehr Infos im Artikel, als Swift wird es auch auf Windows Plattform geben, wären nett gewesen.
 
Ich kann @chakko nur zustimmen. Zu meinen Urzeiten gab es ja schon genug Programmiersprachen aber jetzt ist mir der Überblick endgültig verloren gegangen. Als alter BASIC Hase, der unter Windows sehr gerne mit Visual Basic gearbeitet hat, somit auch äußert kompatibel zu Office, ist seit der Verlautbarung, dass VB.net auch eingestampft, wird zugunsten C oder F, leider der Spaß vergangen. Aber jetzt kommen sogar die Systemfremden Sprachen, das wird mir zu viel.
Hab schon immer überlegt meinem Kind die Programmierung nahe zu bringen aber selbst da fehlt mir schon der Ansatz welche Sprache da wohl die beste wäre um nicht in 10 Jahren festzustellen, dass es das auch nicht mehr gibt.

Es gibt ja tolle Bücher auch für Kinder aber selbst da wird sich gestritten welches denn nun die beste Sprache währe, aber ist es sinnvoll jetzt mit einer iOS Sprache auf Windows zu wechseln oder ist es so wie auch @Hedonist es schrieb nur wie in Visual Studio die Cross Möglichkeit in ihr zu programmieren?
Noch eine Sprache mehr braucht doch glaub ich kein Mensch. Oder doch?
 
@Hedonist: wenn Apples XCode (IDE) jemals auf Windows rauskommt, dann wissen die Mac-User was die Stunde geschlagen hat ;)
Das ganze duerfte eher eine PR-Geschichte sein um zu zeigen wie toll, portabel und somit zukunftssicher doch die Swiftentwicklung ist.
Es ist ja schlichtweg so: desto weniger Programmierer eine Programmiersprache und Platformlibraries beherrschen, desto teurer wird die Entwicklung.
-
Wo Objective C 2 und Swift gegenueber C#, Java, JavaScript etc. im Vorteil sind: die benutzen statt einer "teuren" Garbage Collection zur Laufzeit ein Automatic Reference Counting. Sprich: der Interpreter/Compiler erzeugt den Code den auch ein Mensch in Objective C 1.x haette coden muessen.
Letzteres war zwar relativ einfach wenn man die grundlegenden Konzepte verstanden hatte, aber mit ARC passieren halt weniger Fehler.
-
Das ist einer der wesentlichen Nachteile von C# - das wurde nicht entwickelt mit Devices im Hinterkopf wo CPU und RAM eine begrenzte Resource sind, sondern mit dem Ziel es dem Entwickler moeglichst einfach zu machen. Was ja auch der Fall ist bis er sich wundert warum seine App ab und zu "hakt" (sprich die GC "zuschlaegt")...
Aber das die GC von C# ueberhaupt so gut laeuft ist schon ein kleines technisches Wunder.
 
Was heißt das jetzt...
Ein bisschen mehr Infos im Artikel, als Swift wird es auch auf Windows Plattform geben, wären nett gewesen.

Du solltest dir nicht zu viele Hoffnungen machen, zumal die Seiten, die ich mir angesehen habe, auch nicht wesentlich mehr Informationen hatten. Apple hat Swift unter Ubuntu auch nur als Runtime bereit gestellt und ansonsten keine weiteren Anstrengungen in Form von Entwicklerwerkzeugen usw. unternommen. Das sind unabhängige Bestrebungen, zumindest über das LSP (Language Server Protocol) von Microsoft eine Anbindung an unterschiedliche IDEs und Texteditoren zu ermöglichen. Ob Microsoft selbst auch für Visual Studio oder zumindest VS Code was drauß macht, weiß ich nicht.

Fakt ist, dass es einzelne Unternehmen gibt, die Interesse an Swift unter Windows haben. Readdle hatte zum Beispiel angekündigt, dass der Mailclient Spark mit Swift und den wxWidgets auf Windows kommen soll. Fakt ist aber auch, dass Apple selbst anscheinend kein gesteigertes Interesse an Swift für Windows hat. Es gab ja damals Stellenanzeigen für neue Entwickler, die neue Multimedia-Apps (Apple Music, Apple Podcasts etc.) für Windows 10 entwickeln sollten - wohlgemerkt mit C++ und UWP, nicht mit Swift.
 
Ich habe das kostenlose vor Ort-Angebot (Coding Skills: Swift Playgrounds kennenlernen) genutzt, um mir einen Eindruck der Syntax zu verschaffen und fand sie recht lesbar. Es ist auch für Kinder ab 12 gedacht und reicht in jedem Fall, um die allgemeinen Konzepte der Programmierung zu verstehen.
Meine regelmässigen, praktischen Erfahrungen hörten nach Pascal, Basic und Assember (am Amiga) auf, aber die Grundlagen wie Schleifen, Funktionen, Variablen, Parameter etc. haben sich nicht dramatisch geändert.
 
@Rivn: hier mal ein konkretes Beispiel zur Syntax:
aus Objective C:

[object calculateVolumeByWidth:abs(x2-x1) height:abs(h2-h1) depth:abs(d2-d1)]

wird in Swift:

object.calculateVolumeBy(width:abs(x2-x1), height:abs(h2-h1), depth:abs(d2-d1))

Allerdings besteht das "Problem" darin, dass man die Aufrufe ja auch auf verschiedene Arten "schachteln" kann:

[[o1 display:[[o2 calc] convertTo:[o1 units]]

und aus:

[o1 methodWithParameter:v]
[o1 methodWithParameter:v1 andParameter:v2]

wird daraus in Swift ein eher "unklares":

o1.methodWith(parameter:v)
o1.methodWith(parameter:v1, andParameter:v2)

Übrigends ein Problem was fast alle Objective-C Bridges der verschiedensten Programmiersprachen haben (z.B. PyObjc). Ich hatte allerdings mal eine eigene Python Bridge geschrieben die das wesentlich eleganter gelöst hat und kann daher sagen: was die Flexibilität der internen Runtime ist Objective-C einfach ungeschlagen...
-
Das ganze sieht für manche erstmal "nicht so wild" aus, aber glaub mir: den Syntax dermassen zu ändern (das "Messages" an Objekte nicht mehr über eckige Klammern erfolgen) hat Konsequenzen, insbesondere auf die Denkweise mit der man ein Framework benutzt oder gar ein Neues gestaltet.
 
@Miine
Mit deiner Meinung bist du wohl eher die Ausnahme. In 15 Jahren Entwicklung in verschiedensten Programmiersprachen habe ich bisher nur Entwickler getroffen, die über den undurchdachten und unnötig aufgebauschten Syntax von Objective-C fluchen und den Wechsel zu Swift als Segen und Arbeitserleichterung empfinden.

Wer die meistbenutzten Sprachen wie Java, PHP, C# beherrscht kommt auch einfach mit Swift klar und erkennt schnell die vielen Vorteile. Gleichzeitig erkennt jemanden der viele Sprache nutzt auch, dass Objective-C eher einen Ausnahmesyntax nutzt, wodurch der Einstieg stark erschwert wird.

Ich musste mich damals als Web- und Android-Entwickler von PHP, Javascript, Java in Objective-C einarbeiten und habe es als höchst unangenehm empfunden. Nun entwickle ich die App neu in Swift und meine iOS-Arbeit macht mir wieder Spaß. Auch die starke Ähnlichkeit zum neuen Kotlin (aus dem Hause Jetbrains für die moderne Android-Entwicklung) macht die Entwicklung von nativen Apps für mehrere Plattformen deutlich leichter und damit effizienter.

Lange Rede kurzer Sinn: Einfach mal offen für neue Technologien sein und nicht von sich auf andere schließen. Siehe dazu auch alle Meinungsumfragen von GitHub und Stackoverflow.

Ich freue mich schon drauf, wenn Objective-C nur noch in veralteten Lehrbüchern verwendet wird.
 
Anzeige
Oben