Про роботов для обучения, конструкторы и Arduino, и, как выяснилось, не только… муки выбора и мой опыт
Работая программистом и будучи отцом двух мальчиков неминуемо задумываешься над тем, как будут твои дети жить в технологическом мире и как будут им пользоваться. И, как любой айтишник, я конечно же хочу, чтобы дети чувствовали себя уверенно. А ещё лучше, чтобы стали профессионалами. Современные технологии дают огромный простор для самоопределения, и моя задача - рассказать как можно больше и как можно интереснее. Там уж сами решат, чего им хочется.
Купил детям классного робота и залип в него сам, да так, что аж написал статью на Хабр, почитайте, интересно получилось https://habr.com/ru/post/670352/
Сайт проекта https://robointellect.ru/
А заказывал вот здесь https://www.ozon.ru/product/robot-konstruktor-robointellekt-...
С++ и муки проникновения
Всем известно, что дехканину доступны три пути: вебкам, закладки и айти.
Давненько подумывал о том, чтобы сбросить задницу с дивана и попробовать последний вариант, но все как-то было недосуг.
Интереса ради, решил хотя бы составить хотя бы первичное приблизительное представление о таком всем известном монстре, как С++, и для начала рискнул перевести на него имеющийся мини-проект пазлов, реализованный в старом добром Дельфи.
Выбрал естественно эмбаркадеровскую IDE, благо она процентов на 99 идентична их же дельфийской. Соответственно оказалось достаточно просто скопировать форму со всей мешаниной контролов на ней, и вставить в новый проект, не прибегая к утомительному растаскиванию кнопок и других компонентов.
Неделя страданий и вуаля:
Имею два идентичных ехешника разного размера, скачать которые можно по ссылкам:
С++ вариант:
https://mega.nz/file/ZEEzGLJQ#3htC3RMzhlbw0-xS9DZ0SwtyqPOhXV...
Delphi:
https://mega.nz/file/RVl1wKQI#frhBOl5nGsrT_dVGbPYM3e7dOg4rMp...
Каких-то особых отличий в эффективности и скорости и не заметил. По-моему вариант на Delphi более стабилен и работает чуть быстрее. С другой стороны С++ вариант весит меньше, но не критично.
Осталось еще попробовать зафигачить алгоритм на Яве, чтобы сделать браузерный вариант игры.
Сам перевод с одного языка не оказался прям уж сложным, но в паре мест, пришлось даже обратиться за помощью к старшим товарищам, которые сходу стали предлагать многокилометровые варианты решений.
Ну и собственно немного размышлений на тему.
Первое впечатление - C++ это неудобный и отвратительный язык, непонятно зачем существующий. Он не является достаточно низкоуровневым, и при этом неудобен для конечного пользователя.
При переводе с обычного Паскаля на си, возникло множество явных трудностей, начиная с невозможности напрямую обращаться ко многим используемым в библиотеках объектах, и заканчивая идиотским компилятором (ну это скорее вопросы к Эмбаркадеро), который запросто пропускает недостачу знака "=" в результате чего алгоритм начинает работать просто непредсказуемым образом.
Что выбесило:
Опять же, невозможность использовать многие нужные классы и методы напрямую, только через указатели, причем опытные сиплюсплюисты рекомендовали использовать умные указатели, из-за которых код начинает превращаться в какой-то маловразумительный гипертекст
Отсутствие динамических массивов - не, ну так-то по факту они есть, но объявляются опосредованно, по типу:
int a[lenght]; где lenght требуемая длина из переменной, но по факту это все то же самое статическое объявление в процедуре, поскольку не зная конкретно значение, объявить массив глобальным, доступным для других процедур не получится. Для Дельфи - это вообще не проблема. Можно объявлять когда угодно и где угодно.
Исключение векторы - но с ними опять же заметно усложняются самые простые вещи.
Массив, тем более многомерный, вообще является одним из основных элементов любого языка, поскольку на практике приходится их часто использовать в самых разных задачах.
Такое отношение к нему считаю недопустимым.
Далее циклы:
Тот же for по сути является все тем же while, для которого просто вынесена в заголовок операция изменения условия (счетчика цикла).
Цикл от нуля до десяти:
for (i==0;i<=10;++i) {}
это все то же самое
while (i<=10) с заранее заданным значением i, у которого операция со счетчиком осуществляется внутри тела.
Отвратительное сравнение ==. Я потратил почти целый день, не понимая почему программа вдруг стала вести себя непредсказуемым образом. Оказалось, пропустил одно "=" в условии.
Смешение типов. То, что является вполне себе реализуемым в других языках, здесь превращается в пляски с бубном.
Если разделить целое i на вещественное j, есть шанс получить округленное значение (в моем случае до нуля). Приходится сначала приводить целое к вещественному типу, а только потом уже делить его.
Отвратительный синтаксис. Как же осточертело вместо точек рисовать стрелочки. Тем более, что для некоторых объектов нужно все-таки использовать точки. Это невозможно понять, это нужно запомнить. Вообще в этом языке отсутствует логика. Если в Дельфи ты точно знаешь, как работать с методами, то тут возможны варианты - в некоторых случаях так, в других этак, в третьих вообще никак, ну или через дядю Васю из соседней деревни.
А еще повсюду указатели, указатели на указатели, указатели указателей, разыменование указателей с указанием разыменованного указателя, указание разыменования с указанием указателя на указатель и так до бесконечности...
Короче, С++, давай до свидания. Чувствую не выйдет из меня айтишника. Уже подумываю о покупке вебки.
Ну поехали
Телеграм - Три мема внутривенно
Готовы к Евро-2024? А ну-ка, проверим!
Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.
А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.
Реклама ООО «Горенье БТ», ИНН: 7704722037
Ищу одну книгу по C++[Найдено]
Всем привет. Недавно я захотел найти одну книгу по C++, которую читал очень давно. В ней автор книги рассказывал об основах C++, а также об DirectX 9. Вообще он писал простенькие игры, чтобы показать как все работает на примере. В конце он сделал 2D игру про пиратский корабль. Также я помню обложку где был самолёт с пропеллером. Ещё книгу выпустили в 2001 или 2004 году.
Заранее говорю спасибо, если скажете название книги.
Вот ответ: #comment_240052332