Nemerle
От: Дм.Григорьев  
Дата: 27.02.07 08:01
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что же до любьви к прекрасному... то очень советю покурить Nemerle.


Блин, Немерле, Немерле... Хватит дразниться, в конце концов!!!
1. Что слышно насчет реализаций под линукс, и/или свободных реализаций? Когда ожидать?
2. И во что дело упирается — в нормальную VM? Не верю. Что им мешает в натив компилять?
3. Поддержка со стороны IDE, кроме VS + твоей интеграции?
4. Вообще, какова текущая ситуация? Что куда компилируется и где это 'куда' может работать?
Спасибо.
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[4]: Не пора ли нам перейти на D
От: Disappear  
Дата: 27.02.07 08:07
Оценка:
Здравствуйте, qvasic, Вы писали:

T>>>Я забыл как там у Страуструпа "C++ is my favorite garbage collection language, because it produces no garbage" или как-то так.

D>>В языке C++ его же идиому RAI сложно использовать

Q>чем же её сложно использовать?

Q>кроме того, о незакрытых файлах и неразлоченых мьютексах тоже сборщик мусора позоботиться? RAII ведь не только про память.

Вот вот. В С++ приходится писать многочисленные dummy классы, для разных видов ресурсов. В D для захвата ресурса есть ключевые слова scope и guard.
Замет — try, catch без finally. Понятно конечно, что можно снова городить кучу dummy классов, но более человечнее будет выглядеть код на языке с поддержкой finally.
Re[4]: Не пора ли нам перейти на D
От: Disappear  
Дата: 27.02.07 08:09
Оценка:
Здравствуйте, Socrat, Вы писали:

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

...
S>И где тут шаблоны и чем они лучше?

http://www.digitalmars.com/d/templates-revisited.html
http://www.digitalmars.com/d/variadic-function-templates.html
Nemerle - еще вопрос
От: Дм.Григорьев  
Дата: 27.02.07 08:11
Оценка:
Еще вопрос: область применения, точнее наличие библиотек. В частности:

— построение графических интерфейсов (и какова степень развитости этой либы)
— коннекторы к SQL серверам
— поддержка сетей (в частности, http(s)-клиента)
— возможности использования для серверной разработки
— что ещё?
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[4]: Не пора ли нам перейти на D
От: fmiracle  
Дата: 27.02.07 08:16
Оценка: :)
Здравствуйте, ie, Вы писали:

ie>Интересно, а история слыхала случаи о отправке модератора в бан?


Еще интереснее узнать про преценденты отправки модератора в бан самим сабой. Этакое харакири по-модераторски.
Re: Nemerle - еще вопрос
От: Курилка Россия http://kirya.narod.ru/
Дата: 27.02.07 08:18
Оценка:
Здравствуйте, Дм.Григорьев, Вы писали:

ДГ>Еще вопрос: область применения, точнее наличие библиотек. В частности:


ДГ>- построение графических интерфейсов (и какова степень развитости этой либы)

ДГ>- коннекторы к SQL серверам
ДГ>- поддержка сетей (в частности, http(s)-клиента)
ДГ>- возможности использования для серверной разработки
ДГ>- что ещё?

Насколько я понимаю, всё это определяется платформой на которой работает немерле — .Net, думаю что есть в нём, ты в курсе.
Re[9]: Не пора ли нам перейти на D
От: Disappear  
Дата: 27.02.07 08:30
Оценка: +1 -1
Здравствуйте, konsoletyper, Вы писали:

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


D>>Читал про nemerle немного.


K>Надо было не немного. Именно из-за немного срабатывает парадокс Блаба.


D>> Выбивает интерес сразу то, что язык работает через .NET CLI (как и любую другую VM)


K>И что? VM — весьма условная штука. На самом деле всё так же компилится в native-код и выполняется достаточно быстро.


Минусы VM:
— Это всегда ряд ограничений при сближении с платформой. Все зависит от VM, но в хорошей VM этих ограничений должно быть больше.
— Прерывания, порты ввода вывода, управление памятью и другая жизненная реальность — все это скрыто под занавесом виртуальной машины.
— Код под виртуальной машиной всегда будет медленнее native кода. Это элементарные законы математики, тут ничего нельзя изменить. Никакие технологии, и отчаянные попытки маркетологов не убедят в обратном.

Это только минусы, есть конечно ряд хороших плюсов. Но как не печально, все это не подходит для C++ программистов, которые привыкли "ощущать" работу программы.

D>>Субъективно конечно — но синтаксис мне не понравился, как-то скептически отношусь к добавлению функционала через всяческие синтаксические причуды (закорючки и пр.)


K>Какие именно закорючки не понравились? Чем вообще синтаксис плох?


Говорю же — субъективно. Как С++ программисту, нравится С/C++ синтаксис, а лучше — если он проще, как в D.
Re[2]: Не пора ли нам перейти на D
От: igna Россия  
Дата: 27.02.07 08:34
Оценка: +1
Здравствуйте, VladD2, Вы писали:

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


Вот именно. А нельзя ли попросить модератора вернуть тему взад? (Нет, это не обсуждение, это намек на просьбу.)

Я всерьез. Автор похоже хотел обсудить именно D vs. C++. Может быть это нужно было делать в "Философии" помянув и C++ в названии темы, но с имеющимся названием неудивительно, что здесь "рано или поздно" появилось кое-что не имеющее отношение к "D vs. C++".
Re[8]: Не пора ли нам перейти на D
От: ie Россия http://ziez.blogspot.com/
Дата: 27.02.07 09:27
Оценка: 3 (1) +2
Здравствуйте, Nuzhny, Вы писали:

N>И это простой и понятный пример? Множество скобок и др. символов лично для меня не вполне читабельны.


Эээх... и почему все C++ программисты так говорят увидив код на Немерле?

N>Все программы на Немерле так выглядят?


Да!!! На Lisp они выглядят так:
(defun factorial (n &;optional (acc 1))
  (if (<;= n 1)
    acc
    (factorial (- n 1) (* acc n))))

на OCaml так:
let rec factorial x = 
  match x with 
      0 -> 1 
    | n -> (n * (factorial (n - 1)))

на Haskell так:
factorial 0 = 1
factorial n = n * (factorial (n-1))

на Prolog так:
factorial(0,1).
factorial(N,F) :- N > 0, M is N - 1, factorial(M,Fm), F is N * Fm.

на J вообще так:
factorial =. !

Страаааашно они все выглядят. Так что уважаемый, Блаб, бррр...... Nuzhny, продолжайте писать на C++, единственом лаконичном и по праву называемом великим языке!
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[5]: Не пора ли нам перейти на D
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.02.07 09:32
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>Еще интереснее узнать про преценденты отправки модератора в бан самим сабой. Этакое харакири по-модераторски.


И это уже было
... << RSDN@Home 1.2.0 alpha rev. 675>>
AVK Blog
Re[9]: Не пора ли нам перейти на D
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 27.02.07 09:39
Оценка:
Здравствуйте, ie, Вы писали:

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


N>>И это простой и понятный пример? Множество скобок и др. символов лично для меня не вполне читабельны.


ie>Эээх... и почему все C++ программисты так говорят увидив код на Немерле?


Причём тут С++? Сами же привели несколько нормальных вариантов. Могу ещё школу вспомнить и Паскаль с Бейсиком — будет читабельно (не обязательно кратко).


ie>Страаааашно они все выглядят. Так что уважаемый, Блаб, бррр...... Nuzhny, продолжайте писать на C++, единственом лаконичном и по праву называемом великим языке!

Для обработки изображений (чем я и занимаюсь) не так уж и много языков подходят. На чём мне ещё писать?
Re[6]: Не пора ли нам перейти на D
От: ironwit Украина  
Дата: 27.02.07 09:42
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


F>>Еще интереснее узнать про преценденты отправки модератора в бан самим сабой. Этакое харакири по-модераторски.


AVK>И это уже было


ссылку сестра, ссылку
... << RSDN@Home 1.2.0 alpha rev. 0>>
Я не умею быть злым, и не хочу быть добрым.
Re[9]: Не пора ли нам перейти на D
От: Disappear  
Дата: 27.02.07 09:43
Оценка:
Здравствуйте, ie, Вы писали:

ie>Да!!! На Lisp они выглядят так:

ie>
ie>;(defun factorial (n &optional (acc 1))
ie>;  (if (<= n 1)
ie>;    acc
ie>;    (factorial (- n 1) (* acc n))))
ie>;

ie>на OCaml так:
ie>
ie>let rec factorial x = 
ie>  match x with 
ie>      0 -> 1 
ie>    | n -> (n * (factorial (n - 1)))
ie>

ie>на Haskell так:
ie>
ie>factorial 0 = 1
ie>factorial n = n * (factorial (n-1))
ie>

ie>на Prolog так:
ie>
ie>factorial(0,1).
ie>factorial(N,F) :- N > 0, M is N - 1, factorial(M,Fm), F is N * Fm.
ie>

ie>на J вообще так:
ie>
ie>factorial =. !
ie>


На D так:
template factorial(int n)
{
  static if (n == 1)
    const factorial = 1;
  else
    const factorial = n * factorial!(n-1);
}


кроме-того оптимизатор, может в compile-time посчитать такие функции:
int factorial(int n)
{
if (n == 1)
return 1;
else
return n * factorial(n — 1);
}

static int x = factorial(5);

Факториал — это только простейший пример, зачем на основе него строить какие-то выводы.
Re[2]: Nemerle - еще вопрос
От: Дм.Григорьев  
Дата: 27.02.07 10:06
Оценка: :))
Здравствуйте, Курилка, Вы писали:

К>Насколько я понимаю, всё это определяется платформой на которой работает немерле — .Net, думаю что есть в нём, ты в курсе.


Как-то не особо верится, что объектные либы от C# легко прикручиваются к немерле. Хочется услышать подтверждение от главного немерлиста.
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[10]: Не пора ли нам перейти на D
От: ie Россия http://ziez.blogspot.com/
Дата: 27.02.07 10:14
Оценка:
Здравствуйте, Nuzhny, Вы писали:

ie>>Эээх... и почему все C++ программисты так говорят увидив код на Немерле?

N>Причём тут С++?

Не знаю. Но C# программеры в моем окружении относятся к Немерле скорее положительно, а C++ наоборот

N>Сами же привели несколько нормальных вариантов.


Хммм... Ну если варианты на Haskell и OCaml понятны, то почему на Немерле стало вдруг не ясно ?
Factorial(n : uint) : ulong
{
    | 0 => 1
    | _ => n * Factorial(n - 1)
}

сравните, очень ведь похоже.

ie>>Страаааашно они все выглядят. Так что уважаемый, Блаб, бррр...... Nuzhny, продолжайте писать на C++, единственом лаконичном и по праву называемом великим языке!

N>Для обработки изображений (чем я и занимаюсь) не так уж и много языков подходят. На чём мне ещё писать?

Тот же D будет несомненным шагом вперед
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[10]: Не пора ли нам перейти на D
От: ie Россия http://ziez.blogspot.com/
Дата: 27.02.07 10:14
Оценка:
Здравствуйте, Disappear, Вы писали:

D>Факториал — это только простейший пример, зачем на основе него строить какие-то выводы.


Так я и не строю
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[3]: Nemerle - еще вопрос
От: ie Россия http://ziez.blogspot.com/
Дата: 27.02.07 10:19
Оценка: +1
Здравствуйте, Дм.Григорьев, Вы писали:

К>>Насколько я понимаю, всё это определяется платформой на которой работает немерле — .Net, думаю что есть в нём, ты в курсе.

ДГ>Как-то не особо верится, что объектные либы от C# легко прикручиваются к немерле. Хочется услышать подтверждение от главного немерлиста.

Дык дело тут не в конкретном языке а в понятии сборки в .NET. Уж коли почти весь FCL написан на C# и Nemerle, а так же еще добрый 10ок языков, их активно юзает, никаких препятсвий нет и быть не может.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[10]: Не пора ли нам перейти на D
От: Mirrorer  
Дата: 27.02.07 10:21
Оценка:
Здравствуйте, Disappear, Вы писали:

D>- Код под виртуальной машиной всегда будет медленнее native кода. Это элементарные законы математики, тут ничего нельзя изменить. Никакие технологии, и отчаянные попытки маркетологов не убедят в обратном.

JIT компиляция ?
Пример. Имеем программу работающую на 486 древнем. Not a big deal.
При первом запуске метода байткод дотнетовский JITнется в native. и последующие вызовы будут выполнятся уже без Jit компиляции.
С++ программа же скомпилирована со всеми потимизациями 486-го и работает быстрее. ТАк?

Теперь берем те же программу, переносим на Pentium IV.
Внимание вопрос. Сможет ли с++ программа скомпилированная под 486 использовать фишки четвертого пня для ускорения работы ?
А та же дотнетовская программа сможет. Потому что JIT сгенерирует native код для той платформы на которой он будет выполнятся.
"Если Вы отличаетесь от меня, то это ничуть мне не вредит — Вы делаете меня богаче". Экзюпери
Re[9]: Не пора ли нам перейти на D
От: igna Россия  
Дата: 27.02.07 10:21
Оценка:
Здравствуйте, ie, Вы писали:

ie>на Haskell так:

ie>factorial 0 = 1
ie>factorial n = n * (factorial (n-1))


Ну так понятнее же чем на Nemerle.
Re[11]: Не пора ли нам перейти на D
От: Disappear  
Дата: 27.02.07 10:29
Оценка: :)
Здравствуйте, Mirrorer, Вы писали:

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


D>>- Код под виртуальной машиной всегда будет медленнее native кода. Это элементарные законы математики, тут ничего нельзя изменить. Никакие технологии, и отчаянные попытки маркетологов не убедят в обратном.

M>JIT компиляция ?
M>Пример. Имеем программу работающую на 486 древнем. Not a big deal.
M>При первом запуске метода байткод дотнетовский JITнется в native. и последующие вызовы будут выполнятся уже без Jit компиляции.
M>С++ программа же скомпилирована со всеми потимизациями 486-го и работает быстрее. ТАк?

M>Теперь берем те же программу, переносим на Pentium IV.

M>Внимание вопрос. Сможет ли с++ программа скомпилированная под 486 использовать фишки четвертого пня для ускорения работы ?
M>А та же дотнетовская программа сможет. Потому что JIT сгенерирует native код для той платформы на которой он будет выполнятся.

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

Тормознутость Java и .NET видно даже на глаз, что там говорить и плеваться.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.