{"id":14846,"date":"2026-01-28T00:15:29","date_gmt":"2026-01-27T23:15:29","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=14846"},"modified":"2026-01-28T00:15:31","modified_gmt":"2026-01-27T23:15:31","slug":"flutter-a-necessary-evil","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2026\/01\/28\/flutter-a-necessary-evil\/","title":{"rendered":"Flutter? A necessary evil"},"content":{"rendered":"\n<p><a href=\"https:\/\/docs.flutter.dev\/install\/archive?tab=linux\">Flutter SDK<\/a> is available only for Linux x64. MacOS has ARM and x64 packages, Windows has x64. <\/p>\n\n\n\n<p>This make developing on Raspberry a real chore, not to speak *BSD. <\/p>\n\n\n\n<p>This makes me distrust the language as it seems a little to much under the whims of the GAFAM that controls it.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>On the contrary languages like Python and Eiffel are available on a lot of CPUs. They are even available for an Amiga which uses the ancient <a href=\"https:\/\/en.wikipedia.org\/wiki\/Motorola_68000_series\">m68k<\/a> processors. Rust, Zig which are relatively young languages currently run on <strong>eight different <\/strong>CPU architectures on Linux (x86_64, aarch64, arm, riscv64, powerpc64, x86, loongarch64 and s390x), six on FreeBSD, four on NetBSD. <\/p>\n\n\n\n<p>That&#8217;s why I turned to <a href=\"https:\/\/flet.dev\/\">flet.dev, i.e. flutter apps in Python<\/a> and keeping an eye on <a href=\"https:\/\/github.com\/cunarist\/rinf\">Rinf: Rust in Flutter<\/a>. With a proper design that keeps the GUI logically separated from the logic it would be easy to port to other interfaces (I have told you that <a href=\"https:\/\/search.brave.com\/search?q=gtk4+android+backend&amp;summary=1&amp;conversation=08a4ad18effdb51baf3ddf0bd140ca8e31c6\">GTK4 finally includes<\/a> an experimental Android backend?). <\/p>\n\n\n\n<p>Yes, there is Qt. But it requires to &#8220;interact&#8221; with C++ and more importantly last time I checked <a href=\"https:\/\/news.ycombinator.com\/item?id=34959804\" target=\"_blank\" rel=\"noreferrer noopener\">Qt 6 still uses the moc preprocessor<\/a> which means that it is not &#8220;standard&#8221; C++ and more importantly makes interfacing with it a real chore<\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">Flutter SDK is available only for Linux x64. MacOS has ARM and x64 packages, Windows has x64. This make developing on Raspberry a real chore, not to speak *BSD. This makes me distrust the language as it seems a little to much under the whims of the GAFAM that controls it.<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2026\/01\/28\/flutter-a-necessary-evil\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":14574,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[171,452,113],"tags":[],"class_list":["post-14846","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ethics","category-flutter","category-python"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-3Rs","jetpack-related-posts":[{"id":14573,"url":"https:\/\/monodes.com\/predaelli\/2025\/12\/29\/python-flutter-flet-dev\/","url_meta":{"origin":14846,"position":0},"title":"Python + Flutter = flet.dev","author":"Paolo Redaelli","date":"2025-12-29","format":false,"excerpt":"flet.dev Build multi-platform apps in Python Easily build realtime web, mobile and desktop apps in pure Python. No frontend experience required.","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/12\/flet-dev.webp?fit=752%2C800&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":14807,"url":"https:\/\/monodes.com\/predaelli\/2026\/01\/23\/the-xonsh-shell-python-powered-shell\/","url_meta":{"origin":14846,"position":1},"title":"The Xonsh Shell \u2014 Python-powered shell","author":"Paolo Redaelli","date":"2026-01-23","format":false,"excerpt":"The Xonsh Shell \u2014 Python-powered shell. Python shell. Python in the shell. Shell in Python. Shell and Python. Python and shell.Xonsh (sounds like \"consh\") is a modern, full-featured and cross-platform python shell. The language is a superset of Python 3.6+ with additional shell primitives that you are used to from\u2026","rel":"","context":"In &quot;Python&quot;","block_context":{"text":"Python","link":"https:\/\/monodes.com\/predaelli\/category\/python\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2026\/01\/xonsh.webp?fit=257%2C399&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":8964,"url":"https:\/\/monodes.com\/predaelli\/2021\/12\/06\/rusteiffel\/","url_meta":{"origin":14846,"position":2},"title":"RustEiffel?","author":"Paolo Redaelli","date":"2021-12-06","format":false,"excerpt":"Python 4.0 will never arrive\ud83e\udd1a\ud83d\ude14. Said by Python\u2019s creator And the reason is mainly Rust. Guido van Rossum (the Python programming language\u2019s inventor) stated in an interview a few days ago that it would be difficult for Python 4.0 to see the light of day since the programming language is\u2026","rel":"","context":"In &quot;Liberty Eiffel&quot;","block_context":{"text":"Liberty Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/liberty-eiffel\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2021\/12\/1Zw72DLdFFS_SoumO0Ho_Ew.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2021\/12\/1Zw72DLdFFS_SoumO0Ho_Ew.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2021\/12\/1Zw72DLdFFS_SoumO0Ho_Ew.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2021\/12\/1Zw72DLdFFS_SoumO0Ho_Ew.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":12963,"url":"https:\/\/monodes.com\/predaelli\/2025\/03\/14\/flutter-resources\/","url_meta":{"origin":14846,"position":3},"title":"Flutter resources:","author":"Paolo Redaelli","date":"2025-03-14","format":false,"excerpt":"Flutter resources: Wonderous (web demo, App Store, Google Play, source code):A Flutter app that showcases Flutter's support for elegant design and rich animations. Material 3 Demo (web demo, source code):A Flutter app that showcases Material 3 features in the Flutter Material library. Flutter Samples (samples, source code):A collection of open\u2026","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3482,"url":"https:\/\/monodes.com\/predaelli\/2017\/11\/04\/wipy-2-0-bluetooth-seeed-studio\/","url_meta":{"origin":14846,"position":4},"title":"WiPy 2.0 &#8211; Bluetooth &#8211; Seeed Studio","author":"Paolo Redaelli","date":"2017-11-04","format":false,"excerpt":"WiPy 2.0 Just one word: WOW WiPy 2.0, The tiny Micro Python enabled WiFi & Bluetooth IoT development platform. With a 1KM WiFi range, state of the art Espressif ESP32 chipset and dual processor, the WiPy is all about taking the Internet of Things to the next level. Features Basic\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2017\/11\/1483517401876721-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2017\/11\/1483517401876721-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2017\/11\/1483517401876721-1.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":11308,"url":"https:\/\/monodes.com\/predaelli\/2024\/02\/09\/how-to-stress-test-your-linux-cpu-for-high-load\/","url_meta":{"origin":14846,"position":5},"title":"How to Stress Test Your Linux CPU for High Load","author":"Paolo Redaelli","date":"2024-02-09","format":false,"excerpt":"stress and stress-ng are essential tools for assessing and testing the performance of Linux systems under various conditions. Source: How to Stress Test Your Linux CPU for High Load","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/14846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=14846"}],"version-history":[{"count":1,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/14846\/revisions"}],"predecessor-version":[{"id":14849,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/14846\/revisions\/14849"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media\/14574"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=14846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=14846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=14846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}