top of page
Szukaj
  • Zdjęcie autoraKate Prokopiuk

Języki programowania i frameworki

W poście tym wytłumaczę, czym są języki programowania i do czego służą. Wyjaśnię w prostych słowach, jak dzięki nim rozmawiamy z komputerem ;). Zdradzę też jak się ma framework do języka.


 

Od czego się zaczęło?


Komputer to podstawowe wyposażenie każdego domu, niegdyś symbol luksusu. Jednak posiadanie samego sprzętu (ang. hardware) nic nam nie da ;). No przynajmniej nie większości ludzi ;). Aby był sens z niego korzystać, musi mieć zainstalowany system operacyjny i aplikacje. Te wszystkie programy nazywamy softwarem.


Pierwszy komputer w naszym rozumieniu tego słowa powstał w drugiej połowie XX wieku. Momentem przełomowym było zaprogramowanie maszyny obliczeniowej tak, by wykonywała sekwencję zdefiniowanych instrukcji. Taką listę z instrukcjami wprowadzono do pamięci komputera, aby mogła być wykonana w innym czasie.


Na początku były to proste operacje. Rozmiarami pierwsze komputery zajmowały całe powierzchnie pomieszczeń i to czasem nie małych, a moce jakich wymagały były ogromne. Wraz z postępem technologii i nauki zaczęły być one coraz mniejsze i bardziej wydajne. A zatem mogły wykonywać bardziej skomplikowane procesy… Ekhem sekwencje instrukcji.


Każdy z nas używa komputera w ściśle określonym celu: do pracy, do rozrywki, do zakupów, do samorozwoju, itp. W dzisiejszych czasach nawet telefon jest małym komputerem. A zatem wydajemy sekwencje instrukcji naszym programom, abyśmy mogli ukończyć zadanie, dla którego uruchomiliśmy komputer. Pomagają nam w tym aplikacje, które z kolei muszą rozumieć to, co im mówimy. Programy te muszą umieć przetłumaczyć nasze polecenia na język zrozumiały dla maszyn. W tak przewrotny sposób wytłumaczyłam, po co są języki programowania.


Historia zer i jedynek


No dobra, to jak już rozumiemy, po co one są, to teraz opowiem skąd się wzięły :). Zaczniemy od początku, bo każdy z nas przecież słyszał o kodzie binarnym.


Kod binarny składa się z sekwencji 0 i 1, które zazwyczaj odpowiadają stanom wyłączony i włączony. Ograniczenie liczby stanów do 2 pozwala maszynie interpretować polecenia. Procesory komputerowe korzystają tylko i wyłącznie z języka maszynowego, czyli zestawów rozkazów, które zapisane są za pomocą kodu binarnego. Kod ten zapisuje rozkazy oraz ich argumenty. Czy kojarzysz, że kiedy potrzebujesz zainstalować program na swoim komputerze, to pobrany plik instalacyjny ma rozszerzenie .exe? Te pliki instalacyjne są właśnie zapisane w kodzie maszynowym ;).


Umówmy się, że pisanie i czytanie programu w kodzie binarnym zabiłoby chyba (?) pasję u każdego. W związku z tym zaczęły powstawać pierwsze języki programowania, które bardziej przypominają język w naszym rozumieniu, bo mają:

  • składnię,

  • semantykę,

  • oraz typy danych.

Ale pamiętajmy o tym, że maszyny dalej rozumieją inny język: zer i jedynek. Potrzebny był zatem tłumacz, który przetłumaczy jeden język na drugi. Przypomina mi to sytuację, kiedy potrzebujesz czasem przetłumaczyć coś z polskiego na inny język. Odpalasz wtedy Tłumacz Google, nie?


Ale wracając do tematu, to właśnie w tym celu napisano program, który nazywamy kompilatorem. Tłumaczy on program napisany przez programistę na język zrozumiały dla maszyny, czyli język maszynowy.


Języki programowania i ich poziomy


Żeby nie było tak prosto, to języki programowania dzielą się ze względu na poziom.


Miernikiem "poziomu" jest jego "powiązanie" z hardwarem. Jeśli język programowania koduje operacje, której odpowiada jedna operacja procesora — czyli jest prosty, nie posiada złożonej warstwy abstrakcji — nazywamy go językiem niskopoziomowym (ang. low-level programming language). Natomiast, jeśli język zwiększa poziom abstrakcji, dystansuje się od sprzętu i jest bardziej przyjazny dla człowieka, mówimy wtedy o języku wysokopoziomowym (ang. high-level programming language). Aby umożliwić wykonanie programu napisanego w takim języku, należy wpierw poddać go procesowi kompilacji. Proces ten odpowiada za tłumaczenie kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym). Możliwy jest proces odwrotny, nazywamy go dekompilacją.


Co ciekawe, określenie „język niskiego poziomu” może być rozumiane również jako skala oceny subiektywnej danego języka programowania względem innego, np. programista pracujący w Pythonie może oceniać C++ jako język niskiego poziomu, mimo że w rzeczywistości jest to język wysokiego poziomu.


Język a framework - czym się różnią?


Język to struktura pisania kodu i ma swoją składnię i semantykę. Natomiast framework jest to szkielet do budowania aplikacji w ramach danego języka. Definiuje on strukturę aplikacji oraz ogólny mechanizm jej działania. Framework dostarcza zestaw komponentów (modułów) i bibliotek (gotowe zestawy reużywalnych części kodu) do wykonywania określonych zadań. Dzięki temu frameworki eliminują problem tworzenia aplikacji webowej od podstaw.


Omówię to na przykładzie Pythona. Jest to język używany do pisania backendu. Swoją popularność zawdzięcza prostej syntaktyce. Obecnie jest to najpopularniejszy język programowania. Python zrobił się popularny dzięki jego wykorzystaniu w Machine Learningu. Używa się go również do web developmentu i analizy danych. W web devie bardzo popularne są frameworki Django i Flask.


Django swoją reputację zawdzięcza szybkości, z jaką tworzy się w nim aplikacje webowe. Co za tym idzie, aplikacja wymaga mniejszej ilości kodu, jaki jest konieczny do jej stworzenia. Flask ceni się za jego prostotę, idealnie nadaje się do pisania mikrousług bez zbędnych dodatków takich jak dane czy przetwarzanie formularzy.


Python również oferuje pokaźną ilość bibliotek. PyTorch to biblioteka używana do maszynowego uczenia się, stosowana w aplikacjach takich jak przetwarzanie języka naturalnego (ang. NLP - natural language processing).


152 wyświetlenia0 komentarzy

Ostatnie posty

Zobacz wszystkie
bottom of page