Re[16]: преимущества erlang-а?
От: gandalfgrey  
Дата: 31.01.06 14:16
Оценка:
Здравствуйте, CrazyPit, Вы писали:

CP>В этих задачах сложно раскрыть главное приемущество эрланга. Хотелось бы написать какую-нибудь распределённую систему.

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

F1=fun()->3 end.
F2=fun()->5 end.
F3=fun(X,Y,Op)->Op(X(),Y()) end.
Val=F3(F1,F2,{erlang,'+'}).
> 8

Это все можно делать в динамике. Весь исходный код компилится в одну толстую лямбду, которая, собственно, и есть полученный выполнимый код. Ее можно положить в файл...
Re[9]: преимущества erlang-а?
От: potan http://wtk.norilsk.net/pm/
Дата: 31.01.06 15:02
Оценка:
A>Я, скажем вежливо, не спец в C++, я его синтаксис очень ен люблю.
A>Но именно в битовых полях, как мне показалось, Эрланг и плюсы одинаковы.
A>Т.е. я возражаю против фразы "нет равных в описании бинарных данных "

Битовые поля без pattern matching не дают особых преимуществ в реализации протоколов.
Потенциальный конкурент тут скорее NJ Matchine-code Toolkit. По описанию бинарной структуры он генерит препроцессор для C, который реализует pattern matching. Но, на сколько мне известно, его в этой области ни кто не пробовал применять...
Re[20]: преимущества erlang-а?
От: Vermicious Knid  
Дата: 31.01.06 17:09
Оценка: 71 (9) +1 :)
Здравствуйте, CrazyPit, Вы писали:

CP>>>Дело привычки. Расширить язык это одно. Но более важная задача макросов — эффективные высокие абстракции. А вот здесь манипуляция с кодом может быть намного сложнее.


Все так. И Nemerle позволяет производить очень сложные манипуляции с кодом. При этом сам код которым пытается манипулировать Nemerle на порядок сложнее s-expressions Лиспа, так как есть там и синтаксис, и типы, и классы, и вся специфика .NET(например атрибуты).

CP>Как раз удобство очень большое. Оно в возможности создания произвольных абстракций. Не обязательнонужно привязывать себя к каким-то "низкоуровневым" понятиям типа "класс", "объект". Можно бытро создать свой язык для конкретной задачи и выражатьсы уже на нём.


Nemerle эти концепции совмещает. Он оперирует всеми "уровнями". Он позволяет создавать языки для конкретной задачи и он включает уже готовый набор понятий, который можно надстраивать. К тому же эти "низкоуровневые" понятия в Nemerle не совсем "низкоуровневые". Реализован ряд концепций из современных ФЯ — полноценные функции(и все что из этого вытекает), алгебраические типы, паттерн-мэтчинг, кортежи, автоматическое выведение типов(afaik без ряда ограничений свойственных современным ФЯ), при этом полностью поддерживается среда и объектная модель .NET 2.0 включая дженерики(imho с более человеческим синтаксисом и что важно выведением типов).

