1. We've raised a seed round of $1M, so we can safely focus on product development and shortly on community building!
2. We've improved our core technologies to be much more robust, open and extensible, including:
- We've re-written our graphical interface to be much more open and extensible (it was previously running on WebGL and now we base just on HTML, so it will be possible to attach any HTML-compatible controls / visualisations directly to nodes)
- We've implemented new, better type inferencer and updated Luna compiler in many ways.
- And much much more, but I don't want to uncover everything before the release, especially when it's around the corner :)
I would love to answer your questions, so If you've got any, just post it here and I'll do my best to cover it. Don't forget to singup for the list at http://luna-lang.org. We'd love to collaborate with you during the upcoming release! :)
Keep up the good work!
I'm not talking COPs or Houdini is something bad. It is one of the few applications that I support with whole heart and I love it. In fact Houdini is a very rare example of really well defined visual DSL.
Luna differs in many ways, the most important are that we've got double representation and Luna is a real programming language, while Houdini provides you limited set of building, yet very powerful blocks. I would however love to see Luna used within Houdini as a plugin, I've been already speaking about it with some folks :)
(I'm totally not saying there's no need, but since it's highly technical and I probably would fail at it I'm really curious)
You might want to add what you just posted, there's nothing wrong with it, but it would make more people to get it IMHO.
Look, we've been working on Luna for over 2 years now, full time in a team of 7 people. We were often working during weekends or hardly sleeping at nights just to create what we believe in. We were constantly using software build the same way - linux, ghc, atom, etc. Now we want to give it completely free for everyone and we want to survive not because we want to be reach or famous, only because we so deeply believe that Luna really can drastically change something important in the data processing field. We will not survive without people engaged in this project, without people that will make it shine in different domain specific fields. We don't want then to "close" it - it will always be open and free (which is somehow guaranteed by the license too). As a company we need to make money too, but how could we make money not being honest?
We want to build community around good developers only because Luna could be a big development boost for them and additionally, we can together bring it to less technical people and help them too in their daily tasks. If people like what we do, we can then charge for support and additional paid services, developed by us, but I think it is really fair deal and companies should be built this way.
Sorry for a little long answer, but I got that sentence emotional! :)
I'm feeling really inspired, hopeful, and happy when I read comments like these because I consider the lack of vulnerability in the startup world to be as sad as the lack of authenticity. Thank you! I hope you'll keep doing what you're doing.
Are you, by any chance, familiar with nonviolent communication?
I was prompted to write my original comment by the simple fact that (usually, in my experience) people stick to the half-truths that are easiest for them to communicate, rather than embracing the hard work of truly conveying their inner meanings (note the plural). To wit: once a website is up and a coherent (albeit incomplete) ’truth’ has been ”put out there”, rarely would I expect the author of that website to turn around and say ”that is the self-serving story we wish to convey to one subset of our potential audience, those who self-select by relying on our website for information”. It's a very intellectually honest approach to admit that the content of the website is not Truth but rather some kind of social mechanism, every. It as ’functional’ as the code itself, and serves the a ’propagandistic’ purpose.
Collectively I summarise all of this as ’candor’. ;)
I love the visual/textual dual language concept - I've been trying to figure out a good solution where both work well and no information is lost from one by editing the other (eg if I create something visually, but edit it textually, does the layout get ruined?) and, at a glance, you seem to have largely solved this or at least managed to get it working well enough. Awesome.
I also like this as a tool for data processing. This kind of platform is something I've been wanting to build (and prototyped once a number of years ago even) for a long time. Couple it with a simple (and familiar) spreadsheet system and your golden (for my purposes - other people may think otherwise).
I haven't looked at Luna in any detail yet, really just glanced at the screenshots so far (I hope to read the material properly tomorrow), but one concern that jumped out at me was that the visual language semantics aren't clear to me. Of course, its probably unreasonable to expect to understand a new language without having read the documentation, so its unlikely to be an issue. I only point it out because I've seen a number of other visual languages claim to be super user friendly (even to non-programmers in many cases), when, IMHO, it really isn't unless you already deeply understand the concepts. I didn't see you making this claim though, so all good :)
Overall, I'm excited for this and wish you the best of luck. Hopefully you will choose me for alpha access so I can play with it ;-) :-P
I'm happy that so many people were thinking to do something going this way - we hear it often. This shows us that this need is widely seen and there is nothing we want more than just collaborate with these people. We will be releasing Luna shortly as Open Source project and will be helping growing community around it. I will be supper happy helping utilizing / extending it for your needs!
As I described before, the timing for this info is not the best, because Luna is not yet available, but it will be really shortly.
Luna introduces some abstraction levels. Some of the leaves (the highest ones) could be usable by less-technical people, but of course only after they get familiar with the concept! :)
Thank you and looking forward to building something interesting together! :)
Well it's not really a programming language, but a data processing platform, business people love that -> VCs love that.
We are not looking for any investments now but we are looking to collaborate with everyone interested in Luna, so that sounds like a "perfect match" for us! :D
In scientific spaces you have many data sources that all mean completely different things. They are all recorded in different coordinate spaces (mag, distances, polar, etc) and you want to plot many of these things into the same plot and have them go where they were meant to be.
If you could generate 3D plots as well just by flipping a switch that would be a huge plus. The hard part is that we have many modeling softwares that are written in strange ways and in strange formats. One example of a very popular model with a difficult interface is the IRI (http://irimodel.org/). If you could just link a node of "IRI" into "Earth Plot" then that would be awesome.
Just in case anyone else faces this issue, another possibility is to do WebGL-above-HTML two-layer hybrids, with punchouts to see the synchronized HTML. But perhaps not worth the pain for 2D UIs.
Hmm. Last year I half-started a quick hack of atom.io with CSS3D in Vive VR. Intended for purescript et al. But the display's angular resolution was painfully low for working with text. It looks like Luna might be an interesting alternative for exploring coding in VR.
Also on my infinite todo list are exploring VR direct manipulation of a category-theoretic pushout lattice of <types,ops,laws> theories, and (separately) an interactive editor for string diagrams...
Any thoughts on using Luna as a compiler target?
How do you expect the visual syntax to integrate with VCSs? Do you have an algorithm and UI to present visual conflicts? How is the layout after a Git merge?
Let everyone check it out, the passionate ones will engage more through any channels you have (mailing lists, chat, twitter) and be easy to find, IMO.
After reading some of their comments & the copy on their homepage, the creators of Luna sound like they could be fairly mindful people. I'm betting they're seeking people who enshrine certain values to seed their community with & want to privately establish a relationship with them. I find this approach appealing to my introverted side, as a result.
The next mindful step would be to open things up to everyone immediately to allow the ensuing flood of extroverts & introverts alike. This approach seems like it could counter starting off with winner-take-all mechanics in the community's culture.
Then again, all I know about the product is from the first bits of text on their site & this post. I didn't know they weren't simply allowing everyone in until this thread. I could be totally off on how they're rolling. If I am, I'll have to take some time to examine my confirmation biases.
For what it's worth, I've tried the page on 7 screens/devices here, and it was only properly readable on 3 (two of which are very similar models by the same manufacturer). On three of the screens (two really new), it was more trouble than it was worth.
Two questions: How does Luna compare with flow-based programming model implementations such as Apache NiFi and its Expression Language or NoFlo? And do you find Luna appropriate for Internet of Things real-time data processing?
Is there a particular timeline on that? I'd love to see how this is implemented (and - importantly - whether or not this can easily be integrated into other software).
Could you (or anyone else) elaborate on MIT vs Apache V2 and patent protection?
I asked before as googling because there are often very well-informed software legal opinions on HN.
Maybe with documentation? I could at least help with editing / proof reading and the drudge work you guys are too talented to be doing! Your time is much better spent on the core development.
Drop me a line at wojciech at luna-lang.org and we could work something out :) I do not promise we will be able to collaborate before the release (we've got our hands full of work and we're hardly sleeping in nights now), but in the early days / moths after the release the help would be much needed and we would love to build community around people as passionate as you are! Thank you! :)
So do you have first-class support for video as well as images? It seems like to have fun with video editing in Luna, you'd need to have built-in support for videos an inputs and outputs, and have a way to play the video output on the screen, and maybe scrub through it, and at a minimum be able to run shaders on the "current frame" and export the resulting video out. The next level after that would be being able to load multiple frames into memory at the same time, and being able to do a combination of "offline" and "online" processing with some CPU involvement (e.g. calculating a motion track and storing it, or applying a filter that can't be expressed as a pure shader program).
I don't know enough about Luna yet to know what code to do these things would "look" like on the visual side, or come to think of it where the computation is being performed (in the browser?). Much more to learn, but the project looks great, a sort of "holy grail" in a way.
You can think of Luna just like about a general purpose programming language. You can define your own types and you can even define how to decode bits from binary files to your structures. The GUI runs in HTML, so you can utilize any html component to display output. Definitely, your use case is doeable, however the amount of libraries currently available is very, very low, so it will need some love :)
Did I answered your questions? :)
Because I gave this some thought as well and don't see why not in general, but I don't know how luna works .. or if there are some restrictions I did not encounter yet ..
If you are thinking about visual language you have to think about many constructions that collectively give you user experience, including available basic construction blocks (how looping, branching works etc), structures, lambdas, every language construction, how you give hints to user what is possible and what is wrong and additionally how to do this real 2 way transformation of code and graph.
Luna infers types and displays colors according to them. We use algebraic data types, lazy evaluation, pattern matching and purely functional paradigm which suits graph visualization really well. We fine tune performance by allowing lazy data visualisation and many, many more things. I don't know how we can even visualize standard OO abstractions to be usable and pleasant to work in the visual form. It does NOT mean we did not think about it. We did for a long time.
Sure you can utilize Luna gui to visualize anything, including python code, but it would be insanely hard to deliver similar functionalities to what Luna offers out of the box (which is available by careful design of both representations).
I feel thin answer is very vague, but I hope I put a little light on how complex this task is. Did I answered your question (at last partially)?
I would like to try out the beta once you publish(soon?), to see more what you do and understand better (and see whether my ideas could be compatible, or not)
I don't know if or how luna handles this, but its a concern that I've had trouble with when I was thinking about something similar in the past.
Answering the question more directly, we will be providing payed support and hosted computing environment with automatic scalability in the future, however now we will be focusing on building community and helping everyone gain from what Luna has to offer, keeping Luna completely open source and free.
Did I answered your question deep enough? :)