Re[6]: Почему у Nemerle нет будущего
От: граммофон  
Дата: 12.08.06 00:10
Оценка: +2
Здравствуйте, Павел Кузнецов, Вы писали:


VD>>Кстати, популярность Яху была на пике именно в его времена, а как Грэхем ушел, так начала падать. Хотя все это домыслы.


ПК>А, может, и как только популярность начала падать, так Грэхем и ушел. Кто ж его знает...


Думаю, ни то ни другое — Грэм с Моррисом ушли, чтобы создать свою компанию и получить независимость, которую они потеряли, слившись с Яху.
Продали свои акции и создали Y Combinator.

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

Они зависят, только когда компания маленькая и линейка продуктов тоже маленькая — так было с Грэмом и Моррисом до слияния с Яху и к этому они в результате вернулись. Сам Грэм неоднократно об этом писал.
прежде чем понять рекурсию, необходимо понять рекурсию.
Re[2]: Почему у Nemerle нет будущего
От: CrazyPit  
Дата: 12.08.06 14:13
Оценка:
Здравствуйте, CopyPaste, Вы писали:

....


Виталик?
Re[6]: Почему у Nemerle нет будущего
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.08.06 16:19
Оценка: +1
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>А, может, и как только популярность начала падать, так Грэхем и ушел. Кто ж его знает...


Возможно. Я это говорю к тому, что не стоит такие домыслы использовать в качестве аргументации против макросов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Почему у Nemerle нет будущего
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.08.06 16:19
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Т.е. на лиспе писать без макросов смысла нет, он от тебя ускользает. Что характерно, я с тобой в этом согласен. Теперь объясни мне, согласному с тобой, какой смысл писать на Немерле, если макрописателей придется (от греха) ограничивать.


Смысл очень простой. И он не один.
1. Немерле сам по себе неплохой язык. В дотнет он интегрирован просто изумительно. Вот МС сейчас готовит выпуск третьего фрэймворка которы на самом деле является навороченными библиотеками в области комуникации, GUI, воркфлоу и т.п. Немерле позволяет использовать все это из функционального языка без каких либо натяжек.
2. Мокросы могут создаваться опытными членами команды (которых обычо бывает очень не много, так как он редко уживаются с такими же как они ), документироваться, тестироваться и отдаваться менее опытным программистам для использования.
3. Можно использовать готовые макро-библиотеки, например, O/R Mappper.

G>ЗЫ: Погубить эта возможность Немерле ИМХО не может. Он еще не дошел до того состояния, чтобы его что-то вообще могло "погубить".


+1
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 20:48
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>if, for, foreach, &&, ||... и многое другое в немерле макросы. Что в них не понятно?


В них и не должно быть что-либо понятно. Макросы это особенность реализации и не более. 99% программистов не вникают в такие вещи.

WH>А может не понятен код типа $"var1 = $var1"? Так лично я его понял даже не заглядывая в документацию по немерле.


Вобще-то да, не понятен. Я сам такое видел только в PHP (кажется есть и в перле, но я его не знаю). Если бы не знал PHP, то вообще бы не понял что это такое.

WH>И что касается памяти человека: После определенной тренировки человек может запоминять буквально все что воспринимает через все известные и не очень органы чувств.


Я вот больше того что мне надо для работы не помню, в MSDN гляжу. Извечный вопрос — а оно того стоит, так напрягаться-то? И есть ли в необходимом количестве программисты способные и желающие так напрячься.

WH>К тому же память человека очень хорошо востанавливается по ассациациям те человек может полностью что-то забыть но если ему подсунуть какойто намек на это то он очень быстро все вспоминает. Те если человек один раз запомнил макрос то дальше даже если он этот макрос забудет он его вспомнит сразу же после того как снова увидит.


Есть разница между тем что-бы вспомнить сам макрос и вспомнить как им пользоваться. Я помню что вывод делатьеся через Console.Wrile[Line], но все перегрузки наизусть не помню. Если будет нормальный IntelliSence то это конечно не так страшно... будет ли? Не в смысле конкретной реализации, а в смысле возвожности такой подсказки к макросу, что бы из неё было понятно как им пользоваться.

WH>Я этот принцип прекрасно знаю. Но если проще означает в 10 раз больше кода... то это "проще" превращается в массу проблем при поддержке.


Разве в 10 раз? ИМХО такого отношения даже в Pure C vs С++ Metaprogramming не вознимает. Ну будет раза в два больше, зато понятного. И уход (болезнь, декрет) ведущего разработчика, великого магистра Nemerle и кавалера ордена метапрограммирования второй степени не оставит фирме неподдерживаемый код. ведь проблема Nemerle в том что множество его крутых фиг только из Nemerle и доступны. Нельзя на Nemerle написать макрос для VB.Net. С классами/функциями в этом смысле проще.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 20:50
Оценка: -1
Здравствуйте, Андрей Хропов, Вы писали:

