Re[33]: почему в вебе распространены именно динамические язы
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.10.10 07:32
Оценка:
Здравствуйте, WolfHound, Вы писали:

N>>Нет. Потому что есть возможности компьютера, а есть _укладка_ на возможности компьютера. Чтобы чётче объяснить — компьютер может работать со сверхдлинными числами, но естественный размер — 16, 32, 64 бита.

WH>И че? Мне оно до лампочки. Если мне нужны длянные числа у меня будут длинные числа.
N>>Например, то, что он не может выполнить бесконечный цикл при компиляции программы (напоминаю, что, например, язык шаблонов C++ тьюринг-полон).
WH>И что ты этим сказать то хотел?

Последним в скобках — я указал контекст, в котором можно рассматривать этот случай. Разумеется, годится и любой другой случай, когда выполнить запрос невозможно. Ты ведь спрашивал про естественные ограничения у компилятора? Ну так не теряй контекст.

WH>>> А у бугалтерской программы?

N>>Правила схождения дебета с кредитом.
WH>И где они в природе?
WH>Это модель придуманая человеком для ведения учета.

Это свойство "корневой" модели области, независимой от конкретной реализации.

WH>>> А у веб сайта?...

N>>Зависит от содержания сайта, но ряд общих правил работает и тут.
WH>Каких?
WH>Только давай таких чтобы из природы.

Я не говорил "из природы", ты это сам додумал и раз додумал — с собой и спорь. Я говорил "естественные". Это подразумевает не только природные свойства, но и ограничения среды, в которой это происходит и на которые нельзя повлиять. В случае веб-сайта это, как правило (но не всегда) означает, что основной выходной формат данных — HTML в определённых пределах (от 3.2 до 4.x с ограниченными элементами пятого).

WH>Или бесконечный цикл и выжирание памяти все что можешь придумать?


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

WH>>>А теперь скажи мне как мне проделать тоже самое с динамической типизацией?

N>>Не буду даже пытаться сказать, потому что не знаю Nemerle. Приведи plz пример на чём-то более общеупотребительном.
WH>Там был изменен тип одной переменной.
WH>Раньше значение было всегда.
WH>А теперь стало опциональным.
WH>Теперь везде где идет обращение к этой переменной нужно вставить проверки.
WH>В случае со статикой мне все места где нужно проверить показал компилятор.
WH>В случае с динамикой мне никто и ничего не раскажет.

Спасибо за внятное объяснение (вместо кода на маргинальном языке) Да, пример показательный. Но и против него есть как внутренние, так и внешние возражения.
Во-первых, анализ такого рода возможен и для динамических языков (буду пока называть так), для наиболее прямого варианта использования. Грубо и на Питоне говоря, если ты пишешь a.b, он сработает, если getattr(a,'b') — нет (хотя pychecker в этом случае говорит, а почему написать не просто a.b?)
Во-вторых, если у тебя кроме собственно выбора значения ещё логика по его использованию, тебе придётся делать тест. А в этом случае ты отловишь ситуацию и в динамике. (Да, я повторяюсь.)
В-третьих, ты на самом деле сделал больше, чем тебе нужно. Тебе пришлось, кроме случаев, когда явно надо проверять значение, вставить проверки и в те места, где она не нужна по логике. Я догадываюсь, ты взял намеренно "чистый" пример, где такая проверка не нужна. Я прав? Если бы у тебя была более сложная задача и какая-то ветка выполнения имела бы это значение всегда присутствующим — тебе бы пришлось "на ровном месте" вводить дополнительную переменную, не имеющую признака optional.

N>>Если изменения внутренние, их может отработать компиляция. Далее — тестирование. Не собираюсь говорить, что это 100% эквивалентный подход, но практически он оказывается достаточно сходным по результатам, чтобы можно было использовать и не страдать об этом.

WH>Другими словами нужно сделать много больше работы с не гарантированным результатом.
WH>Ну и где профит?

Профит озвучивался раньше: например, ускорение разработки, сокращение цикла изменения. Были и другие выгоды. Перечитай.

WH>>>Может программисты на динамически типизированных языках мега гении и могут держать в голове всю программу?

N>>Зачем?
WH>Чтобы не забыть все поправить.

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

И именно вопрос, что должно войти в проекцию, является наиболее сложным в определении рамок рассмотрения для изменения (анализа, etc.) Например, моя разработка — SIP softswitch — не имеет практически никаких проблем от собственно динамической среды: это даёт наиболее грубые виды ошибок, которые ловятся элементарными тестами. Существенные ошибки начинаются там, где возникают проблемы логики функционирования. Например, акаунтинг должен быть привязан к рауту, контроллеру или UA? И в какой момент — к кому из них? Что будет при перемещении UA между контроллерами (например, при зрячем трансфере), какие параметры должны перейти к новому контроллеру, потому что логически привязаны к UA, а какие — остаться у старого? Как организовать формирование биллинговых атрибутов в случае не pickup-on-call, а pickup-on-IwR, учитывая, что часть данных вообще недоступна (поскольку INVITE-with-Replaces не авторизуется), а часть должна быть получена от ещё не существующей ноги? И тэ дэ, и тэ пэ... И как ты думаешь, волнует меня здесь то, что я формально не знаю, число или строка в конкретной переменной? Для моих задач все твои преимущества статики — примерно как преимущество спортивного руля на Мазде RX8 по сравнению с обычным с точки зрения машиниста электровоза — ну да, если ты не успеешь убраться с переезда, мне будет обидно (но пострадаешь ты)

N>>Ты ответь на предыдущий вопрос — почему ты считаешь, что "программистам на динамически типизированных языках" надо держать в голове всю программу.

WH>А как иначе понимать что вообще происходит?
WH>От компилятора то подсказки недождешся.

Ну если у тебя выбор только между компилятором и головой программиста и нет даже банального grep (я не говорю про более серьёзные анализаторы кода)... да, здесь надо было проехаться по Windows, которая не даёт средств разработки, но это для другого треда.

N>>Не спорю, сделаешь. Но как ты сделаешь, например, правило, что в случае наличия параметра X не может быть задан параметр Y, если Y поступает только в переменной части? Отработка этой проверки при компиляции невозможна, потому что невозможно знать, кто и с чем вызовет. Вот у тебя и получается в результате проверка в рантайме, сиречь та самая динамика.

WH>Зависимыми типами я тебе что угодно проверю.
WH>Было бы жилание.
WH>Впорос в том а нахрена эти сложности вообще нужны?

Ты куда-то постоянно спешишь? Уровень проблем с орфографией такой, что невозможно игнорировать.

WH>Можешь привести пример?


Так я и привёл, тебе недостаточно? Или ты считаешь, что

N>>А, так ты даже описания не прочитал? Ну и расскажи, как эта одна навороченная фнкция поможет сделать то, что я описал? Как говорят коллеги, иди учи матчасть.

WH>Что учить?

Я тебе про openat, а ты мне про "кучу специализированных функций", хотя её функциональность не покрывается CreateFile() ни в каком виде. Значит, ты ничего про неё не прочитал, но проигнорировать или прочитать не захотел. Это уже показатель уровня твоей полемики.

WH>И причем тут вообще динамика?

WH>А функциональность этой функции вообще за гранью моего понимания.
WH>Она не нужна.

Тогда зачем споришь о том, что за гранью твоего понимания?

N>>Ну конечно, привёл пример фиксированной структуры и успокоился... Представь себе, что завтра выходит новая версия стандарта, где у этой sequence ещё три возможных компонента. И тут твой конвертер представлений резко сломался...

WH>Какой конвертер?
WH>Каких представлений?

Внутренних во внешние и обратно.

WH>>>Если какойто гоблин начал специально обходить защиту компилятора это он сам себе злобный буратино.

WH>>>Нормальный человек это делать не будет.
WH>>>Так что мимо.
N>>Так в этом месте вообще защиты быть не может. Так что мимо
WH>Использование годных инструментов дебилами я обсуждать не намерен.

Сначала докажи, что дебилы. Встречный вопрос: какой дебил и зачем придумал конвертировать все из себя объектные твои построения в какой-то ужасный октетный поток и отдавать через совершенно нетипизированный TCP? Да ещё и в каком-то жутком transfer encoding, которое ломает всё представление?

N>>Ну и зря. Очень толковые ребята с неплохим результатом.

WH>Я уже ругался на эту тему
WH>http://www.rsdn.ru/forum/philosophy/3598807.1.aspx
Автор: WolfHound
Дата: 11.11.09

WH>И это не полный список.
WH>Единственное что я не заметил при написании того сообщения это поддержку детерминированной финализации. В прочем она у них сделана столь дебильно что даже С++ и тот лучше.

Это тема отдельного обсуждения, но как минимум половина твоих доводов не по адресу или опровергается с ходу.
The God is real, unless declared integer.
Re[9]: почему в вебе распространены именно динамические язык
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.10.10 07:40
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>А писать в функциональном стиле на Руби (где нет первоклассных функций)


Мнэээ... точно нету?
The God is real, unless declared integer.
Re[8]: почему в вебе распространены именно динамические язык
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.10.10 07:40
Оценка: +1
Здравствуйте, Mamut, Вы писали:

G>>>>>>А что мешает делать тоже самое с java, c# и даже с++?


DAS>>>>> Тем, что 'quick' в c++ выходит у слишком 'dirty'. Хотя бы из-за неаккуратной работы с памятью.


G>>>>Ок, отбросим C++. Остались java и .NET, чем они не угодили для quick-and-durty?


M>>>Когда Веб взлетал, java проталкивалась на десктопы, а .NET только рождался. Сейчас и первый и второй в вебе представлены очень широко.

G>>Да я то знаю, вот убеждение что на динамических языках что-то там проще делается меня удивляет.

M>Ну, как бы оно до сих пор часто делается проще


M>PHP позволяет не уходить их HTML'я вообще (что не очень хорошо, но очень просто).

M>Coldfusion — агалогично (несмотря на платность он очень популярен в Штатах).
Аналогично ASP.NET и JSP.
Типизация на такое поведение вообще не влияет.

M>У Питона есть Django, в которм две строчки кода дают тебе мегаадминку и крутой сайт.

M>Ruby on Rails позволяют примерно похожее.
Dynamic Data для ASP.NET аналогично. Причем тут типизация?

M>Для Java и ASP.NET аналогичное стало появляться только весьма недавно.

А какая разница когда начало появляться, главное что оно есть сейчас.
Re[12]: почему в вебе распространены именно динамические язы
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.10.10 07:42
Оценка:
Здравствуйте, DemAS, Вы писали:

DAS>Здравствуйте, gandjustas, Вы писали:


G>>В .NET нету монолитного фреймворка.


DAS> Ах, нет.


Это к чему было?
Re[10]: почему в вебе распространены именно динамические язы
От: Воронков Василий Россия  
Дата: 18.10.10 07:42
Оценка:
Здравствуйте, netch80, Вы писали:

ВВ>>А писать в функциональном стиле на Руби (где нет первоклассных функций)

N>Мнэээ... точно нету?

Есть возможность передать функцию через колл-бек, но это разве first class?
Вот тут например сравнение Питона и Руби по этому вопросу: http://dev.pocoo.org/~mitsuhiko/pythonruby.html#ruby-first-class-functions

Сами мне и скажите — это оно или нет.
Re[13]: почему в вебе распространены именно динамические язы
От: DemAS http://demas.me
Дата: 18.10.10 07:46
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Это к чему было?


Разочарование. Я уж надеялся.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[11]: почему в вебе распространены именно динамические язы
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.10.10 07:51
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, netch80, Вы писали:


ВВ>>>А писать в функциональном стиле на Руби (где нет первоклассных функций)

N>>Мнэээ... точно нету?

ВВ>Есть возможность передать функцию через колл-бек, но это разве first class?

ВВ>Вот тут например сравнение Питона и Руби по этому вопросу: http://dev.pocoo.org/~mitsuhiko/pythonruby.html#ruby-first-class-functions

ВВ>Сами мне и скажите — это оно или нет.


Это костыль того же уровня, что делегаты с методами объектов в C# 1.0.
Я частично согласен с выводом — я знал, что можно фактически сделать first class function, но не знал, что в виде именованных функций оно так морочно. Но не следует забывать ещё про блоки кода — они покрывают существенную часть необходимости в first class functions.
Предлагаю оформить ответ — "они есть, но криво".
The God is real, unless declared integer.
Re[4]: почему в вебе распространены именно динамические язык
От: Lloyd Россия  
Дата: 18.10.10 07:51
Оценка:
Здравствуйте, DemAS, Вы писали:

L>>И что из этого является препятствием для использования статически-типизированных языков?


DAS> Ты про Haskell что ли? Да никаких.


Я к тому что quick & dirty можно писать на любом языке. Ну как минимум dirty — точно.
Re[9]: почему в вебе распространены именно динамические язык
От: Mamut Швеция http://dmitriid.com
Дата: 18.10.10 07:53
Оценка:
M>>>>Когда Веб взлетал, java проталкивалась на десктопы, а .NET только рождался. Сейчас и первый и второй в вебе представлены очень широко.
G>>>Да я то знаю, вот убеждение что на динамических языках что-то там проще делается меня удивляет.

M>>Ну, как бы оно до сих пор часто делается проще


M>>PHP позволяет не уходить их HTML'я вообще (что не очень хорошо, но очень просто).

M>>Coldfusion — агалогично (несмотря на платность он очень популярен в Штатах).
G>Аналогично ASP.NET и JSP.

G>Типизация на такое поведение вообще не влияет.


M>>У Питона есть Django, в которм две строчки кода дают тебе мегаадминку и крутой сайт.

M>>Ruby on Rails позволяют примерно похожее.
G>Dynamic Data для ASP.NET аналогично. Причем тут типизация?

M>>Для Java и ASP.NET аналогичное стало появляться только весьма недавно.

G>А какая разница когда начало появляться, главное что оно есть сейчас.

Ну дык. Оно-то есть только сейчас. А для всего остального оно уже было За место под солнцем еще бороться надо


dmitriid.comGitHubLinkedIn
Re[12]: почему в вебе распространены именно динамические язы
От: Воронков Василий Россия  
Дата: 18.10.10 07:57
Оценка:
Здравствуйте, netch80, Вы писали:

N>Это костыль того же уровня, что делегаты с методами объектов в C# 1.0.

N>Я частично согласен с выводом — я знал, что можно фактически сделать first class function, но не знал, что в виде именованных функций оно так морочно. Но не следует забывать ещё про блоки кода — они покрывают существенную часть необходимости в first class functions.
N>Предлагаю оформить ответ — "они есть, но криво".

Все же термин "первоклассная функция" говорит скорее о поддержке таковых как first class citizen в компиляторе. Однако в отношении Руби и в отношении даже C# (и не обязательно 1.0) речь идет скорее о механизме, который позволяет симулировать первоклассные функции. В действительности же функция не является таким же значением, как, скажем, целые числа, ни в C#, ни в Руби. Т.е. функция на самом деле — это не первоклассное значение, первоклассным значением является специальная обвертка над фукнцией (тот же делегат в Шарпе).

И можно было бы закрыть глаза на этот факт, если бы он не приводил к тому, что использование функций в качестве first class в том же Руби приводит к определенным неудобствам по сравнению с языками, где функции действительно first class. Взять хоть ДжаваСкрипт.

Короче, мне сложно представить функциональный код на Руби. Да, кстати, и на Питоне тоже. Под совсем другие парадигмы затачивались эти языки.
Re[14]: почему в вебе распространены именно динамические язы
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 18.10.10 08:00
Оценка:
Здравствуйте, DemAS, Вы писали:

DAS>Здравствуйте, gandjustas, Вы писали:


G>>Это к чему было?


DAS> Разочарование. Я уж надеялся.


На что?
Re[13]: почему в вебе распространены именно динамические язы
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.10.10 08:00
Оценка: +2
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Все же термин "первоклассная функция" говорит скорее о поддержке таковых как first class citizen в компиляторе. Однако в отношении Руби и в отношении даже C# (и не обязательно 1.0) речь идет скорее о механизме, который позволяет симулировать первоклассные функции. В действительности же функция не является таким же значением, как, скажем, целые числа, ни в C#, ни в Руби. Т.е. функция на самом деле — это не первоклассное значение, первоклассным значением является специальная обвертка над фукнцией (тот же делегат в Шарпе).


Не могу возразить формально

ВВ>И можно было бы закрыть глаза на этот факт, если бы он не приводил к тому, что использование функций в качестве first class в том же Руби приводит к определенным неудобствам по сравнению с языками, где функции действительно first class. Взять хоть ДжаваСкрипт.


ВВ>Короче, мне сложно представить функциональный код на Руби. Да, кстати, и на Питоне тоже. Под совсем другие парадигмы затачивались эти языки.


Что есть "функциональный код"? На Ruby не писал, но на Питоне пишу постоянно. Для тех задач, которые на нём делаются, и для пределов его возможностей такого достаточно. На Питоне ты можешь породить функцию на ходу с любым необходимым поведением и передать её как данное (аргумент), над ней можно построить другую, и т.д. Что ещё нужно от данного механизма?
The God is real, unless declared integer.
Re[13]: почему в вебе распространены именно динамические язы
От: Mamut Швеция http://dmitriid.com
Дата: 18.10.10 08:01
Оценка:
DAS>> Да уж, ROR просто офигительно сложен: http://www.rubyonrails.ru/screencasts.html
DAS>> Пример, "Как создать блог за 15 минут". Честная и наглядная демонстрация начиная от установки rails и заканчивая запуском блога.
DAS>> При том, что 99% кода Rails там сам генерит.

ВВ>А в АСП.НЕТ еще проще:

ВВ>http://www.asp.net/get-started

The MVC Music Store tutorial explains step-by-step how to use ASP.NET MVC and Visual Studio to build an application:


Только вот когда появился ASP.NET, ASP.NET MVC даже в планах не было. ASP.NET MVC 1.0 — это 2009-й год. Ruby on Rails 1.0 — это 2005-й год. И да, "Как создать блог за 15 минут на RoR" тоже появился примерно тогда же. Django тоже выпущен на публику был в 2005-м году.

В 2005-м RoR и Django были прорывом. Тогда не было ни единого фреймворка, которые были бы настолько же легки в использовании. Это сейчас можно говорить, что мол, в других языках дела обстоят не хуже. Но это только сейчас


dmitriid.comGitHubLinkedIn
Re[14]: почему в вебе распространены именно динамические язы
От: Воронков Василий Россия  
Дата: 18.10.10 08:04
Оценка:
Здравствуйте, Mamut, Вы писали:

M>В 2005-м RoR и Django были прорывом. Тогда не было ни единого фреймворка, которые были бы настолько же легки в использовании. Это сейчас можно говорить, что мол, в других языках дела обстоят не хуже. Но это только сейчас


Речь не была о том, когда эти технологии появились. Речь была — у РОР более низкий порог вхождения, чем у АСП.НЕТ "с сиськами" (т.е. РАД-ы, контролы и прочие туториалы). С чем, собственно, и спорим.
Re[14]: почему в вебе распространены именно динамические язы
От: Воронков Василий Россия  
Дата: 18.10.10 08:06
Оценка: :)
Здравствуйте, netch80, Вы писали:

N>Что есть "функциональный код"? На Ruby не писал, но на Питоне пишу постоянно. Для тех задач, которые на нём делаются, и для пределов его возможностей такого достаточно. На Питоне ты можешь породить функцию на ходу с любым необходимым поведением и передать её как данное (аргумент), над ней можно построить другую, и т.д. Что ещё нужно от данного механизма?


Формально — определить невозможно Нет строгого набора критериев, по которому можно отнести язык к ФЯ или же исключить его из ФЯ. Понятно, что должны быть первоклассные функции. Но, наверное, этого как-то мало.

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

Скажем, будет ли рекурсия более удобным средством для разбора списков, чем циклы? Связные списки вообще в Питоне-то есть? А как будет выглядеть композиция или каррирование функций? А есть ли паттерн-матчинг?
Re[15]: почему в вебе распространены именно динамические язы
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.10.10 08:11
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, netch80, Вы писали:


N>>Что есть "функциональный код"? На Ruby не писал, но на Питоне пишу постоянно. Для тех задач, которые на нём делаются, и для пределов его возможностей такого достаточно. На Питоне ты можешь породить функцию на ходу с любым необходимым поведением и передать её как данное (аргумент), над ней можно построить другую, и т.д. Что ещё нужно от данного механизма?


ВВ>Формально — определить невозможно Нет строгого набора критериев, по которому можно отнести язык к ФЯ или же исключить его из ФЯ. Понятно, что должны быть первоклассные функции. Но, наверное, этого как-то мало.


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


Так на это он никогда и не претендовал: нет, например, хвостовой рекурсии.

ВВ>Скажем, будет ли рекурсия более удобным средством для разбора списков, чем циклы? Связные списки вообще в Питоне-то есть?


Списки есть. Думаю, если ввести функции

def car(x):
  return x[0]
def cdr(x):
  if not x:
    raise ValueError, 'empty list'
  return x[1:]


результат удовлетворит любого

ВВ> А как будет выглядеть композиция или каррирование функций?

ВВ> А есть ли паттерн-матчинг?

Конечно, нету. А надо? Это всё-таки другое направление. Вообще, непонятно смещение темы. Начали всего-то про first class functions.
The God is real, unless declared integer.
Re[15]: почему в вебе распространены именно динамические язы
От: Mamut Швеция http://dmitriid.com
Дата: 18.10.10 08:13
Оценка:
M>>В 2005-м RoR и Django были прорывом. Тогда не было ни единого фреймворка, которые были бы настолько же легки в использовании. Это сейчас можно говорить, что мол, в других языках дела обстоят не хуже. Но это только сейчас

ВВ>Речь не была о том, когда эти технологии появились. Речь была — у РОР более низкий порог вхождения, чем у АСП.НЕТ "с сиськами" (т.е. РАД-ы, контролы и прочие туториалы). С чем, собственно, и спорим.


Возможно, он ниже психологически В том плане, что когда говорят Ruby+Web, подразумевают RoR. 15 минут туториала и вперед. Когда говорят ASP.NET... То MVC далеко не первое, что приходит в голову.


dmitriid.comGitHubLinkedIn
Re[16]: почему в вебе распространены именно динамические язы
От: Воронков Василий Россия  
Дата: 18.10.10 08:15
Оценка:
Здравствуйте, netch80, Вы писали:

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

N>Так на это он никогда и не претендовал: нет, например, хвостовой рекурсии.

Ну вот, что за функциональный язык без хвостовой рекурсии

N>Списки есть. Думаю, если ввести функции

N>
N>def car(x):
N>  return x[0]
N>def cdr(x):
N>  if not x:
N>    raise ValueError, 'empty list'
N>  return x[1:]
N>

N>результат удовлетворит любого

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

ВВ>> А как будет выглядеть композиция или каррирование функций?

ВВ>> А есть ли паттерн-матчинг?
N>Конечно, нету. А надо? Это всё-таки другое направление. Вообще, непонятно смещение темы. Начали всего-то про first class functions.

В смысле смещение темы? Вы сами спросили "что есть функциональный код", т.е. почему тот же Питон не подходит для программирования в функциональном стиле. Я вам ответил, какие возможности на мой взгляд должны быть в языке, чтобы он позволял полноценно писать с использованием ФП.
Re[15]: почему в вебе распространены именно динамические язы
От: DemAS http://demas.me
Дата: 18.10.10 08:17
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Речь не была о том, когда эти технологии появились. Речь была — у РОР более низкий порог вхождения, чем у АСП.НЕТ "с сиськами" (т.е. РАД-ы, контролы и прочие туториалы). С чем, собственно, и спорим.


Ну, вообще, тема называлась "почему в вебе распространены именно динамические языки программирования?". На тот момент, когда занималась ниша разработки под web — Ruby и Python действительно имели более низкий порог вхождения и больше возможностей, чем тот же ASP. Все — это всего лишь мое мнение, которое я и написал.

Теперь же обсуждение скатилось на тему — что круче ASP или Rails. Да разве про это шла речь?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[16]: почему в вебе распространены именно динамические язы
От: Воронков Василий Россия  
Дата: 18.10.10 08:18
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Возможно, он ниже психологически В том плане, что когда говорят Ruby+Web, подразумевают RoR. 15 минут туториала и вперед. Когда говорят ASP.NET... То MVC далеко не первое, что приходит в голову.


А что первое? Веб-формы разве сложнее?
Я лично видел, как люди с АСП (читай — ВБскрипт) переходили на Веб-формс и программировали, не особенно вдаваясь в детали ООП там или не ООП.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.