Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Сторонние библиотеки - быть или не быть? (https://javascript.ru/forum/offtopic/2813-storonnie-biblioteki-byt-ili-ne-byt.html)

x-yuri 27.02.2009 20:17

и javascript был создан тупо из лени и нехватки времени, в лом было сайты на ассемблере писать O_o
p.s. это не допрос ;-) Ты имеешь право хранить молчание *ROFL*

Zeroglif 27.02.2009 20:46

x-yuri,

javascript - язык, данность, фреймворк - API-самопал.

x-yuri 27.02.2009 21:22

Насколько я понял ответ - с Javascript ничего не поделаешь, а фреймворки можно не использовать

Тогда такой вопрос: можно ведь свою ОС написать, или вообще не пользоваться ОС, свой процессор, свою архитектуру. Лень? Нету времени?

Zeroglif 27.02.2009 22:43

x-yuri,

Твои параллели не про js vs. кусок кода на js, натянутая какая-то философия.

x-yuri 27.02.2009 22:52

Zeroglif, да, я преувеличиваю. Потому что здесь 2 крайности: 1) не использовать фреймворки никогда, 2) использовать их всегда. Ни одна из них меня не улыбает

А фреймворки создаются, имхо, чтобы упростить создание последующих проектов. Или ты предпочитаешь все с нуля писать?

Zeroglif 27.02.2009 23:13

Цитата:

Сообщение от x-yuri
А фреймворки создаются, имхо, чтобы упростить создание последующих проектов.

Причины создания нам неизвестны. Допустим, ты собрал в кучу для последующего реюза несколько сотен (тыщ) строк, тебя всё устраивает, проекты работают, так я двумя руками ЗА. Потом зачем-то код пошёл в народ, интерфейс понятный, писать всем легко. И чего? Популярность или простота вхождения в тему некомпетентных товарищей должна помешать мне назвать код некачественным, некроссбраузерным, избыточным, непрофессионально написанным, с ошибками и проч. ака jQuery и ей подобные... Да, писать это (на этом) проще, быстрее, кто ж спорит. Факт.

Цитата:

Сообщение от x-yuri
Или ты предпочитаешь все с нуля писать?

Никто не пишет с нуля, язык такой. Залежи кода в сети. 100% нужных алгоритмов разобрано по полочкам, кроссбраузерность обсосана, есть все условия для решения задач, задачи в большинстве однотипные, у каждого в загашнике проверенные временем модули, ответственность (профессиональная) за каждую строку. По-твоему 3 года назад или 5 лет назад или ещё глубже никто не умел программировать, пока всех ай-ай-яксом не накрыло?

x-yuri 28.02.2009 01:12

Цитата:

Да, писать это (на этом) проще, быстрее, кто ж спорит. Факт
а можешь про недостатки рассказать, помимо того, что видно внутри? Можно взять jQuery, например

Dmitry A. Soshnikov 28.02.2009 01:20

Цитата:

Сообщение от Zeroglif
И чего? Популярность или простота вхождения в тему некомпетентных товарищей должна помешать мне назвать код некачественным, некроссбраузерным, избыточным, непрофессионально написанным, с ошибками и проч. ака jQuery и ей подобные...

Нет, конечно. Наоборот. И при правильном подходе (если создателей той или иной библиотеки интересует, всё-таки, прогресс и объективное желание её улучшить), то они должны быть благодарны за подобную информацию.

Цитата:

Сообщение от Zeroglif
Причины создания нам неизвестны.

Ну, как я уже не раз отмечал, я вижу причины, как - усиление абстракции, которое влечёт за собой "упрощение" языка, приближая его либо к минимуму текста программы, либо к человекообразному синтаксису. В итоге (и в идеале) хочется сделать такой "организм", который можно будет программировать (с которым можно будет общаться) человеческим языком.

Т.е. постоянное улучшение системы, уменьшение расходования человеческой энергии, увеличение производительности в целом (естественно, при этом чем-то жертвуем; как правило - потребляемыми ресурсами).

