Russian Qt Forum
Ноябрь 27, 2024, 06:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 3 [4] 5 6 ... 8   Вниз
  Печать  
Автор Тема: C++ vs D  (Прочитано 69505 раз)
SASA
Гость
« Ответ #45 : Октябрь 30, 2008, 15:05 »

как можно расширения называть "костылями"? как можно QVector называть "костылём"?
Я про moc. Это уже сложно назвать расширением языка.
Записан
ритт
Гость
« Ответ #46 : Октябрь 30, 2008, 15:36 »

какое отношение moc имеет к языку?
MetaObject Compiler - где хоть слово про язык? может и qscript - костыль к языку?
Записан
Eldar
Гость
« Ответ #47 : Октябрь 30, 2008, 15:41 »

Самое прямое отношение. В С++ нет ключевых слов slot и signal. А moc - это костыль, если бы имелись делегаты - необходимость в нем бы отпала.
Записан
Rcus
Гость
« Ответ #48 : Октябрь 30, 2008, 15:47 »

Если бы немного почитали доки по Qt то нашли бы объяснение существованию moc.
Систему слот-сигнал можно реализовать без кодогенератора при помощи шаблонов (пример boost::signals), правда там тоже есть свои нюансы

emit/slots/signals это макросы, а не ключевые слова, если посмотреть по хедерам можно найти определения
а если прописать в .pro файл "CONFIG += no_keywords" то и их не будет (будут "правильно" именованные макросы).
« Последнее редактирование: Октябрь 30, 2008, 15:52 от Rcus » Записан
Eldar
Гость
« Ответ #49 : Октябрь 30, 2008, 16:00 »

Код:
Систему слот-сигнал можно реализовать без кодогенератора при помощи шаблонов (пример boost::signals), правда там тоже есть свои нюансы
Ньюансы это мягко сказано. Наверняка вы смотрели хоть раз исходники буста. И как впечатления?  Смеющийся Сама элегантность. Никто не говорит что что-то невозможно сделать на С++. Просто для подавляющего большинства задач на сегодня есть средства намного превосходящие его.
Записан
ритт
Гость
« Ответ #50 : Октябрь 30, 2008, 16:08 »

да что за безосновательно засирание? исходя из такой логики, я тоже могу сказать, что D - костыль к C!
moc - костыль...костыль к чему? делегаты в д позволяют вызывать методы по имени класса? а сконструировать сущность класса по его имени можно через делегат? а вызвать статический слот класса, не имеющего ещё ни одной сущности, можно?
всё ещё думаешь, что moc имеет "Самое прямое отношение" к Си?!

кстати, может и QTranslator - костыль? почему бы языку не иметь встроенной возможности интернационализировать литералы?!
Записан
ритт
Гость
« Ответ #51 : Октябрь 30, 2008, 16:09 »

Цитировать
Наверняка вы смотрели хоть раз исходники буста. И как впечатления?
один из факторов, определивших судьу буст как отдельного проекта...
Записан
Eldar
Гость
« Ответ #52 : Октябрь 30, 2008, 16:20 »

Цитировать
кстати, может и QTranslator - костыль? почему бы языку не иметь встроенной возможности интернационализировать литералы?!
Путаете, QTranslator как и gettext - это вызовы обычных функций. В каком языке программирования вы видели встроенную поддержку l10n?

Насчет вызова метода по имени - это уже рантаймные возможности. В С++ нет кодогенерации, имхо эти мелочи не имеют решающего значения. По поводу генерации сущности по имени класса - вроде в D это можно, надо уточнить.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #53 : Октябрь 30, 2008, 16:27 »

Присоединияюсь к вопросу Константина (на который ещё нет ответа):

С чего взяли, что moc это костыль? И костыль к чему?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Eldar
Гость
« Ответ #54 : Октябрь 30, 2008, 16:32 »

