Zawartość
Celem każdego języka programowania jest przekształcenie drogiego komputera z przyciskiem do papieru w przydatne urządzenie do przetwarzania i przechowywania danych. Język wybrany do wykonania tego zadania musi być zrównoważony między wydajnością a łatwością użycia. Język maszynowy reprezentuje końce spektrum obu czynników.
Język maszyny
Język maszynowy tworzy jedyny zestaw instrukcji, który komputer rozumie bez tłumacza. Komputery są w stanie odtwarzać dźwięk i wideo, przetwarzać i przechowywać dane, komunikować się z Internetem i wykonywać inne wyspecjalizowane zadania, odpowiadając na zestaw instrukcji rozpoznających tylko jedynki i zera. Pisanie setek linii kodu zawierających tylko jedynki i zera jest żmudnym zadaniem, które przyczynia się do popularności języków wysokiego poziomu, takich jak C i Java.
Początkowe zalety
Pierwszy komputer osobisty IBM był wyposażony w 512 KB pamięci o dostępie swobodnym i stację dyskietek 360 KB. Po załadowaniu systemu operacyjnego do pamięci z dyskietki programy były ładowane do pozostałej przestrzeni pamięci, pozostawiając niewielki obszar pamięci RAM, zwykle mniejszy niż 100 KB, dla aktywnego programu do przetwarzania danych. W tym czasie głównym celem programisty było stworzenie zwięzłego i wydajnego kodu. Narzędziem programistycznym najczęściej używanym na tych komputerach był język maszynowy, który może być znacznie mniejszy niż wersja napisana w BASIC-u lub C. Trochę łatwiej było też używać języka asemblera.
Zależność od platformy
Język maszynowy wskazuje bezpośrednio na sprzęt komputera, dając programiście pełną kontrolę nad każdym aspektem wykonywania programu. Wadą tego podejścia jest to, że programista musi znać architekturę każdego zestawu układów scalonych (chipsetów), aby napisać efektywny kod. W przypadku zmiany komponentu, takiego jak karta graficzna lub kontroler dysku, należy zaktualizować kod, aby rozpoznał i używał nowego urządzenia.
Języki wysokiego poziomu
Zalety języka maszynowego związane z szybkością i niskim zużyciem pamięci przeważają nad trudnością pisania instrukcji na poziomie chipa w kodzie binarnym. Dostępność gigabajtów pamięci RAM i terabajtów pamięci masowej wyeliminowała potrzebę zwięzłego i wydajnego kodu na nowoczesnych komputerach osobistych. Dodatkowe wymagania dotyczące pamięci i miejsca do magazynowania programów napisanych w językach wysokiego poziomu, takich jak C i Java, nie są już czynnikiem przy wyborze platformy programistycznej. Łatwość użytkowania i konserwacji to preferowane czynniki szybkości i wydajności w większości nowoczesnych projektów oprogramowania.