Как стать автором
Обновить

Комментарии 45

Интересный подход, но, будет-ли он востребован, учитывая количество существующих серверных языков программирования?
В Google пишут серверные приложения на JS, а спека ES4 ооочень крутая и делает его привлекательнее многих других "серверных языков программирования".
>В Google пишут серверные приложения на JS
откуда инфа?
Совершенно верно замечено! Существуют столько серверных языков и очень неплохих... чем этот отличается? короче баян языков...
вас послушать, то должен быть только ОДИН серверный язык, да?
Меня послушать... какое отличие? в чем революция? мне например вообще плевать на каком языке писать, я уже на стольких писал, что сбился со счета сколько я из знаю :). Я считаю вначале архитектура потом язык.
"мне например плевать, на какой машине ездить, я уже на стольких ездил, что со счёта сбился. главное не машина, а уровень вождения"

когда речь идёт не о стоянии в пробке, а о формуле-1, то машина играет не менее ключевую роль, чем умение водить. для тех, кто каждый день клепает корпоративные сайтики-порталы разницы действительно нет.
Ооо, класс, про формулу-1 мне понравилось... только вот заметь КЛАССНЫЙ гонщик выбирает всегда классную машину...
Потому что г..о извинте его не устроит, хотя неплохой результат он покажет и на тазике.
Я кстати выбираю тот язык, который больше подходит под разработанную архитектуру проекта. т е хорошая машина в ф-1, для хорошего пилота + та что подходит под стиль вождения.
В свою очередь, на загруженном бездорожье F-1 заедет не далее ближайшей кочки.
Всему своё место.
А нехрен на формуле по народ.ру и шаред-хостингам бегать) Не можешь построить трассу - не пользуй форумулу.
Вы это к чему сказали?
Вообще-то я веду к тому, что использовать Java для одностраничного сайта-визитки — глупо. Равно как и использовать Helma для построения высоко нагруженных сервисов вроде Google или Yahoo.
Кроме того, в последнее время инструмент выбирают не только учитывая скорость его работы, но и учитывая скорость (удобство) разработки (как пример - RoR).

И, да, автомобили выбирают для задач, как и инструмент. Но не задачу для инструмента.
Никто в здравом уме не будет использовать болиды формулы-1 для перевозов огромного количества груза. И руководству глубоко плевать на то, насколько крут этот болид, и насколько опытен пилот — он загнется под первым же контейнером хабраэффекта. Такие машины — нужны единицам.
Теперь понятнее, что я пытаюсь донести?
НЛО прилетело и опубликовало эту надпись здесь
Вот интересно, у нас в России используется Java как серверный язык вэб приложений или ничтожно редко???
Использовать серверный JS так же круто, как брится топором. Вот только бессмысленно.
нее, я про java2se...
Ах, тогда извините :) В контексте данного топика вполне логично решил, что вы всё таки о JS :)
Для веб приложений используется всё же JEE, а не Java SE. Dice.com по запросу Java выдаёт наибольшее количество вакансий(на порядок больше Ruby/Python/PHP) - это рынок US. Так что если идти в аутсорсинговую контору, то там от Вас в девяти случаях из десяти будут требовать Java или .NET.

Наш IT-рынок труда пока только формируется. Хороших специалистов нехватает везде, буть то 1C, Bitrix или JEE.
Разве JEE? Не знал, мне казалось JEE для оч глобальных проектов, и всяко не в вэбе...
JEE содержит множество API для самых разных целей. Один из них(javax.servlet) как раз служит для создания Web-приложений.
Java это один из самых популярный языков, если не самый популярный в мире:

http://www.langpop.com/
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
http://www.ohloh.net/languages/compare

