powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем писать программы сложно и долго, когда можно просто и легко?
25 сообщений из 324, страница 12 из 13
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794047
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Статический контроль типов

Pascal is back?
F#гарантия функциональной чистоты, там, где надо.
Зачем это всё? Это же внутренние заморочки, язык ради языка, а не язык ради результата.
ZyK_BotaNну я выше сказал - макросы.
Макросы - это костыли, предназначенные только для увеличения читабельности (именно поэтому MASM так хорошо разошелся). В Си использовать макросы уже, вообще говоря, нет необходимости, а в JS - тем более, когда любой переменной можно хоть функцию присвоить. Есть препроцессоры и для JS (с макросами, отладочными выражениями и т.п.), но в большинстве случаев это аццкое излишество.
F#модули

Здесь согласен, JS (ES5) в теории сливает. Но лишь в теории. На практике почти все JS-рантаймы позволяют подгружать модули. Особенно выразительно это сделано в том же NodeJS.

В общем... это всё? Как-то сильно академично и до киллер-фич JS...

Сбалансированный набор расширяемых типов данных

Наличие ништячных событийно-ориентированных фреймворков (к примеру, на клиенте - jQuery, на сервере - NodeJS)

Богатая стандартная библиотека

Интеграция со стандартами передачи данных

Ну и, наконец, рантайм на 95% подключенных к интернету клиентских компьютеров и портативных устройств


...ну явно не дотягивает.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794062
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XF#Статический контроль типов

Pascal is back?

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

вот например, как на базе паскаля - реализовать статический контракт?
а на хаскеле можно:
http://www.rsdn.ru/forum/decl/4522924.aspx
Division XF#гарантия функциональной чистоты, там, где надо.
Зачем это всё? Это же внутренние заморочки, язык ради языка, а не язык ради результата.


нет, это очень важный момент

Division XZyK_BotaNну я выше сказал - макросы.
Макросы - это костыли, предназначенные только для увеличения читабельности (именно поэтому MASM так хорошо разошелся). В Си использовать макросы уже, вообще говоря, нет необходимости, а в JS - тем более, когда любой переменной можно хоть функцию присвоить. Есть препроцессоры и для JS (с макросами, отладочными выражениями и т.п.), но в большинстве случаев это аццкое излишество.


маркросы лиспа, и рядом с сишными не стояли. почитай PCL, елси хочешь понять о чем я
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794076
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNнет, это очень важный момент
Важный, опять же, для процесса, а не для результата.
Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794077
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaNнет, это очень важный момент
Важный, опять же, для процесса, а не для результата.
Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят?

на прошлой странице про это рассказывал:
12317895
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794078
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XZyK_BotaNнет, это очень важный момент
Важный, опять же, для процесса, а не для результата.

результата еще нужно добиться.

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

ну дак хаскель получше будет оптимизироваться, чем эти ваши динамичиские язычки
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794223
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
Division XZyK_BotaNнет, это очень важный момент
Важный, опять же, для процесса, а не для результата.
Как, кстати, в задрот-лэнгах с событийно-ориентированностью дела обстоят?

Ну получше чем в быдлоскриптах :). Оттуда даже постепенно в JS пытаются перетащить некоторые концепции
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794684
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
function getRepeats(list)
{
	var repeated = [];
	var items = {};
	list.forEach(function(val){
		if(items[val])
		{
			repeated.push(val);
			items[val]=0;
		}
		else items[val]=1;
		});
	return repeated;	
}



Интересно было бы посмотреть на реализацию и бенчмарки на хаскелиспах.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794752
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37794975
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

викибуки1. Получение остаточной процедуры.
2. Построение математического описания функций..
3. Определение формальной семантики языка программирования.
4. Описание динамических структур данных.
5. Автоматическое построение «значительной» части программы по описанию структур данных, которые обрабатываются создаваемой программой.
6. Доказательство наличия некоторого свойства программы.
7. Эквивалентная трансформация программ.
Все эти задачи достаточно легко решаются средствами функционального программирования, но практически неразрешимы в императивных языках.
Да. Интересный список. Особенно если учесть, что:
викибуки4. Описание динамических структур данных.
- ES5 весь построен на динамических структурах;
викибуки3. Определение формальной семантики языка программирования.
5. Автоматическое построение «значительной» части программы по описанию структур данных, которые обрабатываются создаваемой программой.
- то есть генерация парсеров, по сути. Во-первых, для этого есть специализированное семейство языков (yacc-подобные). Во-вторых... Вчера наткнулся на вот такую штуку . Похож на yacc и bison, но написан как модуль к nodeJS на чистом JS.

Озвучьте, пжалста, ниши применения оставшихся четырёх пунктов.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795018
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XОзвучьте, пжалста, ниши применения оставшихся четырёх пунктов.
Увы, увы... мои задачи слишком далеки от ФП. Я пожалуй использовал только XML-XSLT
для извлечение некоторых данных из XML документов но это была задача тоже весьма
далека от ФП.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795034
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division X- ES5 весь построен на динамических структурах;

По поводу ЕС5 - я вообще невкурсе что это такое.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795356
Division X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDivision X- ES5 весь построен на динамических структурах;

По поводу ЕС5 - я вообще невкурсе что это такое.
ES5 - ECMAScript 5. Стандарт Javascript, реализованный во всех нормальных браузерах и IE, начиная с 9, а также в stand-alone платформах а-ля nodeJS.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795591
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Division XНапример, по количеству затраченных на получение этого результата телодвижений.
вот чистота и позволяет затратить меньше телодвижений.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795668
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNDivision XНапример, по количеству затраченных на получение этого результата телодвижений.
вот чистота и позволяет затратить меньше телодвижений.
Да, но в ФП надо мозг напрячь немного. Для самого процесса разработки.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795682
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNпропущено...

вот чистота и позволяет затратить меньше телодвижений.
Да, но в ФП надо мозг напрячь немного. Для самого процесса разработки.

не, не напрячь. напрячь везде нужно.
нужно просто освоить.

и не за пару недель по мануалам освоить "еще один новый язык"(например хаскель), а таки пару лет учиться "функциональному программированию".
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795688
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795694
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а потом - наоборот. меньше напрягать мозги придется.

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

рассуждать о корркетности таких програм(и соответственно переделывать и рефакторить) - в разы проще.

да и писать с нуля - не сложно.


Division XЯсно, событийно-ориентированности без потусторонних библиотек там нету.

ага, и нету функций для описания гуя )))


ну это же отлично, что в языке нет лишнего, а все что нужно - берем в либах.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795698
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.

а склоько мне нужно, что-бы осилить прогу на брейнфаке?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795703
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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

используется для реализации рекурсии, в языках - где функции безымянные.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795716
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNmaytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.

а склоько мне нужно, что-бы осилить прогу на брейнфаке?вот кстати, как это выглядит на хаскеле:
Код: sql
1.
fix f = f (fix f)


неужели не читабельно?
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795719
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
более того, в хаскеле эта функция - бесполезна(так как там у функций могут быть имена), а значит для умения писать на фп языках, тебе нафиг не нужно уметь читать мою автоподпись.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795801
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNmaytonПо разному. Сколько мне нужно времени чтоб осилить твою авто-подпись с лямбдами - хер его знает?
Может 1 час. А может быть и за месяц неосилю. Смысл нужно схватывать быстро. На лету.

Это уж от человека зависит. Как задача Эйнштейна. Не всем дано её решить.

а склоько мне нужно, что-бы осилить прогу на брейнфаке?
Брейнфак я могу записать в столбик и разложить в директивы
наподобие ассемблера. Тоесть это ну.. вобщем не то.
ФП - другое дело. Тут для решения "чуйка" нужна.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795820
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNпропущено...


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

ну а лямбды, можно переписать на хаскеле )) и все будет просто, я выше привел аналог на хаскеле:
авторfix f = f (fix f)
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795823
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonZyK_BotaNпропущено...

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

и на каждом шагу - жалею что это не хаскель.

там где на хаскеле будет гибкое обобщенное решение в 5 строчек, на джаве решается либо копипастом на прау десятков строк.

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


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

но это не значит, что бизнес логику удобней на ооп-джаве писать, а не на хацкеле.
...
Рейтинг: 0 / 0
Зачем писать программы сложно и долго, когда можно просто и легко?
    #37795884
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNно это не значит, что бизнес логику удобней на ооп-джаве писать, а не на хацкеле.
Я уже 3 года лелею мечту об использовании LIsp в Oracle-технологиях. Но всё как-то ... то
времени нет. То знаний.
...
Рейтинг: 0 / 0
25 сообщений из 324, страница 12 из 13
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем писать программы сложно и долго, когда можно просто и легко?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]