Это дополнительная языковая конструкция. В других языках в ней необходимости нет(python - pyQt хотя бы взять, там никого moc не нужно). Более тратить свое время повторяя сказанное я не намерен.
А ребята из trolltech проделали действительно потрясающую работу по совершенствованию С++. Иначе вы бы не общались на этом форуме, а возможно бы уже давно использовали C# или что-то подобное.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #55 : Октябрь 30, 2008, 16:56 »

Это дополнительная языковая конструкция.

Но не кастыль же )))) Нужно как-то отперделиться с понятиями. А то по-вашему получается - все что не относиться к языку как таковому - кастыли. STL - кастыль, Phobos и Tango - тоже кастыли (а это ваще обсурд! зачем нужны две стандартные библиотеки?) Это бы я и назвал кастылем:

Цитировать
Phobos поставляется вместе с компилятором, обычно эта библиотека используется новичками. Большая часть программистов использует Tango.Существование двух разных стандартных бибилиотек создаёт некоторые трудности. Для того чтобы решить проблемы с бибилиотеками был запущен проект Tangobos. Tangobos - обёртка Tango, дающая программисту интерфейс Phobos.

Это не костыль?

Иначе вы бы не общались на этом форуме

Позволю себе заметить вы бы тоже )))
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #56 : Октябрь 30, 2008, 17:22 »

Кстате, а D дружит с 64 битной архитектурой? Прочитал что есть поддержка 16? и 32 бит архитектуры. Про 64 ничего не сказано.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Eldar
Гость
« Ответ #57 : Октябрь 30, 2008, 17:36 »

Только С и С++ не имеют нормальной поддержки строк среди популярных языков программирования. Это хорошо или плохо?
Насчет фобоса и танго - здесь немного другая ситуация. Фобос - это стандартная библиотека от автора языка, но она по возможностям достаточно скудная. Как альтернатива сообществом разрабатывается гораздо более богатая и функцинальная tango. Tangobos - костыль, но для тех кто переходит с фобоса на танго для временной совместимости с существующим кодом. Но и он скоро уйдет в прошлое, так как обе библиотеки будут использовать общее runtime ядро. Назначение библиотек разное немного. фобос это минималистичный вариант, созданный скорее для обкатки новых возможностей. D следует использовать с танго.
Да и взять С++ фобос и танго - это то же самое что и std:: и QtCore. Qt это намного больше чем ГУИ библиотека. Это самодостаточная платформа.
Да и смысл этой ветки вообще не понятен. Те кто заинтересовались - посмотрят и сделают выбор. Многим не подойдет Ди из-за малой степени развития инфраструктуры, в отличие от С++ да и справедливо, что существующие проекты никто не будет переписывать. Я начал писать свой проект с нуля, поэтому я могу выбирать. Использовать С++ большой необходимости у меня нету.
64 битная архитектура компилятором dmd не поддерживается и врядли когда-нибудь будет. компилятор в llvm будет иметь эту поддержку(для линукса практически доделали, для win - в процессе).
« Последнее редактирование: Октябрь 30, 2008, 17:38 от Eldar » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #58 : Октябрь 30, 2008, 18:11 »

64 битная архитектура компилятором dmd не поддерживается и врядли когда-нибудь будет. компилятор в llvm будет иметь эту поддержку(для линукса практически доделали, для win - в процессе).

В данный момент компиляторы D сливают компиляторам С++. 32 уже устаревшая платформа (про 16 молчу).
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
ритт
Гость
« Ответ #59 : Октябрь 30, 2008, 18:16 »

млять, ну, решили ведь уже, что std:: - не костыль! к чему опять про строки?
я хочу увидеть хоть один сложный тип данных с Си - покажите мне его! так почему строки должны быть исключением?! есть char* - чем не строка? ах, работать неудобно...тогда подключай std::string. или тоже неудобно?
Записан
Страниц: 1 2 3 [4] 5 6 ... 8   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.134 секунд. Запросов: 23.