Re[5]: Goto's are evil?
От: GlebZ Россия  
Дата: 30.11.05 17:50
Оценка:
Здравствуйте, Дарней, Вы писали:

GZ>>Где он такое говорил? Ссылку. Я слышал от него другие слова.

Д>поищи — здесь было несколько тем с обсуждениями его лекций
Д>возможно конечно, что переводчики или авторы топиков переврали — но подобные утверждения были в нескольких местах
Нет, переводчики его перевели правильно. И что самое интересное, я там был. Тот топик сразу был понятно что уйдет в бессмысленный флейм, поэтому его и не читал(уже давно можно прогнозировать что происходит на rsdn при слове Вирт, да вот сейчас вляпался). На rsdn началась своя интерпретация его слов. Не буду это сейчас обсуждать и переубеждать, можно взять данный тезис как субъективный.

GZ>>Это я тоже не слышал в его исполнении.

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

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

GZ>>Почти так была информация. Только откуда взялось все существующие проблемы?
Д>откуда взялись проблемы, намного лучше пишет Брукс. но синтаксис здесь уж совершенно точно ни при чем
GZ>>Ты сам своими словами пытаешься сделать из него идола.
Д>я? это как?
Смотри выделенное. Это примерно означает что человек высказавший его является супербогом. Это твои слова. Вирт так не выглядит, и такого не говорил.

GZ>>2. Лично я ему такое высказывание прощу(хотя дословно оно было другое). Обидно человеку.

Д>нужно не обижаться, а думать — что было сделано неправильно? Вместо того, чтобы делать очередной никому не нужный язык.
Ну насчет никому не нужного я бы не сказал. Какая разница между промышленным и научным языком. Для первого важен маркетинг и большое кол-во условий чтобы сказать что он успешен. Для второго нужна некоторая функциональность которую можно обсуждать. Судя по тому, сколько клав стерто на rsdn по поводу Oberon, с научной точки зрения — язык успешный. Наличие группы фанатов, также говорит об этом.
Что касается неправильно, то здесь более сложный вопрос. Промышленным язык просто так не станет.

GZ>>Но вот невежественными их назвать не могу.

Д>то, что он говорит про ФЯ, по другому я назвать не могу
То что он сказал о компиляторах, верно. То что он сказал о применении, не знаю. Обсуждать не хочу. Но это его мнение. В первом случае вполне профессиональное, во втором случае, вполне абстрактное. Это не повод называть его невежественным.

GZ>>Не идолопоклончество. А уважение. Это разные вещи.

Д>банить за любую критику в адрес какого-то человека — это просто уважение?
Банить за любую критику в адрес какого-то человека — это есть правило rsdn. А вот за критику высказываний и действий, никто банить не будет. Разницу чувствуешь между "невежественный человек", и "неправильное мнение(высказывание)"?

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Goto's are evil?
От: Дарней Россия  
Дата: 30.11.05 18:16
Оценка:
Здравствуйте, GlebZ, Вы писали:

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


Назвал Пролог функциональным языком — явный промах.
В одной из веток автор писал, что у Вирта поинтересовались его мнением о ФЯ
на что он ответил, что ФЯ — это те же самые императивные языки, из которых удалили процедуры и оставили только функции. За точность слов не ручаюсь, но смысл был такой.
еще там была ссылка на блог (кажется, у СГ), где были собраны еще некоторые материалы
там в частности было высказывание, что функции высшего порядка применяются крайне редко и в принципе не очень то нужны
про такие вещи как лямбда, макросы и т.п. — вообще ни слова, хотя это как раз одни из самых сильных сторон ФЯ

GZ>Смотри выделенное. Это примерно означает что человек высказавший его является супербогом. Это твои слова. Вирт так не выглядит, и такого не говорил.


разве он не говорил, что оберон должен решить многие проблемы программирования?

GZ>Ну насчет никому не нужного я бы не сказал. Какая разница между промышленным и научным языком. Для первого важен маркетинг и большое кол-во условий чтобы сказать что он успешен. Для второго нужна некоторая функциональность которую можно обсуждать. Судя по тому, сколько клав стерто на rsdn по поводу Oberon, с научной точки зрения — язык успешный. Наличие группы фанатов, также говорит об этом.

GZ>Что касается неправильно, то здесь более сложный вопрос. Промышленным язык просто так не станет.

боюсь, что с научной точки зрения оберон — пустое место
абсолютно ничего нового и интересного там нет

GZ>Банить за любую критику в адрес какого-то человека — это есть правило rsdn. А вот за критику высказываний и действий, никто банить не будет. Разницу чувствуешь между "невежественный человек", и "неправильное мнение(высказывание)"?


