Porównanie popularnych języków programowania

Jak się układają?

Język programowania

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ć.