Swift
Steve Jobs odmówił obsługi Java (i JVM) w iOS, ponieważ podobno stwierdził, że Java nie jest już mainstreamowym językiem programowania. Wiemy teraz, że Steve Jobs nie miał racji w ocenie Javy, mimo to iOS wciąż nie obsługuje Javy. Zamiast tego Apple wybrał Objective-C jako język programowania pierwszej klasy w systemie iOS. Objective-C jest trudnym językiem do opanowania. Ponadto nie wspiera wysokiej wydajności programistów wymaganej przez nowoczesne języki programowania.
W Apple Chris Lattner i inni opracowali Swift jako uniwersalny, skompilowany, wieloparadygmatowy język programowania, który stanowi alternatywę dla Objective-C. Pierwsza stabilna wersja Swift została wydana w 2014 roku. Swift obsługuje kompilator LLVM Toolchain (również opracowany przez Chrisa Lattnera), ma doskonałą interoperacyjność z bazą kodów Objective-C i już stał się głównym językiem programowania w rozwoju aplikacji na iOS.
Najważniejsze cechy:
- Jedną z ważnych cech Swift jest jego konstrukcja językowa. Dzięki prostszej, zwięzłej i czystej składni oferuje bardziej produktywną alternatywę dla Objective-C.
- Swift oferuje również funkcje nowoczesnych języków programowania, czyli eliminację błędów odwołania. Ponadto oferuje tzn. lukier składniowy, aby uniknąć piramidy zakłady.
- Jako skompilowany język Swift jest tak szybki jak C ++
- Swift ma wsparcie dla LLVM Compiler Toolchain. Możemy więc używać Swift w programowaniu po stronie serwera, a nawet programowaniu w przeglądarce (za pomocą WebAssembly).
- Swift oferuje obsługę automatycznego zliczania referencji (ARC), a tym samym ogranicza niewłaściwe zarządzanie pamięcią.
Popularność:
Programiści uwielbiają język programowania Swift. Według badania StackOverflow Swift zajął 6. miejsce jako najbardziej ukochany język programowania:
Źródło: Stackoverflow
W rankingu TIOBE w 2019 roku Swift przeszedł do pozycji 10. Biorąc pod uwagę, jak młody jest ten język (5 lat), jest to nie lada wyczyn:
Źródło: TIOBE Index
Trendy Google pokazują również gwałtowny wzrost popularności Swift, a następnie nieznaczny spadek trendu:
Źrodło: Google Trends
Główne obszary wykorzystania:
- Rozwój aplikacji iOS
- Programowanie systemowe
- Możliwość operacji wykonywanych po stronie klienta (przez WebAssembly)
Konkurujące języki:
- C
- Rust
- Go
DART
Dart jest drugim językiem programowania na liście stworzonej przez Google. Google jest kluczowym graczem w domenie internetowej i Android, i nic dziwnego, że opracował swój własny język programowania z obszaru rozwoju aplikacji. Google, kierowany przez słynnego duńskiego inżyniera, Larsa Bak’a (który kieruje rozwojem silnika JavaScript V8 JavaScript), wydał Dart w 2013 roku.
Dart to uniwersalny język, który umożliwia typowanie silne i programowanie obiektowe. Dart można również przekompilować na JavaScript i uruchomić tam, gdzie JavaScript działa, a więc można go używać praktycznie wszędzie (np. Web, Mobile, Server).
Najważniejsze cechy:
- Podobnie jak inny język googlowy, czyli Go, Dart również mocno koncentruje się na wydajności programisty. Dart jest niezwykle produktywny i lubiany przez developerów ze względu na czystą, prostą, zwięzłą składnię.
- Dart oferuje również typowanie silne na klawiaturze i programowanie obiektowe. Jest także drugim językiem na tej liście, którego można otagować jako „Scalable JavaScript”.
- Dart jest jednym z niewielu języków, które obsługują kompilacje JIT (Just-in-time compilation) i AOT (Ahead-of-time compilation). Dlatego właśnie Dart może mierzyć się z czasem wykonania jak w JavaScript (silnik V8), i może być opracowany do szybkiego kodu rodzimego (kompilacja AOT)
- Platforma Flutter uznała Dart za język służący do programowania do tworzenia zarówno aplikacji na iOS jak i Androida. Od tego czasu Dart stał się bardziej popularny.
- Podobnie jak Go, Dart ma świetne wsparcie narzędziowe i dostęp do ekosystemu Flutter. Rosnąca popularność Fluttera prawdopodobnie tylko zwiększy adopcję Dart.
Popularność:
Według Github Octoverse, Dart był najszybciej rozwijającym się językiem programowania w 2019 roku, a jego popularność wzrosła pięciokrotnie w poprzedzającym roku:
Według indeksu TIOBE, Dart zajmuje 23. pozycję i już w ciągu zaledwie 4 lat prześcignął wiele innych istniejących i nowoczesnych języków programowania:
Źródło: TIOBE index
Jest to również jeden z najbardziej lubianych języków programowania, zajmując 12. miejsce w rankingu ankiet programistów StackOverflow:
Źródło: StackOverflow
Wraz z Flutter, Dart doświadczył również znacznego wzrostu widoczności w ciągu ostatnich dwóch lat, co jasno pokazują Google Trends:
Źródło: Google Trends
Główne obszary wykorzystania:
- Rozwój aplikacji
- Rozwój UI
Konkurujące:
- JavaScript
- TypeScript
JULIA
Większość języków programowania z tej listy jest rozwijana przez duże korporacje – inaczej niż Julia. W obliczeniach technicznych zwykle używane są języki dynamiczne, takie jak Python, Matlab. Te języki oferują łatwą w użyciu składnię, ale nie nadają się do obliczeń technicznych na dużą skalę. Używają bibliotek C / C ++ do zadań intensywnie wykorzystujących procesor, co skutkuje tzw. problemem dwóch języków, gdyż potrzebują tzw. Glue code do łączenia obu języków. A jako że kod jest tłumaczony na dwa języki, zawsze występuje tu pewna utrata wydajności.
Aby rozwiązać ten problem, grupa naukowców z MIT planowała stworzyć od podstaw nowy język, który wykorzysta zalety nowoczesnego sprzętu i połączy najlepsze części innych języków. Pracują w laboratorium innowacji MIT, deklarując:
Źródło: https://genome.sph.umich.edu/w/images/3/3e/Julia_presentation.pdf
Julia to dynamiczny język programowania na wysokim poziomie, który oferuje najwyższej jakości obsługę obliczeń współbieżnych, równoległych i rozproszonych. Pierwsza stabilna wersja Julii została wydana w 2018 roku i wkrótce zyskała zainteresowanie społeczności i przemysłu. Julia może być używana w obliczeniach naukowych, sztucznej inteligencji i wielu innych dziedzinach i może wreszcie rozwiązać problem „dwujęzyczności”.
Najważniejsze cechy:
- Podobnie jak Rust, kluczową cechą Julii jest projekt języka. Stara się ona połączyć niektóre z najlepszych funkcji istniejących języków w naukowym przetwarzaniu danych bez utraty wydajności.
- Jest łatwa do nauczenia się i bardzo produktywna.
- Oferuje funkcję Wielokrotnego wysyłana (multiple-dispatch programming).
- Ma wbudowaną obsługę obliczeń współbieżnych, równoległych i rozproszonych.
- Pozwala na asynchroniczne operacje we / wy, czyli przetwarzania danych wejściowych / wyjściowych, która pozwala na kontynuowanie przetwarzania przed zakończeniem transmisji.
- Jest niesamowicie szybki i może być stosowany w obliczeniach naukowych, w których występują miliony wątków.
Popularność:
Julia konkuruje głównie z Pythonem. Ponieważ Python jest jednym z najpopularniejszych języków programowania, minie kilka lat, zanim Julia stanie się bardziej mainstreamowa.
Julia jest stosunkowo nowa, ale nadal zajmuje już 33. miejsce w indeksie TIOBE.
Źródło: Tiobe
Google Trends wykazuje również stabilne zainteresowanie Julią przez lata.
Źródło: Google Trends
Ale biorąc pod uwagę zestaw funkcji i liczbę firm działających za Julią, takich jak NSF, DARPA, NASA, Intel, to tylko kwestia czasu, aby Julia dokonała przełomu w popularności.
Główne obszary wykorzystania:
- Nauki obliczeniowe
- High Performance Computing – użycie superkomputerów lub klastrów obliczeniowych do realizacji złożonych i długotrwałych obliczeń
- Data Science
- Wizualizacje
Konkurujące języki:
- Pyton
- Matlab
Poprzednie artykuły z cyklu:
- 7 języków programowania, które warto poznać jeszcze w 2020 roku – cz. II (Kotlin i Typescript)
- 7 języków programowania, które warto poznać jeszcze w 2020 roku – cz. I (Rust i Go)
Źródło: https://towardsdatascience.com/top-7-modern-programming-language-to-learn-now-156863bd1eec
Md Kamaruzzaman, posiada licencjat z inżynierii elektronicznej z Bangladesh University of Engineering and Technology oraz stopień magistra na kierunku Komunikacja w Technical University of Munich. Ma ponad 15 lat doświadczenia w ramach inżynierii i architektury oprogramowania w branżach takich jak telekomunikacja, nauki przyrodnicze, cyfrowy marketing i bankowość. Obecnie interesuje się obszarem Cloud Computing i architekturą Microservice. Obecnie mieszka z rodziną we Frankfurcie w Niemczech.