Re[12]: Снова о Nemerle или профанация не пройдет :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.02.06 23:02
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Только мне почему то больше нравится решение, когда DSL узок, чисто декларативен и, желательно, в графическом или GUI представлении. Т.е. понимание и пользование его легко даже неспецу, контроль предельно жесткий. Создание DSL на базе большого и гибкого языка не кажется мне бесспорной идеей.


DSL бывают разные. Бывают внешние к которым применимы твои рассуждения. А бывают внтуреннии. Внутренние предназначены для кларативизации труда программиста. Чтобы сделать код более простым и коротким. Допускать пользователя до кодирования все же не разумно. И тут макросы очень к стати.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Снова о Nemerle или профанация не пройдет :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.02.06 23:02
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Андрей Михалыч, я сейчас говорю не о написании кода, а о его прочтении. При написании как раз проблем нет — я сам контроллирую (хотя конечно и тут проблемы имеются) набор ключевых слов.


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

По-моему, это говорит о высокой читаемости кода. Возоможно тут заслуга и их умений как программистов, но все же язык тут тоже не последнюю роль играет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Снова о Nemerle или профанация не пройдет :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.02.06 23:02
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Реализовать собственный extension вместо DLINQ.


Всего то? Теперь сравни это с заменой пары строк в макросе, а то и вообще дописыванием еще одного макроса.

VD>>Заметь многие восприняли ЛИНК в штыки именно потму, что это довольно не универсальное и не естественное расширение языка. Если лы бы это было сделано на макрсоах, то вряд ли кто стал бы возмущаться. Ведь тогда решение было бы универсальным.


AVK>Я все же продолжаю считать что за универсальность всегда надо платить.


А за прямолинейность и негикость? В общем, это не аргумент.

Я вот воспользовался foreach-ем в Нэмерле и ощутил только приемущества перед Шарповским аналогом. А ведь foreach в Нэмереле — это макрос.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Снова о Nemerle или профанация не пройдет :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.02.06 23:02
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>А что, можно? Сам же тут расписывал про глюки кодогенератора.


Где? Ты что-то путашь.

AVK>У меня практически нет таких задач, для которых его можно использовать. Поэтому для меня Nemerle в практическом плане пока не более чем концепция.


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

VD>>Хм. Когда в 2001 ты взялся за C# и донет, то ты значит за паравозом не бежел?


AVK>Нет, потому что дотнет львиную долю своих фич взял от джавы.


А Нэмерл из C#, ML и Схемы. И что?

AVK> Никаких новых парадигм по сравнению с последней он не вводил.


А атрибуты?

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


Можно поднять твои посты 2001-2002 годов и убедиться, что скепсиса подбного проявляемому сейчас от тебя слышно не было.

AVK>Я имел ввиду разработчик конкретных расширений не ломает синтаксис языка.


Синтаксис у CTR свой. Это отдельный и довольно убогий движек текстуальных шаблонов.

AVK>Это пока я как ты, все свои проекты пишу один. А вот как не один, то уже все не так просто.


Дык в чем проблема то? Еще раз. Макросы перед использованием прекомпилируются в отдельную сборку. Среди кода их раскидать невозможно.

VD>> Если тебе нужен свой внутренинй DSL, то расширяй синтаксис.


AVK>Вот только мне не нужен такой сложный и навороченный DSL.


Какой сложный? И какой навороченный? Ты не забыл, что каждая команда вольна сама определять все что хочет?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Снова о Nemerle или профанация не пройдет :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.02.06 23:02
Оценка: +3
Здравствуйте, AndrewVK, Вы писали:

AVK>Если бы. Ты foreach в стиле boost видел? Или парсер на boost::spirit, который ты мне показывал? Я хорошо помню ощущение вылавливания клецок BNF из борща скобочек и закорючечек.


Классная аргументация. То есть проблема в том, что в С++ не удалось изменить синтаксис как надо? Теперь в самый раз обсудить вопрос опасности изменения синтаксиса. А то ведь в нэмерле ты бы получил чистый EBNF и стал сетовать, что язык изменен до неузнаваемости.

В общем, это смахивает на попытки найти проблемы любой ценой.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: Снова о Nemerle или профанация не пройдет :)
От: Воронков Василий Россия  
Дата: 17.02.06 23:06
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Re[18]: Снова о Nemerle или профанация не пройдет :)
Автор: VladD2
Дата: 16.02.06


Re[16]: Снова о Nemerle или профанация не пройдет :)
Автор: Воронков Василий
Дата: 16.02.06
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[26]: Снова о Nemerle или профанация не пройдет :)
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.02.06 23:13
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

VD>>Re[18]: Снова о Nemerle или профанация не пройдет :)
Автор: VladD2
Дата: 16.02.06


ВВ>Re[16]: Снова о Nemerle или профанация не пройдет :)
Автор: Воронков Василий
Дата: 16.02.06


Я же не тебе отвечал.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[27]: Снова о Nemerle или профанация не пройдет :)
От: Воронков Василий Россия  
Дата: 17.02.06 23:20
Оценка: :))) :)
Здравствуйте, VladD2, Вы писали:

VD>Я же не тебе отвечал.


Да не, конечно. Просто интересно было посмотреть, как вопрос о спеллчекере в выбенет превратился в обсуждение грамматики С++ в топике который называется "Снова о Nemerle..."
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Снова о Nemerle или профанация не пройдет :)
От: Воронков Василий Россия  
Дата: 18.02.06 00:57
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Какие у тебя вопросы?


А ничего если я спрошу? (без тени скепсиса )
Какие бенефеты ты лично видишь от использования Немерле при разработке бизнес-приложений?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[30]: Снова о Nemerle или профанация не пройдет :)
От: Воронков Василий Россия  
Дата: 18.02.06 01:38
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Eclipse + Improve C# Plugin


ИМХО эта комбинация с уж очень большим трудом тянет на IDE.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: Снова о Nemerle или профанация не пройдет :)
От: Дарней Россия  
Дата: 18.02.06 03:13
Оценка: +1 :)
Здравствуйте, AndrewVK, Вы писали:

AVK>Пока я задаю вопросы. Например — очевидно что язык, в котором ключевых слов много, да еще и их набор может изменяться (в том числе и неявно) значительно сложнее при прочих равных языка с зафиксированным набором ключевых слов. Как с этим бороться? У тебя есть ответ на этот вопрос?

AVK>Я бы, если бы мне пришлось писать проект на Nemerle, зафиксировал бы набор ключевых слов (очень небольшой список) и вводить новые запретил бы под страхом смертной казни, а все макросы бы писал таким образом, чтобы не менять синтаксис. Потому что я не могу как Хейлсберг по полгода оценивать эффект от каждой новой языкофичи.

На самом деле твои предпосылки просто неверны. Структура программы — это просто реализация мыслей программиста. В идеале язык должен как можно точнее отражать понятия, которыми оперирует программист (а совсем не наоборот ). Поэтому более сложным окажется не тот язык, в котором больше ключевых слов. А тот, в котором отсутствующие в нем понятия эмулируются при помощи не предназначенных для этого конструкций. В этом отношении переплюнуть С++ с его трюками не удастся уже никому. И не надо
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[17]: Снова о Nemerle или профанация не пройдет :)
От: c-smile Канада http://terrainformatica.com
Дата: 18.02.06 05:00
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Andrei N.Sobchuck, Вы писали:


ANS>>Кстати, имхо, г-н де Иказа не довёл до ума ни одного проекта. Да и Novel умеет всё просырать не хуже Борланда. Так что вероятность того, что mono вечно будет, но не доделано — есть.


VD>Можно уже зарелизен.


Это вообще на каком языке.
Особенно интересует значение слова "зарелизен" в данном контексте.

VD>Так что речь можно вести только об отставании от МС.


Не понимаю назначение проекта Mono если честно ...
Зачем оно вообще? Какие принципиальные проблемы решает кроме
того что уже умеет Java лет эдак пять шесть уже?
Re[3]: Снова о Nemerle или профанация не пройдет :)
От: pavel_turbin  
Дата: 18.02.06 05:56
Оценка:
Здравствуйте, VladD2, Вы писали:

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


_>>что-то вас языки программирования сильно беспокоят. Вот на Cobol-е и на еще программеры требуются, 1200+ в США:


VD>И что ты ждешь? Бегом учить Кобол.


а смысл гоняться за модой?! Мне на C++ очень хорошо.
Re[22]: Снова о Nemerle или профанация не пройдет :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.02.06 06:30
Оценка:
Здравствуйте, z00n, Вы писали:

Z>Как вы понимаете, у нас тоже как-то так:

Z>
Z>alt-18 <command>
Z>


emacs?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[22]: Снова о Nemerle или профанация не пройдет :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.02.06 06:37
Оценка: +3 :)
Здравствуйте, VladD2, Вы писали:

E>>
E>>18w
E>>

E>>это все.

VD>Ага. Гениально.


Имхо, близко к тому.
18 -- это количество повторений. Количество повторений может предшествовать очень большому количеству команд vim-а.
w -- это команда перехода на начало следующего слова.

VD>А 123b будет у нас означать отослать 123 писма по мылу.


Нет, поскольку b -- это команда перехода на начало слова, то 123b будет означать возврат на 122 (или 123, в зависимости от того, где находится курсор сейчас) слов назад.

Если тебе это кажется маразмом, то что ты скажешь на то, что передвижение по тексту осуществляется клавишами h, j, k и l? Ты думаещь -- это дико?
На самом деле дико удобно. И это сразу ощущается после небольшой практики.

На самом деле, unix -- это очень дружественная система, только она очень избирательно подходит к выбору друзей.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: Снова о Nemerle или профанация не пройдет :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.02.06 06:50
Оценка: -1 :)
Здравствуйте, VladD2, Вы писали:

VD>И что? Если у тебя конфликтуют названия функций, ты тоже их использовать не сможешь. Что же тебя это не огорчает?

VD>Макросы немерла подчиняются тем же самым ограничениям, что и функции в С

Для уточнения названий функций я могу использовать идентификаторы пространств имен. А в C, где пространств имен не было, применялись префиксы для имен функций (SSL_, curl_, ACE_ и пр.). А для макросов выработано правило, чтобы имена макросов задавались только заглавными буквами и так же имели свой уникальный префикс.
Забавно, надо полагать, будет выглядеть код на Nemerle, если в нем будут синтаксические конструкции вида:
VLADD2_FOREACH_IN_HASH( k, h; hash ) { ... }

EAO197_DECLARE_PERSISTENT_ATTR v : some_type;


Очень далеко мы ушли от C, не правда ли?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Снова о Nemerle или профанация не пройдет :)
От: Vermicious Knid  
Дата: 18.02.06 07:59
Оценка: +1
Здравствуйте, eao197, Вы писали:

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


VD>>И что? Если у тебя конфликтуют названия функций, ты тоже их использовать не сможешь. Что же тебя это не огорчает?

VD>>Макросы немерла подчиняются тем же самым ограничениям, что и функции в С

E>Для уточнения названий функций я могу использовать идентификаторы пространств имен.


Для макросов Nemerle тоже. Еще раз повторяю, макросы как расширение парсера, это в первую очередь фича для разработчиков языка. Без них язык бы выглядел по другому(мягко говоря не очень похоже на C#). Если ты их используешь, то будь готов к проблемам и к их решению.

Вот например во что примерно раскладывается типичный цикл while(это просто для иллюстрации, реальный код скорее всего совсем другой, но идея та же):
def @__someMangledName45dfsdf(cond)
{
    // match это основная конструкция языка для всего, что связано с бранчингом
    // его использует if и другие подобные конструкции
    match(cond)
    {
        | true => /* here goes while body */ blaBlaBla(); x--; @__somemangledName45dfsdf(x > 0)
        | false => ()
    }
}
@__someMangledName45dfsdf(x > 0);


Кодогенератор потом делает из него обычный императивный цикл(как можно убедиться посмотрев результирующий IL код), но это выходит за рамки данного объяснения.

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

E>
E>VLADD2_FOREACH_IN_HASH( k, h; hash ) { ... }

E>EAO197_DECLARE_PERSISTENT_ATTR v : some_type;
E>


Извини, но это какой-то идиотизм и бред. Во-первых встроенный foreach прекрасно справляется с хэш-таблицами и разными другими контейнерами. А в будущем не исключенно, что будет отлично работать с любыми произвольными типами(в смысле неотнаследованными от интерфейсов коллекций итп) и будет достаточно добавить пару атрибутов описывающих что-именно нужно делать с экземпляром этого типа в foreach.

Во-вторых ничто не мешает пользоваться традиционными атрибутами .NET(aka метаданные). Например в Nemerle есть несколько макросов для контрактного программирования. Они бы тебе не понравились, так как имеют custom-синтаксис.

Но вместо вот этого:
using Nemerle.Assertions;

class Test
invariant obj != null
{
    mutable obj : object;
    public this(obj : object)
    {
        this.obj = obj;
    }
}


Вполне можно использовать и вот это:
[Nemerle.Assertions.Invariant(obj != null)]
class Test
{
    mutable obj : object;
    public this(obj : object)
    {
        this.obj = obj;
    }
}
Re[12]: Снова о Nemerle или профанация не пройдет :)
От: Vermicious Knid  
Дата: 18.02.06 08:15
Оценка:
Здравствуйте, Vermicious Knid, Вы писали:

VK>На данный момент разработчикам нет смысла запрещать, ограничивать или ужесточать возможности по внесению нового синтаксиса в язык. Просто потому, что так проще экспериментировать, находить и использовать новые идеи, итд.


Кстати совсем не исключено, что до релиза нацеленных на мэйнстрим языков, с которыми Nemerle в основном и будет конкурировать — C# 3.0 и возможно Fortress, в Nemerle появится более fine-grain контроль над синтаксическими расширениями. То, что сейчас есть для этого в Nemerle вполне хватает для нужд разработчиков языка и экспериментаторов, но для широкой публики вполне может появиться что-то более управляемое и интересное(типа JetBrains MPS или Camlp4 например).
Re[17]: Снова о Nemerle или профанация не пройдет :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.02.06 09:22
Оценка: +2
Здравствуйте, VladD2, Вы писали:

AVK>>Пока невидно чтобы его вобще всерьез применяли, вот ведь в чем проблема.


VD>Аргументация точно такая же как противников C#. Они тоже дружно вторят "покажи мне серьезнео приложение...".


Только вот на C# их хватает, а на Nemerle пока нет. Это не значит что NEMERLE плохой, это значит что его использование влечет за собой очень высокий риск.

AVK>>У меня сейчас нет времени на что то более менее крупное, а мелкие примерчики на мои вопросы ответа не дадут.


VD>Да за время пока мы трепимся можно было бы что-нить написать и поделиться опытом.


У меня и так полно дел. Статью, к примеру, писать нужно.
... << RSDN@Home 1.2.0 alpha rev. 642 on Windows XP 5.1.2600.131072>>
AVK Blog
Re[15]: Снова о Nemerle или профанация не пройдет :)
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.02.06 09:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Скачай Нэмереловские искходники. Зайди в каталог с исходниками и погляди.

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

Так там ничего стороннего не используется, только набор собственных макросов.
... << RSDN@Home 1.2.0 alpha rev. 642 on Windows XP 5.1.2600.131072>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.