Swift vs. Objective-C: 10 důvodů, proč budoucí laskavosti Swift

Programovací jazyky neumírají snadno, ale vývoj obchody, které lpí na blednutí paradigmat. Pokud vyvíjíte aplikace pro mobilní zařízení a nemáte zkoumány Swift, vzít na vědomí: Swift bude nejen nahradit Objective-C, když to přijde k vývoji aplikací pro Mac, iPhone, iPad, Apple Watch a zařízení přijít, ale to bude také nahradit C pro embedded programování na Apple platformách.,

Díky několika klíčových funkcí, Swift má potenciál, aby se stal de-facto programovací jazyk pro vytváření působivé, citlivé, spotřebitele orientované aplikace pro nadcházející roky.

Apple zdá se, že velké cíle pro Swift. To má optimalizovaný kompilátor pro výkon a jazyk pro vývoj, a to naráží na Swift je „navržena tak, aby měřítko z ‚hello, world‘ celý operační systém,“ v rychlém dokumentaci., Zatímco Apple není uvedeno, všechny své cíle pro jazyk přesto, starty Xcode 6, dětských Hřišť, a Swift společně signálu Apple je záměr, aby se vývoj aplikací jednodušší a přístupnější, než s jakýmkoli jiným nástrojem rozvoje řetězce.

Zde jsou 10 důvodů, proč se dostat před hry tím, že začíná pracovat s Swift.

Swift je jednodušší číst

Objective-C trpí všechny bradavice, které byste očekávali od jazyka postavena na C., Pro odlišení klíčových slov a typů od typů C představil Objective-C nová klíčová slova pomocí symbolu@. Protože Swift není postaven na C, může sjednotit všechna klíčová slova a odstranit četné symboly @ před každým typem Objective-C nebo klíčovým slovem souvisejícím s objektem.

Swift drops legacy conventions. Proto již nepotřebujete středníky k ukončení řádků nebo závorek, abyste obklopili podmíněné výrazy uvnitř příkazů if/else. Další velká změna spočívá v tom, že volání metod nevisí uvnitř sebe, což vede k závorce hell—bye, ]]., Metoda a volání funkcí v Swift použijte standardní seznam parametrů oddělených čárkami v závorkách. Výsledkem je čistší, výraznější jazyk se zjednodušenou syntaxí a gramatikou.

Swift kód více připomíná přírodní angličtinu, kromě jiných moderních populárních programovacích jazyků. Tato čitelnost usnadňuje stávajícím programátorům z JavaScriptu, Java, Pythonu, C# A C++ přijmout Swift do svého řetězce nástrojů-na rozdíl od ošklivého káčátka, které bylo objektivní-C.,

Swift se snáze udržuje

dědictví je to, co drží Cíl-C zpět—jazyk se nemůže vyvíjet bez vývoje C. C vyžaduje programátory udržovat dva soubory kódu s cílem zlepšit čas sestavení a účinnost spustitelný app tvorba, požadavek se přenese do Objective-C.

Swift kapek dva-soubor požadavku. Xcode a LLVM kompilátor mohou zjistit závislosti a provádět přírůstkové sestavení automaticky v Swift 1.2., Výsledkem je, že opakující se úkol oddělit obsah (soubor záhlaví) od těla (implementační soubor) je minulostí. Swift kombinuje hlavičku Objective-C (.h) a implementační soubory (.m) do jediného kódového souboru (.rychlý).

dvousložkový systém Objective-C ukládá programátorům další práci-a je to práce, která odvádí programátory od většího obrazu., V Objective-C musíte ručně synchronizovat názvy metod a komentáře mezi soubory, doufejme, že pomocí standardní konvence, ale to není zaručeno, pokud tým nemá pravidla a kódové recenze na místě.

Xcode a kompilátor LLVM mohou pracovat v zákulisí, aby snížily pracovní zátěž programátora. S Swift programátoři dělají méně účetnictví a mohou trávit více času vytvářením logiky aplikace. Swift vystřihne boilerplate práci a zlepšuje kvalitu kódu, komentáře, a funkce, které jsou podporovány.,

Swift je bezpečnější

