Tracy,
I'll likely end up with a lot of the features that bstc has because of people wanting them, however, for the listings it's unlikely that I'll be able to (or want to) match the listing format/layout. I will have some form of listing (maybe even more than one), though, and it will likely be a combined human and machine friendly format (mostly just means consistent and with delimiters).
I'm not planning to build in any of the "loading" functionality into OpenSpin. I believe the propgcc guys covered that very will with their loader program.
I too use BST for my final builds... but I use the Prop Tool for developing. If BST stops working in Windows, I will be very sad (It is still working as of Windows 8 64 bit). I will need to spend a LOT more time cleaning up code to remove unused methods.
But listening to (reading) all of the problems people are describing getting it to work under other operating systems, I really think this points out why most of the world still uses Windows. Not that it doesn't have its own problems... try getting an unsigned USBasp driver to run! But I don't need to reconfigure the entire operating system to get it to work, and by doing so possibly mess up other things.
I am not trying to start a war, or secretly trying to subvert the open-source cause. But is it really worth the effort when we are just trying to get an end result out of our computers? Just an honest question from a fellow programmer who works with computers for a living, and is often asked by clients why they aren't using Linux (or more Macs) on their networks (I am a systems engineer).
Maybe part of what drove Brad away is trying to be everything to too many people/ways of doing things? Who could take that kind of strain? (Roy, are you starting to feel a bit of this also?)
I too use BST for my final builds... but I use the Prop Tool for developing. If BST stops working in Windows, I will be very sad (It is still working as of Windows 8 64 bit). I will need to spend a LOT more time cleaning up code to remove unused methods.
But listening to (reading) all of the problems people are describing getting it to work under other operating systems, I really think this points out why most of the world still uses Windows. Not that it doesn't have its own problems... try getting an unsigned USBasp driver to run! But I don't need to reconfigure the entire operating system to get it to work, and by doing so possibly mess up other things.
I am not trying to start a war, or secretly trying to subvert the open-source cause. But is it really worth the effort when we are just trying to get an end result out of our computers? Just an honest question from a fellow programmer who works with computers for a living, and is often asked by clients why they aren't using Linux (or more Macs) on their networks (I am a systems engineer).
Maybe part of what drove Brad away is trying to be everything to too many people/ways of doing things? Who could take that kind of strain? (Roy, are you starting to feel a bit of this also?)
Funny thing is that I have never really had any problems with BST on Linux although that being said I have installed betas of new 64 bit distros that need the compatibility libraries installed manually but that's expected. The other funny thing is that a lot of USB stuff just seems to work instantly on Linux without all the fanfare and sometimes successful installation required on Windows machines. The FT232 is a "find the COM port" nightmare on Windows whereas Linux just assigns /dev/ttyUSB0 for the first device and so on. Windows is the world's most popular operating system, you are not really given a choice, so it's "popular".
Maybe part of what drove Brad away is trying to be everything to too many people/ways of doing things? Who could take that kind of strain? (Roy, are you starting to feel a bit of this also?)
Seeker,
I haven't really had to do anything special to support Linux and Mac with OpenSpin so far... I work on it using Visual Studio 2008 on a Windows 7 64bit machine. I occasionally build it with gcc in MinGW on the same Windows 7 64bit machine to see if I caused any problems (which is almost always no). Being a command line tool makes it pretty easy. I use old school fopen/fread/fwrite/fclose for file reading and writing, and stdout/stderr for messaging.
I'll end up doing a little bit more when I start providing pre-built binaries for Mac OSX and some Linux flavors (not sure it's really needed for linux, we'll see), but it'll be pretty minimal.
The primary difference in this case, is that if I get tired of working on this, the source code is all there and it's MIT licensed, so anyone can continue working on it. In fact, anyone is free to take the code now and do whatever they want with it.
Also, I think it's pretty important for Parallax to provide their tools cross platform because of their target audiences. Sure, there is a majority of people that will just use Windows, but there are enough folks on other platforms to matter. I also think that Linux and Mac are going to grow even more with all of Microsofts actions lately...
[qoute]I am not trying to start a war, or secretly trying to subvert the open-source cause. But is it really worth the effort when we are just trying to get an end result out of our computers?
[/quote]
But isn't the case of BST not being open-source that is causing grief, as folks are wondering what to do when it can no longer run on Windows, Linux or Mac OS X? The open source solutions that are being discussed will not leave us "in the lurch" as the source code will be available for the community of developers. If the original developer is no longer able or wants to maintain the source, some other fine soul will have sources to work from. Not, saying anything about Roy's destiny, just making the case here ...
Open source code IS more difficult to develop and maintain, but opening code up for "all the usual" system types is a worthy cause (said the ardent Mac OS X user). Lot's of students in middle, high school and universities use Macs, along with their instructors. Lot's of computer science and engineering students use Linux as well.
I think Parallax knows the importance of open sourcing their tools and applications at this point. Thusly why a few good folks are spending their time on these projects. My hat is off to guys like Roy and Steve who are making propeller tools for all types of developers!
But listening to (reading) all of the problems people are describing getting it to work under other operating systems, I really think this points out why most of the world still uses Windows.
Oh dear. How wrong of a conclusion can that be?
Operating systems change, hardware changes. Eventually your programs stop working as you can't stick with the old things forever. That's just how it goes. What to do?
In the Windows and other closed source worlds you have to buy and install a new OS for your new hardware, then buy/aquire and install new versions of you applications, assuming of course the vendor is still in business and supporting your platfom. This is why half the world is tenaciously sticking to Windows XP. I know of a few cases myself where businesses cannot get stuff going on anything later.
In days past, whole companies, archtictures and operating systems would disappear along with all the support you need for your systems. Think DEC Vax for example. Slowly the closed source world found itself stranded on an island of Intel and Windows.
As it hapens BST is an example of a program that does still work, relatively easily, everywhere it is advertised to work. But without maintainance it's time will come.
The other solution to this "program decay" issue is to "give me the source code". Free (monitarily) or otherwise. Or better stiil in the Opens Source/Free Software world where programs can reproduce and spread, like life itself, the death of the individual does not kill the spieces.
Notice how successful the Arduino has been? Most of that has been down to it's the Free and OpenSource nature. After all it's just another AVR at heart. Notice how there has been much enthusiasm and astounding effort put in by all sorts of people for the open source tool chains from Parallax?
There are reasons for that. Reasons you have just hit on with your question.
I am not trying to start a war, or secretly trying to subvert the open-source cause. But is it really worth the effort when we are just trying to get an end result out of our computers?
In short, yes, for some or even many. Those who really need a solution "now" and can buy it off the shelf or otherwise acquire it immediately are perhaps better served by doing exactly that. They will have the work of the "some or even many" to make use of later:)
Maybe part of what drove Brad away is trying to be everything to too many people/ways of doing things?
I thought so too. I commented to him once that the problem with making a really usefull and slick program and giving it away for free is that you will endlessly be pestered for new features. I was one of the pesterers!
Jazzed gets the same with SimpleIDE. But at the end of the day if someone wants feature X bad enough they can grab the code and get it done.
P.S. I think most of the world uses Windows because, well, most of the world uses Windows. Networking effects are very powerful. Not to mention the captive installed user base. Imagine if you would that there had never been a Windows. Only a Free Software and Open Source world as it used to be.
There is a lot of incorrect speculation as to why Brad is no longer interested and why he didn't release the code. I don't confess to know the whole story either. However, he gave us a great program, fixed bugs quickly, and added lots of features that we all asked for. Please remember this, use it, and just leave it be.
As for the windoze closed platform, look at the variations and how we seem to be forced into paying for new versions. What with the automatic updates that you cannot turn off anymore, and the fact that your superceeded versions seem to get slower and slower, and the newer version runs faster than the older versions now run, would I be a skeptic if I imagined that just maybe I am feeling that I am being forced to pay for an upgrade? Do I sound like a skeptic??? But when I see all the complexities of the other open *nix os'es, I am still somewhat happy to stick to my closed system. I don't really have many issues with FT232. I run lots of them on my system.
There is a lot of incorrect speculation as to why Brad is no longer interested and why he didn't release the code. I don't confess to know the whole story either. However, he gave us a great program, fixed bugs quickly, and added lots of features that we all asked for. Please remember this, use it, and just leave it be.
As for the windoze closed platform, look at the variations and how we seem to be forced into paying for new versions. What with the automatic updates that you cannot turn off anymore, and the fact that your superceeded versions seem to get slower and slower, and the newer version runs faster than the older versions now run, would I be a skeptic if I imagined that just maybe I am feeling that I am being forced to pay for an upgrade? Do I sound like a skeptic??? But when I see all the complexities of the other open *nix os'es, I am still somewhat happy to stick to my closed system. I don't really have many issues with FT232. I run lots of them on my system.
Just adding to the pool of information on bst and Linux: For me, bst and its serial terminal (via FT232RL) work without a hitch under Ubuntu 10.04. In addition, bst works on the same PC in a partition with Ubuntu 12.04, but there, the bst terminal (and sometimes the system) will consistently hang after receiving just a couple of characters. Strange...
Cluso99,
You can turn off windows updates easily in Windows 7 (and you could in Vista and XP as well). Not sure why you think you can't. I have always had mine set to check for updates but let me decide which ones to install and when.
Maybe it's Windows 8? I wouldn't know, I haven't upgraded to that and probably won't for any of my main machines.
Also, I have no idea why Brad stopped working on BST and didn't share the code. I've never really used the program, and only downloaded it when people asked me to implement features from it for OpenSpin. I am doing the OpenSpin effort because Parallax had a need and I volunteered to help.
To be honest, I still mostly use PropTool for developing my Spin/PASM code. I'm hoping to work with Jeff Martin to get PropTool using OpenSpin in the near future. I'll probably switch to SimpleIDE once it's ready and working with OpenSpin.
I do occasionally have problems with the FT232, but only when I am pushing it to use several serial ports in parallel or serially with different FT232s. The bst serial terminal utility becomes confused at times about which one to is active, but that can usually be resolved by closing the serial terminal window, redetecting the propeller, and then reopening the serial terminal.
There also seems to be an issue when the Propelleris dumping data fast into the bst serial window. Everything in the IDE slows down and it becomes difficult to reprogram the propeller. Have to close the serial terminal window. If all else fails, restart bst.
The worst issue is when the laptop computer is shut down or put to sleep, and then the serial cable to the FT232 is pulled. The computer can wake up and if it is in a bag, overheat and lead to a cold start. That is an operating system issue, not an FT232 issue. The same thing happens if you pull a flash drive or SD card when the computer is asleep.
Cluso99,
You can turn off windows updates easily in Windows 7 (and you could in Vista and XP as well). Not sure why you think you can't. I have always had mine set to check for updates but let me decide which ones to install and when.
I think this is not in fact true. If you turn off these features, which I have done, there are still downloads and updates going on with my computers (both XP and 7). And every so often I do get the latest updates by going and getting them.
Maybe it's Windows 8? I wouldn't know, I haven't upgraded to that and probably won't for any of my main machines.
I have heard you are no longer given the option to turn it off - but I don't know for sure, and I don't run 8 anyway.
Also, I have no idea why Brad stopped working on BST and didn't share the code. I've never really used the program, and only downloaded it when people asked me to implement features from it for OpenSpin. I am doing the OpenSpin effort because Parallax had a need and I volunteered to help.
It happened - enough said.
To be honest, I still mostly use PropTool for developing my Spin/PASM code. I'm hoping to work with Jeff Martin to get PropTool using OpenSpin in the near future. I'll probably switch to SimpleIDE once it's ready and working with OpenSpin.
I am really looking forward to this Roy. ATM though, my head is in P2. But I need the features of bst or homespun that you have inplemented. I would like a basic macro definition/function - perhaps this has been addressed by the precompiler steps (I just don't know) - because I would like some basic macros for implementing some LMM type functions. I could do with this for my P2 development.
Keep up the good work Roy, and don't take requests/demands for features to heart
I think this is not in fact true. If you turn off these features, which I have done, there are still downloads and updates going on with my computers (both XP and 7). And every so often I do get the latest updates by going and getting them.
I have heard you are no longer given the option to turn it off - but I don't know for sure, and I don't run 8 anyway.
It happened - enough said.
I am really looking forward to this Roy. ATM though, my head is in P2. But I need the features of bst or homespun that you have inplemented. I would like a basic macro definition/function - perhaps this has been addressed by the precompiler steps (I just don't know) - because I would like some basic macros for implementing some LMM type functions. I could do with this for my P2 development.
Keep up the good work Roy, and don't take requests/demands for features to heart
If you need macros with PASM you might try the new .pasm support that Eric just added to GAS. I guess it's much more like PropTool PASM than what we had before. If you are interested, I'll upload the Windows build I made last night. If you name your program "foo.S" (uppercase "S"), the normal C preprocessor will be run on it before it is assembled. This should give you the macro and conditional support you want.
Open source code IS more difficult to develop and maintain....
You have to expand on that.
How is it possible that developing some code to solve some problem is harder if you open it to the 9 billion people on the planet than if you keep it closed to your little company.?
You have to expand on that.
How is it possible that developing some code to solve some problem is harder if you open it to the 9 billion people on the planet than if you keep it closed to your little company.?
Well, generally, if you intend to have your code run on multiple systems & architectures, you'll want to write your code in ways that support those architectures. Initially, you could write your open source code for a specific architecture, but you'll get less adoption and less help from others. So, you'd want to write your code to support Win & Unix/Linux (this covers Mac OS X as well), for x86 (32-bit & 64-bit), ARM, propeller, etc, at least initially, right?
From my world (Mac OS X), I could develop a Mac application in XCode, publish it as "open source", but it would get adopted by Mac users only. The Mac OS X frameworks would suit my development fine, but would be fairly useless to WIN and Unix/Linux developers.
Yes, having many adopters to help solve algorithmic problems is fantastic, but I need to provide them with a base program that they can run on their systems. And, that's harder than just developing for a specific system!
All I'm saying is that you have to write your open source code with a mindset that it needs to run on more systems than just what is sitting on your desk top.
If you need macros with PASM you might try the new .pasm support that Eric just added to GAS. I guess it's much more like PropTool PASM than what we had before. If you are interested, I'll upload the Windows build I made last night. If you name your program "foo.S" (uppercase "S"), the normal C preprocessor will be run on it before it is assembled. This should give you the macro and conditional support you want.
Sounds great David. While I search for the link, can you by chance post one? and instructions for GAS I suppose.
On this basis, I will be using GAS & P2Load. What do you use for editting?
It works the other way around as well though. Write the code for the platform you have and if there is any interest in may get ported to whatever platform someone else has.
As Linus said when annoncing Linux in 1991:
It is NOT protable (uses 386 task switching etc), and it probably neverwill support anything other than AT-harddisks, as that's all I have :-(......Simply, I'd say that porting is impossible....
But when I see all the complexities of the other open *nix os'es, I am still somewhat happy to stick to my closed system.
Linux (or other *nix OSes) is not more difficult or more complex than Windows, the fact is we learned to use Windows gradually over many years so things appears to be easier because we are used to it. Put Windows and Linux in front of a person who never used a computer in all it's life and both appear equals. The biggest error done by people who try to learn Linux is to install it as dual-boot near Windows, this won't let you learn correctly because you'll end booting Windows when you need to work or do something quickly that you can't do in Linux right now. I know that because few years ago I was in a similar situation, then one day I decided to throw away Windows entirely, installed Linux as the only OS on the computer and started using it and learned how to do things and fix configuration problems. If you do that, in a couple of months you'll work better than you did with Windows, you don't know how things are easier in Linux once you get used to it.
All I'm saying is that you have to write your open source code with a mindset that it needs to run on more systems than just what is sitting on your desk top.
This is partially true, each operating system / architecture has features specific to it that should be leveraged to obtain optimum results. However, experienced programmers will tell you that there are techniques that helps a lot, not only with porting programs to other OSes, but also with maintaining the program itself. One of these is separating the presentation from the business logic. Very easy to do with modern languages. Every program is composed of two parts: the core which do the underlying work and the UI which reads inputs from the user and display calculation results. The core generally doesn't have tight links with the OS so it can be ported to other systems easily, and if done correctly, it is just a matter to add an UI to it. There are also other ways to write portable programs, if you wan that, by using already portable languages like Java which runs on all operating systems, or frameworks like WxWidgets which I believe was ported on all platforms. What I want to say, is that writing portable programs isn't much more complex or difficult than writing programs for a specific OS.
Back to the thread topic, BST is a great tool, I would really like that Brad changes his mind and, at least, release the source code. There are few bizzarre bugs that I would like fixed. For example, I discovered that creating a bst archive has issues with file permissions. If files have write permissions to all, it adds empty files to the archive (you see the entry in the zip archive but the file is empty). I can't imagine why it does that, but should be an easy fix.
But when I see all the complexities of the other open *nix os'es, I am still somewhat happy to stick to my closed system.
Of course from this side of the mirror that translates to:
"But when I see all the complexities of Windows os'es, I am ecstatically happy to stick to my opens source Unix clone."
As pointed out over the years we have all become familiar with the grungy detalis of our systems that we need to know to use them effectively. We have grown with our respective OS's.
My problem now a days is that basically I cannot use Windows. Mostly because the last time I used a Windows OS seriously it was at version 3.1.
Anyway, in the context of this thread which I opened with my BST on Liux difficulties remember that I did happen to start with the last pre-release version of BST and I am running a "testing" version of my OS. One or the other or a combination of those facts gave me a problem. You could say it was all my own stupid fault for always wanting to check out the newest version of everything and living in a permanent state of alpha/beta testing.
[qoute]Open source code IS more difficult to develop and maintain,[..]
Heater already commented on this, but I can't let it stand. I develop proprietary software for a living, along with my colleagues. I also work on and have worked on some open source projects (including a couple of well-known ones), and the truth is that proprietary code is more difficult to develop and maintain, not the least because in a closed environment it's simply impossible to get the eye-ball scrutiny that you get on well-managed open source projects. Even if you're as big as IBM it simply can't compare: You just won't get the necessary hours from the project management to get the kind of review you can get on open source, both for bugs and maintainability. With FOS you're _forced_ to develop the code in a way which enhances maintainability. With proprietary code a lot of things are let in which wouldn't, if you could just afford the review (and you never will, because there would have to be more reviewers than developers and that never happens inside a company). And those things will come back and hit you later. Just look at formerly-proprietary code which was opened up later: I've yet to hear about a project that didn't need massive cleanup to get into a state where it was possible for others to work on the code (a couple of examples off the top of my head would be Mozilla, and the Watcom compilers)
You also mentioned portability in another post, and I for one use the same practice for proprietary and open source projects: Develop with portability in mind. Doing that has the added side-effect of improving maintainability too, because you're forced to use standards. So there's no inherent difference between open source and proprietary code there, except that, due to the distributed nature of open source projects it's much easier to get regular testing on many more platforms, something that will occasionally catch subtle bugs that hit rarely on most platforms (and are thus difficult to find), but will hit a particular one quickly and it shows up in the nightly build and test setups (on one open source project I work on, for example, a pool of world-wide developers run automatic builds on a large number of platforms, none of us have access to all of those individually).
After decades of working with software in these environments there's only one valid conclusion: Well-managed Open Source projects win hands-down when it comes to development and maintenance, particularly over time. There is no competition. Even if every one of your proprietary code developers are brilliant.
Back to the thread topic, BST is a great tool, I would really like that Brad changes his mind and, at least, release the source code. There are few bizzarre bugs that I would like fixed. For example, I discovered that creating a bst archive has issues with file permissions. ...
I fully agree, Marco. Forget the politics (or whatever events/experience/grievance made Brad turn away) and make an effort to salvage bst, i.e. a project that was off to a good start for quite a while.
Ah yes proprietary software, that stuff that's thrown together as quickly as possible to satisfy an immediate demand for, well, something. But mostly the goal is profit not functionality, reliability, longevity, portability etc. Hardly designed or tested or reviewed. Often the code is never read by anyone except the guy that wrote it and he is under heavy pressure and has no time to straighten things out.
I myself am guilty of such behavior. The best code I have worked on is in military/aerospace projects where a huge investment is made in design, review, test etc.
One of the neat things about open source is that the guy publishing is likely to take some pride in his work and spend some time making it the best he knows how before showing it to the world. Don't people who push objects to OBEX take that little extra effort to polish things before doing so?
You are both speaking from the point of what works best in the long run and I couldn't agree with you more!
My point went to how one starts their program development with the thought of making their code operable on multiple systems. It takes a bit more thought and investigation to start-up your project and get it into the hands of others who will be running your software on other systems. Being open sourced does help in getting access to the mindset of others, no doubt. But, one must start with a base that is usable and maintainable for the community of developers.
Your discussion points out the extent of your methods and practices in developing good portable code. Not everyone has the knowledge or experience that you do. I've seen many cases right here in the forums where projects are intended as open source, but clearly could not be compiled or run on anything but the creator's system. Can't I make a point that these folks should consider other systems when creating their projects?
I've never stated anything that would negate your statement of: "After decades of working with software in these environments there's only one valid conclusion: Well-managed Open Source projects win hands-down when it comes to development and maintenance, particularly over time. There is no competition. Even if every one of your proprietary code developers are brilliant."
I've also worked for decades, building, testing and integrating an operating system that contained much proprietary and open sourced code. I know how hard it is to build and maintain that code. I've helped to transition that code across all sorts of hardware that didn't exist when the code was initially created. If that project wasn't "well managed", it would not have survived. That's what I meant by "harder"...
I didn't mean that as a personal affront to your work.
And back to the topic... Brad has stated that he wants nothing to do with updating BST. That's OK as he has a perfect right to that. As long as BST works, we've been blessed with a great bit of code. There are solutions in-development, they are open source and are being developed by some folks that really care about taking steps to make sure they are open for us. Life is good!
My point went to how one starts their program development with the thought of making their code operable on multiple systems....one must start with a base that is usable and maintainable for the community of developers
A fine ideal. One that we should always bear in mind. Of course, as in the case of Linux for example, someone just has to scratch an itch in the best way they know how with the facilities they have. Other issues, potability, modularity, maintainability etc will be tackled later if the idea catches on. Consider these things a "proof of concept". At least it helps to start with language that can be used cross platform.
I've seen many cases right here in the forums where projects are intended as open source, but clearly could not be compiled or run on anything but the creator's system. Can't I make a point that these folks should consider other systems when creating their projects?
Yes. There is something very depressing about watching someone put hours of effort into a project then proudly offering it to the world. Only to find that it is platform specific and not something you can even use let alone contribute to.
Your discussion points out the extent of your methods and practices in developing good portable code. Not everyone has the knowledge or experience that you do. I've seen many cases right here in the forums where projects are intended as open source, but clearly could not be compiled or run on anything but the creator's system. Can't I make a point that these folks should consider other systems when creating their projects?
No, that's not my point. Reviewing what I wrote I think I have not made clear what I mean. It is not a matter of considering other systems, or having a mindset for portable code, it is a matter of good programming. When your code is well written, well structured, with clear boundaries between tasks, porting to another system will be fairly easy. Good programming should not be considered just to write portable code but as a way to write maintainable code that can be reviewed after several years and is still clear to understand and update, even by yourself (believe me, when I look at my earliest works when DOS was the only OS, I ask myself what the hell I was thinking to do that, when I remember what it was doing, of course).
Of course good programming comes with experience and experience comes with writing programs and learn how to make them better. Not easy to accomplish if you write programs just occasionally and to fit specific tasks, I agree.
Brad has stated that he wants nothing to do with updating BST. That's OK as he has a perfect right to that.
Right, but an easy solution: release the source, others will update BST. :-)
No, that's not my point. Reviewing what I wrote I think I have not made clear what I mean. It is not a matter of considering other systems, or having a mindset for portable code, it is a matter of good programming. When your code is well written, well structured, with clear boundaries between tasks, porting to another system will be fairly easy. Good programming should not be considered just to write portable code but as a way to write maintainable code that can be reviewed after several years and is still clear to understand and update, even by yourself (believe me, when I look at my earliest works when DOS was the only OS, I ask myself what the hell I was thinking to do that, when I remember what it was doing, of course).
Of course good programming comes with experience and experience comes with writing programs and learn how to make them better. Not easy to accomplish if you write programs just occasionally and to fit specific tasks, I agree.
Right, but an easy solution: release the source, others will update BST. :-)
Just amazing to read all this, you all see the power of www.lazarus.freepascal.org in the hands of a skilled engineer.
Really nice work Brad. Wonder why he didn't choose C/C++?
Comments
I'll likely end up with a lot of the features that bstc has because of people wanting them, however, for the listings it's unlikely that I'll be able to (or want to) match the listing format/layout. I will have some form of listing (maybe even more than one), though, and it will likely be a combined human and machine friendly format (mostly just means consistent and with delimiters).
I'm not planning to build in any of the "loading" functionality into OpenSpin. I believe the propgcc guys covered that very will with their loader program.
But listening to (reading) all of the problems people are describing getting it to work under other operating systems, I really think this points out why most of the world still uses Windows. Not that it doesn't have its own problems... try getting an unsigned USBasp driver to run! But I don't need to reconfigure the entire operating system to get it to work, and by doing so possibly mess up other things.
I am not trying to start a war, or secretly trying to subvert the open-source cause. But is it really worth the effort when we are just trying to get an end result out of our computers? Just an honest question from a fellow programmer who works with computers for a living, and is often asked by clients why they aren't using Linux (or more Macs) on their networks (I am a systems engineer).
Maybe part of what drove Brad away is trying to be everything to too many people/ways of doing things? Who could take that kind of strain? (Roy, are you starting to feel a bit of this also?)
Funny thing is that I have never really had any problems with BST on Linux although that being said I have installed betas of new 64 bit distros that need the compatibility libraries installed manually but that's expected. The other funny thing is that a lot of USB stuff just seems to work instantly on Linux without all the fanfare and sometimes successful installation required on Windows machines. The FT232 is a "find the COM port" nightmare on Windows whereas Linux just assigns /dev/ttyUSB0 for the first device and so on. Windows is the world's most popular operating system, you are not really given a choice, so it's "popular".
Crack! LOL. I know I'm feeling it right now!
I haven't really had to do anything special to support Linux and Mac with OpenSpin so far... I work on it using Visual Studio 2008 on a Windows 7 64bit machine. I occasionally build it with gcc in MinGW on the same Windows 7 64bit machine to see if I caused any problems (which is almost always no). Being a command line tool makes it pretty easy. I use old school fopen/fread/fwrite/fclose for file reading and writing, and stdout/stderr for messaging.
I'll end up doing a little bit more when I start providing pre-built binaries for Mac OSX and some Linux flavors (not sure it's really needed for linux, we'll see), but it'll be pretty minimal.
The primary difference in this case, is that if I get tired of working on this, the source code is all there and it's MIT licensed, so anyone can continue working on it. In fact, anyone is free to take the code now and do whatever they want with it.
Also, I think it's pretty important for Parallax to provide their tools cross platform because of their target audiences. Sure, there is a majority of people that will just use Windows, but there are enough folks on other platforms to matter. I also think that Linux and Mac are going to grow even more with all of Microsofts actions lately...
Roy
p.s. I'm pretty good at ignoring whiners...
Steve and Roy, just so you know - there are a whole lot of us that really appreciate the effort you guys are putting into this.
Paul
[/quote]
But isn't the case of BST not being open-source that is causing grief, as folks are wondering what to do when it can no longer run on Windows, Linux or Mac OS X? The open source solutions that are being discussed will not leave us "in the lurch" as the source code will be available for the community of developers. If the original developer is no longer able or wants to maintain the source, some other fine soul will have sources to work from. Not, saying anything about Roy's destiny, just making the case here ...
Open source code IS more difficult to develop and maintain, but opening code up for "all the usual" system types is a worthy cause (said the ardent Mac OS X user). Lot's of students in middle, high school and universities use Macs, along with their instructors. Lot's of computer science and engineering students use Linux as well.
I think Parallax knows the importance of open sourcing their tools and applications at this point. Thusly why a few good folks are spending their time on these projects. My hat is off to guys like Roy and Steve who are making propeller tools for all types of developers!
And, "What Paul said!"
dgately
Thirded!
Oh dear. How wrong of a conclusion can that be?
Operating systems change, hardware changes. Eventually your programs stop working as you can't stick with the old things forever. That's just how it goes. What to do?
In the Windows and other closed source worlds you have to buy and install a new OS for your new hardware, then buy/aquire and install new versions of you applications, assuming of course the vendor is still in business and supporting your platfom. This is why half the world is tenaciously sticking to Windows XP. I know of a few cases myself where businesses cannot get stuff going on anything later.
In days past, whole companies, archtictures and operating systems would disappear along with all the support you need for your systems. Think DEC Vax for example. Slowly the closed source world found itself stranded on an island of Intel and Windows.
As it hapens BST is an example of a program that does still work, relatively easily, everywhere it is advertised to work. But without maintainance it's time will come.
The other solution to this "program decay" issue is to "give me the source code". Free (monitarily) or otherwise. Or better stiil in the Opens Source/Free Software world where programs can reproduce and spread, like life itself, the death of the individual does not kill the spieces.
Notice how successful the Arduino has been? Most of that has been down to it's the Free and OpenSource nature. After all it's just another AVR at heart. Notice how there has been much enthusiasm and astounding effort put in by all sorts of people for the open source tool chains from Parallax?
There are reasons for that. Reasons you have just hit on with your question. In short, yes, for some or even many. Those who really need a solution "now" and can buy it off the shelf or otherwise acquire it immediately are perhaps better served by doing exactly that. They will have the work of the "some or even many" to make use of later:)
I thought so too. I commented to him once that the problem with making a really usefull and slick program and giving it away for free is that you will endlessly be pestered for new features. I was one of the pesterers!
Jazzed gets the same with SimpleIDE. But at the end of the day if someone wants feature X bad enough they can grab the code and get it done.
P.S. I think most of the world uses Windows because, well, most of the world uses Windows. Networking effects are very powerful. Not to mention the captive installed user base. Imagine if you would that there had never been a Windows. Only a Free Software and Open Source world as it used to be.
Would you be the first in line buy Windows 8?
As for the windoze closed platform, look at the variations and how we seem to be forced into paying for new versions. What with the automatic updates that you cannot turn off anymore, and the fact that your superceeded versions seem to get slower and slower, and the newer version runs faster than the older versions now run, would I be a skeptic if I imagined that just maybe I am feeling that I am being forced to pay for an upgrade? Do I sound like a skeptic??? But when I see all the complexities of the other open *nix os'es, I am still somewhat happy to stick to my closed system. I don't really have many issues with FT232. I run lots of them on my system.
In one of his posts He write
>
"Some people PM me how he can give that tool for free ---- And stop them make money on Parallax made tool's for them"
Ps. It is maybe not correct word's He used ---- But give content of His post!
You can turn off windows updates easily in Windows 7 (and you could in Vista and XP as well). Not sure why you think you can't. I have always had mine set to check for updates but let me decide which ones to install and when.
Maybe it's Windows 8? I wouldn't know, I haven't upgraded to that and probably won't for any of my main machines.
Also, I have no idea why Brad stopped working on BST and didn't share the code. I've never really used the program, and only downloaded it when people asked me to implement features from it for OpenSpin. I am doing the OpenSpin effort because Parallax had a need and I volunteered to help.
To be honest, I still mostly use PropTool for developing my Spin/PASM code. I'm hoping to work with Jeff Martin to get PropTool using OpenSpin in the near future. I'll probably switch to SimpleIDE once it's ready and working with OpenSpin.
There also seems to be an issue when the Propelleris dumping data fast into the bst serial window. Everything in the IDE slows down and it becomes difficult to reprogram the propeller. Have to close the serial terminal window. If all else fails, restart bst.
The worst issue is when the laptop computer is shut down or put to sleep, and then the serial cable to the FT232 is pulled. The computer can wake up and if it is in a bag, overheat and lead to a cold start. That is an operating system issue, not an FT232 issue. The same thing happens if you pull a flash drive or SD card when the computer is asleep.
Keep up the good work Roy, and don't take requests/demands for features to heart
You have to expand on that.
How is it possible that developing some code to solve some problem is harder if you open it to the 9 billion people on the planet than if you keep it closed to your little company.?
Well, generally, if you intend to have your code run on multiple systems & architectures, you'll want to write your code in ways that support those architectures. Initially, you could write your open source code for a specific architecture, but you'll get less adoption and less help from others. So, you'd want to write your code to support Win & Unix/Linux (this covers Mac OS X as well), for x86 (32-bit & 64-bit), ARM, propeller, etc, at least initially, right?
From my world (Mac OS X), I could develop a Mac application in XCode, publish it as "open source", but it would get adopted by Mac users only. The Mac OS X frameworks would suit my development fine, but would be fairly useless to WIN and Unix/Linux developers.
Yes, having many adopters to help solve algorithmic problems is fantastic, but I need to provide them with a base program that they can run on their systems. And, that's harder than just developing for a specific system!
All I'm saying is that you have to write your open source code with a mindset that it needs to run on more systems than just what is sitting on your desk top.
Expanded?
dgately
On this basis, I will be using GAS & P2Load. What do you use for editting?
It works the other way around as well though. Write the code for the platform you have and if there is any interest in may get ported to whatever platform someone else has.
As Linus said when annoncing Linux in 1991:
Linux (or other *nix OSes) is not more difficult or more complex than Windows, the fact is we learned to use Windows gradually over many years so things appears to be easier because we are used to it. Put Windows and Linux in front of a person who never used a computer in all it's life and both appear equals. The biggest error done by people who try to learn Linux is to install it as dual-boot near Windows, this won't let you learn correctly because you'll end booting Windows when you need to work or do something quickly that you can't do in Linux right now. I know that because few years ago I was in a similar situation, then one day I decided to throw away Windows entirely, installed Linux as the only OS on the computer and started using it and learned how to do things and fix configuration problems. If you do that, in a couple of months you'll work better than you did with Windows, you don't know how things are easier in Linux once you get used to it.
This is partially true, each operating system / architecture has features specific to it that should be leveraged to obtain optimum results. However, experienced programmers will tell you that there are techniques that helps a lot, not only with porting programs to other OSes, but also with maintaining the program itself. One of these is separating the presentation from the business logic. Very easy to do with modern languages. Every program is composed of two parts: the core which do the underlying work and the UI which reads inputs from the user and display calculation results. The core generally doesn't have tight links with the OS so it can be ported to other systems easily, and if done correctly, it is just a matter to add an UI to it. There are also other ways to write portable programs, if you wan that, by using already portable languages like Java which runs on all operating systems, or frameworks like WxWidgets which I believe was ported on all platforms. What I want to say, is that writing portable programs isn't much more complex or difficult than writing programs for a specific OS.
Back to the thread topic, BST is a great tool, I would really like that Brad changes his mind and, at least, release the source code. There are few bizzarre bugs that I would like fixed. For example, I discovered that creating a bst archive has issues with file permissions. If files have write permissions to all, it adds empty files to the archive (you see the entry in the zip archive but the file is empty). I can't imagine why it does that, but should be an easy fix.
Best regards,
Marco.
"But when I see all the complexities of Windows os'es, I am ecstatically happy to stick to my opens source Unix clone."
As pointed out over the years we have all become familiar with the grungy detalis of our systems that we need to know to use them effectively. We have grown with our respective OS's.
My problem now a days is that basically I cannot use Windows. Mostly because the last time I used a Windows OS seriously it was at version 3.1.
Anyway, in the context of this thread which I opened with my BST on Liux difficulties remember that I did happen to start with the last pre-release version of BST and I am running a "testing" version of my OS. One or the other or a combination of those facts gave me a problem. You could say it was all my own stupid fault for always wanting to check out the newest version of everything and living in a permanent state of alpha/beta testing.
You also mentioned portability in another post, and I for one use the same practice for proprietary and open source projects: Develop with portability in mind. Doing that has the added side-effect of improving maintainability too, because you're forced to use standards. So there's no inherent difference between open source and proprietary code there, except that, due to the distributed nature of open source projects it's much easier to get regular testing on many more platforms, something that will occasionally catch subtle bugs that hit rarely on most platforms (and are thus difficult to find), but will hit a particular one quickly and it shows up in the nightly build and test setups (on one open source project I work on, for example, a pool of world-wide developers run automatic builds on a large number of platforms, none of us have access to all of those individually).
After decades of working with software in these environments there's only one valid conclusion: Well-managed Open Source projects win hands-down when it comes to development and maintenance, particularly over time. There is no competition. Even if every one of your proprietary code developers are brilliant.
-Tor
Ah yes proprietary software, that stuff that's thrown together as quickly as possible to satisfy an immediate demand for, well, something. But mostly the goal is profit not functionality, reliability, longevity, portability etc. Hardly designed or tested or reviewed. Often the code is never read by anyone except the guy that wrote it and he is under heavy pressure and has no time to straighten things out.
I myself am guilty of such behavior. The best code I have worked on is in military/aerospace projects where a huge investment is made in design, review, test etc.
One of the neat things about open source is that the guy publishing is likely to take some pride in his work and spend some time making it the best he knows how before showing it to the world. Don't people who push objects to OBEX take that little extra effort to polish things before doing so?
You are both speaking from the point of what works best in the long run and I couldn't agree with you more!
My point went to how one starts their program development with the thought of making their code operable on multiple systems. It takes a bit more thought and investigation to start-up your project and get it into the hands of others who will be running your software on other systems. Being open sourced does help in getting access to the mindset of others, no doubt. But, one must start with a base that is usable and maintainable for the community of developers.
Your discussion points out the extent of your methods and practices in developing good portable code. Not everyone has the knowledge or experience that you do. I've seen many cases right here in the forums where projects are intended as open source, but clearly could not be compiled or run on anything but the creator's system. Can't I make a point that these folks should consider other systems when creating their projects?
I've never stated anything that would negate your statement of: "After decades of working with software in these environments there's only one valid conclusion: Well-managed Open Source projects win hands-down when it comes to development and maintenance, particularly over time. There is no competition. Even if every one of your proprietary code developers are brilliant."
I've also worked for decades, building, testing and integrating an operating system that contained much proprietary and open sourced code. I know how hard it is to build and maintain that code. I've helped to transition that code across all sorts of hardware that didn't exist when the code was initially created. If that project wasn't "well managed", it would not have survived. That's what I meant by "harder"...
I didn't mean that as a personal affront to your work.
And back to the topic... Brad has stated that he wants nothing to do with updating BST. That's OK as he has a perfect right to that. As long as BST works, we've been blessed with a great bit of code. There are solutions in-development, they are open source and are being developed by some folks that really care about taking steps to make sure they are open for us. Life is good!
dgately
No, that's not my point. Reviewing what I wrote I think I have not made clear what I mean. It is not a matter of considering other systems, or having a mindset for portable code, it is a matter of good programming. When your code is well written, well structured, with clear boundaries between tasks, porting to another system will be fairly easy. Good programming should not be considered just to write portable code but as a way to write maintainable code that can be reviewed after several years and is still clear to understand and update, even by yourself (believe me, when I look at my earliest works when DOS was the only OS, I ask myself what the hell I was thinking to do that, when I remember what it was doing, of course).
Of course good programming comes with experience and experience comes with writing programs and learn how to make them better. Not easy to accomplish if you write programs just occasionally and to fit specific tasks, I agree.
Right, but an easy solution: release the source, others will update BST. :-)
Just amazing to read all this, you all see the power of www.lazarus.freepascal.org in the hands of a skilled engineer.
Really nice work Brad. Wonder why he didn't choose C/C++?
I use BST on every platform without error, still.