Nemerle в каком-то смысле мультипарадигмальный язык(не в том же смысле что и C++ ). В частности он позволяет писать в чисто функциональном стиле(при особом желании конечно ) и наооборот может использоваться исключительно как императивный язык(скажем можно автоматически и практически дословно перевести практически любую программу на C# в Nemerle).

CP>Задание правил лексического анализатора:


CP>
CP>(def-matchers
CP> ... code skipped ...
CP> )
CP>

Ну если бы я что-то подобное писал на Nemerle, то это могло бы выглядеть например так:
[BuildScanner
([
  nil = regex("\\s+", ending = ""),
  comp_ops = ["==", "!=", ">=", "<=", "<", ">"],
  plus = "+",
  minus = "-",
  binary_ops_p1 = ["*", "-"],
  left_bracket = "(",
  right_bracket = ")",
  assign = "=",
  comma = ",",
  dot = ".",
  semicolon = ";",
  begin-block = "{",
  end-block = "}",
  keyword("define","to","for","while","else","if","return","default","case","print","switch"),
  integer_const = regex("\\d+", ending = "\\b"),
  identifier = regex("[a-zA-Z]\\w*")
])]
class Scanner
{
// код будет сгенерирован макросом BuildScan
}

// использование
module Main
{
   public Main() : void
   {
       def scanner = Scanner(StringReader("test 123"));
       def tokenList = scanner.ScanToEnd();
       // примерно такие структуры данных могут быть сгенерированны внутри класса Scanner
       // в данном случае Scanner.Token это variant(немерловский аналог алгебраических типов)
       assert(tokenList matches [Scanner.Token.identifier("test"), Scanner.Token.integer_const(123)]);
   }
}


CP>Пользуясь языком без такой системы макропрограммирования, пришлось бы писать описание например на XML, а потом писать обработчик. Здесь же этот код во время компиляции преобразуеться в функции функции лексического анализа.


Абсолютно то же самое можно сделать и на Nemerle. Даже больше — подключить кусочек существующего генератора лексических и/или синтаксических анализаторов к макросу плевое дело(например Coco/R, можно даже не конвертировать его в Nemerle, просто видоизменить и подключить как внешнюю библиотеку). Вплоть до возможности вызова внешней программы(но это уже изврат и должно быть/может быть запрещенно через Code Access Security).

CP>>>Типа местоимение. Мы обозначаем it как местоимение (задавая ему некое значание из выражения например) и можем использовать его в теле. В других языках это вообще нет.


Если я правильно понял, то в Nemerle это можно сделать, если сильно нужно. Я делал. Не скрою — это сложнее, чем в Lisp, по крайней мере далеко не так кратко. Но особой необходимости в таких трюках в Nemerle не существует, все таки специфика языка совсем иная, есть например другие возможности сделать примерно то же самое и проще(например можно модифицировать класс, гигиена на top-level объявления вроде не действует), все зависит от задачи. Imho негигиеничные макросы как в Лисп это не всегда хорошо. Не зря же появился Scheme.

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


CP>Там гигиенические макры, я почитал. Так что нельзя как угодно код преобразовать. Т.е. например чтобы символ введёный в теле макра, не может быть внутри кода переданного в макр.


"Там" очень гибкая макро-система. "Гигиена" легко ломается штатными механизмами. Кроме того макросы в Nemerle работают не только с выражениями как в Lisp и практически всесильны, так как имеют доступ ко всему API компилятора и .NET Framework. Большая часть базовых конструкций и операторов языка реализованна макросами, например такие как if else, for, while, using, foreach. Макросы повторюсь можно использовать не только над выражениями, но и над определениями классов(через расширение грамматики или как аттрибут), членов класса, модулей, пространств имен. Кроме того макросы могут работать с полуразобранным(иерархия различных скобок кажется строится) потоком лексем, таким образом позволяя внедрять конструкции с практически произвольным синтаксисом(более произвольным чем это можно сделать в лиспе).

Скажем xml(пример из набора тестов компилятора):
// использование
foo () : void {
  // никаких кавычек
  def doc = xml (<node name="foo">My name is foo</node>);
  // macro produced some XmlNode for us, we can use it
  print (doc.InnerXml); 
}

// сам макрос, очень примитивная реализация, просто чтобы был полностью рабочий пример
// реальная реализация будет естественно гораздо сложнее, но скажем валидацию в compile-time добавить элементарно
macro tokenizer (tok : Token) 
syntax ("xml", tok) 
{
  def buf = Text.StringBuilder ();
  foreach (t in tok)
    ignore (buf.Append (t.ToString ()));
  // будет сгенерирован следующий код
  // так как макросы гигиенические document и frag не попадут в текущее пространство имен
  <[ 
     def document = XmlDocument ();
     def frag = document.CreateDocumentFragment ();
     frag.InnerXml = $(buf.ToString () : string);
     _ = document.AppendChild (frag);
     document
  ]>
}


Конечно есть у макросов Nemerle и свои недостатки, но с макросами Lisp я бы не стал их сравнивать — это явление совершенно другого рода. Например "макросы" Nemerle по сути представляют из себя скомпилированные модули и линкуются динамически непосредственно к компилятору. Т.е. при наличие совместимой версии компилятора "макросы" можно распространять без исходного текста.
Re[16]: преимущества erlang-а?
От: Arioch  
Дата: 31.01.06 17:23
Оценка: :))
On Tue, 31 Jan 2006 16:42:11 +0300, CrazyPit <43603@users.rsdn.ru> wrote:

> В этих задачах сложно раскрыть главное приемущество эрланга. Хотелось бы

> написать какую-нибудь
> распределённую систему.

DDos gotdotnet.com ? :D

--
Отправлено M2, революционной почтовой программой Opera:
http://www.opera.com/mail/
Posted via RSDN NNTP Server 2.0
Re[16]: преимущества erlang-а?
От: Arioch  
Дата: 31.01.06 17:29
Оценка:
On Tue, 31 Jan 2006 11:48:44 +0300, raskin <40778@users.rsdn.ru> wrote:

> интерпретатор хоть какой-нибудь. Без этой возможности

> неинтересно. Но тогда ему CompactFramework нужен, если его (CFw) вообще
> хватит

