ELIoT, Distributed Programming For the Internet of Things
descubes writes: ELIoT (Extensible Language for the Internet of Things) is a new programming language designed to facilitate distributed programming. A code sample with less than 20 lines of code looks like a single program, but really runs on three different computers to collect temperature measurements and report when they differ. ELIoT transforms a simple sensor API into a rich, remotely-programmable API, giving your application the opportunity to optimize energy usage and minimize network traffic.
Using fewer resources than Bash, and capable of serving hundreds of clients easily on a Raspberry Pi, ELIoT transparently sends program fragments around, but also the data they need to function, e.g. variable values or function definitions. This is possible because, like in Lisp, programs are data. ELIoT has no keywords, and program constructs such as loops or if-then-else are defined in the library rather than in the language. This makes the language very flexible and extensible, so that you can adapt it to the needs of your application.
The project is still very young (published last week), and is looking for talented developers interested in distributed programming, programming languages or language design.
Using fewer resources than Bash, and capable of serving hundreds of clients easily on a Raspberry Pi, ELIoT transparently sends program fragments around, but also the data they need to function, e.g. variable values or function definitions. This is possible because, like in Lisp, programs are data. ELIoT has no keywords, and program constructs such as loops or if-then-else are defined in the library rather than in the language. This makes the language very flexible and extensible, so that you can adapt it to the needs of your application.
The project is still very young (published last week), and is looking for talented developers interested in distributed programming, programming languages or language design.
Are you're saying I can now program an... ELIoT Nest? /ducks
Like lisp... why not lisp?
10 print "First post!"
20 goto 10
Could we stop using "Internet of Things" because it sounds like yet another idiotic marketing term.
At least the term "Industrial Internet" sounds something a bit more serious.
Is there such a thing, or are all (advertised) APIs considered, rich, lush and exquisite as the 12 square feet of Corinthian Leather in the back of my '75 Cordoba?
...so am I so old that I'm one of the few people who get's the E.T. reference?
How can something like that be said for a new programming language whose project was just announced this month, and is currently little more than a laboratory curiosity?
Hopefully I can use it to program my old Speak & Spell. Would be awesome to code for this old hardware while eating Reese's Pieces.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
So are privacy and security baked into this or any of the other crap in this "Internet of Things"? Or are we continuing to write insecure garbage which will ignore these very important things?
As long as IoT is a marketing term about what this bold new future will bring us (more shit to buy, less security) .. I am of the opinion that this is a solution in search of a problem.
Consumers aren't saying "gee, what we really want is a bunch of pieces which screw up our privacy and security because people are too lazy and greedy to build it in".
People who want to sell us on this idea are driving this.
Sorry, but this stuff is basically proof of concept of "wouldn't it be cool if" while paying zero attention to the real world issues which will need to be solved before this will ever be a viable thing.
Right now it's just marketing hype, and a bunch of glassy eyed futurists trying to tell us how a technology nobody is asking for is going to revolutionize the world.
I don't see a single application for IoT that means I as a consumer want this or trust this. In fact, I see lots of evidence this is poorly thought out, thrown together, and not anything which will benefit anybody but the people selling it.
Get off my damned lawn.
Lost at C:>. Found at C.
While this looks like a perfectly reasonable language, I'm a bit weary of this sort of bragging about line counts. I could do the same thing, it would look roughly like: :; do pitemp=`ssh pi.local get_temp`; mytemp=`get_temp`; if [ abs($((mytemp - pitemp)) -gt 2 ]; then echo "Temperature on pi is $mytemp and on pi2 $mytemp. "'
ssh pi2.local 'while
(abs and get_temp are up to the person to have the functions).
Talk about the syntax being nicer, but lines of code is no big deal in this particular case. It has a nice and non-ugly 'run this on another host' syntax and automatically takes care of the communication channels in a reasonable fashion with a low amount of fuss. Leave it at that.
XML is like violence. If it doesn't solve the problem, use more.
You you would like to sod off?
This issue is a bit more complicated than you think.
You're hired! (inverted snake posture with the hand)
If you add one 's', then you could use that name to describe a whole class of languages, or "Extensible Languages for the Internet of Things." I'm betting they don't have a better or more specific name because the only driving philosophy behind it is to "make a language for the Internet of Things." Alternately, they let some marketer choose the name, which is just as sad. What makes it worse is that its target environment, the "IoT," doesn't have a better name for ITSELF because the people pushing it don't really have a really strong, useful case for it, just a solution ("hey, we can put a simple computer in anything!") looking for a problem. (Sure, there are things that might be more useful when they're connected to SOMETHING else, but most devices? Not so much. The bigger concern is security and LIMITING the connections to only those who need it.) Also, I guess I should point out that the predecessor to Java, Gosling's "Oak," was intended for running "smart appliances," in other words, for some sort of Internet-connected devices...
Since IoT is going to be a security nightmare beyond anything we have seen before, we might at least try to do something on a prophylactic basis and have a language designed with provable security in mind as the basis of IoT programming.
It won't help much, because the devs for these devices are probably bargain basement, programming at bargain basement quality... but anything is better than nothing.
Has it been hacked yet?
I re-read your comment with the accent of Ricardo Mantalban in my head; it was much improved.
Parallel computing language of the 1980ies?
There's nothing said anywhere in the source code or docs about authentication or authorization. There's an Encrypt() hook in the source code but it's merely a stub function in the section commented "Configurable hooks for use as an application library", which implies to me that encryption is intended to be completely up to the the application.
So the idea is that you're passing around executable bytecode from node to node in the clear, to be unquestioningly executed by the receiving node. Does anyone else see a problem here?
Sure, it's a brand-spanking-new language. It's incomplete. I get that. But the security model cannot be an after-thought for something like this! It needs to be designed into the foundation of a serious IoT framework. As far as I can tell it hasn't even been considered.
Chelloveck
I give up on debugging. From now on, SIGSEGV is a feature.
Dear Sirs,
your license is GPL 2.0, not MIT. this means that stunningly fewer people can make money safely using the language. Most big companies, the ones you need buy-in from in order to win the IoT, will avoid something like this because of the Licensing constraints.
No devfs to get easy to read directory based variables?
It better be "rich" 'cos the FFI is not yet done.
Every API is fucking "rich". Stop.
"Internet of things" is fucking stupid. Stop.
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
another boutique language that won't be here in five years.
Seriously. To do any serious task requires state, and the problem with a minimal shell is that it can't remember much. The major scripting languages where all written to solve this problem, as well as integrate with embedded code in C. I'm a fan of Tcl myself, but virtually any scripting engine would be an improvement to a network enabled Pseudo-BASH with a whitespace delimited language.
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming
JINI (https://en.wikipedia.org/wiki/Jini) instead?
A language specifically designed to allow code to freely move around and execute on different nodes of a network of many devices is going to have extra challenges for security compared to other languages and platforms.
So those who came up with the language should be explicitly addressing the security aspects of this mobile code.
Where are we going and why are we in a handbasket?
Half a century ago we used to bash people about COBOL Fingers. Why are we still inventing programming languages that are sensitive to indents? Haven't these people ever opened a file in an editor only to have their code transformed from tab indents to spaces (or vice versa) thus totally screwing up their code?
> GPL means you can't extend the language without the extensions being under the GPL.
| This is possible because, like in Lisp, programs are data. ELIoT has no keywords, and program constructs such as loops or if-then-else are defined in the library rather than in the language. This makes the language very flexible and extensible, so that you can adapt it to the needs of your application.
There's little difference here, the code of the 'language and libraries' merges with yours assimilating your code with its GPL cooties/holiness.
When all you have is a lispy piece of (goo), all problems look like they can be solved with (goo (goo))---for some future modification of (goo (goo (goo))) to be implemented by somebody else..
I think Ill just stick with C. That sample made my eyes bleed.