значит, надо было получше уточнить
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[7]: Goto's are evil?
От: GlebZ Россия  
Дата: 30.11.05 19:04
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Назвал Пролог функциональным языком — явный промах.

Честно говоря видел где то флеймы по поводу является ли пролог функциональным языком или нет. Они были потише чем флеймы является ли Smalltalk функциональным, но все таки были. Я тут как-то познакомился с Refal, и как то граница между логическим и функциональным программированием у меня начала улетучиваться.

Д>В одной из веток автор писал, что у Вирта поинтересовались его мнением о ФЯ

Д>на что он ответил, что ФЯ — это те же самые императивные языки, из которых удалили процедуры и оставили только функции. За точность слов не ручаюсь, но смысл был такой.
Да было такое. Признаю.
Д>еще там была ссылка на блог (кажется, у СГ), где были собраны еще некоторые материалы
Д>там в частности было высказывание, что функции высшего порядка применяются крайне редко и в принципе не очень то нужны
И что, это неправда? Для императивных это так.
Д>про такие вещи как лямбда, макросы и т.п. — вообще ни слова, хотя это как раз одни из самых сильных сторон ФЯ
А он и не пояснял функциональные языки. Похоже у него стойкое неприятие к ним.

GZ>>Смотри выделенное. Это примерно означает что человек высказавший его является супербогом. Это твои слова. Вирт так не выглядит, и такого не говорил.

Д>разве он не говорил, что оберон должен решить многие проблемы программирования?
Многие и все, несколько разные вещи. Об этом я намекал. Если бы в далеком 85 году все пересели бы на Oberon, мир был бы другим. Правда 20 лет — это срок.

GZ>>Ну насчет никому не нужного я бы не сказал. Какая разница между промышленным и научным языком. Для первого важен маркетинг и большое кол-во условий чтобы сказать что он успешен. Для второго нужна некоторая функциональность которую можно обсуждать. Судя по тому, сколько клав стерто на rsdn по поводу Oberon, с научной точки зрения — язык успешный. Наличие группы фанатов, также говорит об этом.

GZ>>Что касается неправильно, то здесь более сложный вопрос. Промышленным язык просто так не станет.
Д>боюсь, что с научной точки зрения оберон — пустое место
Д>абсолютно ничего нового и интересного там нет
Для 85 года? Я так не думаю. Но сейчас я также не очень хорошо понимаю место оберона. Технологии обогнали его. Zoonon — вообще непонятное чудо. Если Оберон мне не понравился(в нынешних то летах) то от Zoonon вообще стало плохо.
Но честно говоря, очень жалко что во времена когда я только начинал, я о нем не знал.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Goto's are evil?
От: AVC Россия  
Дата: 30.11.05 22:20
Оценка:
Прочитал сегодняшние посты.
Главное, что хочу сказать: имхо, RSDN прошел тест на зрелость.
Мой респект всем участникам, независимо от того, симпатизируют они Вирту, или напротив — терпеть его не могут.

Довавлю пару слов от себя.
Данила-мастер (Вирт) все-таки сделал каменный цветок (Оберон).
Но кто помнит сказы Бажова, знает, что там все не так просто.
Меня еще в детстве поразила красота и печаль этой истории.

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

Хоар
Re[14]: Goto's are evil?
От: reductor  
Дата: 01.12.05 01:42
Оценка:
Здравствуйте, eao197, Вы писали:

E>Никогда не поверю, что C++ можно выучить очень быстро и начать на нем грамотно программировать. Особенно с сегодняшним уклоном в шаблоны, метапрограммирование и expression templates...


Если вы считаете, что человек, знающий Common Lisp, Smalltalk и ML найдет для себя что-то новое и неизвестное в C++, то мне придется вас разочаровать. Не найдет.
Система типов — слабое подобие той, что в ML
Шаблоны в C++ — это частично (со стороны типов) — реализация параметрического полиморфизма из того же ML, частично (со стороны мета-) — 1/20 (если не меньше) возможностей того, что могут дать макросы в Common Lisp.
Весь STL — это неуклюжая попытка скопировать стандартную библиотеку Common Lisp, причем Степанов даже и не пытается это отрицать.

С классами, полагаю, и так все понятно.

Самая новая и оригинальная идея в С++ имеет не менее чем двадцатилетнюю историю в других языках.


E>Я и сам "13 Years of C++ and still learning"


Я вас правильно понимаю, что вы не знаете ни одного из вышеназванных языков?
Re[15]: Goto's are evil?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.12.05 02:13
Оценка: +1
Здравствуйте, reductor, Вы писали:

E>>Я и сам "13 Years of C++ and still learning"


R>Я вас правильно понимаю, что вы не знаете ни одного из вышеназванных языков?


Правильно.

И знаешь что? Мне совершенно не стыдно. Всего знать не возможно.

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

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