jedním zajímavým aspektem cíle-C je způsob, jakým jsou ukazatele—zejména nulové (nulové) ukazatele—zpracovány. V Objective-C se nic nestane, pokud se pokusíte zavolat metodu s proměnnou ukazatele, která je nulová (neinicializovaná). Výraz nebo řádek kódu se stává bez operace (ne-op), a i když se může zdát prospěšné, že se nezhroutí, byl to obrovský zdroj chyb. Ne-op vede k nepředvídatelnému chování, které je nepřítelem programátorů, kteří se snaží najít a opravit náhodnou havárii nebo zastavit nevyzpytatelné chování.,

Volitelné typy umožňují nulovou volitelnou hodnotu v Swift kódu, což znamená, že při psaní špatného kódu může generovat chybu kompilátoru. To vytváří krátkou smyčku zpětné vazby a umožňuje programátorům kódovat s úmyslem. Problémy mohou být opraveny, jak je kód napsán, což výrazně snižuje množství času a peněz, které budete trávit na stanovení chyby související s ukazatel logiku z Objective-C.,

tradičně, v Objective-C, pokud byla hodnota vrácena z metody, bylo povinností programátora dokumentovat chování vrácené proměnné ukazatele (pomocí komentářů a konvencí pojmenování metod). Ve Swiftu jsou volitelné typy a typy hodnot v definici metody explicitně jasné, zda hodnota existuje nebo zda má potenciál být volitelný (to znamená, že hodnota může existovat nebo může být nulová).

poskytnout předvídatelné chování Swift spouští Runtime pád, pokud je použita nulová volitelná proměnná., Tato havárie poskytuje konzistentní chování, které usnadňuje proces opravy chyb, protože nutí programátora, aby problém okamžitě vyřešil. Rychlonabíjecí doba se zastaví na řádku kódu, kde byla použita volitelná proměnná nil. To znamená, že chyba bude opravena dříve nebo zcela vyloučena v Swift kódu.

Swift je sjednocen se správou paměti

Swift sjednocuje jazyk způsobem, který Objective-C nikdy nemá. Podpora automatického počítání referencí (ARC) je dokončena v procedurálních a objektově orientovaných kódových cestách., V Objective-C je ARC podporován v rámci API Cocoa a objektově orientovaného kódu; není však k dispozici pro procedurální kód C a API, jako je základní grafika. To znamená, že se stává odpovědností programátora zvládnout správu paměti při práci s jádrovými grafickými API a dalšími API nízké úrovně dostupnými v systému iOS. Obrovské úniky paměti, které může mít programátor v Objective-C, jsou v Swift nemožné.

programátor by neměl přemýšlet o paměti pro každý digitální objekt, který vytvoří., Protože ARC zpracovává všechny správa paměti při kompilaci, inteligenčního potenciálu, které by šly směrem správa paměti může být místo toho se zaměřil na hlavní logiku aplikace a nové funkce. Protože ARC v Swift funguje přes oba procesní a objektově-orientovaný kód, to vyžaduje více mentální přepnutí kontextu pro programátory, dokonce, jak píší kód, který se dotýká nižší úrovně Api—problém s aktuální verzí Objective-C.

Automatické a high-výkon správa paměti je problém, který byl vyřešen, a Apple ukázala, že může zvýšit produktivitu., Další vedlejší efekt je, že obě Objective-C a Swift netrpí Garbage Collector běží uklízet za nevyužité paměti, jako je Java, Go, nebo C#. To je důležitým faktorem pro jakýkoliv programovací jazyk, který bude použit pro citlivé grafiky a uživatelského vstupu, a to zejména na taktilní zařízení jako iPhone, Apple Watch nebo ipadu (kde mas je frustrující a je vnímají uživatelé aplikace je rozbité).

Swift vyžaduje méně kódu

Swift snižuje množství kódu, které je nutné pro opakující se výroky a manipulaci s řetězci., V Objective-C je práce s textovými řetězci velmi podrobná a vyžaduje mnoho kroků ke kombinaci dvou informací. Swift přijímá moderní programovací jazyk, funkce, jako je přidat dva řetězce dohromady s „+“ operátora, který chybí v Objective-C. Podpora pro kombinování znaků a řetězců, jako to je zásadní pro jakýkoliv programovací jazyk, který se zobrazí text, aby se uživatel na obrazovce.

