Re: is Cobra for me or quest for perfect language
Posted: Tue May 28, 2013 3:58 am
GUI:
Generally theres no good answer for all platforms for any language - only less bad ones.
Java backend will give you access to Swing and AWT ( or SWT) if you want to go that way. That will work on all the platforms java runs on
Cobra will insulate you from some of the kruft that java forces on you
- unfortunately the cobra Java-backend support is still under construction so youll find a different sort of kruft.
Use of any other toolkit is tied to its .Net/Mono support/bindings - some are OK and actively developed, others are quiescent or dead...
Cobra can consume/expose/use untouched any .Net/mono dll so the trick is finding a C#/.Net binding you like and can work with..
( gtk.net, wx.net, Qt.net(?), System.Windows , ..)
I did some work on cobra and wx.net binding a long while ago. I seem to remember it works but the binding is a little strange in that it
doesnt follow the usual .Net conventions which can cause some issues - theres a wiki page on the cobra website about this...
I vaguely recollect that the binding was quite old and maybe not being strongly developed but I could be remembering this wrong and its likely to have changed anyway..
GTK binding seems as good as any and it runs on all of Windows/Mac/Linux
For me if I need GUI I use .Net/Mono (mainly .Net) tho' I believe the mono libs are lagging the .Net ones ( GUI) ....
but I dont do much GUI stuff and I havent done any cross platform for a while.
IDE:
Yeah everyone has a favorite IDE and it doesnt support cobra - go figure
- the work on monodevelop looks most promising and I'll look at it Real Soon Now..
In the interim cobra is clean and simple enough that you can go a very long way with a simple editor and the cobra compiler.
Ditto build system - the one built into the compiler seems to be adequate for most small-medium size projects purposes.
Where thats insufficient for whatever reason theres no shortage of language agnostic stand alone build tools
I'd look at scons if I needed one - Its pythonesque (and based) and should be a good fit to cobra but YAGNI.
Cobra is just the compiler and RTL (backed with .Net/Mono and (lesser) Java. Theres no 3rd party Clibs and bindings nd no need of them.
Doc generation is pending ( or unformed depending on your POV) - theres a subsystem to find and extract API docs from source but no built in markup tools or favored protocol.
Installation is a file bundle and install script - ( or a repository pull followed by a build and install)
not very platform specific but easily portable and low overhead.
Packaging up a platform package is a matter of someone choosing to do it and support it - for each and every specific platform
Distribution would be posting the package back to the website for download.
It would be nice to have but theres more interesting things to do.... Later maybe
Language alternatives:
Yeah theres lots of choices: Ada, Nimrod, PyQt_CPython, also Groovy, Boo, Gosu, Kotlin/Stab, Genie, Ceylon, Go, Obix, TypeScript, and more....
Some have some of what cobra has, some have other stuff, most of them have their own silliness and weirdnesses
none seem to put it together as clearly, easily and cleanly as cobra - or it may be just me - YMMV, try it and see...
( the wiki has pages with a comparison to Python and Ruby ( and C#) )
Generally theres no good answer for all platforms for any language - only less bad ones.
Java backend will give you access to Swing and AWT ( or SWT) if you want to go that way. That will work on all the platforms java runs on
Cobra will insulate you from some of the kruft that java forces on you
- unfortunately the cobra Java-backend support is still under construction so youll find a different sort of kruft.
Use of any other toolkit is tied to its .Net/Mono support/bindings - some are OK and actively developed, others are quiescent or dead...
Cobra can consume/expose/use untouched any .Net/mono dll so the trick is finding a C#/.Net binding you like and can work with..
( gtk.net, wx.net, Qt.net(?), System.Windows , ..)
I did some work on cobra and wx.net binding a long while ago. I seem to remember it works but the binding is a little strange in that it
doesnt follow the usual .Net conventions which can cause some issues - theres a wiki page on the cobra website about this...
I vaguely recollect that the binding was quite old and maybe not being strongly developed but I could be remembering this wrong and its likely to have changed anyway..
GTK binding seems as good as any and it runs on all of Windows/Mac/Linux
For me if I need GUI I use .Net/Mono (mainly .Net) tho' I believe the mono libs are lagging the .Net ones ( GUI) ....
but I dont do much GUI stuff and I havent done any cross platform for a while.
IDE:
Yeah everyone has a favorite IDE and it doesnt support cobra - go figure
- the work on monodevelop looks most promising and I'll look at it Real Soon Now..
In the interim cobra is clean and simple enough that you can go a very long way with a simple editor and the cobra compiler.
Ditto build system - the one built into the compiler seems to be adequate for most small-medium size projects purposes.
Where thats insufficient for whatever reason theres no shortage of language agnostic stand alone build tools
I'd look at scons if I needed one - Its pythonesque (and based) and should be a good fit to cobra but YAGNI.
Cobra is just the compiler and RTL (backed with .Net/Mono and (lesser) Java. Theres no 3rd party Clibs and bindings nd no need of them.
Doc generation is pending ( or unformed depending on your POV) - theres a subsystem to find and extract API docs from source but no built in markup tools or favored protocol.
Installation is a file bundle and install script - ( or a repository pull followed by a build and install)
not very platform specific but easily portable and low overhead.
Packaging up a platform package is a matter of someone choosing to do it and support it - for each and every specific platform
Distribution would be posting the package back to the website for download.
It would be nice to have but theres more interesting things to do.... Later maybe
Language alternatives:
Yeah theres lots of choices: Ada, Nimrod, PyQt_CPython, also Groovy, Boo, Gosu, Kotlin/Stab, Genie, Ceylon, Go, Obix, TypeScript, and more....
Some have some of what cobra has, some have other stuff, most of them have their own silliness and weirdnesses
none seem to put it together as clearly, easily and cleanly as cobra - or it may be just me - YMMV, try it and see...
( the wiki has pages with a comparison to Python and Ruby ( and C#) )