Shop OBEX P1 Docs P2 Docs Learn Events
Open-sourced Propeller Windows IDE - very possible, but helpful? — Parallax Forums

Open-sourced Propeller Windows IDE - very possible, but helpful?

Ken GraceyKen Gracey Posts: 7,401
edited 2009-12-14 08:34 in Propeller 1
Hey all,

Providing you with some insight about what we're thinking of doing ahead of time with the Windows Prop IDE. Having spent the last couple of days researching various aspects of open source I now know less than when I started looking around. I'm not a programmer, nor am I experienced with open-source licenses, so you'll need to add a bit of your own interpretation to what we're going to propose. Chip and Jeff are busy doing other development work today, so you get me.

If we open-sourced our Windows Propeller IDE it would provide enough information to aid developers in creating some entirely new programming tools. This is what could be released under one of the Creative Commons licenses:

- Delphi code
- compiler assembly language source code
- Spin interpreter (posted somewhere in the forums already)
- Propellant library

That's the whole software side, well almost.

The Delphi code uses several licensed components from elsewhere, which may not have open license arrangements that allow us to redistribute them as source. We would identify those code segments and their purpose. This means that developers with the right Delphi tools wouldn't be able to produce a complete compiled IDE from our source download because they'd be missing components that we have no license to redistribute.

As Chip puts it, the compiler assembly language source code would also be "pretty complicated" to understand. Again, not sure how useful this would be either.

All Parallax would retain at this point would be the Propeller silicon, but enough code would be provided that creative developers would be able to create tools for even more obscure platforms, like a Blackberry or smart phone. Existing developers would have less reverse-engineering to achieve their tools and they would be able to call upon other forum members for help, too.

Such a release would have to entail a few "gotchas"m. First, Parallax wouldn't answer any questions about what has been released. At the moment we respond to every e-mail, but this effort couldn't include that kind of support. We would also not want to be obligated to review or use any IDE improvements that are created for our Windows Prop IDE. If we near this kind of support obligation we won't be able to release new Propellers or improvements to our own Windows Prop IDE. I can't emphasize the importance of this point. We're a small company.

This also introduces some risk for us in terms of the integrity of the whole product line from the newcomer's perspective. For example, if an improved Propeller Windows IDE collected up archives differently, or utilized different methods of compiling code, then our OBEX library may not work as intended with the variant IDE. Newcomers to the Propeller could be faced with the same kind of disgust we all know too well. We never want to sacrifice the functional simplicity that we offer today. In Parallax we hold disdain for tools (CAD, PCB layout, software development tools, whatever) that don't readily compile code, or that choke on file compatibility because of forced upgrades. Any engineer at Parallax who needs to configure a new PC takes weeks to get things straight again ($150/hr x 8 hrs x 16 days). We want nothing to do with these problems, nor do we want to partake in their existence. For example, our BS2 interpreter remains unchanged since 1995 except for some minor bits flipped for new versions of a PIC. Dozens of new Stamp IDEs were released in this period. We want our customers to have a positive, quickly-working experience without compatibility problems.

It would be our hope that a release as we are considering would aid the development of other tools. From our perspective this is the biggest reason to be more open.

We are still reviewing the various Creative Commons licenses to see which one suits us best.

Future versions of the Prop IDE would be released in the same way, too.

I'm not even certain that this kind of release would even be useful, but it's the casual request in the PropScope threads that caused me to look into it more deeply. If it helps Brad with BST then I consider it worthwhile, and especially useful if it enabled the creation of more tools and downloaders for other devices. For example, Tracy Allen made the "Stache" Field Programmer for the BASIC Stamp with similar information.

Hopefully answering the request for open source isn't akin to responding to common complaints that occur on forums just because something doesn't exist but somebody thinks it should - and it ultimately makes no difference to Parallax's business (or your business) - then we shouldn't bother with the effort.

I just want to try to give you a look into our thoughts on the idea. I'll count on all of you to make light of the topic and have a bit of fun with the idea. Poking fun is welcome! Feel free to be constructive and critical - I made this post to get your input. Please don't take this post as a promise to release.

Sincerely,

Ken Gracey
Parallax Inc.

P.S. I'll be traveling to Minn - St. Paul Sunday through Monday (a project all of you will appreciate) so this thread will bake without my attendance. I'll check in as time permits.

Post Edited (Ken Gracey (Parallax)) : 12/11/2009 8:28:42 PM GMT
«1345

Comments

  • JavalinJavalin Posts: 892
    edited 2009-12-11 20:25
    Ken,

    IMHO - don't give away the farm. You've done far enough by providing the propellent library - anybody can write a IDE to run with that.

    James
  • rokickirokicki Posts: 1,000
    edited 2009-12-11 20:34
    I sort of concur. I think getting the ASM code released somewhere, to someone, where they could make a 100% work-alike in C, C++, Java, or some other language,
    *might* be worth doing, but I'm not sure it needs to be fully open-sourced.

    I think Parallax will be h ard-pressed to depend on someone else to develop the full IDE in a timely and bug-free fashion, and yet a huge part of the prop is just how easy
    and intuitive the IDE is. (You can see I am already looking ahead to the Prop 2).

    But a relatively small, clean, Propellant work-alike in C or Java or C++ would be an excellent starting point for others, who may over time integrate it into Eclipse or
    build a hand-crafted GUI using fully open-source tools.

    I recommend thinking carefully about the license, and choosing one that has stood the test of time. The Apache license is probably a good one to consider, allowing both
    commercial use and non-commercial use.

    I think released GUI/IDE code is probably not that useful, especially if it's encumbered by dependencies on non-open-source.

    The problem I see is as the IDE is open sourced, people will develop extensions that the community will clamor for, and not having them in the default Parallax IDE
    will fragment the community. We should strive for a model where enhancements can be fed back to Parallax (with full backwards compatibility maintained forever
    of course), perhaps with a community vetting committee or period so Parallax doesn't spend forever dealing with controversial changes. I believe the dominant
    such changes will be enhancements to Spin and/or the assembly compiler, and not affect the UI at all.
  • mctriviamctrivia Posts: 3,772
    edited 2009-12-11 20:40
    Though I know delphi I avoid x86 assembly so it would not help me. Now a rewrite in java would be extremely helpful because it would be easy to port to different os including blackberry.

    Now if you did publish the code I am sure someone would take the challenge to convert to java.


    As for obex you would probably have to implement a 4th language option. Xpasm as more code would come out with optional tags that the current ide does not support.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    24 bit LCD Breakout Board now in. $21.99 has backlight driver and touch sensitive decoder.
  • Nick McClickNick McClick Posts: 1,003
    edited 2009-12-11 21:10
    What hurts most is official Mac support - I haven't heard any complaints about the license, but plenty of people have turned away at the lack of Mac support. I wouldn't complain if you use a more 'open' license for the Propeller tool, but what will help me sell more Propellers most is supporting other OS'es.

    It's okay if this helps 'unofficial' Mac support, but there needs to be a link on the Download page to a Mac client.

    There's already better feedback in this thread, but that's my 2 cents.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Forums RSS Feed!

    Gadget Gangster - Share your Electronic Projects
  • Luis DigitalLuis Digital Posts: 371
    edited 2009-12-11 21:43
    Ken,

    You made the question and provided the answer: Useful for improving or creating other tools.

    As for support, simply add a note saying it is available as is and there is no official support.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-12-11 21:47
    Ken,

    OBEX compatibility is a major issue. I think you will end up requiring that all submissions to the OBEX have to work as advertised when compiled with the official Parallax IDE. This places an extra onus on tool developers, in that they will have to provide a converter that translates any language extensions back to vanilla Spin and assembly code. It also sustains the pressure on Chip and Jeff to provide the "official" IDE and language with the features that customers demand. (For this reason, I really hope there's no Prop III on the horizon, so they have time to address things like this. smile.gif )

    -Phil
  • BradCBradC Posts: 2,601
    edited 2009-12-11 22:15
    Javalin said...
    IMHO - don't give away the farm. You've done far enough by providing the propellent library - anybody can write a IDE to run with that.

    Err.. no. Anybody running Microsoft Windows can run an IDE with that. Those of us who don't use that particular operating system were still pretty much out in the cold.
    Nick McClick said...
    What hurts most is official Mac support - I haven't heard any complaints about the license, but plenty of people have turned away at the lack of Mac support. I wouldn't complain if you use a more 'open' license for the Propeller tool, but what will help me sell more Propellers most is supporting other OS'es.

    It always saddens me to read comments like that...
    rokicki said...
    I think getting the ASM code released somewhere, to someone, where they could make a 100% work-alike in C, C++, Java, or some other language,
    *might* be worth doing, but I'm not sure it needs to be fully open-sourced.

    This is a key point. The compiler *is* a complex piece of code, and to follow it does kinda tie you in a knot. It's a wizard piece of programming though. Having the source available for a couple of people who would find it useful is a great idea. Even if not directly useful, it would be great reference documentation and it completes the picture started by the interpreter source.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If you always do what you always did, you always get what you always got.
  • Ken GraceyKen Gracey Posts: 7,401
    edited 2009-12-11 22:19
    @BradC. Me too regarding your second point. Ouch! Whack!

    You can have whatever you need from us regardless of what we do for the whole customer base. If any of the stuff we mentioned above is helpful for BST, just ask me in the meantime.

    Ken Gracey
    Parallax Inc.
  • Nick McClickNick McClick Posts: 1,003
    edited 2009-12-11 23:10
    @BradC - I think BST is awesome and I always point people to it when they ask about mac support. Maybe a link to it on the downloads page?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Forums RSS Feed!

    Gadget Gangster - Share your Electronic Projects
  • Luis DigitalLuis Digital Posts: 371
    edited 2009-12-11 23:31
    Ken Gracey (Parallax) said...
    @BradC. Me too regarding your second point. Ouch! Whack!

    You can have whatever you need from us regardless of what we do for the whole customer base. If any of the stuff we mentioned above is helpful for BST, just ask me in the meantime.

    Ken Gracey
    Parallax Inc.

    BST is not open source, if for some reason stopped developing the program, then it will work lost because no one can continue the work.
  • BradCBradC Posts: 2,601
    edited 2009-12-11 23:43
    Luis Digital said...

    BST is not open source, if for some reason stopped developing the program, then it will work lost because no one can continue the work.

    You are both right and not entirely correct on those points.

    Yes, bst is currently closed source and will continue to be as long as I'm really enjoying developing it (or I get the code cleaned up to a point where I think its not a complete pile of spaghetti). I have always said that if, for some reason I no longer wish to, or cease to be able to support the code I would release it all for someone else to take up the baton.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If you always do what you always did, you always get what you always got.
  • Luis DigitalLuis Digital Posts: 371
    edited 2009-12-11 23:59
    Spaghetti?
    Nobody is perfect, but you're a genius. Do not be afraid of her spaghetti. xD
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-12-12 00:34
    I'd have to agree with several previous posts suggesting careful consideration before making this open source.

    Maybe I'll start with two real world practical examples and see where it leads:

    1) The Zicog project with at least 4-5 people all working together but pushing in different directions at the same time. Rather than force people to use one set of code, a solution has been to use #ifdef commands to turn on and off code for different hardware. The Propeller IDE does not support #ifdef but BST does, so the Zicog is BST compatible but not compatible with the standard IDE. I'm not sure the Zicog would have been possible on the standard IDE?

    2) Writing huge spin/pasm programs. Eg a 200k program. There are now a number of hardware platforms that have access to large memory chips. There is software that puts overlays in and out of cogs and stores the overlay data in hub memory, so there is no reason you can't put overlays in and out of hub memory and store the data in external ram. There are a number of ways to write a 200k binary that is self contained in the way it moves bits of itself in and out of hub ram. But to work on a propeller it would need to be split into a smaller bit that sits in eeprom and a larger bit that might be read from an sd card into ram. What would be very useful is to have an IDE that just has reams and reams of spin code, and you hit F11 and it sorts out the compilation in the background and makes it run. Right now that doesn't exist but it could if the source code was available.

    Having said all that, I have some concerns about releasing too much code out into the wild. I'm thinking of the Picaxe story where we are starting to see 'clones' appearing. So far, those clones are not proving very popular as they have poor technical support, rather thin help manuals and no supportive forum. But clearly there are people who see a big enough market that they think it is worthwhile trying to clone a successful product.

    I don't think you want to make it too easy for cloners. Right now the prop is harder to clone as you would have to copy both the silicon and the software. If you make the software open source, then it is just the silicon. I find it fascinating the story of how the East Germans and Russians cloned the Z80, and it is even more interesting discussing Z80 and CP/M projects with people who built these in Russia in the mid 1980s and who know the chip backwards but have never seen nor coded on a real Z80 chip. Bottom line is that silicon can be copied.

    I'm wondering if there is another option?

    If you put the zip of the source code on a website there will be some expert programmers who will download it and make it better. But there will also be some amateurs who download it, hack it a bit and risk splitting the language into a myriad of dialects. And it gives a free leg up to the cloners.

    I think the people who could improve the code are already well known to the community. I'm wondering about only releasing the code to people who have proved their credentials in some way on this forum? They have shared code. They have given as much as they have taken. They have written code that others have said is well written and easy to understand.

    I'd humbly suggest restricting distribution to just those people. I don't think that would be an onerous restriction as any/all the people keen to improve the IDE would already pass the test.

    Even then, it still is worth thinking about preventing cloining. When I purchased a licence for Eagle PCB they asked me to fill in and sign a form to say I would not put the program on a file sharing website. They also said that the program contained a unique key and if they ever did find a copy on a bittorrent site they could track it back to me. I feel that is an entirely reasonable way to protect the IP and the jobs of all the people who work in that company (plus the ongoing improvements to the software) and all it cost from my end was my signature on a piece of paper and the cost of an international fax.

    Even if you do release the source code, I wonder about having a tiny compiled program that is essential to compiling the code in some way and you keep that program secret and have some sort of unique number in that program that the end user is responsible for?

    So, rather than releasing the entire source as open source, I wonder if you could consider an arrangement where you might have a small number of trusted people who have access to the source? These people might even have a commercial interest, eg I might put a post on the forum saying "who could code me xxx in their compiler for yy$". But at the same time those people are unlikely to give away their program or source.

    Just thinking aloud here, but what would be the chances of a Prop III if you could buy a cloned propeller with free software on ebay for $2?

    Of course, these are just my opinions and parallax can do what it wishes, but I'd very much support keeping this discussion going for a while before any decision is made.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • Roy ElthamRoy Eltham Posts: 3,000
    edited 2009-12-12 00:45
    I think this is a good idea for you guys to pursue. The long term benefit derived from the community of people taking it and doing great things will be giant.
    I would encourage you to pick as open or free a license as possible to allow people the freedom to make anything from it. However, I am strongly against GPL or it's variants. It's just to restrictive.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Check out the Propeller Wiki·and contribute if you can.
  • evanhevanh Posts: 16,147
    edited 2009-12-12 01:02
    Dr_Acula said...
    I don't think you want to make it too easy for cloners. Right now the prop is harder to clone as you would have to copy both the silicon and the software. If you make the software open source, then it is just the silicon. I find it fascinating the story of how the East Germans and Russians cloned the Z80, and it is even more interesting discussing Z80 and CP/M projects with people who built these in Russia in the mid 1980s and who know the chip backwards but have never seen nor coded on a real Z80 chip. Bottom line is that silicon can be copied.
    Your argument is flawed. The software is the easy part. What's more, they don't bother to work with source code, they just run the exact same binaries. That's why it's called a clone.

    One can't expect to hold a monopoly on one design forever. Especially a popular one. Move forward.
  • mctriviamctrivia Posts: 3,772
    edited 2009-12-12 01:05
    Dr_Acula I don't think the clone problem you mention is an issue for 2 reasons.

    1) The IDE is free.
    2) Most of ROM including the SPIN Interpreter is already known and available.

    If you were willing to put the money in to cloning the silicon then you could just use the existing IDE and ROM data. It would be a hugely expensive pursuit to clone the prop and since the chip only costs $8 you would not be able to make much since you would have to sell the clone for at least half.

    People have already started to try and reproduce the cogs on FPGAs for the fun of it but you will never get the energy efficiency, cost, and density on an FPGA as you will using the real prop.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    24 bit LCD Breakout Board now in. $21.99 has backlight driver and touch sensitive decoder.
  • evanhevanh Posts: 16,147
    edited 2009-12-12 01:05
    Regarding the Picaxe - they are paid to produce for the UK education market. Just because the Picaxe uses a similar BASIC to the Stamp doesn't make it a clone.
  • Chris_DChris_D Posts: 305
    edited 2009-12-12 01:05
    I can understand Parallax wanting to "open things up a bit" to allow other developers to create new products to enhance the Propeller.· It makes good business sense.· I own Viewport and find it to be of GREAT value while programming and debugging.· If other tools come along that can enhance productivity like Viewport, I like the idea of making it "open".·

    I can easily see it turning into a great big ole can of worms too.· I have only been around here for 6 months or so and the one thing I found out very quickly is that all the Parallax people bend over backwards to help customers.· Turning off that "culture" for just the open source stuff is going to be very difficult to do - you guys (and gals?) are just too eager to help (which we all love).

    Personally, I just don't get the people that buy Macs or Linux machines and are surprised when they find out that not all software titles are available fore their OS.· Most people would agree, Windows isn't great, what is great is the amount of software (and other products) that is available to run in Windows.· In the area of what we all do (programmers), you would think people would be smart enough to know that not all software is available for all operating systems.

    Chris
  • evanhevanh Posts: 16,147
    edited 2009-12-12 01:13
    Chris_D said...
    Personally, I just don't get the people that buy Macs or Linux machines and are surprised when they find out that not all software titles are available fore their OS. Most people would agree, Windows isn't great, what is great is the amount of software (and other products) that is available to run in Windows. In the area of what we all do (programmers), you would think people would be smart enough to know that not all software is available for all operating systems.
    Surprised? No. Disappointed? Yes. Encouraging support? Absolutely. [noparse]:)[/noparse]
  • Ken GraceyKen Gracey Posts: 7,401
    edited 2009-12-12 01:41
    The father of the PICAxe is Clive Seager, and we've communicated in the past. Clive originally authored a BASIC Stamp 1 downloader for the UK's Acorn style machines, about ten years ago. Then (this is stretching my memory so I may be totally wrong in case I'm corrected), through the Technology Enhancement Program (TEP) funded by a UK supermarket chain he broadened his entire educational program, resulting in the PICAxe. Though we were part of his early experience in education, the PICAxe is his entire original work - nothing Parallax provided aided the development of that product.

    Therefore, it is not an example of a BASIC Stamp variant that was introduced by Parallax being so IP-loose that our brains fell out. Not a clone. Not sure what "variant" means as used above.

    Ken Gracey
    Parallax Inc.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-12-12 01:42
    I am going to consider my comments carefully before posting a proper reply. However, there are a few comments that I would like to say now.

    Chip released the Interpreter source code. Hippy was the expert who unravelled much of the interpreter before this. Now we have the real interpreter, it has enabled us to see what the interpreter is actually doing. I have produced a version which runs about 20% faster, but in my later quest for speed introduced a bug(s). I found other things to do with the prop before completely debugging it - at the time it was a spin/pasm debugger to find the bug. This code is on the forum.

    So, what I am saying, is that the release of the Interpreter code did not result in a plenthora of other versions. This code most likely aided Brad and Michael in their compilers. Certainly, their job would have been much simpler if the compiler code was available.

    The other possibility I want you all to consider... Do we want "spin" on other hardware?
    FOR: Makes the language more universal. AGAINST: Competition to the Propeller hardware.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • Michael O'BrienMichael O'Brien Posts: 55
    edited 2009-12-12 01:57
    Ken,
    Sounds like a very useful idea - a process and structure not to be taken lightly. Thank you for bringing it to our attention early in the process.
    I really like Parallax - I hardly ever visit a physical electronics shop anymore, I really like the Propeller, and I really like the propeller IDE and Propellent and the way things currently are - however, in light of all the extensions by the developers you name in this post the product is expanding and could go in a lot of very interesting directions. I personally would be also interested in a Java platform port as the main open source project, sub-project or incubator project.

    In the corporation i develop with we recently open sourced one layer in our Java SE/EE product lines in 2007 under the Eclipse EPL (http://www.eclipse.org/legal/epl-v10.html) - becoming committers to Eclipse. Just an idea but there is a very diverse ecosystem of projects at Eclipse (and Apache as well). The structure of projects is tree based, for example our product is part of the RT (runtime) project because it is an integration API as opposed to an IDE.
    As Rokicki states, Eclipse is also a design-time IDE API that can be leveraged to do the heavy lifting for Linux or Windows system windowing API's - with the javax.comm API available for port communication.

    Some open source software for hardware projects of interest

    Another related open source hardware platform is the Sun Microsystems Sun Spot - although the kit is kind of expensive and it not currently available.
    https://spots.dev.java.net/
    http://www.sunspotworld.com/about.html

    Note: of particular interest is the DSDP/DD/MultiContext project which involves support for debugging multiple cores.
    DSDP: Device Software Development Platform - http://wiki.eclipse.org/DSDP
    +-- Target Management (TM) 3.1.1 - http://download.eclipse.org/dsdp/tm/downloads/
    +-- Tools for Mobile Linux (TmL) 0.3 - http://download.eclipse.org/dsdp/tml/downloads/
    +-- Mobile Tools for Java (MTJ) 1.0 - http://download.eclipse.org/dsdp/mtj/downloads/
    +-- DD: Device Debugging project 1.1 - http://www.eclipse.org/dsdp/dd/
    +-- Spirit (target board discriptors) - ARM - http://wiki.eclipse.org/DSDP/DD/Spirit
    +-- MemoryView (IBM/Freescale/AMI) - http://wiki.eclipse.org/DSDP/DD/MemoryView
    +-- DisassemblyView - http://wiki.eclipse.org/DSDP/DD/DisassemblyView
    +-- DSF (Eclipse debugger integration) - http://wiki.eclipse.org/DSDP/DD/DSF
    +-- GDB/DSF debugger integration - http://wiki.eclipse.org/DSDP/DD/GDB
    +-- MultiContext (simultaneous debugging of multiple cores/threads) - http://wiki.eclipse.org/DSDP/DD/MultiContext

    Virtual Prototyping Platform (VPP) - merged into DSDP above - sponsored by Xilinx
    http://www.eclipse.org/proposals/vpp/

    Just some points to assist/aide in your triage of the issues.
    thank you
    /michael

    Post Edited (Michael O'Brien) : 12/12/2009 2:04:26 AM GMT
  • KyeKye Posts: 2,200
    edited 2009-12-12 01:58
    More library drivers need to be written for the propeller chip, I've been helping out on that. And then in the summer of 2010 I will be coming out with something that might greatly boost sales hopefully if I can complete it by then...

    Honestly, please provide support for multiple OSes, that would be great.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nyamekye,

    Post Edited (Kye) : 12/12/2009 4:02:17 PM GMT
  • W9GFOW9GFO Posts: 4,010
    edited 2009-12-12 02:35
    My feeling is that, if there is a choice, develop in such a way that the code could be ported to other platforms. Parallax could then share their code with anyone who convinces them that they will do good things with it (like BradC). Pretty much what Dr_Acula said eleven posts up.

    Rich H

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    The Simple Servo Tester, a kit from Gadget Gangster.
  • Mike GreenMike Green Posts: 23,101
    edited 2009-12-12 03:23
    Perhaps people should register for access to the source code. It's not enforcible, but at least people would have to click through a page with the rules on it. Registration could also provide access to a special forum for registered users only to share information. It would not be visited by Parallax personnel except for administrative purposes (like to deal with spam and spammers) and no technical questions would be answered by Parallax.

    1) Parallax provides source code and other non-public documentation for informational and educational purposes only.

    2) Parallax provides no support for use of the source code. In particular, people should not call tech support or post questions about the source code on the public forums.

    3) Parallax provides no support for any binary form of the source code other than that provided by Parallax (because Parallax has no control over the compilation process or the run-time libraries used).

    4) Anyone using the source code in a product should make it clear to their customers that Parallax does not provide support for the product.

    The above would be included in the source files as part of the license.

    People of course can ignore any of the above, but at least Parallax has a basis for refusing to provide support.
  • NetHogNetHog Posts: 104
    edited 2009-12-12 04:05
    I think Mike has some good points here.
  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2009-12-12 04:33
    I don't know that opening it up to everybody will really help that much. Probably the only people that would really benefit are people like Brad, ImageCraft and others that are working on compilers. It might be better to limit it to only them and then give them some support rather than opening it up to everyone and offering no support. That would probably give the most benefit to the entire community. For people who have only a casual interest in the compiler there is sphinx which runs on a prop that is probably more fun to play around with.
  • potatoheadpotatohead Posts: 10,261
    edited 2009-12-12 05:41
    I agree with a covenant of some kind at this point.

    There are too many variables, and the Propeller product is in it's life cycle prime right now.

    These things are perfectly enforceable with an actual binding contract, not some click through, or sign up, if you agree kind of thing. Also, I think it's important to consider about licenses is the rights holder can issue whatever licenses they want to issue. It's a given that one size does not fit all, so don't do that.

    Here's a contrary set of examples. (I too dislike the GPL, but am compelled to post this anyway because the GPL, if used at all, has some serious merits.)

    So, author A produced something and licensed it under GPL, forcing all derivatives to be GPL also. That's the bad viral thing nobody likes.

    A GPL community forms and integrates this work into the body of GPL code, and life is good for those guys, but....

    Commercial efforts, seen as friendly and mutually beneficial, are hobbled by the requirement to GPL derivatives, customers are also hobbled by this.

    The originator offers alternative licenses, for commercial use that permit derivatives, and does this for a fee. Could be a small fee, and an actual binding contract. Closed commercial products are released right along side the open GPL ones, and everybody is happy.

    If control over what kinds of derivatives is desired, this is actually not a bad scenario. There will exist a pool of open code, and various solutions that are closed. Open innovations can compete with the closed ones, with the technology originator profiting in either case.

    Either party may fork the code, and that can compete as well, with the open one always being open, and closed forks being open or not, as the technology originator sees fit as they are bound to honor license terms granted to licensees, but not themselves bound as they own the tech.

    So, that's one scenario.

    Another one might be to strike a covenant where code is open only for the purpose of mutually beneficial derivatives. This too should be done for a fee, maybe a small one, associated with a binding as in signature and witness contract. The license terms can be whatever makes sense, but for the right to redistribute source code, keeping the body of code in the family, so to speak.

    One advantage of this scenario is it does leave an open license of some kind in the future. What the licensees pay for, and if desired only pay enough to make the contract solid, is access on their time frame, and some assurance of access. Those doing open development wait until such time as that becomes an option, and the kind of development will depend on the open license released. Frankly, the GPL has control advantages here too, but is not mandatory. The simple MIT license, time delayed to favor those aligned with Parallax and who share the same longer term interests would not be impacted at all, and see a significant advantage over others.

    Where fear of clones is concerned, that's a reality no matter what license, if any, is issued and to whom. Enough exists right now to clone things, and even leverage the software that exists now. That boils down to simple risk / reward, like any security problem does. There is no absolute security, only risk / reward.

    So then, the latter approach taken later in the product life cycle has clear advantages as the risk / reward is kept favorable to Parallax during the early time. Risk grows somewhat, but then a new product release largely mitigates that, and worst case, a successful clone will be one generation behind, which is always the best defense. Out innovate them.

    Seeing as how Prop II is beginning to enter the field of view, this kind of thing makes sense.

    In terms of code being written here in the public eye, the MIT license adds a hell of a lot of value to the Propeller. We all contribute, and we all get more out of it than we put in. (arguably, not literally as there are some where I'm not sure that's the case, and I'm not sure they care either...)

    Where the core technology is concerned, I would be concerned about an open MIT release, because that does grant any and all comers permission to do as they will, with no real value in return for Parallax.

    The real value is in complimentary efforts, and those can be done without a broad, shot gun style release. I would advocate GPL for that, as it is backed by organizations willing to enter court for infringements, and the only people with blanket permission are those also building open tools, meaning any innovations would be visible to all involved. That keeps any one party from taking over the source of the tech.

    The MIT license does open the door for a successful entity to dominate with permission, and if it were me, I'm not sure I would want to do that, given there are lots of alternatives that get everybody taken care of, without seriously leaning that risk / reward ratio out of favor for Parallax. The more I think about the longer term ramifications, the less I like MIT, or Creative Commons for core code releases. Documentation, user authored objects, and other things make great sense, but not for the core code being discussed here.

    Despite the scenarios I've outlined, the GPL turns a lot of people off, and for good reason! It's a fairly restrictive license in that the cost of use is an open product. Making it known that alternative licenses are on the table mitigates that, but only if people inquire. I would think it would be toxic for Parallax to be known as a GPL company.

    So then, I would do a covenant style release to get the value chain moving for all interested parties, and defer a public code release until such time as there is little risk, say after Propeller II is in the middle of it's life cycle.*

    *Despite Parallax offering an extremely long life cycle, I'm defining life cycle as the period between releases of future generations of the Propeller, not the actual consumption life cycle.

    Also given the above, I would hold a planning summit of some kind where these alignments of interest can be sorted out for best overall licensing terms so that everybody experiences a very solid chance to succeed and actually profit from their efforts to build that value.

    Summary: Don't just open it. Not yet, and not MIT.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • potatoheadpotatohead Posts: 10,261
    edited 2009-12-12 05:49
    One other path is to create a semi-open pool to save on legal costs and to simplify the whole process.

    Create the Parallax Public License, with terms and conditions such that derivatives are restricted to some sub-class of possible derivatives, and where they cannot be made completely open, MIT style.

    Again, the MIT is always on the table, but not a requirement to do "open" development for the purpose of mutually adding value to the Propeller.

    That's it for me, just wanted to put the idea of there not having to be just one license release for everyone always on the table for consideration here.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!
    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
    Safety Tip: Life is as good as YOU think it is!
  • SRLMSRLM Posts: 5,045
    edited 2009-12-12 07:07
    I vote for not releasing the source code for the reasons that others have put much more eloquently (namely competing releases confusing the market.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Powered by enthusiasm
Sign In or Register to comment.