Чувствуете себя крутым, наверное, высокомерно называя лучших JavaScript-программистов мира неумелыми невеждами? Если вы настолько лучше их, может, продемонстрируете какой-нибудь значимый результат вашей работы с JavaScript?
"Народные массы" требуют классическую модель ООП не потому, что больше ничего не хотят знать, а всего навсего потому, что им так удобнее. В том числе и мне.
>потому что не для того этот язык создавался. JS — это Лисп в синтаксисе Си
Ну это крайне однобокий подход. JS - это язык, достаточно гибкий для того, чтобы в нём использовать в зависимости от задач и вкусов разные парадигмы. Пускай лисперы пишут на нём в стиле лиспа, поклонники классического ООП - соответственно, и т.д.
И не стоит тут раскидывать понты только потому, что вы прочитали пару статей Крокфорда или что-то в этом роде - мыслите шире. При всём уважении - терпеть не могу подобного.
Не торопитесь с категоричными выводами.
Какую модель наследования использовать, решает каждый сам для себя (или команды) - это дело вкуса, того, кому что ближе, а не умения.
Интересно, по вашему, авторы большинства JS-фреймворков (а именно Mootools, Prototype, YUI, Dojo) тоже не знают язык и не умеют им пользоваться?
Не освобождает. Детали по крупицам формируют общий опыт, в то время как принципы направляют в сторону конкретных деталей для изучения. С одними принципами - без знания - человек не сможет написать ничего сложного.
>Учить имеет смысл только то, что продержится хотя бы 5 лет, а лучше 10. CSS-хаки к таким вещам не относятся.
У вас вызывает сложность вычисление значения "2008 - 2001 + 2"?
Нет, вы всё перекручиваете на свой лад, не стараясь понять. :)
Меня не интересуют технологии Microsoft не по религиозным причинам - просто потому, что у меня другой ряд интересов, которые с ними не пересекаются. А это уже дело вкуса, а не идеи.
При этом, что очевидно вытекает из 5-го совета, я занимаюсь тем, что мне интересно, а не всем подряд. Могу изучить любой язык или технологию при желании, но в случае, скажем, C# и .NET, у меня не возникало пока что ни желания, ни необходимости (хотя я не исключаю такую возможность в будущем), и есть множество вещей, на которых мне вместо этого лучше сконцентрировать своё внимание.
Незачем, конечно, если проекты у вас мелкие и делаете вы их абы как - тяп-ляп и пошёл дальше. А что вы скажете про передовые веб-приложения (например, того же Гугла - Google Maps, GMail, Google Calendar, Google Reader), или фреймворки? Их тоже создавали, ни в чём не разбираясь, кусочек за кусочком копипастом после поиска в Гугле?
Я участвовал в разработке очень сложных и интересных проектов, и прекрасно знаю, что некоторые важные их части вообще невозможно написать без громадного опыта и умений в определённых технологиях за плечами.
Возможно, у вас опыт попроще и вы никогда не стремились к чему-то большему - тогда действительно мои советы не подойдут.
Какая-то странная у вас логика. Разве из-за того, что технологии очень быстро развиваются, не имеет смысла становиться в них профессионалом и оставаться вечным аматором?
>гораздо более важная вещь, чем некое абстрактное "понимание", которое даст эффективность в каком-то будущем.
Не "абстрактное" и "какое-то", а конкретное понимание и конкретные результаты. Как краткосрочные, так и долгосрочные. И очень жаль, что вы этого не понимаете.
Технологии не сменяют друг друга от сразу, бессвязно. Они очень тесно взаимосвязаны и развиваются эволюционным путём. И знания, которые ты получаешь на одном этапе развития, дают хорошую основу для другого. Скажем, человек сразу бегать не умеет - ему для этого сначала нужно научиться сидеть, переворачиваться, потом ползать, потом стоять, потом ходить и только после этого бегать, даже если при этом умение ползать в конечном счёте утратит свою актуальность.
В Opera/Firefox/Safari я слишком редко сталкиваюсь с проблемами - они отлично поддерживают стандарты и спецификации и оперативно фиксят баги, так что пример неудачный. Возьмём другой - Internet Explorer 6, из-за которого происходит 95% проблем с вёрсткой и JavaScript, вышел в 2001, актуален по сей день (7 лет) и будет актуален еще минимум 2 года.
Я говорил про ближайший результат. Он откладывается для того, чтобы приблизить все последующие.
Опять же, еще раз повторяю - в конечном итоге от изучения проблем и разных решений я выигрваю гораздо больше времени, чем теряю, так что комментарии про бесконечную жизнь и прочее тут совершенно неуместны.
Я думаю, что если у человека нет мышления программиста, он не может быть хорошим верстальщиков и ему вообще не стоит этим заниматься.
А если есть, программистом широкого профиля он захочет быть далеко не обязательно. Можно интересоваться уймой языков и технологий, но быть настоящим профи в одном. Скажем, лично я профессионально занимаюсь именно front-end-технологиями (давно и очень серьёзно при чём), а всё остальное (в частности Ruby/Merb/Rails, Python/Django etc.) - просто интересное хобби.
Освоение JavaScript и всего с ним связанно является естественной ступенью развития HTML-верстальщика. Вместе первое и второе называется front-end developer и тоже является узкой специальностью по сравнению с "web-разработкой в целом".
Не помните, потому что раньше этого не было - вы, видимо, слишком давно этим занимались, - технологии развиваются слишком стремительно. Теперь это отдельная дисциплина. Дизайнеры рисуют, верстальщики верстают, серверсайд-девелоперы используют результат - вполне логичная схема.
По-моему вы уходите в крайности. :) Если только учиться и ничего не делать - да, ничего не достигнешь, но если вообще не учиться - не будешь обладать знаниями, с помощью которых можно что-либо значимое сделать.
Я нигде не говорил, что нужно заниматься самообучением вместо работы. Понятно, что нужно соблюдать баланс между одним и другим. Но при этом считаю, что выявление причины проблемы для ее правильного решения и предотвращения в том же и последующих проектах является частью работы - это делается ради результата в текущем проекте в той же мере, что и знаний.
Решения, про которые я говорил, относятся к одной узкой специализации - HTML-вёрстке. :)
Вы не правильно поняли мою мысль в первом совете. Я утверждаю, что с помощью более глубокого понимания возникающих проблем можно сэкономить в десятки раз больше времени, чем вы потратите на их изучение. Делается это не для того, чтобы просто знать всё подряд, а для того, чтобы делать свою работу эффективнее.
"Народные массы" требуют классическую модель ООП не потому, что больше ничего не хотят знать, а всего навсего потому, что им так удобнее. В том числе и мне.
>потому что не для того этот язык создавался. JS — это Лисп в синтаксисе Си
Ну это крайне однобокий подход. JS - это язык, достаточно гибкий для того, чтобы в нём использовать в зависимости от задач и вкусов разные парадигмы. Пускай лисперы пишут на нём в стиле лиспа, поклонники классического ООП - соответственно, и т.д.
И не стоит тут раскидывать понты только потому, что вы прочитали пару статей Крокфорда или что-то в этом роде - мыслите шире. При всём уважении - терпеть не могу подобного.
Какую модель наследования использовать, решает каждый сам для себя (или команды) - это дело вкуса, того, кому что ближе, а не умения.
Интересно, по вашему, авторы большинства JS-фреймворков (а именно Mootools, Prototype, YUI, Dojo) тоже не знают язык и не умеют им пользоваться?
Вывод: всегда верстайте проекты в нормальном доктайпе.
>Учить имеет смысл только то, что продержится хотя бы 5 лет, а лучше 10. CSS-хаки к таким вещам не относятся.
У вас вызывает сложность вычисление значения "2008 - 2001 + 2"?
Меня не интересуют технологии Microsoft не по религиозным причинам - просто потому, что у меня другой ряд интересов, которые с ними не пересекаются. А это уже дело вкуса, а не идеи.
При этом, что очевидно вытекает из 5-го совета, я занимаюсь тем, что мне интересно, а не всем подряд. Могу изучить любой язык или технологию при желании, но в случае, скажем, C# и .NET, у меня не возникало пока что ни желания, ни необходимости (хотя я не исключаю такую возможность в будущем), и есть множество вещей, на которых мне вместо этого лучше сконцентрировать своё внимание.
Так что забирайте свои слова назад.
Сейчас пишу нечто сродни Google Maps API на JavaScript. Пока что не было публичного релиза, но скоро будет.
Я участвовал в разработке очень сложных и интересных проектов, и прекрасно знаю, что некоторые важные их части вообще невозможно написать без громадного опыта и умений в определённых технологиях за плечами.
Возможно, у вас опыт попроще и вы никогда не стремились к чему-то большему - тогда действительно мои советы не подойдут.
>гораздо более важная вещь, чем некое абстрактное "понимание", которое даст эффективность в каком-то будущем.
Не "абстрактное" и "какое-то", а конкретное понимание и конкретные результаты. Как краткосрочные, так и долгосрочные. И очень жаль, что вы этого не понимаете.
Технологии не сменяют друг друга от сразу, бессвязно. Они очень тесно взаимосвязаны и развиваются эволюционным путём. И знания, которые ты получаешь на одном этапе развития, дают хорошую основу для другого. Скажем, человек сразу бегать не умеет - ему для этого сначала нужно научиться сидеть, переворачиваться, потом ползать, потом стоять, потом ходить и только после этого бегать, даже если при этом умение ползать в конечном счёте утратит свою актуальность.
И еще - у jQuery вообще-то нет особых тонкостей.
В Opera/Firefox/Safari я слишком редко сталкиваюсь с проблемами - они отлично поддерживают стандарты и спецификации и оперативно фиксят баги, так что пример неудачный. Возьмём другой - Internet Explorer 6, из-за которого происходит 95% проблем с вёрсткой и JavaScript, вышел в 2001, актуален по сей день (7 лет) и будет актуален еще минимум 2 года.
Опять же, еще раз повторяю - в конечном итоге от изучения проблем и разных решений я выигрваю гораздо больше времени, чем теряю, так что комментарии про бесконечную жизнь и прочее тут совершенно неуместны.
А если есть, программистом широкого профиля он захочет быть далеко не обязательно. Можно интересоваться уймой языков и технологий, но быть настоящим профи в одном. Скажем, лично я профессионально занимаюсь именно front-end-технологиями (давно и очень серьёзно при чём), а всё остальное (в частности Ruby/Merb/Rails, Python/Django etc.) - просто интересное хобби.
Не помните, потому что раньше этого не было - вы, видимо, слишком давно этим занимались, - технологии развиваются слишком стремительно. Теперь это отдельная дисциплина. Дизайнеры рисуют, верстальщики верстают, серверсайд-девелоперы используют результат - вполне логичная схема.
Я нигде не говорил, что нужно заниматься самообучением вместо работы. Понятно, что нужно соблюдать баланс между одним и другим. Но при этом считаю, что выявление причины проблемы для ее правильного решения и предотвращения в том же и последующих проектах является частью работы - это делается ради результата в текущем проекте в той же мере, что и знаний.
Вы не правильно поняли мою мысль в первом совете. Я утверждаю, что с помощью более глубокого понимания возникающих проблем можно сэкономить в десятки раз больше времени, чем вы потратите на их изучение. Делается это не для того, чтобы просто знать всё подряд, а для того, чтобы делать свою работу эффективнее.