Здравствуйте, rsdn2010, Вы писали:
R>почему в вебе распространены именно динамические языки программрования — PHP, Python, Ruby, Javascript?
Потому что они интерпретируются, а не компилируются. То есть у них нет двойственной формы представления одной и той ж программной конструкции, одна из которых понятна только программисту, другая только среде исполнения. Это важное преимущество не только для исполнения, но и для быстрого прототипирования процессов выполнения.
Re: почему в вебе распространены именно динамические языки?
Здравствуйте, rsdn2010, Вы писали:
R>почему в вебе распространены именно динамические языки программрования — PHP, Python, Ruby, Javascript?
Во-первых, не смешивайте языки серверной стороны и клиентской. Между ними почти нет общего (конечно, можно попробовать писать серверную сторону на Javascript, но это обычно не окупается).
Во-вторых, специфика задачи очень часто такова, что реализацию серверной стороны надо постоянно модифицировать. Цена цикла компиляции/сборки/выкладки значительно больше простой правки на серверной стороне.
В-третьих, специфика задачи приводит к массовой работе со структурами данных стиля словарей, списков... Ещё не так давно, когда компилируемыми языками были только Си и Си++-без-STL, это всё было крайне дорого и неэффективно. Зато для какого-нибудь Perl это было основным вариантом — и сейчас на нём массив, структура это побочные подходы, зато список и словарь — родные средства.
В клиентской части это ещё ярче выражено — попытка выложить работу с DOM на C приводит или к сумасшествию программиста, или просто к неэффективному результату.
Достаточно?
Есть исключения, как тот же RSDN. Но их мало.
The God is real, unless declared integer.
Re: почему в вебе распространены именно динамические языки?
Здравствуйте, rsdn2010, Вы писали:
R>почему в вебе распространены именно динамические языки программрования — PHP, Python, Ruby, Javascript?
1. Скорость разработки несложных приложений на динамических ЯП выше. Веб приложения, утрировано, состоят из набора слабо связанных скриптов, логика работы всей системы определяется действием пользователя. То есть веб приложение — несложное, с точки зрения архитектуры.
2. Отсутствие потребности потребности трансляции(при изменении или добавлении кода/модулей) дает возможность хранить работающий исходный код, который может изменятся без остановки всего приложения
3. Динамические языки позволяют легко использовать возможности метапрограммирования. Что опять же повышает скорость разработки. Но и дает возможность выстраивать архитектуру без первоначального планирования, собирая работающий код в абстракции более высокого уровня
Re[2]: почему в вебе распространены именно динамические язык
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, rsdn2010, Вы писали:
R>>почему в вебе распространены именно динамические языки программрования — PHP, Python, Ruby, Javascript?
N>Во-первых, не смешивайте языки серверной стороны и клиентской. Между ними почти нет общего (конечно, можно попробовать писать серверную сторону на Javascript, но это обычно не окупается).
Не готов говорить за окупаемость, но проект Node.js получил довольно широкую известность в последнее время.
Хотя по сути я с тобой согласен.
Re[2]: почему в вебе распространены именно динамические язык
Здравствуйте, Skynin, Вы писали:
S>1. Скорость разработки несложных приложений на динамических ЯП выше. Веб приложения, утрировано, состоят из набора слабо связанных скриптов, логика работы всей системы определяется действием пользователя. То есть веб приложение — несложное, с точки зрения архитектуры. S>2. Отсутствие потребности потребности трансляции(при изменении или добавлении кода/модулей) дает возможность хранить работающий исходный код, который может изменятся без остановки всего приложения S>3. Динамические языки позволяют легко использовать возможности метапрограммирования. Что опять же повышает скорость разработки. Но и дает возможность выстраивать архитектуру без первоначального планирования, собирая работающий код в абстракции более высокого уровня
тогда возникает вопрос...
почему все остальные области не перешли на такие языки?
Re[3]: почему в вебе распространены именно динамические язык
Здравствуйте, rsdn2010, Вы писали:
R>Здравствуйте, Skynin, Вы писали:
S>>1. Скорость разработки несложных приложений на динамических ЯП выше. Веб приложения, утрировано, состоят из набора слабо связанных скриптов, логика работы всей системы определяется действием пользователя. То есть веб приложение — несложное, с точки зрения архитектуры. S>>2. Отсутствие потребности потребности трансляции(при изменении или добавлении кода/модулей) дает возможность хранить работающий исходный код, который может изменятся без остановки всего приложения S>>3. Динамические языки позволяют легко использовать возможности метапрограммирования. Что опять же повышает скорость разработки. Но и дает возможность выстраивать архитектуру без первоначального планирования, собирая работающий код в абстракции более высокого уровня
R>тогда возникает вопрос... R>почему все остальные области не перешли на такие языки?
все остальные = имеется в виду не ниша C++ и т п, а ниша C# и Java
Re: почему в вебе распространены именно динамические языки?
Здравствуйте, rsdn2010, Вы писали:
R>почему в вебе распространены именно динамические языки программрования — PHP, Python, Ruby, Javascript?
Про скорость внесения изменений рядом уже сказали, с другой стороны зачастую производительность решений упирается в первую очередь в скорость БД, поэтому использование динамической типизации не столь тягостно, как могло бы показаться.
Re[4]: почему в вебе распространены именно динамические язык
Здравствуйте, rsdn2010, Вы писали:
R>>тогда возникает вопрос... R>>почему все остальные области не перешли на такие языки?
R>все остальные = имеется в виду не ниша C++ и т п, а ниша C# и Java
Здравствуйте, rsdn2010, Вы писали:
R>Здравствуйте, Skynin, Вы писали:
S>>1. Скорость разработки несложных приложений на динамических ЯП выше. Веб приложения, утрировано, состоят из набора слабо связанных скриптов, логика работы всей системы определяется действием пользователя. То есть веб приложение — несложное, с точки зрения архитектуры. S>>2. Отсутствие потребности потребности трансляции(при изменении или добавлении кода/модулей) дает возможность хранить работающий исходный код, который может изменятся без остановки всего приложения S>>3. Динамические языки позволяют легко использовать возможности метапрограммирования. Что опять же повышает скорость разработки. Но и дает возможность выстраивать архитектуру без первоначального планирования, собирая работающий код в абстракции более высокого уровня
R>тогда возникает вопрос... R>почему все остальные области не перешли на такие языки?
Недостаточная развитость инфраструктуры управления библиотеками и ненасыщенность самих библиотек, чтобы заменить компилируемые языки с их наработками в своей сфере.
Компилируемые языки хорошо подходят для маркетинга программных продуктов в сфере частной собственности, так как исходный код труднее получить из откомпилированных (иногда обфусцированных) бинарников, в которых продаётся конечный продукт, а значит, сохраняется ноу-хау, выраженное в компилируемом коде, и, как следствие, преимущество продавца.
Кроме этого, не забывайте, серверная Java — это COBOL XXI века.
Re[2]: почему в вебе распространены именно динамические язык
Здравствуйте, iZEN, Вы писали:
ZEN>Здравствуйте, rsdn2010, Вы писали:
R>>почему в вебе распространены именно динамические языки программрования — PHP, Python, Ruby, Javascript?
ZEN>Потому что они интерпретируются, а не компилируются. То есть у них нет двойственной формы представления одной и той ж программной конструкции, одна из которых понятна только программисту, другая только среде исполнения. Это важное преимущество не только для исполнения, но и для быстрого прототипирования процессов выполнения.
Не сможет ли в таком случае, уважаемый программист объяснить, что выполняет вот этот код:
iZEN>>Потому что они интерпретируются, а не компилируются. То есть у них нет двойственной формы представления одной и той ж программной конструкции, одна из которых понятна только программисту, другая только среде исполнения. Это важное преимущество не только для исполнения, но и для быстрого прототипирования процессов выполнения.
KV>Не сможет ли в таком случае, уважаемый программист объяснить, что выполняет вот этот код: KV>являющийся единственной понятной формой среде исполнения cpython?
А что, на серверах используется CPython? Не знал. У меня на десктопе ни одного файла с его байткодом нету.
> pkg_info | grep python
boost-python-libs-1.43.0 Framework for interfacing Python and C++
exaile-0.3.2.0 A full featured python-based music player for GTK+
py26-gtksourceview-2.10.1 A python bindings for the version 2 of the GtkSourceView li
py26-notify-0.1.1_7 A python bindings for libnotify
py26-xdg-0.19 A python library to access freedesktop.org standards
python26-2.6.6 An interpreted object-oriented programming language
> find /usr/local -name '*.pys' | wc -l
find: /usr/local/etc/polkit-1: Permission denied
find: /usr/local/etc/cups/ssl: Permission denied
0
> uname -a
FreeBSD selena.fire 8.1-STABLE FreeBSD 8.1-STABLE #0: Sat Oct 9 19:19:32 VOLST 2010 root@selena.fire:/usr/obj/usr/src/sys/SELENA amd64
Re[3]: почему в вебе распространены именно динамические язык
Здравствуйте, kochetkov.vladimir, Вы писали:
ZEN>>Потому что они интерпретируются, а не компилируются. То есть у них нет двойственной формы представления одной и той ж программной конструкции, одна из которых понятна только программисту, другая только среде исполнения. Это важное преимущество не только для исполнения, но и для быстрого прототипирования процессов выполнения.
KV>Не сможет ли в таком случае, уважаемый программист объяснить, что выполняет вот этот код:
Если говорить про CPython, то, к сожалению, это не компиляция. Максимум, чем можно это назвать — это парсинг во внутреннее представление. Разумеется, это не 100% чёткий тезис, но то, что для работы питона не обязательно присутствие файлов *.pyc, *.pyo, достаточно показывает несущественность и возможность отсутствия специальной формы для среды исполнения.
KV>являющийся единственной понятной формой среде исполнения cpython?
Того, что среда способна поднимать py-файлы без pyc, достаточно, чтобы это утверждение было неверным.
The God is real, unless declared integer.
Re[4]: почему в вебе распространены именно динамические язык
Здравствуйте, iZEN, Вы писали:
iZEN>>>Потому что они интерпретируются, а не компилируются. То есть у них нет двойственной формы представления одной и той ж программной конструкции, одна из которых понятна только программисту, другая только среде исполнения. Это важное преимущество не только для исполнения, но и для быстрого прототипирования процессов выполнения.
KV>>Не сможет ли в таком случае, уважаемый программист объяснить, что выполняет вот этот код: KV>>являющийся единственной понятной формой среде исполнения cpython?
ZEN>А что, на серверах используется CPython?
CPython == Canonical Python, если что. Да, он используется на серверах
ZEN>Не знал. У меня на десктопе ни одного файла с его байткодом нету.
Зато в памяти есть. Исходный код, который в файлах .py не является родным для среды исполнения python.
Здравствуйте, netch80, Вы писали:
KV>>Не сможет ли в таком случае, уважаемый программист объяснить, что выполняет вот этот код:
N>Если говорить про CPython, то, к сожалению, это не компиляция.
да я вроде нигде про компиляцию и слова не сказал
N>Максимум, чем можно это назвать — это парсинг во внутреннее представление. Разумеется, это не 100% чёткий тезис, но то, что для работы питона не обязательно присутствие файлов *.pyc, *.pyo, достаточно показывает несущественность и возможность отсутствия специальной формы для среды исполнения.
в оригинальном питоне, специальная форма не может отсутствовать. Она может просто не кэшироваться на диск в виде файла.
KV>>являющийся единственной понятной формой среде исполнения cpython? N>Того, что среда способна поднимать py-файлы без pyc, достаточно, чтобы это утверждение было неверным.
среде (каноническому питону) необходимо преобразование исходников в байт-код для выполнения кода. Следовательно, представление в виде исходного текста не является одинаково понятным и программисту и среде исполнения. Собственно, я только с этим утверждением и спорил.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>среде (каноническому питону) необходимо преобразование исходников в байт-код для выполнения кода. Следовательно, представление в виде исходного текста не является одинаково понятным и программисту и среде исполнения. Собственно, я только с этим утверждением и спорил.
А кто преобразует в байт-код — не среда ли? Значит, это не более чем её внутреннее дело.
The God is real, unless declared integer.
Re[4]: почему в вебе распространены именно динамические язык
Здравствуйте, netch80, Вы писали:
N>Того, что среда способна поднимать py-файлы без pyc, достаточно, чтобы это утверждение было неверным.
А хочешь я тоже самое с немерлом сделаю?
Там делать то почти ничего не придется. NCC.exe это просто консольная запускалка для Nemerle.Compiler.dll.
Все что нужно это сделать аналог NCC.exe который будет компилировать прямо в памяти и передавать управление полученному коду.
И что по твоему немерле после этого станет динамически типизированным интерпритатором?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: почему в вебе распространены именно динамические языки?