Re[14]: Nemerle через 5 лет - выстрелит или скончается?
От: DarthSidius  
Дата: 01.10.14 02:36
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, VladD2, Вы писали:


I>>>Не фичами, а конструкцию пересмотрели.


VD>>Это и есть фичи.


I>Это _не_ фичи. Это конструктивные особнности. Фича, это когда ты в грузовой отсек кресел напихал. А если изменилась несущая конструкция это уже не фича, принципиально иное решение.


Это несомненно очень важное и конструктивное замечание в контескте данного топика. Развивай абстрактное мышление.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
♠♠♥♠♠♦♥
Re[14]: Nemerle через 5 лет - выстрелит или скончается?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.10.14 02:42
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Это _не_ фичи. Это конструктивные особнности.


Гы. Иди почитай перевод слова "фича".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Nemerle через 5 лет - выстрелит или скончается?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.10.14 02:48
Оценка:
Здравствуйте, AlexRK, Вы писали:

ARK>Да, это так. Потому что я не вижу причин его пробовать, как и многие другие языки.


А в чем причина твоего появления здесь? Зачем ты тратишь свое и чужое время?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Nemerle через 5 лет - выстрелит или скончается?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.10.14 02:56
Оценка:
Здравствуйте, novitk, Вы писали:

N>Дык само Моно никто не использует.


Тебя послушать, так если ты чего-то не используешь, то никто это и не использует.

А что используется то?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Nemerle через 5 лет - выстрелит или скончается?
От: uncommon Ниоткуда  
Дата: 01.10.14 03:52
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, uncommon, Вы писали:


U>>А вот Clojure отлично за это время развилась. Учитывая ещё тот факт, что Clojure появилась два года после Nemerle в 2007м, но уже в 2008 вышла первая версия. А теперь у Clojure есть офигенное количество библиотек, документации, книжек и контрибьюторов.


VD>Все это есть у немерла.


Где? Наверное здесь: The resource cannot be found.

U>>А команда Nemerle всё это время пилила интеграцию с VS...


VD>Мы уже 6 лет как ее эксплуатируем, как и сам немерл. А вы все ходите и ищите фатальные ндостатки.


Собственно, мы ходим и ищем библиотеки и документацию. Тут вам даже товарищ на google groups задаёт следующий вопрос: Broken docs link and installer error.
Re[4]: Nemerle через 5 лет - выстрелит или скончается?
От: DarthSidius  
Дата: 01.10.14 05:41
Оценка:
Здравствуйте, bazis1, Вы писали:

B>Немерле пока создает впечатление проекта от клуба любителей пилить код но ночам. Типа "смотрите, как изящно на nemerle делается xxx" в полном отрыве от того, скольким людям нужно xxx и насколько им важна изящность.


Изящность важна для создания легко читаемого, легкоподдерживаемого, и как следствие, менее бажного кода. Оцени вот такой простой кусок кода:
        protected override bool ЧитатьСтрокуБезПроверок()
        {
            var стр = ПотокЧтения.ReadLine();
            if( стр == null ) {
                // достигнут конец файла
                ТекСтрока = null;
                return false;
            }
            else {
                // что-то считали
                if( string.IsNullOrWhiteSpace(стр) ) {
                    // рекурсивный пропуск пустых строк
                    return ЧитатьСтрокуБезПроверок();
                }
                else {
                    // строка считана
                    ТекСтрока = стр.Split( new char[] { ';' } );
                    return true;
                }
            }
        }

vs
        protected override ЧитатьСтрокуБезПроверок() : bool
        {
            match( ПотокЧтения.ReadLine() ) {
                | стр when стр == null =>
                    // достигнут конец файла
                    ТекСтрока = null;
                    false

                | стр when string.IsNullOrWhiteSpace(стр) =>
                    // рекурсивный пропуск пустых строк
                    ЧитатьСтрокуБезПроверок()

                | стр =>
                    // строка считана
                    ТекСтрока = стр.Split( { ';' } );
                    true
            }
        }

