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:

  1. 7 języków programowania, które warto poznać jeszcze w 2020 roku – cz. II (Kotlin i Typescript)
  2. 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

Obrazek posiada pusty atrybut alt; plik o nazwie image-2.png
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.