Я хочу начать с того, что пишу не для того, чтобы жаловаться на то, насколько сложен Javascript, или для того, чтобы делать снимки и продвигать свой любимый язык программирования. Я просто хочу указать на некоторые причуды Javascript и некоторые причины, по которым изучение его может быть таким сложным для начинающих.

Javascript может показаться непреодолимой горой, преграждающей путь, особенно тем, кто начинает свой путь программирования с HTML и CSS. По правде говоря, изучение любого программирования - нелегкий подвиг, и многие люди сдаются на подъеме.

Я надеюсь, что предоставление некоторого представления о том, почему Javascript часто бывает сложным, может помочь читателям немного расслабиться и не чувствовать себя неудачниками, когда они на чем-то застревают.

1) Javascript никогда не предназначался для того, чтобы делать все то, что он делает сейчас

Я имею в виду, что JS начинался как простой маленький язык сценариев для добавления некоторой интерактивности веб-сайтам. С ним нельзя было много сделать, и часто было трудно сделать те немногие вещи, которые он мог. Как и программисты, они решили исправить некоторые проблемы, присущие JS.

Но вот в чем дело: если вы придумаете новый способ сделать что-то, что в 10 раз проще, чем предыдущий, вы не сможете просто заменить старый способ делать что-то. Тогда все, что использует старый способ, будет сломано. Людям не нравится, когда их веб-сайты внезапно перестают работать. Поэтому мы должны добавить новый способ, сохранив старый.

Теперь у нас есть трудный и простой способ сделать то же самое. Для того, кто уже был JS-разработчиком, это отличная новость, потому что она облегчает вам жизнь. Но для начинающего студента теперь есть 2 способа сделать то же самое. Два года спустя появился третий путь. Затем 4-й. И так далее. Жизнь опытного JS-разработчика становится все проще, а для новичка становится все сложнее.

2) Современные программы JS используют несколько парадигм программирования

Javascript - странный язык. Это язык, основанный на прототипах, с добавленными в него объектно-ориентированными возможностями. Затем к нему добавилась поддержка функционального программирования. Даже если вы еще не понимаете, что означают эти термины, вы все равно можете почувствовать, что многое происходит одновременно.

Есть много разных способов использования JS, и они могут быть ошеломляющими для новичка. Вы не боретесь с JS как таковым. Вы впервые боретесь с изучением концепций и парадигм кодирования, пока вы также изучаете JS.

3) JS слишком прощает ошибки

Это может показаться странным. Разве не прощать ошибки - это хорошо? Разве не было бы замечательно, если бы язык программирования не ожидал, что мы будем совершенны, и все равно запускал бы наш код, с бородавками и всем остальным?

В каком-то смысле да. JS будет запускать практически все, потому что в противном случае многие плохо написанные веб-сайты вылетели бы из строя.

JS был разработан, чтобы продолжать работать любой ценой, независимо от того, кто на этом пути упадет. Веб-сайт будет работать, и если его часть не работает, ну что ж, пусть будет так. Лучше, чтобы большая часть этого работала с парой икоты по пути, чем все это рушится, как карточный домик.

Звучит здорово, правда?

Ну не совсем. С точки зрения разработчика, чрезмерная вседозволенность JS означает, что он часто не злится и не выдает сообщение об ошибке, когда вы делаете ошибку. Это сильно усложняет процесс отладки.

Предположим, вы забыли точку с запятой в других языках программирования. В этом случае код не будет запущен, и появится сообщение об ошибке, в котором будет указано, в какой строке вы его забыли. Поэтому вы просто прокручиваете до этой строки, исправляете ее и пытаетесь запустить ее повторно. JS часто не сообщает вам, что вы допустили ошибку, где она находится или что это за ошибка. Вы предоставлены вашим собственным устройствам, чтобы искать и уничтожать ошибки вашей программы.

Можно определенно больше сказать о том, почему JS иногда бывает особенно сложным для новичков, но на ум приходят три главных. В следующий раз мы рассмотрим несколько примеров кода, иллюстрирующих вышеуказанные моменты.

Повесить там. Вы в хорошей компании. Просто делайте это шаг за шагом.