....а вот тут м.б. как раз и попробовтаь dotGNU ?
Хотя верю, что интерпретатор, на КПК, да еще под dotGNU будет ползать.

--
Отправлено M2, революционной почтовой программой Opera:
http://www.opera.com/mail/
Posted via RSDN NNTP Server 2.0
Re[12]: преимущества erlang-а?
От: Arioch  
Дата: 31.01.06 17:29
Оценка:
On Tue, 31 Jan 2006 01:01:14 +0300, VladD2 <73@users.rsdn.ru> wrote:
> A>1) Какое отношение Эриксон имеет к Эрлангу ?
> Мне казалось, что одuн создал другого.

Cоздал.
Какое имеет сейчас ?

> A>3) Просто ради интереса, сколько человек работает в MS Research ?

> на зарплаты сотрудников работающих над исследовательскими проектами.

И сколько таких сотрудников примерно ?
И действительно, подключены институты. Думаю разница огромная, по сравнению
с тем, что было в Ericsson CSLabs


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

>
> A>Да, надо будет почитать, что же за компилятор, и почему он не JIT
>
> Кодовое название компилятора Барток. Родился во времена ранней Явы как
> проект компилятора Ява в исполняемое приложение виндовс.
>
> A>Ты же не овзмущаешься, что в Эрланге нет своего TCP-стека, например?
>
> Вообще-то если мы говорим о процессах, то подразумеваем ОС. А если
> подразумеваем ОС, то логично было бы ожидать и TCP-стека. В Сингулярити
> TCP-стек написан как раз на C#. Кстати, говорят по скорости рвет аналог
> из Винды и Линукса.
>
> A>1) Какое отношение Эриксон имеет к Эрлангу ?
>
> Мне казалось, что одни создал другого.
>
> A>2) В другом профиле. Сравнивать Эриксон и МС в части софтостроения...
> A>Примерно так же как в части создания АТС и раутеров, только с обратным
> A>знаком Не считаю я МС крупной фирмой ф области network hardware,
> хотя
> A>вообще, в вакууме — крупная, не возразишь. И наверное могла бы лечь
> A>костьми и потеснить Эрикссон. Но только это, вежливо скажем, не
> A>рационально.
>
> Хм. Это не мои слова.
>
> A>3) Просто ради интереса, сколько человек работает в MS Research ?
>
> MS Research — это не контора. Это проект МС в который МС вбухивает бабки
> которые идут на гранты разным институтам и на зарплаты сотрудников
> работающих над исследовательскими проектами. Так что говорить тут можно
> толко о количестве проектов (которое извесно) и количестве вбуханых
> денег.



--
Отправлено M2, революционной почтовой программой Opera:
http://www.opera.com/mail/
Posted via RSDN NNTP Server 2.0
Re[20]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 01:22
Оценка:
Здравствуйте, little_alex, Вы писали:

_>Это можно кратко сформулировать — если что-то не 0 то сделай с ним (it)то-то и то-то....

_>Такое можно сделать?

По крайней мере не вижу никаких причин не позволяющих это сделать. В прочем как и объяснения зачем это нужно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 02:03
Оценка: :)
Здравствуйте, Vermicious Knid, Вы писали:

...

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


ЗЫ

Меня прикололо, то что императивные конструкции переписываются макросами в функциональные и при этом к производительности особо не докапашся.

В общем, если бы отсуствие полноценной интеграции в студию я бы с удовольствием попробовал бы на этом деле что-то серьезное написать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 02:03
Оценка:
Здравствуйте, raskin, Вы писали:

R>Ну а кроме того, меня часто интересует одноразовая функция — когда

R>результат будет оставлен, а код заведомо выкинут.

В VS 2005 есть такая настройка "Не сохранять проект". Новый проект создается как бы в воздухе и если ты попыташся создать новый или закрыть IDE тебе предложат записать его или потерять изменения. Я этим делом постоянно пользуюсь. Веверн, что создать мелкий тест у меня получится как иминимум не медленее чем у любого любителя консольных интерпретаторов.

Кстати, Экспресс-версии студии доступны для свободного скачивания. Так что можешь глянуть. Там наворотов по мнее, но все же.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 02:03
Оценка:
Здравствуйте, CrazyPit, Вы писали:

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


Хм. Может все же прще глянуть на то о чем речь идет? В студии почти как ты говоришь и сделано. Есть специальное окно "Immediate". Вводишь в него строку, жмешь Ввод и получашь результат. Консоль чистой воды. Только переключаться никуда не надо. Окно можно закрепить где удобно.

