Shop OBEX P1 Docs P2 Docs Learn Events
SimpleIDE Update and Propeller GCC — Parallax Forums

SimpleIDE Update and Propeller GCC

We are planning a SimpleIDE update for a relatively new Parallax product.

Items of concern for a plan of action:

1. I would like to move to the default branch of Propeller GCC. I need to know from the Propeller GCC users whether or not anyone has found problems with (default branch) alpha_1_9 vintage. We can't maintain release_1_0 and alpha_1_9 together forever. Eventually release_1_0 needs to be retired. But if there is some pressing issue, we can stay with the fall-back release_1_0. Please provide feedback in this concern.

2. Further, we plan to deprecate XMM variations in SimpleIDE. There is no plan to change Propeller GCC in that regard AFAIK so that backwards compatibility will be maintained for those who really need it. Part of the motive here is to replace propeller-load.

3. Additionally, SimpleIDE will stop supporting config files and will maintain the ActivityBoard clock configuration as the standard clock (PLL16x/5MHz Crystal). C code will allow users to specify the the clock and crystal for non standard clock settings. Part of the motive here is also to replace propeller-load.

4. The SD Card download button will be deprecated as it relies on propeller-load and config file attributes for proper function.

5. Finally, Spin projects may no longer be supported (not finalized), but Spin/PASM files will still be allowed for COG code.

Other aspects of SimpleIDE, especially those Parallax deem sacred, will remain in tact.

There are other ideas we are considering, but the above items are all we have time for in the near future.
«1

Comments

  • Heater.Heater. Posts: 21,230
    Jazzed,

    All sound great to me. I'm all for SimpleIDE being simple.

    I do hope any new loader works with the GPIO pins on the Raspberry Pi (And other ARM and MIPS boards). My changes to the prop-gcc loader were incorporated into prop-gcc a while back. This does require a means for the user to select a GPIO pin to be used as the Propeller reset signal.

  • Will the new loading tool be built into SimpleIDE, or available as a standalone module?

    Is Parallax looking to stop supporting XMM models and leave them as truly deprecated, or do they simply wish to remove support in SimpleIDE so as to decrease complexity?
  • jazzedjazzed Posts: 11,803

    Having a standalone loader application is planned. It will be in github for pull requests.

    SimpleIDE will use one loader that gives us "just the features" we need. The effect of that is removing under-used features. This simplifies SimpleIDE to a point, but it is more work for me. There is no plan that I know of to deprecate XMM capability in propeller-gcc itself.

    Parallax never supported XMM. It was a bonus that David and I added which made sense at the time.
  • Heater. wrote: »
    Jazzed,

    All sound great to me. I'm all for SimpleIDE being simple.

    I do hope any new loader works with the GPIO pins on the Raspberry Pi (And other ARM and MIPS boards). My changes to the prop-gcc loader were incorporated into prop-gcc a while back. This does require a means for the user to select a GPIO pin to be used as the Propeller reset signal.
    We will make sure that the GPIO feature used by the Raspberry Pi is available in the new loader.

  • Heater.Heater. Posts: 21,230
    David Betz

    Cool.

    Will such a new loader be a separate command line program with it's own github repo?
  • jazzedjazzed Posts: 11,803
    That's the plan Heater.
  • Heater. wrote: »
    David Betz

    Cool.

    Will such a new loader be a separate command line program with it's own github repo?
    The loader already has its own github repository: https://github.com/dbetz/proploader

    However, don't judge it to harshly. It isn't done yet. I'm also working on a version that uses Qt. It actually works better but I haven't figured out yet how to distribute Qt apps.
  • I don't know if novice comments are of any use in this thread, but here goes. I have built many incredibly useful projects using the basic stamp professional development board to prototype, and then the super carrier board to build the project. The projects I've built have saved my company lots of money in product losses in manufacturing and storage. It is truly simple and extremely well documented. One of the things that allowed that to happen was the "community" and wide variety of useful examples out there. I'm not a programmer by profession. I have only recently come to the propeller and I can see extraordinary capacity for this hardware to improve on many of the projects I've built. I can also see ways to use this hardware for things that wouldn't have been possible with the basic stamp. Unfortunately, it appears to me as a novice, and beginning propeller user, that the "community" of propeller users have driven everything associated with the propeller to a point where: first, it is very difficult to find clear, useful, and working examples; second, all the negativity in these threads about issues that are way over my head have me wondering why I want to spend any time at all developing anything to use a product that may or may not have a useful IDE supported by the company that makes the hardware. In short, it looks to me like the propeller is useful more as a platform for programmers to argue about, than a platform for builders to make useful devices. One of the things that drew me to the propeller in the first place was the potential to use C/C++, with which I am reasonably familiar. Some of the things that are driving me away, are the lack of clear usable (working) examples in the object exchange; the focus on robot specific sensors and devices as opposed to things that are more practical in manufacturing settings, and the simple oversights like the fact that the propeller professional development board and spinneret are not "options" that can be selected under "board type" in SimpleIDE. After having had excellent success with the PINK board, I can honestly say "good luck" to anyone trying to make a useful device that can serve a web page and email an alarm message with any of the options available now. Beginners, and novices too for that matter, don't have a chance. If parallax wants to sell this hardware, there needs to be a community of users (builders) who can develop simple examples and share them with novices like me. I don't want to develop an IDE. I don't really want to learn to use another IDE. I want to build useful devices that I can program in C/C++. If I have to become a professional programmer to use the propeller, I'm beginning to think I'd be better off moving to the PIC platform, rolling up my sleeves, and learning that the hard way.
  • Heater.Heater. Posts: 21,230
    Ralph,

    Ouch! Point taken.

    Personally I think C/C++ is not the best language for the Prop. The binaries are big and eat HUB memory, it' complex to use (Until SimpleIDE becomes simple again) and I don't think the support has matured yet.

    On the other hand, the Prop was designed hand in hand with the Spin language. The Prop Tool well proven, dead easy to use and just works. The manual other documentation is great, there are tons of useful Spin objects for all kind of things in OBEX, help on this forum is always forthcoming. Easy and powerful.

    I would never go back to the PIC or AVR unless I really need very small, very cheap and not much capability.

    Outside the Prop I'd be looking at the STM2 F4 or such devices for that step up in program size and speed. But they cannot touch many things the Prop can do with ease.






  • Let me go back to my embedded web server example. With the BS2 and PINK I was able to set up a page in the PINK, pass data to it from the BS2, and set up an email function that sent me a text message on an alarm condition. As a beginner/novice I was able to do that in about 3 hours. By following the documentation I could to see what was happening in my process on a simple web page and have my cell phone receive alarm announcements. Simple and useful. I have spent weeks trying to do the same thing with the WIZnet Ethernet and Spinneret boards using spin, C/C++, the object exchange, and looking for useful information on the forums, and I have failed. I have dropped back to using my PINK boards with the propellers. With lots of experience in pbasic, java, php, and MySQL and some experience with C++, I found spin to be completely unintuitive. The objects on the object exchange are very poorly documented and in some cases the code just doesn't work at all without significant tweaking. I'm sure this is simple if you are a professional programmer. Honestly the time I have spent failing to recreate the enormous and simple success I had with the PINK has really turned me off. With the millions of people out there who are proficient in C/C++, I find it very hard to understand why those people haven't been drawn to the Prop and generated more well documented examples. Is it really the binaries and the memory? My response to your comment that the Prop Tool is "dead easy to use" is "ouch!" back to you. I absolutely deserved that, but I (and many others) have not found it "dead easy to use" in interfacing with IC's or other dedicate boards like the WIZnet board. Sorry. I am going to keep trying... SimpleIDE is out until (unless) it lands someplace. Back to Prop Tool...
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-11-23 18:34
    Ralph, I'm sorry to hear you're having so much trouble.

    It does sound like some significant portion of your troubles come from the move away from PINK - which as far as I can tell has nothing to do with the Propeller, BS2, Prop Tool, or SimpleIDE.
    Do you have a library for the PINK that works with your BS2 in Basic but not the Propeller in C/C++? If so, that is a valid complaint that I'm sure someone here would be happy to help you with.

    I feel your pain with the C/C++ support. It helped me understand a lot when Andy explained in another thread what Parallax's goal with SimpleIDE/PropGCC was. In short, the general public was not a primary goal, but rather education and only education. Parallax still recommend Spin and Prop Tool for professional development - whether you're a professional developer or not.

    With that being said, there is ongoing work make things better. I'm not good at reading large blocks of text though, so maybe if you break it out into a simple and concise bulleted list of problem areas, we can address them one-by-one and either say "yes, we're working on that" or "sorry, we have no plans to change that."
  • Heater.Heater. Posts: 21,230
    Ralph,

    That is a complicated tale of frustration, with which I sympathize, but where is the problem actually?

    You were happy with the BS2 and PINK but things went wrong with the Prop and WIZnet?

    I know nothing about PINK or WIZnet. I imagine using the PINK is as simple as sending it commands over a serial link. This can be done very easily with the Prop and the FullDuplexSerial object.

    With your experience of Java, PHP and such I'm surprised you find Spin a problem. It has its quirks and "gotchas", every language does especially if you are used to some other language. Like the white space block delimiting of Python and the strange operators from God know where, but it's a simple thing for all of that.

    I do agree that C/C++ is not ready for prime time on the Prop. And perhaps this is why you have had such a hard time. The tools and documentation are not there yet. I also think C/C++ is not a good idea on the Prop. Hopefully things will be very different on the Prop 2, we shall see.







  • Heater. wrote: »
    I also think C/C++ is not a good idea on the Prop.
    And here I think is the problem. This seems to be the opinion of the majority of seasoned Propeller users here. This is one of the things that makes using C/C++ difficult. Either you don't get an answer to your question or the answer is something like "why don't you use Spin?" In fact, from what you've said, that is essentially the official answer from Parallax. Unless you are one of their targeted educational users, you should be using Spin. The C/C++ experience on the Propeller will never compare with the Spin experience until we get some of the Propeller "heavy hitters" interested in using C/C++. If that doesn't happen, and I doubt it will, then you will always be better off using Spin. I doubt this will change with P2 either.

  • David Betz wrote: »
    The C/C++ experience on the Propeller will never compare with the Spin experience until we get some of the Propeller "heavy hitters" interested in using C/C++. If that doesn't happen, and I doubt it will, then you will always be better off using Spin. I doubt this will change with P2 either.

    Well that's a depressing dose of reality if I've ever seen one.
  • DavidZemon wrote: »
    David Betz wrote: »
    The C/C++ experience on the Propeller will never compare with the Spin experience until we get some of the Propeller "heavy hitters" interested in using C/C++. If that doesn't happen, and I doubt it will, then you will always be better off using Spin. I doubt this will change with P2 either.

    Well that's a depressing dose of reality if I've ever seen one.
    Since I've been on these forums, the biggest reason people give for why the Propeller is so easy to use is the existence of lots of great example code and practical drivers in OBEX. 99% of that code comes from forum participants. Whatever language they like will have the most example code and will be the easiest to use.

  • One positive point though is that Jason wrote the software for the new Parallax Flight Controller in C. Maybe that will get people interested!
  • Heater.Heater. Posts: 21,230
    edited 2015-11-23 20:09
    I don't want to be negative.

    I love the Prop and Spin and PASM and OBEX and even the PropTool if it comes to it. Thank God for BST and now Propeller IDE. This is all simple, well documented, well supported by OBEX and the forum and "just works". Giving you the power of the 8 core 32 bit machine that the Propeller is with only the conceptual difficulty of BASIC on a Commodore C64. The Prop and Spin were designed together as a harmonious whole. Thank you Chip Gracey.

    I also love C and C++. I am the person who first ever got a C program to run on the Prop, with BDSC running under the ZiCog Z80 emulator and CP/M operating system. (Still the only way to self-host C on the Prop as far as I know). Then there was my ZPU emulator, ZOG, allowing one to run GCC compiled C/C++ on the Prop.

    Then came the wonderful world of Catalina and prop-gcc, which blew any simple thing I could do out of the water :) Oh, and those guys who tried to sell a commercial C compiler for the Propeller.

    And now the downer...

    I basically don't think the Propeller is a good platform for C/C++. Because:

    1) Generally compilers compile to 32 bit wide instructions that soon eats the tiny HUB memory.

    Yes we have C on small PICs and AVRs but they are 8 bit machines. Code density is much better.

    2) Generally compilers for the Prop have to produce Large Memory Model (LMM) code. That's neat but kills the performance you expect from C.

    I know, there are ways around all that. Get GCC to compile to real native high speed COG code, But then you are hit with the COG space limit and it adds a whole level of complexity to actually using the thing.

    And there is "Compact Memory Model", again adds a whole level of complexity to actually using the thing.

    This all takes us far away from the ease of use of the Arduino, for example. That's before we get into the crazy world of "External Memeory Models" (XMM) and all this "board type" nonsense.

    Poor old Ralph here has found himself lost in the middle of all that chaos. I haven't even mentioned the issues with SimpleIDE yet....

    Bottom line for me is that C/C++ on the Prop is not for normal people to use. It is I hope the springboard to wonderful things in C/C++ on the Prop II which will be a much more suitable target.
  • Heater. wrote: »
    And there is "Compact Memory Model", again adds a whole level of complexity to actually using the thing.
    There is no user-visible complexity involved with using CMM. In fact, you could argue that the Spin bytecodes are comparable to CMM. So, if CMM is complex, then Spin is as well. However, in reality, the complexity of both is hidden from the user. Also, their code density is quite similar.

    Also, if C/C++ on the Prop is not for normal people then I guess it's not for anyone since Parallax recommends Spin for advanced users.

  • DavidZemon wrote:
    It helped me understand a lot when Andy explained in another thread what Parallax's goal with SimpleIDE/PropGCC was. In short, the general public was not a primary goal, but rather education and only education.
    I'm in my third year of volunteer teaching with the ActivityBot (grades 9 to 12). During the first year, I taught C using Andy's excellent Learn curriculum and examples. SimpleIDE was okay, but the Projects aspect of it caught us up more than once. The students eventually got used to it, though. But what I found most distracting was that way too much precious in-class time was spent helping my students track down missing syntactic gingerbread -- e.g. semicolons and braces. That really interrupted the flow of learning, IMO. (When indentation is optional, students more often than not opt not to use it. :) )

    So I switched to Spin. Of course, this entailed tailoring my own curriculum to the class objectives (navigation and data acquisition last year; mechanisms and time-keeping this year), which is a lot of work outside of class. But the switch was worth it, given the limited amount of in-class time I have with the kids. And, of course, the Propeller Tool is drop-dead easy to get along with; my students took to it right away. They still forget to indent from time to time, but those errors are easier to see and track down than hunting for mismatched braces.

    There were some initial questions from the school about why I chose to teach a proprietary language instead of C. But I was able to explain that this is an academic setting, not a vocational one, and that programming skills, once mastered, transfer easily from one language to another. I do find, however, that students these days are more visually than verbally oriented; and some of them who are extremely good at CAD (the other part of the class) continue to struggle with programming -- even in Spin.

    All-in-all, however, it's been a rewarding experience, regardless of which language I was teaching.

    -Phil
  • Heater.Heater. Posts: 21,230
    David,
    There is no user-visible complexity involved with using CMM.
    Sure there is. You have to choose between LMM, CMM, or XMM.

    Who knows what they are at first glance? It would be fine if one or other of LMM or CMM was the target of the compiler and that's it.
    In fact, you could argue that the Spin bytecodes are comparable to CMM.
    Yes indeed, I have no problem with that idea. So let's keep prop-gcc simple, at least as presented in SimpleIDE, and use CMM only.
    ...if C/C++ on the Prop is not for normal people then I guess it's not for anyone since Parallax recommends Spin for advanced users.
    I really don't know what to make of that statement. Sounds nuts to me.

    C/C++ is used everyday by "normal people". On their Arduinos. Most of them don't even know they are using C++. Last time I checked the Arduino documentation refrained from mentioning "C++"" or trying to document it's massive feature set. Very wise.

    On the other hand, my impression is that Chip designed the Prop and Spin and the Prop Tool, together, to be ultra simple, for those new to programming and micros, in the spirit of the old BASIC machines. Certainly not "advanced" users.
  • Phil, thank you for your comments. I often rave about power of "real" IDEs like CLion, Eclipse, QtCreator, NetBeans, etc because they help find these problems, like mismatched brackets and missing semicolons. Unfortunately, I've yet to find an example of an IDE that provides both the simplicity of Arduino/SimpleIDE and the code inspections of any "real" IDE.

    ... with one possible exception being OmniaCreator. But I never actually tried it for myself. I'm curious, Phil, if you ever saw it and considered using it for your class.

    That age range is also old enough that I would think they might be capable of handling something as complex as CLion or Eclipse.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-11-23 20:39
    Heater. wrote: »
    David,
    There is no user-visible complexity involved with using CMM.
    Sure there is. You have to choose between LMM, CMM, or XMM.
    SimpleIDE defaults to CMM. You have to make a choice to use anything else.
    Who knows what they are at first glance? It would be fine if one or other of LMM or CMM was the target of the compiler and that's it.
    In fact, you could argue that the Spin bytecodes are comparable to CMM.
    Yes indeed, I have no problem with that idea. So let's keep prop-gcc simple, at least as presented in SimpleIDE, and use CMM only.
    ...if C/C++ on the Prop is not for normal people then I guess it's not for anyone since Parallax recommends Spin for advanced users.
    I really don't know what to make of that statement. Sounds nuts to me.
    This was just a response to your statement: "Bottom line for me is that C/C++ on the Prop is not for normal people to use."
    C/C++ is used everyday by "normal people". On their Arduinos. Most of them don't even know they are using C++. Last time I checked the Arduino documentation refrained from mentioning "C++"" or trying to document it's massive feature set. Very wise.

    On the other hand, my impression is that Chip designed the Prop and Spin and the Prop Tool, together, to be ultra simple, for those new to programming and micros, in the spirit of the old BASIC machines. Certainly not "advanced" users.
  • potatoheadpotatohead Posts: 10,261
    edited 2015-11-23 21:46
    Indeed.

    I see the difficulty of C on the P1 as a matter of scale more than anything else.

    The quick look we got at C on the more roomy and faster P2 was favorable. I believe there will be a lot more C development on P2, for size and speed reasons.

    As for learning, I agree with Phil. C requires a person to track and know more to get things done. The Arduino people saw that and packaged up a lot of things to marginalize the impact.

    This is not a critique of C. Those things are there for good reasons. But, people need to walk before they run. Take those visual CAD type students. Programming is difficult for many of them, and the leaner the programming is, the more focus they can apply to their goals.

    According to our many discussions here, SPIN is actually missing a lot of advanced features! But, what it does have is easy and lean.

    Let me share an observation:

    A guy here in Portland made a compiled BASIC for the old Atari 2600. That machine is one of the hardest things there is to program on. It has 128 bytes of RAM, 4K of assembly language ROM code space, no interrupts, no frame buffer and a near completely software display.

    Making it do something is a rite of passage of sorts.

    That compiled BASIC offered inline assembly super easy, and a standard and small set of features. It didn't do much, but what it did was fast and easy.

    Something interesting happened. More new game programs were created by people in the couple years after that basic was released than we saw from everyone over the 20 years prior!

    Many of those people knew next to nothing about peogramming, yet there they were writing programs and even short assembly language sequences! They share them as snippets, no less! Multiply by 7 kinds of things.

    C isn't really possible, or it is, but silly, and it's due to the size. Assembly language is the best, but a compiled BASIC is the second best!

    The guy who wrote it did exactly what Chip did with SPIN. Stripped out all the stuff, until there was enough to do fun things without also doing a lot of work, or where there is work, it is obvious work.

    P1 suffers from this, IMHO. It is really hard to trump SPIN for maximizing a Propeller, and I mean SPIN plus PASM, because they are one thing. Baggers put a level of WOLF3D on a Prop in SPIN plus PASM. It's packed to the gills!

    Doing that in C is likely possible, but I submit a lot more work really knowing C as much as it is the task. It's harder due to that. Many people doing this take the easy path be a use they want something to happen as much or often more than they want to learn about a language to make it happen.

    We are seeing C libraries very highly optimized for P1, and that is a lot of work to do, and in particular, mor work generally than a PASM or SPIN object is, and it often takes more space than PASM and SPIN objects do too. Improve that on P1 and it would help. On P2 it won't matter in the same way.

    Now, back to that BASIC. Some of those guys are now writing advanced programs. They got started and are now programmers. Phil is right about this. Walk, then run, and walk however makes the best sense. One of them was a kid, who is now pretty damn good at assembly language, among other things. He wanted to make a PONG game to get started.

    C isn't always a best fit in this way.

    Now, on P2, there is room, inline PASM will make sense due to direct hub execute, and meaningful libraries will fit. There is more room to abstract the hard bits away Arduino style too.

    SPIN will still rock hard, and that will still be due to its unified nature with PASM, and it's simple, lean expressions and lack of too many complicated options too.

    Given the better match, C should prove far more useful and practical because it's a better fit than it currently is on P1.

    Re: Heavy hitters

    Well, I did a lot on P1 for fun. SPIN is fun. At present, C is work. SPIN is easier most of the time too. I like easy.

    Frankly, I am most likely to write PASM and inline it with some SPIN where it makes sense. Doing that will be super easy and lean in SPIN.

    That is where the fun is.

    I also see a lot of fun looking C code I might want to see on the P2. Could be fun. We shall see.

    Lamenting about how C doesn't get the attention isn't on any of us having fun. I'd there us no fun, we won't be here, and there will be no code. And the fun is something code gets us to. Code itself may be fun too, but often it is just something one does to have the fun too.

    This is why easy attracts people. They see a lean, effective path to their goal.

    No, it's on those who love C to put it out there and make contributions same as anyone does.

    Think center of gravity. SPIN is one center of gravity, and the mass is the body of code out there to draw from, and the people there to draw from.

    When C gets those, it too will be a center of gravity and I suspect will do just fine.

    I think that means evaluating what is worth what too. If C gets simplified like the Arduino people did, then more people will attempt it. That won't necessarily help them write more pure or proper C, but it will get them writing programs in a C like syntax.

    And that contributes to the center of gravity.

    Is doing that worth it? I don't know.

    Put another way, Chip took what he thought was fun about programming and electronics and put it into the Prop, SPIN and PASM. That is happening again on P2, and it will be fun, because that is actually a goal for the P2, same as it was the P1.

    Do you think C is fun?

    Share that. Others will catch the fever and guess what? C will then be fun. Package up the fun and do the work to put that fun front and center so people can see it and do it easily.

    Simple as that.

    As an example, I think assembly is fun. That is where the bits are. It is also where the signaks, modes, and other basic things are. I write about that, I help people do that, and I share doing that and the product of that. Video displays are fun too.

    Long ago, an assembly language programmer did that for me. He shared the fun, and yes a 6502, Z80, 6809, etc... are pretty fun. So is a P1 or P2.

    So, when we get C on the P2, make some fun things people can play with and build on. Share the fun, and there will be more fun, and by extension, more C.
  • Heater.Heater. Posts: 21,230
    DavidZemon,
    I've yet to find an example of an IDE that provides both the simplicity of Arduino/SimpleIDE and the code inspections of any "real" IDE
    I've come to the conclusion that if you want to introduce someone to programming the last thing you want is a huge and complex IDE with a ton of features and options. Beginners have no idea about the issues that a real IDE is there to help with. Beginners need simple installation, simple interactivity, type code and go! Beginners need nothing unexpected to happen.

    That is why the Arduino is a hit. That is why the Prop Tool is a hit, as PhiPi says above. That is why those old 8 bitters with their BASIC and later Visual BASIC were hits.

    Heck, I'm still finding VIM with its syntax highlighting and bracket matching a match for any IDE. Sadly VIM does not have a beginner friendly keyboard command interface :(

    By the way Phill, you can tell the Spin detractors that Spin is not a "proprietary language". It is as open as any other, the openspin reference implementation is on github and there have been other implementations, HomeSpun, BST.

  • Heater. wrote: »
    By the way Phill, you can tell the Spin detractors that Spin is not a "proprietary language". It is as open as any other, the openspin reference implementation is on github and there have been other implementations, HomeSpun, BST.
    You might even be able to use spin2cpp to create C++ code from Spin that would run on something other than a Propeller. However, all of the hardware interfacing would have to be rewritten and that is probably 90% of any Spin application.

  • Wrote that on mobile. I'll make edits later.
  • Heater.Heater. Posts: 21,230
    David,
    ...might even be able to use spin2cpp to create C++ code from Spin that would run on something other than a Propeller.
    How is that going to handle an PASM that is an intrinsic part of any Spin program?


  • Heater. wrote: »
    David,
    ...might even be able to use spin2cpp to create C++ code from Spin that would run on something other than a Propeller.
    How is that going to handle an PASM that is an intrinsic part of any Spin program?

    It won't. However, some Spin programs don't use PASM. Anyway, it's unlikely that Spin will find much of a following beyond the Propeller. I was just saying it isn't *necessarily* bound to the Propeller. One could, for example, create an inline assembler for some other processor and put that code in DAT sections. I find it hard to believe anyone will do that though.
  • Heater. wrote: »
    DavidZemon,
    I've yet to find an example of an IDE that provides both the simplicity of Arduino/SimpleIDE and the code inspections of any "real" IDE
    I've come to the conclusion that if you want to introduce someone to programming the last thing you want is a huge and complex IDE with a ton of features and options. Beginners have no idea about the issues that a real IDE is there to help with. Beginners need simple installation, simple interactivity, type code and go! Beginners need nothing unexpected to happen.

    That is why the Arduino is a hit. That is why the Prop Tool is a hit, as PhiPi says above. That is why those old 8 bitters with their BASIC and later Visual BASIC were hits.

    Heck, I'm still finding VIM with its syntax highlighting and bracket matching a match for any IDE. Sadly VIM does not have a beginner friendly keyboard command interface :(

    By the way Phill, you can tell the Spin detractors that Spin is not a "proprietary language". It is as open as any other, the openspin reference implementation is on github and there have been other implementations, HomeSpun, BST.

    I still don't understand why they can't offer the basics, like a red squigly for syntax errors (mis-matched braces and missing semicolons would be the easiest). That would take care of 90% of bugs that trip up newbies.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2015-11-23 21:50
    David Betz wrote: »
    Heater. wrote: »
    I also think C/C++ is not a good idea on the Prop.
    And here I think is the problem. This seems to be the opinion of the majority of seasoned Propeller users here.

    It does seem that way, and it's too bad. My experience using SimpleIDE / gcc to code the new flight controller has actually been really good. The CMM compiled code is only marginally bigger than Spin, but significantly faster, and there are things you can do in C/C++ that are *really* hard in Spin, like objects / functions shared all over the code, conditional compilation (#ifdef), unused code pruning, and so on.

    C/C++ is actually very good on the Prop. I agree that the documentation needs to be better, and it'd be nice if there were more advanced examples available, but SimpleIDE and C/C++ on the Prop are good.

    I think a big part of the issue for normal users right now would be the lack of objects, particularly the ones people are used to. (video out, for example). As more of the most used objects in Spin/PASM get ported to C/C++ (which hopefully happens) it'll get more and more useful, easier to get started with, and less prone to "why not just use Spin?"
Sign In or Register to comment.