LINUX.ORG.RU
ФорумTalks

QT как новый язык программирования

 ,


2

3

Тут целая банда в составе товарищей:

утверждают что Qt - это надстройка над C++, потому что с библиотекой поставляется кодогенератор moc. По этой логике можно назвать «надстройкой» над C++ googletest(кодогенератор pump), boost(кодогенерация макросами) и все IDE, которые генерируют каркас проекта.

Может быть выражения:

  • «я пишу на Qt, а не на C++»
  • «я пишу на googletest, а не на C++»
  • «я пишу на IDE, а не на C++»

имеют смысл, а я олдфаг и придираюсь?( Проясните пжл!

Перемещено tailgunner из development

я пишу на IDE, а не на C++

Если посмотреть на многих современных программистов, вот это выражение точно начинает иметь смысл. :)

intelfx ★★★★★ ()

утверждают что Qt - это надстройка над C++, потому что с библиотекой поставляется кодогенератор moc.

Пока так и есть. На Qt5, в принципе, можно писать без moc, но это боль

googletest(кодогенератор pump), boost(кодогенерация макросами) и все IDE

Что, буст тебе генерирует отдельные cpp файлы, которые надо включать в систему сборки? А IDE и тесты мимо, это внешние к коду сущности.

Stil ★★★★★ ()

Даже если это и «надстройка», то Qt - это надмножество крестов, а не подмножество. Тем более, если я не ошибаюсь, в Qt6 собираются moc выкинуть.

wolph ★★ ()

Ты дурак. Дожили плять, синтаксис языка свалили в одну кучу с конпеляторами.

anonymous ()
Ответ на: комментарий от intelfx

Особенно в контексте Java. Вот на ней точно без IDE жизни нет (по слухам).

RazrFalcon ★★★★★ ()

и все IDE, которые генерируют каркас проекта

иногда каркас проекта это просто репа на гитхабе
или спец тулза, для генерации, CLI

твоя логика не пострадала? ведь они, сцуки, утверждают что гидхаб стал надстройкой над С++

anTaRes ★★★★ ()
Ответ на: комментарий от Stil

А IDE и тесты мимо, это внешние к коду сущности.

тесты IDE автоматически генерируют код реализации методов исходя из объявления класса. moc генерирует код исходя из объявления класса. т.е. moc же тоже внешняя к коду сущность

clover ()
Ответ на: комментарий от bvn13

Qt это набор библиотек, возьми аналогию с boost

я с этим согласен, но вот оказалось что есть люди которые считают что это не так и Qt - надстройка языка, пытаюсь разобраться кто прав

clover ()

MOC - это слишком маленькая добавка к C++, чтобы выделять её как отдельный язык. Вброс не засчитан, КГ/АМ.

asaw ★★★★★ ()
Ответ на: комментарий от asaw

MOC - это слишком маленькая добавка к C++

разве кодогенератор можно отнести к добавкам? т.е. получается, что например django - это маленькая добавка к python, а не фреймворк?

clover ()
Ответ на: комментарий от clover

разве кодогенератор

Это не сферический генератор в вакууме, а средство добавления рефлексии в C++. В принципе, Qt могла бы обойтись и без него, но авторы решили не обходиться.

asaw ★★★★★ ()
Ответ на: комментарий от wolph

ОК, из-за ресурсов назовём это новым языком 👍

asaw ★★★★★ ()
Ответ на: комментарий от asaw

Это не сферический генератор в вакууме, а средство добавления рефлексии в C++.

ну да, генератор конкретного кода, реализующего рефлексию, который можно было бы написать вручную. Прям ведь как в IDE, когда нажимаешь Generate getters and setters, среда генерирует конкретный код, реализующий геттер и сеттер конкретного поля, который можно было бы написать руками

clover ()
Ответ на: комментарий от clover

ну да, генератор конкретного кода, реализующего рефлексию, который можно было бы написать вручную.

Нет, не надо было бы ничего писать вручную. Можно было бы просто обойтись без рефлексии. Рефлексия в Qt нужна практически исключительно для красивой интеграции в дизайнер форм.

asaw ★★★★★ ()
Последнее исправление: asaw (всего исправлений: 1)