И с тестами так же. Юнит-тесты встроены в среду. Выделяшь нужные и жмешь кнопку. Только я не любитель ни юнит-тестов, ни запуска по доной функции. Мне проще точку основа влепить и F5 нажать.

Просто когда есть выбор, то выбирашь то что действительно удобно, а не то что есть.

VD>> во время выполнения программы править ее код

CP>в CL так разработка ведёться всегда.

Есть все же некоторая разница между Лиспом и языками с синтаксисом. К тому же попробуй "так" отлаживать нечто требовательное к производительности. При отладке дотнетного прилоежения замедление получается раза в 2-6 по сравненю с релизом без отладчика. А вот интерпретация да еще и интерактивная — это от 10 и выше. Не все так можно отлаживать.

CP>Ты прав я привык к юникс стилю разработки и нахожу его весьма удобным.


Тогда остается просто поверить на слово, что почти все что у него было лучшего взято в современные интерактивные среды. Разница очень небольшая, но она есть. В этих средах кроме описанного есть еще куча всего и все это интегрированно. Ну, и по консолям шариться не нужно. А если охота, то тоже не проблема. Открой 5 консолей и любуйся. Комплит в них тоже есть. Если нужен особо извращенный, тоже надыбать можно.

CP>VS05 и IDEA не видел. Возможно они чем-то радикально отличаються от других подобных IDE, но другие меня как-то не впечатлили.


Хорошее слово "радикально". Именно что.. Другие и меня не впечатляют. Хотя, думаю, имея некоторые привячки и к VS 2005 с решарпером прийдется привыкать.

Кстати VS 2005 неплоха и без решарпера, но с решарпером она будте вообще улет. Ну, а то о чем я говорю можно поглядеть здесь:
http://www.jetbrains.com/idea/features/newfeatures.html
http://www.jetbrains.com/resharper/
http://rsdn.ru/article/devtools/newinwhitbey.xml
Автор(ы): Владислав Чистяков (VladD2)
Дата: 24.06.2004
Новые возможности и особенности готовящейся к выходу версии Microsoft Visual Studio
(и это еще только о бэтах)
http://rsdn.ru/article/devtools/newinwhitbey2.xml
Автор(ы): Владислав Чистяков (VladD2)
Дата: 27.07.2004
Статья является продолжением цикла статей, опубликованных в номере 6 за 2003 год. В ней рассказывается о нововведениях, появившихся в новой версии VS 2005 (Whidbey) и .NET Framework. Упор делается в первую очередь на нововведения, связанные с программированием на C#.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 02:03
Оценка:
Здравствуйте, raskin, Вы писали:

R>Жаль. Вот будет отделим... А то ставить dotGNU или Mono совсем неохота.


А качать какие-нить 100 метров ЦигВина это нормально? Да и что там ставить то? Он ставится за пять минут без единого вопроса. А скоро дотнет будет на любой винде.

R>"Пусть это сделают другие" — то, что я не собираюсь сохранять, пусть

R>компилируется без моих активных действий (кроме ввода этого).

Для этого созданы IDE. Нажал "Создать проект", выбрал тип, написал что надо, нажал F5. Лишних действий == 0.

R>А зачем он нужен, если на нём даже посчитать ничего нельзя?


Почему нельзя? Но писать код на КПК — формернное издевательство. Уж лучше написать и скинуть на КПК. Мы тут были недавно на Кубе и у нас погорел крадридер. Но был КПК который читает КомпактФлэш и может писать на SD. Вот только одна беда, софтина идущая в поставке с ВыньЦЕ так тормозила, что была практически не пригодна для использования. Ну, и что? Сели и за 10 минут написали утилитку на С№ 2.0. Даже с ГУИ повыпендирвались. Никаких особых проблем.

R> IDE мне не

R>нужна, интерпретатор хоть какой-нибудь. Без этой возможности
R>неинтересно.

Могу только порадоваться за тебя. Я довольствоваться интерпретаторами не могу. Мог бы давно бы на том же Немерле писал бы.

R> Но тогда ему CompactFramework нужен, если его (CFw) вообще

R>хватит. Интересно, не захочет ли он установленную консоль.. Судя по
R>сайту, если я этим займусь — все шишки мои.

Думаю захочет. Я вообще не понял почему в ВыньЦЕ ее по умолчанию не ставят.

R>В Паскаль все односимвольные опечатки не в именах переменных, которые я

R>когда-либо делал, мешают компиляции.

Хм. Паскаль тут не причем. Просто Паскаль — это один из типобзопасных языков.

R> В Си одну такую я искал очень

R>долго.

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

