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.
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.
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.