Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
NewsProgrammiersprache: Apple gibt Swift als Open Source frei
Apple hat die 2014 auf der WWDC vorgestellte Programmiersprache Swift unter Apache-2.0-Lizenz als Open Source freigegeben; ausgenommen ist lediglich die Laufzeitbibliothek. Das Unternehmen erhofft sich dadurch die Mithilfe der Entwicklergemeinde bei der Weiterentwicklung von Swift und bei der Portierung auf weitere Plattformen.
Swift soll ja als Sprache recht brauchbar und trotzdem einfach zu erlernen sein. Wäre schön wenn die Sprache auch Verbreitung außerhalb der Apfel Welt finden würde.
Netter Zug von Apple (auch wenn dieser Schritt nicht uneigennützig ist, sondern natürlich der Verbreitung von Swift helfen soll). Ebenso die Wahl der ziemlich liberalen Apache Lizenz.
Swift ist ohnehin ein wichtiger Schritt, da bisher den MacOS X /iOS Entwicklern im Grißen und Ganzen ja lediglich Objective-C zur Verfügung stand.
Und Swift führt halt auch gleich eine Reihe moderne Sprachfeatures ein gegenüber dem inzwischen doch etwas angestaubten Objective-C.
Swift ist so ein wenig das, was Scala für Java ist.
Und immerhin scheint bisher die Sache aufzugehen. Swift wird ja bereits von den Entwicklern gut angenommen.
Wie es mit einer Verbreitung (durch diesen Schritt) außerhalb der Apple-Welt sich entwickeln wird, bleibt abzuwarten. Denn da draußen ist natürlich auch die Konkurrenz viel stärker.
Swift ist ohnehin ein wichtiger Schritt, da bisher den MacOS X /iOS Entwicklern im Grißen und Ganzen ja lediglich Objective-C zur Verfügung stand.
Und Swift führt halt auch gleich eine Reihe moderne Sprachfeatures ein gegenüber dem inzwischen doch etwas angestaubten Objective-C.
Swift ist so ein wenig das, was Scala für Java ist.
Sehr schön, das wird die Sprache für einige Leute mehr interessant machen, weil das bisher rein proprietäre Format doch eher ein Abschrecker war.
Ich hoffe zum einen, dass es in mittelfristiger Zukunft neben Linux auch Windows-Support geben wird und zum anderen, dass Swift auf "nicht-iOS-Systemen" sein Performance-Versprechen einhalten kann. Mit Rust gibt es aus rein technischer Sicht ja einen ähnlichen Ansatz (nativ, moderne Features, teilweise Speicherüberwachung), aber da ist man bisher je nach Szenario "nur" ungefähr auf Java-Niveau.
andy_m4 schrieb:
Swift ist so ein wenig das, was Scala für Java ist.
Imho eine ziemlich treffende Beschreibung. Ich hätte mir noch zwei, drei Features mehr gewünscht (z.B. eher Expression als Statement-orientiert), aber das wäre wohl ein zu starker Bruch und zu funktional geworden. Was es leider auch in Swift 3 (Herbst 2016) nach wie vor nicht geben wird, ist eine Abstraktion für Multithreading.
Und ist trotzdem eine komplett neue Sprache
Zu der anderen Frage: es ist die Sprache Swift ansich betroffen, nicht Swift 1 oder Swift 2 oder Swift X. Ein Ziel ist ja gerade, dass sich die Sprache unter Open Source besser weiterentwickeln soll.
Was bitte soll man sich unter einer open source Programmiersprache vorstellen? OS compiler oder Bibliothek ist klar, aber die Sprachspezifikation selbst muss doch ohnehin öffentlich zugänglich sein.
Was bitte soll man sich unter einer open source Programmiersprache vorstellen? OS compiler oder Bibliothek ist klar, aber die Sprachspezifikation selbst muss doch ohnehin öffentlich zugänglich sein.
Nein, das ist schon ein unterschied. Nur weil ich die Sprachspezifikationen kenne, also weiß wie ich in einer Sprache programmiere, muss die Sprache selber, also deren Bibliotheken noch lange nicht open Source sein. Wenn ich wirklich in jede Funktion, also in die Funktionsdefinitionen, die mir eine Sprache zur Verfügung stellt schauen kann und nicht nur die Funktionsdeklarationen, kann mir das unter Umständen deutlich weiterhelfen bei der Fehlersuche.
Nein. Die Sprache ist nun Open Source (deutsch: quelloffen), weil ihre Quellen frei zugänglich sind. Und die Quellen einer Sprache sind nun mal die wesentlichen Bestandteile (konkrete Syntax, abstrakte Syntax, statische Semantik) in Code gegossen. Was du da die "Toolchain" nennst, ist alles Sprache.
@crvn075:
Ich kenne mich mit swift nicht aus, aber z.B. bei c++ ist die Sprache das, was im entsprechenden ISO Standard festgelegt wurde. Dieser enthält eine Beschreibung der Syntax, der Semantik und der Standardbibliothek.
Davon gibt es verschiedene (mehr oder weniger akkurate) Implementierungen (Compiler, Linker, Bibliotheken etc), von denen einige OS (gcc, clang) und andere (z.T.) CS (VS) sind. Das gleiche gilt auch für C# oder Java: Es gibt eine Sprachspezifikation (in manchen Fällen in Form eines ISO Standards, in anderen Fällen von einer Organisation herausgegeben) und dann gibt es verschiedene Implementierungen dieser Spezifikation (denkt mal an die ganzen verschiedenen JavaVMs oder VS + .net vs mono)
Lustiges Detail zum C++ Standardsdokument Das ist inzwischen wortwörtlich Quelloffen (man kann die latex files von github runter laden).
(Ich hab allerdings nicht überprüft, ob man auch die exakte Revision findet, die zur Erzeugung des offiziellen Standarddokuments genutzt wurde)
@Miuwa
Da will ich dir nicht widersprechen, das ist völlig richtig.
Eine richtige Spezifikation findet sich bei Swift bisher nicht. Es gibt die Language Reference, die auch formale Grammatik enthält, allerdings ist dort folgendes zu lesen:
The grammar described here is intended to help you understand the language in more detail, rather than to allow you to directly implement a parser or compiler.
Vermutlich wird sich das im Zuge der Open-Source-Entscheidung ändern müssen, wenn Apple wirklich will, dass die Community bei der Weiterentwicklung mithilft.
Ich bleibe deswegen dabei, dass die Sprache (im Sinne des formalen Beschreibungswerkzeugs) bisher nicht Open Source war, auch schon aus rein rechlichen Gründen, denn es handelt sich ja auch um ein schöpferisches Werk.
Apple selbst schreibt übrigens explizit:
On December 3, 2015, the Swift language, supporting libraries, debugger, and package manager were published under the Apache 2.0 license