Crowdfunding for full-time core.typed development

1,187 views
Skip to first unread message

Ambrose Bonnaire-Sergeant

unread,
Sep 27, 2013, 12:51:11 PM9/27/13
to clojure, core.typed
Hi,

I have started a crowdfunding campaign to support full-time work on Typed Clojure.

Please share!


Thanks,
Ambrose

Rich Morin

unread,
Sep 27, 2013, 3:54:01 PM9/27/13
to clo...@googlegroups.com
On Sep 27, 2013, at 09:51, Ambrose Bonnaire-Sergeant wrote:
> I have started a crowdfunding campaign to support full-time
> work on Typed Clojure.
>
> Please share!
>
> http://www.indiegogo.com/projects/typed-clojure

Still in its first day, the campaign is already an eighth
of the way to its goal! I encourage other Typed Clojure
fans to make a contribution.

-r

--
http://www.cfcl.com/rdm Rich Morin
http://www.cfcl.com/rdm/resume r...@cfcl.com
http://www.cfcl.com/rdm/weblog +1 650-873-7841

Software system design, development, and documentation


Rich Morin

unread,
Sep 28, 2013, 5:37:25 PM9/28/13
to clo...@googlegroups.com
The CircleCI folks have posted a nice write-up of Typed Clojure
(and the campaign) here:

tl;dr Typed Clojure is an important step for not just Clojure,
but all dynamic languages. CircleCI is supporting it, and you
should too.

Typed Clojure is one of the biggest advancements to dynamic
programming languages in the last few decades. It shows that
you can have the amazing flexibility of a dynamic language,
while providing lightweight, optional typing. Most importantly,
this can make your team more productive, and it’s ready to use
in production.

...

-- Why we’re supporting Typed Clojure, and you should too!
http://blog.circleci.com/supporting-typed-clojure/

Nicola Mometto

unread,
Sep 30, 2013, 9:50:38 AM9/30/13
to clo...@googlegroups.com, core.typed, abonnair...@gmail.com
Given the amazing support shown by the clojure community, Ambrose's campaign has already raised its goal.
As some of you might have noticed, yesterday Ambrose revealed the first stretch goal of his campaign and that is helping me continue develop CinC and I want to spend some time explaining what CinC is and why it matters for the evolution of core.typed.

First, here's the video Ambrose posted to announce the stretch goal: http://www.youtube.com/watch?v=hiKBP8f4dPw

What is CinC?
CinC is a project I've been working on for the past three months as part of the GSoC program, it's a port of the clojure compiler/analyzer to clojure itself.
It's not simply a 1:1 port, I've based the analyzer on the clojurescript model, extending it further by making it modular separating all the different logical passes and walking over the AST using the children-keys approach.
The compiler uses the AST to build a data-representation of the bytecode before effectively emitting it.
You can read more about it in my GSoC report post https://groups.google.com/forum/#!searchin/clojure/cinc/clojure/cC1yC9zrS1s/W0ducjm0uQYJ

Why does it matter to core.typed?
While CinC being a cool project in itself (I think!) I want to explain why Ambrose chose to try and fund further development of CinC in its core.typed campaign.
core.typed uses the AST returned by the analyzer to type-check the code; this is really easy to do for the clojurescript-end because the AST returned by the clojurescript analyzer is in the form of a clojure data-structure -- the clojure analyzer however returns java objects which make AST walking really hard.
For core.typed, Ambrose created jvm.tools.analyzer, a library that takes the AST returned by the clojure compiler and transforms it in a data-structure similar to that returned by clojurescript.
The problem with this approach is that the analyze phase is still not extensible/hackable, something that core.typed might need in order to gather more accurate type informations/do better validation.
On the other hand, CinC's analyzer is written in pure clojure, already returning an AST in the clojurescript-way and most importantly, is extensible!
CinC however is still a work-in-progress and there are still lots of rough-spots, massive performance enhancements to do and possible optimizations to be explored.

The purpose of this "extension" in Ambrose's campaign is to help CinC keep being developed as something more than just a hobby project, hoping that some day it will be mature enough to experiment replacing clojure's analyzer as the default analyzer used by core.typed and make core.typed even more awesome than it is!


That being said, I want to thank again the clojure community for the support shown so far, and Ambrose for being such an awesome person and trying to fund other people's library development with his own campaign!

Ambrose Bonnaire-Sergeant

unread,
Sep 30, 2013, 10:09:59 AM9/30/13
to clojure, core.typed
When I think Clojure 2.0, I think of CinC. We need to support this project.

If you've ever been jealous of the amazing compiler optimisations in Chez Scheme, or the metaprogramming
facilities in Racket, CinC is a crucial step in that direction for Clojure.

I'm very glad to have the opportunity to direct funds in Nicola's direction. Please
keep sharing how important CinC is to Clojure and let's show Nicola our full support!


Thanks,
Ambrose


--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Rich Morin

unread,
Sep 30, 2013, 2:02:34 PM9/30/13
to clo...@googlegroups.com
I am delighted that the campaign has been going so well. The
fact that the Clojure community is willing to contribute to a
project of this nature speaks very well for both its foresight
and its pragmatic generosity.

I'm also delighted at your adding a stretch goal that helps out
another valuable (and closely related) project. Aside from its
intrinsic utility, the CinC analyzer seems like a great starting
point for Typed Clojure and for mechanized documentation efforts
such as Codeq, Project Grok, etc.

Rich Morin

unread,
Sep 30, 2013, 2:15:07 PM9/30/13
to clo...@googlegroups.com
Adam Bard has written an interesting blog post, comparing
core.typed to Haskell:

http://adambard.com/blog/core-typed-vs-haskell/

Both the post and the comments are worthwhile...

Colin Fleming

unread,
Sep 30, 2013, 4:01:24 PM9/30/13
to clo...@googlegroups.com
This is fantastic news. If anything, CinC is almost a more important project since its applications are so broad. I'm delighted to see the community getting behind both of these projects - congratulations Ambrose and Nicola!


Rich Morin

unread,
Nov 6, 2013, 4:20:06 PM11/6/13
to clo...@googlegroups.com
On Sep 27, 2013, at 09:51, Ambrose Bonnaire-Sergeant wrote:
> I have started a crowdfunding campaign to support full-time work
> on Typed Clojure.
>
> Please share!
>
> http://www.indiegogo.com/projects/typed-clojure

With only five (5) days left, the Typed Clojure campaign still needs
$47,400 to meet the "stretch goal" of supporting Ambrose for a full
year of development. I think Ambrose is offering Typed Clojure fans
a real bargain here and we _definitely_ should take him up on it.

If you've been waiting for the right time to contribute, this is it!

-r

--
http://www.cfcl.com/rdm Rich Morin r...@cfcl.com
http://www.cfcl.com/rdm/resume San Bruno, CA, USA +1 650-873-7841
Reply all
Reply to author
Forward
0 new messages