Re[14]: Идеальный веб
От: Цыба Украина  
Дата: 26.05.10 11:39
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>не, для шарпа это вообще кекорректный код. это был типа псевдо-хаскель.


да нет же, я не о (*), а о "своём" (x, y) => x * y )))
Re[14]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 11:42
Оценка:
Здравствуйте, Mamut, Вы писали:

L>>Дабы не ходить вокруг да около, давай ты лучше сам расскажешь, чем так хороша поддержка ФП в javascript-е.


M>Стоп. В роли обвинения выступешь ты. Пока что от тебя было:

M>- аяяяй, синтаксис (к поддержке ФВП не имеет отношения)
M>- аяяяй, нет стандартной библиотеки (к поддержке ФВП не имеет отношения)

Гм. Синткасис и библиотеки не относятся. Что же тогда относится-то?
Re[16]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 11:45
Оценка:
Здравствуйте, Mamut, Вы писали:

Ц>>>и то, появилось не сразу

L>>И что с того, в js аналогов и сейчас нет

M>Есть. Там где надо (в jQuery, например)


уныло там все с этим.

L>>хуже. отвратительный синтаксис лямб приводит к нечитаемому коду. и программист, который заботится о поддерживаемости своего кода, трижды подумает прежде чем станет писать в функциональном стиле на js-е.


M>Странно, миллионы программистов используют ФП в JS и не парятся, а Lloyd трижды думает


M>*ушел писать при помощи насквозь функционального jQuery...*


jQuery исползуют в большинстве своем из-за удобного синтаксиса селекоторов, а не из-за того, что он "функционален". выброси оттуда селекторы и миллионы программистов сразу куда-то испарятся.
Re[8]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 11:48
Оценка:
Здравствуйте, Цыба, Вы писали:

Ц>никогда бы не согласился использовать сишарп на клиенте


почему?
Re[15]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 11:55
Оценка:
L>>>Дабы не ходить вокруг да около, давай ты лучше сам расскажешь, чем так хороша поддержка ФП в javascript-е.

M>>Стоп. В роли обвинения выступешь ты. Пока что от тебя было:

M>>- аяяяй, синтаксис (к поддержке ФВП не имеет отношения)
M>>- аяяяй, нет стандартной библиотеки (к поддержке ФВП не имеет отношения)

L>Гм. Синткасис и библиотеки не относятся. Что же тогда относится-то?


Для полноценной поддержки ФП языку нужно что? (это вопрос «на засыпку»)

Синтаксис в стиле (x, y) -> return_value? Это все равно, как сказать, что для поддержки ООП обязательно нужнен С-подобный синтаксис.

Стандартная библиотека? Сорри, но только в С++ стандартная библиотека включена в спецификацию языка. От отсутсвия Prelude Haskell не становится менее функциональным. Чем ФП в C# лучше, чем в JS ты так и не ответил.


dmitriid.comGitHubLinkedIn
Re[17]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 12:02
Оценка:
Ц>>>>и то, появилось не сразу
L>>>И что с того, в js аналогов и сейчас нет

M>>Есть. Там где надо (в jQuery, например)


L>уныло там все с этим.


Нормально. Не больше и не меньше, чем нужно.

// http://erlanger.ru/lib/js/init.js
$('span.rss-url').each(
        function(){
            var url = $(this).html();
            var parent = $(this).parent();
            var feed = new google.feeds.Feed(url);

            feed.load(function(result){
                           //что-то там
            });
        }
    );
    
    $('pre').filter(
            function(){
                return $(this).attr('class') == '';
            }
        ).addClass('brush: plain');



сплошная функциональщина.


L>>>хуже. отвратительный синтаксис лямб приводит к нечитаемому коду. и программист, который заботится о поддерживаемости своего кода, трижды подумает прежде чем станет писать в функциональном стиле на js-е.


M>>Странно, миллионы программистов используют ФП в JS и не парятся, а Lloyd трижды думает


M>>*ушел писать при помощи насквозь функционального jQuery...*


L>jQuery исползуют в большинстве своем из-за удобного синтаксиса селекоторов, а не из-за того, что он "функционален". выброси оттуда селекторы и миллионы программистов сразу куда-то испарятся.


Какая разница? Функциональный подход там спокойно себе есть. Даже в банальном
body.onload = function(){
    // что-то там
};

он был N лет.

миллионы программистов используют ФП в JS и не парятся, а Lloyd трижды думает



dmitriid.comGitHubLinkedIn
Re[16]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 12:04
Оценка:
Здравствуйте, Mamut, Вы писали:

L>>Гм. Синткасис и библиотеки не относятся. Что же тогда относится-то?


M>Для полноценной поддержки ФП языку нужно что? (это вопрос «на засыпку»)


Считай, что я засыпался. Если не сложно, ответь на вопрос.
Re[18]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 12:07
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Нормально. Не больше и не меньше, чем нужно.


уныло. сравни с тем же линком из шарпа.

M>сплошная функциональщина.


M>>>*ушел писать при помощи насквозь функционального jQuery...*


L>>jQuery исползуют в большинстве своем из-за удобного синтаксиса селекоторов, а не из-за того, что он "функционален". выброси оттуда селекторы и миллионы программистов сразу куда-то испарятся.


M>Какая разница? Функциональный подход там спокойно себе есть. Даже в банальном


Есть. Уверен, что там в коде jquery можно и goto найти. Но означает ли это, что миллионы программистов пользуются этой библиотекой из-за наличния в ней goto?
Re[17]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 12:12
Оценка:
L>>>Гм. Синткасис и библиотеки не относятся. Что же тогда относится-то?

M>>Для полноценной поддержки ФП языку нужно что? (это вопрос «на засыпку»)


L>Считай, что я засыпался. Если не сложно, ответь на вопрос.


Вообще-то, всего лишь функций высшего порядка и functions as first-class objects Ах да, и рекурсия (спасибо википедии за напоминание)

Синтаксис вообще к этому не имеет никакого отноенния. map/fold/filter и т.п. ты сам сказал, что реализуется в библиотеке (и насквозь функциональный Haskell это подтверждает).


dmitriid.comGitHubLinkedIn
Re[19]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 12:18
Оценка:
M>>Нормально. Не больше и не меньше, чем нужно.

L>уныло. сравни с тем же линком из шарпа.


уныло. сравни с тем же Functional из Javascript'а Да хотя бы с тем же Prelude из Haskell'а

Ну что за ребячество?

M>>сплошная функциональщина.


M>>>>*ушел писать при помощи насквозь функционального jQuery...*


L>>>jQuery исползуют в большинстве своем из-за удобного синтаксиса селекоторов, а не из-за того, что он "функционален". выброси оттуда селекторы и миллионы программистов сразу куда-то испарятся.


M>>Какая разница? Функциональный подход там спокойно себе есть. Даже в банальном


L>Есть. Уверен, что там в коде jquery можно и goto найти. Но означает ли это, что миллионы программистов пользуются этой библиотекой из-за наличния в ней goto?


Нет. Повторю еще раз. В придуманном тобой мире в ФП-подход в javascripte мало кто использует («программист трижды подумает, ага»). В реальном мире его используют миллионы (иногда даже не догадываясь об это, кстати).


dmitriid.comGitHubLinkedIn
Re[18]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 12:22
Оценка:
Здравствуйте, Mamut, Вы писали:

L>>Считай, что я засыпался. Если не сложно, ответь на вопрос.


M>Вообще-то, всего лишь функций высшего порядка и functions as first-class objects Ах да, и рекурсия (спасибо википедии за напоминание)


Это как бы необходимое условие, чтобы язык имел право называться функциональным. Этим критериям js удовлетворяет, не спорю.

Когда я писал, что он хреново поддерживает ФП, я имел в виду, что писать в функциональном стиле на js неудобно и зачастую аналогичный императивный код выглядит лучше и понятнее. Причина этого неудобства, имхо, в громоздком синтаксисе лямбд и отсутствии стандартной библиотеки.
Re[20]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 12:26
Оценка:
Здравствуйте, Mamut, Вы писали:

L>>уныло. сравни с тем же линком из шарпа.


