- Динамические языки
-
Други,
может небольшой оффтоп, но вы уж меня простите :)
Пытаюсь понять феномен всплеска интереса к динамическим языкам - руби, питоны, даже такие мутанты как groovy появились. Sun, Google и Microsoft также пытаюстся приложить руку, не говоря о куче мелких контор. Фреймворки для динамики тоже плодятся как грибы - rails, django итд. Хотя те же рельсы - это функционал, понадерганный из hibernate, ant, struts и других java-фреймворков. Кроме того - стабильность и производительность java-приложений на порядок выше.
"Ну непонятно же ...." (с) Так в чем же дело? Может у вас есть какие соображения на эту тему?
(комментировать)


(комментировать)
Ментальность. Джава требует определенной дисциплины и фундаментальных знаний. Руби и питоны ориентированы на продвинутого веб-девелопера - т.е. при определенном старании на нем легко начнет писать любой дебил. Очень надеюсь, что в битве мутантов "ПХП vs РУБИ" сдохнут оба.
Не отрицаю, что можно круто и красиво писать на чем угодно, хоть на вижуал фокс про, однако "факт(ы) - самая упрямая в мире вещь".
Не отрицаю, что можно круто и красиво писать на чем угодно, хоть на вижуал фокс про, однако "факт(ы) - самая упрямая в мире вещь".
Какие такие фундаментальные знания нужны для джавы? С чего вдруг питон ориентирован на веб-девелопера? Вы много написали на питоне? На руби?
на Джаве точно также может писать любой дебил... и вообще любой дебил может писать практически на любом языке программирования, исключение, наверное, составляют только совсем уж низкоуровневые типа асма и совсем уж высокоуровневые типа Haskell
Вот уже и уровень Java считается продвинутым... Куда катится мир :)
Можно найти многочисленные истории о создании Java - этот язык был специально расчитан на _среднего_ разработчика, кроме того спецификация писалась в спешке так что более продвинутые возможности языка (шаблонные типы, замыкания и прочаи), которые задумывались изначально были отброшены. И при определённом старании на Java начали писать миллионы дебилов (надеюсь thedailywtf.com все читают).
Моя зарплата с годами растёт а железо с которым я работаю дешевеет - так что производиельность кода имеет второстепенное значение. twitter обслуживается 250 процессами RoR - что даже меня напрягло - но cайт работает и его пользователям всё равно что там внутри.
Динамические языки позволяют быстро получить результат и предельно облегчают рефакторинг. Например я обнаружил что Jython крайне полезен даже в проектах на Java - по крайней мере в качестве инструмента для уточнения дизайна программы - именно из-за того что рефакторинг очень прост.
PS По теме http://www.joelonsoftware.com/artic les/ThePerilsofJavaSchools.html
Можно найти многочисленные истории о создании Java - этот язык был специально расчитан на _среднего_ разработчика, кроме того спецификация писалась в спешке так что более продвинутые возможности языка (шаблонные типы, замыкания и прочаи), которые задумывались изначально были отброшены. И при определённом старании на Java начали писать миллионы дебилов (надеюсь thedailywtf.com все читают).
Моя зарплата с годами растёт а железо с которым я работаю дешевеет - так что производиельность кода имеет второстепенное значение. twitter обслуживается 250 процессами RoR - что даже меня напрягло - но cайт работает и его пользователям всё равно что там внутри.
Динамические языки позволяют быстро получить результат и предельно облегчают рефакторинг. Например я обнаружил что Jython крайне полезен даже в проектах на Java - по крайней мере в качестве инструмента для уточнения дизайна программы - именно из-за того что рефакторинг очень прост.
PS По теме http://www.joelonsoftware.com/artic
Для объективности предлагаю задать этот же вопрос в ru_python и послушать мнения вроде джава гадость, для тупых - а пайтон круто, для умных!
(боже, как я устал от глупых холиваров!)
Моя гипотеза - опять таки скорость разработки.
(боже, как я устал от глупых холиваров!)
Моя гипотеза - опять таки скорость разработки.
как написано в предисловии Groovy in action - сегодня язык программирования это средство общения как с машиной так и между людьми. вот и пытаются делать языки более человекопонятные. и впринципе тот же Groovy в этом отношении довольно неплох напр. - a.times { println "HELLO" } читается более "по человечески" чем for (int i=0;i<a;i++) а если что позволяет написать пару строк на "pure java"
как говорится, любой язык хороший, если на выходе получается стандартный class :)
>любой язык хороший, если на выходе получается стандартный class :)
5+
все что не генерирует M$ IL наш друг ;-)
5+
все что не генерирует M$ IL наш друг ;-)
Современный скриптовый язык, как правило, более лаконичен и выразителен. При этом стабильность и производительность не являются критичными, поскольку речь идет о приложениях с аудиторией малого и среднего размера, зато важна скорость разработки. Тот же руби хорош, в первую очередь, для прототипирования. Ну, и на самом деле, для метапрограммирования, но это уже совсем отдельная задача, в которой java с ним не конкурирует. Сравнивать рельсовые ActiveObjects с хибернейтом не совсем уместо - хибернейт далеко не единственны
...й ORM-фреймворк на рынке. И опять же, сравните одну декларацию entity в хибернейте и в рубях - становится понятно, что ребята максимально используют динамические свойства языка, чтобы избавить программиста от лишних телодвижений и/или кодогенерации.
посмотрите на всякие разные DSL в Grails, которые возможны именно из-за динамического характера Groovy.
А вот про производительность в сравнении с j2ee можно поподробнее? Ссылки какие-нибудь.
первая ссылка при поиске в гугле - http://artamonov.ru/2007/02/13/ruby-per fomance/
ага а теперь подумаем, какого рода приложения можно написать на этих "динамических" языках ;). без использования совместно с джавой удел этого всего убогого гавна - лабать вебсайты. для джавы это всего лишь одна из областей применения, не самая большая кстати ;)
По-вашему, все динамические языки - убогое говно? Почему?
>>>Кроме того - стабильность и производительность java-приложений на порядок выше.
Если кому-то нужна производительность--VM любого сорта идёт лесом.
Если производительность некритична, то пишется на том, на чём писать быстрее.
Если на динамическом языке код пишется быстрее, то почему бы и не?
Если кому-то нужна производительность--VM любого сорта идёт лесом.
Если производительность некритична, то пишется на том, на чём писать быстрее.
Если на динамическом языке код пишется быстрее, то почему бы и не?
не скажите, тормоза они в большинстве случаев не в VM, а в алгоритмах.
"Хотя те же рельсы - это функционал, понадерганный из hibernate, ant, struts и других java-фреймворков."
Ага, и все их стандартные библиотеки - это функкционал, понадерганный из java.util. Нормально.
Ага, и все их стандартные библиотеки - это функкционал, понадерганный из java.util. Нормально.
Абсолютно уверенными в будущем чувствуют себя только разработчики и компании использующие ПО Microsoft!
Остальным приходится мотивировать веру (спорными) инструментами вроде этого:
http://www.tiobe.com/index.php/cont ent/paperinfo/tpci/index.html
По моему опыту изучить другой современный алгоритмический ООП язык не сложно.
Привязывают к себе используемые библиотеки и база исходного кода.
У меня есть знакомая контора, в которой до сих пор используют BDE (Borland Database Engine) при работе из Delphi с MSSQL.
К сожалению, для большинства разработчиков на Delphi платформа для дальнейшей миграции очевидна: Microsoft.NET
M$ проводит агрессивную политику и вкладывает огромные средства в продвижение всей линейки своих продуктов, в т.ч. .NET, MSSQL, MS Visual Studio.
Один язык. Один сервер БД. Один сервер WEB. Все предрешено.
А вас, фанаты ruby, питон и etc просто не существует.
Остальным приходится мотивировать веру (спорными) инструментами вроде этого:
http://www.tiobe.com/index.php/cont
По моему опыту изучить другой современный алгоритмический ООП язык не сложно.
Привязывают к себе используемые библиотеки и база исходного кода.
У меня есть знакомая контора, в которой до сих пор используют BDE (Borland Database Engine) при работе из Delphi с MSSQL.
К сожалению, для большинства разработчиков на Delphi платформа для дальнейшей миграции очевидна: Microsoft.NET
M$ проводит агрессивную политику и вкладывает огромные средства в продвижение всей линейки своих продуктов, в т.ч. .NET, MSSQL, MS Visual Studio.
Один язык. Один сервер БД. Один сервер WEB. Все предрешено.
А вас, фанаты ruby, питон и etc просто не существует.
Сам я нашел в себе силы перейти с Delphi на Java.
Язык хороший (есть конечно поле для мелких улучшений ;-)
Объем уже написанного умного людьми впечатляет, даже пугает.
Возможность разработки для web, мобил, desktop под любой ос внушает оптимизм.
Коммерческого качества 'не WEB` инструментария кроме как:
M$.NET, Java, M$ vc++, Delphi
на текущий момент я не вижу.
Язык хороший (есть конечно поле для мелких улучшений ;-)
Объем уже написанного умного людьми впечатляет, даже пугает.
Возможность разработки для web, мобил, desktop под любой ос внушает оптимизм.
Коммерческого качества 'не WEB` инструментария кроме как:
M$.NET, Java, M$ vc++, Delphi
на текущий момент я не вижу.
Добавлю и я свои 5 копеек :-)
На мой взгляд, причина феномена проста - удобство :-)
Но это понятие субъективное, поэтому и динамических языков так много - чтобы все были довольны и могли похоливарить для скрашивания тяжёлых трудовых будней :-)
На мой взгляд, причина феномена проста - удобство :-)
Но это понятие субъективное, поэтому и динамических языков так много - чтобы все были довольны и могли похоливарить для скрашивания тяжёлых трудовых будней :-)
GRails - это вообще собраные вместе hibernate, spring, etc...
на том же groovy можно банально короче и проще код писать, иногда даже в разы короче. Да, скорость работы у groovy меньше, но ребята работают над этим, и, я надеюсь, в 1.6 это(ускорение) уже будет заметно.
на том же groovy можно банально короче и проще код писать, иногда даже в разы короче. Да, скорость работы у groovy меньше, но ребята работают над этим, и, я надеюсь, в 1.6 это(ускорение) уже будет заметно.
lol, вы хотите сказать что java - не динамический язык? hibernate уже научился генерикам или всё так же всё надо кастовать из Object?
гениальный каммент, о гуру !! возьми меня в ученики ! твоя глубина мышления поражает, всего в двух словах ты раскрыл всем не просто ответ на вопрос но и глубинные тайны бытия !!!
Шикарная презентация от автора Spring
http://blog.springsource.com/main/wp-co ntent/uploads/2008/04/JAX%20Keynote%20-%2 0Future%20of%20enterprise%20Java.pdf
http://blog.springsource.com/main/wp-co
>>Кроме того - стабильность и производительность java-приложений на порядок выше.
Вы что, издеваетесь? Ява никогда не работает, откуда там стабильность?
Вы что, издеваетесь? Ява никогда не работает, откуда там стабильность?
2008-04-22 22:48 (UTC)