Цитата:

Сообщение от Zeroglif
javascript - язык, данность, фреймворк - API-самопал.

"данность" - BIN/HEX-коды (как вариант, а на самом деле - можно ещё дальше вниз спускаться), а javascript - супер-мега абстракция, "API-самопал", относительно них. Говорю, это всё очень относительно, здесь ничего точно нельзя сказать. Ну написали же JS на Си. Зачем, спрашивается?

Цитата:

Сообщение от x-yuri
Или ты предпочитаешь все с нуля писать?

Почему с нуля? Речь идёт о сторонних библиотеках. Если использовать свою библиотеку - это получается "не с нуля, да ещё и на "чистом языке".

Цитата:

Сообщение от Zeroglif
Потом зачем-то код пошёл в народ, интерфейс понятный, писать всем легко.

Не знаю. Не вижу ничего плохого. Ну написал Б.Айк "для себя" JS. Потом он пошёл в народ.

В общем, я вижу основную проблему в восприятии:

- люди используют то, что сами не писали (мы можем написать сами);
- эти люди рассуждают о JS, хотя, ввиду идеологий, навязанных фреймворком, уже рассуждают о JS неверно (в том случае, если библиотека неверная);
- если бы мы были авторы этой библиотеки, такого бы восприятия не было (и библиотека была бы "верная"; до тех пор, пока мы не выложили ее в народ и услышали критику: желающие создавать будут вопринимать эту информацию с благодарностью и устранять недочёты, желающие <чего-то другого :)> - будут противиться)

Эта смесь вынуждает думать, что люди - неграмотны, фреймворки - неграмотны. Что здесь неправильного? Всё, вроде бы, правильно. Но - это всё очень относительно (в виду третьего пункта), т.к. сам язык - уже написан и его обсуждали и критиковали так же.

P.S.>: x-yuri, вижу демагогические приёмы (в постановках вопросов) ;) Но суть вопросов логичная.

Zeroglif 28.02.2009 12:15

Цитата:

Сообщение от Dmitry A. Soshnikov
они должны быть благодарны за подобную информацию

И что? Маркетинг опережает всех, это замкнутый круг, тебе говорят - плохо написал, перепиши, а ты уже не можешь, небольшое изменение может повлечь за собой переобучение последователей, полный перетест, переделку сторонних зависимых скриптов и проч. Тем более невозможно отказаться от заложенных ошибочных идей/логики, всё, машина работает, не остановить...

Цитата:

Сообщение от Dmitry A. Soshnikov
"данность" - BIN/HEX-коды

Ну, что же вы меня все приколачиваете этими странными космическими сравнениями не про то. Ты же пишешь на js. Должен понимать, что невообразимое количество изменяемых движков/версий, помноженное на динамику и зыбкость языка, помноженное на широту применения требуют от программиста ТОТАЛЬНОГО и часто ПОСТОЯННОГО контроля за написанным. Ты можешь использовать (переосмыслить) чужой код, проползти по нему, но не можешь слепо привязать чужой js файл по принципу "все-как-бы-пользуются-везде-как-бы-работает-и-у-меня-будет", речь ведь идёт о совершенно обычном избитом программировании в условиях информационного рая.

Dmitry A. Soshnikov 28.02.2009 13:35

Цитата:

Сообщение от Zeroglif
а ты уже не можешь, небольшое изменение может повлечь за собой переобучение последователей, полный перетест, переделку сторонних зависимых скриптов и проч. Тем более невозможно отказаться от заложенных ошибочных идей/логики, всё, машина работает, не остановить...

Ну так я и говорю, смотря на каком уровне "института" идёт выступление: если говорить это "потребителю jQuery, цель которого срубить бабло" - конечно, это мало что поменяет; если же говорить это там, где решаются подобные библиотеки/языки - вполне нормально полное переустройство с последующей несовместимостью с предыдущими версиями. Наступают такие моменты. К примеру, Python 3 уже не совместим с 2.6 (и ниже) - посмотрели, оценили и сделали - и ничего, все, кто писал код и использовал либы под 2.5 - будут переписывать. Так всегда - сначала проблемный код некоторое время находится в зоне "deprecated" (с предупреждением), а потом искореняется.