Вместо ветвлений if/else — линейный match. Это здесь еще ветвлений мало.
Изящность, как синоним слова красота. А красота критерий совершенства. Человек, не разбираясь, например в танцах или боевых исскуствах, может посмотреть как двигается исполнитель и оценить технику исполнения... Если это красиво.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 58>>
♠♠♥♠♠♦♥
Отредактировано 02.10.2014 20:02 VladD2 . Предыдущая версия .
Re[5]: Nemerle через 5 лет - выстрелит или скончается?
От: GarryIV  
Дата: 01.10.14 05:52
Оценка: +1
Здравствуйте, DarthSidius, Вы писали:

DS>Здравствуйте, bazis1, Вы писали:


B>>Немерле пока создает впечатление проекта от клуба любителей пилить код но ночам. Типа "смотрите, как изящно на nemerle делается xxx" в полном отрыве от того, скольким людям нужно xxx и насколько им важна изящность.


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


Да оно же одинаково! Только else if надо писать.

Pattern matching вещь хорошая только видимо ты не понимаешь почему.

PS: а че стек оверфлоу не будет?
WBR, Igor Evgrafov
Re[25]: Nemerle через 5 лет - выстрелит или скончается?
От: BoobenCom  
Дата: 01.10.14 07:12
Оценка:
Здравствуйте, hi_octane, Вы писали:

BC>>Если скорость работы С# не устраивает, то переходят не на Nemerle, а на Си, разве не так ?


_>Макросы это вообще-то про генерацию кода. Почему не генерировать код на Си из выскоуровневого кода на Nemerle? Вот есть такой проект NUDA, там в качестве примера, вычисления написанные на Nemerle выполняются на GPU, так что ничего невозможного нет.


Ваше предложение выглядит примерно так:

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

Или так:

— У нас очень медленно работает это кусок кода в Си
— Можно сделать ассемблерную вставку, и максимально оптимизировать вручную ассемблерные команды
— Да, но зачем нам морочить голову с Си ? Давайте на Си нагенерим генератором ассемблерные команды.
Re[15]: Nemerle через 5 лет - выстрелит или скончается?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 01.10.14 07:16
Оценка:
Здравствуйте, VladD2, Вы писали:

I>>Это _не_ фичи. Это конструктивные особнности.


VD>Гы. Иди почитай перевод слова "фича".


Если брать буквальный перевод, то надо признать, что из Жигуля путем добавления фич можно сделать даже Белаз, не то что Порше Кайен.
Re[17]: Nemerle через 5 лет - выстрелит или скончается?
От: Evgeny.Panasyuk Россия  
Дата: 01.10.14 08:40
Оценка:
Здравствуйте, jazzer, Вы писали:

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

EP>>Есть задача сгенерировать определённый код из схемы (допустим из .xml), причём результирующий код не только на C++.
J>Знакомо У меня в проекте xslt этим занимается (xml-файл предоставлен другой командой, они его для своих java-нужд используют)

А у меня xml схема + python.
Помню предлагал на начальном этапе рассмотреть xslt, как минимум для некоторых частей, но как-то не прижилось. Кстати, как он себя показывает? Не слишком многословен? Хватает ли возможностей?

J>Ну разве что делать плагин для GCC — у меня такая идея давно сидит (с 4.7?), но времени покопаться так и нету.


Можно не GCC, а Clang. Недавно была презентация на подобную тему:
https://raw.githubusercontent.com/boostcon/cppnow_presentations_2014/master/files/Create-Your-Own-Refactoring-Tool-with-Clang.pdf
http://www.youtube.com/watch?v=8PndHo7jjHk
Достаточно .pdf просмотреть.

