Swifts Gegenwart und Zukunft: Fragen für Erwachsene

    Bald sind zwei Jahre vergangen, seit die Swift-Sprache offiziell eingeführt wurde, aber ihr Zustand bleibt ungewiss. Auf der einen Seite steht es in der Liste der beliebtesten Sprachen von Stack Overflow an zweiter Stelle - es ist klar, dass den Entwicklern der Versuch von Apple gefallen hat, Objective-C zu verbessern. Andererseits ist es nicht gleichzeitig das meistgenutzte Top - es gibt immer noch Objective-C. Außerdem: Es wird berichtet, dass Apple selbst in iOS nicht wirklich seine eigene Sprache verwendet, sondern nur einen Taschenrechner darauf implementiert hat.

    Einer der Gründe ist, dass die Sprache noch nicht die Stabilität von ABI erreicht hat: Jetzt garantiert niemand mehr, dass Ihr Code nach der Veröffentlichung seiner neuen Version nicht kaputt geht. Apple nennt die Korrektur dieser Situation jedoch als oberste Priorität. Und vor kurzem erschien am HorizontVersion 3.0, die eine Menge neuer bringen sollte. Bedeutet das alles, dass es an der Zeit ist, Swift ernst zu nehmen, oder ist die Angemessenheit seiner Verwendung immer noch eine große Frage?



    Wir haben uns entschlossen, nach der gegenwärtigen und zukünftigen Sprache von drei Spezialisten großer Unternehmen zu fragen, die Swift bereits einsetzen und mit dem Thema aus erster Hand vertraut sind. Unsere Fragen wurden beantwortet:

    • Maxim Sokolov (Avito);
    • Igor Kashkuta (Badoo);
    • Egor Tolstoy (Rambler & Co).



    Wie aktiv ist Swift in Ihrem Unternehmen?


    Maxim Sokolov
    Avito entwickelt mehrere mobile Produkte. Unser Team arbeitet an drei mobilen Anwendungen. Wir nutzen Swift aktiv und werden es auch weiterhin nutzen. Eine unserer Apps ist vollständig in Swift geschrieben und im App Store erhältlich. Die anderen beiden haben wir angefangen, in Objective-C zu schreiben, aber im Moment ist der gesamte neue Code nur in Swift geschrieben.

    Igor Kashkuta
    Wir verwenden nicht nur Swift, sondern haben auch einen Teil unseres Projekts auf GitHub veröffentlicht . Chatto war das erste Zeichen, eine Aufschlüsselung der Sprache in unserer CI-Infrastruktur und des gesamten Projekts - natürlich nicht ohne Probleme, aber es war ein Erfolg. In Zukunft planen wir, Swift für den Rest der Anwendung zu verwenden.

    Egor Tolstoy
    Derzeit entwickeln wir zwei Projekte bei Swift. Einer von ihnen, ursprünglich in dieser Sprache entwickelt, sollte innerhalb eines Monats im App Store erscheinen. Die zweite, Rambler. Mail, wurde ursprünglich in Objective-C geschrieben, aber nach der ersten Veröffentlichung im Rahmen des Refactoring begann das Team, sie schrittweise in eine neue Sprache zu übersetzen.

    Was hat diese Erfahrung gebracht? Welche Fallstricke sind Ihnen begegnet? Empfehlen Sie anderen die Verwendung von Swift, und in welchen Fällen?


    Maxim Sokolov Die
    Verwendung von Swift hat sowohl Vor- als auch Nachteile. Ich würde die Nachteile einbeziehen, erstens Probleme aus der Xcode-IDE - es kommt zu Abstürzen des Compilers, Xcode selbst, Syntaxhervorhebungen können abfallen. Zweitens ist die Sprache selbst noch sehr jung, manchmal fehlen einige Tools: Zum Beispiel fehlt der Community noch ein angemessenes Mock-Framework, um Unit-Tests schreiben zu können. Das gute alte OCMock, das in Swift Unterstützung zu wünschen übrig lässt, wird schmerzlich vermisst.
    Einige Sprachkonstrukte können die Kompilierungszeit erheblich beeinflussen, solche Probleme sind manchmal dumm. Ein großes Problem ist derzeit auch die mangelnde Unterstützung für das Refactoring mit Xcode. Wir müssen die bevorstehende Veröffentlichung von Swift 3.0 in Betracht ziehen, die die Abwärtskompatibilität gefährdet. Hoffen wir, dass Apple Schritte unternimmt, um die Situation zu verbessern.

    Trotz aller Mängel würde ich Entwicklern dennoch empfehlen, Swift zu verwenden. Apple entwickelt es sehr aktiv und wir sehen Interesse an der Sprache von anderen großen Unternehmen wie IBM. Unternehmen sollten über diese Investition in die Zukunft nachdenken, damit Avito bereits eine App im App Store hat, die vollständig in Swift geschrieben ist. Swift hilft uns, die Produktqualität signifikant zu verbessern und wirkt sich positiv auf die Entwicklungsgeschwindigkeit aus. Durch strikte Eingabe der Sprache können wir sichereren Code schreiben, dessen Verhalten vorhersehbar ist. Neue Sprachkonstrukte, wie z. B. Generika, die in Objective-C nicht verfügbar sind, ermöglichen es Ihnen, die Architektur der Anwendung als Ganzes neu zu betrachten und Code zu schreiben, der effektiv wiederverwendet werden kann.

    Igor Kashkuta
    Wir sind auf nichts gestoßen, was nicht überwunden werden konnte, alle Probleme sind gelöst. Wo war der Fehler in der Sprache (übrigens wird er oft durch neue Versionen des Compilers behoben, gut gemacht), wo es notwendig war, den alten Code zu verschärfen, damit er schnell verwendet werden konnte? Aber insgesamt läuft alles ziemlich gut. Persönlich sehe ich keinen Grund, um ein neues Projekt auf Objective-C zu starten, schreiben Sie sofort auf swift. Sofern Sie keine Interoperabilität mit C ++ benötigen, müssen Sie diesen Teil auf objc ausführen, der Swift tut dies einfach nicht. Aber wieder, und das ist lösbar, können Sie es auf objc tun und die schnelle von oben jammen.

    Egor Tolstoy
    Die Erfahrung ist interessant - erstens haben wir viele verschiedene Fallstricke aufgefangen und gelernt, mit ihnen umzugehen. Zweitens erkannten sie, dass es dringend erforderlich war, einen Code-Generator zu schreiben - die Zeit, die zum manuellen Erstellen von Mokka-Klassen zum Schreiben von Unit-Tests benötigt wird, ist einfach unrealistisch. Natürlich ist es ihnen wie allen anderen gelungen, Probleme mit der Kompilierungszeit zu lösen. Jetzt beschäftigen wir uns nur mit der Optimierung.
    Was die Empfehlungen betrifft - eine gute Frage. Wie in den meisten anderen Fällen kann es einfach keine eindeutige Antwort geben. Sie müssen sich ein bestimmtes Projekt, sein Team und die Geschäftsanforderungen ansehen. Wenn das Projekt sehr umfangreich und langwierig ist - persönlich neige ich immer noch zu Objective-C.

    Was glaubst du, wird Swift im nächsten Jahr passieren - wird es zum Beispiel mit der Veröffentlichung von Version 3.0 einen großen Anstieg der Popularität geben? Könnte es auch außerhalb des iOS-Ökosystems gefragt sein?


    Maxim Sokolov
    Ich kann bereits die große Popularität von Swift feststellen. Und im kommenden Jahr wird Swift voraussichtlich auch außerhalb der mobilen Entwicklung für iOS zum Einsatz kommen. Swift ist ein Open-Source-Projekt, und wir können bereits die Entstehung von Frameworks für die Arbeit mit beispielsweise Backend'om und Datenbanken beobachten.

    Igor Kashkuta
    Aus meiner Sicht wird Version 3.0 eine ganz normale Version 1.0 sein - Kinderprobleme werden geschlossen, Anleitungen erscheinen, Package Manager ist da, Quellcodes sind beigefügt. Ich erwarte keinen großen Popularitätssprung, die Sprache wird sich nicht grundlegend ändern - es gibt keine Hindernisse, jetzt etwas zu tun. Ich gehe davon aus, dass das Wachstum reibungsloser vonstatten geht, wenn neue Projekte auftauchen - es scheint fast keinen Grund zu geben, mit Objective-C etwas Neues zu beginnen.

    Für den Einsatz außerhalb von iOS (OS X, watchOS und tvOS) ist hier alles nicht so rosig. Mit iOS ist alles klar, es gab bisher keine Wahl, auch in Zukunft nicht. Swift als Sprache hat keine "Chips", die Entwickler ermutigen würden, sie zu verwenden. Vergleichen Sie mit anderen: Go ist einfach und hat Goroutinen; Skala über strenges und flexibles Tippen, aber basierend auf einer mehrjährigen JVM-Basis; Clojure - mit einer interessanten Ideologie, die in die Sprache eingebaut ist und auf der mehrjährigen JVM-Basis basiert; Mit JavaScript in Form von Node.js können Sie auf dem Client und dem Server denselben Code verwenden, der den Weg zu isomorphen Anwendungen ebnet. Das Programmiermodell im Knoten ist für die meisten Webentwickler sehr einfach und verständlich. Rust ist solch ein neues sicheres C ++, in dem alles unter Kontrolle ist, mit einem klaren Overhead und der Fähigkeit, es ohne Laufzeit zu benutzen.

    Swift nimmt jedem etwas ab, es ist sehr gut, aber ich verstehe immer noch nicht, welche Nische es besetzen kann. Ich selbst bin sehr interessiert, aber alles, was bleibt, ist zu beobachten.

    Egor Tolstoy
    Ich denke, dass der Hype im kommenden Jahr allmählich nachlassen wird. Auf der anderen Seite wächst die Community, es werden neue architektonische Ansätze, Komponenten und Bibliotheken entwickelt, die das Leben der Entwickler vereinfachen - es wird also mehr Argumente für ihre Verwendung geben.
    Es ist zu früh, um über die Nachfrage außerhalb des Ökosystems zu sprechen. Meiner Meinung nach wird die Zeit es zeigen.




    Am 4. Juni werden auf der Mobius- Konferenz in St. Petersburg alle Befragten Präsentationen zur iOS-Entwicklung halten. Einer ihrer Berichte wird sich direkt mit Swift befassen: Maxim Sokolov wird detailliert über die Verwendung von Generika darin sprechen . Wenn Sie nach diesem Material das Gefühl haben, dass es Zeit für Ihr Projekt ist, Swift zu verwenden - verpassen Sie nicht :)

    Jetzt auch beliebt: