Sytuacja kobiet w IT w 2024 roku
12.03.202215 min
Mateusz Lewandowski

Mateusz LewandowskiContent SpecialistBulldogjob

Historia języków programowania od asemblera do Swifta

Udaj się w podróż po językach programowania, począwszy od najwcześniejszych w erze cyfrowej aż do najmłodszych technologii.

Historia języków programowania od asemblera do Swifta

Nowe technologie chyba nigdy przedtem nie pojawiały się na świecie z tak dużą częstotliwością. Obecnie są one integralną częścią naszej egzystencji - większość z nas właściwie na co dzień korzysta z takich sprzętów jak smartfon, tablet, czy laptop. Jeśli mamy jakiś problem, to oglądamy tutoriale na YouTube, a jak chcemy trochę poeksperymentować w kuchni, to szukamy w internecie nowych przepisów. Gdy chcemy się rozerwać, to gramy w gry komputerowe albo słuchamy muzyki, nie wspominając już o tym, że sprzęty cyfrowe potrzebne są nam na co dzień w pracy.

Za tym wszystkim, co wymieniłem, niemal zawsze stoi jakieś oprogramowanie, które jest z kolei napisane w jakimś języku programowania. Jest to możliwe dzięki ciężkiej pracy wielu ludzi, ich sukcesom, ale też błędom, które popełnili. Historia języków programowania jest długa, a droga, którą podążały - wyboista.

Kiedy się to wszystko zaczęło? Jak przebiegało? Postaramy się to przeanalizować, udając się na długą podróż, począwszy od najwcześniejszych języków programowania w erze cyfrowej aż do najmłodszych technologii

Czym są języki programowania, chyba każdy z nas wie. Zobaczmy zatem, które z nich będziemy w tym artykule omawiać:

  1. Języki asemblera
  2. Fortran
  3. ALGOL
  4. COBOL
  5. Lisp
  6. Pascal
  7. Język C
  8. SQL
  9. C++
  10. Python
  11. Ruby
  12. Java
  13. PHP
  14. JavaScript
  15. C#
  16. Kotlin
  17. Swift


Zaczynajmy!

Języki asemblera

Ważną rolę w historii języków programowania odegrały języki z rodziny asemblera (potocznie mówiąc: asemblery). Termin asembler oznacza natomiast tyle, że mamy program tworzący kod maszynowy na podstawie kodu źródłowego - jest to tzw. asemblacja. Sam kod źródłowy jest natomiast napisany w niskopoziomowym języku programowania bazującym na podstawowych operacjach CPU, czyli w języku asemblera.

Chociaż mówi się na nie potocznie asemblery, to określenie to oznacza jednak program tłumaczący język asemblera na kod maszynowy, a nie sam język.

Takich języków było sporo. Pierwsza technologia z tej grupy została opracowana w 1947 roku przez Kathleen Booth, brytyjską matematyczkę, która współpracowała z Johnem von Neumannem i Hermanem Goldstine’em w Instytucie Studiów Zaawansowanych w Princeton. Potem mamy np. SOAP, który był językiem asemblera stworzonym w 1955 roku dla komputera IBM 650, czyli pierwszego takiego urządzenia o przeznaczeniu komercyjnym. 

Asemblery były kiedyś powszechnie używanie - uwolniły one programistów od m.in. zapamiętywania kodów numerycznych oraz ręcznego obliczania adresów - wyeliminowały więc znaczą część męczącego procesu programowania pierwszej generacji. Ich znaczenie spadło jednak w latach 80. i 90. na rzecz języków wysokiego poziomu. Obecnie asemblery mają raczej zastosowanie niszowe.

To by było na tyle. Przejdźmy dalej.

Fortran

Fortran (kiedyś FORTRAN - od Formula Translation) był pierwszym powszechnie używanym językiem wysokiego poziomu. Koncept tego języka powstał na przestrzeni 1954 i 1955, a pierwsza implementacja, czyli kompilator napisany przez zespół Johna Backusa, informatyka z IBM, pojawił się w 1957 roku. Program ten był pierwszym w historii kompilatorem wysokiego poziomu. Jeśli chodzi o samo pierwotne zastosowanie Fortrana, to w założeniu John Backus chciał stworzyć dobrą alternatywę dla języków asemblera.

W rezultacie Fortran jeszcze bardziej uprościł pracę programistów, m.in. redukując rozmiar wyrażeń w kodzie potrzebnych do uruchomienia danej maszyny i tworząc alternatywę dla hand codingu. Nawet sam John Backus przyznał kiedyś, że jego innowacje wynikają po prostu z bycia leniwym.

W założeniu Fortran miał służyć obliczeniom inżynieryjno-naukowym, w czym z resztą ma zastosowanie do dzisiaj. Niegdyś był on językiem proceduralnym, a teraz jest technologią ogólnego użytku.

ALGOL

Język ten odegrał bardzo ważną rolę w historii języków programowania, mając wpływ m.in. na późniejszego Pascala. Prace nad nim rozpoczęto w drugiej połowie lat 50 XX wieku. Formalnie technologia ta pojawiła się po raz pierwszy jako ALGOL 58, a następnie jako ALGOL 60 i ALGOL 68 - to właśnie te dwie wersje zdobyły szczególne uznanie wśród informatyków.

To właśnie wersja 60 była sporym przełomem w historii programowania, ponieważ w 58 brakowało jeszcze wielu rzeczy i była ona w dużej mierze oparta na Fortranie. ALGOL 60 był pierwszym językiem, którego powstanie było owocem współpracy międzynarodowej - w pracach uczestniczyli m.in. informatycy z Danii oraz Stanów Zjednoczonych. 

Wersja 60 zawierała wiele rzeczy, których w językach programowania wcześniej nie było. Są to m.in. instrukcje blokowe, które pozwalają grupować instrukcje w bloki, czyli wywołania procedur przez siebie, czy tablice dynamiczne. Mamy tutaj również słowa kluczowe oraz typy danych definiowane przez użytkownika. 

Nie wszystko wyglądało jednak tak kolorowo. ALGOL miał też wady, które niestety przeszkodziły mu w odniesieniu sukcesu przemysłowego. Nie uzyskał on też niestety wsparcia poważanych firm komputerowych, a zwłaszcza ze strony IBM, którego bardziej interesował wtedy m.in. COBOL.

Jeśli chcesz dowiedzieć się więcej o tym języku, zajrzyj tutaj.

COBOL

Jest to kolejny wysokopoziomowy język na naszej liście. Został on stworzony do budowania aplikacji biznesowych, a jego koncept pojawił się w 1958 roku. Pierwsza implementacja została stworzona w roku 1961, a język ten został ustandaryzowany w 1968 - od tego momentu ulepszano go 4 razy.

Co ciekawe, składnia COBOL-a opiera się bezpośrednio na języku angielskim - zostało to tak zrobione, aby kod można było w łatwy sposób odczytać, a sam język był łatwy w dokumentowaniu. 

COBOL odgrywał bardzo istotną rolę w świecie biznesu. Programy w nim napisane są używane w instytucjach rządowych i biznesowych na całym świecie, działając na tak popularnych systemach operacyjnych jak Windows, czy Unix. Było wiele badań, które potwierdziły, że współczesne transakcje biznesowe stoją głównie na COBOL-u. Niemniej jednak cały czas mówi się o tym, że warto zastąpić kod COBOL-a jakąś bardziej nowoczesną alternatywą.

W Stanach Zjednoczonych nadal poszukuje się specjalistów, którzy potrafią kodować w tym języku. Przykładem może być tutaj ogłoszenie wystawione w 2020 roku przez gubernatora New Jersey, który prosi o ochotników, będących w stanie zająć się utrzymaniem używanego sprzętu przy pomocy COBOL-a. 

Lisp

Jest to kolejna rodzina języków programowania w naszym zestawieniu. Sam język został zaprojektowany przez amerykańskiego informatyka Johna McCarthy’ego podczas jego pobytu na MIT w 1958 roku, a jego pierwszej implementacji dokonał Steve Russell, amerykański programista i projektant gier komputerowych. Lisp jest drugim językiem wysokiego poziomu pod względem wieku, który cały czas pozostaje w użyciu (pierwszym jest Fortran). 

Na przestrzeni lat powstało mnóstwo dialektów Lispu. Część z nich miała nawet kilka implementacji - przykładem może być tutaj Common Lisp, który miał ich aż 12. Różnice między dialektami mogą być znikome lub znaczące, jak np. różne słowa kluczowe do definiowania funkcji.

Lisp był też od początku związany z rozwojem sztucznej inteligencji. Został on użyty w implementacji języka programowania o nazwie Micro Planner, który był z kolei podstawą znanego systemu z dziedziny AI służącego do przetwarzania języka naturalnego - SI SHRDLU. W konsekwencji był on najchętniej wybieranym językiem programowania w początkach tego typu prac.

Jeśli chcesz dowiedzieć się więcej, zajrzyj tutaj

Pascal

Język ten pojawił się stosunkowo późno - Niklaus Wirth, szwajcarski informatyk i twórca tego języka rozpoczął pracę nad Pascalem dopiero w 1968 roku, a istniały już wtedy takie technologie jak Fortran, czy ALGOL. Pierwsza implementacja tego języka, nazwanego na cześć francuskiego matematyka Blaise’a Pascala, nastąpiła w 1970 roku w serii komputerów CDC 6000. 

Pascal powstał przede wszystkim jako język służący do tworzenia strukturalnych aplikacji, a jego korzenie sięgają do takich technologii jak Algol-60 i Algol-W. Jeśli chodzi o jego cechy charakterystyczne, to np. bardzo rygorystycznie podchodzi on do kontroli typów - sprawdza czy do zmiennej typu A nie próbuje się przypisać wartości typu B. Jest to więc język silnie typowany.

Szczyt popularności Pascala przypada na lata 80. oraz 90., ale wraz z pojawieniem się sieci i systemów uniksowych (a potem Linuksa). Został on jednak stopniowo wyparty przez takie technologie jak C i C++.

Co ciekawe, Pascal był szczególnie popularny w Polsce - a to dlatego, że mieliśmy łatwy dostęp do kompilatorów w pirackich wersjach. Był on też całkiem prosty i został dosyć mocno spopularyzowany przez uczelnie wyższe. 

Język C

Język ten został stworzony na początku lat 70. przez Dennisa Ritchie, pracującego wtedy w Bell Telephone Laboratories. Za rok powstania języka C uznaje się 1972. Oryginalnie miał on służyć do tworzenia narzędzi na system operacyjny Unix. W 1973 natomiast wydano Version 4 Unix, który zawierał kernel tego systemu operacyjnego przepisany w C.

W 1978 natomiast Brian Kernighan i Dennis Ritchie opublikowali dokumentację języka C - w wydaniu polskim nosiła ona tytuł Język C. 

Składnia języka C została zaprojektowana w taki sposób, aby tworzyć niezwykle krótkie i zwięzłe programy oraz takie, które mają bardzo bliski związek z wynikowym kodem maszynowym. Składnia C zapewnia jednak dosyć wysokopoziomową abstrakcję danych.

Warto tutaj również wspomnieć o tym, że C był pierwszym językiem wysokiego poziomu, który odniósł duży sukces przy tworzeniu przenośnych systemów operacyjnych.

Jeśli chcesz rozwijać swoje umiejętności jako programista/stka języka C, to sprawdź oferty pracy tutaj

SQL

SQL to skrót od Structured Query Language - używa się go obecnie w praktycznie każdej relacyjnej bazie danych. SQL jest językiem deklaratywnym i wieloparadygmatowym. Pierwotnie miał on nosić nazwę SEQUEL, ale okazało się, że nazwę tę już wcześniej zastrzeżono. 

Sam język został stworzony w firmie IBM we wczesnych latach 70. Szybko stał się standardem, jeśli chodzi o komunikację z serwerami relacyjnych baz danych, a Oracle było pierwszą firmą, która włączyła SQL do swojego projektu komercyjnego.

Jak sama jego nazwa wskazuje, SQL polega na zadawaniu zapytań do bazy danych - stąd Structured Query. 

Jest on podjęzykiem danych, co oznacza, że wykorzystuje się go wyłącznie do komunikowania się z bazą danych - nie można przy jego pomocy tworzyć kompletnych programów, czy aplikacji. 

Wraz z powstaniem baz danych pojawiło się również wiele dialektów. Mamy więc tutaj np. MySQL, PSQL, T-SQL, które co do zasady działają bardzo podobnie, ale są wzbogacone o funkcje specyficzne dla danej implementacji. 

Poszukując pracy związanej z korzystaniem z SQL, warto zajrzeć tutaj

C++

