Cyclone: a safe dialect of C
cyclone.thelanguage.org
cyclone.thelanguage.org
- Mencius Moldbug's Unqualified Reservations
(http://unqualified-reservations.blogspot.com/2007/08/whats-w...)
But otherwise, sure -- academics aren't incentivized to produce usable, non-prototype software. Sometimes they do anyway, but they aren't really rewarded for it professionally (with a few exceptions: e.g. Chord). That is especially true of something like Cyclone, which would require pretty considerable effort to support.
The hope is that by writing papers that clearly describe a new idea, practitioners can make use of ideas developed by researchers (e.g. Cassandra is heavily influenced by the Dynamo paper). That's not always true, but forcing academics to write production-quality software and then provide support for it probably wouldn't make a lot of sense either.
Well.. what does "prominent" mean? A professor of mine has 10x more patents than papers. He once said, he is angry about not being prominent because of too many patents!
(no papers but patents = holding knowledge back = disturbing innovation?)
i agree that researchers often don't have an incentive to make robust, industrial-strength implementations of their work, but some systems hackers are actually quite good at making real software that people actually use. examples:
- Unison file synchronizer (UPenn research project) http://www.cis.upenn.edu/~bcpierce/unison/
- gprof program profiler (http://portal.acm.org/citation.cfm?id=989401)
- the Scala language (http://www.scala-lang.org/)
most of the time, though, the way that CS systems research impacts the world is by:
a.) the researchers founding their own company from their research - e.g., VMWare, and more recently KSplice (http://www.ksplice.com/)
b.) a big company implementing features in their own products based on research findings - e.g., machine learning at Google, OS security in Google Chrome, and even gasp OS security in Microsoft Windows OS
I hope this gains some traction amongst the large open-source C applications. (Things like emacs, xmms2, etc.)
Memory management seems simpler in Go, however. This is a big advantage for Go.
The Go designers felt compelled not just to explain why their language is good, but why it ought to have a separate existence and not be implemented as an add-on to C/C++.
Cyclone seems to go a bit beyond that. I'd have more confidence in this as a basis for writing a highly secure kernel than just "a static checking flag in my C compiler and a few libraries."
So basically, the verbose pointer types mean that when you're doing something unusual and/or sketchy, you have to document that fact. I'll consider that another feature as well ;-)
Anybody know if the heap garbage collector that they use is any good?
Man I wish they'd had this when we started on a project at work a year and a half ago...