Evolution of microcontrollers/microprocessors
bassmaster
Posts: 181
Parallax has done a bang up job in the evolution of the microcontroller.
Many people snub VB, but when you want a quick app it works great.
Spin is alot like that, prototypes can be made in a small percentage of time with spin, then, the final product can be optimized for speed when needed, IF neeeded with ASM.
An eample of the evolution of lanquages for the PC, we had a 386 running linux, we needed to write code to interface to 32 pumps and 32 card readers, the polling was too slow.
so we used C for the base, then created a isa board with a z80 that did nothing but pass changed polls to the application, this freed up the app to run faster and handle more calls from the POS or other modules.
As Computers sped up there are now companies that use VB completley to do what we did, with no preformance loss.
Bash prop Spin and the propietary ASM ·if you want, but for me it is an evolution.
Cudo's to Parallax.
Just watch Microchip/Atmel follow this trend.....
·
Many people snub VB, but when you want a quick app it works great.
Spin is alot like that, prototypes can be made in a small percentage of time with spin, then, the final product can be optimized for speed when needed, IF neeeded with ASM.
An eample of the evolution of lanquages for the PC, we had a 386 running linux, we needed to write code to interface to 32 pumps and 32 card readers, the polling was too slow.
so we used C for the base, then created a isa board with a z80 that did nothing but pass changed polls to the application, this freed up the app to run faster and handle more calls from the POS or other modules.
As Computers sped up there are now companies that use VB completley to do what we did, with no preformance loss.
Bash prop Spin and the propietary ASM ·if you want, but for me it is an evolution.
Cudo's to Parallax.
Just watch Microchip/Atmel follow this trend.....
·
Comments
Nice example with the 386 and Z80.
I think the main reason you'll hear "VB bashing" more has to do with "Microsoft marketing". VB is a particular Microsoft product that is unavailable (and heavily protected against as intellectual property) on other platforms like Linux or the Mac OS, let alone "independent" platforms without operating systems (various embedded processors). For example, Microsoft used to have support within the Mac version of Office for VB in Excel spreadsheets. This is being dropped in the next update cycle. As a contrast, Apple has AppleScript as its OS scripting language. The MacOS makes heavy use of this (much like VB in Windows) and it's closely integrated into the OS and the major applications. Unlike Microsoft and VB, there are other scripting languages like Python and Ruby that are open source, heavily used in the Linux world, well documented with lots of books available at your friendly Barnes and Nobles or Amazon.com, and these can be 100% substituted for the AppleScript if you want. They connect to the OS at the same level of API as AppleScript, have the same efficiencies (or inefficiencies), etc.
I like the assembly/Spin mix. Spin is fast enough so you can do a lot of "bit-bang" I/O directly (even 9600 Baud serial) without any use of assembly. I think the assembly/Spin intercommunication is weak, but it works adequately and I wasn't privy to the design tradeoffs and other issues at the time.
I do wish Parallax wasn't so locked into Windows (and XP particularly). It may be "the dominant platform", but it's not the only one, particularly as you move away from the USA. I happen to be able to run all three major platforms (Windows XP, MacOS, and Linux) on the same machine. There's no way I'm going to upgrade to Vista. It was difficult enough to part with the money to upgrade from Windows 98SE to XP just to be able to run the Propeller Tool. Most everyone else's Windows-only tools will still run under Windows 98SE or Wine. I will be much happier once there's some support for Spin outside the world of Microsoft.
The essay was about what languages will look like in 100 years, and that the "sweet spot" (my term) to be in now is to be programming in someting that is on a main evolutionary branch now that will still be a main branch in 100 years.
Although Spin is actually shockingly fast for an interpreted language, it has the built-in ability to program in assembly as well, so that you can throw together a quick interpreted implementation and then convert just the parts you want to assembly. With that in mind, read what Paul Graham said about the future of languages:
"What programmers in a hundred years will be looking for, most of all, is a language where you can throw together an unbelievably inefficient version 1 of a program with the least possible effort. At least, that's how we'd describe it in present-day terms. What they'll say is that they want a language that's easy to program in."
(later in the essay he says something that reminds me of the ability to convert Spin to assembly[noparse]:)[/noparse]
"... it seems that, if you did a really good job, you could make a language that was ideal for writing a slow version 1, and yet with the right optimization advice to the compiler, would also yield very fast code when necessary."
(He seems skeptical of the benefits of parallelism but does predict it[noparse]:)[/noparse]
"As long as we're talking about the future, we had better talk about parallel computation, because that's where this idea seems to live. That is, no matter when you're talking, parallel computation seems to be something that is going to happen in the future."
"Will the future ever catch up with it? People have been talking about parallel computation as something imminent for at least 20 years, and it hasn't affected programming practice much so far. Or hasn't it? Already chip designers have to think about it, and so must people trying to write systems software on multi-cpu computers."
It's no longer a case of switch just to bash Microsoft. The cost of Vista makes other opportunities look more attractive, and while at one time it was pragmatic to stick to Windows because there were things that were more convenient to do with Windows, things have advanced to the point that I can say Linux and MacOS would provide for my needs just as well.
I've used Linux from back when you had to make up floppy disk sets to install it. It's always been fun getting my hands dirty with OS code, and still is, but for ease of use, I've always preferred the Windows GUI. VB was Ok for a while but I happen to prefer Delphi. I'm still running version 2, because it does what I want without lots of program bloat. I tried Kylix, Delphi on Linux, but that was a disaster as far as I was concerned.
But Java on Linux is decent, and can be pretty portable between platforms if you code the display carefully enough. Has anybody considered a Java GUI for Spin, with appropriate OS-specific hardware libraries?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
OS-X: because making Unix user-friendly was easier than debugging Windows
links:
My band's website
Our album on the iTunes Music Store
The ability to immediately and easily download and install a new application, from a large list of open source software, is a very attractive feature.
But it is more difficult OS to learn. I'll put it this way... I'd never install it on a relatives computer...the "support" phone calls would never end. It's not newbie friendly.
But I've got to make my computer a dual boot soon. It would be nice to have a Propeller tool for Linux, But I don't want to be the one to demand it, for me, I'm fine with a dual boot system, I have many other applications that are windows only, and for now, Linux is a toy to play with and get used to.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Brian Meade
"They who dream by day are cognizant of many things which escape those who dream only by night" - Edgar Poe
Microsoft Visual Studio is like crack - once you become dependant on it you'll curse at it and hate it but also love it and can't live without it. What I mean is that it really does have features that are IMO the best out there, and I have at least one project that I can't imagine would work nearly as well in another language/IDE, but at the same time every release pushes out tons of new killer features without stopping to fix the instabilities. I've had the experience of saying, "Wow, I can get things done ten times faster this way than with my old tools" and at the same time I've had countless days where I lost many hour's worth of work because the GUI designer crashed and DELETED my code! Yes, folks, when Visual Studio's forms designer hits a snag and doesn't understand your code, it just deletes widgets off your form until it works again. Come to think of it, Microsoft Visual Source Safe does a similar thing - the repository version of code is sacrosanct to it, and it assumes the code on your machine is just junk that it can delete if wants to. Nearly every time Source Safe makes a mistake, it seems to err on the side of silently deleteing your last eight hour's work to put the old server version on there instead.
They're both examples of Microsoft treating the user like some kind of idiot, deleting/overwriting your work without asking because they think they know better than you do what the computer should do. They send the message "we pwn you, beotch!" And it's kind of like being in an abusive relationship, where you put up with abuse to get what you think you love.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
OS-X: because making Unix user-friendly was easier than debugging Windows
links:
My band's website
Our album on the iTunes Music Store
The first step is to "bite the bullet" and establish policy that all future development will be in one or more cross platform systems, whether Java, standard C++ or Pascal or a mixture (using a cross platform open source GUI library like GTK) or a commercial compiled cross platform system like RealBasic. For things that are close to the operating system like USB/serial, you may need to have source where small portions are conditionally compiled for different platforms.
Mike
-- Remy
-Martin
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
StampPlot - GUI and Plotting, and XBee Wireless Adapters
Southern Illinois University Carbondale, Electronic Systems Technologies
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Who says you have to have knowledge to use it?
I've killed a fly with my bare mind.
I like Martin Hebel's suggestion of a Propeller-based Propeller development environment; in fact that's one of my primary reasons for building my Propeller-based portable computer. I think it will take until the 2nd gen propeller chip comes out for it to be totally feasible though.
This is the long-term plan, as you probably know.·On the next generation of the Propeller, we·will have 96k of unused ROM which we·plan to·eventually·sink a whole development system into. Then, we would only need to create what amounts to VNC-type software to get you inside from your desktop machine (if you really wanted to stay there). I think the only way out of the current OS mess, though,·is to get all the way out, and then come back in on an optional basis. 75% of the energy we've spent on the Propeller.exe program has·gone to·wrestling·with Windows.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
Yeah, I sure won't take credit for the idea as you had told some of us years ago your desire to free the development from the PC, I just could help a tossing out a teaser, and it just goes to show how insightful you are in what is needed as is proven by the current circumstances and how close to that reality you are getting!
-Martin
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
StampPlot - GUI and Plotting, and XBee Wireless Adapters
Southern Illinois University Carbondale, Electronic Systems Technologies
In this monopoly of microsoft we must use windows to get much acomplished, I prefer to run xp and cygwin, others can use linux and wine, cygwin screenshot below offers me single click to open a linux environment. where I can test/write cross platform code. And MARK MY WORDS, it is 10 X faster than linux with wine.
Post Edited (bassmaster) : 2/10/2007 12:24:49 PM GMT
I personally use cygwin just for cross-compiling for linux. For real stuff, I either use vmware or boot into a linux live cd. I find cygwin too limiting for things other than simple shell scripts and compiling.
My 2 cents
Marty
P.S. on a unlrelated subject, It could be quite usefull if parallax verified the correctness of the reverse-engineered Spin byte-code that's been posted on this form.· (possably make it easier to find too)· This would effectively give the Prop a second assembly language that was easier for 3rd party compilers to target?
That said, with some work, and maybe some help from Parallax to release a tokenizer or release the api, for linux and osx, so we all can create what we want, Java would work with all platforms, but I despise it personally. My C Compiler project, hopefully will be a command line tool that kdeveloper or any linux development IDE could use.
If written well in ansi C it will be portable for all platforms.
I have the experience and tools to hack the IDE and the outgoing serial port and probably figure out a way to do this fairly well, as I do it daily at my job with obsolete devices/applications that the company who wrote/created them are no longer in business. But I will not, as Parallax owns this information, and I need their blessing
to do so. (or better yet, a tokenizer for the ASM)
Mike you are correct, the prop to prop loader works flawlessly, the sdcard code is good, your code is good, so a few days and someone could roll it all together for a prop to prop from the prop os deveopment environment, (at least in spin).
And there is just no way I am going to leave my primary system, as I am doing many other things besides Propeller development. Will the development system include all the tools like revision control, etc? What's the reason for keeping the whole thing closed? Why not open the sources and let the open-source community do the porting work for you?
It just feels wrong to replace a "proprietary but widely distributed" system with an even more proprietary system.
Just my 2c.
-- Remy
Hi Chip.
Would it be too much to ask for you to spend (say) 16kilobytes of that for Forth kernel.. During all these years I haven't seen any other system capable to so much in such small code space. I haven't yet tested the Forth ported to Propeller, but IMHO it would be a first class canditate for In-place programming.
Post Edited (bassmaster) : 2/10/2007 1:42:37 PM GMT
1) What is it that specifically, technically requires the Propeller Tool to be Windows XP only ?
2) Why were such specific requirements not circumvented or designed around to deliver an IDE which runs on any Win32 platform ?
Like many, I object to paying Microsoft for things I do not need when what I have serves my purposes perfectly. I really object to having to pay Microsoft simply because another company falls victim to playing the 'Microsoft upgrade game' and forces me to upgrade when I have no need or desire to, and particularly when they could make it that I don't have to.
Companies end up supporting Microsoft by dictating to their customers which OS they must have to use their tools. Sometimes there may be a good reason for that, most often not. I am sure someone could rewrite the Propeller Tool to run under Windows 98, and I am quite disappointed that Parallax could not or chose not to. I would much rather spend my money on Parallax product than with Microsoft.