Какое отношение QT имеет к разработке? Это плеер такой.

peregrine ★★★★★ ()
Ответ на: комментарий от clover

Да не в том дело. Даже если и назвать это новым языком - оно не перестанет быть старым языком, блин. Это все равно будет c++, даже если считать это надстройками.

wolph ★★ ()
Ответ на: комментарий от clover

Вообще, фреймворк. Но это было толстым намёком на то, что «Qt» пишется как «Qt», и никак иначе, ибо это уже совсем другая технология.

commagray ★★★★★ ()
Ответ на: комментарий от wolph

Да не в том дело. Даже если и назвать это новым языком - оно не перестанет быть старым языком, блин. Это все равно будет c++, даже если считать это надстройками.

я с этим согласен, но есть и альтернативное мнение, пытаюсь докопаться до правды

clover ()
Ответ на: комментарий от anTaRes

это $ cat project.t | sed s#%PROJECT%#myPrj# > project.prj
например, генератор блджад

anTaRes ★★★★ ()

школота тупа. они вообще не знают, что такое компилятор. так что «я пишу на Qt», как апофеоз тупости, можно встретить на форумах. но обычно эволюция таких отсеивает. на плюсах нельзя писать наугад и без понимания.

Iron_Bug ★★★★ ()
Ответ на: комментарий от asaw

это жирная добавка, которая ведёт к рантайм ошибкам.

«ой, что-то нет такого сигнала/слота! ну не шмогла я» - вещает запущення программа.

ну, конечно, это не новый язык.

samy_volosaty ★★★★★ ()
Последнее исправление: samy_volosaty (всего исправлений: 1)
Ответ на: комментарий от asaw

да, жаль гномеры раскололи свой мир пополам, на gtk+-2 и gtk+-3.

gtkmm - это вещь.

samy_volosaty ★★★★★ ()
Ответ на: комментарий от wolph

а может я где то еще что-то подобное слышал.

Емнип, слухи что в очередном релизе qt выкинут moc ходят с каждым релизом. Я это помню ещё во времена qt3.

imul ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Конечно, ей можно найти много применений. Но то, для чего она традиционно используется в Qt - это именно то, о чем я написал. А уж вызов известных во время компиляции методов/слотов - это то, что можно прекрасно делать без рефлексии. Как раз использование рефлексии не к месту всякими Qt-пионерами выдаёт их с потрохами.

asaw ★★★★★ ()
Ответ на: комментарий от asaw

Рефлексией как раз злоупотребляют те, кто пришёл из языков, в которых рефлексия из коробки.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Как там в криокамере? В Qt5 проверка в компайлтайме.

ы? это как? правда?

на неверный QObject::connect(...) ошибки выдаёт?

ткни носом в ссылку.

samy_volosaty ★★★★★ ()

Это вообще вечный спор что считать C++, а что нет. Меня тут с пеной у рта убеждали что стандартная библиотека это неотъемлемая часть крестов ибо оно входит в стандарт. Однако сие ни как не помешало написать микроядро l4 (да не один раз) на крестах не задействуя сабж... Из чего вытекает возможность считать разработкой на крестах и проекты где используется исключительно не библиотечная часть ЯП. C++ впринципе гибкий и могучий инструмент, имеет огромное кол-во разного рода возможностей и их полное использование не обязательно, а полное знание ЯП, пожалуй, невозможно. А под самим термином C++ возможно (очень часто так и бывает) обозначение какой-то части безмерно жирного стандарта ЯП. Это работает и в обратную сторону. Есть замечательный термин: «фреймворк», имхо вполне хорошо обозначает суть того чем является Qt. Все остальное дурость, максимализм, манная каша в черепной коробке и прочее профанство. Для работы с обозначенным фреймворком необходимо владеть C++ (конечно если писать не на том же питоне) и использовать данный ЯП. Если кто-то «пишет на кютэ, а не на C++», пишет он говнокод. Можно писать на Qt, но сие будет автоматически означать и писать на C++ (либо другом ЯП посредсвом биндингов). Всем удачи и не насилуйте себе мозг надуманными проблемами, все давно уже придумали умные дяди и дали этому название.

erfea ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.