![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Есть время и желание немного просто потрепаться!
![]() Собственно - сабж!!!! А еще интересно знать почему? Какие языки еще знаете? Лично я из всего обожаю C++ (когда узнал про Qt, то полюбил еще больше)!!!! ![]() Проходили в университете из перечисленного практически все, кроме Object Pascal и C#! Pascal проходили 1,5 месяца (и слава богу!) Особенно интересно на счет Prolog? Для меня Lisp, Prolog - это кошмарный сон!!! ПРОЛОГ - еще куда ни шло, но ЛИСП - это самоубийственно. Кто-то изучал их? Знает? P.S. между прочим решение задачки про философов (указанной в теме boost) разбирали на занятии в универе на Prolog! ![]() Сообщение отредактировал AD - 15.7.2008, 14:48 |
|
|
![]() |
Tonal |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
тем не менее в яве и шарпе есть А в Python-е я могу добавить метод в объект прямо во время выполнения или поменять его реализацию (очень удобно для конечных автоматов и подстройки на ходу). А в Haskell-е есть сопоставление с образцами, ленивые списки и частичные вычисления. Но во всех этих языках нету прозрачного взаимодействия с plain C. Да и предсказать время выполнения и потребную память довольно трудно. ну qt всеже не обычная программа а нечто большее, кроме того в стандартном С++ это же както сделали то есть типа rtti отключишь а qtcastы останутся? это врядли совсем правильно RTTI есть в стандарте. И очень хорошо описано все нюансы взаимодействия его и остальных фич языка. Но он очень "куций" по сравнению с другими языками и его трудно использовать для многих из задач для которых RTTI обычно используют. Именно по этому и потому что RTTI можно отключить, в Qt есть своя метосистема и qtcast-ы, которые работают совершенно не зависимо, но требуют moc и/или ручного поддерживания. То похожая картина в C++ Biulder-е только там в роли moc выступает сам компилятор. Насколько я понимаю и в MC++ подобное с "управляемыми" объектами. Получается, что у нас 2 объектных системы: обычная С++ и наследники QObject-а, с которыми можно сделать вещи невозможные в языке. Например получать список свойств, методов, событий/слотов/сигналов, устанавливать/запрашивать значение свойства по имени, вызывать методы по именам, и т.п. Но так же и нельзя делать какие-то стандартные для языка вещи - множественное наследование, пользовательское размещение, такие классы нельзя сделать шаблонами и т.д. Т.е. и так довольно сложный язык С++ становится ещё сложнее. Да и переносимость существенно страдает. ![]() Можно попытаться включить в стандарт все эти фичи, но это не решит проблемы, т.к. набор нужных фич у всех несколько отличается и потребности и программы с их использованием становятся изрядно "жирнее". Из ситуации есть выход: развитая CTTI (Compile Time Type Infirmation) - тогда каждый сам сможет написать под себя RTTI такой как ему надо и только там где он необходим. И в этом направлении движение идёт, но пока довольно медленно. |
|
|
![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 28.5.2025, 10:09 |