I've been investigating different .net languages for use with Mono. I've spent some time with Boo, and have decided I don't like it. It feels immature due to poor syntax error reporting, and silently changes the scope of variables when there happens to be an inadvertent mix of tabs and spaces in your source code. Yuck.
Then I came across Cobra. The language comparison with Python stung a little, I guess because it had some valid points.
Cobra vs Python
There is definitely a lot of flame bait in there, but the point about being "self hosted" resonates with me.
Monday, May 18, 2009
Subscribe to:
Post Comments (Atom)
Popular Posts
-
These are the robots I've been working on for the last 12 months. They each weigh about 11 tonnes and have a 17 meter reach. The control...
-
This hard-to-see screenshot is a Generic Node Graph Editing framework I'm building. I'm hoping it can be used for any kind of node...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
It is about 8 degrees C this morning. So cold, especially when last week we had high twenties. To help solve the problem, a friend suggeste...
-
After my last post, I decided to benchmark the scaling properties of Stackless, Kamaelia, Fibra using the same hackysack algorithm. Left axi...
-
MiddleMan: A Pub/Sub and Request/Response server in Go. This is my first Go project. It is a rewrite of an existing Python server, based o...
-
Why would I ask that question? Python 3 has been available for some time now, yet uptake is slow. There aren't a whole lot of packages i...
-
I'm now using bzr instead of svn. I'm pushing my repositories to: http://exactlysimilar.org/bzr/ I'm also auto publishing docume...
-
I've just read a newspaper article (courtesy of Kranzky ) from WA Business News documenting the malfeasance, gross negligence and misc...
-
I've just uploaded Fibra 2 to the cheeseshop. Fibra 2 includes the promised non-blocking plugin, which allows a generator based task to...
12 comments:
s/cam/came
Thanks Mr Anonymou.
Ohh, that's an interesting little language. Might have a play...
Cobra is .Net/mono?
.Net is DOS only.
mono is the red headed cousin on *nix systems.
Speed comparison?
Sadly it still doesn't have the widespread compatibility of the original Python, but it looks like an improvement to IronPython.
So many keywords is unpythonic, using the keyword "cue" for special methods is cute but makes me worry about the implementation differences between special and non special methods.
The lack of colons make it look a little "naked" but I guess it is the good kind of nakedness.
Type declarations should follow python3.1 style instead of inventing their own. I'm uneasy about a language without dynamic classes and type declarations.
But then again I often find it hard to sell python due some slowness, being a .Net language cobra might be an easier sell, but then again I don't trust MS "promise" to not sue mono when it see fit.
cobra is nice. More elegant syntax than python.
Also, a dictator with better taste than Guido :)
Would need to try it out on some real projects for a while first... the only this that's stopping me is the .net requirement. But I'll almost do anything to allow typing less syntax noise :)
With so many elegant usability improvements to python Cobra seems to be on a winning path.
Robert, it's much faster than any python implementation. Except maybe the shedskin/rpython subsets of python.
rgz, I think cobra was doing this stuff before py3k.
illume: yeah, I understand your comments about .net.
The only reason I'm straying from the fold is that I need a .net language (to be used with mono) that is more like Python than C#. IronPython is not an option unfortunately, as it can't build assemblies.
hi,
I see that you have some stubs (?) to generate JVM code.
Do you plan to target that VM ?
What about LLVM ? Nowadays, all the cool kids on the street target LLVM :)
cheers,
sebastien.
Sebastien, I'm actively working on the JVM back-end each week, but it's not ready yet.
I haven't decided what back-end #3 will be. I'm leaning towards Obj-C for the sake of building native Mac and iPhone applications. LLVM is a candidate as well.
Also, after completing backend #2 it will be easier for other devs to step in and provide their own favorite target.
I'm completely unsold on the 'self-hosted' argument. It seems like circular logic for someone to claim that since they like a language, it is good to code in the language, and that since it's good to code in the language, it's good to have the language implemented in that same language. If anything I think the opposite is true because higher level languages like Python, Ruby, Cobra, etc, all have limitations compared to C, C++, etc. Since those limitations are actually side-effects of benefits in other applications, you can't meaningfully fix or bypass them without damaging the language itself. The 'feedback loop' as they call it is damaging in this respect.
On the other features, static typing I'm not sold on, contracts could be useful, accurate maths might be a very good feature, if (and only if) there's a guarantee that your float operations won't be arbitrarily promoted to decimals at times unknown to you, compiling down to native code is great, and the Python-like syntax is fine.
I don't know whether the .NET libraries compare positively to the Python ones though. What little I see about them seems to be reasonable, but Python does come with quite a few handy ones that I'd have trouble coping without.
It could be interesting but, the whole .net/mono thing makes it a nonstarter for me.
Post a Comment