Здравствуйте, VladD2, Вы писали:
VD>А Гене с его самосознанием надо бы работу менять. А то он явно относится к тому большинству о котором Колхозы так не лестно отзвались.
Влад, я очень ценю твои телепатические и прочие паранормальные способности, но по-моему, тебя заносит. В отпуск пора, адназначна.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, IT, Вы писали:
ГВ>>Подскажу. Потому что мои оппоненты часто занимаются демагогией. IT>Ты думаешь, обвинив других в демагогии, можно полностью реабилитироваться?
Если ты заметил, я не обвиняю оппонентов в демагогии голословно. Уж коль скоро само слово "демагогия" ныне оказалось затёртым до дыр, то приходится прямо указывать на присущие ей приёмы.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Eugene Beschastnov, Вы писали:
EB>>Прочитай внимательнее ссылку — это не теоретические рассуждения о том, как хорошо бы делать, это прямой подсчёт строк во всех методах для трёх основных диалектов. Там даже код приведён, который этот подсчёт выполняет.
VD>Про среднюю темпиратуру по больнице слышал? У одного человека она комнатная, у другого под 40, а в среднем она 36.6. Вот такая же фигня с кодом в метода. В одном (и их много) методе одна строка, в другом 100. В среднем 7.
И? Это что-то опровергает? Если да, то поясни, пожалуйста, свою мысль.
Кстати, интересно — какое среднее количество строк в методе в стандартной большой программе на Nemerle? Например, компилятор Nemerle на самом Nemerle написан (я не в курсе)? Вот в нём, например. И заодно интересно было бы посмотреть на программу, выполняющую этот подсчёт (тоже на Nemerle, разумеется).
Здравствуйте, VladD2, Вы писали:
E>>Совсем маленькое дополнение: я написал "мне тяжело писать exception safe код", а ты говоришь о просто коде ("мне легко писать код"). Небезопасный по отношению к исключениям код и я пишу без проблем. А ты попробуй безопасный написать.
VD>Еще раз. Мой код работает если в нем нет ошибок. А его отношение к рекламыным слоганам вроде exception safe меня просто не интересует.
Некоторое время назад здесь была дискуссия на эту тему. Участвовали Павел Кузнецов, Wolfhound и ваш покорный слуга. Поищи, там было кое-что интересное.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Я в час ночи что-то не соображу, кого ты цитируешь. Ну да это не важно.
Имеем — все три основных (на данный момент) диалекта Smalltalk являются исключением (по твоим словам). Вопрос: они являются исключениями каждый по отдельности или весь Smalltalk в целом?
Здравствуйте, Геннадий Васильев, Вы писали:
E>>>Совсем маленькое дополнение: я написал "мне тяжело писать exception safe код", а ты говоришь о просто коде ("мне легко писать код"). Небезопасный по отношению к исключениям код и я пишу без проблем. А ты попробуй безопасный написать.
VD>>Еще раз. Мой код работает если в нем нет ошибок. А его отношение к рекламыным слоганам вроде exception safe меня просто не интересует.
ГВ>Некоторое время назад здесь была дискуссия на эту тему. Участвовали Павел Кузнецов, Wolfhound и ваш покорный слуга. Поищи, там было кое-что интересное.
Здравствуйте, Дарней, Вы писали:
ГВ>> Нельзя делать выводы о качественных сторонах продукта по его распространённости.
Д>если ты веришь, что тебя окружают одни идиоты и ты один на коне и весь в белом — то нельзя. Как же можно верить мнению идиотов, когда ты — самый умный и знаешь про это. Д>Если же ты более реалистично относишься к своим умственным способностям, то надо понимать, что просто так ничего не получается. И распространенность — в том числе.
"Ты чё, самый умный, што-ли?" Ну вот что здесь отвечать?
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
VD>И что? Конкретно этот код содержит ошибку или в "if (x > 5)" или в "get(10)". Ошибку логическую. Когда ты запустишь этот код, то получишь исключение вырубающее приложение. Но сам код можно, точнее нужно по прежнему читать как если бы он был написан без исключений. Для логики приложения исключений не должно существовать. Если ты начинашь строить логику в зависимости от исключения, то можно сливать воду. Приложение ты или не допишишь, или он будет дико ключить.
По моему тут просто хорошо подходит поговорка про бревно в своем глазу и соринку в чужом
И в смаллтоке и в шарпе писать такой код плохой стиль, но запретить это ни там ни тут нельзя.
VD>Что до IDE, то раз уж динамические языки так круты, и так круты те кто их использует, то почему на них нельзя было давно создать охринительную IDE затмевающую жалкие поделки от МС и ДжетБрэйн? В прочем для меня это вопрос риторический я то точно знаю почему.
Весело, читать такое в теме где обсуждается смаллтолк
Здравствуйте, eao197, Вы писали:
VD>>Мой код работает если в нем нет ошибок. E>Я распечатаю эту фразу, возьму под стекло в рамку и на стенку повешу. Оно того стоит.
Женя, спасибо! А то у меня совсем глаз замылился.
PS.: Владу — заслуженная "3x"!
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
VD>Возражение последует другое. На сеогдня есть языки компиляторы которых пораждают код сравнимый по быстродействию с С++-ным
Замечательно.
VD>и при этом эти языки значительно выразительнее Смолтока. К тому же они являются статически типизированными.
Гм, чо по новой Ладно погнали:
В массиве есть целые , даблы , натуральные дроби, неограниченные целые, например надо найти рядом стоящие значения удовлетворяющие определенному выражению типа что-то такое : prevItem * 2 = curItem.
VD>Так зачем держаться за славное детище Ксерокса опередившее свое время в 70-ых?
Повторюсь (все IMHO), по степени важности:
— мне нравиться интерактивный, инкрементальный принцип построения программы. когда программа делается небольшими кусочками которые тут же начинают работать. +TDD +XP. Это все мне нравиться больше всего остального вместе взятого.
— динамический язык позволяет делать краткий и выразительный код (см. пример выше);
— отсутсвие типизации лично мне нравится тем что я могу во многих местах не думать какие конкретно будут типы (числа или коллекции), я уверен что какие-бы не были (или вдруг по условию задачи диапазон типов расширился) код использующий их будет верным и к тому же без лишнего синтаксического мусора в виде приведения типов нужного токо для компутера, а не для чтения кода. Т.е. все числовые типы понимают операцию "+" и т.п., все коллекции понимают итератор do: и т.д.
— очень мало и простые правила языка. язык проще изучать спецам предметной области (не программерам) с не замутненными мозгами и как показывает практика — Smalltalk им нравится .
Ну и для объективности не нравиться (также по степени важности):
— IDE заметно отстают от VS2005. Т.к. стоко бабла как у МС нет видимо ни у одного из производителей ST. К примеру Dolphin — это фирма из 2-х разработчиков и собственно владельцев, но надо отдать им должное что вдвоем умудрились сделать и качетсвенную VM и саму IDE.
— отсутствие богатого дяди, промывающего всем мозги и жесткого маркетинга, из-за этого рапрастранненость малая и неясно будущее и нет развития.
— непривычный синтаксис после обычного (Delphi, VB, C) . Честно скажу — непривычный но на фоне достоинтсв, уже привык.
— быстродействие хуже чем у компиляторов, хотя это для моих задач (бизнес-логика, бизнес-приложения) не проблема вообще, как правило все упирается в БД.
Еще раз повторю — все вышеозвученное это мое личное мнение, мои впечатления. Я считаю что озвученные моменты вполне объективны, но надо понимать что для каждого (в силу привычек, взглядов на жизнь , видов решаемых задач и т.п.) они могут иметь свой вес кому-то больше кому-то меньше, так-что результат суммирования может быть как положительным так и отрицательным .
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>За счет того что в них функции первоклассные писать в функциональном стиле гораздо удобней чем в шарпе.
VD>C# 3.0 смотрел?
Так оно еще не вышло, а когда я уже писал на питоне в функциональном стиле и второй шарп был только в проекте.
Тройка конечно большой шаг вперед.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
VD>>>Цитирую, как говорится, классиков . VD>>>
Я вот не мало в свое мремя пописал на разных динамических языках.
FR>>Между тем же VB и питоном с руби разница не меньше чем между фортраном и шарпом
VD>И что? Он от этого динамическим перстал быть? Да и речь не о VB. Это ты его сюда прилепил.
Ну ты его упоминаешь часто, но это совсем не то
FR>>Поэтому и интересно на каком именно динамическом языке ты много писал.
VD>Их было шутк 5. Самый известный тебе наверно JScript. Столкнуться с ним пришлось в следствии того что это единственный язык для веб-страничек. 3 штуки это языки к разным финансовым системам.
Интересно какие?
Jscript самый опасный и слабый из современной динамики, разница близка к разнице между шарпом и C++
FR>>Люблю твои выводы читать FR>>Тебе надо серъезно задуматся о карьере писателя — фантаста
VD>ОК. Пошел думать. А то что-то я слишком много времени стал проводить с читательской аудиторией.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, FR, Вы писали:
FR>>Ты как раз и думаешь больше в терминах реализации.
VD>Ты меня с кем-то путаешь.
Может слегка, c IT
FR>>Мы говорили про приведения типов, и твое описание подобное описанию например C++ классов глазами ассемблерщика, но ты перескочил на производительность.
VD>Поднимись выше... почитай еще раз.
Почитал
FR>>Есть и другие методики, в обсуждениях смаллтока их не раз перетирали, а тебя похоже заклинило на одной конкретной реализации jit'а и все остальное ты видишь только преломленным через это свое понимание.
VD>Меня не заклинило. Я реалист практик. А вы верите в чудеса.
Угу я тоже думал что java никогда ни сможет приблизится по скорости к C++.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Eugene Beschastnov, Вы писали:
VD>>>>Жык это еще хуже. Чтобы этот метод выбрать нужно взять каждый объект узнать его теальный тип (в массиве он ведь не приведенным к базовому типу вроде object лижит) и только потом вызвать метод. Причем все дожно быть по ссылке. Никакие джит-компиляторы тут ничего сделать не согут. Это будет опасный и тормозной код. EB>>>Несомненно, это именно та причина, по которой JIT-компилятор впервые появился именно в Smalltalk.
EB>>Влад, и с чем же ты не согласен?
VD>С отсуствием логической связи. Ее тут просто нет.
Здравствуйте, VladD2, Вы писали:
VD>>>Гибкость можно достичь и при тотальном контрле компилятора. Просто это сложнее сделать. Но будующее за сложным изнутри и простым с наружи. P>>О — тоже верно! "Просто это сложнее сделать" — дык часто бывает надо не сложнее а быстрее, а скорости работы результата более чем хватает.
VD>Не надо извращать моис лова. "Просто это сложнее сделать" относится к разработке языка, а не к его применению.
Хм, эта твоя мысль из текста была не очевидна, ну да ладно.
VD>Да потому что это крутость уже из всех дыр. Много слов о том что динамически языки лучше, но большая часть софта пишется не на них, а банальное сравнение объемов кода показвает, что эти самые крутые динамически в дрызг проигрывают новым статическим языкам.
Ну почему всегда крайности-то типа "в дрызг проигрывают", много же разных факторов, начиная от языка кончая ситуацией в мире.
P>> , никто и неговорит что супер-круты и круче токо горы, нету "серебрянной" пули.
VD>Дык как раз говорят. И я уж даже сам начал верить. Но вот копнул... и все не так гладно. Точно совсем печально.
У меня после прочтения множественных подобных флеймов здесь создалось такое впечатление — кто-то осторожно упомянет, что вот типа в динамических языках есть что-то интересное привлекательное , тут же появляется Влад с разгромными аргументами и естесно в ответ следуют не менее разгромные аргументы. В основном состязанию идут с переменным успехом в области словесных баталий
P>> Есть в "динамике" своя привлекательность, ты это сам даже признал, несколькими постами выше.
VD>Я и не отказываюсь от этого. Да, есть плюсы. Но они же пораждают минусы. А главное, что есть факторы независящие от того динамический язык или нет. Вот паттерн-матчинг, например. Он есть в статическом, но компонентном Немерле, в динамическом Эрланге и в статическом и совсем не компонентном ОКамле. И веще он неизменно дает отличный резуальтат с точки зарения выразительности.
А кто-то разве спорит что паттерн-матчинг плохо, реально хорошая вещь.
P>> Лично мне такой принцип разработки (еще раз — интеактивное инкрементальное построение программы мальнькими кусочками) очень нравиться.
VD>Не поверишь, но мне тоже. Так что у нас много общего. Только в одном мы расхдится. Ты считашь, что он хорош только для Смолтока, а я использую его везде.
Принцип хорош сам по себе, вне зависимости от языка. Я считаю что в Smalltalk он реализован наиболее полно и тотально, и в основном из-за этого Smalltalk мне и нравится.
P>> Возможно что ради него Smalltalk и проектировался, динамичечская типизация использована чтобы решить данную задачу.
VD>И как же она решает эту задачу? И почему же эта задача неплохо решается и в C#? VD>Все мои програмы написанные на C# писались именно так. Маленькими инкреминтальными шажками с постоянном тестированием (но чаще без юнит-тестов).
Хм, к примеру, в Smalltalk:
— разработка программы всегда идет как бы в run-time-е.
— всегда можно добраться до любого объекта и до любой точки текущего отлаживаемого стека и посмотреть значения любых переменных и внутренних инстанс переменных класса. (это наверняка есть и в C#)
— если какая проблема то состояние объектов не сбрасывается, просто в отладке находиш причину как праваило ее устраняеш и продолжаеш выполнение дальше.
— всегда могу добавить новый класс и тут же его заюзать в отлаживаемом методе, исправив код прямо в дебугере.
— могу изменять кол-во инстанс переменных в классе (добавить или удалить), при этом живые экземпляры класса не ломаются.
— могу у любого класса посмотреть какие у него есть инстансы.
— могу для любого инстанса посмотреть кто на него ссылается.
— могу для любого класса добавлять удалять методы.
— все это можно делать программно.
— все эти правки не требуют прерывания работы программы (с потерей состояния), перекомпиляции и перезагрузки.
Что-то я сомневаюсь что есть какие-та аналоги Smalltalk-а в этом плане, я по крайне мере про них не слышал.
VD>Самые крутые среды для Смолтока (о Руби и Питоне вообще не говорю) на поверку оказываются середнячками сильно уступающими лушим IDE для Java и C#.
Токо дело тут в количесвте денег и человеко-лет вбуханных в эти IDE.
VD>Это уже делал IBM. И очень упроно делал. Во второй половине 90-ых прошлого века. Но кончилось все тем, что эти проекты были выброшены на свалку истории, и сейчас IBM во всю развивает Яву.
Это же политика, IBM поняла что ей срочно пора "дружить" против Microsoft и друга она нашла в Java (Sun-е) и еще Oracle с этой компанией "дружит", понятно против кого .
По поводу истории JIT посмотри сюда, по-моему, интересный экскурс.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Не исключаю ничего из сказанного мной ранее, просто дополню.
K>Вы вообще отклоняетесь от темы. Речь идет не о противопоставлении двух конкретных определений. А о противопоставлении распространенной и нераспространенной терминологии. Возражение против распространенного определения не содержало в себе ни указания на некорректность определения ни указания на его объектность-субъектность. Оно содержало только то, что распространенное определение плохое потому, что оно распространенное.Все. Больше ничего там не было. И Вы еще скажете что не стоит придумывать за автора то, что он хотел сказать, но не сказал?
Вы упускаете очень важный момент, имело место противопоставление:
VD>И не надо путать высказывания каких-то отдельных личностей сделанных даже не по поводу ООП, а по поводу их понимания "объектных систем" с общепринятыми и четко определенными понятиями.
АК>То есть ты предпочитаешь адаптированное для масс определение неудобному для тебя оригинальному определению, даному ее создателем.
Определение не называли "плохим" только лишь из-за того, что оно общепринятое (якобы). Вроде бы, очевидно, что АК предлагал определение Кея, в ответ на что его призвали следовать "общепринятому". Процитированный ответ, ИМХО, сам не без приколов, но в отсутствии логики по существу обвинить сложно.
Но моё-то главное возражение направлено на призыв следовать за большинством в сочетании с отсутствием критической оценки в адрес мнения этого самого большинства. Впрочем, об этом я уже писал.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!