Re[19]: Насколько важен синтаксис языка?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 11.09.06 10:34
Оценка:
Здравствуйте, Дарней, Вы писали:

E>>Eiffel, например. Совсем таки не элитарный язык, а непосредственный конкурент Java и C#, да еще и появившийся гораздо раньше. Оказался в заднице благодоря маркетингу.


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

Д>а вообще я про него мало что знаю, кроме того факта, что там есть инварианты — и это конечно плюс, хотя вряд ли решающий
Д>что еще в нем есть интересного? есть ли какие-то серьезные преимущества перед C#, к примеру?

Ну что есть? Всего не упомнишь, тем более, что дальше чтения документации из-за цен на Eiffel Studio у меня процесс не пошел.
Сборка мусора, объекты-ссылки и объекты значения.
Множественное наследование есть (с гибкой настройкой видимости имен).
Обобщенные типы (что-то вроде C++ шаблонов, но проще, без заморочек).
Указатели на функции и на методы объекта как агенты (что-то вроде C++ функторов, но проще и удобнее).
Паскалеподобный синтаксис.
Удобная система доступа к атрибутам. Например, запись:
a.value

может означать как обращение к атрибуту объекта с именем value, так и вызов метода-getter-а с именем value.
Модульная система (что-то похожее на Java-вские пакеты).
Ну и, конечно же, контракты.

Сравнивать Eiffel и C# я не буду, т.к. мне не интересен ни тот, ни другой. Но сам факт, что Eiffel появился в 86-м...


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[18]: Насколько важен синтаксис языка?
От: fmiracle  
Дата: 11.09.06 10:37
Оценка:
Здравствуйте, FR, Вы писали:

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


FR>Это неверное утверждение. Такие инструменты просто для некторого класса задач нивелируют уровень программистов. Но очень часто ничем ни помогают или даже мешают более сильному решать нетипичные задачи.


Нетипичные — запросто. Я говорил про типичные
Для решения типичных задач специальные средства обычно помогают и сильным и слабым.
Нетипичные задачи — это всегда отдельный и сложный вопрос

Собственно — я там про это долго и писал...

На VB6 быстро рисуются GUI-фромчки. И задачу с небольшой вычислительнйо частью и пользовательским GUI что сильный что слабый программист легко на нем сделают. Сильный — все равно гораздо быстрее (сам видел). Вот для такой задачи он хорош (а очень ведь типичная задача в определенных кругах).
Ну а, скажем, реализовать чисто на нем хоть какой численный алгоритм — это, конечо, убиться можно, я тут и не спорю...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[24]: Оффтопик: Nemerle
От: WolfHound  
Дата: 11.09.06 10:50
Оценка: +1
Здравствуйте, Andrei N.Sobchuck, Вы писали:

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

ANS>Один раз уже пробовал &mdash; <b>получается</b>
Автор: Andrei N.Sobchuck
Дата: 21.02.06
.

Ты демагогию не разводи. Вот ответ
Автор: Vermicious Knid
Дата: 21.02.06
на твое пробовал...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[19]: Насколько важен синтаксис языка?
От: FR  
Дата: 11.09.06 10:59
Оценка: +1
Здравствуйте, Дарней, Вы писали:

Д>что еще в нем есть интересного? есть ли какие-то серьезные преимущества перед C#, к примеру?


Должен быть обратный вопрос: есть ли у C# серъезные преимущества перед Эйфелем.
Re[33]: Насколько важен синтаксис языка?
От: Дарней Россия  
Дата: 11.09.06 11:02
Оценка: +1
Здравствуйте, Курилка, Вы писали:

К>И как тебе этот паттерн вернёт управление в parse-log-entry?

К>В лисповских кондишнах рестарты изначально есть как механизм обработки ситуации, тогда как в "традиционных" подходах, если мы "провалились" по исключению, то обратного пути нет.

Не надо сразу кидать исключение. Надо спрашивать у стратегии, "что нам делать", и по результатам кидать исключение или продолжать работу.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[25]: Оффтопик: Nemerle
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 11.09.06 11:02
Оценка: -1
Здравствуйте, WolfHound, Вы писали:

WH>Ты демагогию не разводи. Вот ответ
Автор: Vermicious Knid
Дата: 21.02.06
на твое пробовал...


Нафиг-нафиг такой ответ. Еще раз, нужно не переписать программу один в один (чем и занимается компилятор), а написать ОО программу, которая давала бы тайкой же результат. Ы?
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[20]: Насколько важен синтаксис языка?
От: Дарней Россия  
Дата: 11.09.06 11:07
Оценка:
Здравствуйте, FR, Вы писали:

FR>Должен быть обратный вопрос: есть ли у C# серъезные преимущества перед Эйфелем.


