19 sie 20209 min czytania
Dawid Karczewski
Senior full stack developer i CTO w Ideamotive.
Był rok 2014, gdy Apple przedstawiło nowy, prostszy sposób budowania aplikacji na iOS - Swift. Mimo to w 2020 roku menedżerowie IT i CTO wciąż mają problem z wyborem między Objective-C a Swiftem. Aby rozwiać wątpliwości, porównaliśmy je i przygotowaliśmy ten przewodnik.
AKTUALIZACJA 2023: Sprawdziliśmy, czy przedstawione dane są nadal aktualne, a jeśli nie były - zaktualizowaliśmy je.
Objective-C to obiektowy język programowania używany przez Apple od lat 90. Łączy zalety dwóch wcześniejszych języków - C i Smalltalka.
W 1996 roku Apple przejęło NeXT, którego narzędzia deweloperskie miały korzystać z Objective-C. Narzędzia te trafiły później do Xcode. Tak Apple zaczęło używać Objective-C przy tworzeniu Mac OS X. W efekcie Objective-C stał się pierwszym wyborem dla każdego, kto chciał stworzyć aplikację na OS X i iOS.
Swift powstał w Apple i po raz pierwszy pokazano go na Worldwide Developers Conference w 2014 roku. To osobny język zaprojektowany specjalnie do tworzenia oprogramowania na systemy operacyjne Apple. Od premiery jest nieustannie dopracowywany i rozwijany. Najnowsza stabilna wersja, Swift 5.8, ukazała się 30 mar 2023. Najświeższe informacje oraz szczegóły o nowych funkcjach i ulepszeniach znajdziesz na należącej do Apple oficjalnej stronie Swift.
Gdy stajesz przed dylematem wyboru między Swiftem a Objective-C do tworzenia aplikacji na iOS, wszystko sprowadza się do kilku kluczowych powodów.
Po pierwsze, i Swift, i Objective-C mają wsparcie Apple i służą do tworzenia jego produktów. Oba są natywnymi językami iOS, więc aplikacje napisane w którymkolwiek z nich bezproblemowo wpiszą się w ekosystem iOS, oferując najwyższą wydajność, bezpieczeństwo i doświadczenie użytkownika. Ten natywny status czyni je pierwszym wyborem przy tworzeniu aplikacji na iOS i gwarantuje, że Twoja aplikacja zachowa płynność i spójność estetyczną, jakiej oczekuje się od aplikacji iOS.
Po drugie, Swifta nie należy traktować jako bezpośredniego następcy Objective-C, mimo że powstał później. Te dwa języki mają odmienne możliwości i są używane równolegle w tworzeniu aplikacji mobilnych na iOS. Swift, z nowoczesną, wyrazistą i łatwą do nauki składnią, odpowiada programistom szukającym efektywności i szybkości. Objective-C z kolei, dzięki solidności i rozbudowanym bibliotekom, wciąż rządzi w projektach legacy i tam, gdzie potrzebna jest głęboka interakcja ze sprzętem.
Te różnice wprawiają wielu programistów i product managerów w rozterkę, który język wybrać. Wybór między Swiftem a Objective-C to nie tylko wybór języka programowania, ale dopasowanie strategii wytwarzania do wymagań projektu, harmonogramu i budżetu. Pytania krążą wokół tego, który język najlepiej odpowie na potrzeby, da optymalną wydajność i będzie najbardziej opłacalny.
Czytając ten artykuł, lepiej poznasz i Swifta, i Objective-C - ich mocne strony, niuanse oraz to, jak odpowiadają na różne wymagania projektowe. Na koniec będziesz mieć wiedzę pozwalającą świadomie zdecydować, czy do planowanej aplikacji na iOS lepszy będzie Swift, czy Objective-C.
Często porównujemy technologie i języki programowania. Częściowo dla własnych potrzeb, częściowo z chęci podzielenia się tą wiedzą z Tobą.
Choć można by wskazać dosłownie dziesiątki cech do porównania, zdecydowaliśmy się skupić na dziesięciu najważniejszych kwestiach. Wszystkie wpływają na koszty, jakość i wygodę tworzenia aplikacji na iOS. Poniższa lista i porównanie pomogą Ci ustalić, która technologia będzie najlepsza dla Twojego projektu.

Środowisko programistyczne to miejsce, w którym dzieje się magia. Istotne jest, czy jest łatwe w użyciu, ile kosztuje i czy na rynku są rozwiązania alternatywne.
Jeśli tworzysz aplikację na iOS albo OS X w Objective-C, najpewniej użyjesz IDE Xcode. Dostępne są też inne środowiska, takie jak AppCode czy Visual Studio Code od Microsoftu, ale do poprawnego działania i tak potrzebują Xcode pod spodem.
Xcode daje Ci zestawy Software Development Kit, w których znajdziesz praktycznie wszystko, czego potrzebujesz do tworzenia aplikacji na iOS. Narzędzia, kompilatory, API i frameworki - wszystko tam jest. Co więcej, są też konfigurowalne gotowe elementy, których możesz użyć w swojej aplikacji.
Xcode jest zintegrowany z Cocoa, a co ważniejsze w tym kontekście - z Cocoa Touch, środowiskiem do tworzenia aplikacji, którego użyjesz przy iOS. Jeśli jednak zdecydujesz się na Swifta, Cocoa Touch pozwoli Ci tworzyć także aplikacje na Apple Watch i Apple TV.
To nie jedyna różnica, jeśli chodzi o środowisko programistyczne. Jest jeszcze coś takiego jak Swift Playgrounds. Możesz w nim uczyć się kodowania w Swifcie, ale też testować małe fragmenty kodu bez kompilowania całości i tworzenia kompletnej aplikacji. Po prostu: gdy masz pomysł na rozwiązanie, piszesz kod w Playgrounds i od razu sprawdzasz, jak działa.
Ze Swiftem wciąż pracujesz w tym samym środowisku co przy Objective-C, ale zyskujesz też dostęp do nowszych rozwiązań, które poszerzają możliwości. Ta runda dla Swifta.

Oba są natywnymi językami iOS, więc nie musisz się martwić, czy Twoja aplikacja będzie wyglądać i działać bez zarzutu. Będzie, niezależnie od tego, który wybierzesz. Największa różnica dotyczy zgodności z wersjami iOS i łatwości budowania interfejsu.
Objective-C jest niemal tak stary jak świat, więc Twoja aplikacja uruchomi się na każdej dostępnej wersji iOS. Swift z kolei potrzebuje przynajmniej iOS 7. Musisz więc przeanalizować, jakie urządzenia mają Twoi użytkownicy, i zdecydować, czy odpowiada Ci ograniczenie się do osób z iPhone'ami i iPadami wydanymi po 2013 roku. Szczerze mówiąc, niewiele osób używa dziś urządzeń sprzed 7 lat, więc nie powinno to być problemem.
Jeśli chodzi o łatwość budowania interfejsu, Apple wprowadziło SwiftUI. To narzędzie do projektowania UI wbudowane w Xcode 11 działa z iOS 13 (lub nowszym, gdy się pojawi). Sprawia, że budowanie natywnego interfejsu dla wszystkich platform Apple jest banalnie proste. Interfejs składasz, pisząc kod albo poprawiając podgląd. Zmiany widać jednocześnie w kodzie i w podglądzie.
Remis. Przewaga Swifta będzie się jednak zapewne powiększać.
3. Szybkość kodowania
Szybkość kodowania wpływa na łączne koszty stworzenia aplikacji i skraca czas wejścia na rynek. Choć Objective-C i Swift są natywnymi językami iOS, nie są takie same. Swift jest znacznie nowocześniejszy. Dzięki prostszej składni jest też przyjaźniejszy dla człowieka. To znaczy, że łatwiej się go nauczyć.
Co więcej, mówi się, że ta sama aplikacja napisana w Swifcie ma tylko 30% linii kodu w porównaniu z napisaną w Objective-C. Popularnym przykładem jest Lyft, który przeszedł z Objective-C na Swifta, tracąc ponad 60% kodu. Zmniejszenie ilości kodu nie tylko przyspiesza pracę, ale też skutkuje mniejszą liczbą błędów oraz szybszymi i tańszymi testami.
Znów wygrywa Swift.

Im lepszą i lepiej dopasowaną technologię wybierzesz, tym wyższa wydajność. A z wyższą wydajnością przychodzą lepszy UX, łatwiejszy refaktoring i utrzymanie oraz wiele więcej.
Apple twierdzi, że Swift jest 2,6 razy szybszy od Objective-C. Jest to możliwe dzięki temu, że Swifta stworzono jako zupełnie nowy język z myślą o tym, by był... szybki.
Choć Apple wyposażyło Objective-C w garbage collector, wciąż nie jest on tak wydajny jak dobrze napisany kod w Swifcie. Prostsza składnia i sprawdzanie typów na etapie kompilacji pomagają Swiftowi wyprzedzić Objective-C. Do optymalizacji zarządzania pamięcią Swift używa ARC (Automatic Reference Counting). Co więcej, Swift obsługuje biblioteki dynamiczne, które również podnoszą wydajność aplikacji.
Swift wygrywa, a jego przewaga nad Objective-C będzie rosła.
Odpowiednie wsparcie daje Ci pewność, że będziesz mieć dostęp do know-how potrzebnego do udanego projektu. Poza wsparciem profesjonalnym przydaje się też bycie częścią społeczności ekspertów, którzy wesprą Cię swoim doświadczeniem i wiedzą.
Choć Objective-C wciąż jest wspierany przez Apple, nigdy nie był językiem otwartoźródłowym. Swift przeciwnie - jest otwarty, więc możesz dokładnie zobaczyć, jak działa, i lepiej zrozumieć jego podstawy. To nie wszystko. Otwartość oznacza więcej osób zaangażowanych w więcej projektów i więcej źródeł dostępnych dla programistów Swifta.
Choć społeczność Objective-C ma ponad 30 lat, będzie się kurczyć. Nowicjusze wolą uczyć się Swifta i z roku na rok będzie mniej programistów, którzy wesprą Cię swoją wiedzą. Już dziś wśród użytkowników StackShare (dane z 2023 roku) około 10 000 deklaruje używanie Objective-C a ponad 16 000 korzysta ze Swifta. Jednocześnie społeczność programistów Swifta jest bardzo żywotna. Co więcej, nawet inne firmy stworzyły własne frameworki dla Swifta (jak IBM).
Znów Swift wyraźnie wygrywa tę rundę.
Standardowe IDE zwykle nie wystarcza przy złożonych projektach. Aby zapewnić sobie wygodę, programiści sięgają po dodatkowe zestawy narzędzi. Nie inaczej jest z programistami Objective-C i Swifta. Zaplecze różni się jednak w obu przypadkach.
Ze względu na długą historię Objective-C znajdziesz wiele narzędzi od Apple i firm trzecich. Nie liczyłbym jednak na powstawanie nowych narzędzi do pracy z Objective-C.
Z drugiej strony, skoro Swift jest językiem otwartoźródłowym, bardzo łatwo znaleźć narzędzia dostarczane przez firmy trzecie i społeczność. Co więcej, Apple daje Ci szeroki wachlarz narzędzi zwiększających wydajność pracy. Ostatnio ogłosiło narzędzia takie jak PencilKit obsługujący Apple Pencil, SiriKit dający aplikacjom firm trzecich dostęp do asystenta Apple czy MapKit poszerzający możliwości dostosowania interfejsu.
Swift wygrywa i tutaj, choć przewaga nie jest aż tak duża. W przyszłości środowisko Swifta będzie się jednak rozwijać znacznie szybciej niż środowisko Objective-C.
Objective-C, z ponad trzema dekadami historii i ostatnim stabilnym wydaniem, wersją 2.0 z 2016 roku, oferuje dokładnie poznane środowisko. Wieloletnia stabilność tego czcigodnego języka pozwala programistom przewidywać potencjalne problemy i sobie z nimi radzić, dając niezawodną platformę, zwłaszcza przy utrzymaniu i aktualizowaniu starszych aplikacji.
Z drugiej strony Swift, mimo że znacznie młodszy, ma dynamiczną naturę świadczącą o ciągłej ewolucji. Regularne aktualizacje, jak niedawne wydanie Swifta 5.8, odzwierciedlają ciągłe ulepszenia i dodawanie nowych funkcji. Choć niektórzy odczytują tę stałą zmianę jako oznakę mniejszej stabilności, w rzeczywistości świadczy ona o przywiązaniu języka do innowacji i postępu.
Choć różnica wieku między nimi jest wyraźna, to, który język wypada lepiej pod względem stabilności, zależy od konkretnych potrzeb Twojego projektu. Objective-C daje dogłębnie zbadane i statyczne środowisko, przez co bywa niezawodnym wyborem w części projektów. Z kolei konsekwentny rozwój i ulepszanie Swifta czynią go idealnym do projektów wymagających najnowszych funkcji i nowoczesnych konwencji.
W świetle tych rozważań uczciwie będzie stwierdzić, że oba języki mają swoje zalety, jeśli chodzi o stabilność. Mimo różnych ścieżek i etapów rozwoju to porównanie można więc uznać za remis.
Znaczenia dokumentacji nie da się przecenić. Im lepiej znasz język i jego narzędzia, tym łatwiej uniknąć błędów.
Oba języki mają obszerną dokumentację. Objective-C głównie dlatego, że jest z nami od ponad 30 lat. Jego dokumentację znajdziesz w archiwum Apple. Dokumentacja Swifta jest jednak stale aktualizowana. Znajdziesz do niego więcej nowych źródeł. Pamiętaj też, że jest otwartoźródłowy, więc czeka na Ciebie znacznie więcej materiałów od firm trzecich. Zacznij od serwisu Apple dla programistów oraz dedykowanej strony Swifta. Jest też githubowe repozytorium Swifta .
Dzięki stałej aktualizacji Swift wygrywa również tę rundę.
Objective-C jest znacznie starszy od Swifta. Czy to znaczy, że jest dojrzalszy? Swifta zaprojektowano również w oparciu o doświadczenia Apple z Objective-C.
Dlatego nawet jeśli jego historia jest znacznie krótsza, Swift nie jest niedojrzały, bo czerpie z długiej tradycji. Co więcej, korzystamy już z wersji 5.2.4, a to tylko pokazuje, że Swift dorasta znacznie szybciej.
Apple nieustannie stara się, byś to Swifta wybierał w pierwszej kolejności. Środowisko wokół Swifta rośnie i choć Objective-C bywa dojrzalszy,
Swift też jest już „dorosły”. Mamy więc remis.
Twoje wymarzone rozwiązanie może być najlepsze na świecie, ale bez specjalistów, którzy potrafią z niego korzystać, jest bezużyteczne. Dla firmy kluczowa jest wiedza o tym, jak drogo i jak łatwo znaleźć programistów.
Według najnowszego Tiobe Index z maja 2020 roku Swift jest 11. najpopularniejszym językiem i ma prawie trzy razy więcej głosów niż rok wcześniej. Objective-C otrzymał tylko 50% głosów oddanych na Swifta. Liczba programistów Objective-C będzie spadać, a populacja programistów Swifta wzrośnie.
Powodów jest kilka. Po pierwsze, Apple prawdopodobnie będzie stopniowo wycofywać się z Objective-C. Widać, jak rozwija i promuje Swifta. Po drugie, Swifta znacznie łatwiej się nauczyć i zacząć w nim kodować. Po trzecie, Swift jest językiem otwartoźródłowym, a to zawsze sprzyja rozwojowi społeczności.
Swift wygrywa ostatnią rundę o włos.

