Re: Визитка (заглавная страница nemerle.org)
От: Alex_Avr Россия  
Дата: 15.02.11 08:09
Оценка: +1
Здравствуйте, VladD2, Вы писали:

Есть опечатки и запятых не хватает.
Кое-где отсутствуют соединительные слова.

VD>
VD>

VD>


VD>


VD>

VD>

VD>Nemerle – это мультипарадагмынй язык программирования общего назначения для платформы .Net, который так же прост в использовании, как C# или VB.NET, но при этом обладает несравнимо большими возможностями. На Nemerle можно программировать как на продвинутом C#, и по мере обучения задействовать отлично реализованные возможности функционального программирования и метапрограммирования (макросов в стиле Lisp).

VD>Мощный вывод типов (лучший среди языков поддерживающих подтипы и наследование), гибкая и очень мощная подсистема метапрограммирования (макросы Nemerle), привычная для C#/Java/C++-программистов поддержка ООП, полноценная поддержка функционального программирования (ФВП, сопоставление с образцом, алгебраические типы, локальные функции, кортежи и анонимные типы, частичное применение функций), унаследованная у ML-подобных языков (ML, OCaml, F#, Haskell), интегрированная в универсальный язык, позволяют решать проблемы не просто быстро и просто, но очень красиво.


VD>Наличие интеграции с VS 2008 и Sharp Develop позволяет снизить порог вхождения и повысить продуктивность разработчика. Интеграции с IDE поддерживают все возможности языка, включая предоставление информации о выведенных типах и таскрытии макросов.


VD>Макросы позволяет поднять уровень программ на небывалую до этого высоту (и при этом не жертвовать богатством синтаксиса языка как Lisp). Вы можете разрабатывать как макросы, упрощающие решение ваших повседневных задач, так и использовать новый подход - языко-ориентированное программирование — создание своих языков предметной области (DSL), которые позволяют решать задачи путем их описания в полностью декларативной манере. Макросы позволяют реализовывать и поддерживать DSL-и существенно быстрее и проще, и получать автоматическую поддержку IDE, высокое быстродействие полученного кода и т.п.

VD>Кроме того, вы можете использовать массу готовых макросов входящих в стандартную поставку компилятора или доступных от сторонних разработчиков. Так, с помощью макросов Nemerle реализованы такие выдающиеся решения как:
VD>

    VD>
  • Nemerle.Peg – макрос реализующий генератор парсеров основанный на нотации PEG. В число его достоинств входит: шаговая доступность (использовать Nemerle.Peg так же просто как регулярные выражения), невероятно высокая скорость работы создаваемого парсера – ~ 4 MB/sec. на грамматике C# 4.0 (с построением AST), динамическая расширяемость (правила грамматики могут подключаться на лету), поддержка левой рекурсии приоритетов и ассоциативности (благодаря интеллектуальной мемоизации и интеграции алгоритма Pratt), поддержка предикатов (позволяет с легкостью парсить даже такие не очень простые языки как C# или C++), поддержка транзакций для областей (позволяет парсить ряд контекстно-зависимых языков вроде C/C++/Nemerle). В Nemerle 2.0 система макросов будет основана на Nemerle.Peg.
    VD>
  • Nemerle.Xml – макрос позволяющий использовать внутри Nemerle-кода квази-цитаты XML (XML-летералы допускающие активнее обалсти и управляющие конструкции). Данная возможность аналогична имеющимся в таких языках как Scala и VB.NET, но доступна в виде отельного модуля (макроса) и исходных кодах.
    VD>
  • ComputationExpressions – макрос реализует возможность аналогичную встроенной возможности языка F# — Computation Expressions. Это красивый синтаксический сахар для монад/монойдов. С помощью async (реализованного на базе ComputationExpressions) можно, например, значительно упростить создание параллельного кода.
    VD>
  • Поддержка LINQ. Даже поддержка LINQ в Nemerle реализована в виде макросов.
    VD>
  • Макрос, позволяющий реализовать методы обхода сложных структур данных (аналогично использованию паттерна Посетитель, но без ручной работы).
    VD>
  • Макросы, автоматизирующие реализацию паттернов проектирования ООП: Abstract factory pattern, Aggregation (Composite), Proxy, Singleton.
    VD>
  • А так же множество небольших макросов делающих код короче и понятнее: Late (позднее связывание), Lazy (отложенное выполнение), Logging, Profiling, Record (автоматическое создание конструкторов инициализирующих поля), Surroundwith (быстрое создание операторов похожих на “using”).
    VD>
  • Библиотека макросов Nemerle on Rails (NoR) – аналог Ruby on Rails но в статически типизированном языке. Хотя в мире статически типизированных языков есть аналогичный фрэймворк – Scala Lift, но реализация для Nemerle основана на макросах и признанных стандартах вроде LINQ.
    VD>
  • DependencyProperty — автоматизация реализации зависимых свойств WPF.
    VD>
  • AOP — поддержка аспектно-ориентированного программирования.
    VD>
  • Сплайс-строки. Это аналог "активных" строк из скриптовых языков вроде Ruby, но реализована эта возможность на макросах.
    VD>
VD>

VD>_______________________

VD>Installer


VD>Все загрузки


VD>Лицензия: New BSD License


VD>Исходные коды (VSN)


VD>Исходные коды (brose)

VD>



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

P.S. К тегам оформления [b] и [i] в форматтер сообщений RSDN хорошо бы еще добавить тег [strike].
С уважением, Александр Авраменко.
Re[3]: Визитка (заглавная страница nemerle.org)
От: Nikkk2010  
Дата: 15.02.11 08:43
Оценка:
Здравствуйте, VladD2, Вы писали:

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


VD>>>Народ, переведите по качественнее на англицкий.

N>>хорошо я переведу

VD>Погоди денек. Сейчас обсуждение закончится.

послал на твое мыло (vc@rsdn.ru) перевод визитки.
Не знаю кто будет ee редактировать.
Продолжаю перевод статьи Макрос PegGrammar.
I do all my own stunts
Re[2]: Визитка (заглавная страница nemerle.org)
От: Ziaw Россия  
Дата: 15.02.11 12:23
Оценка:
Здравствуйте, Alex_Avr, Вы писали:

A_A>P.S. К тегам оформления [b] и [i] в форматтер сообщений RSDN хорошо бы еще добавить тег [strike].


этот?

[s]этот[/s]?

Re[4]: Визитка (заглавная страница nemerle.org)
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.02.11 15:36
Оценка:
Здравствуйте, Nikkk2010, Вы писали:

N>послал на твое мыло (vc@rsdn.ru) перевод визитки.


Да надо было прямо сюда выкладывать. За одно народ правки бы предложил. В общем, выкладываю. Замечания просьба давать в ответ на это сообщение.

Epigraph: Nemerle — this is what was supposed to be C #.
Nemerle is a multiparadigmy general-purpose programming language for the .Net platform, which is also easy to use as C # or VB.NET but has an incomparably more opportunities. You can program on Nemerle as on advanced C#, and use perfectly implemented possibilities of functional programming and metaprogramming (macros in the style of Lisp).
Strong type inference (the best among the languages supporting subtypes and inheritance), flexible and very powerful metaprogramming’s subsystem (macros of Nemerle), the support of OOP (which is familiar to C# / Java / C++ — programmers), full support for functional programming (higher-order functions, pattern matching, algebraic types, local function, tuples and anonymous types, partial application of functions) inherited from the ML-like languages (ML, OCaml, F #, Haskell) can solve problems not just quick and easy, but very beautiful.
The presence of an integration with VS 2008 and Sharp Develop allows to reduce the threshold of entry and to increase developer’s productivity. IDE supports all language features including information about the derived types and macro’s expansion.
Macros allow you to raise the level of the program to unprecedented heights (and it does not sacrifice the richness of the language’s syntax as in Lisp). You can develop macros which simplify a solution of your every day tasks. You can use the language-oriented programming which is a new approach of software development. It allows you to create your own domain specific language (DSL), to solve the problem by describing it in completely declarative manner. Macros allow you to implement and maintain DSL. Macros allow much faster and easier to get automatic support for IDE, high speed of the generated code, etc.
In addition, you can use a lot of ready-made macros included in the standard distribution of Nemerle’s compiler or available from third-party developers. The following outstanding solutions were implemented with the help of Nemerle’s macroses:
 Nemerle.Peg – macro which implements a generator of parseres based on the notation of PEG. Its advantages include: ease of use (the use of Nemerle.Peg as simple as regular expressions), an incredibly high speed of work of produced parser — ~ 4 MB / sec. on the grammar of C # 4.0 (with the construction of AST), dynamic extensibility (rules of grammar can be included on the fly), support for left recursion and associativity (through intellectual memoization and integration of Pratt’s algorithm), support for predicates (allows you to easily parse such languages as C# or C++), transaction’s support for domains (allows you to parse a number of context-sensitive languages like C / C++ / Nemerle). Nemerle 2.0 macro system will be based on Nemerle.Peg.

  • Nemerle.Xml — macro which allows you to use quasi-quote of XML inside Nemerle-code (XML-literals allow active areas, and control structures). This feature is analogous to that in languages like Scala and VB.NET, but is available as a separate module (macro) or source code.
  • ComputationExpressions — macro which implements the possibility of a similar built-in feature of the F# language — Computation Expressions. It is a beautiful syntactic sugar for monads. You can, for example, greatly simplify the creation of parallel code with async (implemented on the basis of ComputationExpressions).
  • Support for LINQ. The LINQ support is implemented as macros in Nemerle.
  • Macro which allows you to add workarounds for complex data structures (similar to using a visitor pattern, but without the manual work).
  • Macros which automate the implementation of OOP design patterns: Abstract factory pattern, Aggregation (Composite), Proxy, Singleton.
  • As well as many small macros which make the code shorter and clearer: Late (late binding), Lazy (deferred execution), Logging, Profiling, Record (automatic creation of constructors which initialize the fields), Surroundwith (fast creation of operators similar to "using").
  • Library of Nemerle’s macros on Rails (NoR) is analog of Ruby on Rails but in a statically typed language. Although the world of statically typed languages have the same framework (Scala Lift), but the implementation for Nemerle is based on macros and recognized standards such as LINQ.
  • DependencyProperty – the automation of implementation of dependent WPF’s properties.
  • AOP – the support of aspect-oriented programming.


  • N>Продолжаю перевод статьи Макрос PegGrammar.


    Спасибо. Это то что надо в данный момент.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[5]: Визитка (заглавная страница nemerle.org)
    От: kl Германия http://stardog.com
    Дата: 15.02.11 16:30
    Оценка: +1
    Здравствуйте, VladD2, Вы писали:

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


    N>>послал на твое мыло (vc@rsdn.ru) перевод визитки.


    VD>Да надо было прямо сюда выкладывать. За одно народ правки бы предложил. В общем, выкладываю. Замечания просьба давать в ответ на это сообщение.


    VD>[q]

    VD>Epigraph: Nemerle — this is what was supposed to be C #.

    Я пока дальше не смотрел, но как насчет более яркого эпиграфа: "Nemerle is C# done right." Если захотите оставить предыдущий вариант, то по крайней мере надо скорректировать порядок слов: Nemerle: this is what C# was supposed to be.
    no fate but what we make
    Re[2]: Визитка (заглавная страница nemerle.org)
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 15.02.11 16:42
    Оценка:
    Здравствуйте, Alex_Avr, Вы писали:

    A_A>P.S. К тегам оформления [b] и [i] в форматтер сообщений RSDN хорошо бы еще добавить тег [strike].


    [s]
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[5]: Визитка (заглавная страница nemerle.org)
    От: Nikkk2010  
    Дата: 15.02.11 17:06
    Оценка:
    VD>Замечания просьба давать в ответ на это сообщение.
    перевод последнего предложения:
    Сплайс-строки. Это аналог "активных" строк из скриптовых языков вроде Ruby, но реализована эта возможность на макросах.
    Splice-lines. This is analog of "active" lines from scripting languages like Ruby, but this feature is implemented in macros.
    I do all my own stunts
    Re[6]: Визитка (заглавная страница nemerle.org)
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 15.02.11 20:00
    Оценка:
    Здравствуйте, Nikkk2010, Вы писали:

    N>Сплайс-строки. Это аналог "активных" строк из скриптовых языков вроде Ruby, но реализована эта возможность на макросах.

    N>Splice-lines. This is analog of "active" lines from scripting languages like Ruby, but this feature is implemented in macros.

    Строки здесь — это strings. В остальном нормально.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[6]: Визитка (заглавная страница nemerle.org)
    От: kochetkov.vladimir Россия https://kochetkov.github.io
    Дата: 15.02.11 20:45
    Оценка:
    Здравствуйте, kl, Вы писали:

    VD>>[q]

    VD>>Epigraph: Nemerle — this is what was supposed to be C #.
    kl>Я пока дальше не смотрел, но как насчет более яркого эпиграфа: "Nemerle is C# done right." Если захотите оставить предыдущий вариант, то по крайней мере надо скорректировать порядок слов: Nemerle: this is what C# was supposed to be.

    А я бы в эпиграфе написал нейтральнее, но в то же время шире: Nemerle — the programming language that should it be (или как там правильно по ихнему), а сравнение с шарпом (и прочими языками, как предложил Ziaw) поставил бы в сам текст. Nemerle — это ведь не только "правильный шарп", это гораздо больше.

    [Интервью] .NET Security — это просто
    Автор: kochetkov.vladimir
    Дата: 07.11.17
    Re[7]: Визитка (заглавная страница nemerle.org)
    От: kochetkov.vladimir Россия https://kochetkov.github.io
    Дата: 15.02.11 20:46
    Оценка:
    Здравствуйте, kochetkov.vladimir, Вы писали:

    KV>А я бы в эпиграфе написал нейтральнее, но в то же время шире: Nemerle — the programming language that should it be (или как там правильно по ихнему), а сравнение с шарпом (и прочими языками, как предложил Ziaw) поставил бы в сам текст. Nemerle — это ведь не только "правильный шарп", это гораздо больше.


    Это не к переводу относится, а к исходному сообщению. Промахнулся малость

    [Интервью] .NET Security — это просто
    Автор: kochetkov.vladimir
    Дата: 07.11.17
    Re[7]: Визитка (заглавная страница nemerle.org)
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 15.02.11 21:37
    Оценка:
    Здравствуйте, kochetkov.vladimir, Вы писали:

    KV>Nemerle — это ведь не только "правильный шарп", это гораздо больше.


    Хороший слоган получился
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[5]: Визитка (заглавная страница nemerle.org)
    От: kl Германия http://stardog.com
    Дата: 15.02.11 21:38
    Оценка: 78 (2) +1
    Здравствуйте, VladD2, Вы писали:

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


    N>>послал на твое мыло (vc@rsdn.ru) перевод визитки.


    VD>Да надо было прямо сюда выкладывать. За одно народ правки бы предложил. В общем, выкладываю. Замечания просьба давать в ответ на это сообщение.


    VD>

    VD>Epigraph: Nemerle — this is what was supposed to be C #.
    VD>Nemerle is a multiparadigmy general-purpose programming language for the .Net platform, which is also easy to use as C # or VB.NET but has an incomparably more opportunities. You can program on Nemerle as on advanced C#, and use perfectly implemented possibilities of functional programming and metaprogramming (macros in the style of Lisp).
    VD>Strong type inference (the best among the languages supporting subtypes and inheritance), flexible and very powerful metaprogramming’s subsystem (macros of Nemerle), the support of OOP (which is familiar to C# / Java / C++ — programmers), full support for functional programming (higher-order functions, pattern matching, algebraic types, local function, tuples and anonymous types, partial application of functions) inherited from the ML-like languages (ML, OCaml, F #, Haskell) can solve problems not just quick and easy, but very beautiful.


    Если честно, то я бы переписал некоторые предложения. Перевод нормальный для статьи, но на центральной странице текст должен звучать чуть более "по-английски", поэтому не стоит переводить слово в слово. Например, первые 2 абзаца я бы сам написал вот так:

    Nemerle is a programming language for the .Net platform that supports a number of paradigms. It is as easy to use as C# or VB.NET but is by far more powerful. One may start using it as an advanced C# and then, as learning goes on, employ a range of cool features enabling functional programming and metaprogramming. The latter is based on macros bearing some similarity to Lisp.

    Nemerle enables software engineers to solve problems not only in a quick and easy but also in an amazingly elegant way. This is made possible due to the powerful type inference (superior to any existing language supporting type hierarchies and inheritance), flexible and powerful macro-based metaprogramming support, object-oriented capabilities familiar to any C++, C#, or Java programmer, and full-fledged integrated support of functional programming (including higher-order functions, pattern matching, local functions, tuples, anonymous types, and partial application) borrowed from ML-like languages, e.g., ML, OCaml, F#, and Haskell.


    Пускай кто-нибудь сравнит и если надо, я откорректирую остальное.

    PS. Никого не хотел обидеть, честно
    no fate but what we make
    Re[8]: Визитка (заглавная страница nemerle.org)
    От: kochetkov.vladimir Россия https://kochetkov.github.io
    Дата: 15.02.11 21:46
    Оценка:
    Здравствуйте, VladD2, Вы писали:

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


    KV>>Nemerle — это ведь не только "правильный шарп", это гораздо больше.


    VD>Хороший слоган получился


    Это слоган и есть (исходная фраза по ЯП), если честно (покажу кусочек):




    [Интервью] .NET Security — это просто
    Автор: kochetkov.vladimir
    Дата: 07.11.17
    Re[7]: Визитка (заглавная страница nemerle.org)
    От: kl Германия http://stardog.com
    Дата: 15.02.11 21:54
    Оценка: +1
    Здравствуйте, kochetkov.vladimir, Вы писали:

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


    VD>>>[q]

    VD>>>Epigraph: Nemerle — this is what was supposed to be C #.
    kl>>Я пока дальше не смотрел, но как насчет более яркого эпиграфа: "Nemerle is C# done right." Если захотите оставить предыдущий вариант, то по крайней мере надо скорректировать порядок слов: Nemerle: this is what C# was supposed to be.

    KV>А я бы в эпиграфе написал нейтральнее, но в то же время шире: Nemerle — the programming language that should it be (или как там правильно по ихнему)


    Ок. Грамматически правильно будет Nemerle: this is what a programming language should look like (ну или should be).
    Но, понимаешь, "широта" и "нейтральность" — это не для слогана. Слоган должен быть кратким, броским и слегка провокационным. Поэтому я и предложил "C# Done Right". Он должен цеплять, как вирусная реклама.
    Если нейтральнее, то можно, скажем, "Nemerle: A Programming Language for The XXI Century".
    no fate but what we make
    Re[9]: Визитка (заглавная страница nemerle.org)
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 15.02.11 22:33
    Оценка:
    Здравствуйте, kochetkov.vladimir, Вы писали:

    KV>


    Что-то серовато как то. Хорошо бы по живее сделать немного.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[8]: Визитка (заглавная страница nemerle.org)
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 15.02.11 22:35
    Оценка:
    Здравствуйте, kl, Вы писали:

    kl>Ок. Грамматически правильно будет Nemerle: this is what a programming language should look like (ну или should be).

    kl>Но, понимаешь, "широта" и "нейтральность" — это не для слогана. Слоган должен быть кратким, броским и слегка провокационным. Поэтому я и предложил "C# Done Right". Он должен цеплять, как вирусная реклама.

    Вот именно цеплять. По этому не надо бояться некой импровизационности.

    kl>Если нейтральнее, то можно, скажем, "Nemerle: A Programming Language for The XXI Century".


    А вот это уже не цепляет.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[3]: Визитка (заглавная страница nemerle.org)
    От: Alex_Avr Россия  
    Дата: 16.02.11 06:08
    Оценка:
    Здравствуйте, Ziaw, Вы писали:

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


    A_A>>P.S. К тегам оформления [b] и [i] в форматтер сообщений RSDN хорошо бы еще добавить тег [strike].


    Z>этот?

    Z>

    Z>[s]этот[/s]?


    Ага, только его почему-то в форме написания сообщения не видно.
    С уважением, Александр Авраменко.
    Re[10]: Визитка (заглавная страница nemerle.org)
    От: Ziaw Россия  
    Дата: 16.02.11 06:25
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    VD>Что-то серовато как то. Хорошо бы по живее сделать немного.


    А мне нравится. Стильно, без аляповатостей.
    Re[9]: Визитка (заглавная страница nemerle.org)
    От: Nikkk2010  
    Дата: 16.02.11 07:17
    Оценка:
    Здравствуйте, VladD2, Вы писали:

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


    kl>>Ок. Грамматически правильно будет Nemerle: this is what a programming language should look like (ну или should be).

    kl>>Но, понимаешь, "широта" и "нейтральность" — это не для слогана. Слоган должен быть кратким, броским и слегка провокационным. Поэтому я и предложил "C# Done Right". Он должен цеплять, как вирусная реклама.

    VD>Вот именно цеплять. По этому не надо бояться некой импровизационности.


    kl>>Если нейтральнее, то можно, скажем, "Nemerle: A Programming Language for The XXI Century".


    VD>А вот это уже не цепляет.

    Учитывая замечания, отредактированная версия визитки:
    Epigraph: Nemerle — this is what C # was supposed to be.

    Nemerle is a general-purpose programming language for the .Net platform that supports a number of paradigms. It is as easy to use as C# or VB.NET but is by far more powerful. One may start using it as an advanced C# and then, as learning goes on, employ a range of cool features enabling functional programming and metaprogramming. The latter is based on macros bearing some similarity to Lisp.

    Strong type inference (the best among the languages supporting subtypes and inheritance), flexible and very powerful metaprogramming’s subsystem (macros of Nemerle), the support of OOP (which is familiar to C# / Java / C++ — programmers), full support for functional programming (higher-order functions, pattern matching, algebraic types, local function, tuples and anonymous types, partial application of functions) inherited from the ML-like languages (ML, OCaml, F #, Haskell) can solve problems not just quick and easy, but very beautiful.
    The presence of an integration with VS 2008 and Sharp Develop allows to reduce the threshold of entry and to increase developer’s productivity. IDE supports all language features including information about the derived types and macro’s expansion.

    Macros allow you to raise the level of the program to unprecedented heights (and it does not sacrifice the richness of the language’s syntax as in Lisp). You can develop macros which simplify a solution of your every day tasks. You can use the language-oriented programming which is a new approach of software development. It allows you to create your own domain specific language (DSL), to solve the problem by describing it in completely declarative manner. Macros allow you to implement and maintain DSL. Macros allow much faster and easier to get automatic support for IDE, high speed of the generated code, etc.

    In addition, you can use a lot of ready-made macros included in the standard distribution of Nemerle’s compiler or available from third-party developers. The following outstanding solutions were implemented with the help of Nemerle’s macros:
  • Nemerle.Peg – macro which implements a generator of parsers based on the notation of PEG. Its advantages include: ease of use (the use of Nemerle.Peg as simple as regular expressions), an incredibly high speed of work of produced parser — ~ 4 MB / sec. on the grammar of C # 4.0 (with the construction of AST), dynamic extensibility (rules of grammar can be included on the fly), support for left recursion and associativity (through intellectual memoization and integration of Pratt’s algorithm), support for predicates (allows you to easily parse such languages as C# or C++), transaction’s support for domains (allows you to parse a number of context-sensitive languages like C / C++ / Nemerle). Nemerle 2.0 macro system will be based on Nemerle.Peg.
  • Nemerle.Xml — macro which allows you to use quasi-quote of XML inside Nemerle-code (XML-literals allow active areas, and control structures). This feature is analogous to that in languages like Scala and VB.NET, but is available as a separate module (macro) or source code.
  • ComputationExpressions — macro which implements the possibility of a similar built-in feature of the F# language — Computation Expressions. It is a beautiful syntactic sugar for monads. You can, for example, greatly simplify the creation of parallel code with async (implemented on the basis of ComputationExpressions).
  • Support for LINQ. The LINQ support is implemented as macros in Nemerle.
  • Macro which allows you to add workarounds for complex data structures (similar to using a visitor pattern, but without the manual work).
  • Macros which automate the implementation of OOP design patterns: Abstract factory pattern, Aggregation (Composite), Proxy, Singleton.
  • As well as many small macros which make the code shorter and clearer: Late (late binding), Lazy (deferred execution), Logging, Profiling, Record (automatic creation of constructors which initialize the fields), Surroundwith (fast creation of operators similar to "using").
  • Library of Nemerle’s macros on Rails (NoR) is analog of Ruby on Rails but in a statically typed language. Although the world of statically typed languages have the same framework (Scala Lift), but the implementation for Nemerle is based on macros and recognized standards such as LINQ.
  • DependencyProperty – the automation of implementation of dependent WPF’s properties.
  • AOP – the support of aspect-oriented programming.
  • Splice-strings. This is analog of "active" strings from scripting languages like Ruby, but this feature is implemented in macros.
  • I do all my own stunts
    Re[10]: Работать неохота
    От: Mamut Швеция http://dmitriid.com
    Дата: 16.02.11 14:26
    Оценка: 28 (3)
    kl>>>Ок. Грамматически правильно будет Nemerle: this is what a programming language should look like (ну или should be).
    kl>>>Но, понимаешь, "широта" и "нейтральность" — это не для слогана. Слоган должен быть кратким, броским и слегка провокационным. Поэтому я и предложил "C# Done Right". Он должен цеплять, как вирусная реклама.

    VD>>Вот именно цеплять. По этому не надо бояться некой импровизационности.


    kl>>>Если нейтральнее, то можно, скажем, "Nemerle: A Programming Language for The XXI Century".


    Programming language done right


    VD>>А вот это уже не цепляет.

    N>Учитывая замечания, отредактированная версия визитки:
    N>Epigraph: Nemerle — this is what C # was supposed to be.

    N>Nemerle is a general-purpose programming language for the .Net platform that supports a number of paradigms. It is as easy to use as C# or VB.NET but is by far more powerful. One may start using it as an advanced C# and then, as learning goes on, employ a range of cool features enabling functional programming and metaprogramming. The latter is based on macros bearing some similarity to Lisp.


    N>Strong type inference (the best among the languages supporting subtypes and inheritance), flexible and very powerful metaprogramming’s subsystem (macros of Nemerle), the support of OOP (which is familiar to C# / Java / C++ — programmers), full support for functional programming (higher-order functions, pattern matching, algebraic types, local function, tuples and anonymous types, partial application of functions) inherited from the ML-like languages (ML, OCaml, F #, Haskell) can solve problems not just quick and easy, but very beautiful.



    Strong type inference (the best among the languages supporting subtypes and inheritance), flexible and very powerful metaprogramming subsystem (Nemerle macros), full support for OOP (which will be familiar to C# / Java / C++ — programmers), full support for functional programming (higher-order functions, pattern matching, algebraic types, local functions, tuples and anonymous types, partial application of functions) inherited from the ML family of languages (ML, OCaml, F #, Haskell) can solve problems not just quick and easy, but very beautiful.

    N>The presence of an integration with VS 2008 and Sharp Develop allows to reduce the threshold of entry and to increase developer’s productivity. IDE supports all language features including information about the derived types and macro’s expansion.


    You can use Microsoft Visual Studio 2008 or SharpDevelop to start developing your programs right away. IDE integration supports all language features including information about derived types and macro expansion.

    N>Macros allow you to raise the level of the program to unprecedented heights (and it does not sacrifice the richness of the language’s syntax as in Lisp). You can develop macros which simplify a solution of your every day tasks. You can use the language-oriented programming which is a new approach of software development. It allows you to create your own domain specific language (DSL), to solve the problem by describing it in completely declarative manner. Macros allow you to implement and maintain DSL. Macros allow much faster and easier to get automatic support for IDE, high speed of the generated code, etc.



    Macros allow you to raise the level of the program to unprecedented heights (and it does not sacrifice the richness of the language’s syntax as in Lisp). You can develop macros which simplify a solution of your every day tasks. You can use language-oriented programming which is a new approach to software development. You can create your own domain specific language (DSL) to solve a problem by describing it in a completely declarative manner. Macros allow you to implement and maintain DSLs. Macros let you quickly implement your own DSLs that are easy to develop and maintain, while providing full support from IDE and generating in highly opimized code.

    N>In addition, you can use a lot of ready-made macros included in the standard distribution of Nemerle’s compiler or available from third-party developers. The following outstanding solutions were implemented with the help of Nemerle’s macros:


    N>* Nemerle.Peg – macro which implements a generator of parsers based on the notation of PEG. Its advantages include: ease of use (the use of Nemerle.Peg as simple as regular expressions), an incredibly high speed of work of produced parser — ~ 4 MB / sec. on the grammar of C # 4.0 (with the construction of AST), dynamic extensibility (rules of grammar can be included on the fly), support for left recursion and associativity (through intellectual memoization and integration of Pratt’s algorithm), support for predicates (allows you to easily parse such languages as C# or C++), transaction’s support for domains (allows you to parse a number of context-sensitive languages like C / C++ / Nemerle). Nemerle 2.0 macro system will be based on Nemerle.Peg.



    * Nemerle.Peg – implements a parser generator based on PEG notation. Among its advantages: ease of use (as easy and simple to as regular expressions), an incredibly high speed generated parsers — ~ 4 MB / sec. when parsing C# 4.0 grammar (and building an AST for it), dynamic extensibility (grammar rules can be updated on the fly), support for left recursion and associativity (through intellectual memoization and integration of Pratt’s algorithm), support for predicates (allows you to easily parse such languages as C# or C++), transaction support for domains (allows you to parse a number of context-sensitive languages like C / C++ / Nemerle). Nemerle 2.0 macro system will be based on Nemerle.Peg.

    N>* Nemerle.Xml — macro which allows you to use quasi-quote of XML inside Nemerle-code (XML-literals allow active areas, and control structures). This feature is analogous to that in languages like Scala and VB.NET, but is available as a separate module (macro) or source code.


    * Nemerle.Xml — allows you to use XML literals inside Nemerle-code (XML-literals allow active areas, and control structures). This feature is analogous to that in languages like Scala and VB.NET, but is available as a separate module (macro) or source code.

    N>* ComputationExpressions — macro which implements the possibility of a similar built-in feature of the F# language — Computation Expressions. It is a beautiful syntactic sugar for monads. You can, for example, greatly simplify the creation of parallel code with async (implemented on the basis of ComputationExpressions).


    * ComputationExpressions — macro which implements Computation Expressions, similar to those built in F# programming language. It is a beautiful syntactic sugar for monads. You can, for example, greatly simplify the creation of parallel code with async (implemented on the basis of ComputationExpressions).

    N>* Support for LINQ. The LINQ support is implemented as macros in Nemerle.


    * Support for LINQ. The LINQ support is implemented as a macro in Nemerle.

    N>* Macro which allows you to add workarounds for complex data structures (similar to using a visitor pattern, but without the manual work).


    * A macro which allows you to add workarounds for complex data structures (similar to using a visitor pattern, but without the manual work).

    N>* Macros which automate the implementation of OOP design patterns: Abstract factory pattern, Aggregation (Composite), Proxy, Singleton.

    N>* As well as many small macros which make the code shorter and clearer: Late (late binding), Lazy (deferred execution), Logging, Profiling, Record (automatic creation of constructors which initialize the fields), Surroundwith (fast creation of operators similar to "using").
    N>* Library of Nemerle’s macros on Rails (NoR) is analog of Ruby on Rails but in a statically typed language. Although the world of statically typed languages have the same framework (Scala Lift), but the implementation for Nemerle is based on macros and recognized standards such as LINQ.

    * Nemerle on Rails (NoR), a port of Ruby on Rails ideology to a statically typed language. Even though a similar framework for a statically typed language already exists (Scala's Lift), NoR's implementation differs in that it's entierly based on macros and uses recognized standards such as LINQ throughout.

    N>* DependencyProperty – the automation of implementation of dependent WPF’s properties.


    * DependencyProperty – automates implementation of dependent WPF’s properties.

    N>* AOP – the support of aspect-oriented programming.


    * AOP – support for aspect-oriented programming.

    N>* Splice-strings. This is analog of "active" strings from scripting languages like Ruby, but this feature is implemented in macros.


    * Splice-strings. This is similar to "active" strings found in scripting languages such as Ruby. However, this feature is implemented using macros.


    dmitriid.comGitHubLinkedIn
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.