|
|
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
F#Статический контроль типов Pascal is back? F#гарантия функциональной чистоты, там, где надо. Зачем это всё? Это же внутренние заморочки, язык ради языка, а не язык ради результата. ZyK_BotaNну я выше сказал - макросы. Макросы - это костыли, предназначенные только для увеличения читабельности (именно поэтому MASM так хорошо разошелся). В Си использовать макросы уже, вообще говоря, нет необходимости, а в JS - тем более, когда любой переменной можно хоть функцию присвоить. Есть препроцессоры и для JS (с макросами, отладочными выражениями и т.п.), но в большинстве случаев это аццкое излишество. F#модули Здесь согласен, JS (ES5) в теории сливает. Но лишь в теории. На практике почти все JS-рантаймы позволяют подгружать модули. Особенно выразительно это сделано в том же NodeJS. В общем... это всё? Как-то сильно академично и до киллер-фич JS... Сбалансированный набор расширяемых типов данных Наличие ништячных событийно-ориентированных фреймворков (к примеру, на клиенте - jQuery, на сервере - NodeJS) Богатая стандартная библиотека Интеграция со стандартами передачи данных Ну и, наконец, рантайм на 95% подключенных к интернету клиентских компьютеров и портативных устройств ...ну явно не дотягивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 00:31 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XF#Статический контроль типов Pascal is back? паскаль и рядом не стоял, я же выше говорил - "в хаскеле все базируется на системе типов." вот например, как на базе паскаля - реализовать статический контракт? а на хаскеле можно: http://www.rsdn.ru/forum/decl/4522924.aspx Division XF#гарантия функциональной чистоты, там, где надо. Зачем это всё? Это же внутренние заморочки, язык ради языка, а не язык ради результата. нет, это очень важный момент Division XZyK_BotaNну я выше сказал - макросы. Макросы - это костыли, предназначенные только для увеличения читабельности (именно поэтому MASM так хорошо разошелся). В Си использовать макросы уже, вообще говоря, нет необходимости, а в JS - тем более, когда любой переменной можно хоть функцию присвоить. Есть препроцессоры и для JS (с макросами, отладочными выражениями и т.п.), но в большинстве случаев это аццкое излишество. маркросы лиспа, и рядом с сишными не стояли. почитай PCL, елси хочешь понять о чем я ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 01:13 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNнет, это очень важный момент Важный, опять же, для процесса, а не для результата. Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 02:27 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaNнет, это очень важный момент Важный, опять же, для процесса, а не для результата. Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят? на прошлой странице про это рассказывал: 12317895 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 02:31 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaNнет, это очень важный момент Важный, опять же, для процесса, а не для результата. результата еще нужно добиться. и раз уже начали сравнивать языки, то процесс - важен. а то что, только быстродействие останется в качестве критерия? по чем еще "результат" можно оценивать? ну дак хаскель получше будет оптимизироваться, чем эти ваши динамичиские язычки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 02:33 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XZyK_BotaNнет, это очень важный момент Важный, опять же, для процесса, а не для результата. Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят? Ну получше чем в быдлоскриптах :). Оттуда даже постепенно в JS пытаются перетащить некоторые концепции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 09:38 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNна прошлой странице про это рассказывал: 12317895 Ясно, событийно-ориентированности без потусторонних библиотек там нету. В то время как в JS это - основа большинства, если не всех, рантаймов. ZyK_BotaNи раз уже начали сравнивать языки, то процесс - важен. а то что, только быстродействие останется в качестве критерия? по чем еще "результат" можно оценивать? Например, по количеству затраченных на получение этого результата телодвижений. Объему и компактности кода при сохранении читабельности, то бишь. Вот например, недавно в в этом же разделе решали задачу. На входе - вектор объектов любой длины. На выходе надо сформировать новый вектор, состоящий только из тех элементов, которые в исходном повторяются 2 или более раз. Вот этот вариант для 10 миллионов числовых значений от 0 до 1000 отрабатывает примерно за полсекунды: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Интересно было бы посмотреть на реализацию и бенчмарки на хаскелиспах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 12:26 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division X, ты допускаешь типичную ошибку. То бишь пытаешся воевать на своём поле и устраивать бенчмарки для поисков и прочих стебельков. Языки ФП в этом вообще не сильны. Да и никто не декларировал их силу и скорость в типично императивных вещах. Их сила в других задачах. Примерный список выглядит так. http://ru.wikibooks.org/wiki/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F/%D0%92%D0%B2%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F#.D0.A0.D0.B5.D1.88.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87.D0.B8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 12:44 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
mayton, викибуки1. Получение остаточной процедуры. 2. Построение математического описания функций.. 3. Определение формальной семантики языка программирования. 4. Описание динамических структур данных. 5. Автоматическое построение «значительной» части программы по описанию структур данных, которые обрабатываются создаваемой программой. 6. Доказательство наличия некоторого свойства программы. 7. Эквивалентная трансформация программ. Все эти задачи достаточно легко решаются средствами функционального программирования, но практически неразрешимы в императивных языках. Да. Интересный список. Особенно если учесть, что: викибуки4. Описание динамических структур данных. - ES5 весь построен на динамических структурах; викибуки3. Определение формальной семантики языка программирования. 5. Автоматическое построение «значительной» части программы по описанию структур данных, которые обрабатываются создаваемой программой. - то есть генерация парсеров, по сути. Во-первых, для этого есть специализированное семейство языков (yacc-подобные). Во-вторых... Вчера наткнулся на вот такую штуку . Похож на yacc и bison, но написан как модуль к nodeJS на чистом JS. Озвучьте, пжалста, ниши применения оставшихся четырёх пунктов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 13:36 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XОзвучьте, пжалста, ниши применения оставшихся четырёх пунктов. Увы, увы... мои задачи слишком далеки от ФП. Я пожалуй использовал только XML-XSLT для извлечение некоторых данных из XML документов но это была задача тоже весьма далека от ФП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 13:49 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division X- ES5 весь построен на динамических структурах; По поводу ЕС5 - я вообще невкурсе что это такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 13:58 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
maytonDivision X- ES5 весь построен на динамических структурах; По поводу ЕС5 - я вообще невкурсе что это такое. ES5 - ECMAScript 5. Стандарт Javascript, реализованный во всех нормальных браузерах и IE, начиная с 9, а также в stand-alone платформах а-ля nodeJS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 15:30 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
Division XНапример, по количеству затраченных на получение этого результата телодвижений. вот чистота и позволяет затратить меньше телодвижений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 16:45 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNDivision XНапример, по количеству затраченных на получение этого результата телодвижений. вот чистота и позволяет затратить меньше телодвижений. Да, но в ФП надо мозг напрячь немного. Для самого процесса разработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 17:13 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaNпропущено... вот чистота и позволяет затратить меньше телодвижений. Да, но в ФП надо мозг напрячь немного. Для самого процесса разработки. не, не напрячь. напрячь везде нужно. нужно просто освоить. и не за пару недель по мануалам освоить "еще один новый язык"(например хаскель), а таки пару лет учиться "функциональному программированию". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 17:19 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
По разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает? Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету. Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 17:21 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
а потом - наоборот. меньше напрягать мозги придется. как раз функциональная чистота - гарантирует что при тех же аргументах - тот же результ, и что после вызова ничто нигде не поменяет состояния. рассуждать о корркетности таких програм(и соответственно переделывать и рефакторить) - в разы проще. да и писать с нуля - не сложно. Division XЯсно, событийно-ориентированности без потусторонних библиотек там нету. ага, и нету функций для описания гуя ))) ну это же отлично, что в языке нет лишнего, а все что нужно - берем в либах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 17:23 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
maytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает? Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету. Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить. а склоько мне нужно, что-бы осилить прогу на брейнфаке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 17:24 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает? Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету. Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить. а склоько мне нужно, что-бы осилить прогу на брейнфаке?а вообще, это неподвижная точка: http://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%BF%D0%BE%D0%B4%D0%B2%D0%B8%D0%B6%D0%BD%D0%B0%D1%8F_%D1%82%D0%BE%D1%87%D0%BA%D0%B0 используется для реализации рекурсии, в языках - где функции безымянные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 17:26 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает? Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету. Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить. а склоько мне нужно, что-бы осилить прогу на брейнфаке?вот кстати, как это выглядит на хаскеле: Код: sql 1. неужели не читабельно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 17:33 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
более того, в хаскеле эта функция - бесполезна(так как там у функций могут быть имена), а значит для умения писать на фп языках, тебе нафиг не нужно уметь читать мою автоподпись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 17:34 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNmaytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает? Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету. Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить. а склоько мне нужно, что-бы осилить прогу на брейнфаке? Брейнфак я могу записать в столбик и разложить в директивы наподобие ассемблера. Тоесть это ну.. вобщем не то. ФП - другое дело. Тут для решения "чуйка" нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 18:09 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaNпропущено... а склоько мне нужно, что-бы осилить прогу на брейнфаке? Брейнфак я могу записать в столбик и разложить в директивы наподобие ассемблера. Тоесть это ну.. вобщем не то. ФП - другое дело. Тут для решения "чуйка" нужна. ну а лямбды, можно переписать на хаскеле )) и все будет просто, я выше привел аналог на хаскеле: авторfix f = f (fix f) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 18:19 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
maytonZyK_BotaNпропущено... вот чистота и позволяет затратить меньше телодвижений. Да, но в ФП надо мозг напрячь немного. Для самого процесса разработки. я пишу на работе - на джаве. и на каждом шагу - жалею что это не хаскель. там где на хаскеле будет гибкое обобщенное решение в 5 строчек, на джаве решается либо копипастом на прау десятков строк. либо делается гибкое решение, с развесистой архитектурой, и разенесенной логикой по классом(тоже пару десяток строк, но я предпочитаю копипаст(код прямолинейней и понятней). а то что ты выше приводил список задач, которые решают на ФП языках, дак это просто так сложилось исторически, на ФП языках работают ученые, а ученые не бизнеслогику пишут, а решают задачи того рода, которые ты привел. но это не значит, что бизнес логику удобней на ооп-джаве писать, а не на хацкеле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 18:24 |
|
||
|
Зачем писать программы сложно и долго, когда можно просто и легко?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNно это не значит, что бизнес логику удобней на ооп-джаве писать, а не на хацкеле. Я уже 3 года лелею мечту об использовании LIsp в Oracle-технологиях. Но всё как-то ... то времени нет. То знаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2012, 18:56 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37795884&tid=1342261]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 455ms |

| 0 / 0 |
