Kun je Swift als webprogrammeertaal gebruiken?

Kun je Swift technisch gezien gebruiken als programmeertaal voor het bouwen van een website/webapp?


Update: het lijkt erop dat veel mensen hieraan werken.


Officiële ondersteuning van Apple: https://swift.org/server-apis/


Antwoord 1, autoriteit 100%

In theorie natuurlijk.

Elk programma dat platte tekst kan uitvoeren, kan ook worden gebruikt voor CGI (Common Gateway Interface), waaronder Swift.

Daarom, ja, u kunt Swift gebruiken voor webprogrammering. Momenteel zijn er echter geen extra bibliotheken (zoals in PHP of EJB/JSP) om dit proces gemakkelijk voor u te maken.Bekijk enkele populaire webframeworks voor Swift, zoals Damp.


Antwoord 2, autoriteit 51%

Ik weet niet zeker hoe actief dit onderwerp nog is, maar voor het geval iemand dit in de toekomst vindt, wil ik hier aankondigen dat ik ben begonnen met werken aan een raamwerk voor het schrijven van FastCGI-applicaties in Swift.

Natuurlijk kun je elk Objective-C-webframework gebruiken (hoewel er nogal weinig zijn), en je kunt Swift zeker gebruiken als scripttaal om HTML-strings te dumpen die door CGI moeten worden uitgebraakt. Echter, (ik ga hier allemaal filosofisch worden) denk ik dat genoegen nemen met een dergelijke benadering niet erg “Swift-achtig” is als ik de term durf te gebruiken. De Swift-ontwerpers hebben veel moeite gedaan om ervoor te zorgen dat het meer is dan “alleen” Obj-C zonder de (beperkingen van) C (in feite zou ik bijnawillen dat ze dat sindsdien niet meer hadden gezegd het wordt zo vaak verkeerd geciteerd). Swift staat ook veel dichter bij de functionele familie dan Obj-C (met behoud van solide objectoriëntatie EN erin geslaagd om Python-achtige scriptbaarheid toe te voegen). Dit opent een hele nieuwe wereld van ontwerpkeuzes waarvan ik denk dat ze moeten worden verkend. Typ ook veiligheid… maar ik dwaal af…

Dit alles om te zeggen, ik heb het op mij genomen om een ​​modulair “microframework” te maken waarmee je web-apps in Swift op een zeer hoog niveau kunt schrijven. Op het moment van schrijven zou ik het classificeren als een functionele proof of concept, maar het is nog steeds niet zo abstract als ik zou willen en mist een aantal belangrijke functies die nodig zijn voor gebruik in de echte wereld. Bijdragen zijn uiteraard welkom. Hoop dat iemand dit nuttig vindt. https://github.com/ianthetechie/SwiftCGI


Antwoord 3, autoriteit 47%

Swift werkt perfect als webprogrammeertaal. Je kunt python-achtige scripting uitvoeren (voor snelle ontwikkeling of eenvoudige taken) en later dezelfde code compileren met XCode (voor snelheid):

Kopieer het volgende script naar /Bibliotheek/WebServer/CGI-Executables/TestCGI op uw Mac (OSX Mavericks of Yosemite met Xcode 6.x geïnstalleerd). Maak het uitvoerbaar met chmod +x TestCGI. Met httpd gestart bel http://localhost/cgi-bin/TestCGI. U krijgt een echo van de oproepparameters…

#!/usr/bin/env xcrun swift
import Foundation
print("Content-Type: text/html")
print("Content:")
print("")
print("1. Process.argument(s):<br />")
for s in Process.arguments {
    print(s + "<br />")
}
print("<br />")
let env: Dictionary = NSProcessInfo().environment
if let requestMethod = env["REQUEST_METHOD"] {
    print("2. Request method is: \(requestMethod)<br /><br />")
}
print("3. Number of environment variables: \(env.count)<br /><br />")
print("4. List environment:<br />")
for key in env.keys {
    print("\(key) == \(env[key]!)<br />")
}

Apple heeft nu (12/03/15) de Foundation-bibliotheek open source (https://github.com/apple /swift-corelibs-foundation) om compilatie op Linux-serverstoe te staan.


Antwoord 4, autoriteit 4%

Ja, dat kan.

Swift doet hetzelfde als ObjectiveC, maar doet het gemakkelijker. Daarom zou je een heel eenvoudige CGI-interface kunnen gebruiken (zie http://www.sveinbjorn.org/objectivecgi) om clientverzoeken (zowel GET als POST) aan de serverzijde te analyseren en te beantwoorden.

Aangezien Swift sterk is in het manipuleren van strings, zal het qua abstractie ergens tussen ObjectiveC en PHP/Perl zitten. Voor veel doeleinden is een SQLite of MySQL frontend niet eens nodig. Zet uw gegevens gewoon in een tekstbestand op de server.


Antwoord 5, autoriteit 4%

Ja, u kunt web-apps maken in Swift. Tailoris een van de webframeworks waarmee je dat kunt doen. De broncode staat op Github.


Antwoord 6, autoriteit 2%

Volgens de andere antwoorden kunt u Apple Swift op allerlei manieren gebruiken als onderdeel van een website/app-implementatie.

Bovendien ontwikkelen andere bedrijven echter ook Swift-taalcompilers die de mogelijkheden nog verder uitbreiden. RemObjects heeft bijvoorbeeld onlangs aangekondigddat in de volgende grote release van hun Elements-compiler, zouden ze een nieuwe compiler-front-end introduceren, genaamd “Silver”, een Swift-compiler.

Als frontend op hun bestaande compilertechnologie die ObjectPascal (Oxygene) en C# (Hydrogene) al ondersteunt, betekent dit dat je .NET- en Java-applicaties (inclusief Android) kunt ontwikkelen met de Swift-taal. Met .NET-ondersteuning betekent dit uiteraard dat u Swift kunt gebruiken om een ​​ASP.NET-website/-app te maken.

Merk op dat dit een native compiler is voor elk platform – er is geen broncodevertaling/cross-compilatie of platformabstractie of compatibiliteitsframework betrokken, zoals bij (bijvoorbeeld) Xamarin. De RemObjects-compiler produceert platformspecifieke, native code (d.w.z. MSIL voor .NET, Java Bytecode voor JVM enz.). Het stelt de ontwikkelaar ook in staat om native platformbibliotheken te gebruiken. d.w.z. bij het ontwikkelen voor Cocoa worden Cocoa-klassen direct in de taal weergegeven, dito Java-klassen bij het ontwikkelen voor Java, .NET-framework voor .NET enz.

Dit is het geval, of u nu de front-ends ObjectPascal, C# of Swift gebruikt (en u kunt desgewenst talen mixen en matchen in een project).

De 8.0-release is al een tijdje in bèta, dus bestaande Elements-licentiehouders hebben er al mee gespeeld. 🙂


Antwoord 7, autoriteit 2%

In het artikel Cocoa with Love vind je een voorbeeld van een HTTP-server. Het is geschreven in Obj-C:
http://www.cocoawithlove.com/2009 /07/simple-extensible-http-server-in-cocoa.html

Hier is mijn poging om een ​​snelle versie te maken:
https://github.com/grzegorzleszek/HTTPSwiftServer

Bij het surfen op het web heb ik een hele mooie snelle versie van de HTTP-server gevonden. Het is de moeite waard om een ​​kijkje te nemen:
https://github.com/glock45/swifter

Other episodes