Shop OBEX P1 Docs P2 Docs Learn Events
How would you describe Spin as a language? - Page 5 — Parallax Forums

How would you describe Spin as a language?

1235789

Comments

  • Dave HeinDave Hein Posts: 6,347
    edited 2011-03-12 06:39
    Spin is the product of both love and hate.

    Some loves:

    1) Terse, but obvious, coding syntax - so it's easy to learn, write, and read.

    2) Keeping binary phenomena unobscured - it's the way that computers really work and pretending otherwise leads to trouble.

    3) IF, CASE, REPEAT - do you really need anything else?

    4) \method and ABORT - all that is needed to pop you out of deep holes.

    5) Encapsulation of code & variable modules - made especially useful in multi-processing.

    6) Functional documentation embedded in source code, being instantly extractable.


    Some hates:

    1) VARIABLE TYPES - they've presented nothing but headaches to me in other languages, never an advantage, and never "safety", just fun-killing rigidness that often requires digging to get around. I think being taught to program within the myriad of strictures presented by typed languages is a sure way to build blockages to true understanding of computing in a person. The only meaningful delineation I see is between bit-lengths (with some particular length being perfect for pointers, which can, incidentally, point to z-strings). Everything else would come at the expense of subtle expression syntax rules for each class of type. No thanks!!!!! A float type may be a worthy exception. Structure support would be a useful addition to Spin, for sure.

    2) TYPING ANYTHING TWICE - header files and function prototypes are unnecessary, redundant drains that kill the joy of programming. Imagine having a hobby, but then remembering that before you engage in it, you must fill out government paperwork on each occassion. No way.

    3) "Properties" getting squirreled away in oft-HIDDEN MENUS, particulary within flaky IDEs. I'll take a source code file any day.

    4) HIDDEN LIBRARIES of possibly rotten code. You should be able to see what's going into your project, and this is often necessary, anyway. Programming Windows can be like trying to build a jet engine from parts you buy at WalMart.
    I think Chip's comments from more than a year ago provide insight into the design goals for the Spin language. I agree with his list of loves, but this could have been done in other existing languages, such as C. I disagree with almost all of his hates. Variable types help to keep novice programmers and experienced programmers out of trouble. With variable types, the compiler can catch programming errors before the program is run. The compiler could allow programmers to turn off various levels of warnings if they want to disable type checking.

    Header files are useful, and many people have asked for this to added to the Prop tool. Function prototypes are useful, but many C compilers will compile code without them, but with warnings. The warnings could be disabled for programmers that don't like them.

    I agree that I don't like properties files, such as resource files. These are mostly related to GUI programs.

    Hidden libraries have good aspects and bad. If an object is written and documented well I really don't need to change the source for it. However, there are times when the object does need to be changed. This is more of an IDE and linking feature than a feature of the language.

    In my opinion, the C language could provide everything that Chip loves about Spin, and his hates could have been handled by controlling the compiler and IDE options.

    Some people argue that Spin is easier for novices to learn. I would argue that PropBasic is a better language for novices. There could be a mode that compiles to Spin bytecodes. C would be a better language for more experienced programmers. Parallax has stated that they have educational customers that require the C language on the Propeller. They intend to develop a C-to-Spin converter. Even though Parallax did a great job in developing the Spin language, in retrospect, creating a new Spin language may have been an unnecessary complication.
  • AriAri Posts: 63
    edited 2011-03-12 16:14
    DavidM wrote: »
    hey Ari, Smile off, mate!

    Your last post is totally offensive ! I am holding back my REAL Reply!


    are you kidding? I spell out some plain realities of the propeller and SPIN, in a logical and professional manner and you come back at me with this? WOW!! David, don't ever respond to any of my comments again, as you are clearly not a mature person who can deal with reality. Honestly waste your time if you like, but you will be completely ignored.....

    I pointed out some very valid problems with SPIN, and the OP is asking for an opinion and I gave mine....and because you have a problem with it you turn into a child? good luck with your efforts David....I think you need it, you have an anger management problem and your behavior is less than professional

    "Mate!"
  • AriAri Posts: 63
    edited 2011-03-12 16:20
    JasonDorie wrote: »
    My dad could beat up your dad!! Seriously, it amazes me how quickly these discussions turn into philosophical fist fights.

    I for one hated Spin early on, but have gotten used to it. I come from a C++ & C# background, and a number of the operators in Spin do completely different things than those same operators in C++. Not a design choice I would've made, but who's to say it's "wrong"? It takes some getting used to, but a good programmer can adapt to a new language fairly quickly.

    I will agree that a C like compiler that produced Spin byte code (if such a thing is even possible) would probably encourage more professionals to look at the Prop, but I also think that the architecture of the Prop is fairly unique, and Spin produces compact code that is well suited to that architecture. If those professionals were a little more open minded, they might find the Prop to be quite elegant. I love the fact that there are no interrupts, and that I have a fully configurable set of peripherals to work with, instead of 40 variants of the same chip. It comes with some quirks. What doesn't?

    Given the price point and memory restrictions of the Prop, it's going to be a bit of a niche chip in the commercial world anyway.


    I actually think the prop is superior for the reasons you point out. From a hardware standpoint it is a very nice MCU. Still the problem remains....NO detailed schematic or electrical specs. are available and the failure to ingest industry standard objects makes it nearly impossible for an established development team to build their existing applications on...

    I really wish those points weren't true....I love the fact that prop does away with interrupts, and the onboard "video" (as limited as it is)....but the reality is that prop and SPIN are closed source and proprietary....that can't work in the professional environment

    when I say professional I can't count small teams building short run niche devices.....when I think professional MCU, I think of something that makes it's way into a consumer product line, that is widely available for retail distribution....I don't know why that notion would offend anyone....as it's not meant to be offensive.....it's just a fact

    I would tend to think by your comments you agree on some of my issues with SPIN and the prop....

    if I didn't love the prop I wouldn't be on this forum....or spending my time to discuss it
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 16:26
    Seems to me, if one is working on a standards based team, there is no real need for highly differentiated technology.

    Just a counter point to the one made above, nothing personal intended.

    The Propeller isn't standard issue. That is what makes it a Propeller, and not some other more ordinary CPU. Is there any wonder the programming tools are not off the shelf standard? Of course not.

    Now, what has happened over the last coupla years is the development of more standard tools that have been bootstrapped onto the chip. This simply was not possible at release.

    Why?

    Because the propeller was not similar enough to other designs to make such a effort practical, nor was it possible to do it in any performance oriented way.

    That had to be learned and adapted over time.

    Now, today, we've got that stuff and it's starting to come together very nicely. Going forward, it's increasingly possible to use the Propeller in tandem with more "standard" (read majority share) tool chains and hardware. That's a good thing.

    At the end of the day though, no matter how much of this is done, a Propeller is still very different from a PIC, or AVR, and those differences can and will have significant implications on the code approach used to best utilize the hardware to it's potential.

    It's not really possible to do both, or we would not have the boot strapping problem we did on this chip. That is the core reality with highly differentiated technology. It always has been, and always will be.


    So then, somebody out there looking for some way to compete in a niche would be well advised to look the Propeller over. Again, Why? Because it's differentiated, that's why!

    Where it will fit, it's going to fit well, and the attributes of it that differentiate it, are the same attributes that will enhance the business of competing in that niche.

    I've seen this play out many, many times in different industries and at different levels. It's always the same, and this one is no different in that regard.

    Edit: And I'm not attempting to marginalize any design team, group, person. I am highlighting a core technology use case dynamic that's important to consider in this discussion. That is all.
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 16:36
    This is significant to the discussion:

    when I say professional I can't count small teams building short run niche devices

    That's the issue here, and for what it's worth, whether or not some development effort, or person is "professional" has absolutely nothing to do with the overall share and scope of the deployed design product.

    There are "professionals", who build a lot of one offs, or small runs, and there are professionals who build things that see millions of deployments.

    Each scope has it's own issues, and that's where a lot of the friction is in these discussions, IMHO.

    The smaller deployment scale efforts can seriously benefit from the Propeller attributes. I know design teams that produce automations that solve expensive problems, and that might see only one deployment, and the set of skills required for that are very diverse, if one is to compete well. Rapid time to deployment and robustness seriously matter in that space. Propellers have advantages there. Serious ones.

    Some of those problems are six figure problems, if not more, and the people with the skill sets required to realize solutions to them would self-identify as "professionals", just as easily as those who work in the consumer product space do, and both would be right about it.

    Consumer products is a completely different space!

    IMHO, it's simply not productive at all to make comparisons on those metrics, because they do not speak to the matter at hand in a way that will yield meaningful conclusions, without devaluing some parties.
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 16:53
    Given we have the detail spec for SPIN, in the form of the published interpreter, how exactly is that closed source?

    It's not like somebody can't make their own SPIN tool now. The fact that it hasn't been done is a different matter from the fact that it could be done.

    The primary attribute of open source is being able to understand what the code does completely. This is possible for SPIN, period. If needed, it's possible to take that code, break it down fully, and replace it with other code and hardware. The only real discussion is effort required, not that it can't be done.

    It's not like there are a lot of secrets here, just levels of effort.

    I don't see anything really closed about it. The current tools are closed, for the most part, but there isn't really anything preventing the development of open ones. About the only real issue we've got is the current, established open ones are difficult to use, because the chip is differentiated.

    Now, all those open tools we do have were built because people wanted open tools, and once that all got boot strapped onto most tech solutions, the use value went way up, and so did the product of development, and here we are today with a lot of open tools, able to utilize a lot of open tech.

    At some point in the past, those tools all started about where we are with this chip right now. Because it's different enough to matter, that cycle needs to happen again, and I would argue, is happening right now, and it's happening as people find they need to scratch that itch, same as it happened for every other open thing.

    So, that's open. I'm sorry, but just because the stuff isn't all built up, is a different matter from whether or not it can be built up, and it can.
  • AriAri Posts: 63
    edited 2011-03-12 16:55
    potatohead wrote: »
    Seems to me, if one is working on a standards based team, there is no real need for highly differentiated technology.

    Just a counter point to the one made above, nothing personal intended.

    The Propeller isn't standard issue. That is what makes it a Propeller, and not some other more ordinary CPU. Is there any wonder the programming tools are not off the shelf standard? Of course not.

    Now, what has happened over the last coupla years is the development of more standard tools that have been bootstrapped onto the chip. This simply was not possible at release.

    Why?

    Because the propeller was not similar enough to other designs to make such a effort practical, nor was it possible to do it in any performance oriented way.

    That had to be learned and adapted over time.

    Now, today, we've got that stuff and it's starting to come together very nicely. Going forward, it's increasingly possible to use the Propeller in tandem with more "standard" (read majority share) tool chains and hardware. That's a good thing.

    At the end of the day though, no matter how much of this is done, a Propeller is still very different from a PIC, or AVR, and those differences can and will have significant implications on the code approach used to best utilize the hardware to it's potential.

    It's not really possible to do both, or we would not have the boot strapping problem we did on this chip. That is the core reality with highly differentiated technology. It always has been, and always will be.


    So then, somebody out there looking for some way to compete in a niche would be well advised to look the Propeller over. Again, Why? Because it's differentiated, that's why!

    Where it will fit, it's going to fit well, and the attributes of it that differentiate it, are the same attributes that will enhance the business of competing in that niche.

    I've seen this play out many, many times in different industries and at different levels. It's always the same, and this one is no different in that regard.

    Edit: And I'm not attempting to marginalize any design team, group, person. I am highlighting a core technology use case dynamic that's important to consider in this discussion. That is all.


    agree with you 100%......I hope that I articulated that in my earlier post....

    Prop is without a doubt a nice MCU....possibly the best one out there.....it's real flaw is just the lack of object ingestation and a full schematic....

    If the Prop. could utilize Java and or C objects....and a full schematic was made available....I think it could go toe to toe with anything on the market, and I see no reason why large development teams couldn't pick it up....

    Let's hope that parallax addresses these issues....at the same time...I don't know that mass market adoption is one of Parallax's goals....nor do I think they have the current resources to produce market scale at market cost....

    I will try to outline a few issues

    1. no schematic
    2. no open source object ingestation
    3. lack of resources to bring the Prop down in cost and ramp up production

    It is my opinion (as everything else I have stated) that if these items could be addressed then Prop is one of the "best" MCU's offered

    I don't see 3rd party solutions (catalina etc...) as really being the same thing as a legit. compiler/debugger. I do also understand the memory limitations and the reasons why adaptations reduce performance in such a dramatic way....it is part of the architectural nature of Prop.

    I guess what i am getting at all along, is that I can't ingest with SPIN, from existing source....and that is why my opinion is that it's a problematic language (as any proprietary language is)

    Maybe my use of the phrase "not a professional tool" is a bit harsh.....but we do live in an industry that demands standards and I haven't seen the mass market adoption of SPIN (not because it's a poor language, I actually think it's a great language)

    On the same token, why has the arduino seen so much success? It's honestly old technology and totally outclassed by Prop hardware.....one key factor Java

    Go ask any college level student what languages they know....I promise you the majority will list Java first (then maybe C or python, which is the starter language in MIT's computer science course)

    I am trying hard to just present fact to back up my opinion....there is no winner or loser here, just reality....reality still hasn't given me a way to call objects written outside of SPIN

    reality does give me a way to implement nearly any existing code into Java, or better yet NET framework.....this stuff is very critical when you start dealing with communication with the outside world (tcp/ip stacks)

    no matter how niche a device is, at some point someone will want to network it.....using existing/available stacks (thank Sun and Microsoft for making those available to us)

    I don't think marginalization of anything in the computing industry is out of line....it is a daily happening....we deal with logical solutions (at least some of us do)....and logic dictates that you shouldn't have to spare someones feelings to tell them the truth or reality of a matter.....that's binary in a nutshell.....it is or it isn't

    all opinions are relevant (up to the point of name calling and temper tantrums....)
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 17:01
    Please detail what you mean by "full schematic", and link me to a solid example of such from another manufacturer.

    "If it could just use C or Java"...

    Well, I think Java is off the table for matters of scale. Get a bigger CPU for that, or wait on Prop II, which will be at a scale where Java makes sense.

    As for C, we can do that with Catalina.

    Again, where a lot of those "standard objects" break down is either:

    They require more resources than the propeller offers, without significant add on hardware effort

    , or

    They make assumptions as to how the CPU running them really does things.
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 17:06
    I don't see 3rd party solutions (catalina etc...) as really being the same thing as a legit. compiler/debugger.

    Why not?

    And what is "legit"?

    Is it simply, "works like other tools you already know", or are there some specific criteria you can assign to a "legit" debugger?
  • DavidMDavidM Posts: 630
    edited 2011-03-12 17:12

    Ari said..

    "when I say professional I can't count small teams building short run niche devices"
    "you have an anger management problem and your behavior is less than professional"
    " It utterly fails as a professional solution though"
    "I have abandoned the Propeller as anything other than a fun toy to play with"
    "I have more options from an archaic 8bit PIC than the Propeller. "
    "it's a toy and best suited to small operations"
    "you are clearly not a mature person who can deal with reality"


    You've been here for 5 minutes and you think own the place, Your comments have a "tone" of Superiority and Eliteness , I think its time you actually start working with the prop and in few months , then tell us about your experience,

    Dave M
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 17:21
    "I guess what i am getting at all along, is that I can't ingest with SPIN, from existing source....and that is why my opinion is that it's a problematic language (as any proprietary language is)"

    Well, this seems to me a case of wanting to leverage the technical advantages the Propeller has, while wishing it was "more like" less differentiated and larger scale solutions.

    If you write your code, this chip can do a lot, and it can do it in ways that is very highly likely to differ from those "standard" open source objects.

    On the other hand, if you are wanting to assemble code bodies, writing only a framework to weave them together, the Propeller isn't going to work well for you, if your intent is to just take the same old code written for what is largely same old CPUs, and expect to get the technical advantages of the Propeller, off of code that was not written with those advantages in mind.

    Then again, a trip through the object exchange shows off a lot of code that does a lot of great things. Mixing and matching that code on a Propeller, using it's tools, is often not difficult at all, and highly productive.

    (that again, is where highly differentiated technology doesn't always mesh well with existing code, and the core dynamic I mentioned above)

    What it all comes down to then is whether or not the hardware attributes are worth learning to use. Either they are, or they aren't, and a whole lot of your argument comes down to wishing the Propeller was a lot more like other hardware, but somehow still a Propeller.

    ?!?
  • ctwardellctwardell Posts: 1,716
    edited 2011-03-12 17:23
    I'm selling popcorn if anyone is interested... :-)
  • AriAri Posts: 63
    edited 2011-03-12 17:24
    potatohead wrote: »
    Please detail what you mean by "full schematic", and link me to a solid example of such from another manufacturer.

    "If it could just use C or Java"...

    Well, I think Java is off the table for matters of scale. Get a bigger CPU for that, or wait on Prop II, which will be at a scale where Java makes sense.

    As for C, we can do that with Catalina.

    Again, where a lot of those "standard objects" break down is either:

    They require more resources than the propeller offers, without significant add on hardware effort

    , or

    They make assumptions as to how the CPU running them really does things.

    almost every other solution on market has a full on die schematic in their data sheet.....prop is one of the few IC's I have seen w/o one

    I would have no problem with a "significant" add on sub-system....they are extremely easy to implement (at least in my opinion)

    All of your points are valid, but they do not change the fact, that these items are NOT available in a reasonable package....

    All the issue of cost....most 3rd. party solutions for SPIN/prop cost money.....that is not the case on the other side of the fence....

    Also I did like your mention of the Prop interpreter publication....is it available under the GNU license (or similar)? If it is I am unaware of that, and that is my own ignorance.....it still does not change the fact, you are stating possibilities....not usable realities...everything you mention can be done.....yet it is not available and if it is it is less than it's free counterpart
  • AriAri Posts: 63
    edited 2011-03-12 17:26
    potatohead wrote: »
    I don't see 3rd party solutions (catalina etc...) as really being the same thing as a legit. compiler/debugger.

    Why not?

    And what is "legit"?

    Is it simply, "works like other tools you already know", or are there some specific criteria you can assign to a "legit" debugger?

    by that I mean something that is on par with it's counterpart....in terms of performance and cost.....we all know none of these tools are out there....it has been "proven" with benchmarks
  • Martin_HMartin_H Posts: 4,051
    edited 2011-03-12 17:44
    What I have I done by reviving this thread?!
  • AriAri Posts: 63
    edited 2011-03-12 17:44
    potatohead wrote: »
    "I guess what i am getting at all along, is that I can't ingest with SPIN, from existing source....and that is why my opinion is that it's a problematic language (as any proprietary language is)"

    Well, this seems to me a case of wanting to leverage the technical advantages the Propeller has, while wishing it was "more like" less differentiated and larger scale solutions.

    If you write your code, this chip can do a lot, and it can do it in ways that is very highly likely to differ from those "standard" open source objects.

    On the other hand, if you are wanting to assemble code bodies, writing only a framework to weave them together, the Propeller isn't going to work well for you, if your intent is to just take the same old code written for what is largely same old CPUs, and expect to get the technical advantages of the Propeller, off of code that was not written with those advantages in mind.

    Then again, a trip through the object exchange shows off a lot of code that does a lot of great things. Mixing and matching that code on a Propeller, using it's tools, is often not difficult at all, and highly productive.

    (that again, is where highly differentiated technology doesn't always mesh well with existing code, and the core dynamic I mentioned above)

    What it all comes down to then is whether or not the hardware attributes are worth learning to use. Either they are, or they aren't, and a whole lot of your argument comes down to wishing the Propeller was a lot more like other hardware, but somehow still a Propeller.

    ?!?


    the original topic asked for an opinion on SPIN...I gave mine....I am not sure why so many people feel the need to defend something that hasn't been infringed upon....

    so what you are saying is that you think it's acceptable for a design firm, with products in the market....to completely re-write their code base from scratch? I don't gather you are. I think you are re-enforcing the fact that SPIN is suited to small niche production....and the term professional is semantics.....fine you can have that....maybe my use of the term is loose and unjustified.....but the description of my concerns and qualms (which again are opinions, as the OP asked) is valid and built up by your responses....

    I hate to add fuel to the fire or further marginalize the Parallax products (as I own MANY of them) but if you go shopping at your local Fry's or Radio Shack, the prop and stamp and kits and accessories are in the toy section....yes I am serious....I actually logged a complaint with the local Fry's department manager over that....his response was "corporate considers them toys" ....

    Like I said it seems like this is now a debate of ideology and not present day reality and fact....the facts I spelled out remain true....they have only been rebuked by wishful thinking....sure anything is possible....but possibility doesn't make something tangible....I don't know why some people hold so dearly to their ideals....even when blind reality stares them in the face....

    Let's hope Prop 2 makes a better effort at addressing some of these issues.....as I know I am certainly not the only one with these concerns.....most people who have these same concerns of mine don't even consider the Prop or SPIN, or quickly turn their back on it.....the fact that i am here, posing logical debate and my opinion about something that I have spent the time to learn and use (DavidM is dead wrong about my experiences) should show how badly I want SPIN and prop to grow and ultimately suit MY design needs, and the needs of larger efforts....

    sorry for having to cut this short....dinner time....I promise I will come back and continue the discussion....as long as there is a reciprocation of respect for my opinions (as I assure you I respect yours)
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 17:46
    Again, please link me to one such schematic you consider solid. Go ahead. It's not hard, and I have some follow on questions for you after we've seen that.

    Please also detail which performance metrics differentiate a "legit" debugger, and highlight how they are necessary, given how the Propeller works technically.

    (passes empty bowl to ctwardell)

    BTW: I just demonstrated the Propeller is open. SPIN is fully and completely documented in that we have the source to the interpreter embedded on chip. The fact that there are not the tools you prefer is a different problem entirely. Seems to me, you've got a itch that needs scratching.

    Sound familiar? It should.

    If you work with the chip for a while, you may well find much of that itch does not require the level of scratching you are presenting here.
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 17:56
    Ahh... Now we are getting somewhere with this:

    "that you think it's acceptable for a design firm, with products in the market....to completely re-write their code base from scratch?"

    Yes, if the technical advantages warrant that. It's done all the time, and it's done in many technology niches. Every adopted technology comes with some investment in data and understanding related to the technology. Over time, this becomes a significant resource, which helps to pay down the diminishing returns any particular technology solution has over time.

    Where new solutions are introduced, part of the cost of adoption is reconsidering and repurposing that investment. Consider some of that code would no longer be needed. Or, perhaps it can be modified with little effort. In some cases, it may need to be rewritten entirely.

    Whether or not that makes sense depends on the technology alignment to the problem set at hand, nothing else. That's a business decision, not ideology.

    It's the same decision for any new technology. A lot of tech is incremental so that those investments can continue to be leveraged. That's not the Propeller. Some technology is highly differentiated, and where that's true, the value of those investments may or may not make sense.

    My core point here is that your opinion of SPIN assumes those investments ALWAYS make sense, and because of that, they are mandatory. Not true. That determination lies with the various adopters of the technology, and how they choose to compete.

    Regarding "holding to ideals"

    Well, I did differentiate "is open" with "has tools", where you equate the two. I also differentiated "professional" from scale, which puts the stuff I wrote into perspective. Finally, I supported the idea that highly differentiated technology won't always mesh with existing tools and other investments.

    That's not holding to ideals, however much you wish it to be true. It's simply stating realities surrounding this fun chip. No harm in that.

    Finally, you have clearly stated your desire for tools more familiar to you. That's entirely fair. However, the supporting reasons you have for those desires are not self-consistent, nor inclusive, which was the point of my posts.
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 18:11
    @Martin: Nothing but provide a little afternoon entertainment, I hope. :)

    I'm in a mood to better understand some of these exceptions. That's really my only motivation for being on the thread.
  • RossHRossH Posts: 5,516
    edited 2011-03-12 18:42
    Ari wrote: »
    by that I mean something that is on par with it's counterpart....in terms of performance and cost.....we all know none of these tools are out there....it has been "proven" with benchmarks

    Hi Ari,

    I have been reading this thread with interest since it got resurrected. I intended to stay out of it since it was supposed to be about Spin (not C) - but I just want to point out that what you said above is not true.

    Regarding performance: Catalina is faster than Spin in all the cases explored so far - often many, many times faster. It may not be the fastest language across every benchmark, since benchmarks can always be constructed that will be more suitable for one language over another (e.g. as has been shown, if you rewrite the fft benchmark algorithm so that it doesn't need to use stack based variables, then you can beat Catalina). But so what?. If speed is your only criteria you can easily beat Spin, Catalina, or any other high-level language for the Propeller by hand-coding in assembly anyway - as is true on any platform.

    Regarding cost: Catalina (like SPIN) is free. If you feel that's too expensive then I'm happy to consider volume discounts. :smile:

    It is often the case in these discussions, that complaints about the Propeller's support (or lack thereof) for various languages are really complaints about the Propeller architecture - it simply doesn't fit preconcieved notions of how a micro should work (only 496 instructions? what's that about!) and therefore getting the most out of it for a particular case is not as straightforward as it might be with some other micros.

    Ross.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-03-12 18:56
    Ari
    .NO detailed schematic or electrical specs. are available and the failure to ingest industry standard objects makes it nearly impossible for an established development team to build their existing applications on...

    The schematics are around - including the demo board which is where I started with my (now version 10) dracblade boards.
    I'm almost certain the electrical specs are somewhere. 3.3V chip, max current 20mA per pin, all pretty standard stuff.
    Industry standard objects. I agree that is very useful. I'm writing in C and everytime I need some code examples, I just type it into Google and up seems to come a wiki page with the code I need. And if the code isn't there, just ask Ross. He is online 24h a day and usually answers questions just before you think of asking them :)

    Spin is a great language but it can't do everything. My little niche is big programs, and for that you need external memory, and Catalina C has compilation switches for internal and external memory. Or use BCX basic which is translated to C.

    If you don't like Basic or C or Spin, check out Humanoido's list of languages - I think he has hundreds now.
  • Mike GreenMike Green Posts: 23,101
    edited 2011-03-12 18:59
    It has been mentioned (incorrectly) that there's no detailed datasheet for the Propeller. I beg to differ. There has been a detailed datasheet for several years. It contains information on the instruction set, a basic description of Spin, electrical specs for the chip, and detailed information on power consumption vs. temperature, supply voltage, and what chip subunits are active. It has packaging and pin out information as well. It's not particularly different in content or format from datasheets for a variety of microprocessors on the market.
  • AriAri Posts: 63
    edited 2011-03-12 21:01
    Since I have neither the time, or the will to argue an ideological front.....and the topic here was to post one's OPINIONS of SPIN (which I have done) and since there is a general contempt from a few gentlemen for my free thought, I can't answer all of these replies on a per basis....

    here is a link to a page with thousands of proper technical data sheets....keyword MCU or PIC or whatever term you think will return any one of numerous offerings from this manufacturer....

    http://www.microchip.com/TechDoc.aspx?type=datasheet

    then compare any one of those data sheets with what parallax has provided for the Propeller chip....not some schematic for a development board....that is irrelevant and once again shows the flaws I am speaking of.....I honestly don't care for most of the solutions for propeller "kit" boards of the like.....again schematics for a PCB are wholly irrelevant to my concerns....I am interested in detailed thresholds and value ranges for the chips characteristics and acceptable deviations.....

    Mike, thanks for the link to that data....it's helpful, but not complete....I would like to see more details on acceptable deviations and electrical characteristics....

    On the issue of languages.....please someone show me a language (c, java, etc etc etc) that runs the same performance characteristics as it's analog.....for example, perhaps Catalina is faster than SPIN (although writing a custom benchmark to suit a offering is hardly valid) but it is certainly not faster than C on most other platforms....and that is all fine and well, I understand that the Prop and SPIN are a deviation from the norm....and nowhere did I ever say i had a problem with that.....all along I have stated that this takes SPIN out of the mass market....also it is closed, as I can't find a general public license for the on chip implementations....

    this is really a debate based on people not liking my opinions, and somehow saying my opinions are wrong....opinions can't be wrong....they are subjective and specific.....I have not stated any factual errors....rather it seems that a few people hold so dearly to the Prop, that they will simply SPIN (pun?) anything negative or deviant from their own opinions.....I honestly have not experienced this on most other forums (except some AVR forums, where the aire is totally unreasonable)....

    If SPIN is so grand and I am so far out of line, explain to me why it has almost unmeasurable market share.....again this is not a stab or point of debate...it's a fact....and it's the basis of everything I have said up to this point....

    1. SPIN is proprietary
    2. SPIN has no ability to adhere to market majority standards
    3. this makes the prop a quirky product, and in my opinion something for academic disciplines and nothing more....(selling a few gadgets based on the prop to the prop community doesn't qualify it)
    4. practically religious following (never have I been told to "Smile OFF MATE" on any other forum, because of my opinions)
    5. those that choose to debate facts seem to have an underlying disdain for my free thought and will ignore 90% of what I have stated, and SPIN the rest (I see why it's called SPIN now)
    6. this is an ideological debate....has little basis in present day reality and benefits NO ONE
    7. I am a SPIN user and prop. owner/developer (certainly not professional, I am an engineer by trade)
    8. I have no desire to be bullied out of my free opinions and thoughts, and will not be....so if you think this approach is winning any kind of support from me....nay

    I basically see an almost universal denial of fact, and if the data that has been given is all that can be given to refute my opinions, then WOW....I see that the Prop/SPIN community is not nearly as liberal or open minded as most other embedded device communities....

    Hope I am wrong about all of this....as I would like to do more development with the prop/SPIN (currently working on an interactive art display....) and I think some of it's capabilities are right in line with what I would like to do (proprietary, closed, one-off implementation).....however, it is still my opinion that it is an academic tool (at best) and very immature (at worst) for the mass market.....

    I actually had hoped to lend an opinion here....not be told that my opinions are wrong....because that is utterly absurd

    especially the "Smile off mate" thing....I had hoped a community of logical thinkers wouldn't go there....

    signing out (unless someone wants to reply with a tone of respect and understanding and talk to me like an adult)....I think the gentleman earlier stated it quite well...."this isn't a my dad can beat up your dad" debate.....this is a topic on an internet forum about a "computer chip"....how absurd for it to dissolve into this....

    *takes a seat by the popcorn bowl*
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 21:25
    I just wanted to understand your exceptions in detail. No contempt here. For what it's worth, my motivation is the relative value of things and how people weigh them.

    Now this:

    "if you work with the chip a little..." was my assumption, based on what you had contributed so far. That was not meant to be diminutive in any way.

    Cheers!
  • RossHRossH Posts: 5,516
    edited 2011-03-12 21:35
    Ari wrote: »
    On the issue of languages.....please someone show me a language (c, java, etc etc etc) that runs the same performance characteristics as it's analog.....
    What do you mean? What analog?
    Ari wrote: »
    for example, perhaps Catalina is faster than SPIN (although writing a custom benchmark to suit a offering is hardly valid) ....
    Catalina has been benchmarked with both Dhystone and Whetstone. These are not "custom benchmarks".
    Ari wrote: »
    ... but it is certainly not faster than C on most other platforms
    What specific platforms are you talking about? It is faster than some, not as fast as others. What else would you expect?
    Ari wrote: »
    this is really a debate based on people not liking my opinions, and somehow saying my opinions are wrong....opinions can't be wrong....they are subjective and specific.....I have not stated any factual errors....
    You are certainly entitled to your opinions, but you have made several factual errors in your posts so far. That's what we're pointing out to you.
    Ari wrote: »
    3. this makes the prop a quirky product, and in my opinion something for academic disciplines and nothing more....(selling a few gadgets based on the prop to the prop community doesn't qualify it)
    DavidM has pointed out that he makes money selling Prop-based products. There are others here as well. It is your opinion that these constitute "a few gadgets". They would probably disagree.
    Ari wrote: »
    4. practically religious following (never have I been told to "Smile OFF MATE" on any other forum, because of my opinions)
    Perhaps you shouldn't go round calling someone else's hard work "a few gadgets" or "small potatoes" and comparing their sales volumes disparagingly to "Toys'R'Us". I think many people here would find that offensive.

    Ross.
  • Mike GreenMike Green Posts: 23,101
    edited 2011-03-12 21:56
    I see Spin as a procedural relatively typeless system programming language related to pre-standard C, BCPL and other early system programming languages. It has some object-oriented features, particularly its use of object-based name spaces, but no inheritance or operator overloading. It's very well matched to the hardware facilities and instruction set. The indenting scheme for statement nesting I think is borrowed from Python.

    I learned programming back in the "golden age" of programming languages, so I'm kind of biased towards creating new and modified languages to fit unique hardware systems and operating systems' features. Languages do need some thought and need to be based on "generally accepted principles", but not slavish devotion to specific rules or conventions that don't necessarily match the underlying systems. Witness the result of any attempt to use standard C I/O libraries for any implementation on a microcontroller with no display or keyboard or other "system console". On the other hand, if you're going to attach a pretty conventional keyboard and display to such a microcontroller and provide a standard library for it, you'd better have some good reasons for not implementing the official standard I/O library calls. I can imagine some good reasons, but you'd need the justifications.
  • DavidMDavidM Posts: 630
    edited 2011-03-12 22:11
    Ari, 4. practically religious following (never have I been told to "Smile OFF MATE" on any other forum, because of my opinions)

    I told you to "Smile off" because YOU WERE "DEMEANING" MY BUSINESS!!!!!!! OF WHICH I HAVE SPENT YEARS BUILDING UP TO THE PRESENT LEVEL! I WORKED MY Smile OFF STARTING OUT WITH NO MONEY, LITTLE ELECTRONICS KNOWLEDGE, NO IDEA HOW TO DESIGN A PCB, NO TOOLS, NO SOFTWARE, NOT EVEN ANY CUSTOMERS. SO I BOUGHT A PROP DEVELOPMENT KIT, STARTED READING FORUMS BUYING BOOKS, LEARNING, ASKING LOTS OF QUESTIONS, TRYING OUT THINGS AND EVENTUALLY I AM AT THE STAGE NOW WERE I AM RUNNING A SUCCESSFUL BUSINESS, THE ONLY THING I KNEW WAS SOME PROGRAMMING ( REALBASIC, 4D, ETC),

    We have sold to nearly all potential customers here in Australia, and next want to market to the rest of the world, in fact I was going to post a "User Success story" for parallax to inspire others, But I hate to say I don't want my competition to know what kind of processor I am using.

    Then you come in here bagging out the prop, my business and other opnions when you know very little about the prop. Who wants to spend ages working with other peoples code and "make it fit", when you can have more fun developing your own. Before I purchased the prop development board I read through the manual on the spin programming language and discovered a lot of similarities with realbasic and 4D, ( i did not want to learn Assembly or some other "Curley bracket" intensive language. SPIN was easy to learn.

    I am sorry for shouting ( admins), but Ari, you just don't get it! I can tell you now, I AM NOT IN THE TOY BUSINESS!


    Dave M
  • AriAri Posts: 63
    edited 2011-03-12 22:23
    potatohead wrote: »
    I just wanted to understand your exceptions in detail. No contempt here. For what it's worth, my motivation is the relative value of things and how people weigh them.

    Now this:

    "if you work with the chip a little..." was my assumption, based on what you had contributed so far. That was not meant to be diminutive in any way.

    Cheers!


    Well thanks for that....I assure you I am not slinging anything in your direction....

    Let me give you some background on my Prop/SPIN experience....I am most certainly a SPIN neophyte....would never claim to be more....I am, however VERY well versed in hardware (especially clocking and Voltage references)....I am attempting to gather data on the prop (and SPIN, since they are married) to determine it's validity for my needs....this does not assume that my needs are superior or in any way "innovative"....but to design platforms to fit my needs (must be very very small and low power) I MUST have accurate electrical specifications (such as acceptable deviation in vREF and i/o function)...this is to determine how many sub systems will be needed for my effort....

    much to my dismay, I can't find this data....and I can't find any efficient way to compile common objects into SPIN (not denying that there are ways)....i thought this would be a good topic to bring up some of these issues, as it was a topic asking for opinions....I had hoped that my opinions would be heard in a defenseless manner and some information would be returned....this is the basis of my opinions and I try to present some facts that lead me to my opinions (did you look at the vastness of PIC specifications available in my link?)

    so you may ask...."well what is your problem Ari, the prop isn't for you"....and that may be wholly valid....but I have enough respect for Parallax as a company (big fan of their business model, and they seem like great people) to investigate their offerings (i have been a stamp fan for a long time)....even though most of my peers have laughed at my notion of using the prop. (it is generally regarded poorly by the elitist crowd)....I would like to think I am giving prop/spin a fair chance here, and simply reporting my findings (never claimed to be anything other than a SPIN neophyte)...

    there is validity in the advice "work with SPIN more"....and that is not taken lightly (on my part), but it's hard to work with something that you can't even use your existing object base with, and even more maddening to try to build a physical topology from trial and error (I am used to getting my design right the first time, based on specifications and simple math)

    my needs are very tight voltage regulation and the ability to implement energy conservation/harvesting....I have tried almost all of the pre-fab protoboards (etc...). The voltage regulation is poor (at best)....the efficiencies are truly pathetic....9v to see 5v out? where are the switching regulators? where are the LDO's (at the very least)....

    this leaves me with the trouble of building my own platform....and power supply, and clock (all of which I am comfortable with, and actually excited by)....but the total lack of schematic (that is acceptable for me to work from) is daunting....props aren't exactly cheap....I can't afford to blow them out to find their limitations....already killed one and a prop plug trying to find a hard limit....

    ok so once again, then why even bother with the prop, why not just get a cheap PIC and slam it with 12v.....because I am trying to be fair to the prop/SPIN and give it a chance....I like the fact that Parallax is a company based on a few individuals living their dreams.....I am equally the dreamer....the lack of some basic data is making it difficult for me though....

    ok so what does this have to do with SPIN....well you can't talk about SPIN w/o talking about prop. they are one. Not sure I like that. Hence my complaints and opinions.

    As I said before, I am a logical thinker....so taking a leap into SPIN is new territory for me....as I see it as a somewhat illogical deviation from an industry that relies on standards.....

    I want to love the prop/SPIN, really I do....help me see the light....or tell me I am never going to be happy.....but in either event "Smile off mate" just won't do....I highly doubt anyone here would say that to anyone else face to face....I know I certainly wouldn't....it's just rude....please don't approach me that way, as it does nothing to help grow the SPIN/prop user base (i mean I could just throw the prop in the trash can and go buy a pic and use my existing objects)....

    man talk about off topic....like I said....not here for that....here to learn and contribute (don't assume I am worthless)....and my opinions on SPIN stand....as far as I can tell the prop and SPIN are (dare I say it) "hobby" "toys".....yeah i know it's ugly....but it's really hard to see it any other way....especially when you are diverted to the "toy" section of Fry's electronics to find the products, while their PIC counterparts are stocked in components.....ughhhh

    take it or leave it I guess....
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-03-12 22:31
    Dave,

    I'm somewhat sympathetic to your critique of the Propeller datasheet. There are, indeed, some gaps, particularly regarding I/O timings (e.g. setup and hold times relative to the system clock). Moreover, Kuroneko has identified some timing anomalies and discrepancies that should also be corrected/included in the datasheet. As to a schematic, though, not even Microchip publishes complete, detailed schematics for their micros. To suggest otherwise is ludicrous in the extreme. However, their datasheets do typically include block diagrams and sometimes more detailed schematics for their I/O and peripheral blocks (not always accurate ones, but they try), and I agree that Parallax could and should do better along these lines with the Prop.

    That said, though, I expect to witness a sea change in Parallax's documentation and dev tool arena when Parallax Semiconductors comes online. And I think it's in the best interest of all concerned to hold their fire until this occurs.

    -Phil
  • potatoheadpotatohead Posts: 10,261
    edited 2011-03-12 22:36
    i thought this would be a good topic to bring up some of these issues, as it was a topic asking for opinions

    Seems like questions to me. You should start threads and knock them down one by one. That's what the venue is here for, and plenty of us do it, and it happens nearly 24/7.

    Yes, I did look at these specifications. Just one at random: http://ww1.microchip.com/downloads/en/DeviceDoc/70178C.pdf

    Honestly, a timing diagram or two aside, we've got those docs, and schematics largely on par with what is presented there. The Prop is a much simpler design! The block diagram on our data sheet details how things work. There are not as many blocks, because there are no where near as many things inside the chip.

    Video could use a diagram like that, but the counters are done, as is the chip overall.

    Detail electrical characteristics are not my specialty. There have been a few threads where somebody needed something rather specific, and either it was derived, or found in the docs we do have. One or two are generally unanswered, and I can't remember why, but asking does no harm at all.

    There is a TON of Smile in that data sheet! Now, all of it is damn good info, if you are going to wrestle with a PIC. Seems to me, there is a lot there to wrestle with, along with pages of if's and's or's and buts! I also saw reference circuits for various things. We've got those too, and where we don't have them, some very basic theory yields them, as does a question or two, as we have people here who know that theory COLD.

    A whole lot of stuff done on that chip in hardware is done in software on a Propeller. This means the detail electrical characteristics you need, in some cases, are a function of the software you choose to use, or to author.

    One thing I did see, that I find interesting, is some bits of code that detail exactly how something is done. Kind of like that, and think it would be a good overall addition, for general case, reference use on Propeller. The downside of that, of course, is the actual applied specifications are always a function of your code and circuit implementation.

    There are a lot of assumptions made by the hardware on board that PIC, that are simply not present on the Propeller, which significantly reduces the overall core documentation required to use it, as most of the specific implementation details are up to the programmer / developer, instead of being specified inside the chip itself.

    That said, I stand with Ross. Marginalizing what others do here isn't good. Never is. Sorry.

    I'm gonna add this:

    You won't be happy, if you expect to somehow find all the answers to your questions in some document somewhere. The chip is great, because the chip is NEW and highly differentiated. That's either worth it, or it's not.

    So how then to get happy?

    Ask stuff. Just ask it. Nobody cares why you are asking it, nor your overall skill level, and nobody is going to think anything less of you for asking it either. We've got people here, who entertain this as a hobby, total amateurs, and everything in between to some folks here so damn smart it will make your head spin.

    You may be thinking, "but I shouldn't have to ask". Yeah, so? There are a lot of things that "should be", and then there simply that which is too.

    The cost of entry?

    Just ask, and quite literally, you are highly likely to receive. Most everybody here respects when somebody is making the effort and wants to see them get over the hump, just like they did. Most of us think this stuff is pretty fun. Make some friends, realize your project, get the bragging rights, or go and buy a PIC, and do it that way too.

    It doesn't really matter, unless you personally think it does.

    Cheers man. I'm done now, largely because I think it's a good time to be done, not for any personal reason. Please consider what I just wrote. The potential return is significant. Ask around.
Sign In or Register to comment.