сами виноваты, распугав разработчиков непомерными ценами
се ля ви, но сейчас вопрос надо ставить именно наоборот — и неважно, что появилось раньше
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[17]: Насколько важен синтаксис языка?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 11.09.06 11:19
Оценка: +1
Здравствуйте, Дарней, Вы писали:

ГВ>>Вот именно. Если делать делать выводы на основании популярности и распространённости.

Д>осталось еще понять, что кроме популярности есть второй фактор — время. И если за n>10 лет язык остался широко известен в узком кругу фанатов, то делать некоторые выводы из этого таки можно.

Нельзя делать выводы о качественных сторонах продукта по его распространённости.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[30]: Дополнение к посту Vermicious Knid
От: WolfHound  
Дата: 11.09.06 11:25
Оценка:
Здравствуйте, pavel74, Вы писали:

VD>>Собственно этим и отличается динамический язык от статического. С одной стороны чуть проще, так как подобные хаки не требуют специальных вызовов вроде Convert.ToDouble(elem) (все приводится автоматом),

P>Ну наконец-то . Полностью согласен, за это и любят динамические языки.
А по мне так необходимость таких хаков следствие кривого дизайна.
Единственное где нужно при нормальном дизайне Convert.ToXXX это ввод/вывод.
Спрашивается накой черт мне нужен весьма сомниетльный сахар для ввода/вывода если этого самого ввода/вывода очень мало и он очень хорошо автамитизируется?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[18]: Насколько важен синтаксис языка?
От: Turtle.BAZON.Group  
Дата: 11.09.06 11:39
Оценка:
Здравствуйте, eao197, Вы писали:

E>Eiffel, например. Совсем таки не элитарный язык, а непосредственный конкурент Java и C#, да еще и появившийся гораздо раньше. Оказался в заднице благодоря маркетингу.


Советую сходить на eiffel.com и узнать, что он вовсе даже не в заднице, а его создатели гребут бабло. В том числе и с Microsoft, Sun, IBM и т.д.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[26]: Оффтопик: Nemerle
От: squiz  
Дата: 11.09.06 11:49
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Не... Надо просто NGen-ить сборки Nemerle-в.

VD>http://rsdn.ru/Forum/?mid=1961823
Автор: VladD2
Дата: 19.06.06


Да. Было такое подозрение. Но почему-то не помню почему решил что при инстале оно NGen-ит само. Ступил.
Never underestimate those behind you...
Re[19]: Насколько важен синтаксис языка?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 11.09.06 11:54
Оценка: 1 (1) +1 -1
Здравствуйте, Turtle.BAZON.Group, Вы писали:

E>>Eiffel, например. Совсем таки не элитарный язык, а непосредственный конкурент Java и C#, да еще и появившийся гораздо раньше. Оказался в заднице благодоря маркетингу.


TBG>Советую сходить на eiffel.com и узнать, что он вовсе даже не в заднице, а его создатели гребут бабло. В том числе и с Microsoft, Sun, IBM и т.д.


Так гребут, что вынуждены делать бесплатную версию своей EiffelStudio чтобы привлечь новых разработчиков.
Лет десять назад у них, вероятно, особых проблем-то и не было. А сейчас, на фоне распространенности Java (которая бесплатно есть на большем количестве платформ, чем Eiffel), агрессивного маркетинга C#, количества библиотек и фреймворков для Java и C#, количества IDE для Java/C#, количества документации/книг/учебных курсов, количества разработчиков, имеющих опыт разработки на Java/C#, перспективы у Eiffel-я, имхо, очень не важные.

Не зря же Мейер сейчас статейки пишет, что мол дешевые индусы и воссточные славяне оставят без работы дорогих американских разработчиков. Если только последние не возьмутся за ум и не начнут использовать "правильные" инструменты, резко повышающие их (разработчиков то есть) производительность, то хана им. А правильным инструментом, естественно, является Eiffel Methodology + Eiffel Studio. Хотя чем Eiffel сейчас может конкурировать, например, с Java 5 + IDEA (Eclipse) лично я, например, не понимаю.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[26]: Оффтопик: Nemerle
От: WolfHound  
Дата: 11.09.06 11:54
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Нафиг-нафиг такой ответ. Еще раз, нужно не переписать программу один в один (чем и занимается компилятор), а написать ОО программу, которая давала бы тайкой же результат. Ы?

