Go Down

Topic: Juniper – A new functional reactive programming language for the Arduino (Read 124 times) previous topic - next topic

calebh

I'd like to introduce Juniper, a new high level functional reactive programming language for the Ardunio.

http://www.juniper-lang.org/

Not only does functional programming allow for strong scalability of compact, readable and effective code, but functional reactive programming is specifically designed to handle timing based events in an intuitive way. Juniper is designed to carry these advantages, as well as be lightweight enough to function viably on the Arduino.

Juniper supports many features typical of functional programming languages, including algebraic data types, tuples, records, pattern matching, immutable data structures, parametric polymorphic functions, and anonymous functions (lambdas).

Some imperative programming concepts are also present in Juniper, such as for, while and do while loops, the ability to mark variables as mutable, and mutable references.

Robin2

Just out of curiosity I have looked at your link and at the HelloWorld tutorial.

The explanation of the tutorial is surprisingly well written.

But even after reading it the whole thing seems more complicated than C/C++

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

pYro_65

Just out of curiosity I have looked at your link and at the HelloWorld tutorial.

The explanation of the tutorial is surprisingly well written.

But even after reading it the whole thing seems more complicated than C/C++

...R
I agree, it is a very confusing syntax. At over 15 years in-depth programming experience, I can usually absorb the basics of a language before having to dive in the manual. Whereas Juniper seems to have a relatively steep learning curve just to simply begin.

Also I think the claim that C++ is low level to justify Juniper is quite a naive statement. Its raw to the metal C-style access does not detract from the high level features designed into C++.  Some people complain that it hides to much low level features (classes, interfaces,...), but in reality they are both there in full swing.

However, that being said, as this is your university project that will one day land you a dream job, then congrats, you've done nice work.

However all non C++ languages (for Arduino) will suffer as a success unless they support the pre-built libraries. Yes these languages 'may' turn out to be easier to write a statement (the standard blink sketch is far smaller than the Juniper version), however, the ease is moot if people have to write everything from scratch.

Arduino works well because of the extensive amount of libraries. The amount of code to learn is minimal, people can get something working, tweak it, and be happy, while still not really understanding what is going on.
https://forum.arduino.cc/index.php?action=dlattach;topic=327736.0;attach=128670 New EEPROM library released

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy