Swift vs. Obiectiv-C: 10 motive viitor favorizează Swift

limbaje de Programare nu mor ușor, dar dezvoltarea magazine care se agață de decolorare paradigme face. Dacă dezvoltați aplicații pentru Dispozitive mobile și nu ați investigat Swift, luați notă: Swift nu numai că va înlocui Objective-C atunci când vine vorba de dezvoltarea de aplicații pentru Mac, iPhone, iPad, Apple Watch și dispozitivele viitoare, dar va înlocui și C pentru programarea încorporată pe platformele Apple.,datorită mai multor caracteristici cheie, Swift are potențialul de a deveni limbajul de programare de facto pentru crearea de aplicații imersive, receptive și orientate către consumatori pentru anii următori.Apple pare să aibă obiective mari pentru Swift. A optimizat compilatorul pentru performanță și limbajul pentru dezvoltare și face aluzie la faptul că Swift este „proiectat pentru a scala de la” hello, world „la un întreg sistem de operare” în documentația Swift., În timp ce Apple nu și-a declarat încă toate obiectivele pentru limbă, lansările Xcode 6, Playgrounds și Swift semnalează împreună intenția Apple de a face dezvoltarea aplicațiilor mai ușoară și mai accesibilă decât cu orice alt lanț de instrumente de dezvoltare.

Aici sunt 10 motive pentru a obține înainte de joc, prin a începe să lucreze cu Rapid acum.

Swift este mai ușor de citit

Obiectiv-C suferă toate negii pe care le-ați aștepta de la o limbă construită pe C., Pentru a diferenția cuvintele cheie și tipurile de tipurile C, Objective-C a introdus cuvinte cheie noi folosind simbolul@. Deoarece Swift nu este construit pe C, poate unifica toate cuvintele cheie și poate elimina numeroasele simboluri @ din fața fiecărui tip Obiectiv-C sau a unui cuvânt cheie legat de obiect.Swift picături legacy convenții. Astfel, nu mai aveți nevoie de punct și virgulă pentru a încheia linii sau paranteze pentru a înconjura expresii condiționale în interiorul declarațiilor if/else. O altă schimbare mare este că metoda apeluri nu cuib în interiorul reciproc rezultând în paranteză hell-bye-bye, ]]., Apelurile de metodă și funcții din Swift utilizează lista standard de parametri separați prin virgulă între paranteze. Rezultatul este un limbaj mai curat, mai expresiv, cu o sintaxă și gramatică simplificate.codul Swift seamănă mai mult cu engleza naturală, pe lângă alte limbaje de programare populare moderne. Această lizibilitate face mai ușor pentru programatorii existenți din JavaScript, Java, Python, C# și C++ să adopte Swift în lanțul lor de instrumente—spre deosebire de rățușca cea urâtă care era Objective-C.,

Swift este mai ușor de întreținut

moștenirea este ceea ce ține obiectivul-C înapoi—limba nu poate evolua fără C în evoluție. C cere programatorilor să mențină două fișiere de cod pentru a îmbunătăți timpul de construire și eficiența creării aplicației executabile, o cerință care se transferă la Objective-C.

Swift renunță la cerința de două fișiere. Xcode și compilatorul LLVM își pot da seama de dependențe și pot efectua automat compilări incrementale în Swift 1.2., Drept urmare, sarcina repetitivă de a separa cuprinsul (fișierul antet) de corp (fișierul de implementare) este un lucru din trecut. Swift combină antetul Objective-C (.h) și fișierele de implementare (.m) într-un singur fișier de cod (.swift).sistemul cu două fișiere al Objective-C impune o muncă suplimentară programatorilor-și este o muncă care distrage programatorii de la imaginea de ansamblu., În Objective-C trebuie să sincronizați manual numele metodelor și comentariile între fișiere, sperăm că folosind o convenție standard, dar acest lucru nu este garantat decât dacă echipa are reguli și recenzii de cod în loc.Xcode și compilatorul LLVM pot lucra în spatele scenei pentru a reduce volumul de muncă al programatorului. Cu Swift, programatorii fac mai puțin contabilitate și pot petrece mai mult timp creând logica aplicației. Swift taie munca boilerplate și îmbunătățește calitatea de cod, comentarii, și caracteristici care sunt acceptate.,

Swift este mai sigur

