Podczas tegorocznej konferencji WWDC, główny nacisk położono na iOS 8 oraz OS X Yosemite, przez co jedna z najważniejszych nowości tego wydarzenia przeszła niemal niezauważona. Apple zaprezentowało światu nowy język programowania o nazwie Swift. Może to być tylko kolejna nowinka dla końcowego użytkownika, jednak dla programistów może to stanowić istotną zmianę w branży. Różne języki programowania mają swoje unikalne atuty – niektóre są szybsze, inne bardziej wydajne, a jeszcze inne charakteryzują się prostotą i przejrzystością. Apple dołącza do grona firm, które stworzyły swoje własne języki programowania, obok Google z Go (Golang) oraz Microsoft z .Net Framework. Swift, według twórców, uczył się z doświadczeń tych języków, jednocześnie pozostając wiernym swojemu poprzednikowi, jakim jest Objective-C. Apple pragnie, aby Swift był najszybszym i najpewniejszym językiem programowania wysokiego poziomu. Pozwól, że wyjaśnimy, dlaczego.
Dlaczego języki programowania są potrzebne?
Istnieje wiele sposobów, w jakie urządzenia mogą wykonywać różne zadania. Każde urządzenie, od nowoczesnych gadżetów po klasyczne komputery, można zaprogramować na różne sposoby, korzystając z języka maszynowego, który wymaga ręcznego pisania w surowym kodzie bajtowym lub asemblerowym. Można również skorzystać z języków wysokiego poziomu, które znacznie upraszczają ten proces. Dlatego stawia się na to, aby języki programowania były jak najbardziej zbliżone do naturalnego języka. Choć nazwa Swift może przyciągać bardziej programistów niż użytkowników końcowych, postaramy się uprościć nasze wyjaśnienie, aby pomóc Ci zrozumieć technologię, która ma szansę zdominować przyszłość produktów Apple.
Na bardzo podstawowym poziomie, urządzenia elektroniczne to w zasadzie „głupie” maszyny, które bez odpowiedniego programowania nie robią nic więcej, jak tylko stoją w miejscu. Programowanie nadaje im sens i funkcjonalność. Na początkowym etapie elektronicy musieli zapisywać polecenia jeden po drugim, co robili przy użyciu kart perforowanych i później języka maszynowego. Z biegiem lat zaczęto rozwijać języki, które umożliwiały bardziej naturalną interakcję z maszynami. Kod, który piszemy, jest kompilowany do formatu zrozumiałego dla komputera, a następnie wykonywany. Podsumowując, proces ten można ująć w schemacie: kod – kompilacja – wykonanie.
Dlaczego Swift jest szybki?
Jednym z kluczowych pytań, które się pojawia, jest: „Dlaczego?” Język C, który ma swoją genezę w latach 70., był rewolucyjny w swoim czasie, a w latach 80. pojawił się język C++, który od tego czasu był wykorzystywany przez Apple. Przyjęto zasadę, że „jeśli coś działa, nie należy tego zmieniać”. Jednak Apple stosowało Objective-C przez długi czas, więc nadszedł czas na coś, co jest szybsze, bardziej zaawansowane i prostsze w użyciu. W ten sposób pojawia się Swift.
Jak podano w oficjalnym e-booku o Swifcie (dostępnym za darmo w iTunes), „Swift to nowy język programowania dla aplikacji iOS i OS X, który łączy w sobie cechy najlepszych języków C i Objective-C, eliminując jednak ograniczenia wynikające z kompatybilności z C. Swift wprowadza bezpieczne wzorce programowania i nowoczesne funkcje, co czyni programowanie łatwiejszym, bardziej elastycznym i przyjemniejszym. Nowy język, wspierany przez dojrzałe i popularne frameworki Cocoa i Cocoa Touch, stwarza możliwość przemyślenia, jak tworzy się oprogramowanie.”
Dlaczego Swift jest istotny?
Choć Apple pragnie, abyśmy w pełni uwierzyli w ich innowacje, wciąż istnieje pewna idea związana z językiem „skryptowym”. Tradycyjne podejście, w którym kod jest pisany, kompilowany, a następnie wykonywany, sprawia, że rezultaty są widoczne dopiero po zakończeniu kompilacji. Błędy w kodzie mogą prowadzić do nieprawidłowego działania lub awarii. Wówczas programista musi znaleźć błąd, naprawić go i spróbować ponownie. Proces ten bywa czasochłonny i żmudny, ale był normą w świecie programowania. Języki skryptowe, z drugiej strony, są wykonywane linia po linii, co pozwala na bieżąco obserwować wyniki, eliminując konieczność późniejszego sprawdzania kodu. Dzięki temu cały proces staje się szybszy i prostszy.
Dotychczas możliwości języków skryptowych były ograniczone. Na przykład Python jest niezwykle szybki, ale jego zastosowanie ogranicza się do prostszych programów. Jest to jak samochód wyścigowy – idealny do rywalizacji, ale niekoniecznie do codziennych zakupów.
Jeśli planujesz stworzyć grę, Python nie będzie Twoim najlepszym wyborem. Objective-C (lub C++, jeśli korzystasz z systemu Windows) jest zdecydowanie lepszym rozwiązaniem. Swift z kolei obiecuje połączenie najlepszych cech z wielu języków programowania, inspirując się Objective-C, Rust, Haskell, Ruby, Python, C# i wieloma innymi (źródło: Chris Lattner). Swift ma na celu zachowanie dobrych elementów i eliminację tych złych. W kluczowych testach porównawczych jego wydajność jest szybsza niż Pythona i zdecydowanie szybsza niż Objective-C, co stanowi solidny początek.
Jakie dodatkowe funkcje oferuje Swift?
Swift wprowadza także interaktywne środowisko zwane „Plac zabaw”, które pozwala na bieżąco obserwować wyniki kompilacji, podobnie jak w przypadku języków skryptowych. To może znacznie skrócić czas tworzenia aplikacji, ponieważ w razie problemów od razu widać, co je spowodowało, a to umożliwia natychmiastową korektę. To jak poprawianie błędów w czasie rzeczywistym, zamiast czekania na zakończenie pracy.
Dodatkowo, w porównaniu do tradycyjnych języków wysokiego poziomu, takich jak C++, w Swift nie ma potrzeby deklarowania i uzyskiwania dostępu do klas i bibliotek w celu korzystania z podstawowych funkcji. W C++ musiałbyś użyć
#include<stdio.h> int main(void) { printf("Hello Worldn"); return0; }
co w Swift sprowadza się do:
println("Hello, world")
Jest to cały kod, który należy skompilować. Zauważ, że nie używa on też „;” jako znaku kończącego, co czyni go bardziej przyjaznym dla programisty.
Jakie są ograniczenia Swifta?
Warto jednak zaznaczyć, że pojawienie się Swifta nie oznacza, że Objective-C nagle stanie się przestarzałe. Aplikacje nadal mogą być tworzone przy użyciu Objective-C, a dla jego użytkowników nie powinno być większych problemów, ponieważ między tymi językami można dostrzec pewne podobieństwa. Z pewnością, ponieważ Apple poświęciło cztery lata na rozwój Swifta, skupi się na jego wsparciu zarówno teraz, jak i w przyszłości. Możliwe, że w pewnym momencie Objective-C zostanie całkowicie wyeliminowane z ekosystemu Apple, ale ten moment jeszcze nie nastał. Jeśli jednak nowy język jest łatwiejszy do nauki i znacznie szybszy, to dlaczego miałby ktoś pozostać przy Objective-C?
Oczywiście pojawiają się pewne obawy, w tym potencjalne wstrząsy w branży. Wiele karier opierało się na nauczaniu tworzenia aplikacji na iPhone’a, co może sprawić, że te umiejętności staną się nieaktualne. Z drugiej strony, wkrótce pojawią się nowi entuzjaści Swifta, co może być zarówno pozytywne, jak i negatywne. Dobrze, że nowe twarze wprowadzą świeżą energię, ale obawiamy się, że mogą również zalać rynek źle wykonanymi aplikacjami.
Wkrótce poruszymy temat metalowej struktury Apple, omawiając jej zalety i wady, szczególnie w kontekście gier na iOS.
Podsumowanie
Jeśli zastanawiasz się, dlaczego podczas WWDC nie zaprezentowano żadnego nowego sprzętu, przypominamy, że sam sprzęt nie ma sensu bez odpowiedniego oprogramowania. Dlatego to właśnie Swift uznano za jedną z najważniejszych nowości. Nowe podejście do programowania ma potencjał, aby znacząco wpłynąć na przyszłość całego sprzętu. Aby rozpocząć przygodę z programowaniem w Swifcie, potrzebujesz Xcode 6 beta oraz identyfikatora programisty.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.