Swift czy Objective-C?

Swift czy Objective-C?

Spory na ten temat trwają od czasu zaprezentowania Swift na WWDC. Programiści podzielili się na dwa obozy: na tych co uważają, że Swift upadnie i nie przejmie rynku oraz na tych co ciepło przyjęli Swift i dali mu szansę zaistnieć w świecie aplikacji. Tak więc zadajmy sobie pytanie Swift czy Objective-C? Postaram się podać dzisiaj 10 powodów dlaczego uważam, że Swift zdominuje Objective-C. Dzięki kilku kluczowym nowościom jakie wprowadza Swift, ma on szansę stać się wiodącym językiem programowania na urządzenia z nadgryzionym jabłkiem. Dodatkowo sama firma Apple stara się budować reputację i mocno promować swój nowy język programowania. Dzięki zoptymalizowaniu kompilatora dla lepszej wydajności oraz kilku innym kluczowym zagraniom Apple ma zamiar maksymalnie ułatwić proces rozwoju aplikacji.

Oczywiście zachęcam do polemiki w komentarzach. Chętnie zapoznam się ze stanowiskiem innych osób.

1. Swift jest szybszy

Pomijanie archaicznych już konwencji języka C znacznie poprawiło Swift niemal pod każdym względem. Testy wskazują na wysokie zaangażowanie firmy Apple w poprawę szybkości, z jaką Swift może obsługiwać logikę aplikacji. Według danych jakie podaje Primate Labs, Swift zbliżył się swoją wydajnością do języka C ++ dla zadań związanych z obliczeniami. Swift jest niemal na równi z C ++ zarówno dla algorytmów FFT, jak i Mandelbrota.

2. Swift jest łatwiejszy do zrozumienia

Xcode i kompilator LLVM mogą rozpoznać zależności i automatycznie tworzyć przyrostowe kompilacje w programie Swift. W rezultacie, powtarzające się zadanie oddzielenia spisu treści (pliku nagłówkowego) od ciała (plik wdrożeniowy) jest przeszłością. Swift łączy nagłówek Objective-C (.h) i pliki wdrożeniowe (.m) w jeden plik kodu (.swift).

W Objective-C trzeba ręcznie zsynchronizować nazwy metod i komentarze między plikami, chyba że zespół ma reguły i komentarze kodu zachowane w jednym miejscu. Xcode i kompilator LLVM mogą pracować za kulisami, aby zmniejszyć obciążenie programisty. Dzięki Swift programiści wykonują mniej rachunkowości i mogą poświęcić więcej czasu na tworzenie logiki aplikacji. Poprawiona jest jakość kodu, komentarzy i funkcji, które są obsługiwane.

3. Swift jest łatwiejszy do czytania

Objective-C cierpi na wszystkie problemy, jakich można by oczekiwać od języka zbudowanego na C. Aby rozróżnić słowa kluczowe i typy C, w Objective-C wprowadzono nowe słowa kluczowe za pomocą symbolu @. Ponieważ Swift nie jest zbudowany w C, może łączyć wszystkie słowa kluczowe i usunąć liczne symbole @ przed każdym kluczem typu Objective-C lub obiektowym.
Swift opuszcza tradycyjne konwencje. Dlatego nie musisz już stosować średników, żeby kończyć wiersze oraz używać nawiasów, aby otaczać wyrażenia warunkowe wewnątrz instrukcji if / else. Wielką zaletą Swift jest to, że łączy on język kompilowany z językiem skryptowym i właśnie dzięki temu sporo funkcjonalności jest logicznych do zapisania (UIButton to przycisk, UITextField to pole tekstowe itp). Kod Swift jest bardziej zbliżony do naturalnego angielskiego. Ta czytelność ułatwia młodym programistom czytanie i rozumienie kodu nawet jeżeli ich doświadczenie jest minimalne.

4. Swift jest ujednolicony pod względem zarządzania pamięcią

Swift ujednolica język w sposób, o jakim Objective-C mógł tylko marzyć. Programista przy pracy z Obj-C jest odpowiedzialny za zarządzanie pamięcią podczas pracy z interfejsami API grafiki i innymi niskopoziomowymi interfejsami API dostępnymi na iOS. Sprawia to, iż musi sobie radzić z zarządzaniem pamięcią na wielu frontach aplikacji. Ogromna pamięć przecieku, którą programista może mieć w Obj-C, jest niemożliwy w Swift.
Programista nie musi myśleć o pamięci dla każdego cyfrowego obiektu, który tworzy. Ponieważ ARC, który jest obecny w Swift obsługuje wszystkie funkcje zarządzania pamięcią w czasie kompilacji, to zdolność intelektualna do zarządzania pamięcią może być skupiona na logice aplikacji i nowych funkcjach. Ponieważ ARC w Swift działa zarówno w kodzie zarówno proceduralnym, jak i obiektowym, nie wymaga już żadnych przełączników kontekstowych dla programistów, nawet gdy piszą kod, który dotyka niższych poziomów interfejsów API – problemu z obecną wersją Objective-C.

5. Swift jest bezpieczniejszy

Jednym z ciekawszych aspektów Obj-C jest sposób, w jaki obsługiwane są wskaźniki – ze szczególnym uwzględnieniem zero (null). W Objective-C nic się nie dzieje, gdy próbujesz wywołać metodę ze zmienną wskaźnika, którą jest zero (nieinicjalizowana). Wyrażenie lub linia kodu staje się bezużyteczna i chociaż nie uległo awarii, było ogromnym źródłem błędów.

Typy opcjonalne umożliwiają bardzo wyraźne wyliczenie wartości opcjonalnej zerowej w kodzie Swift, co oznacza, że ​​może wygenerować błąd kompilatora podczas pisania złego kodu. Tradycyjnie w Obj-C, jeśli wartość została zwrócona z metody, programista jest odpowiedzialny za dokumentację zachowania zwracanej zmiennej wskaźnika (za pomocą komentarzy i metod konwencji nazewnictwa). W przypadku Swift opcjonalne typy i typy wartości czynią je jasnym określeniem w definicji metody, jeśli wartość istnieje lub jeśli ma potencjał opcjonalny (tzn. Wartość ta może istnieć lub może być nil).

6. Swift potrzebuje mniej kodu

Swift zmniejsza ilość kodu wymaganego do powtarzania instrukcji i manipulacji ciągami. W Obj-C, praca z ciągami tekstowymi wymaga wielu kroków, aby połączyć dwie części informacji. Swift przyjmuje nowoczesne funkcje języka programowania, takie jak dodawanie dwóch ciągów znaków wraz z operatorem „+”, którego brakuje w Obj-C.

Typ systemu w programie Swift zmniejsza złożoność instrukcji kodowych – ponieważ kompilator może wyznaczyć typy. Swift obsługuje interpolację ciągów, co eliminuje potrzebę zapamiętania tokenów znanych z Obj-C i umożliwia programistom wstawianie zmiennych bezpośrednio do wiersza użytkownika.

7. Swift obsługuje dynamiczne biblioteki

Największą zmianą w Swift, jest zastosowanie dynamicznych bibliotek zamiast statycznych. Biblioteki dynamiczne są częściami kodu wykonywalnego, które mogą być połączone z aplikacją. Ta funkcja umożliwia bieżące aplikacje Swift do łączenia się z nowszymi wersjami języka Swift. Swift może ewoluować szybciej niż iOS, co jest wymogiem współczesnego języka programowania. Zmiany w bibliotekach można uwzględnić w najnowszej aktualizacji aplikacji w App Store.

Biblioteki dynamiczne nigdy nie były obsługiwane na iOS do czasu uruchomienia Swift i iOS 8, mimo że biblioteki dynamiczne były obsługiwane przez komputery Mac. Biblioteki dynamiczne są zewnętrzne do pliku wykonywalnego aplikacji, ale są dołączone do pakietu aplikacji pobranego z App Store. Zmniejsza to początkowy rozmiar aplikacji, gdy jest ładowany do pamięci, ponieważ zewnętrzny kod jest połączony tylko wtedy, gdy jest używany.

8. Swift jest przyszłością programowania!

Nieuniknionym jest, że prędzej czy później, Swift wyprze Objective-C. Jest on szybszy, łatwiejszy do zrozumienia oraz oferuje programistom ogromne udogodnienia pisania aplikacji. Swift zapewnia społeczności programistycznej bezpośredni wpływ na rozwój języka, który będzie używany do tworzenia aplikacji. Developerzy powoli będą się przerzucać na ten nowoczesny język, jest to tylko kwestia kilku lat. Chcąc, nie chcąc, Objective-C zostanie wyparty całkowicie przez Swift, dlatego jeżeli zaczynasz przygodę z programowaniem na urządzenia z nadgryzionym jabłkiem, najlepiej zrobisz zaczynając naukę odrazu od Swift. Na razie to wszystko, życzę miłego programowania i do zobaczenia.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *