Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2013
365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.73 KB | None | 0 0
  1. Это открытое письмо JQuery-сообществу.
  2. Вы можете присоединиться к дискуссии на Hacker News.
  3.  
  4. Эта тирада, возможно, также справедлива для Knockout и ему подобных. Чёрт, да даже для Angular. Я знаю, что Angular впечатляет в теории, но вы сами пытались пройтись по написанному на нём коду? Это мусор, и вам явно не придётся писать такое в ваших обычных каждодневных исходниках.
  5.  
  6. Теперь не поймите меня неправильно, меня полностью устраивает то, что вы потягиваете свой модный JQuery сами. Проблемы начинаются тогда, когда вы брызгаете этим JQuery на всё, чем занимаетесь, или пытаетесь напоить им всех вокруг. Ваш JQuery становится заразной болезнью, и вам нужно остановить её распространение. Такие фреймворки, как JQuery, представляет собой проблему сообщества в целом не потому, что язык плох по своей природе, а потому, что вы считаете, что все остальные понимают эту ахинею.
  7. Что? Это не ахинея, это прекрасно! Это JavaScript.
  8. Специальный выпуск новостей: это не JavaScript, он просто работает на нём. Перестаньте пытаться поработить людей на StackOverflow, отвечая на их JavaScript-вопросы кодом на JQuery. Перестаньте пытаться получить помощь по JavaScript, выкладывая код на JQuery, который мы не понимаем.
  9.  
  10. Проблема не в самом фреймворке. Хоть мне и не нравится фреймворк сам по себе, я поддерживаю разнообразие, как, впрочем, и все остальные. Проблема в таких как вы, те, кто постит что-либо в сеть так, будто все вокруг знают, как работает JQuery. Конечно, он работает на JavaScript. Мы поняли. Но мы не собираемся изучать ваш чудной фреймворк.
  11.  
  12. (прим. пер.) Далее автор цитирует отрывок из фильма «Телесеть» (Network, 1976), перевод отрывка приведён далее под спойлером.
  13. Мне не нужно говорить вам, что всё плохо, все и так знают, что всё плохо. Будто всё на свете сходит с ума, и поэтому мы больше не выходим на улицы. Мы сидим дома, а мир, в котором мы живём, постепенно сжимается, и всё, что мы говорим, это «пожалуйста, оставьте нас в покое хотя бы в наших гостиных».
  14.  
  15. Итак, я хочу, чтобы вы сейчас встали.
  16.  
  17.  
  18. Перевод отрывка
  19. Вы знали, что некоторые компании на самом деле отворачиваются от JQuery просто потому, что люди по сути не знают фреймворка? Проблема, с которой столкнулись Discourse, состояла в том, что они не получали ожидаемой отдачи от разработчиков просто потому, что их JQuery был обфусцирован. Этой причины было достаточно для того, чтобы щёлкнуть выключателем и больше не притрагиваться к JQuery. Проблема ясна: люди, знающие JQuery, должны знать JavaScript, если хотят писать хороший код. В обратную сторону это утверждение уже не так правдиво, у остальной части Вселенной нет причин изучать JQuery, и те из нас, кто не купился на его ощутимые преимущества, остались за бортом.
  20.  
  21. Я даже не вдаюсь в дебаты «кто лучше?». Мне не очень нравится синтаксис, и опять же, мне всё равно, что кому-то он нравится. Более того, кое-кто пишет довольно длинные статьи на эту тему. Кроме того, первым непроцедурным фреймворком, с которым я познакомился, был Visual Basic, у которого был такой же «человекопонятный» синтаксис, который мы видим в JQuery, чьи перлы вроде one isnt two напоминают мне о временах, когда я тоже отказывался от качества кода в пользу того, чтобы слепо передавать компилятору On Error Resume Next, непонятную конструкцию в VB, которая вела себя, как если бы каждая строка была обёрнута в блок try…catch. Ах, эта радость слепой и наивной отладки.
  22.  
  23. Проблема с «детским» синтаксисом состоит в том, что он слишком много скрывает, делая код практически недоступным для понимая таких парней как я, не сидящих на JQuery. Не этого мы хотим. Это проблема всех фреймворков, которые компилируются в «веб-фреймворки» (HTML, JS, CSS).
  24.  
  25. Jade, например, выдаёт чистый HTML, который просто использует CSS-селекторы, с помощью синтаксиса, близкого к тому, что мы знаем как Zen Coding. Сравнивая Jade с чрезвычайно многословной природой HTML (или XML), преимущества становятся видны невооружённым глазом.
  26.  
  27. Вот немного Jade:
  28.  
  29. ul#crocodile-items
  30. li(ng-repeat='foo in bar')
  31. div {{name}}
  32. div.details
  33. div
  34. span Description
  35. span {{desc}}
  36. div
  37. span Price
  38. span {{price}}
  39.  
  40. Набор «руками» такого HTML занял у меня немного больше времени:
  41.  
  42. <ul id="crocodile-items">
  43. <li ng-repeat="foo in bar">
  44. <div>{{name}}</div>
  45. <div class="details">
  46. <div>
  47. <span>Description</span>
  48. <span>{{desc}}</span>
  49. </div>
  50. <div>
  51. <span>Price</span>
  52. <span>{{price}}</span>
  53. </div>
  54. </div>
  55. </li>
  56. </ul>
  57.  
  58. Преимущества использования Jade начинают накапливаться, если принять во внимание такие вещи, как наследование, примеси, JavaScript, ну и тот факт, что вы больше не будете забывать закрывать теги.
  59.  
  60. Тем временем с JQuery всё наоборот. Что за фигня происходит в скомпилированном JavaScript-коде? Я понятия не имею. Для меня это чёрный ящик. Я не люблю чёрные ящики. Они чёрные и в форме куба. И это всё, что я знаю о чёрных ящиках, они ничего не говорят мне о том, что происходит внутри. Написание JavaScript-кода автоматически означает, что у нас есть полный контроль над тем, что мы делаем, и это дорогого стоит. И напоследок ещё кое-что. Как вы собираетесь использовать ES6, когда он выйдет? Насколько я знаю, он сломает JQuery таким, каким мы знаем его сейчас, и это как бы отстой. Это значит, что вы либо застрянете в фреймворке, который не может использовать последние возможности JavaScript, либо вам придётся перелопатить тонны кода и вернуться к тому, с чего начали. Что касается меня, я лучше не буду запирать себя на замок фреймворком, старающимся помочь мне писать хороший код.
  61.  
  62. Моё предложение к вам состоит даже не в том, чтобы перестать использовать JQuery, но быть более внимательными к тем, кто ничего не знает о вашем прелестном фреймворке. Всегда компилируйте свой код в JavaScript перед тем, как задавать вопрос на StackOverflow, или отвечать на пост в блоге. Возможно, вы даже узнаете что-то о самом JavaScript.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement