Although there is always more room for improvement to the Cobra language, IDE support is by far our greatest weakness. It's also become apparent that whatever IDE you are targeting, there should be 2 or more people working on it rather than just 1. These are not easy projects and having someone to work with will be helpful and more energizing.
In other language communities, the people working on the language and the people working on IDEs are usually different groups because there is enough work in both areas to go around. Since I work on the language, it is unlikely I will ever have time to contribute to IDE support.
I hope that some of you reading this will.
Also, to be clear, I am referring to .NET-based IDEs like Visual Studio, MonoDevelop and SharpDevelop which can provide debugging of Cobra programs and other conveniences.
There is the question of what feature set characterizes good IDE integration. I believe it would be:
-- syntax highlighting (not too hard)
-- project templates (not too hard)
-- debugging (should almost come for free since debuggers work with bytecode)
-- autocompletion / intellisense (hard)
There are also visual designers, but with multiple frameworks for GUIs, WUIs and now mobile, that's frosting for the cake.
Did I miss anything?
Forums
IDE support sucks
31 posts
• Page 1 of 4 • 1, 2, 3, 4
Re: IDE support sucks
I'd add
Program structure navigation ( static Tree visually, ctags like by keystroke/token)
Build/Run/(GenDoc) as well as debug support
Multifile ( multiTab by preference)
- hopscc
- Posts: 632
- Location: New Plymouth, Taranaki, New Zealand
Re: IDE support sucks
Charles wrote:There is the question of what feature set characterizes good IDE integration. I believe it would be:
-- syntax highlighting (not too hard)
-- project templates (not too hard)
-- debugging (should almost come for free since debuggers work with bytecode)
-- autocompletion / intellisense (hard)
There are also visual designers, but with multiple frameworks for GUIs, WUIs and now mobile, that's frosting for the cake.
Did I miss anything?
Regarding estimates above, I've spent numerous hours last year working with MS's debugger, and getting it compiled down to a DLL, but haven't had the bandwidth to then integrate it w/ Naja (no surprise there, eh?). I don't see debugging as a particular "almost come for free" task -- unless you've got an easier tool to hook up to than MS's debugger, the UI wiring to make it work as many expect is a big task. From the unix and python ends, I understand that people may be comfortable using a command line to control the debugger, but in that scenario, I'd suggest using the debugging route you've posted on the Wiki.
Intellisense is hard, but can be done in incremental steps. I've got a prototype for some basic support (against referenced DLLs, not against current code), but think when handling something like ctags, etc.. that feature will be easier to extend.
And just to add to the list of nice to haves, refactoring -- I really use that a lot in Visual Studio.
- torial
- Posts: 229
- Location: IA
Re: IDE support sucks
Ah yes, refactoring. Particularly the "rename" which I use more than any other.
Regarding the debugging, I was referring to if you made an add-in for an existing .NET IDE. If you are creating a new IDE, I'm sure it is much harder.
Mono has a "soft debugger" and I know at least one person who used it successfully for his Mac-based Mono-oriented editor (Continuum). I don't know if it runs well on Windows or whether or not it is easier than the Microsoft debugger.
Regarding the debugging, I was referring to if you made an add-in for an existing .NET IDE. If you are creating a new IDE, I'm sure it is much harder.
Mono has a "soft debugger" and I know at least one person who used it successfully for his Mac-based Mono-oriented editor (Continuum). I don't know if it runs well on Windows or whether or not it is easier than the Microsoft debugger.
- Charles
- Posts: 2515
- Location: Los Angeles, CA
Re: IDE support sucks
What's everyone using for writing Cobra code right now and what would you like to be using?
I've been using Vim and recently have started using in-file autocompletion (Ctrl+N or Ctrl+P when in insert mode). I'm a long time Vim user and it never occurred to me to google "Vim autocomplete" before!
I had never tried MonoDevelop but I installed it yesterday and wrote some quick Hello World type stuff to get a feel for it. Boy, proper Intellisense with Cobra sure would be nice. Failing that, a nice omni script for smarter autocomplete on Vim would be useful.
I'd like to help on a project but I doubt I can be the lead on anything. Classes start up again for me next week (going for MS in CS) and I'm working full time too so my availability is limited. My free time lately has been spent familiarizing myself with the compiler code so I can scratch an itch but I could shelve that for helping out on an IDE extension or Vim script.
I've been using Vim and recently have started using in-file autocompletion (Ctrl+N or Ctrl+P when in insert mode). I'm a long time Vim user and it never occurred to me to google "Vim autocomplete" before!
I had never tried MonoDevelop but I installed it yesterday and wrote some quick Hello World type stuff to get a feel for it. Boy, proper Intellisense with Cobra sure would be nice. Failing that, a nice omni script for smarter autocomplete on Vim would be useful.
I'd like to help on a project but I doubt I can be the lead on anything. Classes start up again for me next week (going for MS in CS) and I'm working full time too so my availability is limited. My free time lately has been spent familiarizing myself with the compiler code so I can scratch an itch but I could shelve that for helping out on an IDE extension or Vim script.
- nerdzero
- Posts: 286
- Location: Chicago, IL
Re: IDE support sucks
Can we get a community team going on this? Sounds like Torial had some ideas about autocompletion.
Maybe such a team could meet in the IRC channel once a week to hash it out?
Maybe such a team could meet in the IRC channel once a week to hash it out?
- Charles
- Posts: 2515
- Location: Los Angeles, CA
Re: IDE support sucks
Several months ago I seriously considered idea to make the Cobra my one and only language. Language as that, very well approaches for this purpose. However it has too many shortcomings, characteristic for a hobby projects. Here three major reasons, which pushed me away:
1. Lack of distribution kits. I don't want to collect something, as furniture from IKEA. I want to establish a full unit of fire. I am old, silly and lazy.
2. Lack of the standard IDE. It is necessary to make the strong-willed decision and to tell to people: if you want to program on the Cobra, then use ThatCoolIDE. At first sight can seem that we push away fans of other editors. But there are no correct decisions. There is a lot of editors that fans of one of them always will be in minority. This decision won't be pleasant 90 % of cobraists, but existing situation isn't pleasant 99 % of cobraists.
3. Uncertainty in the future. I not so like the Python, but I can always receive the help (from freelancers, for example). Besides, I know policy and philosophy of this language. And it is pleasant to me (generally). The compiler or the interpreter is the base. Professionals prefer paid software even in the presence of free alternatives. More simply and, finally, cheaper to pay for confidence. The history knows a set of cases when technically perfect thing failed in the market. OS/2 was better, than Windows. I testify. It is impossible to survive, leaning on several fanatics with burning eyes.
1. Lack of distribution kits. I don't want to collect something, as furniture from IKEA. I want to establish a full unit of fire. I am old, silly and lazy.
2. Lack of the standard IDE. It is necessary to make the strong-willed decision and to tell to people: if you want to program on the Cobra, then use ThatCoolIDE. At first sight can seem that we push away fans of other editors. But there are no correct decisions. There is a lot of editors that fans of one of them always will be in minority. This decision won't be pleasant 90 % of cobraists, but existing situation isn't pleasant 99 % of cobraists.
3. Uncertainty in the future. I not so like the Python, but I can always receive the help (from freelancers, for example). Besides, I know policy and philosophy of this language. And it is pleasant to me (generally). The compiler or the interpreter is the base. Professionals prefer paid software even in the presence of free alternatives. More simply and, finally, cheaper to pay for confidence. The history knows a set of cases when technically perfect thing failed in the market. OS/2 was better, than Windows. I testify. It is impossible to survive, leaning on several fanatics with burning eyes.
It is easy to go from the house of reality to the forest of mathematics, but only few know how to go back. Hugo Steinhaus.
- Zmeeed
- Posts: 13
- Location: Russia
Re: IDE support sucks
@Zmeeed, the number one thing you are missing is that all these things were true of Python which also started as a hobby project and which also started without an IDE. Fortunately, there were people willing to use it as well as to help push it forward. Otherwise, it would not have grown to where it is now. Same with Ruby, Perl and PHP. Hobby projects can do quite well in the long run.
Re: 1. "distribution kits", I presume you mean various installers like .rpm, .deb and .msi. We can explore those more after the 0.9 release (or we could make them requisite which would delay the release further--but I don't want to do that).
Re: 2., I disagree that we have to dictate one standard IDE although it would be nice to have a "de facto IDE". This will have to come from the community just like with Python and Ruby--my focus is on the language, compiler and discussion after which I am out of time. (I guess technically Python has "IDLE" but in practice people use other products like Komodo, Wingware, vim, emacs, etc.)
I think what we really need is 2 or more people to commit to a particular IDE project such as Visual Studio or MonoDevelop, and not drop the ball. 1-man efforts in this area seem to get stalled too easily.
Re: 3., I can't make sense of what you're saying here. For example, "Professionals prefer paid software even in the presence of free alternatives" does not apply to Python which is 100% free. Re: "OS/2", that was a commercial product that had to be sustained by sales and endorsed by the management of a company. If you lose the sales or management decides to go in a different direction, the product ends. Open source projects only have to be sustained by interest and it only takes a small group to keep things moving forward.
Anyway, Cobra has improved a lot since the several months ago that you examined it and it will continue to improve since I'm not going anywhere. Hops, Todd, Torial and others are still around as well. I expect a new wave of interest after the next release.
Vive le Cobra!
Re: 1. "distribution kits", I presume you mean various installers like .rpm, .deb and .msi. We can explore those more after the 0.9 release (or we could make them requisite which would delay the release further--but I don't want to do that).
Re: 2., I disagree that we have to dictate one standard IDE although it would be nice to have a "de facto IDE". This will have to come from the community just like with Python and Ruby--my focus is on the language, compiler and discussion after which I am out of time. (I guess technically Python has "IDLE" but in practice people use other products like Komodo, Wingware, vim, emacs, etc.)
I think what we really need is 2 or more people to commit to a particular IDE project such as Visual Studio or MonoDevelop, and not drop the ball. 1-man efforts in this area seem to get stalled too easily.
Re: 3., I can't make sense of what you're saying here. For example, "Professionals prefer paid software even in the presence of free alternatives" does not apply to Python which is 100% free. Re: "OS/2", that was a commercial product that had to be sustained by sales and endorsed by the management of a company. If you lose the sales or management decides to go in a different direction, the product ends. Open source projects only have to be sustained by interest and it only takes a small group to keep things moving forward.
Anyway, Cobra has improved a lot since the several months ago that you examined it and it will continue to improve since I'm not going anywhere. Hops, Todd, Torial and others are still around as well. I expect a new wave of interest after the next release.
Vive le Cobra!
- Charles
- Posts: 2515
- Location: Los Angeles, CA
Re: IDE support sucks
I wanted to share a video with you guys showing the progress I've made on a MonoDevelop 2.8 addin so far:
http://www.youtube.com/watch?v=ffWWVd7bEM4&hd=1
It's a bit of a hack but it works for most simple programs and supports static syntax highlighting, debugging, and multi-file projects (references must be made with compiler directives and project references don't work yet). My time is limited so if anyone wants to help or try it out let me know and I'll stick the code on GitHub or something.
http://www.youtube.com/watch?v=ffWWVd7bEM4&hd=1
It's a bit of a hack but it works for most simple programs and supports static syntax highlighting, debugging, and multi-file projects (references must be made with compiler directives and project references don't work yet). My time is limited so if anyone wants to help or try it out let me know and I'll stick the code on GitHub or something.
- nerdzero
- Posts: 286
- Location: Chicago, IL
Re: IDE support sucks
That's awesome! A video was a great way to show it off. The debugging looks great.
I'm partial to MonoDevelop because it runs on Linux, Mac and Windows.
Instead of waiting for someone to speak up, I would suggest putting the code out there to start with. Plus I'll take it for a spin on the Mac.
Re: WinForms, I heard on the #mono irc channel that it was never finished with hundreds of bugs and issues left. For GUI dev on Linux, you'll probably want to use GTK#. This is the same lib used by MonoDevelop so it gets better attention.
I'm partial to MonoDevelop because it runs on Linux, Mac and Windows.
Instead of waiting for someone to speak up, I would suggest putting the code out there to start with. Plus I'll take it for a spin on the Mac.
Re: WinForms, I heard on the #mono irc channel that it was never finished with hundreds of bugs and issues left. For GUI dev on Linux, you'll probably want to use GTK#. This is the same lib used by MonoDevelop so it gets better attention.
- Charles
- Posts: 2515
- Location: Los Angeles, CA
31 posts
• Page 1 of 4 • 1, 2, 3, 4
Who is online
Users browsing this forum: No registered users and 19 guests