3 days left to pledge for Python in Light Table
kickstarter.com
kickstarter.com
So for $50 you get a license for this product. What does it cost to generate a license key or send someone an executable? Near zero? They keep like $49.98 at this tier.
For $30 you get a t-shirt. Cost to the developer? I don't know. Lets say the t-shirt costs $10. Plus the design time. Plus the prep, making sure people get the right sizes and postage time * (105 + 208). Probably making a loss at this tier.
You then have the licenses. $200 gets you 2 licenses. Wha? $500 gets you 4!? of course the benefit of the $500 is being admitted into the buggy alpha testing phase. Great..
I think they probably would have raised 300k with better tiers.
I also wonder about this Python promise. If I was a Python developer and it failed to hit 300k I might consider withholding my donation. I mean why not? I want Python support. I donate to that end. The project doesn't make it to Python support. I should remove my donation as I am not getting the product I donated to.
This kind of fund raising seems to fly in the face of what Kickstarter is about.
One guy I know in catering likes to bet that someone can't eat £1 worth of food. He's paying 2p for an egg and 1p for a rasher of bacon at wholesale rates...
I am a Python user who pledged with that in mind. Never got into Clojure (and OCaml or Haskell support I suspect isn't high on the priority list!).
I mean, look at all those getattr() setattr() stuff. LightTable doesn't stand a chance. Even dealing with some very primitive Django models.
I programmed in Smalltalk for years. Smalltalk has similar issues: dynamic typing, dynamic method generation/handling via #doesNotUnderstand:, and so on. Yet quite a few Smalltalk environments have accurate and useful autocompletion, on-the-fly documentation, and more.
How? You get three freebies that end up covering most situations:
1. Globals (which includes classes) are trivial to detect and centrally stored,
making it easy to pick up when a class is used in source code. So we've
now got autocomplete for all static methods and class documentation.
2. Most of the time, a variable is only actually assigned to once--or,
worst case, from one location. After that, it's merely manipulated.
See what class is getting instantiated there (see above), and you've got
a great guess on what type you're dealing with. (And, sadly, it's a
guess; "Foo new" *probably* gives you a new Foo, but it doesn't have to.)
3. Most methods *either* only get implemented once, *or* specialize a
method whose parent calls "self subclassResponsibility". So either
you've only got a single place to look-up, or you can hedge your bets
and show documentation for the version of the method that calls
"self subclassResponsibility" (i.e., the abstract one) and figure it's
applicable to the concrete instance.
These three rules (which can obviously be combined) end up working a surprisingly large amount of the time, and they're not ridiculous to implement. Granted, Python has a harder time here in some cases (e.g., you have to parse all accessible Python modules to build up a constructor list, and you'll likely have higher method collisions in Python than in Smalltalk due to the lack of keyword-based messaging), but these techniques will go a long way to getting you where you need to go.Past that? Things get really hard. Because Smalltalk's development and execution cycle is blurry, you can actually go further than the above rules by checking what types variables are in instantiated classes and methods, and turning your source-based guesses into statistics-based ones. There's no equivalent mechanism in Python. You could probably do something with an idempotent test suite and some hooks into the Python VM, but the problem gets much more complicated. Doable? Yes. Likely to come from Light Table? I'm not honestly sure, but I am sure that they'd have to be willing to get pretty dirty with Python to get there.
You can get a long way by being slightly smart about things, instead of just relying on a naive static analysis. (I mean "naive" in the sense of ... well, not in the insulting sense :P)
He also mentioned that with YC backing Python support was likely to happen sooner or later, but the $300k mark still puts Python in the "sooner" bucket.
I'm fundamentally very skeptical of an editor which I don't know that I'll be able to look inside of, hack on, extend, or fix. Given how the editor is at the center of most everything I do on a computer, all those pay-software fears are magnified for me.
Obviously 50,000,000 TextMate fans can't be wrong about paying for an editor, either, but this is a project I don't know that I can support.
That is, are they still looking for 300k in Kickstarter funds before supporting Python etc?
>We're sticking with our goal on Kickstarter - if we hit 300k we'll definitely do it. There's a decent chance we will either way though.
What's going to be the $400K mark?
Brainfuck?
The lack of money didn't stop the Linux kernel or GNU.
Not a probability of success I'd be fine with if I wanted Python support in Light Table.