Hacker News new | ask | show | jobs
by ikravets 3358 days ago
> but it always seems like they sorta reinvented the wheel instead of using existing tools

PlatformIO wasn't built as a commercial project. What is more, we didn't re-invent wheel or clone other project/idea. PlatformIO is a practical solution for the problems which were resolved in http://smartanthill.org (the place where PlatformIO was born). The problem, where you need to build the same source code into the multiple embedded development platforms/architectures using any OS (Windows, Linux, Linux ARM, macOS, BSD, etc) WITHOUT ANY DEPENDENCIES to a system. The only one requirement is Python interpreter.

If you try PlatformIO today on a clean machine, it will take ~1-2 minute to build/deploy the whole project. Our build system is super fast, ~4-6secs per generic Arduino AVR project. It's based on SCons construction utility. We have own optimization for it and, also, provided PR as contribution to SCons.

> but why didn't they do all this using the normal tool-chain like CMake/git/GNU-tools/crosstool-NG/etc.?

You can do that if you work with 1-2 board/MCU and use the same OS. If you have a project and your team uses different OS, or you need to be sure that your project has the same workflow not matter which system environment will be used, PIO is cool here.

You need to bother with make/cmake/build scripts/toolchains/upload tools and other things... Just tell PIO which board (currently, we support ~370 different boards/architectures/mcu) do you want to use and PIO will do all complicated work for you automatically. You can easy move from one OS to another, or even to work simultaneously from different places, IDEs.

PlatformIO that is not just a "multi-platform build system". It's own philosophy and own vision how embedded development should look. A lot of people do not agree with us and have an own vision and use own tools/instruments. That is normal, or better, we hear good criticism and trying to make PlatformIO better and better.

> Or is it to get some kind of lock-in and promote a commercial product?

Again, PIO was not built as a commercial project. We see our mission in an embedded world and do all work for free under 100% open source/Apache v2.0. Today, PlatformIO has own niche and own big community. We see big future in PlatformIO not only from a business point of view. PlatformIO allows makers, hobbyists, companies to focus on own ideas and own products and save time which could be spent to maintain multiple development platforms using different build scripts, tools, etc.

Today, we work on the other solutions for the business/developers who need to more professional instruments. We don't have an aim to monetize existing work (3 years) or even change the license. Whole this work should be moved to PlatformIO Foundation or a similar protected organization.

PlatformIO has own history, thousands of developers trusted in it and supported us. PlatformIO could not be successful without our community, they are our guide for the new achievements.

Regards, The PlatformIO Team

1 comments

> You need to bother with make/cmake/build scripts/toolchains/upload tools and other things... Just tell PIO which board (currently, we support ~370 different boards/architectures/mcu) do you want to use and PIO will do all complicated work for you automatically.

You know, it's funny. You explain this as a big advantage of PlatformIO, but it's actually the thing that worries me the most. I don't even know yet why -- kind of a gut feeling.

I guess it prompts me to ask question such as: will it really work properly for all 370 platforms? Or only kinda? Can it do everything I need it to? or does it limit all 370 boards to their lowest common denominator in terms of interface and exposed capabilities?

There's another argument though: Usually I need only one board. Maaaaybe two. So while setting up toolchains can be a thoroughly unpleasant experience, it's something I do once per project or so, and then I'm good for the next months or years. This vast support is nice, but rather irrelevant in practice.

Dear Luca,

We don't force you to use PlatformIO. If you like manually manage build scripts, toolchains, etc. and understand how to do that, you can switch PlatformIO to your own build system. I remember that I already explained to you how to do that (own `build_script` entry within PIO build environment).

> There's another argument though: Usually I need only one board. Maaaaybe two.

Thanks, I've heard your feedback. PIO is intended for developers who don't want to focus on the 1 board for 1 year. We don't live in 90-th, today each month we have new boards, MCUs, connectivity solutions, etc. PIO allows you an easy switch between them. If you don't know at 100% which hardware do you need for the next 1 year, PIO is the excellent tool here. You can experiment with dozens of boards and find better hardware according to the project requirements. They cost a few $$$ today.

Stay tuned for our news. We are working on the very interesting things which will be announced soon.

> I remember that I already explained to you how to do that (own `build_script` entry within PIO build environment).

Yes, I vaguely remember. I think it was before 3.0 came out?

It's been a while, but IIRC it didn't feel like build_script was a good solution for me.

IIRC you said you were going to improve the documentation. I shall re-read it. Maybe it makes more sense to me now, and I'll change my opinion.

> Stay tuned for our news. We are working on the very interesting things which will be announced soon.

I'll be watching with interest.

> If you don't know at 100% which hardware do you need for the next 1 year, PIO is the excellent tool here

Actually, no.

That was one of the points I was trying to make. Beause I have to trust you that PlatformIO works well enough on all 370 boards. And I won't know until I try, by which time I'm already deeply invested in PlatformIO.