If you want a BASIC, or there is demand for a BASIC, one can be built on GCC, right along with most anything else. C as a foundation in this way rocks pretty hard IMHO.
As for PASM and easy. Yes, and it's brilliant, beautiful, productive, fun. Why fear assembly? IMHO, that skill needs to continue to get out there. The real wizards, who make stuff go for those using higher level languages use assembly for that purpose. And when push comes to shove, having that skill in your tool box means taking things to the absolute limit when needed. Count me as a fan.
I for one don't disagree with you, Potatohead. But from a marketing standpoint, and in terms of how some people view all this, Brucee, in this instance, does make a point worth being made.
What I gathered from the conference sessions is that Ken is in close contact with educators around the world. Many of them have been using BASIC Stamps for years and are very keen to move up to Propellers. They are also very keen to move to C/C++.
Ken showed a stunning picture of a robot competition in some institution in Taiwan. Can you imagine 300 BoeBots (?) at one time.
Meanwhile in the hobbyist world C++ rules. Did I mention the Arduino?
So as I said BASIC is history.
As pointed out, there are already a number of BASICs for the Prop and no doubt will be for the Prop II. If there are enthusiasts for it, it is there.
Should Parallax invest a lot of time and effort providing BASIC, the IDE to go with it, the documentation, the tutorials and educational materials, the support all to the high quality they aim for?
At least on BASIC, Parallax had a huge installed base. It would have been a natural follow on to the Stamps. So why no PBASIC aimed at the P1? I mean one supported by Parallax, documented on the main page, and part of the installation package. A PBASIC could even take advantage of the multiprocessor nature, how hard would it be to explain MAIN1: MAIN2: MAIN3: ...
Again, I think this varies by customer type. From an education perspective. . .
I don't think you're aware of what we're about to release because the only people who know about it were in attendance at yesterday's meeting (or are part of the GCC development team or teacher testers in other forums here). On Monday it will become more clear. Our educational customers want to progress to C, and what they'll get is as easy as PBASIC (but in C). One-line codes to start SD cards, VGA, audio playback and motor control is really great. C or BASIC - it all functions similar but they prefer C.
Bruce, we are in close communication with our educational customer base and we know what they want. There's no kind of more powerful feedback than standing in front of a room of teachers and sharing what you'd like them to use and hearing what they say about it. Even though most of them are still using BASIC Stamps, they're moving to C when they see how we present it. This audience is a very powerful one to Parallax's past, present and future, and dear to our hearts so we're going to get it right.
Hobby users of the BASIC Stamp may prefer BASIC in the Propeller, but I'm pretty sure that once they see what we offer in C it'll look no different anyway if they can adjust to functions, curly braces, data types and other particulars of C. We will show them how.
Meanwhile in the hobbyist world C++ rules. Did I mention the Arduino?
But the Arduino is a dumbed-down C++; probably it would never have had this much appeal had it not been. (And technically speaking, if anything C rules, not C++.)
So as I said BASIC is history.
For something that is history, there still is an awful lot of activity around it. BASCOM, PICBASIC, Maximite, ... and it shows up here as a topic not infrequently.
Should Parallax invest a lot of time and effort providing BASIC, the IDE to go with it, the documentation, the tutorials and educational materials, the support all to the high quality they aim for?
Perhaps you are right to say no. Myself, I'm not so sure it's that cut and dried (and I'm *not* fan of BASIC). If anything, it may just be too late for it now (ie, for Parallax).
But other than Bean's BASIC or the GCC project, there seems to be no effort to support a standard language. Take a look at the Parallax site and outside the forum try to find any reference to GCC or BASIC on the Prop, and even those are difficult to find.
It looks this way because our web site follows the engineering and education program, and it's way out of date. We've got a new site in the queue and about to be launched. Until that happens, it'll look the way it does and it will seem that we only have Spin/ASM. The languages we support are Spin/ASM and C/ASM. The environments are our Propeller Tool and Simple IDE. At the moment we have no formal professional programming environment like NetBeans, Code:Blocks or Eclipse. Here are the tools:
The languages we support are Spin/ASM and C/ASM. The environments are our Propeller Tool and Simple IDE. At the moment we have no formal professional programming environment like NetBeans, Code:Blocks or Eclipse. Here are the tools:
I can do without the formal programming environment, so long as the tools allow me to use my editor of choice, etc. For example, right now using an external editor with the Propeller Tool isn't as easy as it should be, since the Tool does not automatically detect changes made by the external editor. Just FYI, something to keep in mind.
C would have never got a foothold in education if it wasn't for Arduino/Wiring which hides the ugliness and complexity of C/C++ from mere mortals. Now regular C is fine for guys who spend all day coding but for Frank the artist who just wants to make a few lights light up, etc. It's a abysmal language. Thank heavens for the Arduino and Wiring people who went above and beyond to make programming accessible to non-geeks.
Basic is still alive and well, I can find it for just about any micro out there. But don't expect it on the P2 and if it gets ported expect it to be a red haired step child. SPIN is the supported language for the Props and PASM for those who really want to accomplish anything of value.
C would have never got a foothold in education if it wasn't for Arduino/Wiring which hides the ugliness and complexity of C/C++ from mere mortals. Now regular C is fine for guys who spend all day coding but for Frank the artist who just wants to make a few lights light up, etc. It's a abysmal language.
Exactly. It would never, ever, have caught on the way it did had the programming environment been straight C++ (or even undiluted C).
To answer the original poster, when I read the google doc's, for me P2 would be the perfect motion controller. The same way displays/interfaces was expensive a few years back, motion controllers are overpriced right now imo. Normal PLC's usually only do timing or output switching in the mili seconds at best. P1 saves me money every time, and I'm just running a small industrial business. I would love to have float math, but, usually it's relatively easy to "waste" a cog on soft float, or tweak the calculations for integer math.
I'd say, tap the industial / motion control market. It's not getting smaller with the advent of the 3d printer.
Exactly. It would never, ever, have caught on the way it did had the programming environment been straight C++
I have heard this a lot and never quite understood it. Arduinos are programmed in C++ compiled by GCC. It's the same C++ used by developers of desktop apps or embedded systems or whatever the world over.
Yes, the Arduino guys did a brilliant job of hiding that fact from their target user base.
They provided a drop dead simple IDE - write code, press button, see code running on your board. It hides all the mechanics of compiling and compiler options and include paths etc etc etc.
They provided dead simple libraries (classes) to use when programming the Arduno.
They provide very good (and simple) language and system documentation, tutorials, examples reference etc.
Yes, they hid a lot of C++ features from their users in all that. Why not, gets' the job done painlessly.
Cleverest of all they never told their users they were using C++. They don't mention "C++" anywhere. That way no one was frightened off by the big bad C++ monster even before they started.
I can do without the formal programming environment, so long as the tools allow me to use my editor of choice, etc
I agree wholeheartedly. I'm happy if I can use vim and a command line compiler.
In your shoes I might use "editor of choice" and the command line Spin compiler BSTC.
I believe Parallax provides a command line compiler and/or library (Propellent) that can be used from any editor or other programs (Windows only).
propgcc is of course a command line tool that can be integrated with any other editor/IDE.
I have heard this a lot and never quite understood it. Arduinos are programmed in C++ compiled by GCC. It's the same C++ used by developers of desktop apps or embedded systems or whatever the world over.
Not really, Heater. If that were truly the case, the thing would never have got off the ground the way it did. What went on behind the scenes is really of no import -- in the end, it is what it is: a greatly simplified programming environment only tangentially related to that used by those developers you speak about. Put another way, take a "developer" from the one and put he or she into the other, and I strongly suspect the difference will become readily apparent.
I agree wholeheartedly. I'm happy if I can use vim and a command line compiler.
In your shoes I might use "editor of choice" and the command line Spin compiler BSTC.
I believe Parallax provides a command line compiler and/or library (Propellent) that can be used from any editor or other programs (Windows only).
propgcc is of course a command line tool that can be integrated with any other editor/IDE.
Yes, I know about the command line tools. That said, no harm and probably some benefit in making the GUI tools work seamlessly with an external editor (as most do nowadays).
I know what you mean. There is a world of difference between writing a desk top app in VisualStudio or using Qt and writing an Arduino sketch.
Certainly the Arduino environment (including IDE, libs, tutorials, references etc) hides a huge pile of C++ complexity from it's users. Templates, inheritance, polymorphism etc etc. Certainly it does not include huge piles of normal C++ libs.
The Arduino world is a small corner of C++ but I maintain it is still C++.
In the same way that young children pick up a subset of English one word and one phrase at a time. It is English none the less. So Arduino users are, perhaps programming for the first time in their lives, using real C++.
The Arduino world is a small corner of C++ but I maintain it is still C++.
In the same way that young children pick up a subset of English one word and one phrase at a time. It is English none the less. So Arduino users are, perhaps programming for the first time in their lives, using real C++.
Yes, it is C++ "under the hood," and one can technically say that Arduino users are programming in C++. But I think we both agree that there is a world of difference between what they do (or how they do it) and how most C++ programmers, programmers with a truer sense of the language, actually work. I guess all this is neither here nor there anyway. The thing to keep in mind is that hobbyists don't really care so much whether it's C, Python, or whatever, they just want something simple to write programs with. Traditionally, that role was filled (primarily) by BASIC, rightly or wrongly, and I would only contend that not everyone has forgotten that -- yet.
Perhaps I have an odd view of BASIC. I was taught it as a first programming language on a mainframe in a computer science class in school back in 1974 or so. Since then I have only ever seen it used about three times and then only for throw away VB scripts. Never on anything embedded.
I kind of missed the BASIC on 8 bitters era because I was lucky enough by then to have use of Intel dev systems and the like where we used assembler or "real languages" like PL/M. Of course that kind of kit cost tens of thousands of dollars and the compilers a couple more thousand. That held the door open for Bill Gates and his 4K, 8K etc etc BASICs to find their way into every 8 bit machine as they became more and more popular.
In that time BASIC was kind of essential to even start to do anything with your Altair, C64 and so on. Today it seems unnecessary as we have so many better options and cheap ways to employ them.
TIOBE is kind of interesting. Not sure if it helps select the best language for a particular application though.
I wonder how things would look if they ranked lisp/scheme together? They are closely related.
Why is Visual BASIC different than Visual BASIC.Net?
JavaScript and Action Script may also be in the same bucket as far as I'm concerned (And JScript.NET for that matter).
Are we comparing languages or implementations?
I'd classify many of those (like java and javascript) as C++ variants, or really C++ customized for a certain application.
In my mind that would classify them in a very misleading way. They are all superficially similar from a syntactic point of view. Curly brackets, operators, expressions, conditional/iterator constructs etc. I might agree that Java is a re-casting of C++ with a lot of cruft removed.
JavaScript on the other hand is a very different animal. Semantically it is very different. What with having first class functions, closures, prototypal inheritance and so on. Even it's scoping rules are wildly different. Some have argued that it a more powerful language than Java or C++ as a result of those features. Whilst it's easy to write in an object oriented style in JavaScript the reverse is not true. Try creating a closure in C++.
No one would program an embedded product in PHP! Or many of the other choices.
I agree.
Mind you JavaScript is already used on embedded ARMs.
We are going to have to re-think our perception and definition of "embedded product". It's quite possibel to embed an ARM running full up Linux in turn running an aplication written in pretty much any language on the TIOBE list.
We already have TinyJS running on the Prop I and with external RAM. TinyJS is from the same guys but seems to cut down a lot compared to what they supply, which they have not open sourced as yet.
I might consider adopting Python in place of PHP, because it is a bit more standalone. I do like PHP myself, been using it for most of my career. It goes back to the SPIN and Propeller argument, time is money and the quicker you can build or fix something, the more money you save.
Comments
Ken showed a stunning picture of a robot competition in some institution in Taiwan. Can you imagine 300 BoeBots (?) at one time.
Meanwhile in the hobbyist world C++ rules. Did I mention the Arduino?
So as I said BASIC is history.
As pointed out, there are already a number of BASICs for the Prop and no doubt will be for the Prop II. If there are enthusiasts for it, it is there.
Should Parallax invest a lot of time and effort providing BASIC, the IDE to go with it, the documentation, the tutorials and educational materials, the support all to the high quality they aim for?
I don't think so. There better fish to fry.
Again, I think this varies by customer type. From an education perspective. . .
I don't think you're aware of what we're about to release because the only people who know about it were in attendance at yesterday's meeting (or are part of the GCC development team or teacher testers in other forums here). On Monday it will become more clear. Our educational customers want to progress to C, and what they'll get is as easy as PBASIC (but in C). One-line codes to start SD cards, VGA, audio playback and motor control is really great. C or BASIC - it all functions similar but they prefer C.
Bruce, we are in close communication with our educational customer base and we know what they want. There's no kind of more powerful feedback than standing in front of a room of teachers and sharing what you'd like them to use and hearing what they say about it. Even though most of them are still using BASIC Stamps, they're moving to C when they see how we present it. This audience is a very powerful one to Parallax's past, present and future, and dear to our hearts so we're going to get it right.
Hobby users of the BASIC Stamp may prefer BASIC in the Propeller, but I'm pretty sure that once they see what we offer in C it'll look no different anyway if they can adjust to functions, curly braces, data types and other particulars of C. We will show them how.
For something that is history, there still is an awful lot of activity around it. BASCOM, PICBASIC, Maximite, ... and it shows up here as a topic not infrequently.
Perhaps you are right to say no. Myself, I'm not so sure it's that cut and dried (and I'm *not* fan of BASIC). If anything, it may just be too late for it now (ie, for Parallax).
It looks this way because our web site follows the engineering and education program, and it's way out of date. We've got a new site in the queue and about to be launched. Until that happens, it'll look the way it does and it will seem that we only have Spin/ASM. The languages we support are Spin/ASM and C/ASM. The environments are our Propeller Tool and Simple IDE. At the moment we have no formal professional programming environment like NetBeans, Code:Blocks or Eclipse. Here are the tools:
I'd say, tap the industial / motion control market. It's not getting smaller with the advent of the 3d printer.
Yes, the Arduino guys did a brilliant job of hiding that fact from their target user base.
They provided a drop dead simple IDE - write code, press button, see code running on your board. It hides all the mechanics of compiling and compiler options and include paths etc etc etc.
They provided dead simple libraries (classes) to use when programming the Arduno.
They provide very good (and simple) language and system documentation, tutorials, examples reference etc.
Yes, they hid a lot of C++ features from their users in all that. Why not, gets' the job done painlessly.
Cleverest of all they never told their users they were using C++. They don't mention "C++" anywhere. That way no one was frightened off by the big bad C++ monster even before they started.
In your shoes I might use "editor of choice" and the command line Spin compiler BSTC.
I believe Parallax provides a command line compiler and/or library (Propellent) that can be used from any editor or other programs (Windows only).
propgcc is of course a command line tool that can be integrated with any other editor/IDE.
I know what you mean. There is a world of difference between writing a desk top app in VisualStudio or using Qt and writing an Arduino sketch.
Certainly the Arduino environment (including IDE, libs, tutorials, references etc) hides a huge pile of C++ complexity from it's users. Templates, inheritance, polymorphism etc etc. Certainly it does not include huge piles of normal C++ libs.
The Arduino world is a small corner of C++ but I maintain it is still C++.
In the same way that young children pick up a subset of English one word and one phrase at a time. It is English none the less. So Arduino users are, perhaps programming for the first time in their lives, using real C++.
Perhaps I have an odd view of BASIC. I was taught it as a first programming language on a mainframe in a computer science class in school back in 1974 or so. Since then I have only ever seen it used about three times and then only for throw away VB scripts. Never on anything embedded.
I kind of missed the BASIC on 8 bitters era because I was lucky enough by then to have use of Intel dev systems and the like where we used assembler or "real languages" like PL/M. Of course that kind of kit cost tens of thousands of dollars and the compilers a couple more thousand. That held the door open for Bill Gates and his 4K, 8K etc etc BASICs to find their way into every 8 bit machine as they became more and more popular.
In that time BASIC was kind of essential to even start to do anything with your Altair, C64 and so on. Today it seems unnecessary as we have so many better options and cheap ways to employ them.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
I wonder how things would look if they ranked lisp/scheme together? They are closely related.
Why is Visual BASIC different than Visual BASIC.Net?
JavaScript and Action Script may also be in the same bucket as far as I'm concerned (And JScript.NET for that matter).
Are we comparing languages or implementations?
If you look at it that way, I think C and C++ dominate.
No one would program an embedded product in PHP! Or many of the other choices.
JavaScript on the other hand is a very different animal. Semantically it is very different. What with having first class functions, closures, prototypal inheritance and so on. Even it's scoping rules are wildly different. Some have argued that it a more powerful language than Java or C++ as a result of those features. Whilst it's easy to write in an object oriented style in JavaScript the reverse is not true. Try creating a closure in C++.
Mind you JavaScript is already used on embedded ARMs.
We are going to have to re-think our perception and definition of "embedded product". It's quite possibel to embed an ARM running full up Linux in turn running an aplication written in pretty much any language on the TIOBE list.
Checkout the supported hardware list: http://www.espruino.com/Get+it
So, you can have embedded JavaScript for 20 euros https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/
We already have TinyJS running on the Prop I and with external RAM. TinyJS is from the same guys but seems to cut down a lot compared to what they supply, which they have not open sourced as yet.
I just checked out Espruino. It's cute.
IMHO, it is not useful for real time embedded work.
Frankly, I'd never use any language that uses dynamic memory allocation and garbage collection for hard real time work.
On the other hand, it looks like a nice way for interactive JS development, and a potentially good competitor to Wiring.
Sounds impossible LOL.
PHP is actually really nice for building dynamic web sites based on data bases.