Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 178 reacties

Apple heeft maandag tijdens zijn eigen ontwikkelaarsconferentie WWDC de programmeertaal Swift aangekondigd, die als alternatief voor Objective-C moet gaan dienen voor Apple-software. Ook kwam het bedrijf met een nieuw ontwikkelplatform voor games: Metal.

Swift gebruikt dezelfde llvm-compiler en runtime als Apple's implementatie van Objective-C. Hierdoor kunnen beide talen naast elkaar draaien in hetzelfde programma. Daarnaast kan Swift net als Objective-C de Cocoa- en Cocoa Touch-api's aanspreken.

Apple claimt dat Swift anderhalf keer sneller een complex object kan sorteren dan Objective-C. In Playgrounds van Xcode kan Swift worden aangeroepen en is de output van de code direct zichtbaar. Dat kan onder andere nuttig zijn voor game-ontwikkelaars die willen zien wat hun script doet, zo toonde Apple tijdens de conferentie waarbij ook iOS 8 en Mac OS X 'Yosemite' werden aangekondigd.

Met Swift kunnen programma's voor zowel iOS als OS X worden gemaakt. Apple zegt dat de taal per direct beschikbaar is en dat ontwikkelaars vanaf dit najaar applicaties die zijn geschreven in Swift, kunnen indienen.

Behalve de nieuwe programmeertaal kondigde Apple maandag ook Metal aan, een nieuw ontwikkelplatform voor games. Het platform is specifiek gebouwd voor de nieuwe A7-processor van Apple, die de fabrikant gebruikt in de iPhone 5s, iPad Air en iPad mini Retina, en zou volledige toegang hebben tot de rekenkracht van de gpu. Met Metal wil Apple OpenGL vervangen als standaard voor graphics in games en apps. In een korte demonstratie liet Apple zien dat het met Metal mogelijk is om tientallen vissen in een vijver apart van elkaar te laten bewegen.

Apple Swift

Moderatie-faq Wijzig weergave

Reacties (178)

Kan ik als niet Apple gebruiker toch op een of andere manier aan een (PDF) versie van het Swift iBook komen? Zou ik wel relaxt vinden om mezelf een beetje in te kunnen lezen.
Daar ben ik dus ook naar op zoek. 't Schijnt dat je de ePub wel ergens uit je library kan halen en die is dat weer te openen op bijvoorbeeld een Android device.

[Edit]
Zie hier: https://docs.google.com/f...peg22cTJLWk5vSC1vUWs/edit

[Reactie gewijzigd door HarryL op 3 juni 2014 09:41]

Awesome! Thanks!
Tsja.

Ik ben een programmeur en als programmeur zijnde kan ik wel begrijpen dat ze Objective C willen vervangen door iets nieuws. Het is alleen jammer dat de syntax van Swift op allerlei fronten afwijkt van C# en bijv. Java.

Sommige simpele dingen hadden ze best hetzelfde kunnen houden.

var artist: String

WTF. Wat is er mis met:

String artist;

En if statements die geen haakjes meer hebben, punt comma niet altijd meer verplicht. Het maakt dingen eerder onduidelijk, dan duidelijker.

Maar goed, ten opzichte van Objective C is het wel een enorme verbetering. Ik had alleen gehoopt dat ze de boel wat meer zouden opsplitsen zoals bij .NET. Kortom: een runtime waarop je meerdere talen kan gebruiken.

Dan waren er snel genoeg implementaties gekomen in Python, Java, etc.

Het is gewoon jammer dat het niet echt open is. Juist in een tijd dat de concurrentie steeds meer van de open source en open standaarden is, komt Apple hiermee :P Zelfs Microsoft heeft .NET open source gemaakt.

Anyways.. ik ga Swift wel leren en gebruiken. Al is het alleen maar om van dat oude Objective C af te zijn :P Maar wat mij betreft zit de toekomst hem echt in open platformen en standaarden.

Als ontwikkelaar begint het tegenwoordig trouwens wel wat spannend te worden waar je nou de focus op moet leggen qua carriere, omdat de versplintering steeds verder toeneemt. Straks moet je standaard 5 verschillende programmeertalen kennen en 100 api's :D
Sommige simpele dingen hadden ze best hetzelfde kunnen houden.
In vergelijking met welke taal? In vergelijking met Obj-C is dit een verademing. Voor .NET'ers is het enorm goed leesbaar. Het is bovenal een nette taal die goed in elkaar zit.
var artist: String

WTF. Wat is er mis met:

String artist;
Je bent C# ontwikkelaar? Niet voor iedereen is "String artist;" dagelijkse kost. In het onderste voorbeeld is de variabele altijd mutable. Apple heeft "let" en "var" in het leven geroepen om een expliciet onderscheid te maken tussen mutable en immutable variabelen (of beter gezegd: constanten en variabelen). Dat is de reden. Het zijn concepten uit go en functionele talen die wat mij betreft zeer welkom zijn.
En if statements die geen haakjes meer hebben, punt comma niet altijd meer verplicht. Het maakt dingen eerder onduidelijk, dan duidelijker.
Tja, iedere taal doet dat weer op een andere manier. Python heeft ook geen punt-comma en Go heeft ook geen haakjes.
Ik had alleen gehoopt dat ze de boel wat meer zouden opsplitsen zoals bij .NET. Kortom: een runtime waarop je meerdere talen kan gebruiken.
Dat is het ook. Er zijn bindings voor .NET (xamarin), obj-c, c, c++, python, ruby... enz.. En nu ook swift. Uiteraard niet dezelfde architectuur als .NET, maar je kunt tegenwoordig voor Cocoa en Cocoa Touch ontwikkeling gewoon je eigen taal kiezen en gaan. Je kunt zo veelal ook gewoon combineren en uitwisselen.
Het is gewoon jammer dat het niet echt open is. Juist in een tijd dat de concurrentie steeds meer van de open source en open standaarden is, komt Apple hiermee :P Zelfs Microsoft heeft .NET open source gemaakt.
Daar is eigenlijk nog niets over bekend. Het zou goed kunnen zijn dat apple de compiler open maakt. De reference is in elk geval gewoon open en bloot te lezen. Zie https://developer.apple.c...d/TP40014097-CH29-XID_453
Als ontwikkelaar begint het tegenwoordig trouwens wel wat spannend te worden waar je nou de focus op moet leggen qua carriere, omdat de versplintering steeds verder toeneemt. Straks moet je standaard 5 verschillende programmeertalen kennen en 100 api's
Ik weet niet of je klaar bent voor het aannemen van advies, maar ik zou me inderdaad breed inlezen. Ik begon ooit met Clipper, C, C++, daarna VB, daarna C#, Java en nu Obj-C. Allemaal met andere API's. Het is naar mijn idee een voldongen feit dat je je als software ontwikkelaar moet blijven bijscholen.

[Reactie gewijzigd door mOrPhie op 3 juni 2014 09:53]

Ik ben voornamelijk .NET ontwikkelaar (op mijn werk), maar werk ook met Java (vooral thuis icm open source) en Objective C (af en toe apps maken voor mijn werk). En een heleboel JavaScript de laatste tijd (AngularJS etc, zowel thuis als op mijn werk).

Ten opzichte van Objective C is Swift uiteraard een verbetering.

De laatste tijd verandert alles zo ontzettend snel dat je er duizelig van wordt. En nu dus ook weer Swift leren. Als ik het ibook zo lees, geloof ik wel dat ik het snel zal oppikken (sneller dan Objective C), maar goed..

Ik kom steeds meer in aanraking met wat elke ontwikkelaar gedurende zijn leven meemaakt: ik ben in de 30 en heb steeds meer verplichtingen en minder tijd. Het wordt dus steeds moeilijker om nieuwe dingen te leren en bij te blijven. Zeker zodra er kinderen komen etc.

De tijden dat je hele weekenden doorhaalde om iets nieuws te leren zijn op een gegeven moment voorbij. Dus moet je ergens keuzes maken en we leven nu in een tijd dat veel verandert. Als ik zie dat er bij Microsoft al aan de basis van ASP.Net getornd wordt (denk aan OWIN en Katana), zaken als IronPython om de hoek komen kijken, dan wordt het vrij duidelijk dat je ook als C# ontwikkelaar zo naderhand op moet gaan passen.