un aspect interesant al Objective-C este modul în care indicii—în special indicii nul (nul)—sunt manipulate. În Objective-C, nu se întâmplă nimic dacă încercați să apelați o metodă cu o variabilă pointer care este zero (neinitializată). Expresia sau linia de cod devine o no-operation (no-op), și în timp ce ar putea părea benefic că nu se prăbușește, a fost o sursă uriașă de bug-uri. Un no-op duce la un comportament imprevizibil, care este inamicul programatorilor care încearcă să găsească și să remedieze un accident aleatoriu sau să oprească un comportament neregulat.,

tipurile opționale fac ca posibilitatea unei valori opționale zero să fie foarte clară în codul Swift, ceea ce înseamnă că poate genera o eroare de compilator în timp ce scrieți cod rău. Aceasta creează o buclă de feedback scurtă și permite programatorilor să codifice cu intenție. Problemele pot fi rezolvate pe măsură ce este scris codul, ceea ce reduce foarte mult timpul și banii pe care îi veți cheltui pentru remedierea erorilor legate de logica pointer de la Objective-C.,în mod tradițional, în Objective-C, dacă o valoare a fost returnată dintr-o metodă, era responsabilitatea programatorului să documenteze comportamentul variabilei pointer returnată (folosind comentarii și convenții de denumire a metodei). În Swift, tipurile opționale și tipurile de valori clarifică în mod explicit în definiția metodei dacă valoarea există sau dacă are potențialul de a fi opțională (adică valoarea poate exista sau poate fi nulă).

pentru a oferi un comportament previzibil Swift declanșează un accident de rulare în cazul în care se utilizează o variabilă opțională zero., Acest accident oferă un comportament consecvent, care ușurează procesul de remediere a erorilor, deoarece obligă programatorul să remedieze problema imediat. Crash-ul Swift runtime se va opri pe linia de cod în care a fost utilizată o variabilă opțională zero. Aceasta înseamnă că eroarea va fi rezolvată mai devreme sau evitată în întregime în codul Swift.

Swift este unificat cu managementul memoriei

Swift unifică limba într-un mod pe care Objective-C nu l-a avut niciodată. Suportul pentru numărarea automată a referințelor (ARC) este complet pe căile de cod procedurale și orientate pe obiecte., În Objective-C, ARC este acceptat în API-urile Cocoa și Codul orientat pe obiecte; nu este disponibil, totuși, pentru codul c procedural și API-urile precum grafica de bază. Aceasta înseamnă că devine responsabilitatea programatorului să se ocupe de gestionarea memoriei atunci când lucrează cu API-urile grafice de bază și cu alte API-uri de nivel scăzut disponibile pe iOS. Scurgerile uriașe de memorie pe care un programator le poate avea în Objective-C sunt imposibile în Swift.un programator nu ar trebui să se gândească la memorie pentru fiecare obiect digital pe care îl creează., Deoarece ARC se ocupă de toată gestionarea memoriei la momentul compilării, puterea creierului care ar fi mers spre gestionarea memoriei poate fi în schimb concentrată pe logica aplicației de bază și pe noile caracteristici. Pentru ARC în Swift funcționează pe ambele procedurale si orientate-obiect cod, este nevoie de nu mai mult mental context switch-uri pentru programatori, chiar dacă se scrie cod care atinge nivel inferior APIs—o problemă cu versiunea curentă de Objective-C.

Automată și de înaltă performanță de management al memoriei este o problemă care a fost rezolvată, iar Apple s-a dovedit că poate crește productivitatea., Celălalt efect secundar este că atât Objective-C, cât și Swift nu suferă de un colector de gunoi care rulează curățarea memoriei neutilizate, cum ar fi Java, Go sau C#. Acesta este un factor important pentru orice limbaj de programare care va fi utilizat pentru grafica receptivă și introducerea utilizatorului, în special pe un dispozitiv tactil precum iPhone, Apple Watch sau iPad (unde întârzierea este frustrantă și îi face pe utilizatori să perceapă o aplicație este ruptă).

Swift necesită mai puțin cod

Swift reduce cantitatea de cod care este necesar pentru declarații repetitive și manipulare șir., În Objective-C, lucrul cu șiruri de text este foarte detaliat și necesită mulți pași pentru a combina două informații. Swift adoptă caracteristici moderne ale limbajului de programare, cum ar fi adăugarea a două șiruri împreună cu un operator”+”, care lipsește în Objective-C. Suportul pentru combinarea caracterelor și șirurilor de genul acesta este fundamental pentru orice limbaj de programare care afișează text unui utilizator pe un ecran.

