14 ms·
Luna 1.0 Beta is out
- kustosz 9y agoHi, 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
- serverholic 9y agoVery cool! Can't wait to play with this.
- wdanilo 9y ago@serverholic, we are happy to hear that! Please share your thoughts with us after you play with Luna! :)
- simplify 9y agoThis seems like my dream environment come true. Can I build a web server with it? Does it have package management?
- kustosz 9y agoWe don't have a webserver library yet, but a simple one is coming soon (probably this or next week). As for package management – well, we figured it's to good have some packages to manage first and not to rush into that. It is also a nice effort for the community, if there would be anyone interested in contributing such a system (thus earning eternal fame ;))
- Rebelgecko 9y agoCool looking project. Unfortunately my browser (Firefox) is really struggling with scrolling on the overview page... It keeps getting stuck while scrolling past the "powerful engine. Limitless" block of text.
- wdanilo 9y agoInteresting, we will investigate it ASAP. In the meantime, please try Chrome instead. We'll try to fix it soon. I'm really sorry for the incontinence!
- natecavanaugh 9y agoI think you mean inconvenience, but incontinence works too, since it sounds like the OP had a crappy experience ;)
- wdanilo 9y agoYou are right, I definitely wanted to use the "inconvenience" word here, but it seems my dictionary knows better what is happening :D
- keithnz 9y agoI don't think incontinence is the word you are looking for .... or maybe it is!
- pasta1212 9y agoI’m sorry to hear about your incontinence as well!
- wdanilo 9y agothank you!
- tomca32 9y agoIt's very laggy in Chrome as well. In fact, in chrome dev tools, if you open up a rendering tab, you can click on "Scrolling performance issues" and it will highlight parts of the page which might cause scrolling lag. Not surprisingly, it highlights mouse wheel listeners.
- quizotic 9y agoBeautiful. Data Flow + Functional. Love the idea and can't wait to try it out!
- wdanilo 9y ago<3 Thank you! I hope you will enjoy playing with Luna. We are looking forward to hear about your experiences and use cases using our chat / forum (http://chat.luna-lang.org http://chat.luna-lang.org) / (http://discuss.luna-lang.org http://discuss.luna-lang.org) ! :)
- garyclarke27 9y agoLooks cool - Is it easy to interact with a SQL database, ideally Postgres?
- kustosz 9y agoHey! For now the best way to interact with Postgres is, I think, using an HTTP wrapper server. A better way to do this needs to be created. Maybe as a community effort? ;)
- wdanilo 9y ago@garyclarke27 if you are interested in helping us create such binding, we would love to support your effort as much as we can. Just tell us about it using our chat / forum (http://chat.luna-lang.org http://chat.luna-lang.org) or (http://discuss.luna-lang.org http://discuss.luna-lang.org) and we will figure out the best way to make it happen! :) The basic building blocks are already there!
- garyclarke27 9y agoHi Wojciech. I suspect that an ‘out of the box’ integration with Postgres plus options for some of your text representations to be expressed in SQL instead of your language would be a killer feature. No ORM though - I love SQL - I would happily pay £1000’s for such I for example come from a finance background - now I design ERP / CRM software for my own company, I have a UI team but I would like to express some UI myself, to get immediate feedback, to iterate rapidly, a WYSIWYG tool would be perfect for me. I have total expertize with SQL an Excel, but not so much with Javascript. SQL and the Relational Model can be purely functional if immutable, ie insert only, I also use graphs a lot in my schema, they are just relations, Postgres can build closure tables remarkably quickly to create indexes for instant path queries. My main constraint is time not cash, can your system easily interact with a REST endpoint? Postgrest (written in Haskel) makes these quite easy to setup. I auto generate SQL language functions for all data inserts, no direct to table allowed. So interaction with Views and Functions is my main requirement.
- dflock 9y agoThis looks like it might a good fit for data flow/transform/etl type workflows. 1. Does this work in a clustered/distributed environment? 2. Does this integrate with Hadoop/Mapreduce/Yarn/Kafka? 3. If it doesn't integrate with hadoop, how hard would it be to integrate it, do you think?
- kustosz 9y agoHey! There isn't any out-of-the-box support for distributing Luna programs over the network or any library for that yet. We'll get there eventually, but this is too early a release. As for integrating with Hadoop and others: the networking libraries are already there, so there is always a way to integrate. There aren't any adapters yet, so creating one is as hard as wrapping the necessary network calls. If you'd be interested to get deeper into that, I'll be happy to assist you. Just let me know over our chat or forum and we'll make that happen :)
- moondoge 9y agoBe aware, before downloading: This application will not run without providing an e-mail address. It also forces data collection. I will not use such software.
- darkkindness 9y agoAlso be aware that it's a beta. It's not necessarily an evil thing to want to get feedback on your software from those who are interested.
- slowhands 9y agoThen why make opting-out of telemetry consent so obtuse?
- Andrenid 9y agoIt's a beta. You're helping them test it, so them collecting usage/statistics is completely fair. If you don't want to take part in the beta testing, don't install the beta and wait for the full release (which the creator said elsewhere in the thread won't require email or data collection). In saying that, I do think a sentence above the email field saying "By taking part in this beta, you're helping us collect data to improve the product for final release, which will not require your email address or do data collection unless opting in" or some such.
- wdanilo 9y ago@moondoge, if you don't want to provide your mail, just write anything in this field, we do NOT validate it in any way. However, we would be very thankful if you provide your real mail address, so we can track how Luna is used and improve the experience. Every data we collect is described here: http://www.luna-lang.org/alpha-data.html http://www.luna-lang.org/alpha-data.html . We try to collect only insensitive data, that tell us how Luna is used and how well it performs.
- gatmne 9y ago
- deleted 9y ago[deleted]
- Vesnica 9y agoWindows installer needs add proxy settings, I'm behind a firewall, and always get "Prelude.head: empty list" error.
- wdanilo 9y ago@Vesnica, we would address this issue tomorrow (it's 2 am here and our team is slowly falling asleep!). I've created an issue for you, so you can easily track its progress here: https://github.com/luna/luna-manager/issues/111 https://github.com/luna/luna-manager/issues/111 :)
- Vesnica 9y agoThank you very much!
- ddrdrck_ 9y agoSame error here, I am not sure at all it is a firewall issue though
- rayalez 9y agoAmazing! I've been lookibg forward to this for a long time, can't wait to build something with it! By the way, I've made an unofficial subreddit: https://www.reddit.com/r/LunaLang/ https://www.reddit.com/r/LunaLang/ Could be useful to share projects, ask/answer questions, etc.
- wdanilo 9y ago<3
- ernsheong 9y agoPardon the ignorance, but how does the team support itself, freemium language and premium tools?
- brucephillips 9y agoInvestors: https://www.crunchbase.com/organization/nodelab-2 https://www.crunchbase.com/organization/nodelab-2
- fncypants 9y agoOh, ok. But pardon the ignorance, but how do the investors make a return on their investment, freemium language and premium tools?
- rehemiau 9y agoProbably the editor will have domain-specific add-ons and libraries developed and supported by the company. They can also provide workshops and certifications if the language gets more popular.
- kustosz 9y ago"Freemium language" is not an option. The language is, and will be free and open source. I cannot even imagine any other option, particularly after open sourcing the codebase. Premium tools and services is the way to go for us and we don't feel that would be detrimental for Luna. It ranges all the way from simple consulting services to running a Luna based cloud environment, but there is no threat for Luna as a language in that. On the contrary, this kind of support usually helps boost the technology.
- SolarNet 9y agoYea, having a first mover advantage on every major product in and around the language is how they profit. Sort of a pretty old racket actually. Create a brand new market vertical, and then build the ecosystem for it before anyone can even access it. It's kind of like pre-mining a crypto currency. Except that in this case it's actually useful and a primary way for the field to move forward, indeed many of the most useful languages in the world start like this.
- singingboyo 9y agoThe 'Textual Luna' section mentions language interop/FFI. However, nothing I can find elsewhere mentions anything on it. I understand that it's 'coming soon', but what does 'soon' mean in this case? Not having anything for this is a fairly large omission, IMO.
- heyitsguay 9y agoAgreed. Also, if the goal is to use this with data-processing workflows, interop with Python and R would be really helpful. Not that I have any idea how easy or difficult that might be.
- piotrMocz 9y agoWe understand how important it is for Luna to be able to use Python (and JS) libraries and we will try to get to work on that asap. Please note, however, that the core Luna team is fairly small, so we have limited capacity (although I would like to make it my personal goal to create the Python ffi). That said, any community effort in this area is more than welcome, you can check the code on our github org: https://github.com/luna https://github.com/luna
- cakoose 9y ago"many recent innovations in programming language design, such as higher-order functions, non-strict semantics, algebraic data types, object oriented programming and sophisticated type inference engine" These lies are unnecessary.
- shall20 9y agoI don't know why this comment is down-voted. It might be harsh, but quite frankly the quote is just wrong on a technical level. All of theses "features" were present in the 80s and 90s...
- dang 9y agoBeing right doesn't excuse being uncivil. On the contrary, it's worse when you're right because then you're discrediting the truth.
- wdanilo 9y ago@cakoose, would you be so nice and elaborate more why do you think we are lying? It is very sad to read such comments, seriously. We were doing our best to bring Luna to our community, so why are you talking that we were lying about anything now?
- cakoose 9y agoNone of those are recent innovations in programming language design. Higher-order functions, in particular, have been part of mainstream programming for so long.
- dang 9y ago> These lies are unnecessary. There's no need to be like that regardless of how wrong someone is, and it's against the site guidelines, so please don't. Instead of swiping at someone, why not explain how they're wrong? Then we all learn something. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- solarkraft 9y agoThis is exactly the future.
- wdanilo 9y agoWe believe it is. Such comments as this one give us always super-powers, thank you. We will do everything we can to make Luna the most powerful visual language ever created.
- somezero 9y agoReminds me of a ZUI shell: https://en.wikipedia.org/wiki/Zooming_user_interface https://en.wikipedia.org/wiki/Zooming_user_interface
- brucephillips 9y agoWhen, specifically, would I use this rather than conventional programming?
- moocowtruck 9y agonever
- piotrMocz 9y agoI find myself using Luna instead of Python (with Jupyter) when I want to process/visualize some data, quick’n’dirty. Seeing the data flow through my program helps me wrap my head around it quite quickly. And the built-in visualizations are nice :)
- shalabhc 9y agoIs it possible for Luna to self host? Is that somewhere on Luna's roadmap?
- rehemiau 9y agoWhat benefits would it give?
- wdanilo 9y agoLuna is general purpose so it would be possible right now to rewrite the compiler from Haskell to Luna, but there is no plan for it simply because it would give us no benefits at the current stage. I agree that it should be done in long-term vision, just because it is "pure" and "beautiful", but do not expect it to happen anytime soon.
- pbiggar 9y agoCongrats, this looks awesome! Love the inline graphs and realtime updates!
- wdanilo 9y agoThank you! <3
- wiradikusuma 9y agoCan I TL;DR this as Google Data Studio but not SaaS, and for advanced user?
- e3b0c 9y agoThis looks very cool. It would be interesting if we can construct software with a UI like this but based on an SSA IR or downright CPU instructions instead of another high-level language.
- wdanilo 9y ago@e3b0c The GUI lives here: https://github.com/luna/luna-studio https://github.com/luna/luna-studio. It contains code which speaks with our compiler and infrastructure and we will probably extract the barebone GUI to separate repository soon. Anyway, you can play with it and we do want to support such use cases, because it will make the interface even better and would bring benefits to both Luna and your low-level system :)
- jlebrech 9y agothis is the programming language for the touchscreen generation, every language until now was born from keyboard use. brillant. I've wanted to see any language have an ast represented visually, then when you save changed to that visual representation it would save back to the original file format, this is very close to what I was thinking of.
- wdanilo 9y ago@jlebrech thank you! :) Regarding the AST topic: Luna does use AST for the translation - if you modify the graph, an AST-diff is created, applied to the AST and then AST-diff is created and applied to the text. If you cange text, the AST-diff is applied to the visual form. The visual graph is not direct AST visualisation because it would be completely unreadable :)
- kobrad 9y agoThis thing is a nightmare to install and uninstall. The installer is 170 megs and downloads god knows what, there is no uninstall, and when you try to do it manually you see it spawned three or four processes without letting you know. This is incredibly amazingly malware like if you ask me
- samuell 9y ago$ du -sh .luna/ 671M .luna/ Pretty browseable directory, to be fair. But yeah, would be nice with some more clear indication of where the installation is going, from the installer. Now I found the location in this thread.
- wdanilo 9y agoSamuell, please note that we are shipping Luna together with Atom.io app. Look at `.luna/config/luna-studio/1.0/atom/packages/luna-studio/lib`. The main Luna Studio lib is around 35mb on my computer. There is also a compiler and some small plugins. Everything else are npm's node_modules and Atoms ecosystem. We will distribute Luna Studio without Atom in the future, then it will be super-lightweight. Does it make sense to you?
- samuell 9y agoIC, thanks for the clarification!
- wdanilo 9y agoThe installer is 170mb after unpacking - it is just an electron app (for providing you GUI) connected to our installation manager. The command line installation managar is very lightweight (around 2mb) - we will provide it as an alternative to the graphical one. We will try to make the electron app smaller. The installer downloads Luna Studio - The graphical environment and Luna compiler and installs it on your computer (according to our docs: https://luna-lang.gitbooks.io/docs/content/installation.html https://luna-lang.gitbooks.io/docs/content/installation.html). If you want to uninstall it at the moment, just delete the ~/.luna folder - that's it. We will provide option for it in the next installer releases. What spawned processes are you talking about? We spawn processes for our typechecker and other services (like undo-redo manager), but they should be killed if you exit Luna ... until you are on Windows. When you are on Windows the processes are registered globally in order not to ask for root password everytime you start Luna Studio. We would love to chat with you about how can we improve it, Windows support needs the biggest love right now.
- kabes 9y agoIt's cool technology, but if I take a look at an example of a simple react todo list in a similar project like flowhub: https://app.flowhub.io/#project/c111454c9fd2f74d37d1e8a4e739adfd/c111454c9fd2f74d37d1e8a4e739adfd_noflo https://app.flowhub.io/#project/c111454c9fd2f74d37d1e8a4e739... This looks more complex, harder to reason about and harder to make than just writing the code. And it only gets worse as complexity increases. But of course I've got way more mileage writing code than doing this.
- samuell 9y agoThe link leads nowhere (seems login required, but even after login doesn't work). Link to screenshot instead?
- kabes 9y agoOops, here's a screenshot: https://screenshots.firefox.com/W3XZIh4yCnlcuMNM/app.flowhub.io https://screenshots.firefox.com/W3XZIh4yCnlcuMNM/app.flowhub...
- wdanilo 9y ago@kabes there is a BIG difference between Luna and NoFlow. Luna is purely functional, immutable, lazy, has double representation you can switch any time. NoFlow is visual layer over imperative, mutable JS without ability to swithc reprs. These features dictate how easy it is to do something in the language. You cannot judge a language by trying another slightly similar, its like telling "I don't like Python. I've been programming with Cobol and it was awful. Python is also textual so it's a no-go for me". I strongly encourage you to try Luna and I would be more than happy to discuss your thoughts about it. In fact, there are many people who prefer working in Luna's visual environment when processing data, discovering what is inside data and building high-level components. If you're building something low-level it is sometimes easier to do it in text - you can then just write Luna code instead and use nodes for high level data processing. Did I address your concerns?
- xvilka 9y agoIt can make an interesting addition to Cardano (ADA) smart-contracts platform for designing visually formally safe programs for their distributed virtual machine.
- StreamBright 9y ago> Powerful engine. Limitless. I think at very least it is limited by the known universe. :)
- wdanilo 9y agoIf we think about a programming language then it's universe is what a program can actually do. Luna is a general purpose, real programming language. If you are able to code something in C, you should be able to do it in Luna. From this perspective, Luna is "limitless". In contrast to DSLs or almost every other visual programming language Luna is not limited by it's design. However, if such sentence is a real issue for you or other people, we would change it! What do you think? :)
- akavel 9y agoWooohooo, I'm super happy and excited that you made it!!! Was already losing hope, and now what an awesome surprise! :) Huge congratulations, getting from prototype to shipping is hard, and you know it well enough :) Hope I'll have a chance to dabble with it ASAP! By the way, have you sent a notification email to your alpha subscribers? I don't seem to have gotten anything in my inbox... only found via HN (just when I was starting to ponder if I should try harder to overcome this addiction...) Hm, and maybe are you planning some kind of release party or something at your office or somewhere in Kraków? :) Or did you already have one? :)
- wdanilo 9y agoakavel thank you, thank you! <3 We've sent the mails, could you double check if it is not there? There was a thread about party in Krakow on our Chat, lets discuss it there! :)
- deleted 9y ago[deleted]
- qwerty456127 9y agoWhat the site promises looks INSANELY COOL but the app doesn't seem to work actually. Errors behind every corner, 100% CPU load all the time and the tutorial won't finish loading. This is not beta, this is pre-alpha at best. I really hope it's going to be fixed in near future, can't wait to actually try applying it.