I agree with the "Non-Native" appearance aspect of the Java apps, and sometimes they do seem a little "clunky", but I think that is more of a side effect of being different than the native apps.
The general feeling that I seem to get here on the prop forum is that there is a perceived need to "compete" with the Arduino, I think the only way to achieve that is to stay with the things that are embraced by the OS community. I think having the new IDE done in something like REALBASIC would not meet that goal.
I don't want to start a flame war but I think many people embrace open source for the "freedom from cost" not the "freedom of information", and as such the though of having to buy the compiler if they want to make changes just won't cut it.
Your enthusiasm for REALBASIC has not fallen on deaf ears though, I'll give it a look in the next week or so when I get some free time as it does sound interesting.
I dont want to start a flame war either, but I get worried about "OPEN SOURCE" in general, To Be a programmer and make a living from it you need to GET PAID, While I understand that open source for TOOL's of the trade is a valid idea, FINISHED APPLICATION's need to be paid for, otherwise why should anyone spend a lot of hard work learning any language, just to NOT BE PAID For it!
I really don't want everything to be FREE!, thats why I don't mind paying for software, heck I would be happy to pay for a MAC Version of SPIN! I use SPIN Every day and I use RB everyday,
By the way I found an article on REAL-BASIC vs all the others.
Can I ask again, IS there a SYNTAX DEFINITION for SPIN/PASM ?
Dave M
That is the real problem. You can have all the fancy widgets that color code text but you need a grammar to drive it. As I said in another thread earlier and asked the same question several months ago if a grammar existed and got no answer. That is what I have been researching for a while and believe I have the knowledge and tools to create one. I am starting now and hope to have something put together in the next couple of weeks. It will be written with ANTLR (which also plugins to eclipse). It seems to be a very powerful tool. The AST's that are generated with it are compatible with IMP and Xtext which can be used in the eclipse world to build an ide for eclipse.
I had to download VIM for mac, run that, and open up the definition file, I can read it, Its not that much info
Can any tell me,
Do syntax definitions have a STANDARD FORMAT?
That realbasic application I mentioned ( CustomEditField), had several definitions in a folder for popular languages, they were all XML Files, for example here is the syntax definition for Java
So In order to do this for SPIN, we would have to create an XML file that describes the SPIN syntax, similar to how these other languages do?
Is this the way to go?
Once we get the Syntax definition working we can start writing code, Better still we can modify the Realbasic project to make a fully function IDE, The Code writing is just part of the project
here is the SPIN SYNTAX DEFINITION for VIM,Somehow this needs to be converted to XML
" Vim syntax file
" Language: Propeller Spin
" Maintainer: Andrey Demenev <demenev@gmail.com>
" Last Change: 2009 Dec 13
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case ignore
syn match spinLocalLabel ":[a-z_][a-z0-9_]*"
syn match spinIdentifier "[a-z_][a-z0-9_]*"
syn keyword spinType BYTE
syn keyword spinType LONG
syn keyword spinType ROUND
syn keyword spinType TRUNC
syn keyword spinType FLOAT
syn keyword spinType WORD
syn keyword spinCond IF_ALWAYS IF_NEVER IF_E IF_Z IF_NE IF_NZ
syn keyword spinCond IF_NC_AND_NZ IF_NZ_AND_NC IF_A IF_B IF_C
syn keyword spinCond IF_AE IF_NC IF_C_OR_Z IF_Z_OR_C IF_BE
syn keyword spinCond IF_C_EQ_Z IF_Z_EQ_C IF_C_NE_Z IF_Z_NE_C
syn keyword spinCond IF_C_AND_Z IF_Z_AND_C IF_C_AND_NZ
syn keyword spinCond IF_NZ_AND_C IF_NC_AND_Z IF_Z_AND_NC
syn keyword spinCond IF_C_OR_NZ IF_NZ_OR_C IF_NC_OR_Z
syn keyword spinCond IF_Z_OR_NC IF_NC_OR_NZ IF_NZ_OR_NC
syn keyword spinCond WC WZ WR NR
syn keyword spinCond IF ELSE ELSEIF ELSEIFNOT IFNOT CASE OTHER
syn keyword spinCond REPEAT FROM TO STEP UNTIL WHILE NEXT
syn keyword spinCond QUIT
syn keyword spinReserved ABS ABSNEG ADD ADDABS ADDS ADDSX ADDX AND
syn keyword spinReserved ANDN BYTEFILL BYTEMOVE CALL CHIPVER
syn keyword spinReserved CLKFREQ _CLKFREQ CLKMODE _CLKMODE CLKSET CMP CMPS
syn keyword spinReserved CMPSUB CMPSX CMPX CNT COGID COGINIT COGNEW
syn keyword spinReserved COGSTOP CON CONSTANT CTRA CTRB DAT DIRA DIRB
syn keyword spinReserved DJNZ ENC FALSE FILE FIT
syn keyword spinReserved _FREE FRQA FRQB HUBOP
syn keyword spinReserved INA INB
syn keyword spinReserved JMP JMPRET LOCKCLR LOCKNEW LOCKRET LOCKSET LONGFILL
syn keyword spinReserved LONGMOVE LOOKDOWN LOOKDOWNZ LOOKUP LOOKUPZ MAX MAXS MIN MINS
syn keyword spinReserved MOV MOVD MOVI MOVS MUL MULS MUXC MUXNC MUXNZ MUXZ NEG NEGC
syn keyword spinReserved NEGNC NEGNZ NEGX NEGZ NOP NOT OBJ ONES OR ORG
syn keyword spinReserved OUTA OUTB PAR PHSA PHSB PI PLL16X PLL1X PLL2X PLL4X PLL8X
syn keyword spinReserved POSX PRI PUB RCFAST RCL RCR RCSLOW RDBYTE RDLONG RDWORD
syn keyword spinReserved REBOOT RES RESULT RET REV ROL ROR SAR SHL
syn keyword spinReserved SHR SPR _STACK STRCOMP STRING STRSIZE SUB SUBABS SUBS
syn keyword spinReserved SUBSX SUBX SUMC SUMNC SUMNZ SUMZ TEST TESTN TJNZ TJZ
syn keyword spinReserved TRUE VAR VCFG VSCL WAITCNT WAITPEQ WAITPNE WAITVID
syn keyword spinReserved WORDFILL WORDMOVE WRBYTE WRLONG WRWORD
syn keyword spinReserved _XINFREQ XINPUT XOR XTAL1 XTAL2 XTAL3
syn keyword spinReserved RETURN ABORT
" Various #'s as defined by GAS ref manual sec 3.6.2.1
" Technically, the first decNumber def is actually octal,
" since the value of 0-7 octal is the same as 0-7 decimal,
" I prefer to map it as decimal:
syn match decNumber "#\?[0-9][0-9_]*"
syn match hexNumber "#\?\$[0-9a-fA-F_]\+"
syn match binNumber "#\?%[01_]\+\>"
syn match quatNumber "#\?%%[0-3_]\+\>"
syn match spinComment "'.*"
syn region spinMLComment start="{" end="}"
syn region spinMLDocComment start="{{" end="}}"
syn region spinString start="\"" end="\""
syn case match
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_spin_syntax_inits")
if version < 508
let did_spin_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
" The default methods for highlighting. Can be overridden later
HiLink spinLocalLabel Label
HiLink spinComment Comment
HiLink spinMLComment Comment
HiLink spinMLDocComment Comment
HiLink spinString String
HiLink spinCond PreCondit
HiLink spinReserved Special
HiLink hexNumber Number
HiLink decNumber Number
HiLink octNumber Number
HiLink binNumber Number
HiLink quatNumber Number
HiLink spinIdentifier Identifier
HiLink spinType Type
delcommand HiLink
endif
let b:current_syntax = "spin"
here is the SPIN SYNTAX DEFINITION for VIM,Somehow this needs to be converted to XML
Now that you have vim, you can use it's powerful sed features to convert that to xml after a few years of head scratching. Just kidding of course. VIM is a great editor for old-timers.
The problem is you need much more than this for an IDE. You need to be able to parse the input and do analysis to know whether the input is valid. It is even more complex because you want to be able to auto indent where appropriate. In effect, you need to build a compiler or interpreter to work with your editor model. You have in the vim and xml file you show just a way to identify the tokens and assign colors to the tokens. That is somewhat interesting but does not work for an IDE.
Syntax Highlighting
Line auto-indenting
Autocomplete
Line numbering
Invisible characters
Undo
Line Foldings
Find/Replace
Printing
Bookmarks
Placeholders
All the rest Compiling Error checking, not to mention putting this in a NICE IDE development tool can all be done with RB. The RB Language is a lot easier to USE than many others.
You have in the vim and xml file you show just a way to identify the tokens and assign colors to the tokens. That is somewhat interesting but does not work for an IDE.
Different people have different needs :-)
I like Eclipse for Java with all the great features it brings. Getting the same features to work as well with SPIN is a huge task - not to mention meeting the standard of the excellent Java debugger. Control click on method name for zooming in would be nice as would "intellisense" like features. Making something that everyone will use is very difficult though. Sometimes they wont use it just because they prefer some other silly thing :-) Good luck.
I understand - you don't get that for free - you have to write a parser and syntactic analyzer and make the appropriate calls into the editor hooks. It is exactly the same in eclipse. You get the ide part for free. It is all the semantic stuff that is hard. I prefer to use eclipse for this and will write the appropriate Plugin.
I like Eclipse for Java with all the great features it brings. Getting the same features to work as well with SPIN is a huge task - not to mention meeting the standard of the excellent Java debugger. Control click on method name for zooming in would be nice as would "intellisense" like features. Making something that everyone will use is very difficult though. Sometimes they wont use it just because they prefer some other silly thing :-) Good luck.
I understand Steve and I expect it is going to take a while to get this done. I would like to see a fairly deep integration and those are the hardest. I will have to find a good debugger stub for the propeller. Didn't you do a gdb one a while back or am I thinking of some other project?
All this is a waste of time unless we decide to MAKE A BETTER IDE,
Along with all the current features of SPIN, what could we add to MAKE OUR JOB EASIER,
Built in debugger?
Project management with revision control
Conditional Compiling
"Graphical" view of the basic structure of a project ( i.e Objects vs cogs, vs methods )
Dot Notation & Auto Complete
A better library for managing Master objects, My objects, and code snippets
Code analysis, Unused variables methods etc
COG usage
TRUE Global Variables with parameter passing
Better in code documentation
Better bookmarks Mark code as ( tested, needs working ect)
Built in to do list
Auto code generation?
So many things.
Maybe we need a way to build a BASIC IDE, then everyone can build ADDONS that can be installed to their choosing to make the IDe do what they want, So we we need and add-on manager? We can then decide what add-ons are "Built" in to the MAIN Versions. Remember all of the source code to be left open, and must be able to be developed on all platforms.
Its a big job , but a project plan we be the best start!
I think this thread got off-topic somewhere. My impression from the initial post was that Dr_Acula was looking for a cross-platform development tool to create _some_ program that would interface with a Propeller (ie, graphical lighting controller, etc.), not a OSS IDE environment that could be used to program the Propeller.
I may be totally wrong, but either way, I think a new thread specifically to discuss the "OSS Spin Tool Replacement Strategies" couldn't hurt.
That said, RealBasic would be fine for creating the lighting controller, and yes, you could use it to program an IDE. But what would be the sense? It would be more productive to port the current Spin Tool from Delphi to Lazarus (ie, rewrite the non-OSS controls that Parallax uses), than to start from scratch in RealBasic. And truth be told, not everyone that might get involved in the project will want to pay $$$ for RealBasic/Delphi/VisualStudio/etc., if it becomes mandatory to moving forward.
And as far as native code goes, a platform like Eclipse isn't limited to Java applications. Configure it to work with a native compiler and appropriate libraries, and you're good to go.
I think the thread is still on topic. Sorry I have been offline - I have spent today putting parts in bags for dracblade kits.
Technical question re color syntax highlighting - any method. How do you make sure that it does not highlight text that is in a comment section or in a comment block?
I'd be interested to see the code to do that. In vb.net I cheated by highlighting everything first, then doing the comment section last, so it overwrote the color text with green comment text text. Probably not the most efficient way though.
All the comments about a smart compiler/highlighter are extremely relevant.
An IDE may be able to shell out to other programs for the actual compilation/download. eg for Spin you can shell out to BST or Homespun. For C you shell out to Catalina. For Basic you shell out to BCX, then shell Catalina, then shell Homespun. Ditto any other command line compilers out there.
So - the IDE may not need to be a compiler. But it does need to have intelligence in order to be able to highlight Spin/C/Basic with all their subtle differences.
I have a rudimentary color highlighting for Spin/C/Basic already BUT it is in vb.net, and it is slow, and it does not do auto indents, and it does not do autocapitalisation.
So I'm particularly excited by all the *better* methods to do this sort of thing.
.complete is also something that could be very useful. For spin it would be a matter of searching through child objects and finding all the .pub methods and putting them in a list.
And sooner or later one has to think about how to do those little arrows that the proptool has.
I still very much have an open mind on Eclipse vs Real Basic. And others (Qt has been mentioned before but Heater said something a couple of weeks ago about it being bought out by Microsoft).
Meanwhile, before anyone can figure out how to create a plugin for eclipse or even decide what language to use to create an IDE from scratch, Andrey Demenev has put together the beginnings of a crossplatform IDE in Qt. It already has beautiful syntax highlighting and indentation markers. It is also fast.
Amazing how this thread can go on so long without a mention of this great effort by Andrey.
Please, how many times to I have to repeat myself!
REAL BASIC can do this, the languages is easy!
Those links I posted does all the syntax highlighting, everything can also be done in the same application, no need for plugins, the only things extra you will need is Bradc's compiler and is boot loader,
I have got his boot loader working in real basic, a couple of lines of code is all it took!
I use real basic to talk to my prop project all the time, using RS232 Serial ANS RS485!
Please can someone have a look at the links I posted!
WHY does the development environment need to OPEN SOURCE!! Only the IDE created from it needs to be!
Windows Operating system and MAC OSX are NOT Open source these need to be paid for and these are used by everyone, Is Linux fully Open source?
The IDE for the PROP CHIP WILL BE Open source as we ALL can contribute to it ( including mac users) , Parallax spin, and Brads BST these are not Open source.
I would prefer to use an application ( paid or free) open or not) that make the TASK easier to do.
Why put these restrictions in place!
I can tell you now if SPIN was originally developed with real basic and PARALLAX decided to make the source code available we would not be talking about this! Parallax could then worry about making chips instead of IDE's
I waited years for a MAC Version of SPIN!
Another thing, COMPUTER HARDWARE is NOT FREE either, so at some point you do need to spend a bit of money if paying for things is the issue.
I am about to spend a grand on EAGLE CAD for MAC, Why ,because I need to get work done and make money. try and find a decent PCB cad tool thats open source for mac!
Sorry if I sound a bit rude, but as a mac user I always feel left out.
The enthusiasm is hard to resist. Ok, tomorrow I will get RealBasic and test it out. I'll get Eclipse too.
The point about open source writing the code vs open source running the code is valid. There is no perfect program. .net is turning into bloatware and won't run on everything. Eclipse does not seem to have Basic. Qt is C only and seems to have been bought by Microsoft. Jabaco may be close to the mark as it is Java behind the scenes but it is still in the early stages of development.
There is certainly scope to modularise programs - eg an IDE can be the eye candy front end, but any of the shelled programs can be in any language you like. That means an IDE will be smaller, and hence down the track could be ported to other languages, even reverse engineered. Some of the code for syntax highlighting looks like it can be dropped into several languages anyway.
Yes the trial version. But I don't mind paying for programs that impress me. BTW many thanks for your offer to help code a few things - I might be taking you up on that soon!
Okay, my misunderstanding. In that case, there are plenty of open-sourced text editors & IDEs that do syntax highlighting. You might want to browse some of the source code for these to get some ideas of how they handle the task. JEdit is a nice Java-based text editor, and Eclipse, Netbeans, and IntelliJ are a few IDEs. There are also the code samples that DavidM has posted, which should be a bit closer to VB.Net. Another cross-platform editor that you might look at is Komodo Edit by ActiveState, which is open-sourced, and built on the Mozilla platform (think Firefox).
Great to hear there are more potential options. Much to explore. I guess one big challenge for any syntax highlighter is going to be those Spin arrows. I wonder if there is something similar for other 'indent based' languages that could be copied?
@DavidM, I have realbasic installed and a simple program running. First question - when I hit the green "run" button, it takes 30 seconds, my internet connection goes crazy, and finally every time ZoneAlarm pops up a message asking if this (now new) program can connect to the internet. Is there a compilation process that is faster and/or does not need an internet connection?
All this is a waste of time unless we decide to MAKE A BETTER IDE,
Along with all the current features of SPIN, what could we add to MAKE OUR JOB EASIER,
Built in debugger?
Project management with revision control
Conditional Compiling
"Graphical" view of the basic structure of a project ( i.e Objects vs cogs, vs methods )
Dot Notation & Auto Complete
A better library for managing Master objects, My objects, and code snippets
Code analysis, Unused variables methods etc
COG usage
TRUE Global Variables with parameter passing
Better in code documentation
Better bookmarks Mark code as ( tested, needs working ect)
Built in to do list
Auto code generation?
So many things.
Maybe we need a way to build a BASIC IDE, then everyone can build ADDONS that can be installed to their choosing to make the IDe do what they want, So we we need and add-on manager? We can then decide what add-ons are "Built" in to the MAIN Versions. Remember all of the source code to be left open, and must be able to be developed on all platforms.
Its a big job , but a project plan we be the best start!
Dave M
You are right - this is a waste of time. I went an looked at the demo for Real Basic. It is a Gui builder it is NOT an IDE platform - there is a big difference. You will have to build the whole IDE from scratch, that means you will have to build all the widget intercommunications so when one view is updated other views are updated (Please don't trivialize this - it is very hard to get right). On the other hand, eclipse is a platform for tools. All the views and perspective work is in the base platform (hundreds of man years of effort to make it all work right). Most of writing an plugin IDE for eclipse is in connecting up the pieces. The hard part in both cases (yours and eclipse) is building a parser that connects to the editor to real time syntax highlighting. Eclipse has frameworks for assisting on this as again it is a tool to build tools - you will have to invent all that infrastructure in Real Basic. Real Basic may be good for building GUI applications, but it is not the right tool to build an IDE unless you want to invent everything.
I have been working on a temporary solution with Eclipse. Using the Eclipse CDT version, there is a place for "External Tools", under Run->External Tools->External Tools Configuration. In this location it is possible to create your own build path and use the "run or build" radio button, errors will be displayed in the "console" (except with Propellent, they are pop-ups). Multiple external tools may be added and kept in the "Favorites Folder," and selected as necessary. This provides many options to be added on without a plug-in. Syntax highlighting can be facilitated by modifying existing parsers within the CDT project. But it seems that if you want more than one compiler, it is best to build a separate project for each compiler. (Also, External Tools exists in all versions of Eclipse and can be used to run all kinds of scripts or any other non-supported tools).
I went an looked at the demo for Real Basic. It is a Gui builder it is NOT an IDE platform - there is a big difference.
HI Yoda, I guess you can say the RB is a "BLANK CANVAS", if comparing to Eclipse, but RB is NOT just a GUI Builder, GUI is only one part of any app that you may build, So yes you will have to code up everything, But as I keep mentioning, That link I provided showed that this has been done, the rest will be how this is interfaced.
@DavidM, I have realbasic installed and a simple program running. First question - when I hit the green "run" button, it takes 30 seconds, my internet connection goes crazy, and finally every time ZoneAlarm pops up a message asking if this (now new) program can connect to the internet. Is there a compilation process that is faster and/or does not need an internet connection?
I believe that the debugger talks to the app via networking of some kind ( Interprocess comms?) , Not external, We had the same issue on the MAC, You will need to allow access in the firewall I believe.
That is not done at all. Providing a text widget that does colorized text, indenting, etc is not done. You have to have a live parser feed that to get what people are looking for. Eclipse has the same thing. What it has this does not have is the methods to do synchronized updates across many views and perspective. What you have is the easy part and has been done many times. The model to drive it and keep everything in synch is not there. For example you don't have a multi-tab editor that if I have the same source file opened it is updated in both, or the ability to update an object viewer at the same time. You will have to invent that and it is hard. Eclipse provides the framework to do that. You have a lot of code ahead of you to make this work, but I doubt you will get as good an IDE out of it compared to starting with eclipse which you get a lot of the framework for free. You really need to look at eclipse and use it with Java or another language and see the true power of the views and perspectives - you get that for free in eclipse and it is free as well. Why would I want to fork out 300 dollars (maybe a 100 - it is not clear the cheaper will do everything) to make a substandard IDE ?
Any ways this discussion had gone far enough - I am off to work on eclipse - good luck on your endeavors - from what I read here you may not have many takers for help with a proprietary system.
Comments
Ok So Eclipse would produce a .jar file which should run on any machine?
One thing I have noticed with these java apps is they they seem "Clunky" and "Non-Native" also kind of slowish,
Its really no big deal to press a button and all your versions come out!
Dave M
I agree with the "Non-Native" appearance aspect of the Java apps, and sometimes they do seem a little "clunky", but I think that is more of a side effect of being different than the native apps.
The general feeling that I seem to get here on the prop forum is that there is a perceived need to "compete" with the Arduino, I think the only way to achieve that is to stay with the things that are embraced by the OS community. I think having the new IDE done in something like REALBASIC would not meet that goal.
I don't want to start a flame war but I think many people embrace open source for the "freedom from cost" not the "freedom of information", and as such the though of having to buy the compiler if they want to make changes just won't cut it.
Your enthusiasm for REALBASIC has not fallen on deaf ears though, I'll give it a look in the next week or so when I get some free time as it does sound interesting.
C.W.
I dont want to start a flame war either, but I get worried about "OPEN SOURCE" in general, To Be a programmer and make a living from it you need to GET PAID, While I understand that open source for TOOL's of the trade is a valid idea, FINISHED APPLICATION's need to be paid for, otherwise why should anyone spend a lot of hard work learning any language, just to NOT BE PAID For it!
I really don't want everything to be FREE!, thats why I don't mind paying for software, heck I would be happy to pay for a MAC Version of SPIN! I use SPIN Every day and I use RB everyday,
By the way I found an article on REAL-BASIC vs all the others.
http://www.realsoftware.com/support/choosingadev.php
Can I ask again, IS there a SYNTAX DEFINITION for SPIN/PASM ?
Dave M
That is the real problem. You can have all the fancy widgets that color code text but you need a grammar to drive it. As I said in another thread earlier and asked the same question several months ago if a grammar existed and got no answer. That is what I have been researching for a while and believe I have the knowledge and tools to create one. I am starting now and hope to have something put together in the next couple of weeks. It will be written with ANTLR (which also plugins to eclipse). It seems to be a very powerful tool. The AST's that are generated with it are compatible with IMP and Xtext which can be used in the eclipse world to build an ide for eclipse.
David,
Here is a link to another thread that may be helpful:
http://forums.parallax.com/showthread.php?118328-Spin-syntax-definition-for-Vim
C.W.
P.S. Totally get the need to be paid thing, between open source and offshoring it is hard to make a buck these days.
Thanks for the syntax definitions link,
I had to download VIM for mac, run that, and open up the definition file, I can read it, Its not that much info
Can any tell me,
Do syntax definitions have a STANDARD FORMAT?
That realbasic application I mentioned ( CustomEditField), had several definitions in a folder for popular languages, they were all XML Files, for example here is the syntax definition for Java
So In order to do this for SPIN, we would have to create an XML file that describes the SPIN syntax, similar to how these other languages do?
Is this the way to go?
Once we get the Syntax definition working we can start writing code, Better still we can modify the Realbasic project to make a fully function IDE, The Code writing is just part of the project
here is the SPIN SYNTAX DEFINITION for VIM,Somehow this needs to be converted to XML
regards
Dave M
Thats why I am talking about realbasic,
Have a look at the link i gave out
this is a screen shot
http://homepage.mac.com/alexrestrepo/images/shots/CustomEditField.png
this program has
Syntax Highlighting
Line auto-indenting
Autocomplete
Line numbering
Invisible characters
Undo
Line Foldings
Find/Replace
Printing
Bookmarks
Placeholders
All the rest Compiling Error checking, not to mention putting this in a NICE IDE development tool can all be done with RB. The RB Language is a lot easier to USE than many others.
heres a google link
http://code.google.com/p/custom-editfield/
Dave M
I like Eclipse for Java with all the great features it brings. Getting the same features to work as well with SPIN is a huge task - not to mention meeting the standard of the excellent Java debugger. Control click on method name for zooming in would be nice as would "intellisense" like features. Making something that everyone will use is very difficult though. Sometimes they wont use it just because they prefer some other silly thing :-) Good luck.
I understand Steve and I expect it is going to take a while to get this done. I would like to see a fairly deep integration and those are the hardest. I will have to find a good debugger stub for the propeller. Didn't you do a gdb one a while back or am I thinking of some other project?
All this is a waste of time unless we decide to MAKE A BETTER IDE,
Along with all the current features of SPIN, what could we add to MAKE OUR JOB EASIER,
Built in debugger?
Project management with revision control
Conditional Compiling
"Graphical" view of the basic structure of a project ( i.e Objects vs cogs, vs methods )
Dot Notation & Auto Complete
A better library for managing Master objects, My objects, and code snippets
Code analysis, Unused variables methods etc
COG usage
TRUE Global Variables with parameter passing
Better in code documentation
Better bookmarks Mark code as ( tested, needs working ect)
Built in to do list
Auto code generation?
So many things.
Maybe we need a way to build a BASIC IDE, then everyone can build ADDONS that can be installed to their choosing to make the IDe do what they want, So we we need and add-on manager? We can then decide what add-ons are "Built" in to the MAIN Versions. Remember all of the source code to be left open, and must be able to be developed on all platforms.
Its a big job , but a project plan we be the best start!
Dave M
I may be totally wrong, but either way, I think a new thread specifically to discuss the "OSS Spin Tool Replacement Strategies" couldn't hurt.
That said, RealBasic would be fine for creating the lighting controller, and yes, you could use it to program an IDE. But what would be the sense? It would be more productive to port the current Spin Tool from Delphi to Lazarus (ie, rewrite the non-OSS controls that Parallax uses), than to start from scratch in RealBasic. And truth be told, not everyone that might get involved in the project will want to pay $$$ for RealBasic/Delphi/VisualStudio/etc., if it becomes mandatory to moving forward.
And as far as native code goes, a platform like Eclipse isn't limited to Java applications. Configure it to work with a native compiler and appropriate libraries, and you're good to go.
Technical question re color syntax highlighting - any method. How do you make sure that it does not highlight text that is in a comment section or in a comment block?
I'd be interested to see the code to do that. In vb.net I cheated by highlighting everything first, then doing the comment section last, so it overwrote the color text with green comment text text. Probably not the most efficient way though.
All the comments about a smart compiler/highlighter are extremely relevant.
An IDE may be able to shell out to other programs for the actual compilation/download. eg for Spin you can shell out to BST or Homespun. For C you shell out to Catalina. For Basic you shell out to BCX, then shell Catalina, then shell Homespun. Ditto any other command line compilers out there.
So - the IDE may not need to be a compiler. But it does need to have intelligence in order to be able to highlight Spin/C/Basic with all their subtle differences.
I have a rudimentary color highlighting for Spin/C/Basic already BUT it is in vb.net, and it is slow, and it does not do auto indents, and it does not do autocapitalisation.
So I'm particularly excited by all the *better* methods to do this sort of thing.
.complete is also something that could be very useful. For spin it would be a matter of searching through child objects and finding all the .pub methods and putting them in a list.
And sooner or later one has to think about how to do those little arrows that the proptool has.
I still very much have an open mind on Eclipse vs Real Basic. And others (Qt has been mentioned before but Heater said something a couple of weeks ago about it being bought out by Microsoft).
I don't suppose Eclipse does Basic?
Amazing how this thread can go on so long without a mention of this great effort by Andrey.
Please, how many times to I have to repeat myself!
REAL BASIC can do this, the languages is easy!
Those links I posted does all the syntax highlighting, everything can also be done in the same application, no need for plugins, the only things extra you will need is Bradc's compiler and is boot loader,
I have got his boot loader working in real basic, a couple of lines of code is all it took!
I use real basic to talk to my prop project all the time, using RS232 Serial ANS RS485!
Please can someone have a look at the links I posted!
http://homepage.mac.com/alexrestrepo/images/shots/CustomEditField.png
http://code.google.com/p/custom-editfield/
here the code for getting the bootloader to work
Dave M
C
RealBasic may well be wonderfull however it is not an opensource product and is therefore off topic for this thread.
As it is a closed source compiler it has no place on my Linux box. There are already a raft of opensource alternatives.
WHY does the development environment need to OPEN SOURCE!! Only the IDE created from it needs to be!
Windows Operating system and MAC OSX are NOT Open source these need to be paid for and these are used by everyone, Is Linux fully Open source?
The IDE for the PROP CHIP WILL BE Open source as we ALL can contribute to it ( including mac users) , Parallax spin, and Brads BST these are not Open source.
I would prefer to use an application ( paid or free) open or not) that make the TASK easier to do.
Why put these restrictions in place!
I can tell you now if SPIN was originally developed with real basic and PARALLAX decided to make the source code available we would not be talking about this! Parallax could then worry about making chips instead of IDE's
I waited years for a MAC Version of SPIN!
Another thing, COMPUTER HARDWARE is NOT FREE either, so at some point you do need to spend a bit of money if paying for things is the issue.
I am about to spend a grand on EAGLE CAD for MAC, Why ,because I need to get work done and make money. try and find a decent PCB cad tool thats open source for mac!
Sorry if I sound a bit rude, but as a mac user I always feel left out.
Dave M
The point about open source writing the code vs open source running the code is valid. There is no perfect program. .net is turning into bloatware and won't run on everything. Eclipse does not seem to have Basic. Qt is C only and seems to have been bought by Microsoft. Jabaco may be close to the mark as it is Java behind the scenes but it is still in the early stages of development.
There is certainly scope to modularise programs - eg an IDE can be the eye candy front end, but any of the shelled programs can be in any language you like. That means an IDE will be smaller, and hence down the track could be ported to other languages, even reverse engineered. Some of the code for syntax highlighting looks like it can be dropped into several languages anyway.
You mean the trial version.
dave m
@DavidM, I have realbasic installed and a simple program running. First question - when I hit the green "run" button, it takes 30 seconds, my internet connection goes crazy, and finally every time ZoneAlarm pops up a message asking if this (now new) program can connect to the internet. Is there a compilation process that is faster and/or does not need an internet connection?
You are right - this is a waste of time. I went an looked at the demo for Real Basic. It is a Gui builder it is NOT an IDE platform - there is a big difference. You will have to build the whole IDE from scratch, that means you will have to build all the widget intercommunications so when one view is updated other views are updated (Please don't trivialize this - it is very hard to get right). On the other hand, eclipse is a platform for tools. All the views and perspective work is in the base platform (hundreds of man years of effort to make it all work right). Most of writing an plugin IDE for eclipse is in connecting up the pieces. The hard part in both cases (yours and eclipse) is building a parser that connects to the editor to real time syntax highlighting. Eclipse has frameworks for assisting on this as again it is a tool to build tools - you will have to invent all that infrastructure in Real Basic. Real Basic may be good for building GUI applications, but it is not the right tool to build an IDE unless you want to invent everything.
There is also a Qt plug-in for Eclipse.
HI Yoda, I guess you can say the RB is a "BLANK CANVAS", if comparing to Eclipse, but RB is NOT just a GUI Builder, GUI is only one part of any app that you may build, So yes you will have to code up everything, But as I keep mentioning, That link I provided showed that this has been done, the rest will be how this is interfaced.
thanks
Dave M
As I said that example link showed that this has been done! and quite well from what I see.
http://homepage.mac.com/alexrestrepo/images/shots/CustomEditField.png
Thanks
Dave M
I believe that the debugger talks to the app via networking of some kind ( Interprocess comms?) , Not external, We had the same issue on the MAC, You will need to allow access in the firewall I believe.
Compiling should only take a few seconds
Try turning of zonealarm and see if that helps.
these links may help.
http://forums.realsoftware.com/viewtopic.php?f=1&t=30797&hilit=zonealarm
http://forums.realsoftware.com/viewtopic.php?f=1&t=13468&hilit=zonealarm
Dave M
That is not done at all. Providing a text widget that does colorized text, indenting, etc is not done. You have to have a live parser feed that to get what people are looking for. Eclipse has the same thing. What it has this does not have is the methods to do synchronized updates across many views and perspective. What you have is the easy part and has been done many times. The model to drive it and keep everything in synch is not there. For example you don't have a multi-tab editor that if I have the same source file opened it is updated in both, or the ability to update an object viewer at the same time. You will have to invent that and it is hard. Eclipse provides the framework to do that. You have a lot of code ahead of you to make this work, but I doubt you will get as good an IDE out of it compared to starting with eclipse which you get a lot of the framework for free. You really need to look at eclipse and use it with Java or another language and see the true power of the views and perspectives - you get that for free in eclipse and it is free as well. Why would I want to fork out 300 dollars (maybe a 100 - it is not clear the cheaper will do everything) to make a substandard IDE ?
Any ways this discussion had gone far enough - I am off to work on eclipse - good luck on your endeavors - from what I read here you may not have many takers for help with a proprietary system.