
Lunascript, another language for writing great web apps - snewe
http://www.asana.com/luna
======
m0th87
I respect the ambition, but doesn't it seem like a waste of time and money for
a brand new startup to focus on the creation of a brand new language
(+compiler +debugging facilities +documentation for new employees +libraries
+...) before making the core product? I understand the argument that better
languages = increased productivity. But designing a new language is a serious
investment, and unless what they've made is so revolutionary that it
completely changes the web development paradigm, it doesn't seem as if it
would pay off.

~~~
glymor
If it increases the chance of a technology or people acquisition it would be
creating value.

~~~
tptacek
It decreases the chance of an acquisition, unless things have changed since
the last time I was involved in acquisition talks. A sticking point in at
least 3 acquisition attempts I was involved in (one consummated) was the use
of idiosyncratic tech; in one case, it was using Tcl; in another, OpenBSD.

~~~
psranga
Great information, thanks! I take it the companies using Tcl and OpenBSD
failed to get acquired.

I didn't realize the technology used would deter an acquirer. This probably
explains why most startups go with "safe choices".

~~~
tptacek
I'm not going to say that (eg) OpenBSD kept a company from getting acquired;
terms and timing were more important. But it was continuously raised as an
issue, seriously enough that the engineering team was asked to port.

Bizdev is an awful reason to choose technology, or for that matter to make any
other decision about your product. I'm just refuting the statement that
writing your own programming language will _help_ you get bought.

------
ambition
I'm interested in _exactly_ the sort of application framework they seem to be
talking about. This is really how web apps (or all apps) should be built.

The Wikipedia link isn't terribly informative, but there's a ton of more
relevant literature tied in with functional reactive programming. (That's the
FRP in their to-do list). In particular, there's a research project called
Flapjax that you can play with right now that drives home how nice it _could_
be to program in this paradigm.

I have two worries about Luna, though. It doesn't look like they're using a
nice type system, which will be a pain for larger apps. And I can't say I like
that "Finish patent documentation for incremental computing framework" to-do
item.

------
alabut
I interviewed with Asana back in October and I got to see an in-person demo of
the app Justin shows at the 1:45 mark, a "structured list editor" that he says
they use internally to track bugs and projects. It's not just a hello world
app they built to test the language, it's a real app they use daily and fast
fast _fast_. After poking around on it with only keyboard shortcuts while
discussing UI ideas for a few minutes, I completely forget that it was a web
app. It didn't have any of gmail's or google reader's lag, for example, which
are the only apps with keyboard shortcuts I use regularly.

~~~
psranga
I would guess the speediness was because the server was in the same building?

~~~
smcq
They promote offline caching, so I'm betting speediness was because his edits
were modifying a local db then going through diff resolution after they
displayed.

------
smcq
This language looks pretty awesome, reading the example code I can see how it
would slash my loc for ajaxy stuff by at least an order of magnitude.

However, I am confused about this announcement since I cannot discover what
your company does from the web page and except the video there's not much to
go on about the language. Perhaps you want to fill in some blanks in the
comment section?

------
breck
> There's no need to write separate code to help the server figure out which
> values need to be sent to the client: the server can do this by simulating
> the UI.

Interesting approach.

The screencast is very good.

Wonder if that 1500 line todo list app is part of Asana?

~~~
TwoSheds
Isn't this a bit similar than what GWT does? GWT requires Java which is
clunkier than a modern dynamic language, but still...

------
olalonde
It seems like writing a whole new language is a bit overkill... why not simply
stick to the framework layer?

~~~
ambition
You really want to write code only once, and compile it to two targets: One
for the server, one for the client. This is really hard to do in all current
mainstream languages.

To illustrate: You have some piece of state y, and you have x = f(y) that
means "x is always the value of f(y), when y changes, update x." Furthermore x
is shared state across many users. On the server side you want that statement
to generate code for synchronizing values of x and y across users. On the
client side you want to generate code for pushing and pulling Ajax/Comet
updates from the others.

------
b-man
Isn't this somewhat equivalent to flapjax[1]?

[1] <http://www.flapjax-lang.org/>

~~~
lincolnq
I don't think so. I don't see any functional reactive stuff in Luna, whereas
that's the whole point of Flapjax...

Edit: reading more closely, I see why you say that -- "incremental computing"
link makes me think of FRP a little bit. But these people's goal with
Lunascript seems to be automatic communication between the client and server.
The "incremental" part is sending only what's needed to the client to execute
the client-side code, which is a really cool idea, but not very much like FRP,
I think.

------
mdg
Andrew Warner should interview these guys immediately.