Вкратце — у Clang'а есть библиотека которая позволяет искать в AST поддеревья заданные декларативными конструкциями вида:
forStmt(hasLoopInit(declStmt(hasSingleDecl(varDecl(hasInitializer(integerLiteral(equals(0))))))))
// или
constructExpr
(
    hasDeclaration(methodDecl(hasName(StringConstructor))),
    argumentCountIs(2),
    hasArgument
    (
        0,
        id
        (
            "call",
            memberCallExpr
            (
                callee(id("member", memberExpr())),
                callee(methodDecl(hasName(StringCStrMethod))),
                on(id("arg", expr()))
            )
        )
    ),
    hasArgument(1, defaultArgExpr())
)

Каждое подходящее поддерево Clang передаётся нашему callback'у. Так же можно это дерево изменить (например в целях рефакторинга) — и всё автоматом преобразуется обратно в C++ код. Т.е. это своего рода regex для C++ AST.

Но возможно в твоём случае это не подойдёт, может фаза слишком ранняя. Зависит от того, какая именно информация нужна.
Re[10]: Nemerle через 5 лет - выстрелит или скончается?
От: AlexRK  
Дата: 01.10.14 10:43
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А в чем причина твоего появления здесь? Зачем ты тратишь свое и чужое время?


Просто высказал свое мнение. Форум вроде для того и существует, разве нет? Или это запрещено правилами?
Кроме того, я писал вовсе не вам. Так что зачем вы тратите свое время на простыни про мартышек и очки — это вам виднее.
Re[5]: Nemerle через 5 лет - выстрелит или скончается?
От: AlexRK  
Дата: 01.10.14 10:45
Оценка: +1 :)
Здравствуйте, DarthSidius, Вы писали:

DS>Оцени вот такой простой кусок кода:


Оба куска кода абсолютно одинаковые.
Разве что в первом случае в глазах не рябит от похожести символов "|" и "}".
Re[8]: Nemerle через 5 лет - выстрелит или скончается?
От: novitk США  
Дата: 01.10.14 13:26
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А что используется то?


Что угодно, нo платформа должна быть едина и "первоклассна". "Первоклассность" в случае .NET означает винду, но тогда возникает проблема с единством. К примеру тот же грид/кластер на винде — экзотика.

Самое смешное что последнее время в наиболее "продвинутых" местах (инвест. банки, аэроспейс, интернет-монстры) у .NET языков стали появились проблемы даже с гуями. Клиенты-то обычно конечно винда, но код хочется иметь единый и не городить интеропа, а значит "щарпы" на помоечку. На моем PC к примеру сейчас осталась ровно одна .NET апликуха, все остальное на {QT|wx}/Python или EclipseRCP/Java. Наши конкуренты, очень захотевшие WPF, вложились в питоновский байндинг к .NET — вроде тоже полет нормальный.
Отредактировано 01.10.2014 15:14 novitk . Предыдущая версия . Еще …
Отредактировано 01.10.2014 15:12 novitk . Предыдущая версия .
Re[16]: Nemerle через 5 лет - выстрелит или скончается?
От: novitk США  
Дата: 01.10.14 13:57
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Так много, что вакансий около нуля.


Acь?
http://www.glassdoor.com/Job/clojure-jobs-SRCH_KO0,7.htm
Re[18]: Nemerle через 5 лет - выстрелит или скончается?
От: jazzer Россия Skype: enerjazzer
Дата: 01.10.14 14:42
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Помню предлагал на начальном этапе рассмотреть xslt, как минимум для некоторых частей, но как-то не прижилось. Кстати, как он себя показывает? Не слишком многословен? Хватает ли возможностей?


Ну для моего сценария — да, вполне хватило.

J>>Ну разве что делать плагин для GCC — у меня такая идея давно сидит (с 4.7?), но времени покопаться так и нету.


EP>Можно не GCC, а Clang. Недавно была презентация на подобную тему


Ага. На BoostCon тоже прикольная штука была про REPL для шаблонного метапрограммирования, тоже на Clang.
Он вообще фичастый в этом плане.

EP>Но возможно в твоём случае это не подойдёт, может фаза слишком ранняя. Зависит от того, какая именно информация нужна.


