Typed Clojure in industry
Typed Clojure around the world
UPDATE 3: Final stretch goal, New pitch video ^
UPDATE 2: Another stretch goal coming soon for more Typed Clojure dev!
UPDATE 1: Stretch goal 1, NEW VIDEO below!
Type checking for Clojure and Clojurescript
My name is Ambrose Bonnaire-Sergeant.
I am the creator of Typed Clojure, an optional type system for Clojure. It provides optional static type checking for regular Clojure code, as a library.
I have been working on Typed Clojure full-time for nearly 2 years, during my Bachelor of Computer Science Honours degree and Google Summer of Code projects Typed Clojure (2012) and core.typed: Extensions and Documentation (2013). I produced an Honours dissertation titled A Practical Optional Type System for Clojure describing Typed Clojure.
My goal is to build practical tools for verification of Clojure code. To this end, core.typed is suitable to help verify production systems. There is already good evidence supporting this claim: CircleCI is using core.typed to help verify their production code today.
I have big plans for improving Typed Clojure:
Typed Clojure has fantastic potential for integration with IDEs like Eclipse and IntelliJ. Counterclockwise is a great place to start; I will be working closely with the developers to ensure we can provide great integration with Typed Clojure.
Vim and Emacs support is also likely (I'm a vimmer), but I will need help from the right people!
Tools for guessing top-level annotationsCurrently annotating Clojure top-level forms is a very manual process. This is a problem if porting large amounts of code to be typed. I want to build tools that guess the intended type for top-levels, which will help programmers accelerate this process.
Maintain and extend Typed Clojure
I am eager to make Typed Clojure a top-class, robust tool. This campaign will give me the freedom to continue towards this goal.
I will work on the dynamic side of type checking: generating runtime contracts to preserve static soundness to runtime.
Awesome libraries like core.match and core.async will be supported, and the Clojure core library will be fully annotated.
I will continue to maintain and document Typed Clojure with production systems in mind, as I have for the past year.
What We Need & What You Get
I want to work full-time on Typed Clojure/script for 6-8 months. I can do this if we raise $20,000. This will cover my daily living expenses.
If we raise less, I will still work full-time, but for a shorter duration.
If I feel the funding is not sufficient to deliver most of this project, I will not accept the funds. (Indiegogo allows partial funding) I'm not sure if "refusing" funds is possible. I hope to *at least* raise $5k which is what I received for a Google Summer of Code project, and I got a lot done in those.
There are several exciting perks on offer:
I am planning to release a series of premium screencasts on Typed Clojure. They will cover a range of topics, from the first steps to the most advanced features of the type system. The $50 perk offers unlimited free screencasts during 2013 and 2014. (Here's a sample of my screencasting style).
I am excited to talk to the community about what Typed Clojure can do for you, and how to use it. The $100 perk offers a video-conference to your favourite User Group where we can talk Typed Clojure.
Several larger perks are on offer for companies keen to show their support for Typed Clojure.
By supporting development on Typed Clojure, you're helping to build high quality verification tools for Clojure.
A robust type system in the form of Typed Clojure is good for Clojure: it increases the appeal of Clojure to new developers, and is a powerful verification tool for existing Clojure developers.
I have worked on Typed Clojure essentially full-time for around 2 years with great results; Typed Clojure is currently a big part of my life and it will be an absolute pleasure to continue my work.
Final Stretch goal $25,500->$80,000 = 12 months of full time Typed Clojure
Stretch Goal 1 $20,000->$25,500 = Clojure-in-Clojure
I want to commission the fantastic Nicola Mometto (aka. Bronsa) to continue his work on the self-hosted Clojure compiler Clojure-in-Clojure. He will receive US$5,000 (I added $500 to the campaign so Nicola really *does* get US$5,000 after bank fees).
Check out the $12 perk for a Clojure-in-Clojure screencast, or the $30 perk for a bundle with a Typed Clojure screencast.
Other Ways You Can Help
If you can't contribute to the campaign, you can still help it succeed!
Make some noise about Typed Clojure, tell your friends. Try Typed Clojure out yourself and blog about your experience. It all helps!
Use the Indiegogo share tools to spread the word!