Go Down

Topic: Where has SoftwareSerial gone? (Read 7 times) previous topic - next topic

retrolefty

#10
Jan 18, 2011, 07:25 pm Last Edit: Jan 18, 2011, 07:28 pm by retrolefty Reason: 1
But, but, but the Uno Punto Zero project is going to fix all that.  ;)

Quote
Forum to discuss about the official release of Arduino's conglomerate. This is both for hardware, software, examples, and documentation. If it is needed we will expand this forum board into a category by itself
.



Lefty

gbulmer

#11
Jan 18, 2011, 07:39 pm Last Edit: Jan 18, 2011, 07:40 pm by gbulmer Reason: 1
Quote
But, but, but the Uno Punto Zero project is going to fix all that.  
:-)


Of course!
I have been a fool.
You have enlightened me. Thank you, thank you.
The scales have fallen from my eyes :-)

IMHO, making stuff obsolete, and the process around removing things is a thorny issue. IMHO the Arduino team has made an astonishingly, good, tasteful job of dealing with thorny issues. I have total confidence in their ability to do this well too.

I don't feel pre-pending 'New' to a name is good. Do we get NewNewSoftSerial next, then NewNewNewSoftSerial, maybe New4SoftSerial? Where do the previous versions get archived?

I don't think failing to include library example code, which clearly exist, in the download is a good approach to clearly announcing that a library is deprecated. That feels wrong.

Anyway, I've tried to contribute what I can.

PaulS

Quote
I don't feel pre-pending 'New' to a name is good.

The Arduino team didn't do that. A member of the forum saw a need for a better software serial class, and developed a new one. What to call it? Well, SoftwareSerial2 seems kind of clunky.

The library was posted on the forum and playground, got good reviews, and was acknowledged to be better than SoftwareSerial. So, support for SoftwareSerial was dropped. It has not been the preferred software serial class for many versions of the IDE.

Quote
I don't think failing to include library example code, which clearly exist, in the download is a good approach to clearly announcing that a library is deprecated. That feels wrong.

How would you do it? Keep in mind that paperwork and documentation always tends to take a back seat to new development. I know. I've been a developer for 30+ years, and I don't do documentation unless I'm bored out of my skull. There is always something new to work on, learn, or explore.

gbulmer

#13
Jan 18, 2011, 09:35 pm Last Edit: Jan 18, 2011, 09:52 pm by gbulmer Reason: 1
[glow]Edit:[/glow]
Quote
The Arduino team didn't do that. A member of the forum saw a need for a better software serial class, and developed a new one. What to call it? Well, SoftwareSerial2 seems kind of clunky.

The library was posted on the forum and playground, got good reviews, and was acknowledged to be better than SoftwareSerial. So, support for SoftwareSerial was dropped. It has not been the preferred software serial class for many versions of the IDE.


Okay, I have no problem with it being deprecated. I am only asking for a clear, simple way to know the status of the stuff that is included in the IDE download.

Quote
How would you do it?


0. Decide how libraries/language will be deprecated and made obsolete, then publish that on the Arduino.cc web site.

I have total confidence in the Arduino team to develop a good approach. They have very good taste.

Here is my cut, assuming that information exists, and this is in-line with that approach:
1. Write in the Library/Reference page that NewSoftSerial is recommended over SoftwareSerial in the line describing SoftwareSerial. Add a link to hop down the page to the NewSoftSerial entry.
2. Write in the Library/Reference/SoftwareSerial page, at the top, very clearly, NewSoftSerial is recommended, and that SoftwareSerial is deprecated, but still supplied for those people who have already committed to using it. Say if/when SofwareSerial will no longer be included in the Arduino IDE download. Add a link to the Arduino.cc page which explains the general process of deprecating and obsoleting components.
3. While SoftwareSerial is included in the download with the IDE, include the example program that exercises it. Include in the comment at the top, the note that SoftwareSerial is deprecated, and refer to the Arduino.cc Libraries/Reference/SoftwareSerial page
4. When SoftwareSerial becomes deprecated (if it isn't already), add a note to the Release Notes to say that.
5. When SoftwareSerial stops being included in the Arduino IDE download, add a note to the Release Notes to say that.

Quote
I've been a developer for 30+ years

And so?
I wrote my first commercial, professional code in 1978. I learned C on XENIX in 1983, and BSD UNIX 1984. My friend Mark had the first C++ compiler in Europe, from a tape made by Bjarne Stroustrup, and he taught me C++. I have taught Software Engineering to post graduate level to industrial and full time students. I have been responsible for the post graduate software engineering training of near 1000 graduates/year, as well as some of the software engineering quality processes for a development shop of several thousand people. So what?

I am thrilled that there are a growing stream of talented folks with only a few years experience coming up with great ideas, fabulous approaches, and teaching me a thing or two.

I think good, simple, lightweight processes to deprecate and obsolete code help make our development activities easier and more enjoyable.

gbulmer

Sorry I had to pop-out to buy dinner ...

Quote
I don't do documentation unless I'm bored out of my skull. There is always something new to work on, learn, or explore.

I don't like writing documentation either. That doesn't mean that I should be satisfied with the status quo simply because it involves something I don't like doing. That doesn't seem to me an adequate criteria.

A successful strategy to handle our human imperfections is to use a 'process'.

'Process' has got a bad name, but IMHO that is because many processes I see are quite poor. This is partly because it is difficult to develop good processes. IMHO it is also because some of the people who create process are weak at developing good processes, and the objectives of the process are not well thought out (IMHO significant social institutions have been severely damaged this way, but that's an illustration of the difficulty, and not the success).

I'd use something very simple, easy to explain, understand, and do, to handle obsolescence.

IMHO the Arduino team are unusually good at developing good processes, but I am more than happy to contribute if it would help.

Go Up