Target audience for MicroPython?

General discussions and questions abound development of code with MicroPython that is not hardware specific.
Target audience: MicroPython Users.
Post Reply
Picasso
Posts: 39
Joined: Fri Mar 22, 2019 12:13 pm

Target audience for MicroPython?

Post by Picasso » Sun Mar 24, 2019 5:30 pm

What is considered to be the target audience for MicroPython?

I'm thinking about the following categories:
Category A) C developers who are also ideologic pythonistas and are interested in microcontrollers.
Category B) Cheap people, who only want to work with <10$ MCU, and change the world that way.
Category C) Senior/medior/junior python developers who want to get into the world of iot and microcontrollers, and dont mind spending 40 euros to 60 euros on a pybd board. They often also have a soldering iron too somewhere ...


My quess is that all of these categories can be found in the Micopython community. Category A and B are at the heart of most of of the technology, but they are probably largely outnumbered by the people in category C. I think the MicoPython community will thrive if everyone can feel at home.

This means that the MicroPython community should actively target all these people, without neglecting any of these categories.

Why is this important? Since in my view, the micropython community as it currently is, currently is a warm home for category A and B, but not so much for category C.

There are to many cases where 'simple' things actually requires you to build your own firmware. To be clear, building your own firmware for your own board is not for category C people.

This means:
- Everytime support is needed for some new hardware device, and someone has written a driver in C language, the category C people can not use it.
- Many small change requests, actually require C programming ... the C code part that needs the change might not be hard, but then comes with it the responsibility of building the firmware ... Again a no go for the C category.
- Code often can be written more efficiently in C than in Python. This means most drivers/modules/extensions/improvements contain C code, or should contain C code to be the most efficient solution. Argument being: That way we safe bytes, otherwise the smaller boards are left out?
- If you want to learn about the MicroPython codebase, you see that apart from the core and the ports, the biggest asset is the MicorPython-lib repo, that repo is not at home in the MicroPython account (it is forked from an external github location on an external account). That simply is not good for MicroPython. If that user wants to contribute to micropython then why not on micropython account? I simply cannot come up with a reasonable reasoning before that. This need to change!

Look, I love MicroPython. I bought the boards. Made the LEDs blink. Learned the difference between REPL and the raw REPL. Worked out my own development cycle on windows with some extra utils. But the way it is organised right now, I simply see some flaws. Flaws that are most likely easy to fix, if only it would be clear exactly what the target audience is.

Perhaps I'm the only one. Perhaps not .... please leave your feedback and have this debate, and if it is up to me, set the records straight!

stijn
Posts: 735
Joined: Thu Apr 24, 2014 9:13 am

Re: Target audience for MicroPython?

Post by stijn » Sun Mar 24, 2019 5:39 pm

Just a question: why do you consider building firmware to be something a senior Python developer (which according to your in my opinion rather limited and strict category list is C) should/can not do?

Picasso
Posts: 39
Joined: Fri Mar 22, 2019 12:13 pm

Re: Target audience for MicroPython?

Post by Picasso » Sun Mar 24, 2019 7:26 pm

You would need to have the compile stack available to do so. Most developers don't have that or at least don't have experience with that.
In fact, most python developers I know, simply use python and if they switch to something else for some project, they are happy if that could be some other high level language (php, ruby, rust, c#, go, ...) ... very rarely do I see people enjoy the move to C/C++, for obvious reasons.

And, if you do have experience in C, what is the purpose/benefit of going for python on the microcontroller, why not simply go for the very robust C-based alternatives like arduino?

The beauty of the concept of python on a microcontroller, is that (at least theoratically) you can avoid having the need for C and still be proficient with microcontrollers.

I'm not saying that there are no senior python developers who can handle creating their own firmware. What I am saying is that most python developers will not do that. Hence, making the micropython concept work for "non-firmware builders" would be a smart thing to do.

gdsports
Posts: 5
Joined: Wed Feb 27, 2019 8:37 am

Re: Target audience for MicroPython?

Post by gdsports » Sun Mar 24, 2019 7:38 pm

I suspect people in class C will be drawn to CircuitPython.

Picasso
Posts: 39
Joined: Fri Mar 22, 2019 12:13 pm

Re: Target audience for MicroPython?

Post by Picasso » Sun Mar 24, 2019 7:44 pm

Yes, it does seem that CircuitPython does have that flavour ... but is that a well thought out choice of the MicroPython community? Build your own Firmware, or else you'd probably be better of with Adafruit products?

pfalcon
Posts: 1155
Joined: Fri Feb 28, 2014 2:05 pm

Re: Target audience for MicroPython?

Post by pfalcon » Sun Mar 24, 2019 7:52 pm

MicroPython by itself has nothing to do with microcontrollers. MicroPython is a minimalist programming language implementing subset of Python. It can be used for absolutely anything, be it microcontrollers, supercomputers, hadron colliders or spaceships wondering thru the galaxies - it's all up to its users.

The main defining trait of MicroPython is, again, minimalism. The target audience of it is anyone interested in Python who can accept "social contract" that MicroPython is minimal (comparing to e.g. CPython) and intended to be so.

More information of MicroPython "zen" can be found in https://github.com/micropython/micropyt ... Guidelines .
Awesome MicroPython list
Pycopy - A better MicroPython https://github.com/pfalcon/micropython
MicroPython standard library for all ports and forks - https://github.com/pfalcon/micropython-lib
More up to date docs - http://pycopy.readthedocs.io/

Picasso
Posts: 39
Joined: Fri Mar 22, 2019 12:13 pm

Re: Target audience for MicroPython?

Post by Picasso » Sun Mar 24, 2019 8:14 pm

This response takes me a bit by surprise. I'm sure there is more to it than this.

I was under the impression that the name 'Micro' actually pointed to micro controllers, and not for example MicroHalonColliders. For many of the platforms (or field of applications) you are referring to, other Python platform already exist. It seems to me, that it is difficult to do well if the focus is not clear.

Minimalism is not bad, but it seems that the new PYBD boards are capable of handling much more than just the absolut minimum. Some smaller boards benefit from minimum. But more powerfull boards would benefit from more flexibility perhaps.

Is the architecture not in place to be flexible in these terms too? The core is minimum, the ports are per requirement of the boards, and additional drivers can be done in C but also in python.

In that way, it would be possible to satisfy the 'non-firmware builders', and by doing so the community would prevent pushing a huge potential of micropython fanbase towards the commercial adafruit.

jickster
Posts: 629
Joined: Thu Sep 07, 2017 8:57 pm

Re: Target audience for MicroPython?

Post by jickster » Sun Mar 24, 2019 8:40 pm

You don’t need to use C to write drivers (for the most part). Writing drivers mainly involves writing values to registers and Micropython has an interface to be able to access memory addresses directly.

But it’s gonna be slower than writing it in C.

Writing code in higher-level language is slower than writing it in lower-level language.

Water is wet, sky is blue.



Sent from my iPad using Tapatalk Pro

OutoftheBOTS_
Posts: 847
Joined: Mon Nov 20, 2017 10:18 am

Re: Target audience for MicroPython?

Post by OutoftheBOTS_ » Sun Mar 24, 2019 9:12 pm

I play in both C and Micro-python on micro controllers. I find MP strength is very fast development of code to a working finished product. I find C strength is very fast execution of code.

jickster
Posts: 629
Joined: Thu Sep 07, 2017 8:57 pm

Re: Target audience for MicroPython?

Post by jickster » Sun Mar 24, 2019 9:15 pm

OutoftheBOTS_ wrote:I play in both C and Micro-python on micro controllers. I find MP strength is very fast development of code to a working finished product. I find C strength is very fast execution of code.
You can choose to implement everything in python upfront to optimize speed of development and then selectively port time-critical functions to C.

This workflow is true on any platform.


Sent from my iPad using Tapatalk Pro

Post Reply