L>>1) Преувеличение мыслительных способностей программистов, а и людей вообще. В реальности они довольно ограничены.

АХ>К счастью не все тупые . Иногда встречаю умных на жизненном пути.

Ключевое слово иногда. Язык которым могут, пусть и поверхностно, пользоваться (хотя бы читать) массы не жизнеспособен.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 20:55
Оценка:
Здравствуйте, CopyPaste, Вы писали:

CP> Так почему вообще кто-то должен рассчитывать на ограниченных? Только то, что ограниченные обезьянки стоят дёшево ещё не делает категорическим императивом требование угождать обезьянкам. Есть (и прекрасно себя зарекомендовали) бизнес-модели, построенные на привлечении самых лучших и самых дорогостоящих кадров. Да, в программировании это пока что редкость, но в других отраслях (например, у банкиров) это норма. Так почему, с какой такой радости IT-индустрия перед обезьянками обязана "ку" делать?!?


Потому что зарплата программиста это одна из основных статей расхода и более дешёвый программист это для многих задач выгоднее, чем более дорогой, при условии, конечно, что более дешёвый справиться. Это, не всегда так.

CP> Верно. И тут как раз и нужен язык с неограниченным сверху уровнем абстракций. Язык, который можно было бы сделать близким к естественному человеческому языку в каждой из предметных областей.


Кому он нужен? Будут проблемы непонимания. как и с естественным языком.

L>>4) Язык реализующий несколько парадигм (процедурная, функциональная, декларативная) видимо предполагает их интенсивное совместное использование, что опять таки является непосильной (увы) нагрузкой для программиста.


CP> Не программиста, а обезьянку. Обезьянок надо уволить и никогда больше на них не рассчитывать. Пусть улицы подметают. Бизнес-модель "шапками нах закидаем!" пора отправить на помойку истории.


ГЫ Ну да. Из пушек по воробьям это наш метод.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 20:56
Оценка:
Здравствуйте, CopyPaste, Вы писали:

CP> Да кого блин интересуют проблемы 80% недочеловеков?!? То, что так исторически сложилось, что их принято употреблять в IT-индустрии — это просто глюк. В других индустриях это редкость. Пора забыть про обезьянок! Индустрия без них обойдётся!


Ага. Ща пальцами щёлкнем и все дураки сразу исчезнут. Только вот гении от этого не появяться, а спрос на рабочие места надо удовлетворить.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 20:59
Оценка:
Здравствуйте, CopyPaste, Вы писали:

CP> В таких ситуациях и нужно метапрограммирование — сначала создаёшь язык, потом на нём как можно более просто и понятно описываешь сложную логику.


Да, только вот обезьянки еле шарп выучили, а ты им новый язык для которого даже нормальной документации нет. Огорчаться, однако.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 21:00
Оценка: -1
Здравствуйте, CopyPaste, Вы писали:

CP> Вот скажи, тебе что приятнее и понятнее читать — EBNF, или написанный на Си конечный автомат, из этого самого EBNF сделанный? Тебе проще читать XML-описание виджетов на гуёвой формочке, или C++-ный код поверх кошмарного MFC?


Плохой пример искажающий ситуацию. EBNF в отличие от твоих поделок во многих своих проявлениях стандартизирован и о нём можно много где почитать.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[5]: Почему у Nemerle нет будущего
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.08.06 21:56
Оценка: +1
Здравствуйте, adontz, Вы писали:

A>Ага. Ща пальцами щёлкнем и все дураки сразу исчезнут. Только вот гении от этого не появяться, а спрос на рабочие места надо удовлетворить.


Дык с хорошим инструментом меньшее количество хороших пограммистов сможет решить большее количество задач. Это уже хоргшо.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Почему у Nemerle нет будущего
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.08.06 21:56
Оценка:
Здравствуйте, adontz, Вы писали:

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


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

В общем, тут рассчет очень прост. Чем выше уровень, тем проще всем. В том числе и обезьянкам. А если всем легче, то можно решать более сложные/объемные задачи.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Почему у Nemerle нет будущего
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.08.06 21:56
Оценка:
Здравствуйте, adontz, Вы писали:

A>Плохой пример искажающий ситуацию. EBNF в отличие от твоих поделок во многих своих проявлениях стандартизирован и о нём можно много где почитать.


Как раз EBNF не стандартизирован. BNF был просто один. А EBNF это целый класс его расширения. Когда Бэкус и Науэр изобрели этот язык он был не более чем DSL-ем созданным на коленке.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Почему у Nemerle нет будущего
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.08.06 22:01
Оценка:
Здравствуйте, adontz, Вы писали:

A>Есть разница между тем что-бы вспомнить сам макрос и вспомнить как им пользоваться. Я помню что вывод делатьеся через Console.Wrile[Line], но все перегрузки наизусть не помню. Если будет нормальный IntelliSence то это конечно не так страшно... будет ли? Не в смысле конкретной реализации, а в смысле возвожности такой подсказки к макросу, что бы из неё было понятно как им пользоваться.


Прочел твое сообщение и решил поделиться тем что уже реализовано из интелисенста.

Вот глядите: Небольшой отчет о сделанной работе
Автор: VladD2
Дата: 14.08.06


Что касается подсказок к "мусору". Тут как с библиотеками. Хороший макрос должен быть интуитивен и документирован. Тогда и проблем с ним не будет. А в обратном случае проблемы будут и с простыми классами/функциями.

A>Разве в 10 раз? ИМХО такого отношения даже в Pure C vs С++ Metaprogramming не вознимает.


Сморя где. Думаю, если сравнить объем исходников компилятора одинаковой сложности написанного на Немерле и С, то разница будет и по более чем в 10 раз. Если конечно внешним генератором кода не воспользоваться.

A> Ну будет раза в два больше, зато понятного.


Вообще-то даже в два раза — это уже возможность решать в два раза более сложные задачи, или в два раза более объемные, или в два раза быстрее.

Но главное, по моему — это именно то что можно решать более сложные задачи.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 22:17
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Дык с хорошим инструментом меньшее количество хороших пограммистов сможет решить большее количество задач. Это уже хорошо.


Согласен, но не совсем. Работодатель устанавливает зарплату программисту за его потенциальную способность решить задачу. Те кто пишет, программы продают их благодаря функциональности, а не использовавшемуся языку программирования. Программы на VC++ и Delphi делающие одно и то же стоят приблизительно одинаково. С другой стороны работодателю выгоднее подсунуть разработчику такой инструмент чтобы за то же самое время было сделано больше работы. Ну и, соответсвенно, найти разработчика, который бы умел пользоваться таким инструментом. Тогда себестоимость продукта окажется ниже. Однако, прежде чем написать программу надо продумать что именно будет написано, а следовательно у нас есть какие-то постоянные расходы на написание не зависящие от языка программирования. Как результат нельзя повышать эффективность отдельно взятого разработчика бесконечно. Приходиться нанимать нескольких. Эти несколько разработчиков никогда не будут равноправны, хотя бы потому что не из инкубатора. Кто-то будет делать более сложную работу, а кто-то более простую. Причём сразу возникает две проблемы. Во-первых, тот кто делает сложную работу должен её делать не только хорошо, но и понятно, чтобы со сменой ведущего разработчика не пришлось переписывать пол-проекта. Во-вторых, простая работа должна выполняться просто. Если надо скачать из Интернета файл и записать на диск, то для этого не должно быть необходимо выучить новый язык и 3 библиотеки к нему. Как эти две проблемы решает Nemerle лично мне не совсем понятно, что конечно не означает что он их не решает. На последок всё же, хочу заметить, что в Nemerle можно добавить самопальные макросы и даже построить неплохой DSL удобно решающий конкретную задачу, но нельзя ничего убрать. Возникает опасение, не получим ли мы ситуацию как с распределением памяти в Си++, где Си был расширен кучей средств априори предотвращающх утечки, но, тем не менее, это не спасло, потому что можно расширить язык, но нельзя заставить использовать только его часть, причём далеко не самую старую и знакомую?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[8]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 22:18
Оценка:
Здравствуйте, VladD2, Вы писали:

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


Ты можешь добавить что-то в Nemerle, Например макросы которые позволят прямо в программе описывать интерфейс на HTML Но ты не можешь убрать то, что уже есть. Не можешь помешать использовать что-то за гранью своих макросов.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[8]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 22:20
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Как раз EBNF не стандартизирован. BNF был просто один. А EBNF это целый класс его расширения. Когда Бэкус и Науэр изобрели этот язык он был не более чем DSL-ем созданным на коленке.


Я думаю сам факт, что аббревиатура EBNF не вызвает вопросов "а что это?" уже о многом говорит
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Почему у Nemerle нет будущего
От: adontz Грузия http://adontz.wordpress.com/
Дата: 13.08.06 22:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Прочел твое сообщение и решил поделиться тем что уже реализовано из интелисенста.

