Re[8]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 08:37
Оценка: 1 (1)
YKU>>Ну, если вы хорошо так понимаете JS, обьясните чего у него хорошего. По сравнению с C#, например.

Ц>пынць, готово, приехали имея опыт разработки и на том и на другом, могу с уверенностью заявить, что люблю как шарп на сервере так и джаваскрипт на клиенте более того, никогда бы не согласился использовать сишарп на клиенте (за исключением сильверлайта разве), а вот на сервере какой-то бы джаваскрипт.нет я бы, наверное, хотел попробовать


Для этго есть http://nodejs.org/ Прчем его уже даже кое-где используют


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

L>>Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.


M>Что в нем громоздкого и предлагается взамен?


Сравни с тем же C#-ом или Haskell-ем. Земля и небо.

M>Не лямбдами только жива императивщина


Про лямбды я писал в контексте функциональщины, императивщина тут непричем.
Re[9]: Идеальный веб
От: Цыба Украина  
Дата: 26.05.10 08:49
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Для этго есть http://nodejs.org/ Прчем его уже даже кое-где используют


каюсь, не знал. я всегда, визуально встречая упоминание о node.js, думал, что это очередной клиентский фреймворк, какой-нибудь джейквери-киллер шейм он ми спасибо, интересно
Re[9]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 09:01
Оценка:
L>>>Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.

M>>Что в нем громоздкого и предлагается взамен?


L>Сравни с тем же C#-ом или Haskell-ем. Земля и небо.


Что сравнивать?


M>>Не лямбдами только жива императивщина


L>Про лямбды я писал в контексте функциональщины, императивщина тут непричем.


Сорри, хотел написать функциональщина. Вернемся к изначальному посылу:

Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.


С каких пор синтаксис относится к поддержке ФП?


\x y -> x*y

(x, y) => x*y

function(x, y){ return x*y }


различаются только синтаксисом.


В коде различия становятся вообще достаточно слабоотличимы

    firstSmallNumbers = takeWhile (\x -> x >= index) [1..20]
var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);
var firstSmallNumbers = numbers.TakeWhile(function(n, index){ return n >= index});



Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —


function b(x, y) { return x*y; }

var a = b;

var c = function(x, y){ return x*y; }


a(1, 2);
b(1, 2);
c(1, 2);


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

var c = function(x, y){ return x*y; }


a вот что-то типа
var c = (x, y) => x * y;

было бы лучше
Re[10]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 10:03
Оценка:
Здравствуйте, Mamut, Вы писали:

L>>Сравни с тем же C#-ом или Haskell-ем. Земля и небо.


M>Что сравнивать?


Синтаксис лямбд.

M>Сорри, хотел написать функциональщина. Вернемся к изначальному посылу:

M>

M>Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.


M>С каких пор синтаксис относится к поддержке ФП?


M>

M>\x y -> x*y

M>(x, y) => x*y

M>function(x, y){ return x*y }
M>


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>


Да, у этого чудесного функционального языка еще и стандартной библиотеки работы с функциями нет. Действительно, самый замечательный функциональный язык.

M>Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —


Затем, зачем я и писал — чтобы поддежка ФП была менее хреновой. Ты не согласен с тем, что поддержка ФП в шарпе/хаскеле лучше?
Re[11]: Идеальный веб
От: Цыба Украина  
Дата: 26.05.10 10:22
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Да, у этого чудесного функционального языка еще и стандартной библиотеки работы с функциями нет.


библиотеки или средств? и если да, то каких?
Re[12]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 10:52
Оценка:
Здравствуйте, Цыба, Вы писали:

L>>Да, у этого чудесного функционального языка еще и стандартной библиотеки работы с функциями нет.


Ц>библиотеки или средств?


ответ — строчкой выше

Ц>и если да,


что "да"?

Ц>то каких?


да хотя бы банальных map-ов, fold-ов, filter-ов
Re[9]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 10:54
Оценка:
L>>>Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.

M>>Что в нем громоздкого и предлагается взамен?


L>Сравни с тем же C#-ом или Haskell-ем. Земля и небо.


Что сравнивать?


M>>Не лямбдами только жива императивщина


L>Про лямбды я писал в контексте функциональщины, императивщина тут непричем.


Сорри, хотел написать функциональщина. Вернемся к изначальному посылу:

Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.


С каких пор синтаксис относится к поддержке ФП?


\x y -> x*y

(x, y) => x*y

function(x, y){ return x*y }


различаются только синтаксисом.


В коде различия становятся вообще достаточно слабоотличимы

    firstSmallNumbers = takeWhile (\x -> x >= index) [1..20]
var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);
var firstSmallNumbers = numbers.TakeWhile(function(n, index){ return n >= index});



Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —


function b(x, y) { return x*y; }

var a = b;

var c = function(x, y){ return x*y; }


a(1, 2);
b(1, 2);
c(1, 2);




А когда берем практический Javascript, то смысл от сокращения символов для анонимных функций/лямбд вообще ускользает:
http://cliframework.com/app.js
http://www.arcinspirations.com/global/scripts/topstrip.js
и т.п.
$(document).ready()


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

Ц>a вот что-то типа

Ц>
Ц>var c = (x, y) => x * y;
Ц>

Ц>было бы лучше

а то и просто var c = (*);
Re[11]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 10:57
Оценка:
Ц>
Ц>var c = function(x, y){ return x*y; }
Ц>


Ц>a вот что-то типа

Ц>
Ц>var c = (x, y) => x * y;
Ц>

Ц>было бы лучше

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


dmitriid.comGitHubLinkedIn
Re[11]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 11:02
Оценка:
L>>>Сравни с тем же C#-ом или Haskell-ем. Земля и небо.
M>>Что сравнивать?
L>Синтаксис лямбд.

Что это даст?

M>>Сорри, хотел написать функциональщина. Вернемся к изначальному посылу:

M>>

M>>Да хреновая у него поддержка функциональщины. С таким громоздким синтаксисом "лямбд" уж проще циклами все писать.


M>>С каких пор синтаксис относится к поддержке ФП?


M>>

M>>\x y -> x*y

M>>(x, y) => x*y

M>>function(x, y){ return x*y }
M>>


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 знаю.


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

L>что "да"?


имелось в виду "если нет стандартной библиотеки". я провтыкал, извините

L>да хотя бы банальных map-ов, fold-ов, filter-ов


у C#, который здесь не раз упоминали, тоже нет ничего такого по сути, зато есть у .NET/LINQ. и то, появилось не сразу
все эти мэпы, фолды и фильтры просто реализуемы с помощью средств самого JavaScript
и если хуже с его стандартными библиотеками, то язык сам по себе от этого совсем не хуже

о хаскеле ничего не скажу, поскольку не имею опыта работы с ним
Re[12]: Идеальный веб
От: Цыба Украина  
Дата: 26.05.10 11:13
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>а то и просто var c = (*);


это не могу уже знать, но подозреваю, что это просто ссылка на функцию умножения с шарпа просто взял, поскольку почти своё-родное
Re[12]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 11:16
Оценка:
Здравствуйте, Mamut, Вы писали:

L>>>>Сравни с тем же C#-ом или Haskell-ем. Земля и небо.

M>>>Что сравнивать?
L>>Синтаксис лямбд.

M>Что это даст?


Более чистый и читаемый код, что же еще.

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


M>Как это относится к:

M>- поддержке ФП
M>- синтаксису?

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

M>>>Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —


L>>Затем, зачем я и писал — чтобы поддежка ФП была менее хреновой. Ты не согласен с тем, что поддержка ФП в шарпе/хаскеле лучше?


M>Чем лучше? Скажем, в том же C#'е, про Haskell знаю.


Чем в javascript.
Re[14]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 11:22
Оценка:
Здравствуйте, Цыба, Вы писали:

L>>да хотя бы банальных map-ов, fold-ов, filter-ов


Ц>у C#, который здесь не раз упоминали, тоже нет ничего такого по сути, зато есть у .NET/LINQ.


А они (C# и .NET/LINQ) существуют отдельно? Ссылочку не подкинете,

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


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

Ц>все эти мэпы, фолды и фильтры просто реализуемы с помощью средств самого JavaScript


ну да, ну да. если уж на то пошло, то все тьюринг-полные языки эквивалентны и спорить дествительно не о чем.

Ц>и если хуже с его стандартными библиотеками, то язык сам по себе от этого совсем не хуже


хуже. отвратительный синтаксис лямб приводит к нечитаемому коду. и программист, который заботится о поддерживаемости своего кода, трижды подумает прежде чем станет писать в функциональном стиле на js-е.
Re[13]: Идеальный веб
От: Lloyd Россия  
Дата: 26.05.10 11:23
Оценка:
Здравствуйте, Цыба, Вы писали:

L>>а то и просто var c = (*);


Ц>это не могу уже знать, но подозреваю, что это просто ссылка на функцию умножения с шарпа просто взял, поскольку почти своё-родное


не, для шарпа это вообще кекорректный код. это был типа псевдо-хаскель.
Re[13]: Идеальный веб
От: Mamut Швеция http://dmitriid.com
Дата: 26.05.10 11:27
Оценка:
L>>>>>Сравни с тем же C#-ом или Haskell-ем. Земля и небо.
M>>>>Что сравнивать?
L>>>Синтаксис лямбд.

M>>Что это даст?


L>Более чистый и читаемый код, что же еще.


Не даст. Примеры я приводил. В яваскрипте анонимные функции/лямбды используются повсеместно, а не только для написания кортких однострочных мыслей. Что не мешает, естественно, использовать их и для достаточно коротких вещей.


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


M>>Как это относится к:

M>>- поддержке ФП
M>>- синтаксису?

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


Стоп. В роли обвинения выступешь ты. Пока что от тебя было:
— аяяяй, синтаксис (к поддержке ФВП не имеет отношения)
— аяяяй, нет стандартной библиотеки (к поддержке ФВП не имеет отношения)




M>>>>Учитывая, что JS лямбды — это частный случай ФВП вообще (и это правильно), то зачем для них требовать другого синтаксиса —


L>>>Затем, зачем я и писал — чтобы поддежка ФП была менее хреновой. Ты не согласен с тем, что поддержка ФП в шарпе/хаскеле лучше?


M>>Чем лучше? Скажем, в том же C#'е, про Haskell знаю.


L>Чем в javascript.


Почему я не удивлен?


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

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

Ц>>и если хуже с его стандартными библиотеками, то язык сам по себе от этого совсем не хуже


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


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

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


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

L>А они (C# и .NET/LINQ) существуют отдельно? Ссылочку не подкинете,


на практике — нет, но мы говорим именно о языках ведь? а если не существуют отдельно, я подозреваю, тогда и VB.NET значительно более функционален по своей природе, нежели JavaScript, куда там F# до бэйсика

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


снова же, существует готовый нестандартизированный JSLINQ, например, но речь не об этом

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


не спорю

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


я вчера, кстати, упоминал о том, что мне не нравится такой синтаксис лямбд. это сильно заметно при использовании того же JSLINQ, а если потом ещё и автоматически отформатировать исходный код, где вызываются .Where(), .Select() и прочее — все эти методы становятся, чего греха таить, жутко нечитабельными. я же говорю, что этот момент я бы сам хотел усовершенствовать
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.