8 ms·
Luna Studio – Visual and textual functional programming language
- mbel 8y agoFor anybody else looking for explanation what this particular software does here is its home page: https://luna-lang.org/ https://luna-lang.org/ It's a sort of WYSIWYG data processing environment.
- alfanick 8y agoI am pretty much sure linking [0] would be a better idea. Most of community has no idea what is Luna and why 1.4 version is anyhow important. [0]: https://www.luna-lang.org https://www.luna-lang.org
- giancarlostoro 8y agoWow. What a huge difference the GitHub could use some visuals that entice you to wanting to try it, a README on GitHub is as much a marketing page as the official site itself. If you can wow me from a GitHub readme you have me sold. Usually some videos / screenshots help in this regard. I'm definitely going to download this when I get home to experiment with it, seems quite interesting.
- iamrecursion 8y agoThanks for the feedback! We’ll give our README files a bit of a once-over and see if we can communicate more of the ‘wow’ factor.
- giancarlostoro 8y agoReally what usually does it for me is just screenshots or links to videos that I can immedietly click on, at the minimum. You guys have some amazing stuff in your homepage already, maybe something in that spirit that wont take away too much from the technical side you're trying to portray. Thanks for working on something so awesome, makes me feel like I feel when I watch Cowboy Bebop and watch Ed travel through cyberspace when I see your samples of how the visual aspect of Luna is.
- iamrecursion 8y agoBrilliant! That’s a really great set of pointers - we’ll take those on board!
- calebpeterson 8y agoAlso, linking from your GitHub page... it took me a minute to find the link to luna-lang.org. I'm glad I hunted for it!
- qaq 8y agoLooks interesting anyone using this in prod?
- wdanilo 8y agoWe're collaborating with few companies, but we cannot share detailed info just yet. If you are interested in using Luna on production, please let us know and we will provide support for that!
- deleted 8y ago[deleted]
- qaq 8y agoIntro to Luna @ Lambda Days 2018 https://www.youtube.com/watch?v=6xUOuzafmO0 https://www.youtube.com/watch?v=6xUOuzafmO0
- ConfusedDog 8y agoI jumped at the sight of Harry Potter
- stared 8y agoI love this dataflow graph! Is there any way of using it in a "headless" mode, i.e. for other data pipeliness (e.g. https://gist.githubusercontent.com/jakubczakon/cac72983726a970690ba7c33708e100b/raw/b45dd02b6643a3805db42ab51a62293a2940c0be/santander_pipeline_5.png https://gist.githubusercontent.com/jakubczakon/cac72983726a9... from https://github.com/neptune-ml/steppy https://github.com/neptune-ml/steppy).
- iamrecursion 8y agoUnfortunately not! The graph in Luna isn’t an external visualisation of parts of the data flow, but an explicit alternate syntax for the Luna AST. It’s isomorphic to the textual syntax. It would be possible, perhaps, to use some of the machinery for display to draw other pipelines, but I work on the compiler rather than Luna Studio, so perhaps I’m not the best person to say!
- stared 8y agoI understand well that this is a graphical representation of the code (and I find it really appealing to have this dual representation, rather than post-host visualization). Though, as I imagine, such vis is at some point JavaScript code. (And one could potentially re-use this visualization (not - abstraction) tool for showin arbitrary diagrams with data lookups, in this lovely style.)
- iamrecursion 8y agoOh, I understand what you mean now. My mistake! It is all displayed on Canvas at this point, which does go through JavaScript. We’re actually moving to our own WebGL-based canvas (BaseGL) for performance.
- xaedes 8y agoIt would actually be nice to have more node visualization toolsets for other projects with visual programming in mind out in the open =)
- iamrecursion 8y agoAra here! I’m one of the compiler engineers on Luna! We’ve just released our 1.4 performance update at [0], and Luna is now immeasurably more quick! I’ll keep an eye on this thread and answer questions where I can! [0] https://luna-lang.org https://luna-lang.org
- maelito 8y agoDo you plan to release a Web version ?
- iamrecursion 8y agoWe’ve been very careful to base the editor on web technologies, and browser-based Luna is definitely on the cards once we finish the new GUI!
- salimmadjd 8y agoI wanted to quickly give it a try on the Mac. “lunaInstaller” can’t be opened because it is from an unidentified developer. At least sign the app to remove one more friction point from trying out your tool.
- iamrecursion 8y agoWe should be getting both our Mac and Windows developer certificates this week. I’m really sorry for the inconvenience - it should be fixed by the time of the next release.
- chii 8y agoIt'd be nice not have the installer be an Electron app which then downloads something I can't cache/save, but just have the actual app be the download from the main page!
- sv12l 8y agoLook nice, any chance to have a light them for the docs? It's really quite straining to read the docs in dark mode.
- piotrMocz 8y agoIf anyone is wondering why this 1.4 release is a big deal, then check this out: https://cdn.discordapp.com/attachments/407884082521964554/468895441778376715/opencv.mp4 https://cdn.discordapp.com/attachments/407884082521964554/46... We're seeing about 200x of speedup, so we codenamed it "Rocketship" ;)
- iamrecursion 8y agoTo contextualise this, it used to take minutes rather than seconds to load, typecheck and compute this project.
- thsealienbstrds 8y agoOut of curiosity, what did you do differently in order to get your speedup?
- iamrecursion 8y agoThe language core has been completely re-written, almost from scratch, with performance as an explicit goal.
- alok-g 8y agoGreat! What are the lessons learned? :-)
- iamrecursion 8y agoTo be blunt, performance is much more important than you think, even when building a proof of concept. We used the PoC code for much longer than was initially intended, and had we thought about performance from the start we might’ve saved quite a bit of work!
- wdanilo 8y agoThere are some other lessons too, especially regarding Haskell. Basically the sad truth is that if you do not benchmark literally every single line, you can suddenly get MUCH worse performance than expected. Sometimes GHC's strictness analysis does not discover that it can unbox some things and you land in a boxing-unboxing loop or you hit some of optimization bugs (during the work on performance we've reported over 10 GHC bugs and even implemented our custom graph memory manager). So one of the biggest problems that we encountered earlier was that actually the GHC performance is MUCH harder to predict than you think and you have to take extra care of it while building your software. Of course using Haskell pays off in other areas, but performance is tricky.
- how_to_bake 8y agoThis is brilliant. The only way I was able to truly understand `lift` was by seeing this kind of visual flow[1]. Similarly, I'm sure there are other "shapes" that make a lot more sense of things like monads and such. Excited to try this out! [1]: dotGo 2017 - John Cinnamond - Go Lift https://youtu.be/1B71SL6Y0kA?t=9m32s https://youtu.be/1B71SL6Y0kA?t=9m32s
- mestelan 8y agoThank you; just had a "a ha" moment too! Very insightful.
- marmaduke 8y agoIs there any progress/news on Python interop? I would love to use this daily but need to have smooth interop to migrate progressively
- iamrecursion 8y agoThe only news I can give you at the moment is that it’s still definitely planned! We’re hoping to work on it once we finish our performance improvement and new GUI work.
- marmaduke 8y agoCool! I got in touch on your Discord libraries channel.
- beagle3 8y agoSeems a lot like http://tersus.com http://tersus.com which is also open-source (and which I last used 10 years ago, so I might be misremembering). Can anyone familiar with both tersus and Luna give a short comparison.
- TuringTest 8y agoI've not used any of those languages so I might be wrong, but from their description pages, there are two mayor salient differences: - Tersus doesn't have a textual representation, it's a purely visual language - Luna shows the data currently being processed besides the visual primitive that handles them. This second part may be invaluable. I worked with a Tersus-like flow language in the past, and building simple data-processing pipelines was a breeze; but debugging them to add more complex logic was a pain, because inspecting the current state of the graph is quite difficult - in special when there are nested loops.
- thedangler 8y agoHi, I'm trying to install it for windows 10 but I get an error. Anyone else having an issue?
- yuhe00 8y agoAs a fan of both visual programming and Haskell, I definitely think this is the future of programming, and I can see it going two ways - A general purpose tool like https://nodered.org https://nodered.org with a huge library of plugins or included in a host program as a VM/embedded DSL. Or perhaps both ;) What are the developers plans/thoughts on this?
- iamrecursion 8y agoLuna is very much a general-purpose programming language! We’re working on developing both the language and the libraries ecosystem until you can use it for whatever you’d like. While data-analysis is our focus at the moment, that isn’t due to any current limitation on Luna the language. We still have more we want to do to the language, but there is nothing stopping you from writing whatever you want in it now!
- garyclarke27 8y agoLooks cool - Considering your data-analysis focus, will you be adding: SQL language interop, Postgres data source component/nodes for functions(critical for me)/ views /tables? Would then become much more interesting.
- iamrecursion 8y agoCan you expand more on what you mean here? We currently have a work-in-progress library for binding to Postgres, but I have the feeling that isn’t quite what you’re getting at.
- neurotrace 8y agoI've been keeping an eye on Luna for a little while now. It's very interesting but I have to wonder: has anyone built anything substantial in it yet? What was your experience working with it? The last time I tried it out was pre-1.0 and it was too buggy to really feel like I could get work done in it. I hope 1.4 is more stable.
- TuringTest 8y agoYes! I've been waiting years for some language designer to notice that code and data shown side-by-side[1] is what makes debuggers and spreadsheets adequate for easy iterative development. We've seen recently a number of code editors featuring "notebook" preview panels, but not a language fully designed around that idea. "WYSIWYG data processing" is a nice termp to express the concept. [1] https://luna-lang.org/#Features https://luna-lang.org/#Features
- d_burfoot 8y agoThis looks cool. Do you have a screencast of someone using Luna to program something?
- wdanilo 8y agoYep! It was not meant to be public, but unless we've got proper tutorials, please check this out: https://www.youtube.com/watch?v=8_pi7LYpDYw&feature=youtu.be https://www.youtube.com/watch?v=8_pi7LYpDYw&feature=youtu.be
- estevaoam 8y agoGreat idea and implementation. Improvement idea: increase the contrast rate in your website, it was a pain for me to read stuff there. Had to max my Macbook's brightness setting.
- onemoresoop 8y agoGood job! This is very promising indeed
- wdanilo 8y agoThank you <3 Btw, please help us with anything you can. We are working hard to bring (spoiler alert!) Luna 2.0 to reality and any help regarding documentation, tutorials, integrating Python / R, libraries in Luna, gui widgets is more than appreciated!
- dang 8y agoDiscussed 6 months ago: https://news.ycombinator.com/item?id=16163769 https://news.ycombinator.com/item?id=16163769 Plenty more at https://hn.algolia.com/?query=Luna%20visual%20points%3E10&sort=byDate&dateRange=all&type=story&storyText=false&prefix=false&page=0 https://hn.algolia.com/?query=Luna%20visual%20points%3E10&so...
- canada_dry 8y agoWanted to check it out. Downloaded the command line installer. Ran it with the 'install' option... "ConnectionFailure connect: does not exist" Sigh.
- wdanilo 8y agoIt seems that this problem is connected to firewall / blacklisting. Please contact us and we'll figure out whats happening.
- canada_dry 8y agoDid nothing on my end other than try again when I saw your reply... and it installed this time.