Czy warto jeszcze uczyć się Objective-C

3 listopada 2017

Od czasu wprowadzenia przez Apple języka Swift minęło już trochę czasu, a dokładniej 3 lata i 5 miesięcy 😎. Język Swift zyskał w krótkim czasie bardzo dużą popularność, szczególnie wśród nowych adeptów sztuki programowania na iOS. Dziś mamy wersję 4 języka Swift, a rozwój będzie trwał w najlepsze.

Jeśli interesuje Cię historia języka Swift oraz jego najnowsze możliwości, zachęcam do przeczytania poprzednich wpisów na tym blogu, do których linki zamieszczam poniżej.

A co przedtem? Ano przedtem dzielił i rządził język Objective-C – czyli dokładnie wersja języka C rozszerzona o koncept progrmowania obiektowego.

Jak wspomniałem, minęło już trochę czasu od kiedy do użycia wszedł Swift, czy zatem warto dziś, w 2017 roku, zaczynać naukę Objective-C? Moim zdaniem jest to pytanie z gatunku WAŻNE, które wiele razy rzuciło mi się w oczy przeglądając różne poradniki czy fora dla początkujących. Śpieszę zatem z moją odpowiedzią.

old versus new
Stare vs. Nowe?

Note: Pamiętaj, że wszystko w tym wpisie jest moim subiektywnym odczuciem i własnym zdaniem. Nie narzucam ani nie namawiam nikogo do niczego, nie jestem też ekspertem. Po prostu – ot spostrzeżenia doświadczonego kolegi po fachu. Zatem, do dzieła ✈️.

Czy warto uczyć się Objevtive-C?

Odpowiedź jest moim zdaniem prosta i jednoznaczna ➡️️️ Warto.

Objective-C był językiem przez lata wykorzystywanym do tworzenia oprogramowania i aplikacji na systemy firmy Apple. W tym czasie powstała cała masa aplikacji mobilnych, oprogramowania OS X, a przede wszystkim framework’ów i bibliotek. Nadal zdecydowaną większość w App Store stanowią aplikacje napisane w Objective-C. Wyobraź sobie zatem sytuację, w której jako zatrudniony iOS deweloper zostajesz poproszony o modyfikację właśnie takiego kawałka software’u. To normalna sprawa. Wtedy właśnie okazuje się, że warto znać chociaż podstawy do swobodnego poruszania się po projeckcie.
Ponadto, jak wspomniałem Ci wcześnie, wiele bibliotek i framework’ów jest dalej rozwijanych w Objective-C. Jeżli zatem myślisz np. o dołączeniu do jakiegoś projektu typu Open Source, to może się okazać, że Objective-C będzie bardzo przydatny, czasem niezbędny.

Pierwszy język

Jednakże… 🤔 Wyobrażam sobie, że możesz być dopiero aspirującym programositą iOS i jesteś na etapie wyboru i nauki języka. W tej sytuacji postaw sobie konkretny cel, który kieruje twoją nauką i dobierz odpowiednią strategię, żeby nie zakopać się w nauce. Postaw się w jednej z poniższych sytuacji:

1. Chcę nauczyć się programowania jako hobby, chcę zrobić swoją aplikację samodzielnie, nie chcę pracować jako profesjonalista.

Ciągnięcie nauki dwóch języków jednocześnie nie jest najlepszym pomysłem. Dlatego w tym wypadku powinieneś skupić się wyłącznie na języku Swift. Jest on dużo bardziej przysfajalny, ma estetyczniejszą składnie i mniej zawiłą gramatykę języka. Ponadto, Swift będzie aktualizowany i rozwijany jeszcze bardzo, bardzo długo. Objective-C w tym wypadku możesz spokojnie potraktować jako ciekawostkę, i kiedy będziesz miał taką wewnątrzną potrzebę, wtedy rzucisz okiem również na tego dziadka.

2. Chcę zostać iOS deweloperem, ale nie znam jeszcze żadnego języka.

Najlepiej znać oba, z tym że po kolei :). Najlepiej najpierw zacząć naukę od Swift’a, zrealizować w nim jeden lub dwa większe projekty. Dodatkowo, musisz dobrze czuć się we framework’u Cocoa Touch i znać wszystkie możliwości, jakie daje Ci natywna biblioteka od Apple. Wtedy krok drugi – zaczynasz naukę Objective-C. Po co? 👇

3. Jestem iOS Dev’em, ale znam tylko Swift

To poszukaj sobie jakiegoś kursu z Objective-C i powoli zacznij w zaciszu domowym realizację jakiegoś małego projektu w całości w tym języku. Jeśli nie przekonuje Cię ja, to może przekona Cię… Marco Arment 😎. W odcinku podcast’a ATP (którego Marco jest jednym z prowadzących) po tegorocznym WWDC Marc sam powiedział, że wszystko co dziś piszę, dalej jest w Objective-C. Po prostu, ten język wciąż jest dojrzalszy, niż Swift, dlatego warto go po prostu znać.