Stworzony przez duńskiego informatyka Bjarne Stroustrupa, C++ to język programowania ogólnego przeznaczenia. Było to pierwotnie rozszerzenie języka C - dodane zostały obiektowe mechanizmy abstrakcji danych oraz silniejsze mechanizmy kontrolujące typy. Zawiera on też elementy dynamicznej kontroli typów. 

W C++ istnieje również możliwość stosowania kilku paradygmatów programowania: proceduralnego, obiektowego, generycznego, funkcyjnego oraz modularnego. 

Pierwsza wersja języka C++ pojawiła się w 1979 roku. Nazwa została zapoczątkowana przez Ricka Mascitti w 1983, kiedy po raz pierwszy tego języka użyto - sama nazwa ma odzwierciedlać fakt, że jest to rozszerzenie języka C, użyto więc w niej operatora inkrementacji ++ (czyli zwiększenia liczby o 1).

Oprócz języka C, na finalny kształt C++ wpływ miały takie języki jak Simula, z którego zaczerpnięto wartości obiektowe, oraz Algol, Ada, ML i CLU.

Szukając pracy związanej z C++, warto zapoznać się z ofertami pracy na naszej stronie

Python

Jest to obecnie jeden z najpopularniejszych i najszerzej używanych języków programowania na świecie. Jest językiem ogólnego przeznaczenia, a jego idee przewodnie to czytelność i klarowność. Znajduje to odzwierciedlenie w jego składni, która jest przejrzysta i zwięzła. Co więcej, Python jest językiem dynamicznym.

Podobnie do C++ wspiera on kilka paradygmatów programowania: obiektowy, imperatywny oraz funkcyjny.

Sam język powstał we wczesnych latach 90 - jako głównego twórcę uznaje się Guido Van Rossuma, jednak inne osoby również miały znaczący wkład w powstanie Pythona. Co ciekawe, sama nazwa nie pochodzi od zwierzęcia, ale od serialu z gatunku komedii surrealistycznej emitowanego przez BBC w późnych latach 60. i we wczesnych latach 70. - Monty Python’s Flying Circus

Obecnie Python jest rozwijany jako projekt typu Open Source, a pieczę nad nim trzyma Python Software Foundation, która jest organizacją non-profit. 

Jeśli ktoś korzysta z Pythona w pracy, lub po prostu się go uczy i zaczyna rozglądać się za pracą, to tutaj znajdzie oferty. 

Ruby

Ruby’ego stworzył w 1995 roku Yukihiro Matsumoto. Zbudowano go w taki sposób, aby był prosty i wydajny - podobieństwo do Pythona, zwłaszcza w składni. Bazuje on na takich językach, jak Perl, Lisp, czy wcześniej omawiany Python. Można też powiedzieć, że Matsumoto chciał stworzyć język, który daje radość z programowania

Sam Matsumoto twierdzi, że tworząc swój język inspirował się takimi technologiami, jak Perl, Smalltalk, Eiffel, Ada, BASIC, oraz Lisp. Charakteryzuje go dynamiczne typowanie z duck typingiem.

Ruby zaczął mocno zyskiwać na popularności od roku 2003, kiedy to pojawił się framework do tworzenia aplikacji webowych o nazwie Ruby on Rails. 

A tutaj znajdziesz więcej firm, które potrzebują kogoś kodującego w Ruby. 

Java

Jest to jeden z najpopularniejszych i najszerzej używanych języków programowania. Został on stworzony przez grupę roboczą prowadzoną przez Jamesa Goslinga z Sun Microsystems w 1995 roku i można go używać praktycznie w każdej specjalizacji. Pierwsza implementacja Javy 1.0 pojawiła się w roku 1996. 

Java jest językiem współbieżnym, opartym na klasach i obiektowym, a sama technologia cechuje się silnym typowaniem. Podstawowe koncepcje Javy zostały przejęte z języka Smalltalk - tutaj mamy maszynę wirtualną oraz zarządzanie pamięcią - oraz z C++ - z tego języka zaczerpnięto dużą część składni i słów kluczowych.  

Dosyć ważną rzeczą w przypadku Javy jest chyba to, że jest to język silnie ukierunkowany na programowanie obiektowe - w przeciwieństwie właśnie do wieloparadygmatowego C++. Nie jest on jednak całkowicie obiektowy. Java jest również niezależna od architektury - ta właściwość wynika z tego, że kod źródłowy programów pisanych w tym języku kompiluje się do kodu pośredniego. Taki kod jest niezależny od systemu operacyjnego i procesora, a wykonuje go JVM.

Java miała oryginalnie zastąpić C++, czyli następcę języka C. Starano się więc odgadnąć, które cechy C++ sprawiają największe problemy i stworzyć coś, co je potencjalnie rozwiąże. Twórcy chcieli stworzyć język, który jest prosty i przystępny oraz niezawodny. Finalnie prostota Javy to jednak rzecz mocno dyskusyjna, ale cechy tego języka sprawiają, że język ten znakomicie przyjął się w tworzeniu aplikacji biznesowych.

Jeśli zainteresowało Cię tworzenie tak wszechstronnych rzeczy, to koniecznie zajrzyj na stronę z ofertami pracy

PHP

Język ten został rozwinięty przez Rasmusa Lerdorfa w 1995 roku pod nazwą Personal Home Page. Teraz PHP oznacza Hypertext Preprocessor i służy głównie do budowania i utrzymywania dynamicznych stron internetowych oraz do developmentu po stronie serwera. Co więcej, PHP można używać do przetwarzania danych z poziomu wiersza poleceń. Jeśli chcesz dowiedzieć się więcej o początkowej historii PHP, zajrzyj tutaj

Pierwsza wersja PHP powstała już jednak w roku 1994 i nosiła wtedy nazwę PHP/FI, co po rozwinięciu daje nazwę Personal Home Page/Forms Interpreter. Był to wtedy zestaw skryptów Perla, który miał służyć Rasmuowi Lerdorfowi jako narzędzie do monitorowania internautów, którzy odwiedzali jego stronę. Niedużo czasu minęło do momentu, w którym inni też chcieli z niego korzystać - Lerdorf udostępnił więc publicznie kod źródłowy jako PHP Tools 1.0 w 1995. W tamtym momencie projekt ten zaczął powoli przekształcać się w to, co znamy dzisiaj jako PHP.

Jeśli chodzi o składnię języka, to PHP zapożycza z C, Javy oraz Perla. 

Sam język jest natomiast dosyć kontrowersyjny - dużo developerów za nim nie przepada. A to dlatego, że posiada on wiele funkcji, które mogą wprost programistom zaszkodzić. Co więcej, przez długi czas w języku tym był spory bałagan, który na szczęście udało się w końcu posprzątać.

Obecnie PHP sprawia wrażenie języka nowoczesnego oraz takiego, który ma potencjał do dalszego rozwoju. A jeżeli chodzi o popularnie firmy, które korzystają z PHP, to mamy tutaj Facebooka, Wikipedię oraz WordPress.

Więcej firm, które potrzebują kogoś z PHP, znajdziesz tutaj.

JavaScript

Język ten został stworzony w zaledwie 10 dni w 1995, a odpowiadał za to Brendan Eich w firmie Netscape. Według tego, co przeczytamy na stronie Mozilli, to jest to język programowania, dzięki któremu możemy wdrażać na stronach internetowych elementy, które sprawiają, że będzie ona wyświetlać coś więcej, niż statyczne elementy. JavaScript daje nam więc możliwość wyświetlania m.in. elementów 3D oraz video

Więcej o historii JavaScript przeczytasz tutaj

JavaScript to trzecia warstwa standardowych technologii internetowych - dwie pozostałe to HTML oraz CSS.

To jednak nie wszystko, jeśli chodzi o zastosowanie JS - JavaScript pojawia się również w aplikacjach desktopowych oraz aplikacjach webowych po stronie serwera za sprawą Node.js

Obecnie JS jest jednym z najszerzej znanych języków programowania. Co ciekawe, znalazł on również o wiele szersze zastosowanie, niż to do czego był początkowo zaprojektowany. Teraz można go znaleźć w kodzie prawie każdej dużej strony internetowej, w backendach wielu usług internetowych, czy nawet w aplikacjach desktopowych.

Jeśli lubisz bawić się w takie rzeczy, to możesz to robić zawodowo - oto oferty pracy

C#

Język ten został zaprojektowany w latach 1998-2001 dla firmy Microsoft. Wykorzystuje on wiele paradygmatów programowania i w założeniu miał rozszerzać możliwości języka C - stąd też nazwa, która jest analogiczna do C++. C# jest również językiem obiektowym, podobnie do wcześniejszej Javy.