VD>Вот глядите: Небольшой отчет о сделанной работе
Автор: VladD2
Дата: 14.08.06


Честно говоря именно подстказка к макросу и не впечатила. Нужно было что-то вроде

while (Continue_Condition)
{
Action;
}

а не тот кошмар со скриншота. Из подсказки выше понятно, например, что надо записать условие продолжения цикла, а не прерывания. Ну и вообще, while понятная конктрукция и уже проблемы, а что с непонятными-то будет? Писать XML DOC не предлагай. Функциям во многом хватает правильных имён у типизированных параметров. Имеем проблему. Может и не очень большую, но всё таки. На самом деле большую, потому что к while документация есть, а будет ли она с кустарным макросам? Чую, что придёться принудительно писать XML DOC потому что иначе никак.

VD>Вообще-то даже в два раза — это уже возможность решать в два раза более сложные задачи, или в два раза более объемные, или в два раза быстрее.

VD>Но главное, по моему — это именно то что можно решать более сложные задачи.

Не, насчёт сложности это ты загнул. Если голова не варит, то никакой язык не поможет. Что касаеться скорости... тут как и везде в бизнесе надо считать риски. Вполне может быть, что лучше написать в два раза больше кода, который любой сможет подправить, чем в два раза меньше, гениального, но который некому поддерживать.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[9]: Почему у Nemerle нет будущего
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.08.06 23:58
Оценка:
Здравствуйте, adontz, Вы писали:

A>Ты можешь добавить что-то в Nemerle, Например макросы которые позволят прямо в программе описывать интерфейс на HTML Но ты не можешь убрать то, что уже есть. Не можешь помешать использовать что-то за гранью своих макросов.


Могу. Я и только я определяю что будет использоваться в моем коде.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Почему у Nemerle нет будущего
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.08.06 23:58
Оценка: +1
Здравствуйте, adontz, Вы писали:

A>Честно говоря именно подстказка к макросу и не впечатила.


Это от непонимания.

A> Нужно было что-то вроде

A>

A>while (Continue_Condition)
A>{
A> Action;
A>}


А зачем показывать в хинте исходный код? Хинт открывает потаенную информацию. Он пказывает сгенерированный в реальности код.

A>а не тот кошмар со скриншота.


Это не кошмар. Просто код макроса должен быть универсален. Конечно можно навыпендриваться и для частных случаев (например, для циклов в которых нет return/continue/break) создать частный код. Но реально это не очень то и нужно.
Кстати, возможно послед завершения Интеграции народ будет менее беззаботно относиться к генерируему макросом коду. Ведь он сможет увидить его. А эти макросы писались теми кто их результат не видел. Оптимизатор же убирает все различия, так что авторам макросов было совершенно все равно.

A> Из подсказки выше понятно, например, что надо записать условие продолжения цикла, а не прерывания. Ну и вообще, while понятная конктрукция и уже проблемы, а что с непонятными-то будет?


Для использования макросов знать что они генерируют нет особого смысла. Если тебе не важно, то можешь не смотреть хинт на них или воспринимать код как черный ящик. А вот при отладке макросов очень важно видеть что за код получился при определенных условиях.


A> Писать XML DOC не предлагай. Функциям во многом хватает правильных имён у типизированных параметров.


Во многих хватет. Но если не хватет, то почему бы не написать коментарий? Информация редко бывает лишней.

A> Имеем проблему. Может и не очень большую, но всё таки. На самом деле большую, потому что к while документация есть, а будет ли она с кустарным макросам?


Дык зависит от автора. Тут никаких различий с функциями и классами. Я уже устал это повторять. Будет подсказка — мы ее выведем.

A>Не, насчёт сложности это ты загнул. Если голова не варит, то никакой язык не поможет.


А причем тут неварящая голова? Производительность повысится у всех кроме тех кто и так ничего не делал. Если ее было ноль, то она останется равной нулю. А если больше нуля, то выростет.

A> Что касаеться скорости... тут как и везде в бизнесе надо считать риски. Вполне может быть, что лучше написать в два раза больше кода, который любой сможет подправить, чем в два раза меньше, гениального, но который некому поддерживать.


Код на Немерле точно так же сможет подправить любой если проблема не очень сложна. А если сложна, то этот код для начала просто будет невозможно спроектирвоать и написать. Упрощение задачи в двое возможно позволит это сделать. Ну, и "скилы" людей которые смогут его подправить могут быть в два раза меньше (ведь код будет в два раза проще).

Еще надо не забывать, о том, что проектирование тоже изменяется. Кодирование становится ближе к проектированию.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.