Про знания языков (в смысле их успешного промышленного применения) я высказывался здесь: Re[3]: BlackBox всерьёз
Автор: eao197
Дата: 17.11.05
и Язык всего лишь одна из граней культуры
Автор: eao197
Дата: 22.11.05
.
А на практике это выливается в то, что нужно много времени потратить на изучение и практическое применение C++ чтобы уметь реально создавать код, в духе Compile-time template library
Автор: Юрий Жмеренецкий
Дата: 22.10.05
или А generic-и так могут?
Автор: eao197
Дата: 30.05.05
, не говоря уже про Boost. Crypto++ или ACE.

Поскольку рассказ про монады в функциональных языках -- это только одна грань такой обширной вещи, как программирование. А другая грань -- это, например, СУБД. И какая бы теория за какой-нибудь СУБД не стояла, без качественной реализации такая СУБД -- это так, поделка. А для качественной реализации нужно много разных качеств у разработчика. Среди которых эрудиция, имхо, далеко не на первом месте.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[14]: Goto's are evil?
От: reductor  
Дата: 01.12.05 02:14
Оценка:
Здравствуйте, Глеб Алексеев, Вы писали:


ГА>Все так, но для продуктивного программирования нужно еще и "руку набить", и о распространенных граблях знать, и не лезть поминутно в справку, а еще есть (стандартная) библиотека, которую изучать и изучать.


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

ГА>Потому переход с более сложного С++ на (вроде бы) более простые C# или Java — вовсе не минутное дело.


просто чтобы пример привести самый недавний:
здесь предлагается переписать код на C# http://www.rsdn.ru/Forum/Message.aspx?mid=1508085&amp;only=1
Автор: IT
Дата: 27.11.05

на C# я до того не знал вообще(один раз мельков видел описание новшеств в 3.0) и не написал на нем ни одной строчки. Яву и еще несколько языков правда знал.
А все, что меня связывает с .NET — это просмотр спецификация на F# и SML.NET и написание на них для теста hello, world
тут я предложил вариант: http://www.rsdn.ru/Forum/Message.aspx?mid=1508248&amp;only=1
Автор: reductor
Дата: 28.11.05

На все про все мне потребовалось около двух часов. С синтаксисом все понятно. Сомнений, что там можно сделать константную проверку в switch вместо динамики с кучей if у меня не было никаких, посмотрел на определение switch в MSDN, полазил по библиотеке, нашел константы для типовых значений и нужные методы и все. Можно было бы сделать посимпатичнее через подобие continuations или иксепшены (не так конечно как в другом там варианте), но мне было лень дальше разбираться.



ГА>з.ы. Я очень надеюсь, что изучение Лиспа и Хаскелла откроет мне третий глаз, и с чакрами все станет в порядке, но новый язык за полдня — ИМХО, преувеличение.


Да ничего такого сложного — чем больше их учишь, тем проще.
Re[16]: Goto's are evil?
От: reductor  
Дата: 01.12.05 02:38
Оценка:
Здравствуйте, eao197, Вы писали:

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


E>>>Я и сам "13 Years of C++ and still learning"


R>>Я вас правильно понимаю, что вы не знаете ни одного из вышеназванных языков?


E>Правильно.


E>И знаешь что? Мне совершенно не стыдно. Всего знать не возможно.


Я и не предлагал, чтобы было стыдно. Речь шла совсем о другом.
Кому-то нравится учить много языков, кого-то вообще от программирования тошнит.

E>Знать что-то про язык, знать стандарт языка, знать что-то про его библиотеки, но в теории -- это одно.

E>Применять язык на практике -- совершенно другое.

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

E>Мало знать про такие вещи, как RAII или сильную гарантию безопасности исключений. Мало знать про то, как это работает. Нужно уметь это применять. Постоянно, целенаправлено и последовательно. Могу тебя уверить -- далеко не у всех это получается. И я не исключение, удачный код у меня выходит не так часто как хотелось бы. Поэтому и говорю, что все еще изучаю C++.


Нет никакого желания спорить. Знать как работает — нужно

E>Поскольку рассказ про монады в функциональных языках -- это только одна грань такой обширной вещи, как программирование. А другая грань -- это, например, СУБД. И какая бы теория за какой-нибудь СУБД не стояла, без качественной реализации такая СУБД -- это так, поделка. А для качественной реализации нужно много разных качеств у разработчика. Среди которых эрудиция, имхо, далеко не на первом месте.


Ну Джеф Ульман конечно про СУБД и эрудицию бы здесь поспорил. Просто своим существованием . Я не смогу так конечно.
Скажу, что монады мне не мешают разбираться в СУБД на достаточном для удовлетворения моего интереса уровне.
Re[18]: Goto's are evil?
От: Дарней Россия  
Дата: 01.12.05 02:42
Оценка:
Здравствуйте, eao197, Вы писали:

E>Кажется, где-то проскакивала информация, что систему управления метрополитеном в какой-то европейской столице толи на Modula-2, толи на Oberon реализовали. Так что продукт востребован.


E>БелАЗы, например, ты крайне редко увидишь. И выпускается их мало. Но ведь это не означает, что они не востребованы.


я очень сильно сомневаюсь, что оберон задумывался как нишевой язык изначально
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Goto's are evil?
От: Дарней Россия  
Дата: 01.12.05 02:42
Оценка: +1
Здравствуйте, GlebZ, Вы писали:

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

GZ>И что, это неправда? Для императивных это так.

как насчет С++/STL?

Д>>про такие вещи как лямбда, макросы и т.п. — вообще ни слова, хотя это как раз одни из самых сильных сторон ФЯ

GZ>А он и не пояснял функциональные языки. Похоже у него стойкое неприятие к ним.

да, похоже на то
в любом слуаче, оценивать языки, отбросив их самые сильные стороны — довольно странная идея
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[16]: Goto's are evil?
От: reductor  
Дата: 01.12.05 03:12
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>reductor wrote:


>> C>Хороший программист о них, конечно, должен знать, но это скорее просто

>> C>background knowledge (как мат.анализ или алгебра).
>> Да ладно. Конечно не должен!
>> Хороший программист — это когда в слюнявчике, утка, детское питание по
>> катетеру, мышь без колеса и клавиатура с одной кнопкой — для вызова
>> сиделки с проджект менеджером.

C>А если серьезно, где теория необходима прикладному программисту?

C>Например, я не помню, чтобы мне где-то понадобилось использовать
C>алгоритмы быстрой факторизации чисел или доказывать правильность алгоритма.

Не знаю, по-моему везде.
Например, чтобы понимать нерешаемость какой-то задачи.
Или чтобы понимать какой аппарат или алгоритм для какой задачи больше подходит.
По-моему, пример с Rubin и Dijkstra это очень красиво показывает.
И я как-то более чем за, что описанные необязательные требования для программиста в MIT или CMU обязательны на первом курсе.
Да мало ли какая задача попадется. Что вообще такое программист в конечном итоге?


C>Полезного из теории могу вспомнить O-нотацию для оценки скорости, но я

C>до нее еще в школе сам додумался Я даже трехмерной графикой вполне
C>успешно занимался без знаний подробностей работы алгоритма триангуляции
C>Делоне или критериев оптимальности разбиения.

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


C>Бывают задачи (типа цифровой обработки сигналов, например), где без

C>теории — никуда. Но это уже исключения, подтверждающие правило.

Что-то мне не кажется, что DSP такое уж исключение в плане требовательности к теоретической подготовке.
К тому же основы тех же сигналов ни одному программисту и просто так не повредят. Для общей эрудиции.
Re[21]: Goto's are evil?
От: reductor  
Дата: 01.12.05 03:34
Оценка: 5 (1)
Здравствуйте, Глеб Алексеев, Вы писали:

ГА>
ГА>do_smth1();
ГА>do_smth2();
ГА>do_smth3();
ГА>

ГА>получается
ГА>
ГА>world1 = do_smth1 world0
ГА>world2 = do_smth2 world1
ГА>world3 = do_smth3 world2
ГА>

ГА>Где-то смутно ощущаю, что IO-монада и do-нотация в Хаскеле примерно это и делает, только с синтаксическим сахаром (просьба ногами не бить, с теорией категорий не знаком, с Хаскелем знаком по туториалам и паре самостоятельно выполненных "Hello cruel world" в Hugs, это мое интуитивное понимание на сегодняшний день. А т.к. Haskell is a language of choice for discriminating hackers, я с ним еще обязательно разберусь получше ).

Кстати забыл сказать. что-то типа этого в общем случае делает монада State
Причем, это вовсе не magic trick компилятора, а вполне самостоятельно реализуемая функциональность.

Еще в хаскеле естьб пара "задних ходов" для непосредственного сохранения состояния — те же Refs, обернутые в закрытые монады, чтобы не шалилось, но в общем случае можно симулировать среду для написания очень похожего на ML кода (но прямо так — смысла нет, можно красивее).
Re[17]: Goto's are evil?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.12.05 06:09
Оценка:
Здравствуйте, reductor, Вы писали:

R>Я и не предлагал, чтобы было стыдно. Речь шла совсем о другом.

R>Кому-то нравится учить много языков, кого-то вообще от программирования тошнит.

А я не о том, нравится или нет.
Я о том, что знания, например, Java совершенно не помогают при программировании на C++. Скорее наоборот.
Точно так же, как сравнивать приемы программирования на Ruby или C++.
Ну, например, какие грабли зарыты в следующем C++ коде:
const std::string & find_something( const std::string & key, const find_params_t & params )
    {
        ...
        return key;
    }


E>>Знать что-то про язык, знать стандарт языка, знать что-то про его библиотеки, но в теории -- это одно.

E>>Применять язык на практике -- совершенно другое.

R>Конечно. Только это другое в какой-то момент сжимается в невидимую глазу точку. Просто языков программирования на самом деле намного меньше, чем принято считать. Потому и порой открывая документацию на незнакомый язык обнаруживаешь, что ты его уже знаешь. От и до.


На счет "от и до" -- не верю.

E>>Поскольку рассказ про монады в функциональных языках -- это только одна грань такой обширной вещи, как программирование. А другая грань -- это, например, СУБД. И какая бы теория за какой-нибудь СУБД не стояла, без качественной реализации такая СУБД -- это так, поделка. А для качественной реализации нужно много разных качеств у разработчика. Среди которых эрудиция, имхо, далеко не на первом месте.


R>Ну Джеф Ульман конечно про СУБД и эрудицию бы здесь поспорил. Просто своим существованием . Я не смогу так конечно.


А что Джеф Ульман был спецом по ленивым вычислениями или функциональным языкам?

R>Скажу, что монады мне не мешают разбираться в СУБД на достаточном для удовлетворения моего интереса уровне.


Помогут ли они тебе при реализации, например, подсистемы кэширования таблиц РСУБД на языке C. При условии, что подсистема должна быть портабельна на Solaris, HP-UX, AIX, Linux, *BSD и Win32 (Win2k, XP, 2003)?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[18]: Goto's are evil?
От: reductor  
Дата: 01.12.05 07:28
Оценка:
Здравствуйте, eao197, Вы писали:


E>Я о том, что знания, например, Java совершенно не помогают при программировании на C++. Скорее наоборот.


Видимо, вы много времени потратили на изучение этого вопроса. По вашему знание или незнание Java в то время, когда кроме нее знаешь еще языков 20 как-то может повлиять при программировании на С++? Ну если может, так только положительно. Потому что общего в них больше, чем различий. Несмотря на все различия.

E>Точно так же, как сравнивать приемы программирования на Ruby или C++.

E>Ну, например, какие грабли зарыты в следующем C++ коде:

Вы мне экзамен решили устроить?
Причем, что характерно экзамен на терпение. Оно не константно.

E>На счет "от и до" -- не верю.


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


R>>Ну Джеф Ульман конечно про СУБД и эрудицию бы здесь поспорил. Просто своим существованием . Я не смогу так конечно.


E>А что Джеф Ульман был спецом по ленивым вычислениями или функциональным языкам?


Ну во-первых он не был, он есть. Во-вторых, Джеф Ульман, как и любой, действительно великий человек, талантлив во всем и неисчерпаем как электрон. Сложнее сказать по чему он не_специалист.
В-третьих, представьте себе и по функциональным языкам тоже:
http://www.amazon.com/gp/product/0137903871/qid=1133421564/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/102-6365212-3711324?n=507846&amp;s=books&amp;v=glance
http://www-db.stanford.edu/~ullman/emlp.html

R>>Скажу, что монады мне не мешают разбираться в СУБД на достаточном для удовлетворения моего интереса уровне.


E>Помогут ли они тебе при реализации, например, подсистемы кэширования таблиц РСУБД на языке C. При условии, что подсистема должна быть портабельна на Solaris, HP-UX, AIX, Linux, *BSD и Win32 (Win2k, XP, 2003)?



Однозначно, особенно кеширования
Кстати, можно и MacOS туда вписать. Я всегда все на нее портирую тоже.

Вообще интересно, что вас заставляет _спорить_ с _моим_ опытом каким бы он ни был?
Re[19]: Goto's are evil?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.12.05 08:33
Оценка: +3
Здравствуйте, reductor, Вы писали:

R>Видимо, вы много времени потратили на изучение этого вопроса. По вашему знание или незнание Java в то время, когда кроме нее знаешь еще языков 20 как-то может повлиять при программировании на С++? Ну если может, так только положительно. Потому что общего в них больше, чем различий. Несмотря на все различия.


По моему опыту, общего между Java и С++, после глубокого в них погружения, оказывается только синтаксис.
И есть у меня сильное подозрение, что когда речь идет о знаниях 20 языков, то речь идет именно о поверхносных знаниях. Которых может оказаться совершенно недостаточно для реализации системы объемом, к примеру, в 100 тысяч строк.

E>>Точно так же, как сравнивать приемы программирования на Ruby или C++.

