Садржај
Циљ било ког програмског језика је претворити скупи рачунар са тешким папирима у користан уређај за обраду и складиштење података. Језик изабран за извршавање овог задатка мора бити уравнотежен између ефикасности и једноставности употребе. Машински језик представља крајеве спектра за оба фактора.
Машински језик
Машински језик даје једини сет упутстава који рачунар разуме без преводиоца. Рачунари су у стању да репродукују аудио и видео, обрађују и чувају податке, комуницирају са Интернетом и обављају друге специјализоване задатке, одговарајући на сет упутстава који препознају само јединице и нуле. Писање стотина редова кода само са јединицама и нулама је досадан задатак који доприноси популарности језика високог нивоа, као што су Ц и Јава.
Почетне предности
ИБМ-ов први лични рачунар био је опремљен са 512 КБ меморије са случајним приступом и погоном дискете од 360 КБ. Након што је оперативни систем учитан у меморију са дискете, програми су учитани у преостали меморијски простор, остављајући малу површину РАМ-а, обично мању од 100 КБ, за активни програм за обраду података. Током тог времена, програмеру је примарна брига била стварање концизног и ефикасног кода. Алат за програмирање који се највише користио на овим рачунарима био је машински језик, који може бити знатно мањи од верзије написане на БАСИЦ-у или Ц. Такође је било мало лакше користити монтажни језик.
Зависност од платформе
Машински језик директно упућује на хардвер рачунара, пружајући програмеру потпуну контролу над свим аспектима покретања програма. Недостатак овог приступа је тај што програмер мора знати архитектуру сваког сета интегрисаних кола (чипсета) да би написао ефикасан код. Када се компонента попут видео картице или контролера диска промени, код се мора ажурирати да би препознао и користио нови уређај.
Језици високог нивоа
Предности брзине и мале употребе меморије машинског језика надјачане су потешкоћама писања упутстава на нивоу чипа у бинарни код. Доступност гигабајта РАМ-а и терабајта складишног простора елиминисала је потребу за концизним и ефикасним кодом на модерним личним рачунарима. Додатни захтеви за меморијом и складиштењем програма написаних на језицима високог нивоа, као што су Ц и Јава, више нису фактор при одабиру развојне платформе. Једноставност употребе и одржавања пожељни су фактори брзине и ефикасности у већини савремених софтверских пројеката.