M>уныло. сравни с тем же Functional из Javascript'а Да хотя бы с тем же Prelude из Haskell'а


Спасибо, конечно, но зашивать "функции" в строки большого ума не надо. Этак и в С можно подключить интерпретатор питона.

M>Ну что за ребячество?


И в самом деле.

L>>Есть. Уверен, что там в коде jquery можно и goto найти. Но означает ли это, что миллионы программистов пользуются этой библиотекой из-за наличния в ней goto?


M>Нет. Повторю еще раз. В придуманном тобой мире в ФП-подход в javascripte мало кто использует («программист трижды подумает, ага»). В реальном мире его используют миллионы (иногда даже не догадываясь об это, кстати).


Повторю еще раз. jQuery в реальном случае используют из-за удобных селекторов, а не из-за наличия в нем ФП-подхода.
Re[21]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 12:30
Оценка:
L>>>уныло. сравни с тем же линком из шарпа.

M>>уныло. сравни с тем же Functional из Javascript'а Да хотя бы с тем же Prelude из Haskell'а


L>Спасибо, конечно, но зашивать "функции" в строки большого ума не надо. Этак и в С можно подключить интерпретатор питона.


And all these functions accept strings, such as 'x -> x+1', 'x+1', or '+1' as synonyms for the more verbose function(x) {return x+1}.


Ты не поверишь, но обыкновенные функции он тоже принимает.

L>>>Есть. Уверен, что там в коде jquery можно и goto найти. Но означает ли это, что миллионы программистов пользуются этой библиотекой из-за наличния в ней goto?


M>>Нет. Повторю еще раз. В придуманном тобой мире в ФП-подход в javascripte мало кто использует («программист трижды подумает, ага»). В реальном мире его используют миллионы (иногда даже не догадываясь об это, кстати).


L>Повторю еще раз. jQuery в реальном случае используют из-за удобных селекторов, а не из-за наличия в нем ФП-подхода.


Повторю в третий раз, уже другими словами. Даже без jQuery функциональщина в JS ыла, есть и будет.


dmitriid.comGitHubLinkedIn
Re[22]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 12:35
Оценка:
Здравствуйте, Mamut, Вы писали:

L>>Спасибо, конечно, но зашивать "функции" в строки большого ума не надо. Этак и в С можно подключить интерпретатор питона.


M>

M>And all these functions accept strings, such as 'x -> x+1', 'x+1', or '+1' as synonyms for the more verbose function(x) {return x+1}.


M>Ты не поверишь, но обыкновенные функции он тоже принимает.


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

M>>>Нет. Повторю еще раз. В придуманном тобой мире в ФП-подход в javascripte мало кто использует («программист трижды подумает, ага»). В реальном мире его используют миллионы (иногда даже не догадываясь об это, кстати).


L>>Повторю еще раз. jQuery в реальном случае используют из-за удобных селекторов, а не из-за наличия в нем ФП-подхода.


M>Повторю в третий раз, уже другими словами. Даже без jQuery


Ок. Согласился-таки, что jQuery ты приплел не в тему. Уже лучше.

M>функциональщина в JS ыла, есть и будет.


С этим никто и не соприт. Я писал, что она там хреновая, а значит она там-таки есть.
Re[7]: Идеальный веб
От: NorthDragon Россия  
Дата: 26.05.10 12:36
Оценка:
V>А вот если ты вдруг хочешь скопировать этот документ на какое-то третье устройство — тут-то и оказывается, что хорошо бы это был файл. Или еще лучше — коллекцию своих документов (естественным образом организовываемую в папку) — но то место, куда ты это копируешь, не понимает папок в смысле твоего приложения по работе с документами (кстати, совершенно реальный случай с иТюнс)

А что значит скопировать?

Твои документы должны быть доступны только тебе на всех устройствах которыми ты пользуешься,
ровно в том виде и версии, которые ты оставил в последний раз.
Re[19]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 12:36
Оценка:
L>Когда я писал, что он хреново поддерживает ФП, я имел в виду, что писать в функциональном стиле на js неудобно и зачастую аналогичный императивный код выглядит лучше и понятнее. Причина этого неудобства, имхо, в громоздком синтаксисе лямбд и отсутствии стандартной библиотеки.

Насчет громоздкости. Это, скорее, во благо, чем во зло.

Потому что чем отличается лямбда от функции? Да ничем, абсолютно. При этом в C#, например, они используют абсолютно разный синтаксис.

В JS лямбды/анонимные функции используются повсеместно (примеры я уже приводил), наравне с обычными функциями. Зачем им другой синтаксис в таких условиях — непонятно.


dmitriid.comGitHubLinkedIn
Re[12]: Идеальный веб
От: Цыба Украина  
Дата: 26.05.10 12:37
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Чем? Если брать практические применения, то скорее даже хуже.


эээ, я, наверно, не совсем то имел в виду. возьмём практический подход, например, к JSLINQ. фильтрация следующим образом, вроде, более-менее читаема:

var filter = function(object) {
    return object.weight > 10;
};
var objectsByClassName = JSLINQ(visibleObjects).Where(filter).ToArray();


тем не менее, я не нуждаюсь на самом деле в объекте filter ради читаемости. мне он не нравится. давайте обойдём его стороной:

var objectsByClassName = JSLINQ(visibleObjects)
    .Where(function(object) { return object.weight > 10; })
    .ToArray();


каша, согласитесь(*). а вот если бы лямбды были бы попроще:

var objectsByClassName = JSLINQ(visibleObjects)
    .Where(object => object.weight > 10)
    .ToArray();


читаемо? да, уже значительно лучше




(*) дефолтный автоформаттер того же Intellij Idea уродливо форматирует это выражение так, впрочем подобное форматирование применяется повсеместно:

var objectsByClassName = JSLINQ(visibleObjects).Where(function(object) {
    return object.weight > 10;
}).ToArray();
Re[23]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 12:37
Оценка:
M>>функциональщина в JS ыла, есть и будет.
L>С этим никто и не соприт. Я писал, что она там хреновая, а значит она там-таки есть.

Причем хреновость у тебя упирается только в синтаксис и библиотеки. Это несерьезно


dmitriid.comGitHubLinkedIn
Re[9]: Идеальный веб
От: Цыба Украина  
Дата: 26.05.10 12:40
Оценка:
Здравствуйте, Lloyd, Вы писали:

Ц>>никогда бы не согласился использовать сишарп на клиенте


L>почему?


я просто полюбил javascript и незаметную на первый взгляд его мощь
Re[13]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 12:43
Оценка:
Здравствуйте, Цыба, Вы писали:

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


M>>Чем? Если брать практические применения, то скорее даже хуже.


Ц>эээ, я, наверно, не совсем то имел в виду. возьмём практический подход, например, к JSLINQ. фильтрация следующим образом, вроде, более-менее читаема:


Ц>
var filter = function(object) {
Ц>    return object.weight > 10;
Ц>};
Ц>var objectsByClassName = JSLINQ(visibleObjects).Where(filter).ToArray();


Ц>тем не менее, я не нуждаюсь на самом деле в объекте filter ради читаемости. мне он не нравится. давайте обойдём его стороной:


Ц>
var objectsByClassName = JSLINQ(visibleObjects)
Ц>    .Where(function(object) { return object.weight > 10; })
Ц>    .ToArray();


Ц>каша, согласитесь(*). а вот если бы лямбды были бы попроще:


Ц>
var objectsByClassName = JSLINQ(visibleObjects)
Ц>    .Where(object => object.weight > 10)
Ц>    .ToArray();


Ц>читаемо? да, уже значительно лучше



верно, но: http://rsdn.ru/forum/flame.comp/3821474.1.aspx
Автор: Mamut
Дата: 26.05.10





Ц>(*) дефолтный автоформаттер того же Intellij Idea уродливо форматирует это выражение так, впрочем подобное форматирование применяется повсеместно:


Ц>
var objectsByClassName = JSLINQ(visibleObjects).Where(function(object) {
Ц>    return object.weight > 10;
Ц>}).ToArray();



я тоже так форматирую


dmitriid.comGitHubLinkedIn
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.