tag:blogger.com,1999:blog-654279083390275842.post4468021987064646972..comments2024-03-19T12:22:43.654+03:00Comments on Размышлизмы eao197: [comp.prog] Новая конструкция across в языке Eiffeleao197http://www.blogger.com/profile/17283739752119445290noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-654279083390275842.post-47438936748722074912010-01-28T10:25:35.310+02:002010-01-28T10:25:35.310+02:002Quaker: странный аргумент. Что-то не видно, чтобы...2Quaker: странный аргумент. Что-то не видно, чтобы в Java или в C# система пакетов/пространств имен препятствовала рефакторингам. Там вообще автоматический рефакторинг силен как нигде.<br /><br />Подобные вещи, может быть, гораздо сложнее в C++ с его шаблонами и макросами. Но ведь не на C++ же здесь нужно ориентироваться.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-28639691972002984462010-01-28T10:09:25.717+02:002010-01-28T10:09:25.717+02:00Недавно я спросил в упомянутом мной списке рассыл...Недавно я спросил в упомянутом мной списке рассылки: что плохого в пространствах имен? После этого вопроса там разгорелась бурная дискуссия. Вот что ответил на этот вопрос сам Бертран Мейер:<br /><br />As to namespaces: personally I have no particular hostility to the idea, but one of the criticisms I have heard from large-scale users (who,<br />understandably, have considerable influence over what happens with the language), is that they make refactoring difficult. If you start referring to classes in terms of their namespaces, it becomes much harder to move them<br />around.Quakerhttps://www.blogger.com/profile/08892867659877597144noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-18384157162284690372010-01-26T20:18:38.636+02:002010-01-26T20:18:38.636+02:00>1) Отсутствие пространств имен. Говорят, даже ...<i>>1) Отсутствие пространств имен. Говорят, даже в библиотеках самой EiffelStudio встречаются префиксы в именах классов (!)</i><br /><br />Почему же "говорят"? Так и есть: http://doc.eiffel.com/static/libraries/base/ -- вот классы с префиксами RT_, SED_. А в Gobo (который сейчас, похоже, включают сразу в EiffelStudio) так вааще: http://doc.eiffel.com/static/libraries/gobo/index.html<br /><br /><i>>Огромный объем файлов, генерируемых в отладочном режиме.</i><br /><br />Не столько в отладочном, сколько с полной поддержкой DbC (включая инварианты циклов). Тогда да, даже маленькая программа будет весить десятки мегабайт. Но в Eiffel этим делом можно гибко управлять. Даже можно задавать уровень DbC для отдельных кластеров.<br /><br /><i>>Да и вообще, Eiffel не слишком экономно память расходует.</i><br /><br />Как-то не заметил. Обычный расход для языка с GC. На некоторых тестах даже шустрее работает и меньше памяти жрет, чем C++ (кажется, такое проявлялось на memory_trees из Language Shootout-а).eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-58534551292288940872010-01-26T19:17:14.271+02:002010-01-26T19:17:14.271+02:00У Eiffel есть как минимум два серьезных недостатка...У Eiffel есть как минимум два серьезных недостатка:<br />1) Отсутствие пространств имен. Говорят, даже в библиотеках самой EiffelStudio встречаются префиксы в именах классов (!)<br />2) Огромный объем файлов, генерируемых в отладочном режиме. Да и вообще, Eiffel не слишком экономно память расходует. Видимо перемудрили с трансляцией в си.<br />Более подробно об этих и других проблемах можно почитать в списке рассылки:<br />1) http://n2.nabble.com/Re-Eiffel-popularity-namespaces-td4460493.html#a4460493<br />2) http://n2.nabble.com/Eiffel-popularity-td4428765.html#a4428765Quakerhttps://www.blogger.com/profile/08892867659877597144noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-54401030004002229202010-01-26T18:17:36.175+02:002010-01-26T18:17:36.175+02:00Функциональщиков больше и они кричат сильнее. Eiff...Функциональщиков больше и они кричат сильнее. Eiffel-исты же просто и бесповоротно уверены в своем превосходстве :)eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-23156516267804302842010-01-26T18:14:25.810+02:002010-01-26T18:14:25.810+02:00Вот а тут некоторые говорят что функциональщики зл...Вот а тут некоторые говорят что функциональщики злые :)Rustamhttps://www.blogger.com/profile/17746482246614094380noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-30903738085887197142010-01-26T17:54:31.277+02:002010-01-26T17:54:31.277+02:00>Да Эйфель тоже не такой продуманный как реклам...<i>>Да Эйфель тоже не такой продуманный как рекламируются :)</i><br /><br />Есть такое дело. Причем горячие приверженцы "церкви Eiffel" готовы сжечь всех несогласных на костре :)eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-33818169565146187112010-01-26T17:40:33.249+02:002010-01-26T17:40:33.249+02:00Да Эйфель тоже не такой продуманный как рекламирую...Да Эйфель тоже не такой продуманный как рекламируются :)<br /><br />По уму в хорошем императивном языке итераторы необходимы, тем более "прототип" такого языка давно существует http://en.wikipedia.org/wiki/CLU_(programming_language)Rustamhttps://www.blogger.com/profile/17746482246614094380noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-29566192593887783932010-01-26T16:09:44.366+02:002010-01-26T16:09:44.366+02:00Упс, неправильный URL, вот правильный: http://eao1...Упс, неправильный URL, вот правильный: http://eao197.narod.ru/better_language/languages/eiffel/1_my_impressions.html#command-queryeao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-7766190420862910932010-01-26T16:07:48.487+02:002010-01-26T16:07:48.487+02:00Впрочем, я чуть наврал. Оказывается, тогда уже был...Впрочем, я чуть наврал. Оказывается, тогда уже был в классе LIST метод do_all, который принимал агента (т.е. замыкание). Но широко использовались и итерации "старым" способом (<a href="http://eao197.narod.ru/better_language/languages/eiffel/1_my_impressions.html#id27" rel="nofollow">см.здесь</a> в конце раздела пример).eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-76786964360136668612010-01-26T16:03:08.298+02:002010-01-26T16:03:08.298+02:00Когда я изучал Eiffel 2.5 года назад, я не нашел т...Когда я изучал Eiffel 2.5 года назад, я не нашел там итераторов, похожих на STL-евские или таких же удобных средств обхода содержимого контейнеров, как for_each, for_each_with_index, map, inject из Ruby.<br /><br />Помнится, там для каждого типа контейнера был собственный способ обхода.<br /><br />Но, поскольку на Eiffel я мало программировал, то могу ошибаться.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-27241053694229068162010-01-26T15:50:58.052+02:002010-01-26T15:50:58.052+02:00А раньше итераторов в Эйфеле не было?
Вообще напом...А раньше итераторов в Эйфеле не было?<br />Вообще напоминает питон, там итерируется все что шевелится.Rustamhttps://www.blogger.com/profile/17746482246614094380noreply@blogger.com