Цитата:

Сообщение от Zeroglif
Ну, что же вы меня все приколачиваете этими странными космическими сравнениями не про то.

Не, никто ни в коем случае никого не "приколачивает". Просто проводятся параллели. Близкие или нет - тут уже двояко, конечно.

x-yuri 03.03.2009 12:00

Цитата:

И что? Маркетинг опережает всех, это замкнутый круг, тебе говорят - плохо написал, перепиши, а ты уже не можешь, небольшое изменение может повлечь за собой переобучение последователей, полный перетест, переделку сторонних зависимых скриптов и проч. Тем более невозможно отказаться от заложенных ошибочных идей/логики, всё, машина работает, не остановить...
а маркетинг при чем? Это проблемы обеспечения совместимости. Как обеспечение совместимости в любом случае (doom))), так и повсеместное пренебрежение ею (развитие) - тупиковые пути. Т.е. если планируется развитие проекта надо что-то ломать, но не все подряд

твое предложение заключается в том, чтобы минимизировать количество общедоступного ПО? Но это путь к монополии. А считается, что монополия вредна для потребителя. Конкуренция же наоборот

Цитата:

Ну, что же вы меня все приколачиваете этими странными космическими сравнениями не про то. Ты же пишешь на js. Должен понимать, что невообразимое количество изменяемых движков/версий, помноженное на динамику и зыбкость языка, помноженное на широту применения требуют от программиста ТОТАЛЬНОГО и часто ПОСТОЯННОГО контроля за написанным
ну раз для тебя это слишком кардинально давай вспомним, что можно писать Java-апплеты и ActiveX-компоненты, на статических языках, не таких зыбких

Цитата:

Ты можешь использовать (переосмыслить) чужой код, проползти по нему, но не можешь слепо привязать чужой js файл по принципу "все-как-бы-пользуются-везде-как-бы-работает-и-у-меня-будет", речь ведь идёт о совершенно обычном избитом программировании в условиях информационного рая
имхо ты преувеличиваешь. Если ты хочешь решить какую-то стандартную задачу, то у тебя вряд ли появятся проблемы, особенно с популярными фреймворками (до тебя ее решали кучу раз). Проблемы же возникнут при реализации чего-то нестандартного или того что ты не делал (если ты сам пишешь, без фреймворков, ведь ты тоже совершаешь ошибки?)

Kolyaj 03.03.2009 12:13

Цитата:

Сообщение от x-yuri
Проблемы же возникнут при реализации чего-то нестандартного или того что ты не делал

Я каждый день делаю что-то нестандартное или то, что никогда не делал.

Цитата:

Сообщение от x-yuri
если ты сам пишешь, без фреймворков, ведь ты тоже совершаешь ошибки?

Свои ошибки исправить легко, ошибки фреймворка -- трудно.

x-yuri 03.03.2009 12:31

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

Kolyaj 03.03.2009 12:38

Что значит пишешь сам? Для чего вообще фрейворки используются?

Для выборки элементов? При грамотной верстке getElementById и getElementsBy(Tag|Class)Name хватит. А это максимум 10 строчек с различными плюшками.

Для навешивания событий? Это вообще 4 строчки.

Для анимации? При той же грамотной верстке анимация любой сложности не представляет труда при помощи одной вспомогательной функции в 10 строк.

Для XHR? Вся кроссбраузерность, включая утечки памяти в ИЕ, не больше 2-х экранов текста.

Что еще?

Dmitry A. Soshnikov 03.03.2009 12:44

Цитата:

Сообщение от Kolyaj
Для чего вообще фрейворки используются?

Для более абстрактного, упрощённого написания кода, и улучшения code reuse. При этом, понятие фреймворк весьма относительное. И даже может коррелировать с "новым языком" (если очень усилить абстракцию). Всё, что ты описал - это же для тебя не фреймворк, так? А выложи в общее пользование - для них станет фреймворк.