Kolejnym aspektem, o którym warto pamiętać w tej analizie Swift vs. Objective-C z 2023 roku, jest baza użytkowników i zastosowanie każdego z języków. Oceniając to, trzeba jednak wziąć pod uwagę kontekst historyczny. Przed 2014 rokiem aplikacje na iOS pisano zwykle w Objective-C, po prostu dlatego, że Swift jeszcze nie istniał.
Obecnie wiele firm rozważa przejście z Objective-C na Swifta. Odwrotnie bywa rzadko - trudno wskazać przypadki powrotu ze Swifta na Objective-C. Sprawę komplikuje fakt, że oba języki mogą współistnieć w jednej aplikacji, więc jest wiele programów wykorzystujących zarówno Objective-C, jak i Swifta.
Przykładowo Uber używa w swoich aplikacjach zarówno Objective-C, jak i Swifta. Lyft z kolei przeszedł całkowicie na Swifta. LinkedIn robi podobnie ze swoimi aplikacjami. Gdy zbliżamy się do połowy tej dekady, coraz trudniej znaleźć firmę, która chce zostać wyłącznie przy Objective-C - co przy ciągłym rozwoju Swifta trudno uznać za zaskoczenie.
W tym przeglądzie Swifta i Objective-C w kontekście 2023 roku chcieliśmy dać Ci wszystkie informacje potrzebne do świadomego wyboru. Jeśli jednak wahasz się, który język wybrać, jesteśmy tu, by pomóc.
Śmiało się z nami skontaktuj. Nasz zespół doświadczonych konsultantów programistycznych jest gotowy doradzić Ci przy Twoim konkretnym projekcie. Biorąc pod uwagę jego wyjątkowe potrzeby i cele, pomoże Ci podjąć optymalną decyzję co do wyboru języka programowania. W nieustannie zmieniającym się świecie wytwarzania oprogramowania zaufaj nam, a pomożemy Ci wytyczyć dalszą drogę.
Szukasz programistów aplikacji iOS? W naszej sieci talentów są dziesiątki doświadczonych programistów mobilnych Swift i Objective-C . Wiemy, jak połączyć Cię z potrzebnymi specjalistami. Idealnie pasują do Twojej branży, technologii i kultury firmy. Pozwól nam wesprzeć Twój biznes ekspertami od aplikacji iOS.
Dawid jest full stack developerem. Tworzy aplikacje w Ruby on Rails i React Native od pierwszego pomysłu aż po wdrożenie. Buduje dla naszych klientów rozwiązania, które pomagają im rosnąć.
Zobacz wszystkie wpisy autoraPrzewodnik dla startupów i mobilnych przedsiębiorców
Czytaj terazPopularne artykuły
21 inspirujących projektów UI aplikacji mobilnych na 2023 rok
Michał Pruciak 7 min czytania
MedTech vs HealthTech vs BioTech: jakie są różnice?
Michał Pruciak 7 min czytania
10 biznesowych zastosowań sieci neuronowych (z przykładami!)
Michał Pruciak 4 min czytania
10 przykładów dobrych praktyk w web designie na 2023 rok
Adam Kozłowski 7 min czytania
28 znanych aplikacji webowych napisanych w PHP
Dawid Karczewski 14 min czytania
Jakich usług programistycznych szukasz?
Dane rejestrowe:
Firma
Usługi
Najczęściej poszukiwani specjaliści
Ocena 4,8 / 5,0 od klientów z różnych branż i lokalizacji.