LINUX.ORG.RU

Посоветуйте язык для web'a


0

0

Ни бум-бум, но хоцца :)
Как я понимаю, нужна разметка страницы (html) и скриптовый язык (СЯ). Если с html более-менее понятно, то с СЯ - вопрос ? Какими свойствами он должен
обладать ? (Приходит на ум тока скорость). Ну в общем посоветуйте, желательно
с ссылками.

P.S.
Жабу, наверное, не надо )


Ответ на: комментарий от naryl

!(ситаксис - детали/мелочь) && (Чем проще и понятнее читать/писать код(т.е., учитывая контекст, проще и понятнее ситаксис), тем больше ментальный усилий тратится на суть работы, + меньше ошибок.) => лучшим языком является тот, в котором самый простой синтаксис.

Нет. Отсюда следует «лучший синтаксис - простой». И всё.

Miguel ★★★★★
()
Ответ на: комментарий от naryl

>Чем проще и понятнее читать/писать код(т.е., учитывая контекст, проще и понятнее ситаксис)

Неправда. Возьмём в пример brainfuck. Синтаксис ещё проще, чем в lisp. Однако программа слишком сильно разбухает и читать её не проще и понятнее, чем, скажем C. В этом же и кроется суть проблемы lisp'а. Синтаксис тривиален, а код получается убогим и нечитабельным.

anonymous
()
Ответ на: комментарий от tia

Прикладники говорят - Си! Плюсы! А на них нет ни единого вебфреймворка, который стоил бы внимания.

А как же Wt? По сути дела некоторого из функционала который в нём есть нет ни в RoR ни в Django ни где то ещё.

md5xxx1
()
Ответ на: комментарий от Harald

Да и чем принципиально отличается веб-кодинг на, скажем ПХП от С? Синтаксис похож, почти все используемые библиотеки написаны на Си, ПХП предоставляет только обертки для сишных функций. Что кроме устоявшихся традиций мешает писать под веб на С? Наличие большего количества мозгов нужно, это да. Вообще, сфера веб-программирования сильно оккупирована быдлокодерами. Для них изобретают всякие быдло-языки, в которых нет указателей, чтобы они, не дай Бог, мозг себе не сломали :)

Согласен на 100%. Какой смысл вобще использовать интерпретируемые язычки, что бы съэкономить программисту время которое он потратит на сборку, а на то что он будет компилиться каждый раз когда происходит запрос и будет затрачено огромное количество не такого уж правда дорогого сегодня машинного времени наплевать?

md5xxx1
()
Ответ на: комментарий от tia

Вопрос не в синтаксисе, а в библиотеках.

Ну что такого есть в PHP'шных горе библиотеках чего нет в C, для C есть все библиотеки в первую очередь, к интерпретаторам прикручивают C-шные библиотеки уже потом.

Низкоуровневая работа с памятью есть почти в каждом языке.

Где ты таковую увидел в PHP, большинство быдлокодящих на нём даже не задумываются что бы очистить память, да для их скриптиков работающих по несколько миллисекунд это не принципиально - нафига там Garbage Collector, о каком memory leak может идти речь если скрипт выполняется и исчезает меньше чем за секунду.

md5xxx1
()
Ответ на: комментарий от archimag

>Вообще, надо сказать Грэхэму большое спасибо за его вклад в популяризацию Common Lisp и идти дальше, ибо он, похоже, остался где-то в середине 90-х.

Вот у меня часто возникает впечатление, что лисперы как-то сами убивают свой инструмент.

Вроде лисп отличный язык. И особенно лет 10 назад был бы вообще почти вне конкуренции, но всякие мелочи меня от него отворачивают.

Хотя бы даже система пакетов какая-то откровенно уродливая. Эх...

Waterlaz ★★★★★
()
Ответ на: комментарий от md5xxx1

> Какой смысл вобще использовать интерпретируемые язычки,

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

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

Ну а это просто бред.

anonymous
()
Ответ на: комментарий от md5xxx1

>>Для них изобретают всякие быдло-языки, в которых нет указателей, чтобы они, не дай Бог, мозг себе не сломали :)

