Chi Calculator 2.2: Именно таким должно быть ПО для Linux (Desktop)
Почти каждый дистрибутив Linux разработчики представляют как прекрасную и дружелюбную (user friendly) операционную систему.
реклама
На главной странице Manjaro Linux говорят что он удобен в использовании ("It is user-friendly..."), и вообще подходит даже новичкам в работе с ПК...
Но что же в реальности? А в реальности...
Система поломалась после установки драйвера на видеокарту который был предложен самой же системой...
реклама
Да ладно, зачем меню восстановления системы как в Windows при возникновении проблем с загрузкой, ведь пользователь и сам знает что делать, да и вообще, пользователь обязан читать мануалы и уметь работать с терминалом, даже когда терминал недоступен! Именно так скажут некоторые сторонники систем на основе Linux.
Linux Mint тоже выставляют как некую легкую и комфортную в использовании операционную систему...
А еще говорят что все прекрасно работает "из коробки" и не требует ковырять конфиги и устанавливать дополнительное ПО, интересно, зачем тогда линуксоиды постоянно кричат чтобы я потанцевал в терминале да почитал мануалы каждый раз как натыкаюсь на одну из множества проблем дистрибутивов, в том числе при работе с Mint...
реклама
И Ubuntu туда же... Прямо идеально подходит для использования на персональных компьютерах, ноутбуках и серверах:
За сервера ничего не скажу, там обычного пользователя не встретить, а вот ПК и ноутбуки... Да, Ubuntu обычно лучше других дружит с "железом", но и все на этом.
реклама
Боюсь спросить, а почему в Desktop сегменте доминирует Windows и macOS если Ubuntu просто идеально подходит для использования в этих условиях?
Особенно забавляет как дистрибутивы Linux ставят в один уровень с Windows...
Меня особенно заинтересовали слова про поиск новых возможностей своего ПК с дистрибутивами Linux.
Интересно, какие такие новые возможности своего ПК я могу найти если дистрибутивы Linux часто даже работать нормально не желают, у меня был целый "зоопарк" разнообразного железа ПК, и это разнообразное железо ПК не особо то и хотело нормально работать с дистрибутивами Linux, в том числе ряд актуального "железа", и про некоторые такие случаи я уже писал...
Да и софта под Linux толком нет, где аналоги AIDA64? Полноценные аналоги, а не жалкое недоразумение в лице GTK Stress Testing (и подобные)... Вот мне нужно сравнить производительность двух процессоров в двух разных ПК которые не подключены к сети, как мне это сделать без геморроя на голову и чтобы это могли повторить обычные пользователи? Да никак, ибо нет толком софта адекватного под Linux дистрибутивы.
Оно и понятно, бесконечные зависимости и проблемы с распространением софта дают о себе знать, вот разработчик напишет программу, а она работает только в одном дистрибутиве, а потом прилетает обновление зависимостей и труды разработчика идут прахом, так какой смысл писать софт для Linux дистрибутивов?
Особенно когда нет адекватных методов распространения софта, которые были бы удобны обычным пользователям... Я еще раз тыкну носом линуксоидов, посмотрите как работают установочные exe пакеты в Windows, и посмотрите на мракобесие с DEB пакетами:
А еще вот так взяли и выкинули труды разработчика(ов) что работали над ocs-bttrack, просто потому что какая-то там зависимость накрылась медным тазом...
Можно конечно посылать каждого пользователя читать мануалы да изучать терминал и способы пляски над терминалом, бесконечно кричать чтобы пользователь делал копию скудного репозитория с софтом и таскал его везде если хочет установить софт без интернета, но этим ли обязан заниматься пользователь пришедший в операционную систему поверив в писанину на главной странице дистрибутива?
Линуксоиды не учатся на ошибках, и не желают учиться судя по всему, ведь нужно сделать "не как у всех", да побольше зависимостей, чтобы у пользователя постоянно все ломалось при обновлениях, а разработчики начинали вой от осознания, что нужно переписывать софт под новое болото зависимостей.
Мне уже надоело это это всё, наблюдать как линуксоиды на каждом углу кричат что "тупые пользователи" никак не осилят терминал да мануалы, не осилят центр приложений и кривые Flatpak/AppImage, и прочий бред всевозможный...
Именно поэтому я и создаю свой калькулятор, если линуксоиды не способны создавать, значит это буду делать я, стыд и позор сообществу Linux, чтобы я, ни разу не программист писал действительно простое и дружелюбное приложение в плане запуска и распространения...
-
--
---
Репозиторий и благодарности
Исходный код "Chi Calculator" можно найти в моём репозитории, там же можно найти некоторые скомпилированные версии калькулятора: ( https://github.com/Shedou/Chi-Calculator ).
Особая благодарность разработчикам игрового движка Godot Engine, они разработали действительно полезный и независимый инструмент, не желаете брать лучшее от лидеров (Windows / macOS)? Тогда берите пример с разработчиков Godot Engine! ( https://godotengine.org ).
-
Немного из процесса разработки
Разрабатывать приложение и попутно писать статьи довольно непростая задача, потому некоторые нюансы я мог упустить, но в целом я стараюсь показывать все как есть.
По сути написание статьи занимает ничуть не меньше времени и труда, чем разработка приложения, впрочем, ничего страшного, я хоть что-то делаю, в отличие от линуксоидов которые предпочитают обвинить пользователя во всех проблемах, лишь бы не признавать факты проблем в дистрибутивах Linux.
Так как в прошлый раз я работал над внешним видом калькулятора и немного учил его считать, то сейчас настало время сделать управление, чтобы калькулятор реагировал на нажатия кнопок.
Кнопки интерфейса я связываю с кодом "сигналами", а управление с клавиатуры у меня отлавливает сам Godot, я просто указываю какую кнопку "ловить" и что делать если кнопка "попалась".
Можно конечно написать свою функцию для отлова нажатых кнопок, но смысла в этом нет сейчас.
Теперь в калькулятор можно вводить символы, но более-менее нормально считать он пока не умеет.
Чтобы калькулятор научился считать, его нужно научить понимать с чем он имеет дело, потому я начал экспериментировать... Да, можно было взять готовое решение и подогнать под GDScript, или вообще выйти на уровень C++, но я хочу посмотреть, каково это набрасывать "не как у всех"...
Чем больше экспериментировал, тем больше разрастался код, да и ладно, для всех кто уже забыл, я не программист, хоть раньше и изучал программирование на C++, но это было ~10 лет назад...
В итоге я пришел к некому рабочему варианту, пользователя все равно не будет волновать как оно "под капотом" работает, да и не должно волновать, это должно волновать разработчиков, но никак не обычных пользователей.
И если софт работает неправильно, это проблема разработчика, в данном случае моя, но никак не пользователя, и пользователь вообще не обязан даже думать, чтобы лезть в код и что-то там исправлять, это обязан делать разработчик, то есть я в данном случае.
Да, сейчас многое работает неправильно, что не удивительно учитывая сколько времени прошло с момента начала разработки, и я не скрываю этого, не пытался даже выставлять свой калькулятор как идеальный. Я его разрабатываю в первую очередь для того, чтобы он работал почти в любых дистрибутивах Linux, и его распространение/запуск были максимально комфортными для обычного пользователя.
Здесь я уже пытался написать функцию для коррекции ввода, например стереть лишнюю цифру, но я занимался не только этой функцией, а проектом в целом, в том числе тестированием на работоспособность в разных дистрибутивах Linux, потому данный функционал я на некоторое время оставил как есть.
Может показаться что я показываю одно и то же, но здесь я уже исправил обработку нажатия кнопки вычисления квадратного корня.
Чтобы правильно вычислить квадратный корень мне пришлось написать отдельную функцию ради квадратного корня, и да, у меня калькулятор уже умеет считать квадратный корень из выражения, например квадратный корень из "5 + 5" = "3.162278".
Еще поправил функцию расчета процента, изначально она вообще неправильно работала, но сейчас считает правильно, и считает она процент от числа, например 100% от 5 = 5.
Здесь я уже проверяю калькулятор версии x32 и x64, все работает, не то что в Linux дистрибутивах, x32 версии приложений невозможно запустить в x64 дистрибутивах.
Но есть нюанс, Godot это игровой движок, и по стандарту он заточен для разработки игр, потому точность Float всего 6 символов, что для полноценного калькулятора маловато будет, впрочем, за неимением никакого калькулятора и такой будет в радость...
Может быть в будущем я перепишу логику калькулятора на C++ чтобы значительно повысить точность вычислений, но сейчас я не буду этого делать и продолжу использовать GDScript.
Еще я здесь сделал поле ввода открытым для изменений, то есть в поле ввода можно вставить выражение из буфера обмена, конечно такой функционал не следует давать пользователю на данном этапе разработки, но если пользователь желает "самоуничтожиться", то грех отбирать у него такую возможность...
На всякий случай проверяю, вдруг мой калькулятор перестал работать под Linux дистрибутивами...
Далее уже началась версия 2.2, я исправил функцию стирающую ввод по одному символу, это не уровень "профессиональных" калькуляторов конечно, но лучше так чем никак.
И на этом я пожалуй закончу работу над кодом, ибо мне нужно провести тестирование на совместимость с помойкой дистрибутивов Linux...
-
--
---
Тест на совместимость
Так как мой калькулятор имеет минимальное количество зависимостей, само собой он не имеет особых проблем с работоспособностью в различных дистрибутивах Linux.
Но минимальный "порог вхождения" все же есть, и я его выяснил.
В Ubuntu 8.04.4 мой калькулятор не выйдет запустить, ибо для его работы нужен GLIBC_2.17, линуксоиды обязательно начнут слюной брызгать, мол я говорил про универсальность, а на деле якобы ничего не работает в старых дистрибутивах, но не спешите, в Windows XP тоже многое не будет работать от Windows 7/10/11...
Недостающая библиотека на 100% появилась в конце 2012 года, а это значит что дистрибутивы старее чем за 11 месяц 2012 года не смогут запустить мой калькулятор.
В итоге самая старая Ubuntu которая способна запустить мой калькулятор это Ubuntu 13.04, это даже не LTS, но в ней все правильно работает, только сам дистрибутив мозги компостирует типичными проблемами, что свойственны обычно только дистрибутивам Linux...
По итогу мой калькулятор работает в дистрибутиве 2013 года, в дистрибутиве который уже давно лишен какой-либо поддержки, там даже репозитории с софтом давно умерли, а хваленый "родной" kcalc так сможет? Или любое другое современное линуксоидное приложение утопающее в болоте зависимостей?
Мои ненаглядные дружки пирожки вечно защищающие дистрибутивы Linux, вот смотрите, репозитории дистрибутива уже давно умерли, у пользователя нет доступа к софту из центра приложений, пользователь так же не может устанавливать ущербные DEB пакеты ибо они требуют доступ к репозиториям что давно умерли, и что собственно теперь из себя представляет "идеально подходящая для ПК и ноутбуков" операционная система?
Правильно, мусор, вот что из себя представляет сейчас Ubuntu 13.04, и будут представлять собой все современные дистрибутивы Linux спустя 5 лет от силы, ибо софта толком нет, доступа к репозиториям нет, установить автономные DEB пакеты невозможно так как они тянут зависимости из мертвых репозиториев.
Это ли та славная свобода в Linux дистрибутивах? Когда пользователь намертво принужден к зависимости от репозиториев и прочего линуксоидного мусора от которого бегут в ужасе многие кто приходит попробовать "свободу"...
Тем временем мой калькулятор прекрасно работает, просто могу взять и запустить его, даже в терминале плясать не нужно, достаточно просто выдать права на запуск через свойства файла и можно запускать, никакой магии и компиляции исходников руками, просто отсутствие болота зависимостей.
Конечно же в Ubuntu 14.04 тоже не возникло проблем с работоспособностью калькулятора, хотя эта система тоже брошена, и это факт.
Пожалуй я не буду за каждый дистрибутив говорить какие "грабли" приходилось обходить во время установки, но текущий набор дистрибутивов следующий (кроме Ubuntu 8 и Ubuntu 12), и во всех этих дистрибутивах мой калькулятор прекрасно работает:
Наверное я сделал всё неправильно, и мой калькулятор не должен работать в целом зоопарке дистрибутивов, он наверное должен ломаться при каждом обновлении болота зависимостей, как это делает большинство софта для дистрибутивов Linux... И вообще, x32 "никому не нужен", так что срочно надо удалить все x32 версии калькулятора...
А на что ты способен, дружок пирожок? Давай, расскажи в комментариях, мне очень интересно (нет).
Ладно, не буду "тянуть резину", сразу к делу:
Более десятка разнообразных дистрибутивов, и везде калькулятор запустился с минимальными телодвижениями, а в некоторых дистрибутивах достаточно было просто кликнуть по файлу, чтобы запустить.
Именно так должен работать софт для Linux дистрибутивов, чтобы пользователь мог им воспользоваться где угодно и когда нужно пользователю, и не зависеть от доступа к скудным и неудобным репозиториям.
А теперь сводная таблица:
Почему я могу так легко протестировать свой калькулятор во множестве дистрибутивов? Все очень просто, мой калькулятор достаточно скопировать и запустить, прямо как в Windows, и не брызгайте слюной линуксоиды, я не тащу Windows в Linux, я просто реализую что действительно нужно было реализовать еще десятилетия назад чтобы это было повсеместно и стандартом.
Тем временем "линуксоидный" софт нужно не только под каждый дистрибутив по разному устанавливать, но еще пользователь обязан предоставить доступ к интернету, ибо действительно автономных установочных пакетов у большинства софта под Linux не существует...
-
Заключение
В общем результаты говорят сами за себя, мой калькулятор прекрасно работает в целом зоопарке дистрибутивов Linux, включая дистрибутивы 2013 года, у которых даже репозитории умерли давно...
И даже несмотря на то, что дистрибутив 2013 года уже давно не поддерживается, а репозитории давно умерли оставив пользователей один на один с голой системой, мой калькулятор там прекрасно работает, достаточно его просто запустить предварительно выдав права на запуск.
Особенно следует отметить дистрибутив Simply Linux 10.1, ведь в данном дистрибутиве работает как x64 версия калькулятора, так и x32 версия, что просто прекрасно, именно так должна работать любая адекватная операционная система.
Пользователь должен иметь возможность запуска 32-разрядных приложений в 64-разрядной ОС, иначе это не операционная система, это глупое недоразумение, и к сожалению в помойке дистрибутивов Linux оказалось 8 глупых недоразумений на одну операционную систему.
Это все печально, особенно печален тот факт, что я (далеко не программист) разрабатываю ПО способное работать даже на дистрибутивах 10 летней давности, пока сообщество Linux просто уничтожает труд разработчиков, что осмелились писать софт под дистрибутивы Linux...
Да, Python 2.x уже не молод, но извольте, в Windows так нагло не уничтожают труды разработчиков, и стараются сохранить совместимость со старым софтом.
Я просто напомню, в Windows 10 (версия 2021 года) вполне нормально работают игры 1997-2001 годов:
А некоторые индивиды... Без комментариев:
На этом пожалуй закончу статью, если вам говорят что дистрибутивы Linux прекрасны и вообще способны заменить Windows, не верьте, вам нагло и откровенно лгут... 5 лет (если не раньше) и вы останетесь с голой системой даже без скудных репозиториев так как они умрут, вот что такое Linux дистрибутивы в текущем виде.
И доказательство этому не только мой опыт, но и статистика популярности дистрибутивов (в начале статьи можно найти), если бы в Linux дистрибутивах было все так хорошо как рассказывают, они бы не бились в конвульсиях ниже плинтуса, а Windows и macOS не доминировали бы как операционные системы для ПК и ноутбуков.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила