3 ms·
This is brilliant. I work in finance (trading) - and have been trying to learn Clojure and Rust on my own over the last year (no CS background). For people like
by gsanghera 11y ago
This is brilliant. I work in finance (trading) - and have been trying to learn Clojure and Rust on my own over the last year (no CS background).
For people like me - this is phenomenal - if it works.
The ability to think logically doesn't translate directly into the ability to program, or vice versa and a person must spend a considerable amount of time learning the tools of programming. This tool could fill that gap for non-CS engineers.
Couple of questions (as you mentioned functional language)
a) In the opinion of the makers - what is this language NOT good for?
b) How good are the mathematical libraries going to be? As a benchmark I'd take Mathematica (not for speed - but width and depth of mathematical functions). If this question is redundant due to the ability to call Haskell - feel free to say so.
c) How far does the automatic parallelism go? Is it truly distributed over any scale?
Thanks again
- wdanilo 11y agoHello! First of all - thank you for a nice greeting! :) Answering your questions: a) This language is NOT good for any really low-level stuff like programming realtime hardware systems or low-level processors programming. You should then use pure C or assembler instead. If you are programming other low-level stuff, you could feel comfortable using Luna's textual representation. The visual one gives incredible boost when designing the high-level architecture. b) At the current stage Luna ships with a very limited standard library, but we will work hard in order to incorporate as many usefull libraries as possible. As you have spotted, Luna is able to directly call Haskell and we also provide foreign C interface, so binding any Haskell library is almost out of the box right now. c) We are strongly working on this topic. Currently our graphs are able to run in parallel all operations that are not data-dependent in any way. However it does NOT scale well if you're thinking about distributed systems, because it's not easy to determine where to partition your program, so sending data over network will not kill the performance. We will though be working toward addressing it in longer perspective. Did I answer your question? :)
- gsanghera 11y agoThanks for replying! (a) and (b) make sense. (b) will depend on adoption as well, so your answer is fully understandable. Just a follow-up question on (c) - if you will allow me please. Are the data structures immutable like Clojure and Erlang, so that they could be distributed eventually, once the optimizations are done (and you are able to package the non-functional code like C into their own partitions for the distribution)? Reason I ask is that the page mentions Category Oriented Programming - which I am not at all familiar with. Regards
- wdanilo 11y agoI would really love to answer any questions regarding Luna, so feel free to ask them as many as you need! c) Yes, Luna supports immutable data structures in the form of composable algebraic data types. Composability means in this context that you can compose the sum and product types directly using Luna's built-in combinators, so you can for example build data types that share some constructor definitions (this is just a generalization of algebraic data types in general. As a side note, the first Luna release lacks some mechanisms to fully handle this abstraction, but this is understandable as this is an alpha release). Luna data types allow for efficient binary serialization, if you mean it by asking about "own partitions for the distribution". The Category Oriented Programming paradigm, on the other hand, is developed by us. It is widely described in the Luna user manual, that for now will be available for alpha testers only, but we will work towards releasing it to the public as fast as possible. Did I answer your questions?
- gsanghera 11y agoThanks a lot, yes. All the best and look forward to this!