YKU>>Ну, если вы хорошо так понимаете JS, обьясните чего у него хорошего. По сравнению с C#, например.
Ц>пынць, готово, приехали имея опыт разработки и на том и на другом, могу с уверенностью заявить, что люблю как шарп на сервере так и джаваскрипт на клиенте более того, никогда бы не согласился использовать сишарп на клиенте (за исключением сильверлайта разве), а вот на сервере какой-то бы джаваскрипт.нет я бы, наверное, хотел попробовать
Здравствуйте, Mamut, Вы писали:
L>>Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.
M>Что в нем громоздкого и предлагается взамен?
Сравни с тем же C#-ом или Haskell-ем. Земля и небо.
M>Не лямбдами только жива императивщина
Про лямбды я писал в контексте функциональщины, императивщина тут непричем.
каюсь, не знал. я всегда, визуально встречая упоминание о node.js, думал, что это очередной клиентский фреймворк, какой-нибудь джейквери-киллер шейм он ми спасибо, интересно
L>>>Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.
M>>Что в нем громоздкого и предлагается взамен?
L>Сравни с тем же C#-ом или Haskell-ем. Земля и небо.
Что сравнивать?
M>>Не лямбдами только жива императивщина
L>Про лямбды я писал в контексте функциональщины, императивщина тут непричем.
Сорри, хотел написать функциональщина. Вернемся к изначальному посылу:
Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.
M>В коде различия становятся вообще достаточно слабоотличимы
M>
M> firstSmallNumbers = takeWhile (\x -> x >= index) [1..20]
M>var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);
M>var firstSmallNumbers = numbers.TakeWhile(function(n, index){ return n >= index});
M>
Да, у этого чудесного функционального языка еще и стандартной библиотеки работы с функциями нет. Действительно, самый замечательный функциональный язык.
M>Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —
Затем, зачем я и писал — чтобы поддежка ФП была менее хреновой. Ты не согласен с тем, что поддержка ФП в шарпе/хаскеле лучше?
Здравствуйте, Цыба, Вы писали:
L>>Да, у этого чудесного функционального языка еще и стандартной библиотеки работы с функциями нет.
Ц>библиотеки или средств?
L>>>Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.
M>>Что в нем громоздкого и предлагается взамен?
L>Сравни с тем же C#-ом или Haskell-ем. Земля и небо.
Что сравнивать?
M>>Не лямбдами только жива императивщина
L>Про лямбды я писал в контексте функциональщины, императивщина тут непричем.
Сорри, хотел написать функциональщина. Вернемся к изначальному посылу:
Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.
M>>различаются только синтаксисом.
M>>В коде различия становятся вообще достаточно слабоотличимы
M>>
M>> firstSmallNumbers = takeWhile (\x -> x >= index) [1..20]
M>>var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);
M>>var firstSmallNumbers = numbers.TakeWhile(function(n, index){ return n >= index});
M>>
L>Да, у этого чудесного функционального языка еще и стандартной библиотеки работы с функциями нет. Действительно, самый замечательный функциональный язык.
Как это относится к:
— поддержке ФП
— синтаксису?
M>>Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —
L>Затем, зачем я и писал — чтобы поддежка ФП была менее хреновой. Ты не согласен с тем, что поддержка ФП в шарпе/хаскеле лучше?
Чем лучше? Скажем, в том же C#'е, про Haskell знаю.
имелось в виду "если нет стандартной библиотеки". я провтыкал, извините
L>да хотя бы банальных map-ов, fold-ов, filter-ов
у C#, который здесь не раз упоминали, тоже нет ничего такого по сути, зато есть у .NET/LINQ. и то, появилось не сразу
все эти мэпы, фолды и фильтры просто реализуемы с помощью средств самого JavaScript
и если хуже с его стандартными библиотеками, то язык сам по себе от этого совсем не хуже
о хаскеле ничего не скажу, поскольку не имею опыта работы с ним
Здравствуйте, Mamut, Вы писали:
L>>>>Сравни с тем же C#-ом или Haskell-ем. Земля и небо. M>>>Что сравнивать? L>>Синтаксис лямбд.
M>Что это даст?
Более чистый и читаемый код, что же еще.
L>>Да, у этого чудесного функционального языка еще и стандартной библиотеки работы с функциями нет. Действительно, самый замечательный функциональный язык.
M>Как это относится к: M>- поддержке ФП M>- синтаксису?
Дабы не ходить вокруг да около, давай ты лучше сам расскажешь, чем так хороша поддержка ФП в javascript-е.
M>>>Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —
L>>Затем, зачем я и писал — чтобы поддежка ФП была менее хреновой. Ты не согласен с тем, что поддержка ФП в шарпе/хаскеле лучше?
M>Чем лучше? Скажем, в том же C#'е, про Haskell знаю.
Здравствуйте, Цыба, Вы писали:
L>>да хотя бы банальных map-ов, fold-ов, filter-ов
Ц>у C#, который здесь не раз упоминали, тоже нет ничего такого по сути, зато есть у .NET/LINQ.
А они (C# и .NET/LINQ) существуют отдельно? Ссылочку не подкинете,
Ц>и то, появилось не сразу
И что с того, в js аналогов и сейчас нет
Ц>все эти мэпы, фолды и фильтры просто реализуемы с помощью средств самого JavaScript
ну да, ну да. если уж на то пошло, то все тьюринг-полные языки эквивалентны и спорить дествительно не о чем.
Ц>и если хуже с его стандартными библиотеками, то язык сам по себе от этого совсем не хуже
хуже. отвратительный синтаксис лямб приводит к нечитаемому коду. и программист, который заботится о поддерживаемости своего кода, трижды подумает прежде чем станет писать в функциональном стиле на js-е.
Здравствуйте, Цыба, Вы писали:
L>>а то и просто var c = (*);
Ц>это не могу уже знать, но подозреваю, что это просто ссылка на функцию умножения с шарпа просто взял, поскольку почти своё-родное
не, для шарпа это вообще кекорректный код. это был типа псевдо-хаскель.
L>>>>>Сравни с тем же C#-ом или Haskell-ем. Земля и небо. M>>>>Что сравнивать? L>>>Синтаксис лямбд.
M>>Что это даст?
L>Более чистый и читаемый код, что же еще.
Не даст. Примеры я приводил. В яваскрипте анонимные функции/лямбды используются повсеместно, а не только для написания кортких однострочных мыслей. Что не мешает, естественно, использовать их и для достаточно коротких вещей.
L>>>Да, у этого чудесного функционального языка еще и стандартной библиотеки работы с функциями нет. Действительно, самый замечательный функциональный язык.
M>>Как это относится к: M>>- поддержке ФП M>>- синтаксису?
L>Дабы не ходить вокруг да около, давай ты лучше сам расскажешь, чем так хороша поддержка ФП в javascript-е.
Стоп. В роли обвинения выступешь ты. Пока что от тебя было:
— аяяяй, синтаксис (к поддержке ФВП не имеет отношения)
— аяяяй, нет стандартной библиотеки (к поддержке ФВП не имеет отношения)
M>>>>Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —
L>>>Затем, зачем я и писал — чтобы поддежка ФП была менее хреновой. Ты не согласен с тем, что поддержка ФП в шарпе/хаскеле лучше?
M>>Чем лучше? Скажем, в том же C#'е, про Haskell знаю.
L>Чем в javascript.
Ц>>и то, появилось не сразу L>И что с того, в js аналогов и сейчас нет
Есть. Там где надо (в jQuery, например)
Ц>>и если хуже с его стандартными библиотеками, то язык сам по себе от этого совсем не хуже
L>хуже. отвратительный синтаксис лямб приводит к нечитаемому коду. и программист, который заботится о поддерживаемости своего кода, трижды подумает прежде чем станет писать в функциональном стиле на js-е.
Странно, миллионы программистов используют ФП в JS и не парятся, а Lloyd трижды думает
*ушел писать при помощи насквозь функционального jQuery...*
Здравствуйте, Lloyd, Вы писали:
L>А они (C# и .NET/LINQ) существуют отдельно? Ссылочку не подкинете,
на практике — нет, но мы говорим именно о языках ведь? а если не существуют отдельно, я подозреваю, тогда и VB.NET значительно более функционален по своей природе, нежели JavaScript, куда там F# до бэйсика
L>И что с того, в js аналогов и сейчас нет
снова же, существует готовый нестандартизированный JSLINQ, например, но речь не об этом
L>ну да, ну да. если уж на то пошло, то все тьюринг-полные языки эквивалентны и спорить дествительно не о чем.
не спорю
L>хуже. отвратительный синтаксис лямб приводит к нечитаемому коду. и программист, который заботится о поддерживаемости своего кода, трижды подумает прежде чем станет писать в функциональном стиле на js-е.
я вчера, кстати, упоминал о том, что мне не нравится такой синтаксис лямбд. это сильно заметно при использовании того же JSLINQ, а если потом ещё и автоматически отформатировать исходный код, где вызываются .Where(), .Select() и прочее — все эти методы становятся, чего греха таить, жутко нечитабельными. я же говорю, что этот момент я бы сам хотел усовершенствовать