sistemul de tip din Swift reduce complexitatea declarațiilor de cod — deoarece compilatorul își poate da seama de tipuri., Ca un exemplu, Objective-C necesită programatori pentru a memora speciale șir de jetoane (%s, %d, %@) și să furnizeze o listă separată prin virgulă de variabile pentru a înlocui fiecare jeton. Swift acceptă interpolarea șirurilor, care elimină necesitatea memorării jetoanelor și permite programatorilor să insereze variabile direct în linie într-un șir orientat către utilizator, cum ar fi o etichetă sau un titlu de buton. Sistemul de inferencing de tip și interpolarea șirului atenuează o sursă comună de accidente care sunt comune în Objective-C.,

cu Objective-C, încurc ordinea sau folosind jetonul șir greșit determină aplicația să se prăbușească. Aici, Swift vă scutește din nou de la activitatea de contabilitate, traducând în mai puțin cod pentru a scrie (cod care este acum mai puțin predispus la erori) datorită suportului său inline pentru manipularea șirurilor de text și a datelor.

Swift este mai rapid

Dropping legacy c convenții a îmbunătățit foarte mult Swift sub capota. Benchmark-urile pentru performanța Codului Swift continuă să indice dedicarea Apple de a îmbunătăți viteza cu care Swift poate rula logica aplicației.,potrivit Primate Labs, producătorii popularului instrument de performanță GeekBench, Swift se apropia de caracteristicile de performanță ale C++ pentru sarcini legate de calcul în decembrie 2014 folosind algoritmul Mandelbrot.în februarie 2015, Primate Labs a descoperit că Xcode 6.3 Beta a îmbunătățit performanța Swift a algoritmului GEMM-un algoritm legat de memorie cu acces secvențial al matricelor mari—cu un factor de 1.4. Implementarea inițială FFT—un algoritm legat de memorie cu acces aleator la matrice mari-a avut o îmbunătățire a performanței de 2,6 ori.,

îmbunătățiri suplimentare au fost observate în Swift prin aplicarea celor mai bune practici, rezultând un impuls de 8,5 ori pentru performanța algoritmului FFT (lăsând C++ cu doar un câștig de performanță de 1,1 ori). Îmbunătățirile au permis, de asemenea, Swift să depășească C++ pentru algoritmul Mandelbrot cu un factor de doar 1.03.Swift este aproape la egalitate cu C++ atât pentru algoritmii FFT, cât și pentru Mandelbrot., Potrivit Primate Labs, GEMM algoritm de performanță sugerează Swift compiler nu poate vectorize cod C++ compiler poate — o ușoară creștere a performanței care ar putea fi realizate în următoarea versiune de Swift.

mai puține coliziuni de nume cu proiecte open source

o problemă care a afectat Codul Objective-C este lipsa de suport formal pentru spațiile de nume, care a fost soluția C++pentru coliziunile de nume de fișiere de cod. Atunci când acest nume coliziune se întâmplă în Objective-C, este o eroare de linker, iar aplicația nu poate rula. Există soluții, dar au potențiale capcane., Convenția comună este de a utiliza un prefix de două sau trei litere pentru a diferenția Codul Objective – C, care este scris, să zicem, de Facebook față de propriul cod.

Swift oferă spații de nume implicit care permite același cod dosar să existe în mai multe proiecte, fără a provoca un eșec de a construi și necesită nume ca NSString (Pasul Următor — Steve Jobs compania după ce a fost concediat de la Apple) sau CGPoint (Grafică de Bază). În cele din urmă, această caracteristică în Swift îi menține pe programatori mai productivi și înseamnă că nu trebuie să facă evidența contabilă care există în Objective-C., Puteți vedea influența lui Swift cu nume simple precum Array, Dictionary și String în loc de NSArray, NSDictionary și NSString, care s-au născut din lipsa spațiilor de nume în Objective-C.

cu Swift, spațiile de nume se bazează pe ținta căreia aparține un fișier de cod. Aceasta înseamnă că programatorii pot diferenția clase sau valori folosind identificatorul spațiului de nume. Această schimbare în Swift este imensă. Facilitează foarte mult încorporarea proiectelor open source, a cadrelor și a bibliotecilor în codul dvs., Spațiile de nume permit diferitelor companii de software să creeze aceleași nume de fișiere de cod fără să vă faceți griji cu privire la coliziuni atunci când integrați proiecte open source. Acum, atât Facebook, cât și Apple pot utiliza un fișier de cod obiect numit FlyingCar.swift fără erori sau eșecuri de a construi.

Swift acceptă biblioteci dinamice

cea mai mare schimbare în Swift care nu a primit suficientă atenție este trecerea de la bibliotecile statice, care sunt actualizate la versiuni importante (iOS 8, iOS 7 și așa mai departe), la bibliotecile dinamice., Bibliotecile dinamice sunt bucăți executabile de cod care pot fi legate de o aplicație. Această caracteristică permite aplicațiilor Swift actuale să se conecteze cu versiuni mai noi ale limbii Swift pe măsură ce evoluează în timp.dezvoltatorul trimite aplicația împreună cu bibliotecile, ambele fiind semnate digital cu certificatul de dezvoltare pentru a asigura integritatea (hello, NSA). Aceasta înseamnă că Swift poate evolua mai repede decât iOS, ceea ce este o cerință pentru un limbaj de programare modern. Modificările aduse bibliotecilor pot fi incluse cu cea mai recentă actualizare a unei aplicații din App Store și totul funcționează pur și simplu.,bibliotecile dinamice nu au fost niciodată acceptate pe iOS până la lansarea Swift și iOS 8, chiar dacă bibliotecile dinamice au fost acceptate pe Mac de foarte mult timp. Bibliotecile dinamice sunt externe executabilului aplicației, dar sunt incluse în pachetul de aplicații descărcat din App Store. Reduce dimensiunea inițială a unei aplicații, deoarece este încărcată în memorie, deoarece codul extern este conectat numai atunci când este utilizat.capacitatea de a amâna încărcarea într-o aplicație mobilă sau într-o aplicație încorporată pe Apple Watch va îmbunătăți performanța percepută pentru utilizator., Aceasta este una dintre distincțiile care fac ecosistemul iOS să se simtă mai receptiv. Apple a fost axat pe încărcarea numai active, resurse, iar acum compilat și legat de cod pe zbor. Încărcarea din mers reduce timpii de așteptare inițiali până când o resursă este de fapt necesară pentru afișarea pe ecran.bibliotecile dinamice din Swift fac posibil ca schimbările și îmbunătățirile limbajului de programare să se propage mai repede ca niciodată. Utilizatorii nu mai trebuie să aștepte lansările de puncte iOS pentru a beneficia de îmbunătățiri de performanță sau fiabilitate pe care Apple le introduce în Swift.,Swift Playgrounds încurajează codificarea interactivă noile locuri de joacă Swift sunt un avantaj pentru dezvoltatorii cu experiență. Locurile de joacă au fost parțial inspirate de activitatea fostului angajat Apple Brett Victor. Locurile de joacă permit programatorilor să testeze un nou algoritm sau o rutină grafică, să zicem între 5 și 20 de linii de cod, fără a fi nevoie să creeze o întreagă aplicație pentru iPhone.Apple a adăugat executarea codului inline în locurile de joacă pentru a ajuta programatorii să creeze o bucată de cod sau să scrie un algoritm în timp ce obțin feedback pe parcurs., Această buclă de feedback poate îmbunătăți viteza cu care poate fi scris codul, deoarece modelul mental de care are nevoie un programator tradițional poate fi înlocuit cu vizualizări de date în locurile de joacă. Programarea este un proces iterativ și orice efort care poate fi redus sau utilizat pentru a completa procesul creativ îi va face pe programatori mai productivi și îi va elibera pentru a rezolva probleme mai mari, mai degrabă decât să se concentreze pe detalii plictisitoare pe care compilatorii tradiționali le-au impus programatorilor.,Notă: Din experiența mea în predarea programatorilor începători, locurile de joacă nu sunt la fel de puternice pentru începători ca și pentru programatori cu experiență. Simpla afișare a modului în care funcționează o variabilă în Swift playground nu ajută un începător să înțeleagă necesitatea unei variabile în virgulă mobilă față de o variabilă întreagă. Nevoia devine evidentă atunci când afișați o aplicație care vă poate aminti ultima poziție de defilare în fluxul de știri Facebook. Pentru începători, întrebarea „de ce” poate fi răspunsă doar cu un exemplu de lucru: o aplicație pentru iPhone.,

Swift este un viitor pe care îl puteți influența