x-yuri 03.03.2009 12:52

думаю, могут быть нюансы с определением ширины или еще каких-нибудь свойств, которые фреймворки могут решать

фреймворки могут делать код более компактным/читабельным

еще можно виджеты писать O_o

в конце концов за тебя это уже написано, остается только пользоваться

Zeroglif 03.03.2009 12:55

Цитата:

Сообщение от x-yuri
если планируется развитие проекта надо что-то ломать, но не все подряд

Считаешь, что сопровождение (книги, доки, обучение, плагины, популярность, вижуалапи и проч. хвосты) вообще не сидят в голове у программиста, который планирует коррекцию, тем более кардинальную? Чем длиннее хвост, тем сложнее, в этом смысле показателен мучительно "быстрый" прогресс у Internet Explorer 6+.
Цитата:

Сообщение от x-yuri
твое предложение заключается в том, чтобы минимизировать количество общедоступного ПО?

Точно! Только пропущено слово "плохого" ПО. Скриптопомойки набиты скриптами (общедоступное ПО... типа), и каждый день на энный форум приходит энный ньюб с аццким скриптом 98-ого года с аццким eval-ом внутри и просит его адаптировать под его нужды. В ответ скрипт моментально хоронят все, кому не лень - eval там не к месту, document.all там не к месту, проверка браузера бешеная и так далее. Отвечают хором и знаешь почему? Потому что потребовались годы пропаганды "здорового кода", горы разъяснений, чтобы возник этот хор. Та же самая история с универсальными либами, никто не может встать поперёк их выхода (увы) и мощной пропаганды, но можно их обсуждать, рекомендовать или не рекомендовать, в этом кстати, их позитивная роль - дискуссионный полигон. Это похоже на местами плохую книгу, которая уже написана, остаётся только писать рецензии, ничего больше, но рецензия не борется с книгами вообще.
Цитата:

Сообщение от x-yuri
Если ты хочешь решить какую-то стандартную задачу, то у тебя вряд ли появятся проблемы, особенно с популярными фреймворками (до тебя ее решали кучу раз)

Это самоуспокаивающая мантра слепых ведомых. Напомню тебе о PGP с открытым кодом, где, как думалось, все тут же найдут ошибку (открыто же), но вышло по-другому (или даже я несколько лет назад за 5 минут нечаянно нашёл баг в TrueCrypt, когда пароль открытым текстом хранился в памяти). Это я к тому, что не надо надеяться на тысячи "умных" последователей, тысячи сайтов и открытость кода. Большинство последователей слабо или вообще не представляют себе, как это работает, большинство сайтоюзверей баги вообще не описывают, будь это хоть гугль, всё держится на dev-ах и fan-ах, которых может быть и 1 штука, и 10 штук и у всех разная подготовка.

x-yuri 03.03.2009 13:07

Цитата:

Считаешь, что сопровождение (книги, доки, обучение, плагины, популярность, вижуалапи и проч. хвосты) вообще не сидят в голове у программиста, который планирует коррекцию, тем более кардинальную? Чем длиннее хвост, тем сложнее, в этом смысле показателен мучительно "быстрый" прогресс у Internet Explorer 6+
т.е. ты категорически против совместимости:
- Граждане Рима, должны ли мы продолжать строить дворцы для себя или построить достойное жилье для бедных?
- (хором) К черту бедных!

Цитата:

Потому что потребовались годы пропаганды "здорового кода", горы разъяснений, чтобы возник этот хор
другими словами, из одной крайности кинулись в другую

Цитата:

Это самоуспокаивающая мантра слепых ведомых.
я не про безопасность говорил. С безопасностью сложнее. О проблемах с ней ты узнаешь, когда ей (а точнее ее отсутствием) воспользовались. При чем неизвестно насколько быстро. Если же речь об доступе к элементу по id, то bugtracker фреймворка завалят, если оно работать не будет

но я не то чтобы проповедую использование фреймворков. Просто не вижу почему это абсолютное зло

Kolyaj 03.03.2009 13:23

Цитата:

Сообщение от Dmitry A. Soshnikov
А выложи в общее пользование - для них станет фреймворк.

Нет смысла выкладывать фреймворк, написанный с допущением, что использующий его знает JavaScript и умеет верстать. В этом и проблема фреймворков -- они вынуждены быть слишком универсальными, а потому громоздкими.

Цитата:

Сообщение от x-yuri
думаю, могут быть нюансы с определением ширины или еще каких-нибудь свойств, которые фреймворки могут решать

Ты для таких задач подключаешь 1000 строк кода, я -- меньше десятка.

Цитата:

Сообщение от x-yuri
фреймворки могут делать код более компактным/читабельным

Чушь. От программиста зависит.

Цитата:

Сообщение от x-yuri
еще можно виджеты писать O_o

А без фреймворка нельзя чтоли?

Цитата:

Сообщение от x-yuri
в конце концов за тебя это уже написано, остается только пользоваться

Так и у меня все написано, я пользуюсь. Только я знаю что использую, а ты нет.


Впрочем ухожу из темы, бессмысленна она :)

Zeroglif 03.03.2009 13:29

Цитата:

Сообщение от x-yuri
другими словами, из одной крайности кинулись в другую

Ага, метко сказал. Только бороться с нынешней крайностью тяжелее.
Цитата:

Сообщение от x-yuri
т.е. ты категорически против совместимости

Совместимость с изданной книжкой, с плагинами? Это ж скрипт. Никто не заставлял обзывать плагинами скрипты для скрипта.
Цитата:

Сообщение от x-yuri
Просто не вижу почему это абсолютное зло

Я тоже. Оно относительное.

Dmitry A. Soshnikov 03.03.2009 13:52

Цитата:

Сообщение от Kolyaj
Чушь. От программиста зависит.

Равно как и это:
Цитата:

Сообщение от Kolyaj
Свои ошибки исправить легко, ошибки фреймворка -- трудно.

Цитата:

Сообщение от Kolyaj
Нет смысла выкладывать фреймворк, написанный с допущением, что использующий его знает JavaScript и умеет верстать

Ага, то-то выложены дочерта фреймворков без задних мыслей о том, знают ли юзеры этих фреймворков JS и вёрстку. И ничего - благодаря правильной подаче, PR и прочему - там явный смысл присутствует. Правда, он относительный. Я лишь ответил на вопрос, зачем пишут фреймворки, и что такое "фреймворк" (в моем понимании).

Zeroglif 06.03.2009 10:57

Cегодня случайно наткнулся на http://shmigory.habrahabr.ru/blog/53681/. Вроде мелочь, но тут вам и суръёзный мейджор (yandex), тут вам и сторонняя либа (jQuery). На базе так называемого "определения" браузера яндекс не к месту выводит инструкцию с картинками. Микроскопическую скриптовую задачу решают с привлечением большого скрипта, проверка UA-строк при определённых условиях не даёт ожидаемого результата и вводит в заблуждение пользователя. Это к вопросу о том, что большие и толстые дяди (яндекс, гугль, мугль...) используют библиотеки, они не могут ошибаться, у них огромный фидбэк и проч., и проч. Всё зависит от людей.

Kolyaj 06.03.2009 12:04

У яндекса свой фреймворк, но он еще не на всех проектах.

korzhik 06.03.2009 16:06

Цитата:

Сообщение от Zeroglif (Сообщение 13332)
x-yuri,

javascript - язык, данность, фреймворк - API-самопал.

С учетом различных реализаций языка в разных браузерах, javascript - тоже самопал:))

IOpeH 21.03.2009 19:39

я вот например использую jQuery и просто счастлив :p
когда только пробовал jQuery, я был в шоке, на сколько все грамотно реализовано, многое даже на угад делал (не заглядывая в документацию) и попадал в яблочко !


Часовой пояс GMT +3, время: 19:06.