Кто какие языки программирования любит
Вот я не люблю C++ и предпочитаю Python standard library. Ты как-то неправильно не любишь C++.
![](/smiles/lam.gif)
![](/smiles/umnik2.gif)
нет нормальной работы с исключениями (нет finally)в плюсах finally не так критичен.
джавовская объектная система делает шаблоны практически ненужными
Ыхыхых, если б и вправду все было так... Шаблоны дают возможность метапрограммирования, говоря человеческим языком, позволяют не писать/не генерить однотипный код. Отсутствие аналогичного средства в Java / C# стало причиной появления целой тучи кодогенераторов.
Лично мне как языки те же Java и C# скорее не нравятся, они хороши лишь сопуствующим рантаймом и библиотекой. Ну, и еще одним качеством — простотой по сравнению с С++.
Вывод: языка, который мне нравится, пока нет. Пока только есть желание иметь язык, позволяющий свои мысли ясно, и который был бы столь же выразительным, как С++.
![](/user/upload/file129967.jpg)
![](/user/upload/file3763.png)
Пока только есть желание иметь язык, позволяющий свои мысли ясно, и который был бы столь же выразительным, как С++.
Радуйся, пока такого языка не создали
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
Да, вероятно это близкий к правде совет
Мне лично нравится Smalltalk и, пожалуй, Ruby.
Почему страдают?
Имхо, в них слишком много императивности для создания высокоуровневых программ.
С плюсами всё ясно, а какое, простите, наследие от сей в джаве и шарпе?
выражение a+b*c также записывается.
В смолтоке не так (не знаю, спрашиваю)? В паскале не так (знаю, стебусь)? В бейсике, аде? Гы, лол.
![](/images/graemlins/smile.gif)
разве, что smalltalk выбивается.
остальные перечисленные (если, конечно, брать их сегодняшнее развитие включая java и c# - это один и тот же язык
А ещё есть пролог и рефал. Да, это мои любимые языки!
![](/images/graemlins/smile.gif)
А я еще слышал такое модное название R. Просто R. Судя по всему он скоро всех зарулит и все только на нём писать будут. По крайней мере так говорит его создатель.
Судя по всему он скоро всех зарулитС таким названием наврятли.
![](/images/graemlins/smile.gif)
Зачотная картинка!
Are applicative language inefficient? или нет.
У кого нет доступа на ACM --- выложил в ftp://tentacle/incoming/
Кстати, как там, в Haskell уже научились решать проблемы из У кого нет доступа на ACM --- выложил в ftp://tentacle/incoming/
А я люблю С++.
---
...Я работаю антинаучным аферистом...
Отсутствие аналогичного средства в Java / C# стало причиной появления целой тучи кодогенераторов.А что такое шаблоны? Если это то же самое, что generics, то в java такое есть (в 1.5).
по сабжу: java и python
![](/images/graemlins/mad.gif)
![](/images/graemlins/mad.gif)
Самому, что ли, поддать жару?
![](/images/graemlins/grin.gif)
Что обсуждать-то? любовь - дело интимное.
Вот, например, "А я люблю С++". Интересно же послушать, как именно, как часто, насколько сильно автор любит С++, и отвечает ли тот ему взаимностью.
Про большое и чистое чувство я и сам допёр, заметив, что автор не называет его более "приплюснутыми Сями".
---
- Поручик, Вы любите томаты?
- Мм... Есть - да, а так - не-а...
Постоянно, когда не отношусь безразлично.
Как именно?
Пожалуй, сильно.
Может быть, можно сказать очень сильно.
---
...Я работаю антинаучным аферистом...
+1 к питону
![](/images/graemlins/laugh.gif)
а в чем разница?
![](/images/graemlins/smile.gif)
И ещё inner classes клевая штука.
А самое главное, за что мне нравится Java, - это IntelliJ IDEA
![](/images/graemlins/laugh.gif)
у обоих платформ есть свои плюсы и минусы
плюсы C# - я знаю лучше.
соответственно сейчас хочу прояснить свое понимание плюсов Java-ы.
![](/images/graemlins/laugh.gif)
Пойдет?
Чем --- ?
--- !
Я, кстати, тоже очень люблю питон, но чисто платонически.
type mismatch
Но даже самым приплюснутым насильникам этого не понять.
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
О, у меня на компьютере есть IntelliJ IDEA, ура! А что это?
+1 идея рулит!
+1 за питон
А что круче VS2005 для С# или эта шняга для Java?
В каком смысле круче?
С решарпером её уже можно сравнивать с IDEA, только вот у меня на ноуте VS2005 + Resharper жестоко тормозит, а свеженькая IDEA 6.0 Beta 1 чуть ли не летает.
Конечно предполагалось с ним.
![](/images/graemlins/smile.gif)
В том смысле от чего больше кайф ловишь при проганье.
![](/images/graemlins/smile.gif)
а я думал, для жавы эклипс самый популярный =)
Это лучшая (hey, !) среда разработки для Java.ЧИ-И-ИВО-О-О-О?!?!?!
![](/images/graemlins/shocked.gif)
![](/images/graemlins/grin.gif)
В Eclipse нет аудита кода (ну, такая штука, даёт ценные указания как писать прогу и позволяет претврорять их в жизнь лёгким нажатием левой пятки по крайней мере, официального. Можно поискать среди community plug-ins, если есть желание.
Eclipse ориентирован на J2SE, SWT/JFace, в IDEA c поддержкой J2EE и J2ME гораздо лучше. Хотя есть какая-то платная штука myEclipse.
Наверно, по совокупности возможностей IDEA круче. Однако мне ОЧЕНЬ нравилось программировать в Eclipse, просто до безумия. Он всё за тебя делает. Даже думает. Я с ним напрочь забыл, что такое закрывающиеся скобки/кавычки, где какой класс лежит, как набирать простейшие конструкции типа for/while/try/main; что ";" ставится в конце строчки; что имена переменных нужно выдумывать самому; что такое grep; что такое одноцветный текст; что такое баги, которые нужно самому выискивать, пакеты, которые нужно самому импортировать и организовывать..... и дофига всего ещё. В общем, обленился до крайности. Большую часть времени жал Ctrl+Space, и время от времени делал рефакторинг. Всё.
Кстати, любители VS2005. Почему в XXI веке я должен помнить где какие опции (настройки) находятся?! В окне Properties до сих пор нет поиска (фильтра).
Почему в XXI веке я должен помнить где какие опции (настройки) находятся?!Что бы человечество в конец не обленилось и машины нас не парабатили.
![](/images/graemlins/grin.gif)
> Он всё за тебя делает. Даже думает.
Заметно.
> Я с ним напрочь забыл,
Это тоже заметно.
> Большую часть времени жал Ctrl+Space, и время от времени делал рефакторинг. Всё.
Ява настолько низкоуровневый язык, что почти весь код создаётся автоматически?
> Почему в XXI веке я должен помнить где какие опции (настройки) находятся?!
А причём здесь 21-й век? У нас это придумали ещё в восьмидесятых.
> В окне Properties до сих пор нет поиска (фильтра).
Не знаю, о каких "properties" ты говоришь, но у нас ко всему есть "apropos".
---
...Я работаю антинаучным аферистом...
![](/images/graemlins/lol.gif)
Кстати, в последнем Eclipse 3.2 ИЩО больше наворотов. Стоит только в общих чертах обозначить свою мысль, а уж среда позаботится о деталях реализации сама.
Есть ли аналогичные продукты для с++, к примеру, или для какого-нибудь перла?
![](/images/graemlins/smile.gif)
Нисколько.
Я не программирую на прикидывающихся высокоуровневыми языках настолько низкого уровня.
---
...Я работаю антинаучным аферистом...
Я не программируюЭто, кстати, ключевые слова.
=)
Только мы тут с мэдом посовещались и решили, что правильней было бы
> Я не программирую
Это --- ключевые слова.
или
> Я не программирую
Это заметно
Если у вас у троих вместе взятых воображения недостаток, то чего вы стоите по одиночке?
---
"Верь сводке погоды, но доверяй --- интуиции.
Будь особенно бдителен, когда всё хорошо и нет поводов для тревоги."
Если у вас у троих вместе взятых воображения недостаток, то чего вы стоите по одиночке?Слышать такие слова от тебя - это комплимент.
Эээ... а как можно пощупать и понять, что ты не врёшь?Ну, насчёт "думает за тебя", я, может, и приврал...
![](/images/graemlins/smile.gif)
А вообще, на www.eclipse.org всё бесплатно, всё с исходным кодом.
Есть ли аналогичные продукты для с++, к примеру, или для какого-нибудь перла?Не знаю, не слышал. Вон, VS2005 - большой шаг вперёд, даже можно закрывать все-окна-кроме-текущего. Но до удобства написания кода, ИМХО, всё ещё сильно отстаёт от Eclipse. Нет такого, чтобы я навёл курсор на переменную, и мне бы тут же высветили все остальные вхождения этой переменной. Закрывающиеся скобки надо самому ставить. Про рефакторинг, quick fix, всяческие мелкие вкусности-помощники можно забыть сразу.
Практически для любого языка можно найти (или написать самому - хелпы, статьи, сорцы в качестве образецов есть) плагин, который позволяет с ним удобно работать.
С другой стороны, на Eclipse+CDT серьёзные проекты на C++ писать тяжелее, если вообще возможно и средств отладки очень мало.
а я думал, для жавы эклипс самый популярный =)не думаю что он популярнее идеи
во всяк. случае на всех трех работах где я работал эклипс был только у одного
потом здесь речь про другое
у идеи ахрененный редактор
такого нету нигде
я вот лично, если бы не идея вряд ли бы долго оставался прогером на джаве
Короче, рюшечки разные. Не из-за чего ссориться.
![](/images/graemlins/grin.gif)
выбирать среди готовых както неудобно)
речь не идет о спорах
просто в идее много вещей (именно на уровне редактора) можно делать таких, что другим ИДЕ просто и не снилось никогда
правда многие из этих вещей заточены именно под джаву и под другой язык такого создать может и не получится
и горячие клавиши тут ни при чем
кстати, я так понимаю в эклипсе таких вещей никогда не появится, потому что эклипс не заточен под джаву а разрабатывается под любой язык
просто в идее много вещей (именно на уровне редактора) можно делать таких, что другим ИДЕ просто и не снилось никогдаПримеры таких вещей приводи сразу.
правда многие из этих вещей заточены именно под джаву и под другой язык такого создать может и не получится
кстати, я так понимаю в эклипсе таких вещей никогда не появится, потому что эклипс не заточен под джаву а разрабатывается под любой языкEclipse JDT - это IDE для Java. Заточенная под Java.
просто в идее много вещей (именно на уровне редактора) можно делать таких, что другим ИДЕ просто и не снилось никогдаНу не томи, чё за вещи-то?
// как в эклипсе новую перспективу создать
Для этого нужно написать свой плагин. Всё изумительно описано в хелпе. Ещё можно посмотреть на www.eclipse.org/articles (creating new perspective)
// эклипс не заточен под джаву
A Eclipse JDT - zatochen.
Примеры таких вещей приводи сразу.неохота холивор разводить
ща на любой мой пример будет десять ответов как можно сделать примерно (ну почти совсем примерно) тоже самое
таких холиворов в гугле выше крыши
самый простой пример наверна: действие клавиши ctrl+shift+space
или например пробег по массиву
я пишу itar, жму TAB и мне предлагается список из соотв. переменных, из которого я выбираю тот по которому хочу пробежаться, далее создается for(...
я не знаток эклипса, если не ошибаюсь там можно for-заглушку вставить, но можно ли при этом получить список соотв. переменных? для этого IDE должно уметь парсить целиком некомпилируемый! код
или например в дебагаре я хочу просмотреть значение какой-то переменной
выделяю мышкой переменную, жму alt+f8. открывается окно просмотра переменной
допустим переменная объявлена через интерфейс, а я хочу вызвать метод из класса-реализации
тоесть мне нужно кастинг сделать, а потом вызвать метод, но я в дебагере и откуда я знаю к чему кастинг приводить?
вот тут я жму ctrl+alt+t и моя переменная кастится
![](/images/graemlins/smile.gif)
Не позорься. Открой для себя Эклипс. Там есть всё это, только гораздо удобнее. Могу расписать поподробнее вечером. До вечера!
для с++, к примеру, или для какого-нибудь перлаэто не тру
Там есть всё это, только гораздо удобнее.ну вот, начался холивор
главное с меня потребовали привести примеры, а сами примеры умалчиваете
![](/images/graemlins/frown.gif)
Ура! Холивор!
Удивительно, что он начался именно сейчас, с таким-то заголовком.
где холивор-то? Скукота, неинтересно. Даёшь больший накал страстей! Ну, для начала...эээ...лучшие языки - фортран и вижуалбейсик! Ура!
но из тех которые знаю больше всего люблю хаскель
ну блин чертовски красивый язык, а главное короткий и ясный
вот, например, калькулятор на хаскеле
calc = foldl f [] . words
where
f (x:y:zs) "+" = y+x:zs
f (x:y:zs) "-" = y-x:zs
f (x:y:zs) "*" = y*x:zs
f (x:y:zs) "/" = y/x:zs
f xs y = read y : xs
*Main> calc "2 3 * 5 +"
[11.0]
Открой для себя Рефал!
Ты приведи нормальный калькулятор, который не полиз читает, а инфиксную запись.
---
...Я работаю антинаучным аферистом...
А мне положить на этот калькулятор. Я привык записывать вычилания в инфиксной форме. И даже в начальной школе почему-то префиксной записи не учат. И я не собираюсь извращаться ради того, чтобы программисту было проще отпарсить мои записи.
я привел первый попавшийся под руку, который показывает что в языке может нравиться
если тебе понравился язык, ты его выучишь и сам напишешь калькулятор
На рефале постфиксный и инфиксный калькуляторы имеют равный по длине код. И изменений там надо минимум. А вот сколько изменений надо внести в твой калькулятор для того, чтобы он стал инфиксным, и насколько изменится размер кода от этого, я не в курсе. Просто интересно.
Все здесь очень рады, что придётся изменить всего 3 (! вы только подумайте) строчки, чтобы получить
из ипрефиксного калькулятора инфиксный...
Так что в данный момент спор не о чём - вопроса не стояло, какой язык лучше - их тяжело сравнивать, а
какой нравится. Это немного другое.
А когда-нибудь ты поймёшь, что нет универсального языка, решающего все задачи с наименьшими затратами.О великий, я в курсе, представляешь?
А когда-нибудь ты поймёшь, что нет универсального языка, решающего все задачи с наименьшими затратами.Как это - нет?
А С++?
если затраты времени программиста, то С++ на очень многих задачах сосет
а тада об чём спор-то?
если затраты времени программиста, то С++ на очень многих задачах сосетПросто на нём очень многие программисты не умеют писать: боятся активно использовать макропроцессор, делают глупые ошибки (утечки памяти, выход за границу массива етс).
Если писать без ошибок, то очень эффективно и быстро получается - спроси у KOHTPы.
Ну так и не разводил бы, а познакомился с этой величайшей платформой всех времён и народов - Eclipse, в которой есть JDT, CDT, EMF (Eclipse Modeling Framework GEF (Graphical Editor Framwork Visual Editor и многое, (реально) многое другое! И всё нахаляву! И всё с исходным кодом! И не просто каким-то там ламерским кодом, а от создателей XP (в частности) - что очень позитивно сказывается на культуре программирования!
Так что, сударь, объявляю вам священную войну, возьмите Вашу шпагу.
// ща на любой мой пример будет десять ответов как можно сделать примерно (ну почти совсем примерно) тоже самое
А ты чего ждал? Естественно на любой твой пример заведомо есть пример в Eclipse, где всё тоже самое, только круче.
// таких холиворов в гугле выше крыши
Ну, я тут для безынетных поработаю...
// самый простой пример наверна: действие клавиши ctrl+shift+space
Нет у меня сейчас Идеи. Что это за действие?
// или например пробег по массиву
я пишу itar, жму TAB и мне предлагается список из соотв. переменных, из которого я выбираю тот по которому хочу пробежаться, далее создается for(...
Ну надо же! Умеет ведь! А в Eclipse не нужно помнить какие-то заклинания, достаточно ввести "for" (или просто "fo" - Eclipse у меня пока тоже нет Ctrl+Enter (это ответ на ВСЕ вопросы!
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
// я не знаток эклипса, если не ошибаюсь там можно for-заглушку вставить, но можно ли при этом получить список соотв. переменных? для этого IDE должно уметь парсить целиком некомпилируемый! код
Офигеть! Не, ну Идея рулит! О, да! Давай-давай, так держать!
![](/images/graemlins/lol.gif)
Eclipse, к твоему сведению, не просто парсит на ходу, он ещё и компилирует на ходу. Он вообщк всё делает на ходу, а не тратит моё время.
// или например в дебагаре я хочу просмотреть значение какой-то переменной
выделяю мышкой переменную, жму alt+f8. открывается окно просмотра переменной
допустим переменная объявлена через интерфейс, а я хочу вызвать метод из класса-реализации
тоесть мне нужно кастинг сделать, а потом вызвать метод, но я в дебагере и откуда я знаю к чему кастинг приводить?
вот тут я жму ctrl+alt+t и моя переменная кастится
Блин, ну не интересно. Хочу с реальными пацанами покоцаться.
![](/images/graemlins/smile.gif)
У объекта всегда есть его класс, getClass-ом узнаётся. Нормальная среда должна знать истинный класс объекта, несмотря на то, какой тип имеет переменная. Без всяких там Ctrl+Alt+T.
---
Вот я не плюю на Идею. Я ей просто не пользуюсь (не люблю я этот Swing). Но знаю. Так что советую просто узнать Eclipse. А вдруг понравится?
Eclipse, к твоему сведению, не просто парсит на ходу, он ещё и компилирует на ходу.чего он компилирует? :-o
Не совсем на ходу, правда, а только после того, как файл сохранился. Что, в общем, разумно.
![](/images/graemlins/grin.gif)
![](/images/graemlins/laugh.gif)
Если вообще вдруг захочется сказать, что в Eclipse чего нету - добро пожаловать сначала сюда: http://help.eclipse.org/help32/index.jsp
И это при том, что информация там далеко не самая свежая (посвежее - в Eclipse SDK 3.2).
Теперь Refactoring оперирует такими словами как "similar" (искусственный интеллект уже какой-то): The Rename Type refactoring can now rename variables and methods with names similar to the renamed type. This feature helps to keep method and variable names synchronized with type names.
Или вот: Repeatedly invoking content assist (Ctrl+Space on most platforms) now cycles through different proposal categories.
Т.е. жми Ctrl+Space (ответы на ФСЕ вопросы в Eclipse пока не получишь, что хочешь.
Кстати, насчёт "for",Ctrl+Space я ошибся. Достаточно просто f,Ctrl+Space. Это покороче, чем itar,Tab, не так ли?
Т.е. вы только написали
public void foo(Object arg) {
if (arg == null) {
arg.toString;
}
}
а он уже тычет в arg.toString. Нехило?
А вот для конченных лентяев: You can paste a snippet of code containing a Java type directly into a package or source folder to create a new compilation unit. For example select and copy this source code.
Т.е. берёте исходный код, жмёте Ctrl+V, а Eclipse уже и пакет создаст, и файл, и всё на свете.
Какая среда может всем этим похвастаться, а? Не слышу.
![](/images/graemlins/smile.gif)
Какая среда может всем этим похвастаться, а? Не слышу.IDEA 5.0+ : the statement may cause NullPointer exception
я прогал j2ee приложение на идее (полгода)
и на eclipse (вынужден начать сейчас, прошло несколько дней; употребляю слово "вынужден" не потому, что отношусь к эклипсу предвзято, а потому что привык к идее и некоторым ее плагинам)
к сожалению, эклипс умеет не все, что умеет идея (ну или пока я не все нашел). Кроме того, эклипс имхо сильно страдает от того, что он написан кусками. С одной стороны это клево, модульность и все такое. Но эти самые модули не всегда срастаются. В частности, у меня примерно 50% плагинов к эклипсу, которые я хотел поставить не поставились. Можно кончено валить на мою криворукость, но почему-то эта криворукость не мешала мне в идее.
Да, еще по теме вопроса. Все то же самое умеет еще и оракловый JDeveloper 10
А по теме топика: больше всего нравится С++ - на нем получаются очень красивые программы. Удобными считаю джаву, шарп, пхп, дельфи.
Если писать без ошибок, то очень эффективно и быстро получается - спроси у KOHTPы.Без базара. Если писать без ошибок с весьма скромной скоростью 60 символов в минуту, то можно накодить ядро Линукса всего-то за год. А если как Контра строчить сотнями, то и за месяц можно управиться. Запатентовать что ли это как Typing ed Programming (TOP = TOP is On Top).
Запатентовать что ли это как Typing ed Programming (TOP = TOP is On Top).!
Если без ошибок, то Линукс никак не получится.
+1
Так что советую просто узнать Eclipse. А вдруг понравится?я целый месяц пытался познать эклипс 3.1
мне этого хватило выше крыше
надеюсь больше никогда с ним не столкнусь
Удобными считаю джавуда дурацкий язык джава
слишком много воды в нем
объявление константы:
public static final int N = 10;
уродство какое то
хорошо есть ИДЕЯ, в которой пишешь psfi и жмешь TAB
(еще раз повторяю если бы не ИДЕЯ я бы на джаве не прогал)
не думаю что он популярнее идеиМоё скромное мнение - это от того, что ты работал в РФ, где идея почти у всех пи@#$^ная.
во всяк. случае на всех трех работах где я работал эклипс был только у одного
На западе Эклипс должен быть даже не в разы, а на порядки популярнее идеи.
хорошо есть ИДЕЯ, в которой пишешь psfi и жмешь TABПопробуй сразу вбивать исходник, закодированный gzip, как это делают Настоящие Программисты. Так гораздо быстрее.
Какая среда может всем этим похвастаться, а? Не слышу.найди на досуге список Intentions в ИДЕА
тебя наверна инфаркт хватит
процентов 20-30 этих интеншенов реализовано в эклипсе в той или иной форме (например через рефакторинг, но рефакторинг это другое, рефакторинг - это когда я хочу чтото сделать, а интеншены - это когда IDE предлагает что можно сделать)
Если без ошибок, то Линукс никак не получится.У Контры получится. Ему сотни экранов достаточно.
помойму прикол был как раз в том, что линукс без ошибок не бывает, если контра его без ошибок напишет, то это будет не линукс
Зачем нам всем ещё один линукс?
---
...Я работаю антинаучным аферистом...
Имхо, дело обстоит так. Всевозможные контейнеры и прочие инструменты, которые обычно пишутся под разыне типы данных, бывают двух сортов: работающие с примитивными типами данных (в контейнере хранится сам экземпляр) и работающие с сылками. Так вот шаблоны нужны в случае, когда мы хотим описать, например, контейнер для примитивных типов. А для "больших" данных мы пользуемся ссылками.
Но ссылками какого типа? В языке С — ссылка типа void. В С++ — ссылка на базовый класс. Но, к сожалению, в С++ заранее не определен единый для всех базовый класс. Причем мало его просто определить. Надо ещё обеспечить runtime- среду для динамической идентификации типа (на уровне операторв языка, а не функций из библеотеки!) и динамического определения класса (например, поднятие класа из файла) и создания экземпляров вновь поднятого класса.
В Джаве, насколько я помню, это реализовано. Хотя, кажется, динамическое поднятие класса всё же делается средствами библиотеки, а не операторами языка.
На самом деле, языку С (С++) не хватает ровно одного: он не умеет превращать код в даные и данные в код. В самом языке это выражается в отсутствии типа данных функция. Да, да, получается странно: указатели на функцию есть, а функций нет, заметили? Как следствие, функцию нельзя превратить в массив байт и записать на диск. А массив нельзя преобразовать в код функции. Всё же, код с данными уравнен в правах не полностью...
Если бы в С были операторы compile и decompile, переводящие массив байт в функцию и наоборот, то их можно было бы поднять на уровень объектной системы в виде динамического определения класса, ведь именно отсутствие возможности восстановить методы мешает поднимать класс во время выполнения.
Так вот, шаблоны, конечно, нужны и важны. Но только для параметризации по простым типам (грубо говоря, размер которых меньше размра указателя а параметризация классами, ИМХО, — дело лишнее и вредное. Надо просто создавать контейнер (это как пример) элементов типа object.
Вопрос: в языках семейства ML (в частности OCAML) есть возможность преобразовывать данные в код (т. е. обзащаться с функциями, как с остальными данными)? В частности, могу ли я там прочитать функцию из файла или получить класс по сети?
Если бы в С были операторы compile и decompile, переводящие массив байт в функцию и наоборот, то их можно было бы поднять на уровень объектной системы в виде динамического определения класса, ведь именно отсутствие возможности восстановить методы мешает поднимать класс во время выполнения.Как ты себе это представляешь? Когда один и тот же исходник на разных машинах при компиляции даст разный двоичный код? Или на одной машине, но для разный осей? Или даже на одной и той же машине, с одной осью, но с разными настройками компилятора? То, что было сохранено ранее, уже нельзя будет загрузить при другом запуске.
Далее, шаблоны - это не только контейнеры. String и Complex, скажем - это тоже шаблоны.
а параметризация классами, ИМХО, — дело лишнее и вредноес точки зрения - реализации - да, вредное, потому что код разбухает
с точки зрения - написания программы - полезное, потому что, во-первых, уменьшается время на понимание того, что должно храниться в этой коллекций, во-вторых, уменьшается кол-во ошибок
соответственно, имхо, правильное поведение языка:
1. при написании - параметризовать классами можно
2. при генерации кода - шаблоны, параметризованные классами - приводят к генерации единственного класса работающего с object-ами
Если бы в С были операторы compile и decompile, переводящие массив байт в функцию и наоборот, то их можно было бы поднять на уровень объектной системы в виде динамического определения класса, ведь именно отсутствие возможности восстановить методы мешает поднимать класс во время выполнения.ну на уровне языка этого нет
хотя подозреваю что в C# это есть
а так, например в CORBA есть маршаллинг и демаршаллинг
Как ты себе это представляешь? Когда один и тот же исходник на разных машинах при компиляции даст разный двоичный код?Представляю примерно так. В массив пишется какой-то псевдокод типа джававского байт-кода, который можно компилировать на лету либо интерпретировать (по желанию программиста). Декомпиляция делает обратное: по дополнительной информации в коде формирует байт-код и пишет его в массив. Правда, такие операции могут приводить к потерям времени, скажем, на линковку, но это уже технические детали, как сделать компиляцию быстрее (хотя бы t = О(длина_кода)).
я умолкаю
бесполезно
последнее ИМХО:
можно попытаться провести аналогию
идея — опера
эклипс - лиса
я в лисе не сижу постоянно, есть некторые вещи которые в ней сделаны гораздо менее удобнее чем в опере, да и тормозная она
но при этом я считаю лису очень достойным продуктом, он совершенно на уровне оперы
а вот эклипс совершенно не на уровне идеи и отставание чересчур большое
---
...Я работаю антинаучным аферистом...
Вопрос: в языках семейства ML (в частности OCAML) есть возможность преобразовывать данные в код (т. е. обзащаться с функциями, как с остальными данными)? В частности, могу ли я там прочитать функцию из файла или получить класс по сети?Нет, это затруднительно из-за строгой типизации. В скомпилированной программе типы не существуют, поэтому как обеспечить типобезопасность непонятно.
Наверное, и ещё где-нибудь можно.
Но всё это - низкоуровневые хаки, зависящие от реализации и не относящиеся к сильным сторонам языка. Если реально нужно обращаться с кодом, как с данными, то нужно что-то вроде Lisp, или мб Smalltalk. А на ФЯ имхо более правильно написать сначала интерпретатор какого-нибудь языка, и потом уже грузить на нём код.
perl люблю
http://community.livejournal.com/ru_java/273133.html
(постить сюды не буду, текста много)
вот еще пример за что можно не любить джаву: (постить сюды не буду, текста много)
Термоядерные реакции на Java не пробовал обсчитывать? А то я уж не знаю, за что любить Java.....
тут был мой тред про простые числа...
Perl рулит!
Chtoby mozhno bylo preobrazovyvat' kod v dannye i, naprimer, pisat' ego v fajl.
Что я делаю не так?
![](/images/icons/confused.gif)
Неудачнег, чо.
---
...Я работаю антинаучным аферистом...
+1 к Python
Оставить комментарий
Missi4ka
полностью согласен. Я тоже НЕ ЛЮБЛЮ С++. Про СТЛ упомянул лишь потому, что это более либо менее стандартная вещь (сам предпочитаю QT). В С++, если уж на то пошло, нет нормальной работы с исключениями (нет finally а джавовская объектная система делает шаблоны практически ненужными — это так, но, увы, Джава всё ещё считается "медленным языком" и применяется не так широко, как С++. Хотя, я уверен, будущее именно за объектными языками.