Obiectiv-C nu merge nicăieri, dar nu va vedea atât de multe schimbări majore, datorită introducerii Swift. Unele caracteristici Swift vor migra probabil la Objective-C, dar moștenirea Objective-C în C înseamnă că poate absorbi doar atât de mult.Swift oferă comunității de dezvoltare o modalitate directă de a influența un limbaj care va fi folosit pentru a crea aplicații, sisteme încorporate (dacă Apple licențiază vreodată un cadru încorporat și un cip pentru terți) și dispozitive precum Apple Watch.,Apple se concentrează pe furnizarea celei mai bune experiențe pentru consumatori și construiește doar acele caracteristici considerate demne de atenție. Odată cu lansarea Swift 1.2 în Xcode 6.3, Apple a rezolvat deja mii de bug-uri raportate cu popularul utilitar Apple Bug Reporter. Echipa care susține dezvoltarea și evoluția Swift este foarte interesată de modul în care limba poate fi îmbunătățită pentru a sprijini mai bine comunitatea de dezvoltare care construiește aplicații și sisteme folosind Swift.,

Swift: limbajul mai abordabil, cu caracteristici complete

cea mai mare parte a modificărilor care permit Swift să se ridice deasupra Objective-C provin din renunțarea la limbajul vechi pe care a fost construit Objective-C. Apple nu se îndepărtează de cacao, care este API-ul și biblioteca de coduri pentru crearea experiențelor care se simt Apple. În schimb, acestea oferă paritate completă și facilitează interacțiunea cu noile API-uri care acceptă funcții precum Force Touch sau Feedback Taptic.multe decizii vechi au fost concepute pentru a facilita proiectarea compilatorului., Swift se concentrează pe facilitarea activității dezvoltatorului de aplicații prin eliminarea tulpinii mentale a practicilor de codificare moștenite. Pe măsură ce compilatoarele moderne se îmbunătățesc, mai multe informații pot fi deduse din mai puțin cod.cu Swift, programatorii au jumătate din numărul de fișiere de cod de întreținut, zero sincronizare manuală a codului și mult mai puțină punctuație la tipul greșit—ceea ce duce la mai mult timp petrecut în scrierea liniilor de cod de calitate., Codul se auto-documentează acum în Swift cu adăugarea de tipuri opționale: un mecanism de siguranță în timp de compilare pentru returnarea unei valori sau fără valoare, care este o problemă comună cu operațiile asincrone, eșecurile rețelei, introducerea nevalidă a utilizatorului sau erorile de validare a datelor. ARC este unificat în Swift între atât codul procedural în stil C, cât și Codul orientat pe obiecte folosind cadrul Apple Cocoa.dezvoltatorii vor găsi că scriu mai puțin cod în Swift, iar funcțiile moderne de limbă îi ajută să păstreze liniile de cod mai ușor de citit., Swift va păstra întregul ecosistem Apple în fruntea programării, deoarece continuă să evolueze, datorită suportului dinamic al bibliotecii în iOS și Swift. Proiectele Open source, SDK-urile terță parte și cadrele care se integrează cu automatizarea casei, dispozitivele și serviciile sociale vor fi mai ușor de integrat fără a crește timpul de construire. Swift este aproape la fel de rapid ca C++ în unele algoritmi și cea mai recentă versiune de Xcode 6.3 și Swift 1.2 indică optimizări suplimentare de performanță la orizont.,adăugați la aceasta faptul că locurile de joacă și Swift permit un nou mod de a programa cu feedback vizual care ajută la dezvoltarea algoritmilor care utilizează vizualizări de date inline. O buclă de feedback mai scurtă și descrieri grafice face procesul de codificare iterativ chiar mai ușor pentru a începe.în cele din urmă, Swift este un limbaj de programare cu caracteristici complete mai abordabil, care va permite dezvoltatorilor să construiască nu numai aplicații, ci și să vizeze sisteme încorporate precum noul Apple Watch cu putere mai mică pentru mulți ani.,

  • 10 caracteristici Apple ‘furat’ pentru Swift limbaj de programare
  • 9 lucruri ne place despre Objective-C
  • Revizuire: 7 excelent app mobil constructori
  • Revizuire: AppStudio este ca Visual Basic for mobile dev
  • Revizuire: Appery.io perechi mobile app builder cu servicii de back-end
  • Revizuire: Alfa Oriunde ași offline aplicații mobile

Share

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *