Typed Clojure

Help build optional type systems for Clojure and Clojurescript.
Ia4vo1detixkisujoa8h
Ambrose Bonnaire-Sergeant
Technology
Perth
Australia
1 Team Member

Typed Clojure in industry

Why we’re supporting Typed Clojure, and you should too! (CircleCI) (HNReddit)

Typed Clojure around the world

Indiegogo Campaign (HN, Reddit, Twitter)

The Link between CinC and Typed Clojure (HN)

Typed Clojure Preview: Red/Black tree rebalancing invariants (with plain maps)

Typed Clojure Game of Life (HN, Reddit)

Typed Clojure prevents Null Pointer Exceptions

InfoQ Interview (HN)

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 Clojurescript

We can bring the benefits of static type checking to Clojurescript by extending Typed Clojure's implementation. It will feature type-safe interactions with Javascript, in particular with DOM interactions.

IDE Support

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 annotations

Currently 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.

Perks

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.

The Impact

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.

The Link between CinC and Typed Clojure

Nicola on CinC

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!

Find This Campaign On
$35,254USD
raised by 545 people in 1 month
176% funded
0 time left
$20,000 USD goal
Flexible Funding This campaign has ended and will receive all funds raised.
Campaign Closed
This campaign ended on November 11, 2013
Select a Perk
  • $5USD
    Typed Clojure Hangouts

    A great opportunity to learn with the creator of Typed Clojure! You will be added to a private Google Hangout group for Typed Clojure hangouts. They will be led by Ambrose at his leisure, featuring: - discussions on new Typed Clojure features - practice runs for Typed Clojure conference talks, screencasts and training - tutorials and lessons Recordings will often be free on YouTube. $5 minimum to keep accessible, $10-$15 pledge appreciated! NOT INCLUDED IN THE $50 PERK

    5 claimed
  • $10USD
    Supporter

    You are a supporter of verification tools for Clojure and Clojurescript. You will be added to a "supporters" list which will be linked from the Typed Clojure Readme.

    78 claimed
  • $12USD
    Standalone CinC screencast

    Get a 30min screencast by Nicola Mometto (Bronsa) on Clojure-in-Clojure. Be added as a supporter of Typed Clojure. Released when Nicola is ready, sometime in 2014.

    18 claimed
  • $25USD
    Single Screencast

    You will receive 1 premium screencast on Typed Clojure by Ambrose (the creator of Typed Clojure). Be added as supporter of Typed Clojure.

    4 claimed
  • $30USD
    Clojure-in-Clojure screencast

    Get a 30min screencast by Nicola Mometto (Bronsa) on Clojure-in-Clojure. Also includes 1 Typed Clojure screencast. Be added as a supporter of Typed Clojure. Released when Nicola is ready, sometime in 2014.

    15 claimed
  • $50USD
    Year of Screencasts

    You will get free access to premium screencasts on Typed Clojure/Clojurescript, made by Ambrose (the creator of Typed Clojure). Includes all screencasts released within 2013 and 2014. A large range of topics will be tackled, from beginner to advanced. Each screencast will be released every 2-3 months and be 30 minutes long. Includes previous perks.

    330 claimed
  • SOLD OUT

    $100USD
    User group talk

    Ambrose will give a video-conference demo/talk/QA session on Typed Clojure at your next Clojure (or related) User Group meeting. The meeting must be publicly accessible.

    20 out of 20 claimed
  • $500USD
    Sponsor

    Your company logo will be displayed on the Typed Clojure Readme for 1 year, and similarly for any future Typed Clojure landing pages.

    6 out of 10 claimed
  • $750USD
    Joint Screencast Sponsor

    Your company will be credited as a joint sponsor of a screencast on Typed Clojure. Up to 4 companies will be able to jointly sponsor a screencast. Your company logo will be displayed on the Typed Clojure Readme for 1 year, and similarly for any future Typed Clojure landing pages. Get a shout-out on Ambrose's Twitter account.

    0 out of 4 claimed
  • SOLD OUT

    $1,000USD
    Screencast Sponsor

    Your company will feature prominently in a screencast on Typed Clojure. Your company logo will be displayed on the Typed Clojure Readme for 1 year, and similarly for any future Typed Clojure landing pages. Get a shout-out on Ambrose's Twitter account.

    5 out of 5 claimed
  • $2,000USD
    Screencast Sponsor Round 2

    Due to popular demand this perk is back! Get your company in front of Clojure programmers from around the globe! Your company will feature prominently in a screencast on Typed Clojure. Your company logo will be displayed on the Typed Clojure Readme for 1 year, and similarly for any future Typed Clojure landing pages. Get a shout-out on Ambrose's Twitter account.

    0 out of 1 claimed
Do you think this campaign contains prohibited content? Let us know.