Avatar

bitfucker

bitfucker@programming.dev
Joined
1 posts • 578 comments
Direct message

It always baffles me what someone considers “a toy”. Remember Linux? Yeah, it was a toy and “never going to be big”. GIMP is a homework. I love small projects like this and their potential.

permalink
report
parent
reply

What do you mean by C# is “accessable” vs C++? Do you mean it as readability? Or the software availability (compiler, and the tooling behind the language)?

permalink
report
parent
reply

What do you mean PlatformIO is cloud backed? As far as I know, PIO is just a vscode extension to manage embedded projects and it does just that very well IMHO. Heck, you can even use it not as an extension but as a python library/script. Sure, you can maybe connect it to some cloud service but it is not a requirement (but I don’t even know if they provide any service whatsoever beside their repository). Your code is still stored locally, the compiler, tooling, and framework used is downloaded too. You can, of course opt to store your code to the remote git repository but that is a whole other matter. Also, you can always configure where to pull everything from. Also, the thing that you mention about flashing MCU from chromium based browser cannot be generalized. It’s highly dependent on the system in question. I doubt you can flash STM32F103 (a.k.a. blue pill) using the usual stm bootloader.

permalink
report
parent
reply

Truly open tools? As far as I remember, arm is supported in gcc. Even RISC-V is being supported now. You can make a lot of the tooling yourself for uploading or use the already existing one. But guess which is less time consuming? If someone has already did the job for you, why reinvent the wheel? You also have openocd and even black magic probe for debugging. Tons of open source framework and stack available (zephyr rtos, free rtos, arduino, mbed, opencm, cmsis). You want to design a board? KiCAD. Making an enclosure? FreeCAD and 3D printing does the job. What more openness could you possibly want? As for the point of easier access, why would you be bitter when datasheet, sdk, and other tooling are available online? Are you mad that you didn’t have access to those when you were younger? And about an ecosystem designed to make a profit, of course ic/chip/mcu manufacturers will make a profit. Do you expect to get them for free? And if you don’t like a certain manufacturer, then don’t use their product when designing. You can totally pair an STMicroelectronics MEMS microphone with ADC from Texas Instrument, and MCU from Espressif. Unless of course that very specific hardware is not provided by any other manufacturer, in which case that makes the point even moot because that is not the fault of the engineer.

permalink
report
parent
reply

That really depends on the teacher/mentor. C and C++ can be just as accessible. For someone who is learning by themselves however, I agree.

permalink
report
parent
reply

Well, of course you can’t. Any kind of setup requires you to have the data. Unless you want to get that data from another medium (USB Flashdrive, CD/DVD, SD Card, anything else), then online is the easiest way. After the setup phase, it depends on how the software will behave. In PIO case, it will not download anything else unless needed since if they do otherwise, you will be downloading a lot of junk that you may not need (if you only want to develop stm32, why download avr tooling).

I’ve read the discussion linked and it seems that it was a bug which has been fixed. If you mean the reliance on github, as I said before, it is not platformio fault. The person just happens to distribute their library on github rather than advertising their library on some other media and saying “Hey, I provide this library for this specific thing. If you want it, buy this CD/contact me and we can arrange on how you would get it”. Being online has nothing to do with it. You can just as easily have your friend/coworker write the library and transfer it using usb stick then compiling it on PIO. The person can also simply download the .zip and configure PIO to use the downloaded file. In fact, that is exactly how PIO does things too. Download the code once and then use it afterward repeatedly. Now, if we are talking on over reliance on library, that is another can of worm that I will not touch here unless you want to discuss it too.

Also, down below another person is having trouble when updating. And as mentioned, it is not that PIO Core is auto-updating (it shouldn’t as the reply mentioned, it should only show a prompt to update), but the extension is auto updating (VSCode default behaviour).

permalink
report
parent
reply

What kind of tools did you use? I only ever play around with STM32 stuff (specifically their cubemx program) while the rest is just SDK and open source tools.

permalink
report
parent
reply

Fair enough about the providing instruction part. And yes, it can be hard to install manually since PIO IDE extensions have installation check after the plugin is installed, but the PIO core itself is just a python script. You can pip install it or download the .tar.gz from pypi.

Edit: Sorry, somehow my long ass comment got trimmed to the single paragraph above. Anyway, the thing about dependency required comes from the fact that PIO will download the required tooling when it needs them. Say, you want to develop for STM32 ARM MCU, then PIO need to download the compiler, uploader, and debugger. After that, if you define that you want to use a framework, PIO will need to download that too. Can you install it manually? Absolutely. But as you said, there is no instruction on how to do it since there are literally hundreds of possible configurations. Doing it manually defeats the purpose of PIO in the first place. And what kind of always online feature are you talking about? I never encountered such a thing in my 3 years experience on PIO.

permalink
report
parent
reply

Look my man, I am genuinely confused here. What online service are you talking about? PIO only provides their registry and that is it. They didn’t even take a mandatory payment, only donations. If you are talking about the IoT ecosystem, then that is an entirely different beast.

permalink
report
parent
reply

Assembly sure, since it will differ from ISA to ISA. But C is still a “high” level language in the sense that you can write once run “anywhere”. Also, more work to do something is expected since C is such a “bare” language to simplify. But again, it doesn’t count as it not being as accessible to get new developers started, but it is and will be more cumbersome to work with (in the context of redis like software).

So yeah, maybe it depends on how you would define accessible is. I think if it is defined as just “how easy it is to get started and understand how it works, and how to work with it”, C and C++ is quite accessible with a good teacher/mentor. The teacher/mentor is important in C and C++ because unlike C# which has Microsoft as its main authoritative source and the big influencer in the language, C and C++ doesn’t have those so the resource on learning it can vary wildly.

permalink
report
parent
reply