Pouvez-vous utiliser Swift comme langage de programmation Web?

Pourriez-vous techniquement utiliser Swift comme langage de programmation pour créer un site Web / une application Web?


Mise à jour: On dirait que beaucoup de gens y travaillent.

  • https://github.com/PerfectlySoft/Perfect
  • https://github.com/glock45/swifter
  • https://github.com/grzegorzleszek/HTTPSwiftServer
  • https://github.com/izqui/Taylor
  • https://github.com/crossroadlabs/express
  • https://github.com/IBM-Swift/Kitura
  • https://github.com/vapor/vapor

Support officiel d’Apple: https://swift.org/server-apis/

En théorie, bien sûr.

Tout programme pouvant générer du texte brut peut également être utilisé pour CGI (Common Gateway Interface), qui inclut également Swift.

Par conséquent, oui, vous pouvez utiliser Swift pour la programmation Web. Cependant, à l’heure actuelle, il n’existe pas de bibliothèques supplémentaires (comme dans PHP ou EJB / JSP) pour faciliter ce processus. Jetez un coup d’oeil à quelques frameworks Web populaires pour Swift tels que Vapor .

Je ne suis pas certain de l’activité de ce sujet, mais au cas où quelqu’un le trouverait à l’avenir, je voudrais annoncer ici que j’ai commencé à travailler sur un framework pour écrire des applications FastCGI dans Swift.

Bien sûr, vous pouvez utiliser n’importe quel framework Web Objective-C (bien qu’il y en ait peu), et vous pouvez certainement utiliser Swift comme langage de script pour vider les chaînes HTML à régurgiter par CGI. Cependant, (je vais faire tout ce qui est philosophique ici), je pense que se contenter d’une telle approche n’est pas très “swift-like” si j’ose utiliser le terme. Les concepteurs de Swift ont eu beaucoup de mal à s’assurer que c’était plus que “juste” Obj-C sans les (contraintes de) C (en fait, je souhaiterais presque qu’ils n’aient pas dit ça car c’est souvent mal cité). Swift est également beaucoup plus proche de la famille fonctionnelle que Obj-C (tout en conservant une orientation d’object solide ET en réussissant à append une scriptabilité basée sur Python). Cela ouvre un tout nouveau monde de choix de conception qu’il faut, à mon avis, explorer. Aussi, tapez la sécurité … mais je m’écarte …

Tout cela pour dire que j’ai décidé de créer un «microframework» modulaire qui vous permettra d’écrire des applications Web dans Swift à un très haut niveau. Au moment d’écrire ces lignes, je le classerais comme une preuve de concept fonctionnelle, mais ce n’est toujours pas aussi abstrait que je le souhaiterais et manque un certain nombre de fonctionnalités clés qui seraient nécessaires pour une utilisation réelle. Les consortingbutions sont bien sûr les bienvenues. J’espère que quelqu’un trouve cela utile. https://github.com/ianthetechie/SwiftCGI

Swift fonctionne parfaitement comme langage de programmation Web. Vous pouvez faire du script comme python (pour un développement rapide ou des tâches simples) et comstackr plus tard le même code avec XCode (pour la vitesse):

Copiez le script suivant dans / Bibliothèque / WebServer / CGI-Executables / TestCGI sur votre Mac (OSX Mavericks ou Yosemite avec Xcode 6.x installé). Rendez-le exécutable avec chmod +x TestCGI . Avec httpd, appelez http://localhost/cgi-bin/TestCGI . Vous obtiendrez les parameters d’appel renvoyés …

 #!/usr/bin/env xcrun swift import Foundation print("Content-Type: text/html") print("Content:") print("") print("1. Process.argument(s):
") for s in Process.arguments { print(s + "
") } print("
") let env: Dictionary = NSProcessInfo().environment if let requestMethod = env["REQUEST_METHOD"] { print("2. Request method is: \(requestMethod)

") } print("3. Number of environment variables: \(env.count)

") print("4. List environment:
") for key in env.keys { print("\(key) == \(env[key]!)
") }

Apple a maintenant (12/03/15) ouvert la bibliothèque de la Fondation ( https://github.com/apple/swift-corelibs-foundation ) pour permettre la compilation sur les serveurs Linux .

Oui, vous pouvez créer des applications Web dans Swift. Tailor est l’un des frameworks web qui vous permet de le faire. Son code source est sur Github .

Oui, vous pouvez.

Swift fait la même chose qu’ObjectiveC, mais le fait plus facilement. Par conséquent, vous pouvez utiliser une interface CGI très simple (voir http://www.sveinbjorn.org/objectivecgi ) pour parsingr et répondre aux demandes des clients (GET et POST) du côté serveur.

Comme Swift est fort en manipulation de chaînes, il se situera quelque part entre ObjectiveC et PHP / Perl en termes d’abstraction. À bien des égards, une interface SQLite ou MySQL n’est même pas nécessaire. Il suffit de déposer vos données dans un fichier texte sur le serveur.

Selon les autres réponses, vous pouvez utiliser Apple Swift de différentes manières dans le cadre de la mise en œuvre d’un site Web ou d’une application.

En outre, d’autres sociétés développent également des compilateurs de langue Swift qui étendent encore plus les capacités. Par exemple, RemObjects a récemment annoncé que dans la prochaine version majeure de leur compilateur Elements, ils introduiraient un nouveau frontal de compilateur baptisé “Silver”, qui est un compilateur Swift.

Comme front-end de leur technologie de compilateur existante qui prend déjà en charge ObjectPascal (Oxygene) et C # (Hydrogene), cela signifie que vous pourrez développer des applications .NET et Java (y compris Android) en utilisant le langage Swift. Avec le support .NET, cela signifie évidemment que vous pouvez utiliser Swift pour créer un site Web / une application ASP.NET.

Notez qu’il s’agit d’un compilateur natif pour chaque plate-forme – il n’y a pas de cadre de traduction de code source / de compilation croisée ou d’abstraction de la plate-forme ou de compatibilité, comme avec (par exemple) Xamarin. Le compilateur RemObjects produit un code natif spécifique à la plate-forme (c.-à-d. MSIL pour .NET, Java Bytecode pour JVM, etc.). Il permet également au développeur de consumr les bibliothèques de plate-forme en mode natif. C’est-à-dire que lors du développement pour Cocoa, les classes Cocoa sont exposées directement dans le langage, y compris les classes Java lors du développement pour Java, du framework .NET pour .NET, etc.

C’est le cas, que vous utilisiez les interfaces frontales ObjectPascal, C # ou Swift (et que vous puissiez combiner et associer les langues dans un projet, si vous le souhaitez).

La version 8.0 a été en version bêta pendant un moment déjà, donc les détenteurs de licence Elements existants ont déjà joué avec. 🙂

Dans l’article Cocoa with Love, vous pouvez trouver un exemple de serveur HTTP. Il est écrit en Obj-C: http://www.cocoawithlove.com/2009/07/simple-extensible-http-server-in-cocoa.html

Voici ma tentative de créer une version rapide: https://github.com/grzegorzleszek/HTTPSwiftServer

En naviguant sur le Web, j’ai trouvé une version rapide du serveur HTTP. Cela vaut la peine de regarder: https://github.com/glock45/swifter