Potion: A Short Pamphlet
hackety.org
hackety.org
As for how he supports himself and is able to make the time to code is a mystery to me.
http://github.com/why/potion/graphs/punch_card
Looking at his commit patterns, it's throughout the days of the week, even though the bulk of it is at night. But it's reassuring to see that even _why stops for dinner, and the reason why the rest of us aren't as productive is because we're not as consistently hacking away as he is.
As for knowing more about him, I'd say you'd probably learn more about him reading his code than digging up things like his real name.
I watched his talk at ART && CODE (http://www.vimeo.com/5047563) and it was full of some awesome jokes at his expense. I think self-deprecation is the best of character traits.
I am curious what he does for money, though. My ultimate goal is to have enough in the bank to solely hack on open source stuff for the remainder of my career.
oh, and thanks to raju for submitting the link; I last checked hackety.org about two weeks ago and it was down then. it's nice to see that hackety.org is up and running again.
That nobody's outed him is a testament to his greatness.
It's not secrecy as much as it's mystery
I also like that objects are not just tables, but some thought was give to efficiency. I also see that Potion compiles into machine code, so I wonder to what extent efficiency is driving the design compared to other "dynamic" languages. Is the absence of anything more than integers just a sign of the early stage of development, or does he want an efficient model for floats and bignums and not willing to settle for just any old thing? It would be nice to see another language shooting for that small, fast lower left corner of the graph.
http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependabil...
A new language including a high performance, reasonably high quality (suitable for most Monte Carlo simulations) random number generator rather than the crap that you get by default in most languages? Well I never.
In the latter case, well, if you want predictable numbers you shouldn't be calling a RNG at all. And in the former, it's not good, it's broken, PRNGs are supposed to produce the same sequence, given the same seed....
* LHF's lrandom: http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/#lrandom . While this is not in the core language, it's by one of Lua's three authors, and could be considered a semi-official extended library. (Since Lua is targeted for embedding, it's core standard library has been kept very tiny.)
The manual does, however, note that since PHP 5.2.1 "Identical seeds no longer produce the same sequence of values they did in previous versions.", which some people in the manual comments section took to mean that identical seeds could produce a different sequences even in the current version, but this does not appear to be so.
I've been playing a little with Shoes, I love it.
There's some use of macros where inline functions (or even C++ templates) would have been prettier. It's a shame C has such a lame macro language.
I was interested in how he claims space efficiency for objects, while still leaving open the possibility of abusing an object (not its type; it's a prototype based duck typed language) as a hash table via definition of new methods. It seems that the object model does have vtable sharing between instances of the same type, so I assume there's some kind of copy on write when you add a method.
Using prototypes, it would be one pointer. I don't see why that would be particularly space-inefficient.
Periods as block terminators seems like a Classic Military Blunder to me. You really want something that stands out for something that important, which is why curly braces (and indentation (and "END IF")) work so well.
I have 3 dozen period-sized flecks of dust on my screen right this minute. [pauses to wipe screen]. If this language went mainstream in its current state, I predict lawsuits for squint-blindness.
I agree with you, but I think in practice it's less a problem than syntax bugs caused by ambiguities in precedence, optional "else" clauses (shift-reduce conflicts), etc.
Prolog and Erlang (which was initially implemented in Prolog) use periods to end blocks, as well. While it can make rearranging expressions in a block a little annoying ("," vs "." in Prolog, "," and ";" vs "." in Erlang), it's small potatoes compared to the syntactic quirks in, say, C.
Also, Lua does the same "table as an argument -> keyword arguments" trick. (He mentions Lua in the list of influences.)
It's _why's work that makes my life more lush. Thanks you lucky stiff!
But one of the goal of the project is to get a fun, fast and dynamic language to run on embedded processors.
It would allow one of the goals stated in the Little coder's predicament: having an newbie-friendly environment that produces code runable on game consoles (though you'd have to create suitable libraries too for that to happen...).
Maybe I'm reading too much into it, but I think it will be added to Hackety Hack sooner or later (if I remember well, he stated once that more languages would be added. The first lick sample hints to that too).
"I estimate that 90-95% of the work in Plan 9 was directly or indirectly to honor externally imposed standards." - Rob Pike, "Systems Software Research is Irrelevant" (http://www.cs.bell-labs.com/cm/cs/who/rob/utah2000.pdf)