5 ms·
Oh wow, that is really bad. Like 10 different technologies and at least 2 programming languages for a soldering iron firmware.
by hvasilev 3y ago
Oh wow, that is really bad. Like 10 different technologies and at least 2 programming languages for a soldering iron firmware.
- nerdponx 3y agoWhy is that bad? It's possible that it's sloppy or lazy, but it's also possible that the author has carefully considered their options and is using the best tools (or their preferred tools) for the job. As described elsewhere in the thread, a soldering iron does more than just get hot, and as described in the readme, the project has accumulated a lot of functionality.
- hvasilev 3y agobecause it is unreadable and unmaintainable with all of these dependencies. Even in the description it says that it spiraled out of control at some point "Originally conceived as an alternative firmware for the TS100, this firmware has evolved into a complex soldering iron control firmware."
- nerdponx 3y agoThat doesn't imply anything is out of control. How do you know it's unreadable and unmaintainable? Just browsing the repo it seems pretty under control and organized to me. Firmware projects tend to get complicated, see also QMK for keyboards.
- hvasilev 3y agoWell, it is unmaintainable, because maintaining this set of dependencies is absurd for what this firmware is and it is unreadable, because I tried to read it and lost interest in a few minutes later, because of all the bullsh*t.
- k_roy 3y agoThis seems a bit more like a "you" issue. I dug through it and even compiled it quickly without an issue. The code looks clean, and well organized, and even supports multiple languages. Just because code isn't PHP, python, or "hello world", doesn't means that it's absurd and unmaintainable. Especially when you have the attention span of a may-fly and declare it to be "bullsh*t" after a few minutes
- hvasilev 3y agoI don't think it is a "me" issue. On the contrary, I think this project has a lot of issues similar to what contemporary modern web development has. Generally firmware engineers know not to do this kind of stuff, since we have a highly derivative work that spans across decades. I'll give you an example - because of chip shortages I had to redo a couple of devices and their firmware for the past few years. I had to dig into code that hasn't been touched for 12 years on more than one occasions and I had no issue compiling it more than a decade later. The reason why is because people weren't trying to be fancy and they kept the dependencies to a minimum. Imagine if you stop pumping oxygen into this project for a month...
- k_roy 3y ago> is because people weren't trying to be fancy and they kept the dependencies to a minimum I've been in professional development for 25 years now, and I've heard people say this before NUMEROUS times. You know who the people who say this are? People who live and breathe Dunning-Kruger and in reality, just unable to keep up and being unwilling to learn and evolve. Usually this is someone that likes to talk the talk, but put something that actually requires critical thinking and it's instantly broken, the libraries are broken, the language is broken. Don't worry, the developer isn't the problem, it's all the tools and scaffolding. And I've hired and fired at least 100 developers over the course of my career in Fortune 100 companies so I've seen them all. Whatever. Your opinion vs my opinion. Nobody said you had to run this on your soldering iron. And it's not like it's supporting a huge catalog of devices. It's just an alternative option for tinkerers. > Imagine if you stop pumping oxygen into this project for a month... And nothing will change... This is a simple OS for a $26 soldering iron with what amounts to a custom form-factor SBC. But don't worry, hvasilev knows everything about development and this project is bullsh*t.
- nyanpasu64 3y agoReally the code is C++ on a C RTOS (the same compiler toolchain), and the Python scripts are there to generate fonts and handle build jobs, and don't get loaded into the actual iron. Last time I checked the code is built off blocking functions rather than state machine objects in an event loop, which I'm not sure how I feel about in an interactive GUI.
- hvasilev 3y agowhat do you think is the proportion between boilerplate and tooling to actually useful functionality? Given this ratio what do you think about the scope of this project? I'm not sure why or when, but it seems to me that at some point this industry stopped trying to solve real issues.