Czym dokładnie jest programowanie?
W dużym uproszczeniu, jest to lista specyficznych instrukcji i poleceń, jakie wydajemy komputerowi, w celu wykonania dla nas poszczególnego procesu lub operacji. Sęk w tym, że owa maszyna (wbrew pozorom) nie jest w stanie zrozumieć naszego ludzkiego języka. Komputer posługuje się językiem binarnym, czyli ciągiem następujących po sobie zer i jedynek, które następnie koduje i przetwarza na informacje.
Język programowania
Język programowania jest zatem narzędziem służącym do komunikacji pomiędzy człowiekiem a maszyną poprzez zapisywanie instrukcji oraz algorytmów, które maszyna może zrozumieć i wykonać. Jest to rodzaj formalnego języka, który umożliwia programiście wyrażenie swoich pomysłów, zadań oraz rozwiązań w sposób zrozumiały dla komputera.
Wybór języka angielskiego jako powszechnego języka komunikacji w środowisku IT ma swoje podstawy w jego roli jako dominującego języka międzynarodowego. Angielski jest powszechnie używany w dokumentacji, specyfikacjach i komunikacji programistycznej ze względu na umożliwienie łatwej wymiany informacji między programistami z różnych krajów i kultur.
Proces tworzenia oprogramowania
1️⃣ Kod źródłowy
Programista używa klawiatury do wprowadzania mas instrukcji, które składają się na kod źródłowy
. Ten kod to zbiór instrukcji zrozumiałych dla ludzi, ale jeszcze enigmatycznych dla maszyny. To jest zrozumiała dla człowieka reprezentacja algorytmów i instrukcji, które mają być wykonane przez komputer.
2️⃣ Kompilacja kodu źródłowego
Kiedy kod źródłowy jest gotowy, jest on przekazywany do kompilatora
. Kompilator to program, który tłumaczy kod źródłowy na zrozumiały dla komputera kod wykonywalny
. Ten proces nazywa się kompilacją.
3️⃣ Kod wykonywalny
Kompilator przetwarza kod źródłowy na kod wykonywalny, który jest zrozumiały dla konkretnego rodzaju procesora. Ten kod wykonywalny jest gotowy do uruchomienia na odpowiednim środowisku wykonawczym.
4️⃣ Uruchamianie kodu przez procesor
Ostatecznie, kod wykonywalny zostaje uruchomiony przez procesor
, który wykonuje zawarte w nim instrukcje. To jest właśnie etap, w którym program zaczyna realizować swoje zadania zgodnie z intencjami programisty.
Z powyższego schematu wynika, że jeśli opracujesz program z myślą o uruchamianiu na platformie Windows
, może się okazać trudnym przeniesienie go na inne urządzenia, takie jak smartfony z systemem Android
. Pomimo korzyści związanych z efektywnością tego podejścia, istnieje istotne ograniczenie dotyczące przenośności oprogramowania i braku możliwości uruchamiania go na różnych platformach.
A teraz na scenę wkracza Java!
Java
jest to uniwersalny język programowania, który działa na zasadzie Write Once, Run Anywhere
. Oznacza to, że kod napisany w Javie może być kompilowany raz i uruchamiany na różnych platformach, bez konieczności modyfikacji. Dzięki temu Java stała się popularnym wyborem dla projektów wymagających przenośności, takich jak aplikacje mobilne na różnych systemach operacyjnych.
Magiczny kod bajtowy
W skrócie, kod bajtowy Java
to specyficzny dla tego języka kod, który jest generowany przez kompilator javac
i zapisywany w oddzielnym pliku podczas przetwarzania kodu źródłowego.
Kod bajtowy nie jest kodem wykonywalnym. Jest to pośrednia forma danych, która będzie następnie interpretowana lub kompilowana just-in-time
przez JVM
, czyli wirtualną maszynę Java
.
Java Virtual Machine
JVM
, czyli wirtualna maszyna Java to interpreter kodu bajtowego, który wchodzi w skład środowiska uruchomieniowego Javy, zwanego JRE
(
Java Runtime Enviroment
)
. To specyficzne oprogramowanie pozwala na uruchamianie kodu bajtowego (pośredniego) w różnych systemach. Takie rozwiązanie umożliwia tworzenie programów, które mogą być uruchamiane w każdym urządzeniu.
Uruchomienie programów stworzonych wyłącznie dla określonych procesorów w innym środowisku może być problematyczne. Należałoby stworzyć różne wersje danego programu kompatybilne z odpowiednim systemem, w których chcemy, aby ten program zadziałał.
W przypadku Javy nie ma takiej konieczności, poniewaz jeden uniwersalny kod napisany raz, może zostać uruchomiony w wielu miejscach, gdyż znamy już zasadę Write Once, Run Everywhere
. Wystarczy, że zainstalowano w nich JRE
,
a wirtualna maszyna Javy zajmie się wykonaniem kodu.
Oczywiście, mimo licznych zalet, istnieją także pewne minusy.
Dodanie dodatkowego etapu związanego z kompilacją do kodu bajtowego w Javie mogło początkowo wprowadzić pewne opóźnienia w porównaniu do tradycyjnej kompilacji do kodu wykonywalnego. Jednak wprowadzenie usprawnień, takich jak HotSpot VM
, znacząco poprawiło szybkość operacji, zbliżając ją do poziomu osiąganego przez języki takie jak C
czy Ruby
.
Niemniej jednak, warto zauważyć, że mimo tych udoskonaleń, proces kompilacji do kodu bajtowego w Javie nadal może wymagać większego zużycia pamięci w porównaniu do niektórych innych języków programowania. Jednakże programiści uważająte kompromisy za akceptowalne, biorąc pod uwagę korzyści związane z przenośnością i elastycznością oferowaną przez Javę, a także jej zdolność do obsługi szerokiego zakresu zastosowań.
Proces tworzenia programu w Javie
1️⃣ Kod źródłowy
Program w Javie jest zazwyczaj napisany w plikach z rozszerzeniem .java
. Kod źródłowy Javy składa się z klas i metod, zgodnie z obiektowym paradygmatem programowania.
2️⃣ Kompilacja kodu
Kompilacja w Javie odbywa się za pomocą narzędzia javac
, które jest dostarczane wraz z JDK (Java Development Kit). Po napisaniu kodu, używamy polecenia javac
do skompilowania plików .java
na pliki bajtowe (.class
).
To spowoduje utworzenie pliku nazwaPliku
.class
, który zawiera kod bajtowy zrozumiały dla maszyny wirtualnej Javy (JVM)
.
3️⃣ Wykonanie kodu
JVM
odczytuje plik bajtowy, interpretuje go i wykonuje program.
Śledź moją aktywność na LinkedIn
Zapisz się na mój newsletter
Jeśli masz jakieś sugestie lub pytania, proszę napisz do mnie wiadomość: kuba@javampokaze.pl