Согласен на 100%. Какой смысл вобще использовать интерпретируемые язычки, что бы съэкономить программисту время которое он потратит на сборку, а на то что он будет компилиться каждый раз когда происходит запрос и будет затрачено огромное количество не такого уж правда дорогого сегодня машинного времени наплевать?

Я конечно понимаю, что взывать к разуму человека с такой аватарой - глупо. Но все же.

Все равно эти пхпшные скрипты как правило составляют мизерную долю процессорного времени. В основном веб сервер ждет запросов или капошится в базе. Так не все ли равно? Тем более, что ваш веб на Си будет ненадежным гавном скорее всего.

Waterlaz ★★★★★
()
Ответ на: комментарий от md5xxx1

> Какой смысл вобще использовать интерпретируемые язычки, что бы съэкономить программисту время которое он потратит на сборку, а на то что он будет компилиться каждый раз когда происходит запрос и будет затрачено огромное количество не такого уж правда дорогого сегодня машинного времени наплевать?

Сейчас люди стоят дороже, чем процессорное время. Именно поэтому ставится акцент на скорость разработки.

По оптимизации я могу три вещи (да, я не оригинален, но всё же):

1. Не делай этого

2. Никогда не делай этого

3. Смотри пункт 1

Медленно/быстро понятие растяжимое, парсинг и анализ скрипта далеко не факт, что будут составлять значительную часть в работе приложения. Да и речь не каких-нибудь высоконагруженных средах.

anonymous
()
Ответ на: комментарий от Waterlaz

> Хотя бы даже система пакетов какая-то откровенно уродливая. Эх...

Система пакетов, на самом деле, великолепная. Просто надо понимать, что пакеты в Common Lisp это вовсе не аналог пространств имен (как многие их воспринимают), а один из ключевых элементов системы символьных вычислений.

archimag ★★★
()
Ответ на: комментарий от Harald

> Да и чем принципиально отличается веб-кодинг на, скажем ПХП от С?

Тем, что php (perl, python, ruby, e.t.c) не требуют перезапуска веб-сервера для установки написанного модуля и не убьют сервер в случае косячного кода.

Тем, что перечисленные языки либо заточены под веб, либо имеют готовые отлаженные библиотеки и фреймворки для писанины под веб.

TirNaNOg
()
Ответ на: комментарий от archimag

Я не стал бы рекомендовать новичку CL или что-то экзотическое для писанины под веб по причине нераспространённости хостингов поддерживающие эти языки. Кроме того, полезно сначала ознакомиться с тем, что используется в настоящий момент в веб-программировании индустрией, хотя бы для того, чтобы не быть клоуном из параллельного мира, который потом спросит, «а паркуа бы и не па на асме...».

TirNaNOg
()
Ответ на: комментарий от Miguel

Динамическую видимость проще реализовать в интерпретаторе, это признак скриптовых языков, так что, динамическая видимость в Emacs Lisp и AutoLisp как раз к месту.

eugine_kosenko ★★★
()
Ответ на: комментарий от archimag

> Система пакетов, на самом деле, великолепная. Просто надо понимать, что пакеты в Common Lisp это вовсе не аналог пространств имен (как многие их воспринимают), а один из ключевых элементов системы символьных вычислений.

а как же иерархические пакеты?

anonymous
()
Ответ на: комментарий от archimag

В LOR-contest сравнивали, там одно время OCaml лидировал, но потом я Lisp допилил, а закончить вариант на Haskell у меня на тот момент не хватило знаний, а сейчас нет возможности.

eugine_kosenko ★★★
()
Ответ на: комментарий от md5xxx1

А что Wt? Это большой генератор HTML с фичами вроде подвешивания евентов на кнопки средствами синтаксиса языка. В нём есть такие крутые вещи, но в нём больше ничего нет.

tia
()
Ответ на: комментарий от archimag

