Cobra weaknesses and advantages
The Cobra compiler is self-implemented, or "self-hosted," Esterbrook said. He said he chose C# as a back end over Microsoft IL (Intermediate Language) because of the growing number of super-virtual-machine features in C#, faster implementation and the ability to piggyback on error checking and command-line options. However, Esterbrook said there are some weaknesses in Cobra, such as its lack of maturity and lack of IDE (integrated development environment) plug-ins.As for the future, Esterbrook said he plans to create a "Visual Cobra" plug-in for Microsoft Visual Studio. His goal for Cobra is for is for it to "be the best, most productive, high-level, general-purpose OO [object-oriented] language." He also plans to build in support for Microsoft's Language Integrated Query, as well as integration with Microsoft's Dynamic Language Runtime. Other future features will include more sophisticated unit test features, support for units of measurement, such as feet and meters, compile-time analysis of contracts, multiple back ends, such as the JVM (Java virtual machine) and Objective-C, support for parallel programming, lazy arguments, macros, and leveraging even more of the .Net advances, Esterbrook said. James Shamenski, a developer and founder of AdventureLink, said he was impressed with Esterbrook's presentation. "When I was looking to choose a programming language for my most recent project, I interviewed all the usual suspects," Shamenski said. "Ruby is too slow for customers out of the gate. C# takes too long to develop. Python is a pain to test. Each language has [a] strong upside and Cobra amalgamates the positive aspects ... I want rapid development and lightning performance without sacrifice. That is the executive promise of Cobra. What coder and suit wouldn't listen to that? Even fragmented engineering teams from different backgrounds can now come together [and] that was the tipping point for me." Shamenski said he was skeptical going into the Cobra talk, but that changed. "I would definitely be interested in interviewing developers who wanted to use Cobra," he said. "For someone who thinks that this may be a fit for their future project, I would spend the next three to six months helping out the open-source Cobra community to add the features you see needed. In a few months when you are ready to begin, Cobra will be ready for prime-time production and probably save your sanity in the process." Esterbrook is now creating a wiki and an issue tracker for Cobra that should be done within a week. Developers interested in having a look at the language should go here.
When compared with Python, he said, Cobra has better error checking, compile-time nil tracking, first-class contracts and unit tests, speed, default to accurate math, syntax, and self-hosting.