используется ли он в Россиии (СНГ)? трудно оценить, но у россиян свой менталитет. в России, например, популярен браузер Опера... но у аутсорсных компаний подавляющее кол-во проектов на Java
Самый популярный, вы удивитесь, это как раз JavaScript.
Вполне возможно, не буду спорить
если брать не аутсорс для буржуев, а внутренние проекты, то почти все биллинговые системы пишутся на яве, софт для сотовых операторов, банковский софт и т.д.
давно была идея сделать что-нить серверное на spidermonkey как cgi. с удовольствием посмотрю на данные проекты, спасибо.
JavaScript - отличнейший язык! Я сам поклонник Ruby, однако видел в том же prototype, что с помощью нехитрых вещей можно реализовать те же map, each etc для массивов. Система метапрограммирования позволяет слепить все что нужно
JavaScript - один из самых уродливых и отвратных языков. Использовать его для серверной части просто абсурдно.
Предложите лучше:) Прелесть его в том что, если что-то не нравиться, то можно поправить, а вот всякие Java/PHP как были "глобальными и надежными" так ими и остануться.
О критике JavaScript писалось очень много. Просто историчеки так сложилось, что он стал единственным языком для управления объектами в браузере. Для серверной части, где ограничения на язык не существует, выбор JS более чем неадекватен.
О недостатках JavaScript не видел статей уже последние несколько лет. Единственный весомый недостаток - различная (причем кривая) реализация в разных браузерах, что для серверных решений не имеет значения. Ограничение на язык серверной части есть - это предоставление хостинга и распространённость языка, второй критерий это как раз лакомый кусочек.
Чем же он так плох?
Вы или аргументируйте или идите на... почитайте спецификацию ES4.
Аргументы? Пожалуйста!

1. Динамический (скриптовый). Эволюция структурных языков шла в направлении усиления контроля над действиями программиста, тогда как скриптовые языки исходили из соображений удобства программирования. Удобство и правильность не всегда совместимы (взгляните например спецификацию Ада). В результате статистика ошибок в динамическом языке в несколько раз больше.
2. Нестрогий контроль типов. Меньше ошибок удается отследить в момент компиляции (которой судя по всему нет). Кстати, все нововведения ES4 касаются как раз структур данных и контроля типов, но опять же, не строго.
3. Собственно runtime-контроль. Фазы компиляции и предварительной проверки, похоже, нет. Все ошибки - в момент интерпретации.
4. Сложность и избыточность (неминимальность). Отсутствие минимального "ядра" языка. Кстати, на сайте я так и не нашел строгого документа-спецификации языка. Взгляните, например, спецификацию Java.
5. Более чем сомнительное быстродействие имплементаций.
6. Несовместимость с предыдущими версиями языка.
Это уже больше похоже на то, что вы не конкретно JS ругаете, а все скриптовые языки поголовно
В принципе - да. Не долюбливаю я их. Область их применения сильно ограничена. Возможно для рендеринга веб страницы и sql запросов более-менее подходит, но для серьезных проектов - увы. Хотя бы для написания фреймворков и api для тех же языков.
что для вас серьезный проект? LinkedIn, MoйКруг, Википедия, SourceForge, и Yahoo.Answers для вас большие серьезные проекты?
С точки зрения программной имплементации эти проекты не являются сложными. Стандартный набор - фронтенд, база данных, индексатор. Вся сложность этих проектов - в обеспечении горизонтальной масштабируемости.

Сложный проект - это система резервирования авиабилетов Amadeus. Система обслуживания авиалиний. Система транзакций ServiRed (с кучей фронтендов). Софтина любого банка сложнее в сто раз любого из этих проектов. Если говорить о нагрузках, то никакая википедия не сравнится по количеству запросов с биллинговой системой мобильного оператора.
Так что! PHP - это вершина айсберга для клепания дырявых ;) страничек.
если мне не изменяет память, то и питон динамический, и руби, и AS, и даже та самая java так себе, она где-то посередине между чистой динамикой и статикой (теми, кто в машинный код компилируется сразу). Ага, и РНР также динамический.
А еще есть Perl и Groovy. А Вы не задавались вопросом - нафиг столько языков для реализации одной и той же задачи? Это топтание на месте - нет никакой эволюции и радикально нового шага: ассемблер - фортран - алгол - паскаль - си - си++ - java/c# - дальше что? Скриптовое семейтво? Похоже немного на вырождение.

