0

JavaScript: Най-най-Криворазбраната език за програмиране


Първоначално в http://javascript.crockford.com/javascript.html. Отидете на главната страница.

JavaScript, известен още като Мока, известен още като LiveScript, известен още като JScript, известен още като ECMAScript, е един от най-популярните езици за програмиране в света. Почти всеки персонален компютър в света има поне един JavaScript интерпретатор инсталиран на него, и се използва активно. Популярност JavaScript се дължи изцяло на ролята си на скриптовия език на WWW.

Въпреки популярността, малцина знаят, че JavaScript е един много хубав динамичен обектно-ориентиран общо предназначение език за програмиране. Как може това да е тайна? Защо е толкова неразбран този език?

Името

Представката Java- предполага, че JavaScript е свързано по някакъв начин с Java, че е подмножество или по-малко способни версия на Java. Изглежда, че името е умишлено са избрали да създадат объркване, и от объркване идва недоразумение. JavaScript не се тълкува Java. Java се тълкува Java. JavaScript е на различен език.

JavaScript има синтактична сходство с Java, колкото Java трябва да C. Но това вече не е подмножество на Java от Java е подмножество на C. Тя е по-добре от Java в приложенията, които Java (FKA Oak) първоначално е бил предназначен за ,

JavaScript не е разработен в Sun Microsystems, в дома на Java. JavaScript е разработена на Netscape. Той първоначално е бил наречен LiveScript, но това име не беше достатъчно объркващо.

The -Script наставката предполага, че той не е истински език за програмиране, които скриптов език е по-малко от един език за програмиране. Но това е наистина въпрос на специализация. В сравнение с C, JavaScript търгува производителност за изразителна сила и динамизъм.

Lisp в C облекла

C-подобен синтаксис JavaScript, включително големи скоби и несръчност за изявление, го прави да изглежда един обикновен процесуално език. Това е подвеждащо, защото JavaScript има повече общо с функционални езици като Lisp или схема, отколкото с C или Java. Той има масиви вместо списъци и обектите, а списъци собственост. Функции са първа класа. Тя има за затваряне. Можете да получите lambdas без да се налага да балансират всички тези parens.

Стереотипа

JavaScript е проектиран да работи в Netscape Navigator. Неговият успех там е довело до това да стане стандартно оборудване в почти всички уеб браузъри. Това е довело до стереотипа. JavaScript е Джордж Рийвс на езиците за програмиране. JavaScript е много подходящ за голям клас не-уеб-приложения, свързани с

Преместването цел

Първите версии на JavaScript бяха доста слаби. Липсваше обработка на изключения, вътрешни функции, и наследството. В сегашния си вид, че сега е пълен обектно-ориентиран език за програмиране. Но много мнения на езика, се основават на неговите незрели форми.

Комитетът за ECMA че има настойничество над езика е развиващите разширения, които макар и добронамерени, ще влошат един от най-големите проблеми на езика: Има вече твърде много версии. Това създава объркване.

Дизайн грешки

Не език за програмиране е перфектна. JavaScript има своя дял от грешки при проектирането, като претоварване на + да кажа освен, така и конкатенация с вид принуда, и трябва да се избягва склонен към грешки, с декларация. Запазените политиките на думи са твърде строги. Точка и запетая вмъкване беше огромна грешка, като е нотация за буквални регулярни изрази. Тези грешки са довели до програмни грешки, и наричат дизайна на езика като цяло под въпрос. За щастие, много от тези проблеми могат да бъдат смекчени с добра мъх програма.

Дизайнът на езика като цяло е доста звук. Изненадващо, комисията за ECMAScript изглежда не се интересуват от коригиране на тези проблеми. Може би те са по-заинтересовани от вземане на нови.

Реализациите отвратителен 

Някои от по-ранните приложения на JavaScript бяха доста бъгав. Това зле на езика отразено. Усложнява че тези реализации са вградени в ужасно бъгави браузъри.

Лошите книги

Почти всички от книгите за JavaScript са доста ужасно. Те съдържат грешки, лоши примери, както и насърчаване на лоши практики. Важни характеристики на езика често са обяснени слабо или оставени изцяло. Прегледахме десетки книги за JavaScript, и мога да препоръчам само едно: JavaScript: Окончателните Наръчник (5th Edition) от Дейвид Фланаган. (Внимание автори: Ако си написал добра, моля да ми изпратите копие преглед.)

Нередовни Стандартен

Официалната спецификация за езика се издава от ECMA. Спецификацията е на изключително ниско качество. Трудно е да прочетете и много трудно да се разбере. Това е бил сътрудник на Bad проблема на книга, защото авторите са били в състояние да използват стандартния документ, за да се подобри собственото си разбиране на езика. ECMA и Комитета TC39 трябва да е дълбоко смутен.

Аматьори

Повечето от хората, които пишат в JavaScript не са програмисти. Те не разполагат с обучението и дисциплината да пишат добри програми. JavaScript е толкова изразителна сила, че те са в състояние да направят полезни неща в нея, така или иначе. Това е дало JavaScript репутацията на строго за аматьорите, че той не е подходящ за професионално програмиране. Това просто не е така.

Обекта-ориентирано

JavaScript обектно-ориентиран ли е? Той има предмети, които могат да съдържат данни и методи, които действат върху тези данни. Обектите могат да съдържат и други предмети. То не трябва класове, но тя има строители, които правят това, което правят упражнения, включително и в качеството на контейнери за клас променливи и методи. Тя не разполага клас, ориентирани към наследството, но тя има прототип ориентирани наследство.

Двете основни начини за изграждане на обект системи са по наследство (е-а) и чрез обединяване (има-а). JavaScript върши и двете, но динамична своя характер позволява да се отличат най-агрегация.

Някои твърдят, че JavaScript не е истински обектно ориентиран, тъй като не предоставят информация скривалище. Това означава, че обектите не могат да имат частни променливи и частни методи: Всички членове са публични.

Но се оказва, че JavaScript обекти могат да имат частни променливи и частни методи. (Кликнете тук сега, за да разберете как.) Разбира се, малцина разбират това, защото JavaScript е най-неразбрани програмен език в света.

Някои твърдят, че JavaScript не е истински обектно ориентиран, тъй като не предвижда наследство. Но се оказва, че JavaScript подкрепя не само класическата наследство, но други модели код за повторно използване, както добре.

admin

Leave a Reply

Your email address will not be published. Required fields are marked *