i jest jeszcze czwarta opcja:
4. Znam bardzo dobrze Swift i trochę Objective-C, czy powinienem zgłębiać wiedzę w Objective-C?

Hm… mam nadzieję że nie spadną na mnie teraz gromy 😅 ale moim zdaniem… nie ✋. Jak pisałem wcześniej, dziś wszystko co nowe jest pisane w Swift. Często nawet nowe funkcjonalności do starych projektów są dopisywane właśnie w Swift. Jeżeli posiadasz już wiedzą dostateczną, aby poradzić sobie z konfiguracją nagłówków (.h), umiesz poprawić coś w metodzie itp. to naprawdę wystarczy!

Czy warto migrować projekt do Swifta?

O – to jeszcze jedno ważne pytanie. Co robić, kiedy dostajemy do rozwoju projekt, który był już wcześniej pisany w Objective-C no i ma być teraz przez nas rozwijany? To nam, jako architektom (jeżeli już jesteśmy na tym poziomie) należy zdecydować, czy cały projekt migrujemy do Swift’a, czy zostajemy i rozwijamy go dalej “po bożemu” w Objektowym C.

Są trzy możliwości jak kontynuować taki oto projekt:

1. Pisz dalej w Objective-C

Takie rozwiązanie wydaje się najprostrze z ludzkiego instynktu do nie mnożenia problemów. Jak pisałem wcześniej, mamy mnóstwo bibliotek pisanych w tym języku etc. Problem jednak jest w tym, że to nie rozwija samego programisty. Swift rośnie, bezapelacyjnie. Za jedną, góra dwie generacje będzie już na tyle samodzielny, aby prowadzić w nim duże projekty. Zatem jeżeli jesteś programistą iOS, ale nie chwytałeś jeszcze za Swift’a, to jest to doskonały moment do tego. Przejdź do punktu 👉 2 lub 3.

2. Migruj cały projekt

Jeśli zdecydowałeś się na migrację całego projektu pisanego w Objective-C do Swift, to wiedz że czeka Cię masa pracy. Nie ma w tej chwili dobrego narzędzia do takiej magicznej migracji. Musisz po prostu przepisać cały projekt od nowa. Co więcej wiąże się do z problemami natury sematyki języka, bo o ile Swift czerpał z Objective-C całkiem sporo, to jednak pewne paradygmaty języka mogą się znacząco róznić.

Podsumowaując, jeśli Ty lub twój pracodawca nie macie za dużo czasu i pieniędzy, pomińcie ten punkt 😅.

3. Dopisuj nowe rzeczy w Swift

No i kompromis – złoty środek. Kiedy musisz rozwinąć aplikację mobilną lub jakąkolwiek inną napisaną w Objective-C, po prostu dopisuj nowe rzeczy w Swift.

Platforma Apple jest tak skontruowana, aby takie projelty miały prawo bytu. Co więcej jest to dobry ruch dla Ciebie jako dev’a, który jeszcze nie zna super dobrze języka Swift. Podczas implementacji nowych funkcji możesz stopniowo poszerzać swoją wiedzę i przyswajać nowy twór obecnie z cyferką 4 na końcu.

Konkluzje

No to jeszcze małe podsumowanie z tych całych sądów nad starym, acz dobrym Objective-C. Na pytanie postawione w tytule odpowiadam z całym przekonaniem – TAK, warto uczyć się dziś Objective-C. Wszystko zależy od celu tej nauki oraz od pozycji wyjściowej samego programisty. Dla kogoś, kto chce nauczyć się programowania na iOS lub inny system Apple, zalecam skupienie 100% uwagi na Swift 4. Jeśli będziesz już good enough, to wtedy strzel sobie kurs albo książkę o C w werji obiektowej.

Kiedy możesz, pisz w Swift!

Na koniec proszę Cię o komentarz dotyczący treści lub samego zagadnienia. Zauważyłem, ze wywołuje on jeszcze pewne emocje, choć już nie tak gorące jak jeszcze rok temu. Daj znać co Ty o tym sądzisz w komentarzu pod postem. Chętnie pogadam też na Twitter’ze @jkornat oraz, ostatnio też na Instagramie jkornat.

Dzięki i do przeczytania następnym razem.
@jkornat

Czy warto jeszcze uczyć się Objective-C?

Komentarz do “Czy warto jeszcze uczyć się Objective-C?

  • Wrzesień 16, 2018 z 16:57
    Permalink

    Ja bym polecił jakieś szkolenie stacjonarne. Takie dwa lub trzy dni z trenerem mogą być dużo lepsze niż mozolne przegryzanie się przez podstawy Objective-C samemu. A na pewno wielokrotnie szybsze (np. szkolenie na https://asuri.pl/ wprowadza najważniejsze tematy Objective-C od zera.)

    Powtórz

Dodaj komentarz

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