E>>Ну, например, какие грабли зарыты в следующем C++ коде:

R>Вы мне экзамен решили устроить?


Нет, хочу показать, как без знания тонких моментов конкретного языка можно потратить массу времени в отладке (еще хорошо, если такая проблема проявится в отладке, а не после 6-ти месяцев эксплуатации в системе 24x7, когда все уже уверились в ее надежности).

Или еще гипотетический пример из подсистемы кэширования таблиц СУБД. Представь себе код:
class cache_t {
    public :
        ...
        cache_page_t get_page( page_index_t index );
        ...
};

и его аналог на Java:
class Cache {
    ...
    public CachePage getPage( PageIndex index );
    ...
}


На первый взгляд очень похожи, что и заставляет думать, что Java и C++ близки. На поверку, если C++ тип cache_page_t является не хитрым smart-pointer-ом или не реализован на основе PImpl (с тем же smart-pointer-ом внизу), то производительность C++ варианта будет катострофически низка. И для того, чтобы приблизиться к аналогу Java-варианта потребуется переписать C++ код как-то так:
class cache_t {
    public :
        ...
        cache_page_t & get_page( const page_index_t & index );
        // Или так.
        cache_page_t * get_page( const page_index_t * index );
        ...
};

со всеми вытекающими отсюда последствиями, которыми так любят пугать в C++.

R>>>Ну Джеф Ульман конечно про СУБД и эрудицию бы здесь поспорил. Просто своим существованием . Я не смогу так конечно.


E>>А что Джеф Ульман был спецом по ленивым вычислениями или функциональным языкам?


R>Ну во-первых он не был, он есть. Во-вторых, Джеф Ульман, как и любой, действительно великий человек, талантлив во всем и неисчерпаем как электрон. Сложнее сказать по чему он не_специалист.

R>В-третьих, представьте себе и по функциональным языкам тоже:
R>http://www.amazon.com/gp/product/0137903871/qid=1133421564/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/102-6365212-3711324?n=507846&amp;s=books&amp;v=glance
R>http://www-db.stanford.edu/~ullman/emlp.html

Рад за него. Только я не Ульман. И сильно сомневаюсь, что мы сможем нанять на работу кого-нибудь с знаниями, талантом и возможностями Ульмана. Поэтому придется работать с тем, кто есть. И если человек заявляет (либо ведет себя), что "я, да 20 языков, да любой язык за полдня", то это либо горлопан, от которого нужно сразу избавляться, либо новичек, которого еще учить и учить. Гипотетически, конечно, возможно, что мне повстречается кто-то типа Ульмана или того же Вирта. Только, во-первых, шансы на это пренебрежительно малы. И, во-вторых, это сразу станет заметно, поэтому все сразу встанет на свои места.

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

R>>>Скажу, что монады мне не мешают разбираться в СУБД на достаточном для удовлетворения моего интереса уровне.


E>>Помогут ли они тебе при реализации, например, подсистемы кэширования таблиц РСУБД на языке C. При условии, что подсистема должна быть портабельна на Solaris, HP-UX, AIX, Linux, *BSD и Win32 (Win2k, XP, 2003)?


R>Однозначно, особенно кеширования

R>Кстати, можно и MacOS туда вписать. Я всегда все на нее портирую тоже.

Если это ирония, то напрасная. Я как раз занимаюсь написанием софта, который вынужден работать на этих платформах (только до HP-UX и AIX пока не добрались , вместо них HP NonStop Kernel) и пишется на С++.

R>Вообще интересно, что вас заставляет _спорить_ с _моим_ опытом каким бы он ни был?


Я не спорю с твоим опытом (просто даже не знаю, как о нем вообще судить можно, на основании чего ). Меня двигает то впечатление, которое создают твои посты. "Вирт -- это смешно", "Программы верифицируемы по спецификациям", "Существует способ писать программы без ошибок", "Любой язык за полдня", "Что такого в C++ по сравнению с Common Lisp, Haskell, ML?", ...
Ты напоминаешь инженера из КБ, который привез новый станок на производство. Типа: "Он все сам, самые последние достижения научной мысли, эноргомика на высшем уровне, любые операции...". А потом выясняется, что здесь пол не очень ровный, и загазованность в помещении слишком высокая, и влажность недостаточно низкая, и за эту рукоятку промасленной перчаткой лучше не браться, и протирать его от пыли обычной тряпкой нельзя, и детали такого размера обрабатывать уже нельзя, и токаря дядю Ваню на три месяца на курсы повышения квалификации отправить нужно, а стажера Вовочку ближе трех метров подпускать не следует...

