この世界は。。。いいですか?
Комментарии
14.04.2022 в 19:10

Медузка-тян.
"...владею русским, английским и японским языками."
Хоть в чём-то могу почувствовать своё превосходство!
16.04.2022 в 13:52

...и вечером плащ демиурга и мага, а утром по новой колпак дурака...
А я ни одним ин. языком не владею. :) Немецкий не выучился. А остальные так, по наитию (без знания грамматики). :)

>>- С, С++: средний уровень

А какого стандарта? :)
А то, к примеру, концепты с 20 появились (и я с ними до сих пор не подружился). И чего там только не появилось... хрен поймёшь даже зачем это нужно. Читаешь иную статью - сплошные шаблоны с метапрограммированием щедро пересыпанные STL. Например, смотришь статью про делегаты ( habr.com/ru/post/78299/? ) на Си++ (и зачем они мне?...) - даже в голове трудно сходу уложить какой класс чего хранит и как этот шаблон частично специализируется. А потом думаешь, ну нафиг, обойдусь без них. Рефлексируешь. Вспоминаешь, что паттерны давно тоже забыты, да и не применялись за исключением пары-тройки штук. И в очередной раз откладываешь идею о смене работы, полагая, что с такими знаниями С++ (за 22 года!) нафиг никому не сдался.
16.04.2022 в 14:46

この世界は。。。いいですか?
А какого стандарта?
Ну, так... Толком и не знаю. Прошивку для домофона ковырять хватало, круды для программок на Qt ваять - тоже, а на большее я и не претендую. Не за C/C++ мне сейчас платят, да больше никогда и не будут, наверное. К счастью.
16.04.2022 в 15:37

...и вечером плащ демиурга и мага, а утром по новой колпак дурака...
Так не понравился Си++? Я наоборот его только и люблю - скорость работы высочайшая.
16.04.2022 в 15:47

この世界は。。。いいですか?
Не то чтобы не понравился... Просто слишком уж много ему тяжёлого наследия от предка досталось.
16.04.2022 в 16:14

...и вечером плащ демиурга и мага, а утром по новой колпак дурака...
Там только наследием и можно нормально пользоваться - оно понятно и логично. А современный Си++ - это метапрограммирование на шаблонах с STL в нагрузку, и все вот эти извращения с закосом в функциональщину. Я не очень понимаю, кто реально это использует? Кому надо возвращать из функции функцию или лабать рефлексию на Си++? Вот зачем оно? Почему весь этот мазохизм практически невозможно понять даже после десятого прочтения? Вот.
16.04.2022 в 16:38

この世界は。。。いいですか?
Кому надо возвращать из функции функцию
А вы попробуйте в приложении под Андроид из Java-части в С++-ный native code указатель на указатель на функцию прокинуть, и для полного счастья обратную процедуру проделать - сразу оцените.
16.04.2022 в 17:12

...и вечером плащ демиурга и мага, а утром по новой колпак дурака...
А зачем из Java лезть в код на С++? Я с таким же успехом мог бы возжелать из языка PL/1 или Ада сделать то же самое. Раз уж есть часть на Си++, так и надо на нём всё и писать. Откуда Java-то вылезла? Зачем она нужна, если она без С++ жить не хочет?
Тут пару лет назад один деятель хвастался, что умножение Карацубы реализовал и тем ускорил работу ПО. Оказалось, у него тоже Java. Я постеснялся спросить тогда, чем у него занимается математический сопроцессор, раз дошло до оптимизации математики и зачем в таком случае он вообще эту Jav'у взял.

А попутно, а как возврат функции из функции на С++ (а это существует только внутри компилятора как синтаксис языка и после компиляции станет обычными функциями на асме) вообще связывается с Java?
16.04.2022 в 20:02

この世界は。。。いいですか?
Откуда Java-то вылезла? Зачем она нужна, если она без С++ жить не хочет?
Потому что приложения под Android пишутся на Java. И на Kotlin ещё.

А зачем из Java лезть в код на С++?
А попробуйте, например, написанный на C/C++ (да, именно так, вперемешку) картографический движок на Java переписать, чтобы под Андроидом запустить. Даже если кто-то согласится оплатить такие трудозатраты, работать оно будет... не очень быстро.

Значительно проще собрать его с помощью андроидного g++ в библиотеку, а на Java написать только обёртку, которая будет эту библиотеку запускать и нужные функции из неё дёргать. В мире Android это очень распространённый подход. И быстродействие будет на высоте, и уже имеющийся код переписывать не надо будет.
16.04.2022 в 20:16

この世界は。。。いいですか?
test-user-dmt, на самом деле, описанное выше - ещё не самое страшное.
Мне на практике встречался случай, когда С/С++ функции приходилось тягать... из Javasсript. Да. В браузере.
Это был особенный браузер. У него были две особенные функции в движке Javasсript. Первая служила для того, чтобы послать сообщение в скрипт со стороны С-шной программы. А вторая - чтобы наоборот, дёрнуть указатель на функцию в С-программе, чтобы послать ей сообщение из Javasсript.
Рисовало это чудовищное поделие... интерфейс домофона на хитром микроконтроллере. Что мешало реализовать это дело на том же Qt и не страдать - не понимаю до сих пор, ресурсы контроллера позволяли.
16.04.2022 в 20:18

...и вечером плащ демиурга и мага, а утром по новой колпак дурака...
>>Потому что приложения под Android пишутся на Java. И на Kotlin ещё.

Ну так и пусть пишутся. А Си++ как тогда появился вдруг на том же Android?

>>А попробуйте, например, написанный на C/C++ (да, именно так, вперемешку) картографический движок на Java переписать, чтобы под Андроидом запустить. Даже если кто-то согласится оплатить такие трудозатраты, работать оно будет... не очень быстро.

Логика - блеск. Сначала выбираем java, а потом страдаем. Что мешает на Си++ сразу написать, раз уж g++ обнаружился?

>>Значительно проще собрать его с помощью андроидного g++ в библиотеку, а на Java написать только обёртку

Так. И при чём тут возврат функции из функции в Си++? Чем возврат лямбды из функции тут поможет?
16.04.2022 в 20:36

この世界は。。。いいですか?
Что мешает на Си++ сразу написать
Во-первых, зоопарк устройств с различными процессорами. Написанное на Java запустится на любом устройстве, бо собирается в байт-код, исполняемый виртуальной машиной. По этой же причине делается как минимум две, а то и три версии библиотеки с С-функциями, чтобы покрыть хотя бы большинство архитектур.

Во-вторых (и это связано с первой причиной) - отсутствие нормальных средств разработки программ с графическим интерфейсом на С++ под Андроид. Если не считать того же Qt, но оно под Андроидом кривое и вроде бы уже даже умерло.
17.04.2022 в 05:29

...и вечером плащ демиурга и мага, а утром по новой колпак дурака...
>>По этой же причине делается как минимум две, а то и три версии библиотеки с С-функциями, чтобы покрыть хотя бы большинство архитектур.

Ну так и сделали бы две, а то и три версии программы на С++. Смысл тащить платформозависимую библиотеку с независимой обвязкой? На смартфонах гигабайты флэша, несколько версий ПО погоды вообще не сделают. А попадётся нестандарт, так он в любом случае не заработает (библиотека-то платформозависимая).

>>отсутствие нормальных средств разработки программ с графическим интерфейсом на С++ под Андроид. Если не считать того же Qt, но оно под Андроидом кривое и вроде бы уже даже умерло.

А это вообще детский сад. Тут два варианта:
1) Производители не желают, чтобы писали на С++ и борются с этим, вынуждая фактически писать на java и прочих пайтонах. Но так как иногда всё-таки нужна скорость, то кое-какую поддержку всё же сделали.
2) Программисты не желают писать на С++ под Android, так как это резко повышает порог входа. Отсюда нет и поддержки С++ от производителей.

Результат: костыли, тормозящее ПО. Где-то я такое уже видел. Ах да, пайтон незабвенный.

Как видите, С++ не виноват, что его не могут использовать. Проблемы не у него, а у остальных языков недостаточного быстродействия. Тогда зачем вносить в стандарт решения, облегчающие использование С++ с этими языками?
(на самом деле, я думаю, вы просто не так поняли исходное рассуждение, поскольку я так и не нашёл ответа на вопрос, чем возврат лямбды из функции помогает java и другим языкам.
«Кому надо возвращать из функции функцию
А вы попробуйте в приложении под Андроид из Java-части в С++-ный native code указатель на указатель на функцию прокинуть, и для полного счастья обратную процедуру проделать - сразу оцените.»
)