Здравствуйте, DarthSidius, Вы писали:
DS>Здравствуйте, bazis1, Вы писали:
B>>Немерле пока создает впечатление проекта от клуба любителей пилить код но ночам. Типа "смотрите, как изящно на nemerle делается xxx" в полном отрыве от того, скольким людям нужно xxx и насколько им важна изящность.
DS>Изящность важна для создания легко читаемого, легкоподдерживаемого, и как следствие, менее бажного кода. Оцени вот такой простой кусок кода: DS>Вместо ветвлений if/else — линейный match. Это здесь еще ветвлений мало.
Оба варианта — какой-то дикий адский overengineering того, что в принципе делается одной строчкой:
Если не надо читать весь файл сразу, то можно вместо ReadAllLines сделать свою версию на yield return. Издержки на создание итераторов все равно будут минимальными по сравнению с disk IO. DS>Изящность, как синоним слова красота. А красота критерий совершенства. Человек, не разбираясь, например в танцах или боевых исскуствах, может посмотреть как двигается исполнитель и оценить технику исполнения... Если это красиво.
Большинству людей надо ехать, а не шашечки. Изящное такси со стеклянным прозрачным мотором, где видна техника исполнения — это безусловно бальзам на душу дизайнера двигателей, но если мне нужно такси, то я возьму то, что быстрее приедет и дешевле отвезет, а требования к комфорту и изящности будут довольно стандартные.
Re[16]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, zlrbt, Вы писали:
Z>Для того чтобы парсить с++ нужно уметь его типизировать. Я имею ввиду разрешение неоднозначностей типа: a(b) — декларация b или вызов функции a; xxx< ... — аргументы шаблона или оператор меньше. Z>Что сейчас предлагается с этим делать?
Тупо парсится оба варианта. Никаких специальных действий предпринимать не надо. Потом можно будет выбрать нужные на базе информации о типах.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, GarryIV, Вы писали:
GIV>Да оно же одинаково! Только else if надо писать.
Неодинаково. Если добавить еще ветвления условий, то код на шарпе будет плохо читаться.
GIV>Pattern matching вещь хорошая только видимо ты не понимаешь почему.
Это просто маленький примерчик. Но ты все равно объясни, о мудрейший.
GIV>PS: а че стек оверфлоу не будет?
Из-за пары строк не будет.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
♠♠♥♠♠♦♥
Re[6]: Nemerle через 5 лет - выстрелит или скончается?
B>Если не надо читать весь файл сразу, то можно вместо ReadAllLines сделать свою версию на yield return. Издержки на создание итераторов все равно будут минимальными по сравнению с disk IO.
Чиать надо построчно — реализация аналогична IDataReader.
Ну а теперь приведи весь код с созданием итератора. И мы посмотрим на твою одну строку
DS>>Изящность, как синоним слова красота. А красота критерий совершенства. Человек, не разбираясь, например в танцах или боевых исскуствах, может посмотреть как двигается исполнитель и оценить технику исполнения... Если это красиво. B>Большинству людей надо ехать, а не шашечки. Изящное такси со стеклянным прозрачным мотором, где видна техника исполнения — это безусловно бальзам на душу дизайнера двигателей, но если мне нужно такси, то я возьму то, что быстрее приедет и дешевле отвезет, а требования к комфорту и изящности будут довольно стандартные.
Опять идиотские аналогии абсолютно не в кассу.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
♠♠♥♠♠♦♥
Re[6]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, DarthSidius, Вы писали:
GIV>>PS: а че стек оверфлоу не будет?
DS>И это, компилятор рекурсию развернет в цикл, если обернуть матч в локальную ф-цию.
Это видимо для пущей простоты и читаемости.
WBR, Igor Evgrafov
Re[7]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, DarthSidius, Вы писали:
DS>Здравствуйте, bazis1, Вы писали:
B>>Оба варианта — какой-то дикий адский overengineering того, что в принципе делается одной строчкой:
DS>Да ты што! B>>
B>>Если не надо читать весь файл сразу, то можно вместо ReadAllLines сделать свою версию на yield return. Издержки на создание итераторов все равно будут минимальными по сравнению с disk IO. DS>Чиать надо построчно — реализация аналогична IDataReader. DS>Ну а теперь приведи весь код с созданием итератора. И мы посмотрим на твою одну строку
Ну тогда надо сравнивать код реализации итератора с кодом вашего вундер-компилятора
DS>Опять идиотские аналогии абсолютно не в кассу.
Ты хочешь понять, почему у вас мало юзеров, или меня убедить что завтра все вдруг оценят ваш немерле и пойдут им пользоваться?
Re: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, AndrewVK, Вы писали:
AVK>Делаю предсказание. Если за пять лет ситуация не изменится (а она, судя по всему, не изменится, потому что даже самые активные любители Немерле занимаются Немерле исключительно ради Немерле), то Немерле тихо мирно скончается.
Как может умереть то, что и так мертво? Нашествие живых мертвецов и срочно требуется серебряная пуля?
Re[2]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, hi_octane, Вы писали:
BC>>- Да, но на Javascript ты можешь написать генератор, который будет тебе генерировать программы на Си. BC>>- Да, но зачем нам морочить голову с Си ? Давайте на Си нагенерим генератором ассемблерные команды.
_>Ты всё перепутал. Я говорю: "Не трать время на переходы с одного ограниченного языка на другой. Пиши сразу на генераторе. В этом случае у тебя будет возможность генерировать любые команды."
Так никто в мире высокопроизводительные программы не пишет на генераторах.
За что мне такое наказание ?
Re[5]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, DarthSidius, Вы писали:
DS>Изящность важна для создания легко читаемого, легкоподдерживаемого, и как следствие, менее бажного кода. Оцени вот такой простой кусок кода: DS>
Здравствуйте, BoobenCom, Вы писали:
BC>Этот же код упадет со Stackoverflow при наличии длинного файла, не ? BC>Первый раз в жизни вижу такое ... хм ... экзотическоре решение на рекурсии.
Чукча писатель, см. выше.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
♠♠♥♠♠♦♥
Re[6]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, AlexRK, Вы писали:
ARK>Здравствуйте, DarthSidius, Вы писали:
DS>>Оцени вот такой простой кусок кода:
ARK>Оба куска кода абсолютно одинаковые. ARK>Разве что в первом случае в глазах не рябит от похожести символов "|" и "}".
BC>Так никто в мире высокопроизводительные программы не пишет на генераторах.
Да неужели? А на чём пишут? И чтоб два раза не вставать, что такое компилятор C как не генератор ассемблерных инструкций из чуть более высокоуровневых?
BC>За что мне такое наказание?
Нефиг было в тему влазить!
Re[7]: Nemerle через 5 лет - выстрелит или скончается?
Так не рябит, хотя если операторов будет побольше, все равно придется блоки делать многострочными.
Но теперь на виду корявость проверки длинных условий.
Недавно тут некий VladD2 спрашивал про неконсистентность. Вот без особого моего желания всплыл пример: почему условия начинаются с символа "|", а продолжаются ключевым словом "when"? Почему не сделать "case-when-then"? Или "when-if-then"?
Еще тут же — почему символ "=>" используется как в ветках ПМ, так и в лямбдах, в разных семантически контекстах, но похожих синтаксически?
Re[29]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, hi_octane, Вы писали:
BC>>Так никто в мире высокопроизводительные программы не пишет на генераторах. _>Да неужели? А на чём пишут? И чтоб два раза не вставать, что такое компилятор C как не генератор ассемблерных инструкций из чуть более высокоуровневых?
Компилятор Си не генератор кода ассемблерных инстукрций. Его цель не файл с листингами ассемблерных комманд, а бинарный файл с машинными коммандами.
И да, если возникают проблемы с быстродействием Си, спускаются на уровень ниже и пишут ассемблерные вставки, тюнят алгоритм. Генератору места там нет.
ЗЫ: Не понимаю, зачем пытаться пропихнуть Немерле во все щели вподряд. Щас еще чуть-чуть и адепты Немерле сделают с него убийцу Си и Ассемблера.
Вам нужно не врываться во все сферы вподряд, ограничиться своим огородом и потихоньку его вспахивать. По крайней мере это со стороны будет выглядеть разумней.
Re[30]: Nemerle через 5 лет - выстрелит или скончается?
_>>что такое компилятор C как не генератор ассемблерных инструкций из чуть более высокоуровневых?
BC>Компилятор Си не генератор кода ассемблерных инстукрций. Его цель не файл с листингами ассемблерных комманд, а бинарный файл с машинными коммандами. BC>И да, если возникают проблемы с быстродействием Си, спускаются на уровень ниже и пишут ассемблерные вставки, тюнят алгоритм. Генератору места там нет.
Причём тут цель? Какие проблемы? Куда с темы съезжаешь? Ты утверждаешь что преобразование высокоуровневых инструкций в низкоуровневые компилятором С есть или что этого преобразования нет?
BC>ЗЫ: Не понимаю, зачем пытаться пропихнуть Немерле во все щели вподряд. Щас еще чуть-чуть и адепты Немерле сделают с него убийцу Си и Ассемблера. BC>Вам нужно не врываться во все сферы вподряд, ограничиться своим огородом и потихоньку его вспахивать. По крайней мере это со стороны будет выглядеть разумней.
Здравствуйте, hi_octane, Вы писали:
_>Причём тут цель? Какие проблемы? Куда с темы съезжаешь? Ты утверждаешь что преобразование высокоуровневых инструкций в низкоуровневые компилятором С есть или что этого преобразования нет?
Тебе нужно отличать компиляторы от кодогенераторов.
У компиляторов цель собрать файл с машинными инструкциями.
У кодогенераторов — нагенерить код другого, более низкоуровнего языка.
Re[4]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, bazis1, Вы писали:
B>Для того, чтобы продукт "взлетел", он должен:
Это заблуждение. Для того, чтобы взлететь нужно с годик, два, три массово и навязчиво попиарить продукт где только можно. Какой для этого нужен бюджет понятия не имею. Но вот то, что новых фич там может и не быть совсем — это факт.
Если нам не помогут, то мы тоже никого не пощадим.
Re[28]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, BoobenCom, Вы писали:
BC>Так никто в мире высокопроизводительные программы не пишет на генераторах.
Очень даже пишут. Просто это для современных программистов слишком неподъемная технология. И это не смотря на то, что изобретена она была на заре комьютерной эры.
Собственно общий подход:
1. Придумываем ДСЛ на котором можно решить задачу.
2. Делаем компилятор этого ДСЛ-я транслирующий его в некоторый язык (от машинного, до языка высокого уровня).
3. Пишем решение на ДСЛ-е.
4. Запускаем компилятор, передаем ему код на ДСЛ и получаем программу.
Если что нужно подправить, правим код на ДСЛ. Если что-то генерируется некорректно или получается не оптимальный алгоритм, подправляем генератор.
Немерл — это средство упрощающее создание и использование таких вот генераторов. Генерация Си на нем — это не штатная фича, но вполне возможная. Вот для Найтры это будет штатная задача.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.