Я хочу начать с того, что пишу не для того, чтобы жаловаться на то, насколько сложен 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 иногда бывает особенно сложным для новичков, но на ум приходят три главных. В следующий раз мы рассмотрим несколько примеров кода, иллюстрирующих вышеуказанные моменты.
Повесить там. Вы в хорошей компании. Просто делайте это шаг за шагом.