Тот JavaScript, который был изначально встроен в браузер Netscape не имел даже нормальной спецификации. Все последующие развитие языка было связано со стабилизацией синтаксиса при остающейся совместимости с предыдущими версиями. Если бы тот же питон был взят за основу динамических страниц, мы бы избежали сегодня большого числа проблем.
ассемблер - фортран - алгол - паскаль - си - си++ - java/c#

Похоже идет вырождение не языков программирования а подхода вообще. Вы привели отличный пример - появление императивных языков программирования при увеличении числа программистов в мире. Получается что эволюцией языков правит не инженерная мысль, а мысль алчного маркетолога.

Что же дальше? Однозначно языки с динамической типизацией и переход к декларативности (C# 3.0 тому подтверждение, хоть и мейнстрим-язык, но тем не менее...). Все проблемы динамических языков, которые вы привели не столь важны, они легко решаются. Да проблемы есть, но они несколько в другом, они решаются и динамика потихоньку просачиваются в software factory. Скриптовые языки здесь ни причем:)

Насчет JS - да жосткого стандарта ему не помешало бы, но семантически язык очень мощный, потенциально мощнее всей java вместе взятой как минимум. Но только не в том виде, в котором он есть сейчас.
Это понятно, что маркетологи пытаются завлечь программистов, маня удобством и краткостью кода (программисты ленивые и много писАть не любят). C# - яркий тому пример. В отличие от аскетичной и минималистичной Java, C# постоянно модифицируется в сторону угождения программистам и превращается в помойку. И даже не маркетологи определяют дальнейшую эволюцию, а программисты, которые выросли на языках типа JS.

Основной вопрос - на кой черт? Что динамические языки предлагают такого, чего нет в структурных? Никто экономически не доказал выгодность перехода от структурных языков к динамическим. Более того, существуют четкие аргументы против этого, которые не так просто решить, как кажется. В средах J2EE тоже используется декларативность и скриптинг, но в отличие от JS и иже с ними, она базируется на XML, который строго проверяется на валидность.
Да, я вижу вы мыслите очень прагматично, и наверное это во многом правильный подход. C#, да это помойка, но я никак не могу назвать Java "аскетичной и минималистичной". Аскетичные и минималистичные языки в моем представлении - Lisp, Forth. Дизайн Java идеально подходит для студентов, которые получили диплом программиста, но недопоняли C/C++ и их можно быстро переучить до нужной кондиции, не ломая их представления о синтаксисе и подходе вообще. Java завязана на библиотеках, а они отнюдь и не минималистичны и не аскетичны.

Исследователи языков программирования уже не одно десятилетия пророчат лидерство декларативного подхода. Конечно у них есть свои аргументы "за". Ответом вопрос "на какой черт" наверное будет то что будет требоваться меньше строк кода для выражения мыслей. Меньше кода, меньше ошибок и тд... А еще имеет место уменьшение количества сущностей, что так же способствует пониманию. Хочу еще уточнить, что структурный подход это не антипод к динамическому:) Насчет валидности XML я что-то не понял. Так же как мы валидируем XML, мы можем и валидировать, скажем JSON, коль речь о JS зашла, кстати предмет нашего обсуждения имеет очень благородные корни - язык Self.
перетягивание каната…
возможно это подкупит тех программистов, что начали свой путь с JavaScript… и смогут перейти на серверную часть с минимальными… напряжениями в мозгу…
но будет ли это переход навсегда? думаю нет, сейчас мода… и тенденция к улучшению выразительности языков…
поэтому после перехода на сервер с знакомым языком, порграммист начнет искать удобство работы там и, как видится. предпочтет более выгодный путь (язык)…
выбор программиста может испортить лишь маркетолог, который создаст видимую популярность и превосходство того или иного языка на тот момент…
а потом — законченные проекты, которые надо поддерживать и дорого переделать… и пошло поехало…

что есть помимо Helma — https://wiki.mozilla.org/ServerJS#Implementations
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации