Adafruit CircuitPython

All ESP8266 boards running MicroPython.
Official boards are the Adafruit Huzzah and Feather boards.
Target audience: MicroPython users with an ESP8266 board.
User avatar
deshipu
Posts: 1355
Joined: Thu May 28, 2015 5:54 pm

Re: Adafruit CircuitPython

Post by deshipu » Mon Jan 16, 2017 2:12 pm

pythoncoder wrote:Agreed. But you can have a fork without reinventing API's. You can fork and contribute.
Not if the changing APIs are what you are trying to save yourself from.

User avatar
pythoncoder
Posts: 3935
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Adafruit CircuitPython

Post by pythoncoder » Tue Jan 17, 2017 8:17 am

A fork and judicious use of Git can protect you from unscheduled API changes. It's a question of philosophy rather than of technology. We developers have a tendency to look at the work of others and think "I can do better." Then, rather than engaging in discussion with the originators to see if our ideas have legs - and offering to help - we invent our own solution. In the case of simple stuff it's of no consequence, and people will write code for their own education and enjoyment. But some problems are complex enough to merit a team approach.

Designing a truly flexible hardware API is a deeply nontrivial problem crying out for a team of developers, with people bringing their own experience of different sets of hardware constraints and capabilities.

It would be a shame to end up with several half-baked solutions where a cooperative approach might have yielded a single excellent one.
Peter Hinch

User avatar
deshipu
Posts: 1355
Joined: Thu May 28, 2015 5:54 pm

Re: Adafruit CircuitPython

Post by deshipu » Tue Jan 17, 2017 8:49 am

pythoncoder wrote:A fork and judicious use of Git can protect you from unscheduled API changes. It's a question of philosophy rather than of technology. We developers have a tendency to look at the work of others and think "I can do better." Then, rather than engaging in discussion with the originators to see if our ideas have legs - and offering to help - we invent our own solution. In the case of simple stuff it's of no consequence, and people will write code for their own education and enjoyment. But some problems are complex enough to merit a team approach.
Oh, we had discussions. They were cut rather abruptly and resulted in the 6 month embargo on pull requests. It's hard to discuss with that.

User avatar
pythoncoder
Posts: 3935
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: Adafruit CircuitPython

Post by pythoncoder » Tue Jan 17, 2017 5:57 pm

deshipu wrote:... It's hard to discuss with that.
In which case you have my sympathy. I hope we end up with two good quality universal hardware API's. :?
Peter Hinch

Turbinenreiter
Posts: 288
Joined: Sun May 04, 2014 8:54 am

Re: Adafruit CircuitPython

Post by Turbinenreiter » Tue Jan 17, 2017 8:56 pm

pythoncoder wrote:I hope we end up with two good quality universal hardware API's. :?
Guys like us will end up writing a wrapper anyway ;)

User avatar
deshipu
Posts: 1355
Joined: Thu May 28, 2015 5:54 pm

Re: Adafruit CircuitPython

Post by deshipu » Mon Jan 23, 2017 12:43 pm

By the way, if you are curious, have further questions about this, or just want to make them sweat a little trying to answer your difficult questions, there is going to be a chat on hackaday.io with the Adafruit people about their fork and the plans they have for it. Unfortunately, you need to have an account on hackaday.io to take part. Details at: https://hackaday.io/event/19509-circuitpython-hack-chat

(Unfortunately I won't be there, as it happens exactly during the FOSDEM beer event, but I think it would be good to have some MicroPython people there.)

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

Re: Adafruit CircuitPython

Post by pfalcon » Sun Jan 29, 2017 12:52 pm

well it has started already with pycom's forks of uPy and adafruit is now the next one.
It didn't start with pycom's fork. It started the same day Damien released the source code. I myself was slow and forked just next day to contribute first patch in a few. There're currently almost 1000 forks only on github (via its standard means), and indeed, people and organizations fork for different reasons - some to contribute, some to just hit fork button randomly, some dig their own thing, some grab and run. Nothing is new under the sun, and before MicroPython, it happened to an uncountable number of (successful) open-source projects, and on some, like Linux, the whole process can be studied very well, how it goes thru decades.

Back to MicroPython, you can see how well those forks doing by randomly clicking thru them. Well, we're speaking about a company's one, let's look at that:

https://github.com/wipy/wipy/

Here's the latest user testimonial:
it appears the wipy 1.0 is yet another orphan (getting quite the collection ... :-/
Note that there's nothing wrong with it - it's a common story that vendors move on and leave their products in hands of their users. Actually, it's going to happen with any hardware product sooner or later. In that regard, I'm amazed with the level and persistence with which Damien supports his hardware project - PyBoard - over the years, it not just receives software upgrades all the time, but also hardware upgrades, like a deluxe car which you can modernize as years go by while your neighbors replace rusty tinboxes. Please support his work (not somebody else's).
Adafruit [] would like a uniform API across the processors/boards that they support
That pinpoints it very well - that they support (support now; we know what happens when they stop supporting it). That's unlike MicroPython's motto - "MicroPython runs everywhere". All the time, too.
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/

gr4viton
Posts: 3
Joined: Fri Sep 02, 2016 8:55 pm

Re: Adafruit CircuitPython

Post by gr4viton » Fri Feb 09, 2018 4:16 pm

deshipu wrote:
Mon Jan 16, 2017 11:16 am
It's obvious, that they want to have at least some control over it. What would they do if someone suddenly decided to merge a patch that would completely break their ports, because the code is cleaner that way? Or if a decision to completely overhaul the API was suddenly made -- something that happened at least twice already -- and all their libraries, docs and tutorial suddenly became obsolete.

Well you always can add versioning? And if some big change would happen, you can rewrite tutors for the new one and before they are ready, use old tutors with older version. New version with cleaner code is better then obsolete fork. Though, i get that they want to have more control over "their" code. I do not say it will be the same as libreoffice vs openoffice, though there is no mention of micropython on the circuitpython landing page.. That's odd imho..

danhalbert
Posts: 7
Joined: Mon Jan 16, 2017 3:58 am

Re: Adafruit CircuitPython

Post by danhalbert » Fri Feb 09, 2018 4:41 pm

gr4viton wrote:
Fri Feb 09, 2018 4:16 pm
though there is no mention of micropython on the circuitpython landing page.. That's odd imho..
I'm not sure which landing page you're referring to. On https://www.adafruit.com/circuitpython, the first sentence is:
CircuitPython is Adafruit's branch of MicroPython designed to simplify experimentation and education on low-cost microcontrollers.
If it's missing somewhere else you think it should be, let us know. We want to make it clear we're descended from MicroPython. We regularly merge from upstream, and have submitted PR's for enhancements in the core.

User avatar
deshipu
Posts: 1355
Joined: Thu May 28, 2015 5:54 pm

Re: Adafruit CircuitPython

Post by deshipu » Fri Feb 09, 2018 6:09 pm

gr4viton wrote:
Fri Feb 09, 2018 4:16 pm
Well you always can add versioning? And if some big change would happen, you can rewrite tutors for the new one and before they are ready, use old tutors with older version.
I don't think you realize how much hard work went into all those materials, and how much more would be required every time a MicroPython developer happily decides to break everything.

Post Reply