В общем, обычный разрыв между наукой и производством.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Количество ссылок на публикации
От: Mamut Швеция http://dmitriid.com
Дата: 01.12.05 08:42
Оценка: +1
E>>Видишь ли, к научному миру я отношения не имею. А когда пытался иметь это отношение, то у меня остались не самые хорошие воспоминания об этом деле. В частности о системе оценки работы по количеству публикаций.

R>По количеству ссылок на публикации. Впрочем, количество работ у вирта тоже не фонтан.


Прохоже сейчас в универе Science, Technology and Society. Так вот, количество ссылок на публикации является удобным, но очень неточным критерием оценки вклада того или иного ученого в науку.

Точное описание, почему, сейчас не приведу — книга дома. Но так и есть.
... << RSDN@Home 1.2.0 alpha rev. 619>>


dmitriid.comGitHubLinkedIn
Re[19]: Goto's are evil?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 01.12.05 08:47
Оценка: :)
Здравствуйте, Дарней, Вы писали:

Д>я очень сильно сомневаюсь, что оберон задумывался как нишевой язык изначально


Так ведь давай оценивать Modula-2 и Oberon на момент их создания (1978 и, если не ошибаюсь, 1988). Не знаю, как Лисп-ы и Smalltalk-и, а C++ в 1978 вообще не было, а в 1988 он был далек от того, что мы имеем сейчас. Java, точнее Oak, возможно, зачиналась в самых смелых мечтах Грослинга. На звания промышленных языков того времени они, имхо, вполне могли претендовать. А вот почему не получилось? Вероятно, у Вирта просто-напросто технических талант, а не маркетинговый.

Я лично помню, что где-то в 1993 году на меня сильное впечатление произвела статья про Оберон. Особенно про его модульную природу. Мне тогда, после перехода на C/C++ с Turbo Pascal сильно турбо-паскалевских unit-ов не хватало. А в Обероне это было, как мне показалось, доведено до логического завершения.

Жалел тогда, что в нашем университете ничего, кроме MS-DOS, Turbo Pascal и Turbo C (затем Borland C++) ничего не было Не довелось в то время ни с Обероном познакомиться, ни со Smalltalk-ом, ни с Lisp-ом. Вот так я и стал C++ником
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[20]: Goto's are evil?
От: reductor  
Дата: 01.12.05 09:25
Оценка: :))
Здравствуйте, eao197, Вы писали:

E>По моему опыту, общего между Java и С++, после глубокого в них погружения, оказывается только синтаксис.


Не могу не уступить вашему опыту.

E>И есть у меня сильное подозрение, что когда речь идет о знаниях 20 языков, то речь идет именно о поверхносных знаниях. Которых может оказаться совершенно недостаточно для реализации системы объемом, к примеру, в 100 тысяч строк.


На всякий случай скажу, что 100 000 — это очень небольшая система. Вообще.



E>Нет, хочу показать, как без знания тонких моментов конкретного языка можно потратить массу времени в отладке (еще хорошо, если такая проблема проявится в отладке, а не после 6-ти месяцев эксплуатации в системе 24x7, когда все уже уверились в ее надежности).


Спасибо за ценный урок.

E>Или еще гипотетический пример из подсистемы кэширования таблиц СУБД. Представь себе код:


Сижу, пытаюсь представить.

E>со всеми вытекающими отсюда последствиями, которыми так любят пугать в C++.


Да, очень страшно.


R>>Ну во-первых он не был, он есть. Во-вторых, Джеф Ульман, как и любой, действительно великий человек, талантлив во всем и неисчерпаем как электрон. Сложнее сказать по чему он не_специалист.

R>>В-третьих, представьте себе и по функциональным языкам тоже:
R>>http://www.amazon.com/gp/product/0137903871/qid=1133421564/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/102-6365212-3711324?n=507846&amp;s=books&amp;v=glance
R>>http://www-db.stanford.edu/~ullman/emlp.html

E>Рад за него. Только я не Ульман. И сильно сомневаюсь, что мы сможем нанять на работу кого-нибудь с знаниями, талантом и возможностями Ульмана.


Да, незадача.

E>Поэтому придется работать с тем, кто есть. И если человек заявляет (либо ведет себя), что "я, да 20 языков, да любой язык за полдня", то это либо горлопан, от которого нужно сразу избавляться, либо новичек, которого еще учить и учить.


Если вы про меня, то я к вам пока на работу не устраивался. И вроде даже не заявлял о возможности такого намерения.

E>Гипотетически, конечно, возможно, что мне повстречается кто-то типа Ульмана или того же Вирта. Только, во-первых, шансы на это пренебрежительно малы. И, во-вторых, это сразу станет заметно, поэтому все сразу встанет на свои места.


Не упущу возможности заметить, что Ульман и Вирт слишком разных уровней "работники", чтобы вот так через "или".
А что про шансы, думаю да. Шансов у вас никаких.


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