Microsoft.NET gaat dezelfde kant op als Java. Er zal een enorme wildgroei aan frameworks en api's komen. En in de tussentijd beginnen bedrijven als Google (en nu ook Apple) steeds sterker te worden.

Op mijn werk is AngularJS bijvoorbeeld als een bom ingeslagen. Tijdens Microsoft presentaties zie je bijna alleen nog maar Macbook's.. kortom het zijn spannende tijden :) Het is 1 grote mix en match.
Ik kom steeds meer in aanraking met wat elke ontwikkelaar gedurende zijn leven meemaakt: ik ben in de 30 en heb steeds meer verplichtingen en minder tijd. Het wordt dus steeds moeilijker om nieuwe dingen te leren en bij te blijven. Zeker zodra er kinderen komen etc.
Je mag dat standpunt hebben natuurlijk, maar bekijk het van de andere kant: wat heb je een werkgever te bieden als je over 10 jaar alleen maar bent ingewerkt in technologie van 10 jaar geleden. Af en toe een boek ter hand nemen en een avondje bijscholen is de beste carriere-investering die je kunt doen. Zoals moeders vroeger zeiden: Dan maak je maar tijd. ;-)
Een boek ter hand nemen is leuk, maar echt leren doe je iets alleen maar als je er echt mee werkt of op zijn minst testprojecten maakt. En dat kost altijd meer tijd dan even een boekje lezen :) Meestal ligt het boek ernaast ;)

Ik ben ook altijd nieuwe dingen aan het leren.. het lukt alleen niet om alles te doen en het spannende is dus waar je in gaat investeren vanwege de beperkte tijd. Bij mij is dat de laatste tijd AngularJS en Java geweest. Daar wil ik nog steeds in verder gaan, waardoor ik eigenlijk geen tijd voor Swift heb bijvoorbeeld.

Maar omdat dingen zo snel veranderen in de markt, zou het zomaar eens kunnen zijn dat ik AngularJS voor niets leer, omdat morgen framework X, Y of Z komt. Of blijkt Swift bijv. heel populair te worden en dan heb ik daar de boot gemist.

Dat blijft eng momenteel.

Het is niet meer zoals 10 jaar geleden dat je C# en .NET ging leren en daarmee sowieso een goede keus maakte. Het hele ecosysteem is veel diverser geworden.

[Reactie gewijzigd door Lethalis op 3 juni 2014 11:06]

Ik kan natuurlijk alleen voor mezelf spreken, maar een nieuwe programmeertaal leren is echt een triviale inspanning vergeleken met de typische programmeerproblemen die je op moet lossen als dat je werk is. Al helemaal als die taal voor de rest volledig op hetzelfde platform is gebaseerd. Binnen een paar dagen, hooguit een week of 2 zou je alle ins en outs van een programmeertaal wel moeten kennen (de syntax plus de language features), alle programmeertalen zijn in feite combinaties van dezelfde programmeer concepten, de ene taal kiest voor het een, de andere taal voor het ander, maar uiteindelijk grabbelen ze allemaal uit dezelfde bak van oplossingen.

Ik zou me sowieso zorgen maken over mijn toekomst als programmeur als je het leren van een nieuwe taal als een hoge drempel ervaart en het daarom liever niet als onderdeel van je werk ziet. Een ontwikkelaar die zowel Java als Pyhon als Objective-C kan programmeren zal altijd met betere oplossingen komen dan iemand die zijn hele leven in Java-land is gebleven.

Ik ben het overigens wel met je eens als het om frameworks gaat, dat kan al snel veel tijd kosten die een paar jaar later nutteloos is omdat er weer een ander framework voor in de plaats is gekomen. Maar dat is een compleet andere discussie, als je een programmeertaal leren zou vergelijken met een nieuwe (gesproken) taal leren, dan is een framework leren zoiets als een boek in je kop stampen. Het eerste is natuurlijk veel nuttiger voor de toekomst.

[Reactie gewijzigd door johnbetonschaar op 3 juni 2014 13:06]

Bij bijna elke taal die je leert, leer je ook andere frameworks. Dus ja, dat bedoel ik uiteraard ook. Een taal an sich is waardeloos.

2 weken is dan genoeg om de basis te kennen, maar alle ins en outs bij lange na niet.

Zo hebben veel mensen eerst ASP.Net WebForms gedaan, daarna ASP.Net MVC, en nu switchen ze naar client side frameworks als AngularJS.

Elke stap heeft zo zijn uitdagingen. Bij een clientside framework is security bijvoorbeeld een hekel punt. Ik ben alleen al 2 weken bezig om dat goed te implementeren ;) Want je wil dan uiteraard wel dat je via HTTPS een JSON Web Token bij een RESTful API opvraagt, dat de authenticatiemethode automatisch over meerdere scopes werkt en wordt gecommuniceerd (dmv AngularJS services en HTTP interceptors), je op een nette manier weer een inlogscherm laat zien zonder gegevensverlies, dat je het RESTful API framework goed kent (of dat nou ASP.Net Web API, JAX-RS, of iets anders), etc.

Ik ga elke keer wel diep er op in als ik iets leer, anders kan je het in een productieomgeving ook nauwelijks gebruiken. "Hello world" schrijf ik zo in 20 verschillende talen (zelfs in LISP :P ), maar daar heb je niks aan.

Misschien dat ik het niet duidelijk formuleerde, maar ik bedoel dus ook dat de API's de laatste tijd erg snel veranderen. Er is echt een wildgroei en het is nog maar de vraag wat blijft en wat niet. En als je naar vacatures kijkt, dan wordt wel vaak specifiek naar ervaring met framework X of Y gevraagd.
ik heb swift zelf nog niet bekeken. maar de variabeledeclaratie die jij aangeeft is niet uit de lucht gegrepen. dit werd exact op dezelfde manier gedaan in JavaFX Script
Swift heeft type inference en generics; 2 features die vele ontwikkelaars wel gemist hebben in Objective-C. Daarnaast kan je met Swift gewoon gebruik maken van de reeds bestaande Cocoa en CocoaTouch APIs (vergelijkbaar hoe je de .NET APIs kan gebruiken met talen als C#, VB.NET en F#). Ook kan Swift code in apps gemengd worden met Objective-C code.

Voor zover ik zie heeft Apple veel inspiratie gehaald uit C# (maar dat is een goede zaak). Apple heeft alvast een boekje dat je kan downloaden waarin Swift behandelt wordt.

[Reactie gewijzigd door MacWolf op 2 juni 2014 21:30]

waarom niet gewoon een download, ik wil geen ITunes :(

@Dutch-gabber: TOP

[Reactie gewijzigd door Patrickkkk op 3 juni 2014 10:06]

Ik het volgende linkje is een online handleiding te vinden waar geen iTunes voor nodig is.
Dank voor de link naar het boekje.

Ziet er goed uit. Voor de gemiddelde C# programmeur is dit goed te volgen. En dat kan je niet zeggen van dat vreselijke objective-C.

Zou Apple de hete adem van Xamarin in hun nek voelen ? Zeker na het geflirt tussen Xamarin en Microsoft, moesten ze waarschijnlijk wat anders verzinnen.
Ik ben nog niet ver genoeg gekomen in het boek op iBooks om een definitief oordeel te vellen maar het is op zich wel jammer dat ze gekozen hebben voor een taal die veel weg heeft van Python, Ruby en JavaScript maar niet compatible is. Toch weer die lock-in.

Aan de andere kant is LLVM gewoon open dus in principe kan iedereen naar intermediate compilen en alle libraries aanspreken in zijn eigen programmeertaal. Volgens mij doen sommige frameworks dit al.

Wat wel enorm sexy is is de visuele debugging mogelijkheden die het lijkt te bieden maar ik weet dat er in Xcode 5.1 al mogelijkheden waren om je eigen debugging visualizers te bouwen dus ik denk dat dit gewoon een Xcode feature is niet een language feature.

Ook mooi was de LINQPad achtige scratchpad mogelijkheid.

======

Zojuist Xcode 6 geïnstalleerd en een nieuw Swift project gestart. Dit is de code in AppDelegate:

var window: UIWindow?


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
// Override point for customization after application launch.
self.window!.backgroundColor = UIColor.whiteColor()
self.window!.makeKeyAndVisible()
return true
}


Zo te zien betekent ? een ref en een ! betekent "mits bestaat dan"

============

Ik ben er inmiddels achter dat een ! op die positie betekent dat je wéét dat een optionele waarde een waarde bevat en daarmee de optional direct unwrapt.

============

Zojuist de Resizable iPhone geprobeerd in Xcode 6, ik kan inderdaad mijn iPhone apps resizen en alle AutoLayout constraints flowen dan mee, ben benieuwed waarom dat er in zit! :)

https://pbs.twimg.com/media/BpJwvN4CIAAH1u-.png

[Reactie gewijzigd door BikkelZ op 3 juni 2014 17:23]

Vraagteken bij variables wordt gebruikt voor nullable values, voor zover ik had begrepen. UIWindow kan dus nil zijn in bovenstaand voorbeeld. Uitroepteken wordt waarschijnlijk gebruikt zoals jij al aangaf: validatie dat een waarde niet gelijk is aan nil. Best een elegante manier om if-else checks te reduceren imo.

Gezien de Swift code dezelfde runtime gebruikt als Objective-C, was zo'n optie waarschijnlijk ook wel nodig, want in Objective-C kan je veilig (d.w.z. zonder crash als gevolg) "messages senden to nil", oftewel methodes aanroepen op objecten die nog niet gedefinieerd zijn.

[Reactie gewijzigd door MacWolf op 3 juni 2014 05:08]

Nee bij Objective-C kun je functies aanroepen die nog niet gedefinieerd zijn compile time, dat is toch wat heel anders. Maar als ? nullable betekent en geen ? een niet nullable variabele. Dan is dit de eerste programmeertaal die zo'n beetje aan mijn gebeden heeft verhoord: geen null waardes tenzij expliciet toegestaan. Bedenk eens hoeveel nutteloze null checks dat voorkomt en tel dat op bij het aantal lijnen code je minder hoeft te schrijven door een ! toe te passen op objecten die wel null mogen zijn.
Het is bij objective c toch echo zoals MacWolf schrijft, je kunt daar veilig messages naar nil sturen, zonder crashes of excepties (resultaat is dan weer nil). Dit klinkt misschien smerig maar het als je weet wat je doet kun je het prima gebruiken om nil-checks te skippen.

Een op compile time niet bestaande selector van een niet-nil object aanroepen kan idd niet, tenzij je hem runtime hebt toegevoegd.
Het gedraagt zich heel verschillend zo gauw je het op bepaalde manieren gaat toepassen bijvoorbeeld in een vergelijking. Er zijn een hoop randvoorwaardes die andere resultaten geven als je monadic checking gebruikt in plaats van loopt te rommelen met calls op nil objecten die nil terug geven in plaats van crashen.

if (thing != nil && thing.childThing != nil && thing.childThing.somePropertyClass != nil && thing.childThing.somePropertyClass.value == nil) {
thing.childThing.initializeProperties();
}

Condenseert naar:

if (thing!.childThing!.somePropertyClass!.value == nil) {
thing.childThing.initializeProperties();
}

Maar werkt niet het zelfde als Objective-C classes die feitelijk nil zijn en daarom altijd nil retourneren.

=======
Ik lees dat ! betekent dat het altijd er van uit moet gaan dat er een value is en dat ? betekent dat het optioneel werkt in chains.

[Reactie gewijzigd door BikkelZ op 3 juni 2014 17:21]

Tsk, de eerste ? Algol-68 was één van de eerste moderne talen, en zelfs daar was `int` niet nullable, maar `ref int` wel. En dan hebben we het over een taal die 46 jaar oud is.
Tsk? :?

Het gaat om een referentie die nooit null kan zijn, jij praat over een primitieve of een referentie naar een primitieve. Dat zijn twee héél verschillende dingen.
Het boek telt 1400 pagina's (ok, ongeveer 800 uitleg en 600 naslag). Lijkt me logisch dat je nog niet zo ver bent in het boek xD
Even een hele domme 'noob' vraag.
Als iemand die niks van programmeertalen afweet wilt beginnen met het creeren van eenvoudigd IOS apps (voor de lol) en eigenlijk al moeite zal hebben met het leren van 1 programmeertaal. Zal hij dan genoeg hebben aan Swift of zal hij ook Objective-C en andere talen nodig hebben en moeten leren?
Vrijwel alle grafische thingies worden meestal gedaan met Cocoa Touch (standaard UI-kit van de iPhone) of Spritekit (2d games). Of je dus in Objective-C of Swift een app maakt, veel gebeurt toch m.b.v. frameworks. Het maakt eigenlijk niet zo veel uit, al denk ik dat als je meer wilt in de toekomst dan Apple, je de komende paar jaar het beste uit de voeten kunt met Objective-C. Dat lijkt veel op C(++) wat op andere platformen ook gebruikt wordt. Als je Apple leert programmeren via Objective-C icm Cocoa/Spritekit; zit je gebakken. De overstap naar Swift is dan relatief klein (je blijft voor de grafische dingen gewoon Cocoa gebruiken, wat je dus al geleerd hebt), en de overstap naar bv. C# of Java is ook klein, omdat je al Objective-C kent. Met Swift en Cocoa naar iets anders is wel geheel opnieuw beginnen.

Als je daarentegen nog nooit geprogrammeerd hebt, is Swift misschien makkelijker dan Objective-C.

[Reactie gewijzigd door ZeroSect0r op 2 juni 2014 23:17]

Thanks iedereen. Duidelijk!

Ja ik heb nog nooit geprogrammeerd dus leek mij idd makkelijker om direct met swift te beginnen. Wilde alleen zeker weten of dit genoeg zou zijn voor ios apps.
En zal er niet snel mee zijn dus verwacht wel dat er tegen de tijd dat ik wat verder gevorderd ben, er heel wat materiaal over swift zal zijn.
Het kan wellicht handig zijn om wel de basis van Objective-C te kennen, want voorlopig zal de documentatie van Cocoa en CocoaTouch vooral Objective-C code bevatten. Het is dan handig als je zonder problemen in je hoofd de vertaalslag kan maken van een Objective-C aanroep naar een Swift aanroep (bijv.)

Ik denk wel dat deze introductie van Swift betekend dat Apple niet meer veel werk zal steken in Objective-C als taal. Met Swift wordt het veel eenvoudiger om meer ontwikkelaars aan te trekken. Ook is de performance hoger, aldus Apple.

[Reactie gewijzigd door MacWolf op 3 juni 2014 04:34]

Ik ben het hier niet mee eens. Objective-C is dusdanig inconsequent dat het je actief tegenwerkt bij andere talen, zoals java en c#.

Een beginner zou ik dan eerder Swift of C laten programeren. Daar heb je als programmeur veel meer aan en die talen kan je ook op andere systemen gebruiken. Objective-C is echt enkel en alleen osx/ios.
Het ligt aan het materiaal wat beschikbaar is denk ik.

Over obj-c is veel meer te vinden op het internet, waardoor je veel sneller voorbeelden vindt.
Met veel talen kan je al aardig ver komen als je de basis kent, als je iOS apps wilt maken zou ik gewoon in xCode obj-c beginnen, je rolt vanzelf van het één in het ander en stackoverflow is een hele goede source ;)
Swift is alles wat je nodig gaat hebben, je hebt geen C of Objective C nodig, althans zo ziet het er nu uit.
Apple heeft gezegd dat je alleen Swift nodig hebt.
Vanaf najaar pas apps gebouwd is Swift in te dienen, dus het zal wel niet werken op iOS7 en ouder. Komt mij beetje over als een slinkse manier om mensen nieuw iDevice aan te laten schaffen, omdat niet alle iDevices worden bijgewerkt naar iOS8. Gezien het enthousiasme bij de aankondiging voorzie ik dat een flink aantal developers over (willen) stappen naar Swift en dus een minimale eis van iOS8.
Het is gewoon compileerbaar met llvm, het zal dus prima uitvoerbaar zijn op ios 7. De binaire resultaat is hetzelfde als dat je het zou schrijven met objective-c
Vergeet de run-time niet... die moet natuurlijk wel op het device aanwezig zijn (en is dus onderdeel van het OS).
Maakt geen bal uit, iPhone 4 is enige die niet ondersteund word, de rest kon toch al geen iOS7 draaien.
Dus....wat wackmaniac zegt, klopt.
"Met Swift kunnen programma's voor zowel iOS als OS X worden gemaakt."
Is 'SWIFT' enkel voor ios/osx zoals hier staat? Of kan het ook daarbuiten toegepast worden?
Nee, in principe niet. Tenzij ze de libraries en compiler porten naar Windows of Android, en dat denk ik niet. Een functie als "println" moet natuurlijk omgezet worden naar een Windows-platform, daarvoor is het nodig dat er platform-speficieke libraries bestaan. Bovendien is het sterk geïntegreerd met Cocoa (Touch) en hun eigen IDE met Interface Builder enzo. Staat je natuurlijk vrij zelf een compiler te maken voor Swift.

[Reactie gewijzigd door ZeroSect0r op 2 juni 2014 21:48]

Swift compileert naar LLVM, en dat kan Windows targetten. Libraries zijn uiteraard een potentieel probleem, maar minder groot dan je zou denken.
Maar het idee achter de taal kunnen Google en Microsoft wel gewoon gebruiken, alleen moeten ze dan zelf dus de libraries en compiler etc maken.

Net zoals ik zelf een woordenboek moet gaan tikken als ik dat wil uitbrengen, en niet zomaar de Van Dale kan kopiëren. Betekent niet dat ik geen Nederlands kan gebruiken.
Kwestie van de juiste compiler, lijkt me.
Was het maar zo'n feest, dan draait de boel nog niet zonder libraries. Kijk maar eens naar het Mono project (.NET), hoe veel werk die hebben gehad om .NET apps te laten draaien onder Linux ;)
In principe is swift gebouwd bovenop LLVM, dus theoretisch is het mogelijk om het crossplatform te maken.
Aan de ene kant: er zijn al zo verschrikkelijk veel programmeertalen en de laatste jaren lijkt het wel alsof iedereen zijn eigen taal wil uitvinden, dus waarom nu weer een nieuwe taal erbij, was er niet iets bestaands wat geschikt is? Nu moet iedereen die iets voor Apple wil programmeren nóg een nieuwe taal leren, en Apple haalt zich veel werk op de hals doordat ze die taal nu moeten blijven ontwikkelen en vanaf nul de ontwikkeltools ervoor moeten bouwen.

Aan de andere kant: Objective-C is al aardig bejaard, en hoewel ik er niet heel veel ervaring mee heb vind ik het een rare, lelijke taal waarin Smalltalk syntax gemengd is met C syntax. Dus ik vind het absoluut niet jammer dat we afscheid nemen van Objective C, en hopelijk is Swift veel moderner en beter afgestemd op de eisen van nu (bijvoorbeeld multi-core programmeren).
http://www.tiobe.com/inde...paperinfo/tpci/index.html
Er bestaan al een hoop programmeertalen dus eentje extra maakt ook niet meer uit.
Denk trouwens dat Swift niet zo populair wordt als het maar voor 1 OS geschikt is.

Google is ook met een programmeertaal bezig ook al hoor ik daar de laatste tijd weinig over.
http://golang.org/

[Reactie gewijzigd door jurgen1982820 op 2 juni 2014 22:42]

Je snapt wel dat dit DE taal wordt van het gehele Apple platform, dus iOS en OSX bij elkaar?

Mocht het je ontgaan zijn in het begin van de presentatie: het aantal verkochte apparaten bij elkaar zit ruim over de miljard.
Ja, en hoeveel werkende iPhone/iPod 1's werken nog?

Die getallen waar Apple mee smijt zijn echt geen nuttige getallen. Je ziet het ook in hun dev console; leuk, dat m'n app cumulatief 10000 is gedownload ... maar hoeveel worden er nog gebruikt/staan uberhaupt nog geinstalleerd?
Google heeft een aantal programmeertalen, inderdaad Go maar ze hebben bijvoorbeeld ook Dart, wat bedoeld is als alternatief voor JavaScript in de browser.
Gezien de reacties uit de zaal had ik niet het idee dat veel ontwikkelaars er moeite mee hebben om iets nieuws te leren. Het werd nogal met gejuich ontvangen.
Alle talen lijken op elkaar.
De benamingen en het gebruik van haakjes enzo is meestal even wennen.

print ("hello world")
Echo "Hello, World!";
printf("Hello World!\n");
puts 'Hello world'

Ik hou het voorlopig wel bij mijn cursus Python.
Heb je op een Apple-congres wel eens iets niet met gejuich gepresenteerd zien worden? Apart volk ;)
Ja, de samenwerking met Microsoft die aangekondigd werd op Macworld Boston in 1997 werd met luid boegeroep uit de zaal beantwoord.
Wel met de mensen hierachter misschien. Er is dus al een programmeertaal met deze naam...
Onderaan https://developer.apple.com/swift/ staat:
"Looking for the Swift parallel scripting language? Please visit http://swift-lang.org"
Dat zal apple vast over het hoofd gezien hebben, zullen ze vast blij mee zijn als ze het ontdekken.
Jup, Apple is vast naïef genoeg om niet even Google te raadplegen voordat ze hun taal een naam geven.
Kans acht ik zonder het op te zoeken 99% dat dat opgekocht is door Apple. Zeker gezien de icoontjes linksonderin heel Apple-esque zijn, die ene lijkt zelfs heel erg veel op het Swift logo dat Apple gebruikt. Kan geen toeval zijn.
Is een heel andere taal dan Apple's Swift. Vergelijk 't maar eens.
Mooie ontwikkeling, dit gaat veel moois opleveren denk ik.
Ook OSX en iOS8 zien er goed uit.

Keynote was voor groot deel echt besteed aan de devlopers kant, erg interessant om te zien vond ik.
WWDC World Wide Developers Confrence :)

Das toch logisch zou een bekende voetballer hebben gezegd :+ Maar dit doen ze elk jaar.. Soms ook met product updates.. Zo is de Orginele iPhone daar ook getoond in 2007 en in 2008 de 3G.. waarbij ook de nieuwe Mac Mini werdt getoond... al met al om ontwikkelaars alvast te kunnen laten zien wat ze met die producten konden doen..
maar de aller eerste iphones werden daar getoond omdat ze pas met een half jaar werden getoond verkocht toch?, Tegenwoordig is het showen en 10 dagen later waren ze beschikbaar voor het publiek dacht ik.

Edit te snel getypt..

[Reactie gewijzigd door jctjepkema op 2 juni 2014 23:05]

WWDC 2007 werd halverwege juni gegeven. de iPhone zelf werd 29 juni te koop aangeboden in de VS door AT&T, zelfde met de Mac Mini die toen werd geïntroduceerd.
ahh oke ik kon me herinneren dat het vrij lang duurde voordat de iPhone werd vrijgegeven. Weet ik dat ook weer!
Toen werd de iPhone apart aangekondigd, in januari als ik mij dit goed herinner.
Haha ja jullie hebben gelijk, de naam zegt het in feite ook maar omdat in t verleden er inderdaad producten werden aangekondigd en mijn beleving meer aandacht aan de consumerkant geschonken werd tijdens de keynote. Nu dat hele verhaal over swift en alle mogelijkheden die er nu voor developers bijkomen, zoveel nieuwe api's etc. Dat vond ik heel interessant om te zien. Ik weet zelf niet heel veel van developing af namelijk maar vind het wel erg interessant. Ik wil me er graag meer in gaan verdiepen, dat wil ik al een tijdje, en als ik dit zo zie wordt ik steeds nieuwsgieriger naar meer info. :)
op de WWDC wordt vaak het nieuwe OS met de tooling getoond. en informatie met wat er veranderd is.
Nooit anders geweest. De iPhone werd getoond omdat ze wilde dat dev's ook websites zouden gaan aanpassen zodat de iPhones makkelijk konden worden voorzien van goede website interfaces..

Een jaar later heeft apple de iPhone 3G geïntroduceerd. Met ook duidelijke apis om applicaties voor iPhone te schrijven..
WorldWide Developers Conference ... Liefst dat het dan over development gaat. Wel mooie ontwikkelingen overigens

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True