R> Больше я на этом (надеюсь) так не попадусь, но осадок... Ну и

R>выглядит Паскаль на мой вкус лучше.

Незнаю. По мне так это любовь к рющечкам. Сила языка не в том как у него выглядят коснтрукции блока или отделяются операторы. Кстати, во многих ФЯ вообще нет ни блоков, ни операторов (в смысле statmonts).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 02:03
Оценка:
Здравствуйте, little_alex, Вы писали:

_>Интересно откуда такое отношение

_>Что-нибудь писал на Common Lisp?

Хывтмло его изучать и писать примеры. Больше не тянет.

_>Какие недостатки языка так задевают?


Хреновая читабельность. Птичий язык.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 02:03
Оценка:
Не оверквоть, плиз.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[22]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 03:03
Оценка:
Здравствуйте, FR, Вы писали:

FR>VC может еще лучше оптимизировать, достаточно добавить строчку #pragma inline_recursion(on) и у меня вместо 0.703000 становится 0.343000


Это уже гонки оптимизаций конкретных компиляторов. К языкам это отношения не имеет. Я о другом говорил.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 03:03
Оценка: +1 :))
Здравствуйте, gandalfgrey, Вы писали:

VD>>Дык вот и хотелось бы увидить обоснование того, что реальная система на Шарпе (к примеру) не может быть усойчивой и надежной.

G>Запросто ! Пример хоть одной системы повышенной надежности, с временем простоя порядка единиц секунд в год

Ща я тебе ее при тебе же и напишу:
using System;
using System.Threading;

class Program
{
    static void Main()
    {
        while (true)
        {
            Console.WriteLine("На " + DateTime.Now + " я еще была жива.");
            Thread.Sleep(2000);
        }
    }
}


Запусти на хорошем компе с UPS-ом и обещаю тебе, что через год все будет ОК.

Если серьезно, то куча приложений крутится на Яве идотнете и никто не жалуется особо. Надежности хватает. А от проблем могут уберечь только решения вроде кластерных.

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

VD>>А в чем выражается выразительность? Не уж то в минимализации количества закорючек на экране?

G>И в этом тоже.

Тогдя я знаю идеальных язык. Это Брэйнфак. У него самый минимальный язык. И говорят, что на нем можно написать все что угодно.

G> Производительност программера выражается в количестве строк в день,


Эту сказку я слышал не раз. Вот толко не часто видишь людей которые могли бы надолбить хотя бы сколько я. А я далеко не уникум.

G> и слабо зависит от языка,


Ага. И от среды тоже? Это сказки.

G> на котором он ваяет продукт. Сие медицинский факт,


Сие медецинский треп. В смысле клиничекий. Кто-то придумал для себя эту легенду, а другие ее подхватили и эксплуатируют.

ЯП такой же язык как и другие. Например, русский. Достаточно зайти в наш топ:
http://rsdn.ru/Forum/Topa.aspx
Чтобы понять, что люди разные. И если один может между делом нафигачить 20 постов среди кторых окажется 3 интересных, то другой напишет одно в два дня и то интересным оно будет вряд ли.

Та же фигня и в программировании. Один думает быстрее и долбит десятью-пальцевым методом. А другой только из института и бездумно жмет кнопки одним пальцем.
Оди использует соверменную IDE со средствами рефакторинга, а другой половину рабочего времени убивает на переключение между конослями.

G> подтвержденный многочисленной статистикой.


Скорее они подтверждают старую хохму, что есть маленька лож, есть большая, а есть статистики.

G> Поэтому — чем выразительнее язык, тем более компактный код он позволяет создавать, и тем больше смысловых единиц ( не LOC ) получается в единицу времени


Понимаш ли. Компактность понятие очень обманчивое. Код может быть кратким, но не информативным. Вот Эрлэнг, Хаскель и Лисп лично мне очень тяжело читать. Очень многое седит на соглашениях, неявных предполжениях и т.п. Если сравнить код то может оказаться, что в более пушистом записано в общем-то столько же. Но вот только записано это дело более подробно. Ну, там переменные имеют смысл, а не любимые в сообществе фэнов ФЯ h, a, b, g, f... Фнукии названы так чтобы это было понятно, а не чтобы было кртако. Операторы более традиционны и понятны, а не представляющие из себя криптографию.

Реально путь уменьшения количества кода придуман очень давно. Это декомпозиция. Разделяй и властвуй. Создавай библиотеки. В итоге получишь ясные и краткие решения. А стремление любой ценой записать одну и ту же информацию меньшим количеством символов и строк — это показуха.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 03:03
Оценка:
Здравствуйте, gandalfgrey, Вы писали:

VD>>Кто такой Тикль?

G>это TCL, скриптовый такой язык, лишенный даже намека на синтаксис

Я просто не слышал никогда его произношения.

VD>>Полезной? Не сказал бы. Но мы говорим о скорости. Общая производительность в конце концов завист от той что ты называшь "сырой".

G>Очень слабо зависит. Есть гораздо более весомые факторы

Напрямую зависит. Это слагаемое. Если оно маленькое, то и сумма будет соотвествующая.
Между современными языками (если не брать разные С/С++) не такая уж огромная разница. А вот в скорости она очень даже.

G>А где это такой язык ? Пальцем, пожалуйста, покажите ! То, что это не Сшарп и не Ява, понятно...


Хм, а почему это тебе понятно? Я вот беру одинаковый код и вижу что С++-ный компилятор порождает приблизительно аналогичный. А уровень у этих языков куда как выше. Есть еще D. Но у него тоже есть кое какие проблемы С++.

Для фэнов ФЯ есть ОКамл (и другие клоны МЛ), Нэмерл... Да куча языков.

VD>>"Нежалуюсь" это не предсказание. Это просто твои задачи не стольк требовательны к процессору. Или пакетные и тебе пофигу сколько они выполняются.

G>Вообще-то мягкий реалтайм в большинстве случаев

Классный критерий. То есть так как на С++ пишут и жесткий (т.е. реальный) реалтайм, то на нем стало быть все еще предсказуемее. Но ты то говоришь об обратном. Нестыковочка.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 03:03
Оценка:
Здравствуйте, EXO, Вы писали:

EXO>Опять передергиваешь.


Нисколько.

EXO>Внимательно читая сообщения, мог бы заметить, что человек начинавший пограммировать с "интегрированных сред", 12 лет программировавший только в интегрированных средах (и из них лет 6 в MS VS) не может быть фанатом консоли.


Это не те среды. Таких сред и под Линуксом пруд пруди.

назвать будет сложно.

EXO>Гм... сейчас как раз перевожу под мнезию один проект, который в первой версии был под MS SQL Server 2000.

EXO>Продукт пока в работе, но поскольку данные конвертнули из старой базы (то есть база заполнена) о поведении мнезии уже можно судить.
EXO>Во-первых, число таблиц сократилось примерно в 3 раза. За счет более гибких типов данных мнезии. Соответсвенно упростились многие алгоритмы.
EXO>Во-вторых, быстродействие увеличилось в среднем в 1,5 раза. И это при том, что мнезия сейчас работает не над BerkleyDB backend (это у нас резерв быстродействия на всякий случай).
EXO>Во-третьих, быстродействие наиболее критичных алгоритмов повысилось примерно в 2,5 раза. Правда, для этого они были переведены с языка запросов QLC на прямые вызовы мнезии, так что для сравнения СУБД их рассматривать не стоит.

Ну, ну. Я лучше бы послушал ваших потребителей поработавших на той системе, а потом на новой.

EXO>У .Net языков хорошая интеграция с IIS. Они тоже части одной платформы.

EXO>А вот у не-дотнетовских perl и python интеграция с IIS уже куда хуже. Уже одно то, что IIS не может связывать подгруженные интерпретаторы этих языков с логическим сеансом пользователя резко снижает качество интеграции.

Вообще-то нет никаких проблем. Есть реализации и Перла (чур меня), и Питона на дотнете. Так что подключай и пользуйся. Кстати, есть даже куда более приятная вещь есть Boo — это такой забавный типизированный, компилируемый клон Питона.

EXO>Так что эта самая "интеграция" далего не одинакова для разных сочетаний язык Х веб-сервер.

EXO>Так вот, у ерланга и идущего с ним веб-сервера она на том же уровне, что и у .Net языков с IIS.

Хм. Апач и ИИС накрывают почти весь рынок. Для них есть или дотнет- или Ява-машина. А под них есть любые языки.

EXO>Микорософт умеет хорошо рекламировать свои средства разработки. Это умение за ними безусловно следует признать.


Майкрософт прежде всего умеет делать ПО. И несоменно умеет его продвигать. Они, Сан и IBM действительно лидеры индустрии ПО. И не надо все сводить к рекламе. В конце концов Линукс в первую очередь результат рекламы. Не даром IBM в него столько денег вбухал.

EXO>А потому проектов на .Net естественно больше. Но вот по моим наблюдениям, процент качественных среди них — заметно ниже.


Ну, а Ява-проектов почему так много? Зайди н Сорсфодж и гянь кто там лидер. Тот самый гадкий утенок — Ява.

EXO>Интересна именно мощность средств лексера и парсера. А так же их "интллектуальность" (то есть на сколько они готовы брать стандартный BNF, без "доработки напильником").


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

VD>> или построителям парсеров вроде АНТЛР или КокаР.


EXO>За "наводку" — спасибо. На досуге посмотрю подробнее.


http://www.antlr.org, Коку можно взять из R#-а на нашем сайте.
Особо забавно глянут на будущее — ANTLR v3 и его IDE. Это все пока глючит, но уже сейчас видно, что будет очень некислое средство.

EXO>Именно.

EXO>А самый лучший тест — реальные продукты.

К сожалению сравнивать реальные продукты очень не просто.

EXO>На сколько я понял из его слов — C++ применял не он.


Темболее. Тогда это может еще к тому же быть просто злословием так принятом у программистов "Вот уроды?! Кто ж так строит?!!!". Или иными словами в продукте найден фатальный недостаток &mdash; его писали не они
Автор: VladD2
Дата: 25.12.04
(с).

EXO>А что бы ты ему предложил? Перевести проект с C++ на .Net? На сколько я слышал, там часть узлов это микроPC на I486 с 64 Мб оператива, а часть моторолловские микрокомпы. Каково там будет .Net-у? Или ты предложил бы ему писать 2 (3) разных варианта одного и того же приложения?


А, ну, да. Самому то не смешно? Значит на компилируемый дотнет перевести нельзя. Памяти мало и процессор дохлый. А на интерпретируемый Эрлэнг без вопросов. Класс!

EXO>Кстати — вот тебе сразу несовпадение нишь...


Не надо про ниши. Уверен, что на этом форуме собрались не какие-то работники эксзотического фронта. Бльшинство из них сидит под Виндой, или на худой конец под Линкус. И помпьюетры у них и их заказчиво без проблем тянут и дотнет, и Яву.

EXO>То, что я выше писал про коммерческую неприемлимость использования MS SQL — другое несовпадение...


Хм. А ты вкурсе, что у МС Сиквела есть безсплатный вариант единственным ограниченимем которго по большому счету является ограничение в 4 гига на БД?

EXO>Так что не стоит говорить, будто .Net такая уж универсальная, что закывает все пространство задачь.


Довольно универсальная. Если она не тянет, то есть еще Ява. Я предпочитаю дотнет, но понимаю, что тут скорее разговор о вкусах.

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


EXO>И что тебя все так тянет переходить на личности? Привык общаться с неуравновешенными субьектами?


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

EXO>Мог бы уже заметить, что я просто использую твою агрессивность, как повод, чтобы рассказать людям про erlang...


Да, я только за рассказы! Я даже за показы и тесты. Я только против розовых соплей в стиле "Гудд... Бхрроун!!! Корочо!!!". Плавли, знаем. На любого брауна всегда свой Панасоник найдется.

EXO>Впрочем, если хочешь, можешь продолжать в том же духе.


Почему бы и нет. Но чеснослово лучше бы показали эту самую прелесть эрланга, чем рассказывать о ней. А то вот когда мне показали макросы Лиспа я их смог оценить. Хотя сам Лисп для меня ценности не представляет. Думаю, что и хорошие стороны эрлэнга я бы с удовольстивием оценил. Программировать я на нем вряд ли стану. Но для общего развития не помешает.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: преимущества erlang-а?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.02.06 03:45
Оценка:
Здравствуйте, raskin, Вы писали:

>> Если я все правильно понял, то на Нэмерле можно все тоже самое и намного

>> болше. А главное роще, предсказуемее и удобнее.
R>В больше — позвольте не поверить,

Больше потому что уровень интеграции другой. В Лиспе макросы — это препроцессор. А в Нэмерле — это плагины к компилятору.

Вот здесь товарищь описал это дело лучше чем я Re[20]: преимущества erlang-а?
Автор: Vermicious Knid
Дата: 31.01.06
.

R> если пользоваться макросами в полную

R>мощность, то, вероятно столько же — макрос может делать любое вычислимое
R>преобразование.

Дык в том, то все и дело, что в Нэмерле макрос может делать не только преобразования. Он еще может взаимодействовать с компилятором и использовать внешний, библиотечный код.

R> Предсказуемость зависит при этом от того, насколько в

R>этот момент ближе один язык, чем другой. Про удобнее поверю легко.

А предсказуемость выше, так как язык статически типизированный. Контроля больше. Ну, и наличие реального синтаксиса позволяет больше веще контролировать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: преимущества erlang-а?
От: EXO Россия http://www.az.inural.ru
Дата: 01.02.06 05:25
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Это не те среды. Таких сред и под Линуксом пруд пруди.

То есть хороших сред только две?

Странно... и почему это я не заметил скачка производительности у знакомых программистов,
когда они перешли от VS6 к VS2005?

VD>Ну, ну. Я лучше бы послушал ваших потребителей поработавших на той системе, а потом на новой.


Мне тоже это будет интересно. Обязательно послушаю.

VD>Вообще-то нет никаких проблем. Есть реализации и Перла (чур меня), и Питона на дотнете. Так что подключай и пользуйся. Кстати, есть даже куда более приятная вещь есть Boo — это такой забавный типизированный, компилируемый клон Питона.


Ну дак это то о чем я и говорил: .Net (все языки) и IIS — одна платформа.
И Апач с явой — тоже в одну платформу интегрированы.

VD>Ну, а Ява-проектов почему так много? Зайди н Сорсфодж и гянь кто там лидер. Тот самый гадкий утенок — Ява.


Ты разве не помнишь начало "явизации"??? И участие в этом того же микрософта. Да и остальных...


EXO>>Интересна именно мощность средств лексера и парсера. А так же их "интллектуальность" (то есть на сколько они готовы брать стандартный BNF, без "доработки напильником").

VD>Ну, на мой взгляд макросы Лиспа отдыхают в сторонке и нервно курят. А если вспомнить, что это все дело в нехилом языке...

Макросы лиспа (так же как и констукции эрланга) — это сам язык. А речь была о парсерах и лексерах идущих в составе платформы. Это уже немного другое. (А .Net-овскую комплектацию посмотрю.)

VD>К сожалению сравнивать реальные продукты очень не просто.


К сожалению — так.

EXO>>А что бы ты ему предложил? Перевести проект с C++ на .Net? На сколько я слышал, там часть узлов это микроPC на I486 с 64 Мб оператива, а часть моторолловские микрокомпы. Каково там будет .Net-у? Или ты предложил бы ему писать 2 (3) разных варианта одного и того же приложения?


VD>А, ну, да. Самому то не смешно? Значит на компилируемый дотнет перевести нельзя. Памяти мало и процессор дохлый. А на интерпретируемый Эрлэнг без вопросов. Класс!


А что смешного-то? Обычная и достаточно распространенная ситуация.
Я же не случайно спросил "Каково там будет .Net-у?", а не сколь шустро будут работать приложения на нем.
Просто потому, что они никак не будут работать. Потому, что там даже требуемая дотнетом весия виндов нормально не развернется. Не говоря уж про MS SQL (база требуется) и IIS (web-сервисы требуются).
А ерланг развернуть можно (например, под урезанной версией FreeBSD или под кнопиксом). Разрешения на кеши для мнезии конечно придется укрутить до минимума, но однако работать будет.

VD>Хм. А ты вкурсе, что у МС Сиквела есть безсплатный вариант единственным ограниченимем которго по большому счету является ограничение в 4 гига на БД?


В курсе. (Хотя, на сколько я помню, для 2000-ного ограничение было 1 гиг.) Но все равно, при учете того на сколько "неплотная" у него база получается — это недостаточный объем. Требуеся масштабирование от 2 до 100 гиг (если мерять в объеме баз MSSQL). Просто из опыта предидущей версии.
Re[21]: преимущества erlang-а?
От: raskin Россия  
Дата: 01.02.06 05:56
Оценка:
VladD2 wrote:
> Здравствуйте, raskin, Вы писали:
> R> если пользоваться макросами в полную
> R>мощность, то, вероятно столько же — макрос может делать любое вычислимое
> R>преобразование.
>
> Дык в том, то все и дело, что в Нэмерле макрос может делать не только
> преобразования. Он еще может взаимодействовать с компилятором и
> использовать внешний, библиотечный код.
Ну внешний код, как мне казалось, и для Лиспа не вопрос. Взаимодействие
с компилятором за счёт наличия синтаксиса действительно должно давать
какие-то возможности. В Лиспе-то компилятор не намного больше знает, чем
макрос.
>
> R> Предсказуемость зависит при этом от того, насколько в
> R>этот момент ближе один язык, чем другой. Про удобнее поверю легко.
>
> А предсказуемость выше, так как язык статически типизированный. Контроля
> больше. Ну, и наличие реального синтаксиса позволяет больше веще
> контролировать.

Пока я не писал на этом языке и не читал на нём программ, я не могу
сказать где у него может пострадать предсказуемость, например, от
похожести двух конструкций. Но я даже Mono уже поставил и nemerlish
запускается.
Posted via RSDN NNTP Server 2.0
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.