Мне не подойдет его кодогенератор. Все-таки GCC генерит более оптимальный код.
Так что если и юзать Clang, то в качестве стороннего инструмента для какого-нть хиторого анализа кода по аннотациям (например, для проверки, что ни одна строчка в функции не бросает исключений — наверняка это можно сделать на Clang)
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[15]: Nemerle через 5 лет - выстрелит или скончается?
От: zlrbt  
Дата: 01.10.14 15:08
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Для генерации и парсинга C++ нитра уже пригодна. Остается только написать грамматику C++. Те же квази-цитаты будут из каробки доступны. Вот типизацию придется подождать.

Для того чтобы парсить с++ нужно уметь его типизировать. Я имею ввиду разрешение неоднозначностей типа: a(b) — декларация b или вызов функции a; xxx< ... — аргументы шаблона или оператор меньше.
Что сейчас предлагается с этим делать?
Re[19]: Nemerle через 5 лет - выстрелит или скончается?
От: novitk США  
Дата: 01.10.14 15:19
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Мне не подойдет его кодогенератор. Все-таки GCC генерит более оптимальный код.


Это скажем так "depends" и надо мерить: http://stackoverflow.com/questions/3187414/clang-vs-gcc-which-produces-better-binaries
И если для тебе это так критично почему не ICC?
Re[16]: Nemerle через 5 лет - выстрелит или скончается?
От: WolfHound  
Дата: 01.10.14 15:52
Оценка:
Здравствуйте, zlrbt, Вы писали:

Z>Для того чтобы парсить с++ нужно уметь его типизировать. Я имею ввиду разрешение неоднозначностей типа: a(b) — декларация b или вызов функции a; xxx< ... — аргументы шаблона или оператор меньше.

Z>Что сейчас предлагается с этим делать?
Парсер может создавать неоднозначный АСТ. Те там просто будут оба варианта.
А типизатор уже разберется, что это было.
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[19]: Nemerle через 5 лет - выстрелит или скончается?
От: Evgeny.Panasyuk Россия  
Дата: 01.10.14 15:53
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Ага. На BoostCon тоже прикольная штука была про REPL для шаблонного метапрограммирования, тоже на Clang.


Видел, точнее пролистал презентацию — насколько я понял там интерактивный REPL печатающий тип выражения (результат метафункции) + pretty-printer. Не знаю на сколько удобно — всегда хватало форсинга ошибки компиляции с нужным типом в сообщении.

EP>>Но возможно в твоём случае это не подойдёт, может фаза слишком ранняя. Зависит от того, какая именно информация нужна.

J>Мне не подойдет его кодогенератор. Все-таки GCC генерит более оптимальный код.
J>Так что если и юзать Clang, то в качестве стороннего инструмента для какого-нть хиторого анализа кода по аннотациям

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

J>(например, для проверки, что ни одна строчка в функции не бросает исключений — наверняка это можно сделать на Clang)


Ещё можно использовать для запрещения ряда конструкций (например new), точнее запрещение по-умолчанию. Можно вообще оставить только безопасное babysitting подмножество (для тех случаев где нужны жёсткие гарантии), где весь unsafe будет в специальных библиотеках.
Или хоть тот же compile-time reflection (вызывать макросы Boost.Fusion для помеченных атрибутами классов, либо для всех в файле и т.п.).
В общем есть где разгуляться
Re[26]: Nemerle через 5 лет - выстрелит или скончается?
От: hi_octane Беларусь  
Дата: 01.10.14 16:40
Оценка: +1 :)
BC>- Да, но на Javascript ты можешь написать генератор, который будет тебе генерировать программы на Си.
BC>- Да, но зачем нам морочить голову с Си ? Давайте на Си нагенерим генератором ассемблерные команды.

Ты всё перепутал. Я говорю: "Не трать время на переходы с одного ограниченного языка на другой. Пиши сразу на генераторе. В этом случае у тебя будет возможность генерировать любые команды."
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.