Здравствуйте, alex_public, Вы писали:
_>Ещё раз повторюсь: я не против обсуждать вопрос с любой стороны. Только надо при этом уточнять, что речь именно об этой стороне.
Т.е. ты сам не помнишь о чем ты писал? ОК.
_>А что, они там по твоему в итоге не отображаются на объекты Java
Если по уму то на массивы примитивных типов. Хотя бы как датасеты в раннем дотнете.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Skorodum, Вы писали: S>>2. Вся библиотека Qt была доступна под GPL с версии 2.2 в 2000 году V>GPL не устраивает.
А KDE тебе была доступна тогда под какой-то другой лицензией?
S>>3. Никакой "чехарды" не было, было нормальное взаимодействие KDE и Qt закончиввшиеся выпуском Qt под GPL. V>Ничего нормального в GPL нет.
Этот аргумент будет иметь смысл, если ты покажешь, что KDE (включая Qt) была доступна в обсуждаемый период под лучшей лицензией.
Там могли быть проблемы с разработкой плагинов к среде, вернее, к вопросам открытия их исходников.
Кому это надо из коммерческих контор? Аж никому.
В общем, GPL/LGPL — это токсичность для бизнеса.
S>>>3. Никакой "чехарды" не было, было нормальное взаимодействие KDE и Qt закончиввшиеся выпуском Qt под GPL. V>>Ничего нормального в GPL нет. S>Этот аргумент будет иметь смысл, если ты покажешь, что KDE (включая Qt) была доступна в обсуждаемый период под лучшей лицензией.
Логика наоборот? ))
Мне не надо ничего показывать, я именно GPL/LGPL упомянул как недостаток QT и KDE.
Мог бы еще упомянуть гном/GTK, но по по состоянию на 2002-2003-й оно было тем еще убожеством.
Т.е., в те года стало очевидно, что GUI-либы надо разрабатывать с 0-ля, а не тянуть их из 90-х, поэтому многие GUI-либы именно тогда и начали разрабатываться.
Вполне нормально, ИМХО.
В разработке GUI-либ нет ничего сверхъестественного, мне как-то на коленке приспичило сбацать, справился буквально за 2 дня с 0-ля под OpenGL, за исключением TextBox-аналогов, т.е. редакторов текста — они были не нужны для той проги (желающим могу кинуть исходники, это бокс с гитарными эффектами).
В общем, в плане GUI-либ основным фактором является не столько наличие уже некоего готового кода, сколько удобство его адаптации под конкретные кейзы с учётом возможных расширений и взаимодействий с некими внешними службами. Тяжеловесные GUI-либы с длинными хвостами зависимостей тут, скорее, проигрывают. ))
Здравствуйте, vdimas, Вы писали:
V>Мне не надо ничего показывать, я именно GPL/LGPL упомянул как недостаток QT и KDE.
Еще раз: "Qt", а не "QT". Ты пытался
приводить KDE в качестве возможной альтренативы Qt в 2003 году, мотивирую тем, что мол "Qt коммерческая, а KDE — LGPL", очевидно, что это глупость, т.к. KDE всегда зависила от Qt и распространяло ее под актуальной Qt-шной лицензией (GLP/LGPL). Теоретические условия для возможности выпуска Qt под FreeBSD никогда не наступили.
Здравствуйте, dsorokin, Вы писали:
D>В Rust move — это обычно всего лишь копирование битов из одного места памяти в другое. Потом для расположенного в памяти старого объекта не будет вызван деструктор (он называется Drop), и все. А многие объекты (векторы, умные указатели, срезки, строки, реализующие классы типов объекты) имеют такое представление в памяти, что их достаточно просто взять и скопировать побитого во время move.
Вообще, move-семантика изначально была нужна для unique_ptr. ))
А этот кейз оптимизатор компилятора отрабатывает хорошо, бо обычно вызов деструктора идёт сразу за вызовом move.
Т.е. идёт примерно такая последовательность операций с полем-указателем unique_ptr (допустим, используется дефолтный deleter):
ptr_ = nullptr;
if(ptr_) delete ptr_;
Если переменная uinique_ptr была локальной, то в бинарнике ничего этого нет, т.е. ни присвоения nullptr, ни ветвления.
Сделай ревью своему коду на предмет локальности.
И да, std::function — не самый эффективный механизм, бо runtime-абстракции не бесплатны.
Выгодней иметь типизированный функтор или лямбду, подаваемые в шаблонные ф-ии.
Здравствуйте, vdimas, Вы писали:
V>Мне не надо ничего показывать, я именно GPL/LGPL упомянул как недостаток QT и KDE.
Qt всегда была доступна под двойной лицензией.
Хочешь бесплатно — GPL. Не хочешь GPL — плати деньги и используй под коммерческой лицензией.
После того, как Qt была куплена Нокией, добавилась лицензия LGPL. Коммерческая лицензия осталась.
Здравствуйте, AleksandrN, Вы писали:
AN>Qt всегда была доступна под двойной лицензией. AN>Хочешь бесплатно — GPL. Не хочешь GPL — плати деньги и используй под коммерческой лицензией.
И как это должно было выглядеть?
Каждый автор ПО под условный андроид на QT должен был бы покупать или коммерческую лицензию или открывать исходники?
Мне одному кажется, что всё это попахивает одним большим идиотизмом?
Здравствуйте, Skorodum, Вы писали:
V>>Мне не надо ничего показывать, я именно GPL/LGPL упомянул как недостаток QT и KDE. S>Еще раз: "Qt", а не "QT". Ты пытался
приводить KDE в качестве возможной альтренативы Qt в 2003 году, мотивирую тем, что мол "Qt коммерческая, а KDE — LGPL", очевидно, что это глупость, т.к. KDE всегда зависила от Qt и распространяло ее под актуальной Qt-шной лицензией (GLP/LGPL).
Очевидная глупость (которая уже малость вымораживает на этой итерации) сопоставлять Qt и KDE.
KDE намного больше, её запросто можно сравнивать с Андроидом.
Просто QT — ни за что и никогда, это банальная туповатая библиотечка ГУИ, особенно по состоянию на те года.
Но источником проблем KDE никогда и не была, источником проблем являлась Qt, о чём и было сказано.
Включи уже голову, плиз.
Здравствуйте, vdimas, Вы писали:
S>>2. Вся библиотека Qt была доступна под GPL с версии 2.2 в 2000 году
V>GPL не устраивает.
Qt была доступна в двух вариантах: GPL забесплатно, или коммерческая лицензия за деньги. С тех пор, когда Qt купила Nokia, они сменили лицензию на LGPL, так что ее стало возможно забесплатно использовать в closed-source коммерческих проектах.
V>Ничего нормального в GPL нет.
Я думаю, GPL — вполне адекватная лицензия для "конечного продукта", но для библиотеки нужна более либеральная лицензия.
Здравствуйте, vdimas, Вы писали:
V>Каждый автор ПО под условный андроид на QT должен был бы покупать или коммерческую лицензию или открывать исходники? V>Мне одному кажется, что всё это попахивает одним большим идиотизмом?
Ну да, ты ж когда в магазине молоко хочешь забрать, они с тебя деньги требуют. А Qt-ники еще и давали попробовать забесплатно.
Здравствуйте, Pzz, Вы писали:
V>>Каждый автор ПО под условный андроид на QT должен был бы покупать или коммерческую лицензию или открывать исходники? V>>Мне одному кажется, что всё это попахивает одним большим идиотизмом? Pzz>Ну да, ты ж когда в магазине молоко хочешь забрать, они с тебя деньги требуют.
Только речь не о покупателе молока, а о его производителях.
Это как если писать под Windows API, то сначала надо заплатить за право это делать.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Если по уму то на массивы примитивных типов.
Массив тоже скопировать надо, чтобы джавовский код мог с ним работать.
Хотя низлежащие ODBC или OLEDB дрова дают ссылки прямо на участки памяти в пришедших рекордсетах, т.е. поля можно читать непосредственно из буфера памяти входящих данных.
Здравствуйте, vdimas, Вы писали:
V>Только речь не о покупателе молока, а о его производителях. V>Это как если писать под Windows API, то сначала надо заплатить за право это делать.
А разве можно забесплатно скачать Windows SDK, и использовать его в коммерческих программах?
Я правда не в курсе, они время от времени меняют свою лицензионную политику, а я не слежу.
Здравствуйте, vdimas, Вы писали:
V>И как это должно было выглядеть?
https://www.qt.io/licensing/
V>Каждый автор ПО под условный андроид на QT должен был бы покупать или коммерческую лицензию или открывать исходники? V>Мне одному кажется, что всё это попахивает одним большим идиотизмом?
Разработчики QT тоже хотят денег заработать. И в чём же идиотизм, если они просят денег за использование своей библиотеки для коммерческой разработки? Это не единственная платная библиотека.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Pzz, Вы писали:
V>>>Каждый автор ПО под условный андроид на QT должен был бы покупать или коммерческую лицензию или открывать исходники? V>>>Мне одному кажется, что всё это попахивает одним большим идиотизмом? Pzz>>Ну да, ты ж когда в магазине молоко хочешь забрать, они с тебя деньги требуют.
V>Только речь не о покупателе молока, а о его производителях. V>Это как если писать под Windows API, то сначала надо заплатить за право это делать.
Windows API — разработка MS и им выгодно, что бы разработчики писали софт по Windows, на которой они зарабатывают. А Trolltech зарабатывала на инструментах. Когда Qt продали Нокии, добавилась LGPL. Но для Нокии Qt — не основной бизнес.
И, кстати, если использовать VS, то версия Community может использоваться для коммерческой разработки только индивидуальными разработчиками. А организации могут использовать эту версию только в образовательных или научных целях. А так же для разработки софта с открытыми исходниками.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Pzz, Вы писали:
Pzz>>Мне нравится подход. "Он случайно унаследовал базовый класс от класса наследника.
V>Кривой перевод или журнализд наврал. Это не наследование от наследниника, это использование типа до его определения, но после объявления. Вполне себе практика С/С++ и до всяких шаблонов.
Pzz>>Если это работает и в C#, это не комплимент в пользу C#
V>Но используется аж в самой базовой инфраструктуре стандартных либ, например: V>https://docs.microsoft.com/ru-ru/dotnet/api/system.iequatable-1?view=netcore-3.0
Ну, с интерфейсом это ещё не так явно проявляется. Более классический случай — наследуемся от класса, получаем в подарок набор статик мемберов, которые невозможно получить "нелюбопытным" наследованием:
public abstract class TaggedString<T> where T : TaggedString<T>, new()
{
protected string _value;
public static T New(string value) => new T{_value = value};
public static T operator +(TaggedString<T> left, string right) => new T { _value = left._value + right };
}
И далее
public class MyString: TaggedString<MyString>{ }
...
var t = MyString.New("Hello");
var p = t + ", world!";
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Pzz, Вы писали:
V>>Только речь не о покупателе молока, а о его производителях. V>>Это как если писать под Windows API, то сначала надо заплатить за право это делать. Pzz>А разве можно забесплатно скачать Windows SDK, и использовать его в коммерческих программах?
Естественно. Только в старые времена оно называлось Platform SDK. Кстати, а помимо него был ещё DDK, для драйверов.
Pzz>Я правда не в курсе, они время от времени меняют свою лицензионную политику, а я не слежу.
Да вроде никаких изменений) Разве что некоторое время назад стало возможно бесплатно использовать ещё и их компилятор (ставя его без VS).
Здравствуйте, AleksandrN, Вы писали:
AN>И, кстати, если использовать VS, то версия Community может использоваться для коммерческой разработки только индивидуальными разработчиками. А организации могут использовать эту версию только в образовательных или научных целях. А так же для разработки софта с открытыми исходниками.
Здравствуйте, AleksandrN, Вы писали:
AN>И, кстати, если использовать VS, то версия Community может использоваться для коммерческой разработки только индивидуальными разработчиками.
VS и WinAPI немного разные вещи.
Тем более, что существует более одного С++ компилятора, тем более в те года.