I'm a c# developer who has recently discovered the joys (and frustrations) of python programming. Additionally, I've been looking for some time for a project to get involved with, a way to give back and improve my skills.

Cobra seems like a perfect choice for me and I would like to take the next step. However, as I look at the forums and news, it feels like the project may not be getting much love as of late. Of course, nobody wants to paint a sinking ship.

So, really, what is the state of Cobra? Is the real hope for its future or is it a really good idea that just lacks the big name support to get it off the ground? Just plain ol' optimism is enough for me, but I at least need to know that exists.

I'm the originator of Cobra. One of the biggest problems is that Cobra lacks stickiness. People say "nice language" and then move on, usually for one of two reasons:

1) The person doesn't want to be on .NET or Mono (for any number of reasons whether good or bad).

2) The person is already on .NET or Mono and only wants to use Microsoft languages like C# and VB.

Just a few days ago, this showed up on twitter:"""Oldham-Made Dec 25@willburt it was probably http://cobra-language.com , a pythonic lang for .NET. Nice, but... well, it's on .NET! """

No number of releases, features, web site improvements, IDE support, discussions, activity, etc. has made a dent in the above phenomenon.

Back in 2006, I chose .NET/Mono for several reasons:* .NET was production quality and offered high level features (garbage collection, classes, collections, generics, etc.).* .NET had a strong story about supporting multiple languages.* Mono offered an open source version and ran on both Linux and Mac.* Mono was shipped with Ubuntu by default and Ubuntu was the #1 desktop distro, which seemed like a great sign that Mono had a bright future in the Linux community. Though this was eventually undone by Mono detractors.* My main contracting client was using .NET so there was a possibility that I could use Cobra there.

But ultimately my choice did not work out: most people either don't want .NET or don't want an unofficial .NET language. Then there are other factors that have reduced my participation:

* I get burned out sometimes. It's not easy doing a major project outside of work.

* There are personal distractions that wax and wane. For example, I've had a very sick pet this year who I recently put to sleep.

* A "deep bug" or refinement can take a whole weekend or longer to fix, and the reward is comparatively low.

But even after all of that... I'm actually thinking about "rebooting" Cobra as a native language with some design improvements, whether under the same name or a different one. But I also balk at the size of such an effort done without funding/income/sponsorship. Building a language is more than just cranking out a lexer, parser and code generator. If it's going to be done well, you have to put in some real time on the design, reading up on other languages, trying things out, etc.

If I put the same effort into a business, I'd probably get rich.

There are many potential directions for the future:

- Maintain the project with the occasional fix and minor enhancement so it remains usable.

- Turn it over to someone such as Hops or Ramon if they want to rekindle it.

Well, if all you need is optimism, washad, then here I am! Grab a brush!

Seriously though, working on something of this magnitude is difficult for all the reasons you listed, Charles. But it would be a real shame to let Cobra fizzle. I really do think it's the most beautiful language out there. I want to see more people use it which is why started working on the MD add-in in the first place.

There's more to say, but let me think on this for a while. I'm also interested in what others think.

I chanced to be here today to see what is going on with this language, but is it sad to see, Charles of all, can think of letting it fizzle. I apologize to you Charles because i think i am one of those people whom you refer to as "like it but don't stick to it". Making and maintaining a language is indeed a mammoth of a task and you along with Mr. Hops, Ramon and others have done a good job at it.

But is this language of no value to you yourself anymore? even if no one else uses it. It must give you satisfaction of coding like you want it.I would have continued with its plugin development but i never used this language for my purposes because i am not pythonic i am curly braced user and got extremely engaged in my vocations. I really really apologize for that. Programming is just my hobby.I know how big of a task it can be to do singularly to maintain compiler, website, forums and then working for life. Because I am myself developing a lanuage for myself on native platform. I havent used Cobra, so i cant say what is the state of curent mono IDE but that was a main hurdel in the past. I think your language has its niche and can grow if you implement completely what you wanted on compiler side and have good IDE. Even Scala which has paid IDE maintainer on eclipse haven't made it at par with java IDEs till date. Intellij Scala Ide is better in many ways to its official Eclipse IDE.

On native platform i think you should try looking at cython as its backend or c++/LLVM . both will give it an Interpreter and relieve you of much of climbing.

I am, too, a user that fiddled with it, but never have any chance to use it in production code. It was probably because there was also very little people like me using it for production code, and I was concentrated on other technologies like Node JS.

I totally agree with and understand Charles when he says that with no funding and working alone on a major project. Open source projects like this has to have the following to be succesful: * A growing userbase community tikering with it so that it gets enough attention and popularity.* Some profit or funding coming from either a single rich investor from Sillicon Valley or from Kickstarter like sites or from another source of income, making able the creator to make money off of it, so that he ultimately can:* Work on this as his main job.

Sometimes the second item comes before the first.

I agree with the post on facebook about moving the code from CodePlex to GitHub. I feel that code residing in GitHub could nourish this project based on the community there, and could (maybe) generate some userbase.

In fact, as of myself, I am a bit annoyed that this isn't on GitHub, or a Git related hosting site.

Git is like a magnet of good, creative, and good willed coders. And a lot of git related people work a lot on GitHub.I'm usually against centralizing anything in a place, but I've seen so many good code and coders around GitHub that I feel it would be alienating not moving it there. And even though it is centralizing code in one place, it's still an open source hosting site. And there's no time cost of doing so.

I think I'm unable to emphasize it enough; moving the code to GitHub and getting some stars, writing a good readme.MD, asking for stars on Facebook, and here on the forum doesn't feel like a good choice to me. It feels like THE good choice, IMHO.

I don't feel that it'll will guarantee success though, but there's no loss at trying.

Thank you for the thorough feedback. I probably should have began my post with a hat-tipping in recognition of what an awesome accomplishment it is to have taken on and made it this far in the development of a new language from scratch. I'm quite literally in awe.

I represent a different category, perhaps, then those mentioned above. I'm stuck in a .Net shop but really don't care for Microsoft - especially in their extracting away more and more functionality in an attempt to increase dependency on their canned solutions (e.g. entity framework). I do, however, like .Net in general, and have several years of experience invested in it.

Cobra represents for me a way to use .Net but program in a non VS / C#-rigor environment. As long as I can create .Net dlls for use in the company, it is a sell that I can make to my management. Plus, great job on the way you integrated unit testing, contracts, and documentation into the methods. It really, really is a sharp looking language.

Anyone with a life at all knows what you are going through, though, and why you must be long burnt out. Its quite a shame that a corp. hasn't picked it up and thrown some developers at it, has anyone reached out to you on that front?

Lets say, hypothetically, a person were to work at a company that might be willing to be involved in something like this - I'm not certain from your response that you are fully convinced that the .Net base path still makes sense. If a magical developer ferry dropped a few coders into your lap, would you put them to work on Cobra, or would you start them on a reboot?

RIGHT_THEN wrote:But is this language of no value to you yourself anymore? even if no one else uses it. It must give you satisfaction of coding like you want it.

It does have value to me for the reason you stated. And I recently used it for an online course on Artificial Intelligence. But I don't need to continue to slave over it for such a purpose now that it's working and has relatively few bugs.

@erandros, While I agree that hosting on github is preferable wrt gaining contributors, that doesn't solve the problem of me having to work a day job. (Not that rebooting Cobra would either.)

Also, someone on facebook commented about their interest in using Cobra for mobile. Unfortunately, Xamarin took the strange route of basing their tool on C# source code rather than the usual .NET approach of working at the bytecode level for such technical feats. On the other hand, Cobra still generates C# code, so it may be possible to get something working there. Also, Xamarin could be approached about this. But as I don't have an immediate need for this, it's not something that I have pursued. To my knowledge, no one else has either.

@washad, thanks for the compliments.

washad wrote:... a corp. hasn't picked it up and thrown some developers at it, has anyone reached out to you on that front?

One entrepreneur reached out to me, but didn't follow through. I recall he already had tech staff and they did not want to use Cobra. That was a few years back and maturity could have been the issue there, or it could have been issues with .NET or using a non-standard language. I didn't get the full story.

In 2008 I reached out to Microsoft and Sun, but got nowhere fast.

washad wrote:Lets say, hypothetically, a person were to work at a company that might be willing to be involved in something like this - I'm not certain from your response that you are fully convinced that the .Net base path still makes sense. If a magical developer ferry dropped a few coders into your lap, would you put them to work on Cobra, or would you start them on a reboot?

First, let me say I don't need a few full-time devs to continue. I would just like a sponsorship that would make Cobra my day job for reasons already mentioned and also to provide enough time in the week to pay attention to the many different areas that need it (docs, mobile dev, evangelism, patches, bugs, features, research, etc.). However, I'm not expecting that to happen.

Regarding continuing with .NET or rebooting to native, there are valid arguments to do either. The sponsor would likely get their choice, since they are spending the cash.

I had some time this past weekend to work on some of my active side projects, two of which are written either partially or completely in Cobra. The thought occurred to me that maybe I should consider switching one to C# and abandoning the other if Cobra might fizzle. But, it didn't take long for me to not want to go that route. I don't want to give up contracts, nilable types, and the clean syntax that Cobra has to offer. RIGHT_THEN hit the nail on the head.

RIGHT_THEN wrote:It must give you satisfaction of coding like you want it.

I have 109 passing tests on the parser at this point including most expressions and statements. Some things are quite difficult for me, but I am having a lot of fun and learning a lot. I'm going a little different than a traditional recursive descent parser in terms of code organization. I have a TokenStream class whose only job is advancing to the next token or inserting expected tokens into the stream when they are missing. Then, each AST node class is responsible for parsing instances of itself via a static method that accepts an instance of the TokenStream class. So far so good, but I desperately want to implement a real-time test runner in the MD add-in now!

FWIW, I use Cobra at work whenever I can, which is admittedly not as much as I'd like. I built a simple web hosting server (vaguely inspired by Cherrypy) and a templating language (based off of Handlebars) that I have used for an internal site. Unfortunately, since I'm the sole coder at a startup, I don't have as much time to work on this task as I'd like. I'd love to use Cobra for mobile development, but can't afford to spend the time to work on that for the foreseeable future.

If it is any encouragement, Cobra is hands down my favorite language -- I used Python for a number of years, and tried boo for a while, but have loved Cobra since I first took a serious glance at it. I love that it is built on .Net as well (but if you moved to a different world, I'd still likely follow).