46 ms·
Hi, I'm one of Luna founders, I'll be happy to answer any questions! :)
by kustosz 9y ago
Hi, I'm one of Luna founders, I'll be happy to answer any questions! :)
- bsaul 9y agoNice project, congrats. I think everybody here understands the idea behind your product (inspired by bret victor talk, fwiu). However, i think nothing would replace a nice screencast of what programming in this environment looks like. I didn't find it on your homepage, and i think it should be one of the very first thing. my two cents.
- seanmcdirmid 9y agoI don't think Bret Victor ever did a visual dataflow language, did he? This doesn't seem like the kind of thing he would do, it is more in the spirit of Quartz Composer (especially in its liveness and explorer) as well as VVVV, among many others. It also reminds a bit of Unreal blueprints in the way it handles completions on results (just draw out from the output, and you get a list of what patches you can bring in to deal with it). It does seem like a nice replacement to Quartz Composer (well, we have Facebook Orgami now), since Apple isn't going anywhere with that these days (though aimed at data processing rather than graphics and animation).
- wdanilo 9y agoBret Victor's ideas are a very strong inspiration regarding where graphical interfaces could expand in the future. We strongly agree with his principle, that people need an immediate connection with data they are working on. This principle is one of two foundations on which Luna was actually built. We have described our thoughts in detail in our blog post here: https://medium.com/@luna_language/luna-the-visual-way-to-create-software-c4db520d6d1e https://medium.com/@luna_language/luna-the-visual-way-to-cre....
- seanmcdirmid 9y agoBret Victor has written about these kinds of languages before, mainly in his "Drawing Dynamic Visualizations" notes (http://worrydream.com/DrawingDynamicVisualizationsTalkAddendum/ http://worrydream.com/DrawingDynamicVisualizationsTalkAddend..., talking about what he just presented): > Is this "visual programming"? No. The term "visual programming" has had a well-established definition for several decades, and this tool is not that. > A "visual programming language" provides graphical representation and spatial manipulation of the program structure. (That is, static "elements" or "operators", analogous to the "code" in a conventional programming language, or schematic components in a circuit). > This is not the case with the tool here, which actually represents program structure as a fairly conventional list of textual instructions. The only direct manipulation of the instructions is merely in selecting them for looping, deleting, etc. > Instead, the tool provides graphical representation and spatial manipulation of the program data. (Dynamic or "runtime" information, analogous to the values of data structures in a conventional programming language, or voltages in a circuit. In this case, the data is a picture.) The program structure is built up implicitly by directly manipulating the data. Luna seems to lay firmly in the former category rather than the latter: it is firmly steeped in writing code to manipulate and visualize data, rather than manipulating data to get code. There isn't anything wrong with that, but I see a lot more similarities between Luna and Latour's Quartz Composer or Sweeney's Unreal Blueprints than I do with Bret's systems.
- wdanilo 9y ago@seanmcdirmid We are not yet there, but we develop Luna to target EXACTLY these use cases - program modification AND very direct data manipulation. We see Luna as an unified platform for building rich DSL's. An example of such rich DSL is what Bret Victor demonstrated in his talk. You can read more about rich DSL's and what Luna is meant to be in our blog post here: https://medium.com/@luna_language/luna-the-visual-way-to-create-software-c4db520d6d1e https://medium.com/@luna_language/luna-the-visual-way-to-cre... Regarding your thoughts, Luna is a fusion of both approaches. When you create and connect nodes, you are manipulating the program structure - you define how data flows between components. However, every node has the ability to display an interactive results visualization and input data widgets. Basically these visualizations and widgets allow you to work directly with data – you can create canvas visualization which let you paint on it, you can create a 3D scene visualization which would allow you to not only inspect 3D scenes but also modify them etc. These visualizations can be displayed below nodes or can be detached to be separate windows and are defined as HTML/js snippets. Does it make sense to you?
- wdanilo 9y agoHi @bsaul, our website is currently full of screencasts. If they do not load in your web browser, please tell us what is the browser and what system are you using. The ifrst screencast should appear in the website header - please wait couple of seconds and see if the movie will load there. In the meantime, please test it using Chrome! :)
- bsaul 9y agoI see really fast and hard to understand animations. What i mean is a 20 minute video demonstrating how to solve a real problem in the environment.
- wdanilo 9y ago@bsaul, video tutorials are a very interesting idea. In the first release, however, we have incorporated few toy-projects and interactive tutorial, which guides you step by step inside the product. Do you think video tutorials are better to understand / follow than examples or interactive tutorials ?
- rayalez 9y agoI would definitely prefer video tutorials, they would be massively helpful for me to learn. By the way, if anyone wants to make a youtube channel about luna, I'd subscribe, if anyone wants to make a udemy video course - I'd buy it =)
- wdanilo 9y ago@rayalez thank you for your feedback! It is very interesting for me personally. I would not have thought that video tutorials could be better than interactive ones, but it is probably because of my strong personal preferences towards examples / interactive tutorials. On our short roadmap I see new demo scenes only, but we will talk internally about video tutorials tomorrow. If you think you would like to help us with them – by providing ideas or just helping us create them, we would be more than interested in collaborating with you! :)
- everdev 9y agoJust want to say kudos for making design a priority from the start. Developers often underestimate how important design is to ease of use. Looks fantastic and excited to see where the project goes.
- wdanilo 9y ago@everdev, thank you <3 Luna is a visual language. It is important for us. How it looks like, how it behaves, how you feel with it, how fast you can work in it - these are the things which are most important when designing Luna. In fact, because of these things we have designed a new language instead of using existing one - then we would have to sacrifice some visual elements / behaviors and we do not want to do it. We are small team, please support us as much as you can! If you want to see Luna succeed, help us do it by contributing to the project - both ideas as well as help with its development are very welcome! And I promise, we will do what we can to make Luna the most powerful and beautiful visual language ever created :)
- CapacitorSet 9y agoSome impressions right after the download: * I can't see why I have to give my e-mail address. * The Electron setup process is very nice! Though, I wouldn't have minded a lightweight installer, with little more than a wrapper around curl. * After installing the software, I can't see it anywhere - nor from the XFCE app finder, nor in $PATH. I know I should read the documentation, but it'd be nice if I could at least find it from the app finder (it's a matter of adding .desktop files, I think?).
- joshumax 9y agoIt took me a bit of reading through the luna-manager sources but it appears to install it to $HOME/.luna/bin
- wdanilo 9y agoI'm happy that you are already familiar a little bit with Luna code! Now if you want, you can contribute to the project easily! :D Answering a little more serious, the installation path on any Unix system is described in our documentation here: https://luna-lang.gitbooks.io/docs/content/installation.html https://luna-lang.gitbooks.io/docs/content/installation.html :)
- wdanilo 9y agoThank you for your your impressions, we would try to improve it as much as we can. Answering your ideas: 1) You do NOT have to provide your email address, just type there anything if you don't want to provide your real address (it is not validated in any way), however, we would be very thankful if you provide your address, so we can track now how many people are using Luna and if there are any problems happening when you are using it. The detailed logs we collect are described here: http://www.luna-lang.org/alpha-data.html http://www.luna-lang.org/alpha-data.html 2) Thank you! If you have any ideas how to make it more lightweight and still work across all platforms, while providing users with the easiest possible installation experience (double click and install using a graphical installer without any manual configuration), please tell us about it using github issues here: https://github.com/luna/luna-manager https://github.com/luna/luna-manager We would love to simplify it if that would be possible! We were focusing on delivering unified experience across all platforms and it is important for us, especially when we will be targetting not only developers (but also domain experts, like bioinformatics, IoT developers etc) in the near future. 3) I would be thankful if you create issue regarding lack of proper XFCE support and tell us what the installer should do on XFCE. I know that it is working correctly under Gnome and KDE. You can find Luna installation in ~/.luna/bin/luna-studio/current/luna-studio :)
- Stratoscope 9y agoThis looks very cool! I especially like the geographical stuff, that being something that is dear to my heart. I have a couple of questions that may sound trivial but are important to me. I haven't tried installing the studio yet, so please forgive me if installing it would answer these. First, all the screenshots, along with the doc pages, use a dark theme with very low contrast: only 47% contrast on the body copy in the docs, and much of the text in the screenshots has even less contrast than that. I know that low contrast dark themes are very popular, but younger developers are often unaware that they can become very hard to read as you get older or if you have less than perfect vision. There's even been some research done on this; I don't have the source handy right now, but the basic idea is that dark themes cause your eyes' irises to open up wide, while light themes cause them to "stop down" with a narrower opening. And like a camera lens, many people's eyes can focus more sharply when they are stopped down a bit. There is also the problem of switching back and forth between light and dark backgrounds. All of the web references I use day to day have light backgrounds; all my editors are set to light backgrounds, basically everything I do is that way because I find it much easier to see things. Switching back and forth to one app that uses a dark theme is hard on the eyes. I did find the PDF version of the docs, and that uses a conventional high contrast light theme, so that is nice. Somewhat less important, I'm curious whether the studio supports proportional fonts? I don't enjoy monospaced fonts and I find them harder to read than proportional fonts. This is not a big problem like the dark theme, but it would be nice to support any choice of font. I should file GitHub issues on these, of course. Partly I just wanted to mention them here to help raise awareness among other developers that dark, low contrast themes can be a real accessibility issue for some of us. Thanks, and I look forward to checking this out!
- singingboyo 9y agoOT: Do dark but high-contrast themes have the same issues? I ask because, just to reduce eye strain in the other direction, I avoid bright screens where possible. Probably a side effect of often doing things late or even at normal times during winter. In any case, if I ever built a website it'd probably be dark-ish, but knowing about the pitfalls might help avoid them. Even more off-topic, but in the interest of eyesight stuff - both switching between light/dark and dealing with bright screens have been basically unnoticeable since getting blue-filter coating on my glasses. Not sure I'd recommend it for color-sensitive work, but it's not problematic at all for programming and stuff like that.
- _Nat_ 9y agoHey, I'm a founder working on something that can have a pretty similar front-end! Could you comment on your business model? In particular, how's the company intend to draw in revenue?
- wdanilo 9y agoHi! Do not do another front-end! Use ours, here it is (with some additional code, we should move to separate repos soon): https://github.com/luna/luna-studio https://github.com/luna/luna-studio It would benefit both worlds - you start with something working and well designed and if you improve it in any way, we would be happy to have your contributions :) Regarding business model - everything is free. We will provide some paid hosting solutions in the future / paid libraries for very specific domain use cases.
- sbrother 9y agoThis looks absolutely awesome! Very excited to try it out. My biggest question that I couldn't immediately answer from the website is how well this deals with larger than memory datasets. Can it source data from a Postgres DB? A Cassandra cluster? Can I build/debug on local CSVs and then apply the dataflow to live data in an S3 bucket?
- kustosz 9y agoHey, thank you! :) You can run computations on streaming data sources, and building computations on some local files and then running it as a part of a bigger, network connected pipeline is a very common workflow. As for connectors for specific services like Postgres or Cassandra, there aren't any libraries yet. All there is is bare networking, ready to be used for these. If you'd like to make that happen please let us know over the chat or at our forum, we'd love to assist you!
- CapacitorSet 9y agoThe examples list failed to download, so I had the pleasure to try to program on my own (no, I'm not ironic, it's actually rather fun!) with the help of a bit of knowledge about functional programming. The most important thing, i.e. the concept behind the language, is very cool. Though not a groundbreaking idea, the visual model is certainly an interesting outlook on understanding programming that goes beyond the trivial Scratch/flowchart software. The language itself seems to be very powerful, too, as is expected of functional languages. I like that functions can be defined on prototypes (eg. List.map) as well as its visual representation, though it took me a bit to figure it out ("why is it `list . map (+ 1)` and not `map list (+ 1)`? What's the `.` operator?", followed by "... oh, it's simpler than I thought"). The documentation is very basic - I wish the "Starting out" section included at least a hello world (eg. writing a function that returns `[1, 2, 3].map (+ 1)`, both in the GUI and in code). I can do that tomorrow (17/01 in the UTC afternoon), if needed! The editor is okay, for a beta. It's quite "rough around the edges", with a few errors popping up here and there, but it's usable (though accidentally made it unusable, requiring a restart of the application, with a syntax error - but again, it's okay for a beta). Anyway, it's a very cool project that I'll be keeping an eye on in the next months. Thank you for your work!
- wdanilo 9y agoThank you! We will do our best to make Luna the most powerful visual language ever created!
- arnioxux 9y agoEquivalent text and graph representation is the killer feature. I previously looked at stuff like https://flowhub.io/ide/ https://flowhub.io/ide/ which is a dataflow language spec and editor. Specifically the js version https://noflojs.org/example/ https://noflojs.org/example/ for compiling graphs into js for some canvas image pipeline work. Each component has an underlying text representation that you can edit like you guys. But that representation isn't code. It's just the configuration of the node. This isn't what I want! I want to architect the dataflow on a whiteboard, code it normally (a new language is okay), and then have it visualize the same dataflow for debugging (with help grouping/organizing if needed). Every programmer already does this in their head but without the visual aid. (Focusing too much on the graphical representation is a mistake. There's only a handful of granularities that are worth whiteboard diagramming and people definitely don't want to code with a mouse dragging and zooming. But having the diagram at specific architectural level when you do need it is invaluable) I haven't tried your product out yet so I don't know if you guys got it right, but at the very least you guys recognize the importance of "dual syntax representation" as a selling point!
- anigbrowl 9y agopeople definitely don't want to code with a mouse dragging and zooming Actually that is exactly what I want which is why I signed up for the Luna beta months ago. We have had flow based programming for a while in the synth and robotics communities and nesting diagrams within each other is the normal thing. For many tasks you can produce elaborate working interactive UIs without ever writing code. My favorite software allowed adding code in C and assembler, though then they shifted focus towards the robotics control market and reoriented it around Ruby. There are two big advantages in working primarily at the graphic level: you can trace control flows visually and you don't have to know all the libraries and syntax. Instead you can select from a palette and find out what they do by using them, and it should be the computer's job to worry about syntax anyway.
- kirillseva 9y agowould you care to name that favorite software that has reoriented itself towards Ruby? Curious to learn more
- wyqydsyq 9y agoI love the concept of Luna and think the project itself was great, However I feel you guys have chosen a poor approach to distributing it. ① I feel it would have been far better to implement the studio as an Atom plugin rather than a fork of Atom ② I feel having the compiler only available bundled into the studio is a mistake, there should be a pure CLI interface with minimal external dependencies so that people can use Luna in their existing CI pipelines
- kustosz 9y agoThank you for the feedback! To answer your concerns: 1. Studio is actually a set of plugins for Atom, not a fork. It's just that we are shipping an Atom binary and make sure that it can work alongside a standard Atom installation, for a smoother experience. We understand how many people use Atom for their daily work and we'd rather not mess with that. 2. That's a perfectly valid point! We'll prepare a CLI distribution, but for the first release we wanted to make sure that Studio works well (the visuality is one of the strongest points we're trying to make after all). For now there's an option to build a command line client from sources, but a bundled version is coming soon :)
- alexchamberlain 9y agoI'd rather not be forced to use Atom...
- wdanilo 9y ago@alexchamberlain Luna is not strongly connected to Atom. In fact, Luna gui runs in HTML and you are able to run it in your browser without Atom right now. However, we do not officially support it. We have chosen Atom just to bring a decent text editor to Luna Studio - thats it. We are planning to release web-based Luna version with some kind of web-text-editor in the future. It is not our priority right now (we want to focus on improving performance and delivering more rich data manipulators), however if you think you could help us with it, we would love to support it as much as we can! What do you think about it?
- 9y ago
- raytracer 9y agoThis looks great. Congratulations on releasing the beta. * Is it possible to work with incoming data in real time? * Is it possible to use MIDI and audio as data sources? * If so, can the applications also output MIDI and audio in real time?
- spiralganglion 9y agoIt sounds like you’re looking for a nicer version of Max/MSP. I’d certainly be keen to see Luna’s GUI applied to that domain, but I think it’d be better to hope that Max take UI / language design lessons from Luna than Luna add audio processing. The std lib in Max is so astoundingly rich — the number of highly optimized DSP ops implemented in C is going to be hard to match. Even if, say, there was a way to run Luna on the browser, so as to leverage the Web Audio API, you’d have nothing close to what Max has for processing. But of course, Max’s UI and the design of their atomic language constructs really leave a lot to be desired. In this regard, it seems Luna is already flying circles around them. (Though I say this without having actually used Luna, so... grain of salt.) Comparing the two is so fun, as it shows just how underexplored the world of node-based dataflow languages is.
- raytracer 9y ago> It sounds like you’re looking for a nicer version of Max/MSP Exactly. Max/MSP is great and I really want to like it, but despite making several attempts at using it in my practice, it hasn't stuck yet. Max doesn't have enough abstractions to make in depth development enjoyable IMHO. After a certain point I get bogged down and long for a regular programming language with an IDE. I'd probably enjoy Max more if I was comfortable in C. Max's std lib is rich and it would hurt to start from scratch in another environment, but you don't need that many DSP modules to start building interesting patches. An LFO, filter, ADSR and an oscillator get's you a long way towards a usable synth. And there are many open source libraries to draw from.
- spiralganglion 9y agoHave you played with the Web Audio API? It’s got all the primitives you need to build some really cool stuff (plug: ivanish.ca/diminished-fifth), and you have the full power of JS to build your abstractions atop... but you’ll almost certainly wish you had all those DSP goodies before long. On that note, I wonder what sort of libraries people have written on top of Web Audio. That might be a viable leverage point.
- marmaduke 9y agoDo you have any perspective on offloading numerical code to the GPU? Is that something that could be done in a library?
- wdanilo 9y ago@marmaduke that is definitely something you can do in a library. Luna provides two backends - a runtime interpreter and native code generator (the later is not yet available in this release). Both have access to the most primitive OS APIs. If none of our standard libraries provide what you need, you can easily extend them either by writing it from scratch in Luna or connecting to Haskell libraries. We are working to allow you to connect to libraries in other programming languages as well and allow you to do it in the simplest possible form. If you have any further questions - how to do it, how it works, write to us using our forum: https://discuss.luna-lang.org/ https://discuss.luna-lang.org/ We would love to help you create what you need!
- netmask 9y agoSo all the stuff is <any> to Js ?
- wdanilo 9y ago@netmask, I do not understand your question, could you please explain it better? :)
- VladimirGolovin 9y agoI'm trying Luna under a non-admin account in Windows 10. I tried to install it for the first time and forgot to turn Avast antivirus off. It blocked tar2.exe execution, so I had to turn it off and reinstall. It downloaded and installed fine, but I can't figure out how to run it: there's no shortcut in Start menu. Does Luna create one, when installed normally?
- cturner 9y agoSimilar experience. I booted to windows to try it. No antivirus in play. Installer exits without explanation, cannot see anything to run.
- wdanilo 9y ago@cturner I'm sorry that you have bad experience with installation so far. Please report your issue to our bugtracker and provide as much information as possible. Windows support needs much love and we will improve it as fast as we can. https://github.com/luna/luna-manager/issues https://github.com/luna/luna-manager/issues
- wdanilo 9y ago@VladimirGolovin I'm sorry that you have bad experience with installation so far. Please report your issue to our bugtracker and provide as much information as possible. Windows support needs much love and we will improve it as fast as we can. https://github.com/luna/luna-manager/issues https://github.com/luna/luna-manager/issues
- Fnoord 9y agoAre you aware of the existence of the Lua programming language, and the word "lua" meaning "moon" in Portuguese?
- aldanor 9y ago"Luna" also means "moon" in most Slavic languages so it looks like it's intentional.
- wdanilo 9y agoActually it is not intentional. We do not have any connection to Lua. The name "Luna" was used from the beginning of the project, people started recognizing us with it and we simply love this name so it stayed with us. If such confusion would be often, we will change the name, however, we've got few comments that this name could be confusing but in fact nobody ever confused it. We are still open to change it and are actively looking for any kind of replacement. If you have any idea of a name that would be suitable for such a language, I would be more than interested in hearing it. Moreover, I just opened a thread on our forum to discuss names propositions. If you've got any ideas, please share them with us! :) https://discuss.luna-lang.org/t/luna-the-name/73 https://discuss.luna-lang.org/t/luna-the-name/73
- mmjaa 9y agoI was initially excited about this, because I'm a huge Lua user and fan, but then when I realised it was something other than the object of my love, was immensely disappointed it had nothing to do with Lua. So I'd be one of those who'd suggest a re-branding, because the Levenstein distance is not big enough and there is too much potential for brand pollution on both fronts. Lua got to the moon first - you should shoot for another distant body, imho.
- tobiaslins 9y agoThe line "Loves dogs, hates JavaScript." is really unprofessional. Wojciech should write which language he likes..
- wdanilo 9y agoI love dogescript (https://github.com/dogescript/dogescript https://github.com/dogescript/dogescript)
- bane 9y agoI've worked with a few visual dataflow language tools like this in the past, and there's definitely an important place for this kind tools in many environments -- this is beautiful work! I haven't had a chance to check it out yet, but just want to throw in some support. One of the problems I've seen with these tools in the past is that they tend to live in very niche places and not get much public exposure. I'm very happy to see a publicly available tool out there.
- wdanilo 9y ago@bane, thank you for your comment. It is very important to us to work with people who already have experience with visual languages, so please, stay in touch with us and use our forum / chat to tell us about your ideas! We would love to help you create things with Luna! Your sentence about visual languages that tend to live in a very niche places is a VERY important topic to me. In fact I think I've got a very crisp answer why it is happening: 1) Visual languages are mostly not open and free. 2) Most visual languages are designed for a very specific domain use cases (like sound processing, 3d graphics, etc). People are afraid of limitations! Unless I'm 100% sure that I'm working exactly in this niche, if I want to process data / create software I would never choose a domain specific visual language, because the probability I'll hit its limitations are too high to take the risk. This is why we have developed Luna as a real programming language, so literally if you are able to do anything in C, you should be able to do it in Luna! 3) Almost every visual language is designed just as components you can connect. That's it, they are not tightly integrated with textual representation. This often makes working in these languages tedious - you have to create many nodes to achive what you can within a single line. In Luna, however, you can use any expression to create node. You can for example create node `(2 + _).sqrt`. You will get a node, which will allow you to connect one input and send data to the missing place in expression. It allows you to keep your graph clean and small. Moreover, we have described in detail why current visual languages fail to succeed in our blog post here: https://medium.com/@luna_language/luna-the-visual-way-to-create-software-c4db520d6d1e https://medium.com/@luna_language/luna-the-visual-way-to-cre... What do you think about it?
- bane 9y ago