Porównanie popularnych języków programowania
Jak się układają?
Getty Images/ermgut
Od lat pięćdziesiątych informatycy opracowali tysiące języków programowania. Wiele z nich jest niejasnych, być może stworzonych dla doktoratu. pracy magisterskiej i od tego czasu nigdy o niej nie słyszałem. Inne stały się popularne przez jakiś czas, po czym zanikły z powodu braku wsparcia lub ograniczenia do konkretnego systemu komputerowego. Niektóre są wariantami istniejących języków, dodają nowe funkcje, takie jak równoległość – możliwość równoległego uruchamiania wielu części programu na różnych komputerach.
Przeczytaj więcej o Co to jest język programowania?
Porównanie języków programowania
Istnieje kilka sposobów porównywania języków komputerowych, ale dla uproszczenia porównamy je według metody kompilacji i poziomu abstrakcji.
Kompilacja do kodu maszynowego
Niektóre języki wymagają przekształcenia programów bezpośrednio w kod maszynowy — instrukcje, które procesor rozumie bezpośrednio. Ten proces transformacji nazywa się kompilacja . Asembler, C, C++ i Pascal są językami kompilowanymi.
Tłumaczone języki
Inne języki to albo Interpretowane takie jak Basic, Actionscript i Javascript lub kombinacja obu kompilowanych do języka pośredniego — obejmuje to Java i C#.
Język interpretowany jest przetwarzany w czasie wykonywania. Każda linia jest czytana, analizowana i wykonywana. Konieczność ponownego przetwarzania wiersza za każdym razem w pętli powoduje, że języki interpretowane są tak wolne. To obciążenie oznacza, że interpretowany kod działa od 5 do 10 razy wolniej niż kod skompilowany. Języki interpretowane, takie jak Basic lub JavaScript, są najwolniejsze. Ich zaletą jest brak konieczności ponownej kompilacji po zmianach i jest to przydatne podczas nauki programowania.
Ponieważ skompilowany programy prawie zawsze działają szybciej niż interpretowane, języki takie jak C i C++ są najczęściej używane do pisania gier. Java i C# kompilują się do interpretowanego języka, który jest bardzo wydajny. Ponieważ maszyna wirtualna, która interpretuje Javę i platformę .NET, która uruchamia C#, są mocno zoptymalizowane, twierdzi się, że aplikacje w tych językach są tak samo szybkie, jeśli nie szybsze, jak skompilowany C++.
Poziom abstrakcji
Innym sposobem porównywania języków jest poziom abstrakcji. Wskazuje, jak blisko sprzętu znajduje się dany język. Kod maszynowy jest najniższym poziomem, z językiem asemblera tuż nad nim. C++ jest wyższy niż C, ponieważ C++ oferuje większą abstrakcję. Jawa i C# są wyższe niż C++, ponieważ kompilują się do języka pośredniego zwanego kodem bajtowym.
Jak porównuje się języki
- |_+_|
- Język programowania
- C
- C++
- Pascal
- C#
- Jawa
- |_+_|
- Perl
- PHP
- |_+_|
- JavaScript
- ActionScript
- Podstawowy
Kod maszynowy to instrukcje wykonywane przez procesor. To jedyna rzecz, którą procesor może zrozumieć i wykonać. Języki tłumaczone wymagają aplikacji o nazwie an Interpretator który czyta każdy wiersz kodu źródłowego programu, a następnie go „uruchamia”.
Tłumaczenie jest łatwiejsze
Bardzo łatwo jest zatrzymywać, zmieniać i ponownie uruchamiać aplikacje napisane w interpretowanym języku, dlatego są one popularne w nauce programowania. Nie jest potrzebny etap kompilacji. Kompilacja może być dość powolnym procesem. Kompilacja dużej aplikacji Visual C++ może zająć od kilku minut do kilku godzin, w zależności od tego, ile kodu trzeba odbudować, a także od szybkości pamięci i procesora.
Kiedy komputery pojawiły się po raz pierwszy
Kiedy komputery po raz pierwszy stały się popularne w latach pięćdziesiątych, programy były pisane w kodzie maszynowym, ponieważ nie było innego sposobu. Programiści musieli fizycznie przełączać przełączniki, aby wprowadzać wartości. Jest to tak żmudny i powolny sposób tworzenia aplikacji, że trzeba było stworzyć języki komputerowe wyższego poziomu.
Asembler: Szybki do uruchomienia - Wolny do pisania!
Język asemblera jest czytelną wersją kodu maszynowego i wygląda tak
|_+_|
Ponieważ jest powiązany z konkretnym procesorem lub rodziną powiązanych procesorów, język asemblerowy nie jest zbyt przenośny i jest czasochłonny, aby nauczyć się i pisać. Języki takie jak C zmniejszyły potrzebę programowania w języku asemblerowym, z wyjątkiem sytuacji, gdy pamięć RAM jest ograniczona lub potrzebny jest kod krytyczny czasowo. Zwykle znajduje się to w kodzie jądra w sercu systemu operacyjnego lub w sterowniku karty graficznej.
Asembler to najniższy poziom kodu
Asembler jest na bardzo niskim poziomie; większość kodu po prostu przenosi wartości między rejestrami procesora a pamięcią. Jeśli piszesz pakiet płac, który chcesz myśleć w kategoriach wynagrodzeń i potrąceń podatkowych, a nie zarejestruj A w lokalizacji pamięci XYZ. Dlatego języki wyższego poziomu, takie jak C++,C#lubJawasą bardziej wydajne. Programista może myśleć w kategoriach domeny problemu (wynagrodzenia, potrącenia i rozliczenia), a nie domeny sprzętu (rejestry, pamięć i instrukcje).
Programowanie systemów za pomocą C
C został opracowany na początku lat 70. przez Dennisa Ritchiego. Można go traktować jako narzędzie ogólnego przeznaczenia - bardzo przydatne i potężne, ale bardzo łatwe do przepuszczenia błędów, które mogą sprawić, że system stanie się niepewny. C jest językiem niskiego poziomu i został opisany jako przenośny język asemblera. Składnia wielu języków skryptowych jest oparta na C, na przykład JavaScript , PHP i ActionScript.
Perl: Strony internetowe i narzędzia
Bardzo popularny w świecie Linuksa, Perl był jednym z pierwszych języków internetowych i pozostaje bardzo popularny do dziś. Do robienia 'szybkiego i brudnego' programowania w sieci pozostaje bezkonkurencyjny i napędza wiele stron internetowych. Zostało to jednak nieco przyćmione przez PHP jako język skryptów internetowych .
Kodowanie stron internetowych za pomocą PHP
PHP został zaprojektowany jako język dla serwerów WWW i jest bardzo popularny w połączeniu z Linuksem, Apache, MySql i PHP lub w skrócie LAMP. Jest interpretowany, ale wstępnie skompilowany, dzięki czemu kod wykonuje się dość szybko. Może być uruchamiany na komputerach stacjonarnych, ale nie jest tak szeroko stosowany do tworzenia aplikacji komputerowych. W oparciu o składnię C zawiera również Obiekty i klasy.
Pascal został opracowany jako język nauczania kilka lat przed C, ale był bardzo ograniczony ze względu na słabą obsługę ciągów i plików. Kilku producentów rozszerzyło język, ale nie było ogólnego lidera, dopóki nie pojawiły się Turbo Pascal firmy Borland (dla Dos) i Delphi (dla Windows). Były to potężne implementacje, które dodały wystarczającą funkcjonalność, aby nadawały się do rozwoju komercyjnego. Jednak Borland zmierzył się ze znacznie większym Microsoftem i przegrał bitwę.
C++: język z klasą!
Klasy C++ lub C plus, jak pierwotnie nazywano, pojawiły się około dziesięć lat po C i pomyślnie wprowadziły programowanie obiektowe do C, a także funkcje takie jak wyjątki i szablony. Nauczenie się całego C++ to duże zadanie - jest to zdecydowanie najbardziej skomplikowany z języków programowania, ale kiedy już go opanujesz, nie będziesz miał trudności z żadnym innym językiem.
C#: Big Bet Microsoftu
C# został stworzony przezDelfyAnders Hejlsberg, architekt Anders Hejlsberg, po przejściu do Microsoftu i Delphi, programiści poczują się jak w domu dzięki takim funkcjom, jak formularze Windows.
Składnia C# jest bardzo podobna do Javy, co nie jest zaskakujące, ponieważ Hejlsberg pracował również nad J++ po przejściu do Microsoftu. Naucz się C# i jesteś na dobrej drodze do poznania Javy. Oba języki są częściowo skompilowane, więc zamiast kompilować do kodu maszynowego, kompilują się do kodu bajtowego (C# kompiluje się do CIL, ale kod bajtowy i kod bajtowy są podobne), a następnie są interpretowane.
Javascript: programy w Twojej przeglądarce
JavaScript nie przypomina Java, zamiast tego jest językiem skryptowym opartym na składni C, ale z dodatkiem Obiekty i jest używany głównie w przeglądarkach. JavaScript jest interpretowany i dużo wolniej niż skompilowany kod, ale działa dobrze w przeglądarce.
Wynaleziony przez Netscape okazał się bardzo udany i po kilku latach w zastoju cieszy się nowym powiewem życia dzięki AJAX; Asynchroniczny JavaScript i XML . Umożliwia to aktualizowanie części stron internetowych z serwera bez przerysowywania całej strony.
ActionScript: błyskotliwy język!
ActionScript jest implementacją JavaScript, ale istnieje wyłącznie w aplikacjach Macromedia Flash. Wykorzystując grafikę opartą na wektorach, jest używany głównie do gier, odtwarzania filmów i innych efektów wizualnych oraz do tworzenia wyrafinowanych interfejsów użytkownika, wszystko to działa w przeglądarce.
Podstawowy dla początkujących
Podstawowy jest akronimem dla Beginners All-purpose Symbolic Instruction Code i został stworzony do nauczania programowania w latach 60-tych. Microsoft uczynił ten język swoim własnym z wieloma różnymi wersjami, w tym VBScript dla stron internetowych i bardzo udanym Visual Basic . Najnowsza wersja to VB.NET i działa na tej samej platformie .INTERNET jako C# i tworzy ten sam kod bajtowy CIL.
Dwa to darmowy język skryptowy napisany w C, który zawiera garbage collection i współprogramy. Dobrze współpracuje z językiem C/C++ i jest używany w branży gier (i innych niż gry) do tworzenia skryptów logiki gier, wyzwalaczy zdarzeń i kontroli gier.
Wniosek
Chociaż każdy ma swój ulubiony język i zainwestował czas i zasoby w naukę jego programowania, istnieją pewne problemy, które najlepiej rozwiązać za pomocą odpowiedniego języka.
Np. nie używałbyś C do pisania aplikacji internetowych i nie napisałbyś systemu operacyjnego w JavaScript. Ale niezależnie od tego, jaki język wybierzesz, czy jest to C, C++ czy C#, przynajmniej wiesz, że jesteś we właściwym miejscu, aby się go nauczyć.