Иди сюда и попробуй переписать SprintTyExpr в ОО стиле
Особенно мне интересно что ты будешь делать с подобными выкрутасами:
        // the special case for unary operators
        | TT.TExpr.Call (TT.TExpr.OpCode (name), [parm], _) =>
          append (name);
          append ("(");
          recurse (parm.expr);
          append (")");

        // the special case for infix binary operators
        | TT.TExpr.Call (TT.TExpr.OpCode (name), [parm1, parm2], _) =>
          append ("(");
          recurse (parm1.expr);
          append (" " + name + " ");
          recurse (parm2.expr);
          append (")")

        // pretty print the list constructors
        | TT.TExpr.Call (TT.TExpr.StaticRef (_, mem, _), _, _) when is_list_cons (mem) =>
          print_list_constructors (expr)
              
        // write all the other calls in prefix form 
        | TT.TExpr.Call (func /* PExpr */, parms /* list [Parm] */, _) =>
          recurse (func);
          append (" (");
          print_fun_call_parms (parms);
          append (")")
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[29]: А как оно в Nemerle?
От: Klapaucius  
Дата: 11.09.06 12:04
Оценка:
Здравствуйте, Beam, Вы писали:

B>Я открыл статью Nemerle в Wikipedia, и я увидел, что та проблема, значение который Вы так пытаетесь преувеличить (незавершение работы метода, в который передан BlockClosure с возвратом), имеется и у Nemerle в макросах.


Вы на верном пути. Есть мнение, что return где не появляется — везде вызывает проблемы, хотя и не одинаковой серьезности.
В Nemerle можно вообще не прыгать. И, по умолчанию, возможности прыгать нет. По-моему, это не может не радовать. Но, видимо по той причине, что возможность попрыгать — это такие милые сердцу программистов грабельки, которые дороги как память, если очень хочется попрыгать все-таки можно. Для этого нужно подключить опредленное простарнство имен. Вот это мне, как раз, не очень нравится, хотя почему такую возможность оставили я понимаю.

Непонятно мне другое. Почему возможность прыгнуть в Nemerle является оправдание возможности прыгнуть (причем, как я понял, гораздо дальше) в смолтоке? Тут, конечно, были примеры по существу вопроса, как использование ^ помогает сократить код, но вот это вообще к делу отношения не имеет.
... << RSDN@Home 1.2.0 alpha rev. 655>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[30]: Дополнение к посту Vermicious Knid
От: Klapaucius  
Дата: 11.09.06 12:04
Оценка: :)
Здравствуйте, pavel74, Вы писали:

P>И еще замечу такую странность , те кто реально программирует на динамических языках — этот недостаток не считают фатальным (в сравнению с получаемыми упрощениями). А те кто только теоритически рассуждает — считают фатальным.


А чего странного? Кто не считает фатальным — реально программирует. Кто считает фатальным — рассуждает теоретически. И те и другие свой выбор сделали — вот и вся магия.
Это просто взгляд на проблему с позиции "я так делаю потому, что это хорошо", а не "это хорошо потому, что я так делаю".

Впрочем, я пошутил.
... << RSDN@Home 1.2.0 alpha rev. 655>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[30]: Насколько важен синтаксис языка?
От: Klapaucius  
Дата: 11.09.06 12:04
Оценка: +1 :))
Здравствуйте, VladD2, Вы писали:

VD>Личность сама о себе заявила. Я как бы его за язык не тянул. Не называть же его поглонником Немерла?


Не поклонник — факт. Но по всему видно, что лицо не равнодушное.
... << RSDN@Home 1.2.0 alpha rev. 655>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[18]: Насколько важен синтаксис языка?
От: Klapaucius  
Дата: 11.09.06 12:04
Оценка: +2
Здравствуйте, vdimas, Вы писали:

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

V>Является, к сожалению. У характеристики "меньшинство/большинство" всего 2 значения.

А если посмотреть на выделенное?

K>>Численность группы не обязана коррелировать с правотой воззрений этой группы.


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


Это как раз в тему, в отличие от многих других сообщений в этом треде. И оно опровергает.

Вообще, само обсуждение этого вопроса — какое-то тихое безумие. Или детский сад.
"Я пойду туда, потому что туда все пошли" или "я не пойду туда, потому что туда все пошли" — я вообще не вижу разницы.
Тут где-то мозг задействуется?
Если все это понимают, о чем вообще разговор тогда?
Почему как только разговор заходит о правоте — непременно вспоминают и о численности?
... << RSDN@Home 1.2.0 alpha rev. 655>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[20]: Насколько важен синтаксис языка?
От: Klapaucius  
Дата: 11.09.06 12:04
Оценка: 44 (4) +2 -1 :))) :))) :))
Здравствуйте, Геннадий Васильев, Вы писали:

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

ГВ>>>Но осуждение "бездумного следования вообще" не должно сопровождается указанием качеств какой-либо группы "за которой следуют". В данном случае
Автор: IT
Дата: 20.06.06
, однако, группа была указана и коррекций не последовало.

F>>Вообще-то это высказываение как раз и было коррекцией — оно отлично дополняло высказывание предыдущего оратора, что "следование за большинством в наименьшей мере требует работы мозга", и как раз приводило систему в баланс — получая именно ситуацию "бездумного следования за кем-либо вообще".
ГВ>Какая ещё, сто тысяч микробайт в шлейф, система?! Следовать "общепринятым" терминам в противовес правильных — как раз показатель бездумности.

Это просто пять баллов. Прямо сейчас во флейм и создавать тему "общепринятый" термин vs. "правильный".
Сотни людей столкнутся лбами и отпрянут с зубовным лязгом. Вот это веселье!
Флеймообразующая концепция ясна как день: никто никогда нигде не знает, что правильно, но все всегда везде думают, что это знают.
Сработает безотказно!
Хотя, я наверное сейчас без толку распинаюсь. "Мне не страшны твои угрозы, Кассий! Они (как что-то там мнеее... память ни к черту) пролетают мимо!"
Как это все объяснить человеку, который говорит, что "истина всегда конкретна". Это тупик.
Но я попробую. Вообще-то, терминология — это результат договоренности. В этом смыcле все термины, конечно, должны быть общепринятыми. Правильные они или нет — вопрос сложный. Определенно — это не исключено. Понятно — очень зависит от того, что понимается под словом "правильный". Мое мнение: учитывая что терминология существует для того, чтобы люди друг друга понимали, то правильный термин в системе из n обменивающихся информацией людей такой, который одинаково понимают больше чем n/2. Т.е. общеприянтый.

Что касается каких-то фактических сведений о мире — тут все, конечно, сложнее.
Общепринято, что Земля — круглая. Это не так. Земля имеет форму геоида. Общеприянтые понятия "круг" и "геоид" нетождественны.
Общепринято, что вечный двигатель первого рода невозможен. Это действительно так (с очень хорошей вероятностью -> 1). Означает ли это, что перпетуум-мобилистов зажимает тупое большинство?

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

ГВ>В таком контексте упоминание меньшинства в негативном смысле как раз указывает на то, что надо следовать за большинством, даже если оно поставило всё с ног на голову.


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

Так говорил кхм... Геннадий Васильев.

F>>Предыдущий оратор из этого высказывания взял только часть. Это называется — некорректное уточнение.

ГВ>Не-а. АК всё совершенно правильно сказал. Именно большинство, именно бездумное следование и именно размахивание "общепринятым" как показатель этой самой бездумности.

Вот он, образ врага! Скифы, азиаты. Их много. Слышится ржание их коней. Размахивают. Голова — чтобы в нее есть.
Подтягивают к стенам нашей цитадели осадные ветряные мельницы на колесах.

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

ГВ>Я понял в чём прикол. Не надо додумывать за автора, что он собирался сказать, что он мог сказать, что он подумал и что мог бы подумать, но сразу не собразил. Вот что было сказано, то и стало объектом обсуждения.


Интересно, обстоятельно, респектабельно. Хоть сейчас на скрижали. Жаль только, что это, похоже, принцип на экспорт, а не для внутреннего пользования.
Впрочем, воспринимать продукт творчества любого автора без некоторой доли фантазии — совершенно невозможно. Ведь существует же недоговоренность. Всегда. Любые слова вырваны из контекста, который у автора в голове и нам совершенно не известен.
... << RSDN@Home 1.2.0 alpha rev. 655>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[29]: Дополнение к посту Vermicious Knid
От: FR  
Дата: 11.09.06 12:16
Оценка: +1
Здравствуйте, VladD2, Вы писали:


VD>Собственно этим и отличается динамический язык от статического. С одной стороны чуть проще, так как подобные хаки не требуют специальных вызовов вроде Convert.ToDouble(elem) (все приводится автоматом)


В динамике нет никаких приведений, какой тип передали тот и используется, и исключение если он не подерживает то что требуется. И хаками это является только для статических языков.
Re[31]: Дополнение к посту Vermicious Knid
От: FR  
Дата: 11.09.06 12:16
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


VD>>>Собственно этим и отличается динамический язык от статического. С одной стороны чуть проще, так как подобные хаки не требуют специальных вызовов вроде Convert.ToDouble(elem) (все приводится автоматом),

P>>Ну наконец-то . Полностью согласен, за это и любят динамические языки.
WH>А по мне так необходимость таких хаков следствие кривого дизайна.

нет никаких хаков

WH>Единственное где нужно при нормальном дизайне Convert.ToXXX это ввод/вывод.


Вот Convert.ToXXX как раз хак для кривого эмулирования динамического яхыка на статическом.

WH>Спрашивается накой черт мне нужен весьма сомниетльный сахар для ввода/вывода если этого самого ввода/вывода очень мало и он очень хорошо автамитизируется?


Я еще такого оригинального определения динамической типизации:

сомниетльный сахар для ввода/вывода

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