Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Јава: Највише погрешно схваћен програмски језик на свету





Douglas Crockford's

Wrrrld Wide Web





Даглас Крокфорд
www.crockford.com


ЈаваСкрипт звани мока, звани ЛивеСкрипт, звани ЈСкрипт, звани ЕЦМАСкрипт, је један од најпопуларнијих светских програмских језика. Практично сваки персонални рачунар на свету има најмање један ЈаваСкрипт преводилац инсталиран у њему и у активној употреби. ЈаваСкрипт популаран је због своје улоге у скрипт језику WWW.

Упркос својој популарности, мало се зна да је ЈаваСкрипт веома лепо динамички оријентисан за опште намене програма. Како ово може бити тајна? Зашто се овај језик тако погрешно схваћен..

Име


Јава префикс сугерише да је ЈаваСкрипт некако у вези са Јавом, да је подскуп или мање способна верзија Јаве. Чини се да је име намерно одабрано да створи забуну, а од конфузије долази до неспоразума. ЈаваСцрипт се тумачи као Јава. ЈаваСцрипт је другачији језик.

ЈаваСкрипт синтактика има сличности са Јавом, колико год да Јава има Ц. Али то више није подскуп Јава. Јава је тада подскуп Ц. То је боље него у Јави. Да Јава (fka Oak) је првобитно намењен дому.

ЈаваСкрипт није била развијена у Сун Микросистему, Јава је развијена у Нетскапе. Првобитно је назван ЛивеСкрипт, али то име није довољно било конфузно.

Скриптасуфикс указује да то није прави програмски језик, то је више скриптинг језик а мање програмски. Али то је заиста ствар специјализације. У односу на Ц, Јава тргује перформансе за експресивне снаге.

Лисп у Ц одећи


Ц-лике синтакс ЈаваСцрипт, укључујући више заграда и незгодан је за користење. Чини се да изгледа ко обичан процедурални језик. То је погрешно јер ЈаваСкрипт има више заједничког са функционалним језицима као што су Лисп или Шема него са Ц или Јава. Има низове уместо листе и објекте уместо имовине листа. Функције су му прва класа. Има затвараче. Добија ламбдас без потребе да избалансира све те навигаторе.

Кастинг типова


ЈаваСкрипт је дизајниран да ради у Нетсцапе. Његов успех је довео до он постане стандардна опрема у готово свим веб бровсерима. Ово је довело до типекастинга. ЈаваСцрипт је Џорџ Ривс програмских језика. ЈаваСцрипт је погодна за велике класе не-веб-релатед апликацијама.

Покретна мета


Верзије ЈаваСцрипта су биле прилично слабе. Оне су имале изузеће за руковање, унутрашње функције и наслеђивање. У свом садашњем облику, сада је то потпуно објектно-оријентисан програмски језик. Али многа мишљења о језику заснована су на незрелим облицима верзије.

ЕЦМА одбор који има управу на језику који развија екстензије, један од највећих проблема на језику: Већ постоје превише верзија. То ствара конфузију.

Дизајн Грешке


Ниједан програмски језик није савршен. Јава има свој удео у дизајну грешака, као што је оптерећује + да означи као додавање са Конкатенатион са типа принуде, а грешка-склони са изјавом се треба избегавати. Резервисана реч политика је превише строга. Зарез убацивање је била велика грешка, као што је и нотација са дословним изразима. Ове грешке су довеле до програмерских грешака, и дизајна језика у целини. Срећом, многи од ових проблема могу се ублажити са добрим Линт програмом.

Дизајн језика у целини је сасвим добар. Зачудо, за ЕЦМАСцрипт одбор није заинтересован за исправљање ових проблема. Можда су више заинтересовани за доношење нових.

Лабаве Имплементације


Неке раније имплементацијаме ЈаваСцрипт биле су прилично лоше. Ово се одражава лоше на језик. Уважавајући те имплементације оне су уграђене у Бугги веб бровсерима.

Лоше Књиге


Скоро све књиге о ЈаваСцрипт-у су прилично грозне. Оне садрже грешке, лоше примере, и промовишу лошу праксу. Важне одлике језика се често објашњене слабо или су потпуно изостављене.Прегледао сам десетине књига ЈаваСцрипт, а ја само могу да препоручим једну: ЈаваСцрипт: свеобухватни водич (5. издање) Давид Фланаган. (Пажња аутори: Ако сте написали добру књигу, молим вас пошаљите ми копију на преглед.)

Званична спецификација за језик је објављена наЕЦМА .Спецификација је изузетно лошег квалитета. Тешко је за читање и врло је тешко разумети. Ово је био сарадник у Лошим књигама јер аутори нису били у стању да користе стандардни документ да би побољшали своје разумевање језика. ЕЦМА ТЦ39 и одбор би требало да буде непријатно изненађени.

Аматери


Већина људи који пишу у ЈаваСцрипт-у су аматери. Они немају дисциплину и обуку за писање добрих програма. Јава има толику моћ да је у стању да уради неке корисне ствари у њему, у сваком случају. Ово је дало ЈаваСцрипт репутацију као строго аматерском програму, који није погодан за професионално програмирање. То једноставно није случај?

Објектно оријентисано


Има објеката који могу да садрже податке и методе који делују на те податке. Објекти могу да садрже друге објекте. Али он нема извођаче радова који раде оно што раде класе, укључујући и контејнере класних променљивих и метода. То нема оријентисано наследство, али нема ни прототип за оријентисано наследство.

Два основна начина за изградњу објеката система су наслеђивањем (is-a) и од (has-a). ЈаваСцрипт ради тако, али његова динамичка природа дозвољава да ексцел има агрегације

Неки тврде да ЈаваСкрипт није истински објектно оријентисан, јер не пружа скривања То јест, објекти не могу имати приватне променљиве и приватне методе. Сви чланови су јавни. Aли се испоставља да ЈаваСцрипт објекти могу имати приватне променљиве и приватне методе. (Кликните овде сада да бисте сазнали како.) Наравно,мало ко разуме ово, јер је већином ЈаваСкрипт погрешно схваћен програмски светски језик.

Неки тврде да је ЈаваСцрипт није истински објектно оријентисан. Али, испоставља се да Јава подржава не само класично наслеђе, већ и друге обрасце за поновну употребу кода.

Ауторска права 2001 Даглас Крафорд Сва права задржана ВорлдВиде.




Published (Last edited): 24-05-2012 , source: http://javascript.crockford.com/javascript.html