Ну что же, против опыта не попрешь. Даже против такого.


E>>>Помогут ли они тебе при реализации, например, подсистемы кэширования таблиц РСУБД на языке C. При условии, что подсистема должна быть портабельна на Solaris, HP-UX, AIX, Linux, *BSD и Win32 (Win2k, XP, 2003)?


R>>Однозначно, особенно кеширования

R>>Кстати, можно и MacOS туда вписать. Я всегда все на нее портирую тоже.

E>Если это ирония, то напрасная. Я как раз занимаюсь написанием софта, который вынужден работать на этих платформах (только до HP-UX и AIX пока не добрались , вместо них HP NonStop Kernel) и пишется на С++.


Кстати, про много платформ у вас такое же мнение как и про много языков?

E>Я не спорю с твоим опытом (просто даже не знаю, как о нем вообще судить можно, на основании чего ). Меня двигает то впечатление, которое создают твои посты. "Вирт -- это смешно", "Программы верифицируемы по спецификациям", "Существует способ писать программы без ошибок", "Любой язык за полдня", "Что такого в C++ по сравнению с Common Lisp, Haskell, ML?", ...


То ли впечатление такое сильное, то ли сила трения слабая, что аж прямо двигает...

E>Ты напоминаешь инженера из КБ, который привез новый станок на производство. Типа: "Он все сам, самые последние достижения научной мысли, эноргомика на высшем уровне, любые операции...". А потом выясняется, что здесь пол не очень ровный, и загазованность в помещении слишком высокая, и влажность недостаточно низкая, и за эту рукоятку промасленной перчаткой лучше не браться, и протирать его от пыли обычной тряпкой нельзя, и детали такого размера обрабатывать уже нельзя, и токаря дядю Ваню на три месяца на курсы повышения квалификации отправить нужно, а стажера Вовочку ближе трех метров подпускать не следует...


Какой однако смачный переход на личности. Причем, хочу заметить, не в первый раз.
Скажите, вас что-то в вашей работе не устраивает, что я уже в который раз замечаю такой напор личных претензий?
Хотите услышать кого вы мне напоминаете?
Впрочем, я отложу это признание ровно до следующего такого раза.


E>В общем, обычный разрыв между наукой и производством.


Нет, в моем случае я являюсь связью между наукой и производством. Я ее[науку] использую на этом производстве самым циничным способом.
Да, мне стыдно.
Re: Количество ссылок на публикации
От: reductor  
Дата: 01.12.05 09:31
Оценка:
Здравствуйте, Mamut, Вы писали:

E>>>Видишь ли, к научному миру я отношения не имею. А когда пытался иметь это отношение, то у меня остались не самые хорошие воспоминания об этом деле. В частности о системе оценки работы по количеству публикаций.


R>>По количеству ссылок на публикации. Впрочем, количество работ у вирта тоже не фонтан.


M>Прохоже сейчас в универе Science, Technology and Society. Так вот, количество ссылок на публикации является удобным, но очень неточным критерием оценки вклада того или иного ученого в науку.


Конечно неточным. Что вообще может быть точным в таком вопросе.
Но у вас есть точнее?

Ну и конечно лично для меня это не самый первостепенный критерий. Просто кидать ссылки на чьи-то работы и просить оценить — будет смешно.
Тем более непонятно как кому-то объяснить, что тот же Вирт — вовсе не ученый, а преподаватель и популяризатор.
Re[10]: Goto's are evil?
От: minorlogic Украина  
Дата: 01.12.05 09:40
Оценка:
Здравствуйте, Игoрь, Вы писали:

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



M>>Так вот в том то и дело что метку можно назвать хорошо а МОЖНО ПЛОХО , а return не допускает вольной интерпретации, логика его работы прозрачна.

И>Ну и что из этого следует? Я же выше сказал, что и функцию МОЖНО ПЛОХО назвать, но главное что можно и хорошо.
И>По-моему тема с goto высосона из пальца. Просто не стоит ими злоупотреблять вот и все. А прогу запутать легко и без явных меток, что многие успешно делают.

Собственно тут логически течет такое рассуждение. Если переходы "goto" настолько же удобны как и return к примеру , тогда зачем загромождать язык такими конструкциями как

for
if
case
while
и т.д.

А зачем ? ведь все можно построить на goto.
А вот зачем , чтобы ЯВНО выделить лгические конструкции языковыми примитивами , в том числе и return служит для этой цели.

Это делается для удобства ЧТЕНИЯ и ПОНИМАНИЯ исходников. Залдача языка в этом вопросе , помочь передавать смысл написанного не позволяя неточные трактовки.
Ищу работу, 3D, SLAM, computer graphics/vision.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.