Jak mogliście przeczytać wcześniej, operator ++ oznacza zwiększenie o jeden, a więc C++ miało być lepszą wersją języka C. Przy C# wykorzystano podobny tok rozumowania - kratka/krzyżyk przypomina 4 połączone ze sobą operatory ++, a w muzyce C# oznacza dźwięk C podniesiony o pół tonu. Obie rzeczy wyraźnie sugerują, że C# jest zarówno rozwinięciem języka C, jak i C++.

Technologia ta ma wiele cech wspólnych z takimi językami jak Object Pascal, Delphi, Java, no i oczywiście C++. Język ten jest również ściśle zintegrowany z platformą .NET, która jest zarówno frameworkiem, jak i środowiskiem uruchomieniowym. 

Oryginalnie C# używało się do tworzenia aplikacji na Windowsa. Od momentu, w którym .NET pojawił się na Linuksie i Macu, możliwe jest pisanie w nim aplikacji na praktycznie każdą platformę. Jest on również szeroko stosowany do tworzenia aplikacji webowych po stronie serwera, dzięki ASP.NET. 

Ciekawostka: na C# stoi Stack Overflow oraz wiele popularnych gier komputerowych (np. Bastion).

Oferty pracy, gdzie C# jest główną technologią, znajdziesz tutaj

Kotlin

Jest to statycznie typowany język programowania, który działa na maszynie wirtualnej Javy i powstał w roku 2011. Jest on rozwijany przez programistów z czeskiej firmy JetBrains. Nazwa tej technologii pochodzi od wyspy Kotlin, która znajduje się niedaleko Petersburga.

Historia Kotlina prezentuje się natomiast w następujący sposób: Dmitry Jemerov, programista z JetBrains, stwierdził że większość języków nie spełniała ich oczekiwań, jeśli chodzi o cechy i funkcje. Wyjątkiem była tutaj Scala, ale język ten zbyt wolno się kompilował. W 2011 roku przedstawił on więc projekt o nazwie Kotlin, a jednym z jego celów było osiągnięcie czasu kompilacji na poziomie Javy.

Andriej Briesław, główny projektant języka Kotlin, twierdzi, że jego język został zaprojektowany jako technologia przemysłowa i obiektowa, która jest w dodatku w pełni interoperacyjna z kodem napisanym w Javie. Dzięki temu firmy mogą stopniowo migrować bazę kodu z Javy właśnie do Kotlina. W Kotlinie wprowadzono m.in. eliminację błędów odwołania (ang. null-pointer safety), czy funkcje rozszerzeń.

Jeśli chodzi zastosowania tego języka, to jednym z nich jest platforma Android. Google ogłosił również, że Kotlin stał się oficjalnym językiem programowania na platformę Android. 

Oferty pracy dla programistów z Kotlinem znajdują się tutaj.

Swift

Język ten został rozwinięty przez Apple w 2014 i jest to najmłodsza obecnie technologia tego typu. Miał on w założeniu zastąpić C, C++ i Objective-C - zamierzano zredukować dzięki niemu ilość błędów, które mogą się pojawić podczas developmentu oraz generalnie ułatwić programistom pracę. 

Jest on dosyć wszechstronny - można go używać do aplikacji desktopowych, mobilnych oraz do programowania w chmurze.

Oferty pracy związane ze Swiftem znajdują się tutaj

Podsumowanie

Tutaj nasza podróż dobiega końca. Większość języków programowania inspirowała się czymś, co już istniało, co doskonale widać w powyższym tekście. Dzisiaj sprawa wygląda następująco: pomimo, że starsze języki zapewniły solidny fundament pod tworzenie nowoczesnych programów oraz innych technologii, to wymagania technologiczne z czasem zmieniały się na tyle, że potrzebne było tworzenie kolejnych języków.

W wielu branżach pojawiają się też coraz to nowe potrzeby, co również wymusza na technologiach niezawodność i działanie na najwyższych obrotach. Języki programowania nie mogą zatem zwalniać - muszą rozwojowi dotrzymywać kroku, a zatem one też nieustannie muszą się rozwijać. 

Co więcej, ze względu na powyższe, języki, zarówno te nowe, jak i te starsze, pozostaną jeszcze przez długi czas ważną częścią naszego życia i pracy.

<p>Loading...</p>