вроде в игнор ты меня не заносил, а уже не отвечаешь. вот так всегда - решишь в очередной раз приобщиться к величию CL, и тут же сообщество всё обламывает :(

jtootf ★★★★★
()
Ответ на: комментарий от anonymous

>> Чем проще и понятнее читать/писать код(т.е., учитывая контекст, проще и понятнее ситаксис)

Неправда.


Ок. Попробую повторить третий раз. Анонимус, чьи слова я процитировал, был неправ. Прочитайте, пожалуйста, всю, хотя бы, ветку.

naryl ★★★★★
()
Ответ на: комментарий от archimag

>> Хотя бы даже система пакетов какая-то откровенно уродливая. Эх...

Система пакетов, на самом деле, великолепная. Просто надо понимать


В общем и целом в plt-scheme менеджер пакетов такой же. Но в использовании он намного приятнее.

naryl ★★★★★
()
Ответ на: комментарий от naryl

>Ок. Попробую повторить третий раз. Анонимус, чьи слова я процитировал, был неправ.

очень аргументированная критика

anonymous
()
Ответ на: комментарий от jtootf

> есть аналоги Reactive/YAMPA/Grapefruit на CL?

Если и есть, то я об этом не знаю. Впрочем, у меня вообще возникли проблемы с пониманием что это за системы и зачем они нужны.

с примерами использования вроде Frag'а?


Игрушка? Не, я таким не интересуюсь и ничего не скажу...

archimag ★★★
()
Ответ на: комментарий от archimag

что это за системы и зачем они нужны

man reactive programming

Игрушка?

просто пример законченного проекта, использующего технологию. в качестве альтернативы есть робототехнические разработки

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

> можешь о нём что-то сказать?

Не особо, меня вообще не интересует GUI, но скажем этот cells-gkt, это нечто достаточно сильно выносящее мозг и большой популярности не с искало, сейчас, видимо, наиболее вменяемый путь для создания GUI на Common Lisp это cl-gkt2.

archimag ★★★
()
Ответ на: комментарий от archimag

Не особо, меня вообще не интересует GUI

я про cells, вообще-то, спрашивал. не о realted projects, не о GUI, не о зелёном сыре

сколько раз мне надо повторить вопрос, чтобы получить ответ по теме?

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

> сколько раз мне надо повторить вопрос, чтобы получить ответ по теме?

Может просто стоит задать его прямо?

archimag ★★★
()
Ответ на: комментарий от archimag

Может просто стоит задать его прямо?

меня интересуют библиотеки RP для CL. одну я нашёл сам - это упомянутый выше cells. вопрос:

можешь о нём что-то сказать? может в сообществе кто подобным занимается? хотелось бы посмотреть на проекты с его использованием

что непонятно? если не можешь ничего сказать - так и скажи, сам поищу информацию

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

> что непонятно? если не можешь ничего сказать -

так и скажи, сам поищу информацию


Было непонятно что именно ты хочешь

меня интересуют библиотеки RP для CL.


Ничего про это не знаю, тематикой не интересуюсь

archimag ★★★
()
Ответ на: комментарий от archimag

Ничего про это не знаю, тематикой не интересуюсь

ок, спасибо, поковыряю сам

а вообще аналог haskell-cafe у лисперов есть? какой-нибудь активный мейлинг-лист для задания умеренно умных вопросов?

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

> а вообще аналог haskell-cafe у лисперов есть? какой-нибудь активный мейлинг-лист для задания умеренно умных вопросов?

c.l.l?

anonymous
()
Ответ на: комментарий от anonymous

>> Ок. Попробую повторить третий раз. Анонимус, чьи слова я процитировал, был неправ.

очень аргументированная критика


(censored)!@# Да не ты! Прочитай в конце концов ветку сначала.

naryl ★★★★★
()
Ответ на: комментарий от archimag

чтой-то ты так и не ответил, почему django/ror полны уродства, и чем фреймворки на CL ( какие именно кстати? ) лучше/удобнее/быстрее/etc.

volh ★★
()
Ответ на: комментарий от volh

> почему django/ror полны уродства,

Ну, например:

1. Сильная завязка на ORM. Достоинства ORM, как такового, вообще вопрос, но ведь и база для приложения может быть совсем не нужна. А отказываешься от ORM сразу теряешь очень много.
2. Система маршрутизации. Здравая идея, но и в RoR и в Django очень тупая реализация, основанная на последовательном переборе регулярных выражений. Я писал об этом здесь: http://archimag-dev.blogspot.com/2009/10/restas.html
3. Проблема объединения нескольких, независимо друг от друга разработанных модулей, в рамках одного сайта с единым оформлением и одной схемой аутенфикации. Я не нашёл для Django и RoR решения этой проблемы, иначе как патчить исходный код модулей. Плохо смотрел?

Или, «примат соглашения над конфигурацией» в RoR, что при необходимости разобраться в работе большого проекта приводит к необходимости танцев с бубном и требует очень глубого и тонкого понимания принципов работы системы.

archimag ★★★
()
Ответ на: комментарий от archimag

Ты пропустил главную часть вопроса:

и чем фреймворки на CL ( какие именно кстати? ) лучше/удобнее/быстрее/etc.

anonymous
()
Ответ на: комментарий от anonymous

> Ты пропустил главную часть вопроса

Разве это главная часть? Изначально, выше в топике, я просто просил не ссылаться на Django как на некий совершенный эталон. Ну да не суть, я пишу RESTAS, который использую на lisper.ru и в своих рабочих проектах, в нём описанных недостатков нет, по крайней мере, я к этому стремлюсь. Почему меня не устроили другие существующие CL-фрэймворки здесь рассказывать не будут, много буков.

archimag ★★★
()
Ответ на: комментарий от archimag

>1. Сильная завязка на ORM. Достоинства ORM, как такового, вообще вопрос, но ведь и база для приложения может быть совсем не нужна. А отказываешься от ORM сразу теряешь очень много.

Не такая уж и сильная. Естественно, фреймворки прежде всего для persistence используют БД, но в том же RoR я еще несколько лет писал приложения для клиентов вообще без базы данных, наследуя модели от самописных модулей для, скажем, разбора xml/html. Сейчас все и вовсе здорово - вот хорошая статья http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-a...

2. Система маршрутизации. Здравая идея, но и в RoR и в Django очень тупая реализация, основанная на последовательном переборе регулярных выражений.


Ну, допустим это уже пару лет не так. Кроме того, в Рор ( и в Джанго, но могу ошибаться ) можно использовать роутер отдельно и где угодно, как например middleware. Проблема CL в малом кол-ве готовых реюзабельных компонент. «Это делается в CL за десять минут!» и в итоге там 10 минут, тут час, здесь день, зато сколько радости от верчения педалей нового восьмиколесного монстра!

3. Проблема объединения нескольких, независимо друг от друга разработанных модулей, в рамках одного сайта с единым оформлением и одной схемой аутенфикации. Я не нашёл для Django и RoR решения этой проблемы, иначе как патчить исходный код модулей. Плохо смотрел?


Middleware. В Питоне есть WSGI, в Руби - Rack. Аутентификация, кэширование, дебаг, тестирование, роутер, younameit, равно как и отдельные готовые приложения ( комменты, рейтинг, вики, форум, етц ) просто монтируются в иерархию. Непонятно как именно ты смотрел, потому что в Django такие вещи работают хорошо и с самого начала, именно на них рельсисты долго облизывались из-за хреновой изначальной модульности.

Или, «примат соглашения над конфигурацией» в RoR, что при необходимости разобраться в работе большого проекта приводит к необходимости танцев с бубном и требует очень глубого и тонкого понимания принципов работы системы.


Может это какое-то другое «соглашение над конфигурацией», но мне оно только помогало, а дописывал за другими я немало.

volh ★★
()
Ответ на: комментарий от archimag

>Почему меня не устроили другие существующие CL-фрэймворки здесь рассказывать не будут, много буков.

А было бы занятно. По крайней мере по отношению к UCW и Weblocks.

volh ★★
()
Ответ на: комментарий от volh

Вот, еще пока не забыл. В коде lisper.ru я видел голый SQL, я так понимаю используется postmodern. Почему не использовать cl-rdbms или даже cl-perec?

volh ★★
()
Ответ на: комментарий от volh

> А было бы занятно. По крайней мере по отношению к UCW и Weblocks.

Это фрэймворки на продолжениях, дальше можно не рассуждать, в топку.

Ну, допустим это уже пару лет не так.


А как? По RoR у меня действительно возможно устаревшая информация (но там вообще трудно иметь не устаревшую информацию, если ты не сидишь «на острие»). А Django на эту тему я смотрел относительно недавно.

в Рор ... можно использовать роутер отдельно и где угодно


см. cl-routes

потому что в Django такие вещи работают хорошо и с самого начала


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

archimag ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.