Czy warto uczyć się jeszcze Objective-C?

Nauka programownia

Opublikowany: Oct 02, 2018

2014 roku Objective-C był trzecim najbardziej popularnym językiem programowania na świecie. W momencie premiery języka Swift, deweloperzy zaczęli programować w tym drugim, co spowodowało, że teraz oba języki są trochę dalej w rankingach. Jednak mimo tego, że od 4 lat Objective-C nie jest głównym językiem ekosystemu Apple, to jest wciąż aktywnie wykorzysytywany.

DLACZEGO OBJECTIVE-C NIE ODSZEDŁ W ZAPOMNIENIE?

Wynika to z faktu, że napisanie od nowa większości kodu w istniejących projektach nie byłoby opłacalne ekonomicznie. Znając Apple, firma zdolna byłaby do tego, aby jedną decyzją zablokować tworzenie kodu w starym języku, jednak wciąż tego nie zrobiła. Sam system iOS to wciąż w większości Objective-C. Jedynym słuszynm rozwiązaniem stało się więc udostępnienie możliwości korzystania zarówno z “nowego” jak i pozostania w “starym” świecie.

PO CO PROGRAMIŚCIE SWIFT JĘZYK OBJECTIVE-C?

W większości ofert pracy dla iOS Developera widzimy, że język Objective-C pojawia się wciąż obok Swifta i jego znajomość jest zwykle zalecana, lub wręcz wymagana. Wiąże się to z faktem, że w wielu projektach wykorzystywane są oba języki i pewne fragmenty są tworzone już w Swift, gdy starsze części kodu utrzymywane są wciąż w Objective-C.

action-adult-analog-1043512.jpg

BARDZO STARY JĘZYK

Objective jest bardzo starym językiem (ma tyle lat co ja, powstał w 1983r.) i wciąż ma się dobrze. Powstał na bazie języka C, rozszerzając jego składnię o elementy

[]

@

Elementy te pozwoliły na silne wykorzystanie obiektowego paradygmatu programowania w języku. I tak konstrukcje typu

id object = [Klasa new];

pozwolały na inicjalizację obiektu klasy z wykorzystaniem jej konstruktora, a

[object setA: 5 andB: 10];

na wywołanie na tym obiekcie funkcji setA:andB:

Progamiści Swift zapewne zauważą już małe podobieństwa, coś jakby etykiety parametrów. I rzeczywiście podobieństw jest więcej, gdyż Swift został zbudowany na fundamentach Objective-C. Tych dobrych. Sam Tim Cook powiedział w 2014 roku, że Swift to taki Objective-C bez C. Są w nim więc zaimplementowane takie rozwiązania jak ARC[1] czy lambda domknięcia. Są też jednak narzędzia, które wywodzą się bezpośrednio z C, czyli samodzielne zarządzanie pamięcią, wskaźniki i wiele wiele innych.

Zrzut ekranu 2019-03-31 o 16.04.38.png

DLACZEGO WCIĄŻ JEST POTRZEBNY?

Wiemy już, że część starego kodu jest wciąż utrzymywana w tym języku, gdyż nieopłacalne byłoby przepisanie wszystkiego od początku. Jaki jest to kod? Są to duże projekty, ale też mnóstwo bibliotek dostępnych do użytku dla każdego programisty. Wystarczy spojrzeć na listę bibliotek, które dostępne są w manadżerze zależności CocoaPods[2]. Nie należy więc go traktować jako języka starego i niepotrzebnego, którym zajmować się mogą już tylko dinozaury z branży IT.

CZY ŁATWO NAUCZYĆ SIĘ JĘZYKA OBJECTIVE-C?

Jeśli znasz już Swift, wiele koncepcji w Objective-C wyda Ci się znajomych. Pozostanie zwrócenie uwagi na te, których w języki Swift brakuje. Ważne są też sposoby integracji kodu w obu językach w jednym projekcie aplikacji, czy to na poziomie samej aplikacji, czy bibliotek zewnętrznych. Jeśli znasz język C, lub C++ łatwe będą również kwestie związane z zarządzaniem pamięci. Jeśli poznasz wszystkie niuanse i różnice między tymi językami i przyzwyczaisz się do składni, to z powodzeniem możesz zacząć wykorzystywać narzędzia Objective-C w swoich projektach.


ZAPRASZAMY NA SZKOLENIE

Objective-C dla programistów Swift


PORÓWNANIE OBJECTIVE-C I SWIFT

Czyli dobre i złe cechy każdego z nich

Przyszedł czas na porównanie kilku cech obu języków. Decyzję o wyborze tego lepszego pozostawiam czytelnikom.

Zrzut ekranu 2019-03-31 o 16.12.55.png


dr Błażej Zyglarski

Autoryzowany Trener Apple (Swift), praktyk z wieloletnim doświadczeniem

Od lat pasjonat technologii mobilnych. Autor dziesiątek aplikacji dla systemów iOS, tvOS i watchOS. Wykładowca na Wydziale Matematyki i Informatyki Uniwersytetu Mikołaja Kopernika w Toruniu. Praktykujący deweloper iOS. Współzałożyciel Asuri Solutions.



  1. Automatic Reference Counting
  2. https://cocoapods.org

Image
Programowanie Swift
Swift on Windows
Sep 23, 2020
Image
Felieton
Zarabianie Schrodingera
Sep 03, 2019
Image
Felieton
Rozliczanie aplikacji sprzedanych w AppStore
Jun 10, 2019
Image
Felieton
Cały internet na płycie CD
Apr 01, 2019
Image
Nauka programownia
Swift: O co chodzi z tymi kolejkami?
Feb 17, 2019

Nasze szkolenia