typový systém v Swift snižuje složitost příkazů kódu – protože kompilátor může zjistit typy., Jako příklad, Objective-C, vyžaduje programátory zapamatovat speciální řetězec tokeny (%s %d %@) a poskytnout čárkami oddělený seznam proměnných nahradit každý token. Swift podporuje řetězec interpolace, které eliminuje potřebu pamatovat si žetony a umožňuje programátorům vložit proměnné přímo vložené uživatelem čelí řetězec, jako je například štítek nebo tlačítko název. Typ inferencing system a string interpolace zmírňují společný zdroj havárií, které jsou běžné v Objective-C.,

s Objective-C, pokazit objednávku nebo pomocí nesprávného řetězce tokenu způsobí, že aplikace k havárii. Zde Vás Swift opět zbaví práce v účetnictví a převede do menšího kódu k zápisu (kód, který je nyní méně náchylný k chybám) kvůli své inline podpoře manipulace s textovými řetězci a daty.

Swift je rychlejší

pokles starších konvencí C výrazně zlepšil Swift pod kapotou. Benchmarky pro výkon Swift kódu nadále poukazují na odhodlání společnosti Apple zlepšit rychlost, s jakou může Swift spustit logiku aplikace.,

Podle Primate Labs, tvůrců populární GeekBench výkon nástroj, Swift se blíží výkonnostní vlastnosti C++ pro výpočetně vázané úkoly v prosinci 2014 pomocí Mandelbrot algoritmus.

V únoru 2015, Primate Labs zjistili, že Xcode 6.3 Beta zlepšila Swift výkon GEMM algoritmus—paměť-bound algoritmus s sekvenční přístup velkých polí—koeficientem 1,4. Počáteční implementace FFT – algoritmus vázaný na paměť s náhodným přístupem velkých polí-měla 2,6 násobné zlepšení výkonu.,

Další vylepšení byla pozorována v Swift použitím osvědčených postupů, což vedlo k 8,5 násobnému zvýšení výkonu algoritmu FFT (ponechání C++ pouze s 1,1-násobným ziskem výkonu). Vylepšení také umožnila Swift překonat C++ pro algoritmus Mandelbrot faktorem pouhých 1.03.

Swift je téměř na stejné úrovni jako C++ pro algoritmy FFT i Mandelbrot., Podle Primate Labs, výkon GEMM algoritmus naznačuje, že Swift kompilátor nemůže vektorizovat kód C++ kompilátor může-snadný výkon zisk, který by mohl být dosažen v další verzi Swift.

Méně jméno kolize s open source projekty

Jeden problém, který trápí Objective-C kódu je jeho nedostatek formální podpora pro obory názvů, které bylo C++s řešením kód názvem kolize. Když se tento název kolize stane v Objective-C, je to chyba linker, a aplikace nemůže spustit. Řešení existují, ale mají potenciální úskalí., Společné úmluvy je použití dvou – nebo tří-dopis prefixů rozlišovat Objective-C kód, který je napsán, řekněme, Facebook versus vlastní kód.

Swift poskytuje implicitní jmenné prostory, které umožňují stejný kód souboru existovat napříč více projekty, aniž by došlo k vybudování selhání a vyžadují jména jako NSString (Další Krok — Steve Jobs společnost poté, co byl vyhozen od Apple), nebo CGPoint (Core Graphics). Nakonec tato funkce v Swift udržuje programátory produktivnější a znamená, že nemusí dělat účetnictví, které existuje v Objective-C., Můžete vidět Swift vliv s jednoduchými názvy jako Pole, Slovník, a Řetězec namísto NSArray, NSDictionary, a NSString, který se narodil z nedostatku obory názvů v Objective-C.

S Swift, obory názvů jsou založeny na cíl, který kód patří souboru. To znamená, že programátoři mohou rozlišovat třídy nebo hodnoty pomocí identifikátoru jmenného prostoru. Tato změna v Swift je obrovská. Velmi usnadňuje začlenění open source projektů, rámců a knihoven do vašeho kódu., Jmenné prostory umožňují různým softwarovým společnostem vytvářet stejné názvy souborů kódu bez obav o kolize při integraci projektů s otevřeným zdrojovým kódem. Nyní mohou Facebook i Apple použít Soubor kódu objektu s názvem FlyingCar.swift bez chyb nebo selhání sestavení.

Swift podporuje dynamické knihovny

největší změna v rychlý, že nebyla věnována dostatečná pozornost, je přechod od statické knihovny, které jsou aktualizovány na hlavní bod zprávy (iOS 8, iOS 7, a tak dále), dynamické knihovny., Dynamické knihovny jsou spustitelné kusy kódu, které lze propojit s aplikací. Tato funkce umožňuje současným aplikacím Swift propojit se s novějšími verzemi jazyka Swift, jak se vyvíjí v průběhu času.

vývojář předloží aplikaci spolu s knihovnami, z nichž obě jsou digitálně podepsány s certifikátem vývoje, aby byla zajištěna integrita (hello, NSA). To znamená, že Swift se může vyvíjet rychleji než iOS, což je požadavek na moderní programovací jazyk. Změny v knihovnách mohou být zahrnuty do nejnovější aktualizace aplikace v App Store a vše jednoduše funguje.,

dynamické knihovny nebyly nikdy podporovány na iOS až do spuštění Swift a iOS 8, i když dynamické knihovny byly na Mac podporovány po velmi dlouhou dobu. Dynamické knihovny jsou externí spustitelný soubor aplikace, ale jsou součástí balíčku aplikací staženého z App Store. Snižuje počáteční velikost aplikace, protože je načtena do paměti, protože externí kód je propojen pouze při použití.

schopnost odložit načítání v mobilní aplikaci nebo vložené aplikaci na Apple Watch zlepší vnímaný výkon pro uživatele., To je jedna z rozdílů, díky nimž se ekosystém iOS cítí citlivější. Společnost Apple se zaměřila na načítání pouze aktiv, zdrojů a nyní sestaveného a propojeného kódu za běhu. Načítání za běhu snižuje počáteční čekací doby, dokud není zdroj skutečně potřebný k zobrazení na obrazovce.

dynamické knihovny ve Swiftu umožňují rychlejší šíření změn a vylepšení programovacího jazyka než kdykoli předtím. Uživatelé již nemusí čekat na vydání iOS point, aby mohli těžit z jakýchkoli vylepšení výkonu nebo spolehlivosti, které Apple zavádí do Swift.,

Swift Playgrounds podporuje interaktivní kódování

nově představená hřiště Swift jsou přínosem pro zkušené vývojáře. Hřiště byla částečně inspirována prací bývalého zaměstnance Apple Bretta Victora. Hřiště umožňují programátorům vyzkoušet nový algoritmus nebo grafickou rutinu, řekněme 5 až 20 řádků kódu, aniž by museli vytvářet celou aplikaci pro iPhone.

Apple přidal inline spuštění kódu na hřiště, aby programátorům pomohl vytvořit kus kódu nebo napsat algoritmus a zároveň získat zpětnou vazbu., Tato smyčka zpětné vazby může zlepšit rychlost psaní kódu, protože mentální model, který tradiční programátor potřebuje, může být nahrazen vizualizací dat na hřištích. Plánování je iterativní proces, a jakékoli napětí, které může být snížena nebo se používají k doplnění tvůrčí proces bude programátoři více produktivní a zdarma je k řešení větší problémy, spíše než se zaměřit na nudné detaily, které tradiční kompilátory mají uložené na programátory.,

poznámka: z mých zkušeností s výukou začínajících programátorů nejsou hřiště pro začátečníky tak silná jako pro zkušené programátory. Jednoduše ukázat, jak proměnná funguje na hřišti Swift, nepomůže začátečníkovi pochopit potřebu proměnné s plovoucí desetinnou čárkou versus celočíselnou proměnnou. Potřeba se stává zřejmá, když ukážete aplikaci,která si pamatuje vaši poslední pozici posouvání ve zpravodajském kanálu Facebook. Pro začátečníky lze na otázku „proč“ odpovědět pouze pracovním příkladem: aplikací pro iPhone.,

Swift je budoucnost, kterou můžete ovlivnit

Objective – C nikam nevede, ale díky zavedení Swift neuvidí tolik významných změn. Některé funkce Swift se pravděpodobně přenesou na Cíl-C, ale odkaz cíle-C v C znamená, že může absorbovat jen tolik.

Swift poskytuje společenství pro rozvoj přímý způsob, jak ovlivnit jazyk, který bude použit k vytvoření aplikace, embedded systémy (pokud Apple někdy licencí vložený rámec a čip pro třetí osoby), a zařízení jako Apple Watch.,

Apple se zaměřuje na poskytování nejlepších spotřebitelských zkušeností a buduje pouze ty funkce, které jsou považovány za hodné pozornosti. S vydáním Swift 1.2 v Xcode 6.3 Apple již opravil tisíce chyb nahlášených pomocí populárního nástroje Apple Bug Reporter. Tým podporující vývoj a vývoj Swift se velmi zajímá o to, jak lze jazyk vylepšit, aby lépe podporoval vývojovou komunitu, která staví aplikace a systémy pomocí Swift.,

Swift: více přístupný, plnohodnotný jazyk

většina změn, které umožní Rychlé povznést se nad Objective-C vyplývají z vrácení dědictví, jazyk Objective-C byl postaven na. Apple se neodchází od kakaa, což je jejich knihovna API a kódu pro vytváření zážitků, které se cítí ve stylu Apple. Místo toho poskytují plnohodnotnou paritu a usnadňují interakci s novými API, která podporují funkce, jako je Force Touch nebo Taptic Feedback.

mnoho starších rozhodnutí bylo navrženo tak, aby usnadnilo návrh kompilátoru., Swift se zaměřuje na to, aby vývojář aplikace usnadnil práci tím, že vytlačí duševní kmen starých kódovacích praktik. Jak se zlepšují moderní kompilátory, více informací lze odvodit z menšího kódu.

S Swift, programátoři mají poloviční počet kód soubory na údržbu, žádné manuální kód synchronizace, a daleko méně interpunkce chybně—což vede k více času stráveného psaní kvalitní řádků kódu., Kód je nyní self-dokumentování v Swift s přidáním volitelné typy: compile-time bezpečnostní mechanismus pro vrácení hodnoty, nebo žádnou hodnotu, což je běžný problém s asynchronní operace, selhání sítě, neplatný vstup uživatele, nebo ověření dat chyby. ARC je v Swiftu sjednocen jak procesním kódem ve stylu C, tak objektově orientovaným kódem pomocí rámce Apple Cocoa.

vývojáři zjistí, že ve Swiftu píší méně kódu a moderní jazykové funkce je podporují při zachování čitelnosti řádků kódu., Swift udrží celý ekosystém Apple v popředí programování, protože se stále vyvíjí, díky dynamické podpoře knihovny v iOS a Swift. Open source projekty, SDK třetích stran a rámce, které se integrují s domácí automatizací, zařízeními a sociálními službami, budou snadněji integrovány bez prodloužení doby sestavení. Swift je v některých algoritmech téměř stejně rychlý jako C++ a nejnovější verze Xcode 6.3 a Swift 1.2 poukazují na další optimalizace výkonu na obzoru.,

přidejte k tomu skutečnost, že hřiště a Swift umožňují nový způsob programování s vizuální zpětnou vazbou, která pomáhá vývoji algoritmů pomocí inline vizualizace dat. Kratší smyčka zpětné vazby a grafické popisy usnadňují iterativní proces kódování.

Nakonec, Swift je přístupnější plnohodnotný programovací jazyk, který umožní vývojářům stavět nejen aplikace, ale také cílové embedded systémy, jako nové s nižší spotřebou Apple Watch na mnoho let přijít.,

  • 10 funkcí Apple ‚ukradl‘ pro Swift programovací jazyk
  • 9 věcí, které nesnášíme o Objective-C
  • Hodnocení: 7 vynikající mobilní aplikace stavitelé
  • Recenze: AppStudio je jako Visual Basic pro mobilní dev
  • Recenze: Appery.io párů mobile app builder s back-end služby
  • Recenze: Alpha Kdekoliv esa v režimu offline mobilní aplikace

Share

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *