ELIoT, Distributed Programming For the Internet of Things 91
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.
Re: (Score:2)
No, but you can use ELIoT [news.com.au] to phone home... /ducks
Re: (Score:1)
Re:Why not lisp (Score:5, Funny)
Like Clojure? That's a cool name. It's like "closure" but with a J. But let's not talk about functional programming, that's icky.
And best thing, nobody even has to know it is LISP! Parenthetically speaking, of course.
Re: (Score:3)
If I were developing something for the IoT space, I'd call it Integrating the Distributed Internet of Things (IDIoT).
Re: (Score:3)
Lisp failed because 1) it's hard (different thoughts/mentality to program) and 2) flexibility = unsupportable by another developer.
Re:Why not lisp (Score:5, Funny)
"Lisp failed because 1) it's hard (different thoughts/mentality to program) and 2) flexibility = unsupportable by another developer."
That will never "compile". Here, try this:
(((((Lisp) ((failed) because) ((1))) (it(')s hard) ((different) (thoughts/mentality) ((t)o) program) and 2)) flexibility) (= unsuppor)(table) (by another developer.)))))))))))))))))))))
Re: (Score:3)
No. Lisp failed because the early versions were inefficient and then, during a critical period, the compilers were too expensive to afford. Around 1995 a decent Lisp compiler cost about $2,000 (depending on what utilities you needed). At this point I went looking for what it would cost today to purchase a copy of Allegro Common Lisp suitable for building GPL software. I couldn't readily find that information. This despite the fact that, e.g., Steel Bank Common Lisp is as free as gcc.
When developers are
Re: (Score:2)
Re: (Score:2)
Actually, sort of reminds me of Tcl. I wonder how it compares size- and speed-wise.
Tcll also has Tk available for anything with a display.
Re: (Score:2)
So ELIoT compiled is about 2.9MB, plus the C++ standard library (which is another 1.5MB or so) - this is compiled for MacOSX.
The code to create an interpreter and have it run a file is about 1KB, and the Tcl library is under 2MB.
I'd have to look more closely at ELIoT to see how comparable the two are in terms of capability.
Re: (Score:1)
Sounds like? It is yet another idiotic marketing term. But "Industrial Internet" certainly isn't a good alternative,as the term "industrial" usually implies "used in industry", "not domestic" etc. IoT spans industrial, commercial and domestic uses, so you'd have to look for something a bit more descriptive.
Re: Internet of Things (Score:1)
The IoT should be called the "shitstorm of devices which have no fucking reason to be networked," and the right name for the programming language serving the niche should be IDIoT.
Iot vs SoD (Score:2)
Re: (Score:2)
I'm on the "shitstorm of devices which have no fucking reason to be networked" side of the aisle, myself.
Re: (Score:2)
Also, the trap is that any term that gets adopted will *become* yet another idiotic marketing term.
Any phrase attracting buzz is doomed to become a meaningless marketing term abused by companies with their agendas to be relevant.
I particularly dislike the phrase 'internet of things', but I know I'll dislike any term that sees common adoption while the media/marketers have an interest in the field until that interest dies down and it no longer becomes fashionable for companies to shoehorn it into their messa
Re: (Score:3)
I particularly dislike the phrase 'internet of things', but I know I'll dislike any term that sees common adoption while the media/marketers have an interest in the field until that interest dies down and it no longer becomes fashionable for companies to shoehorn it into their message.
How about 'Consumer Oriented Connectivity & Knowledge Systems?
Wanted: API which is not a rich API (Score:5, Funny)
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?
Re: (Score:3)
I re-read your comment with the accent of Ricardo Mantalban in my head; it was much improved.
Phone... Home... (Score:2)
Re: (Score:2)
Brilliant. Author here, and I must admit it never occurred to me ;-)
Re: (Score:3)
What's E.T. short for?
Because he's only got little legs.
capable of serving hundreds of clients easily (Score:2)
Re: (Score:2)
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?
By testing it. Tested with 1000 clients against a single Raspberry Pi. So that's "hundreds".
Require use case (Score:2)
Hopefully I can use it to program my old Speak & Spell [wikipedia.org]. Would be awesome to code for this old hardware while eating Reese's Pieces.
And, privacy and security? (Score:5, Insightful)
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.
Re:And, privacy and security? (Score:5, Interesting)
In the headlong rush to market and sell the IoT, it sure seems like IoT devices are either trying to stake out a standalone role or they're just punting everything related to serious networking and security to some central controller system. Worst is the combination of both of these concepts into "cloud based" controllers, giving you weak devices with little inbuilt intelligence coupled with forced data exporting to "the cloud".
I don't even understand what constitutes IoT in real world applications these days -- thermostats? Alarm systems with some kind of internet interface? Those LED lights you can change on your phone? Web cameras?
The kinds of data that seem smart would be more like smart electrical panels that allow you to closely monitor and control electrical consumption on a per-breaker basis, especially when tied into solar/wind or generator based backup systems, but I don't hear anything about that.
Re: (Score:3)
I would just prefer that I not come home to find my flat reduced to smouldering rubble because some marketroid thinks I just have to be able to turn my stove on at home while I'm at the office... and some script kiddy with time on his hands finds a 'sploit for mine.
Re: (Score:2)
Cash registers at restaurants are all connected to the internet now (you can order online before arriving).
Electric meters from PG&E are all connected to the internet now.
Even parking meters are connected to the internet.
We don't have computers embedded in every disposable bandaid still. Some things don't make sense to connect to the internet (I can't imagine ever owning a smart refrigerator). But of the things that do, more and more of them are connected.
Re: (Score:2)
It is very unlikely that the cash registers are connected to the internet. They may be connected to the same set of servers that you can access from your phone, but that does not make them "connected to the internet".
It's here man, [squareup.com] and they're popping up all over the place. They are definitely connected to the internet.
Re: (Score:2)
It is possible that they could _access_ the internet (via a gateway) but if I can't use an IP address (and port) to connect to that device from here then they are not "connected".
Now you're just trolling, because the distinction you are making is irrelevant to the conversation. Very few devices are connected to the internet without a firewall or NAT.
Re: (Score:2)
You still haven't shown that _any_ of them are actually connected to the internet even via a gateway. You have merely claimed that because it has WiFi (to a local network) that it is 'connected to the internet'.
ROTFL You're a moron. Also, you didn't carefully read the links I provided.
Re: (Score:2)
Re: (Score:3)
You know what? Anybody trying to make the programming language for the IoT who spends zero time on security and privacy ... well, they're idiots.
It basically says "were going to solve the fun problems but we don't give a shit about the elephant in the room".
If the IoT isn't build from the ground up to have privacy a
The language makes security harder (Score:2)
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.
"Less than 20 lines of code" (Score:3)
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.
Re: (Score:3)
Re: (Score:2)
That fact supports your point.
Re: (Score:2)
It's syntactical sugar really. As noted, most of the work is handled under the covers by what are essentially library calls. Any language can replicate this, and in a similar number of lines of code (given that the functionality available in a similar library).
Re: (Score:2)
Any language can replicate this, and in a similar number of lines of code (given that the functionality available in a similar library).
Of course not. How do you implement a C or C++ library so that a variable or function declared on one computer is transparently used on another? In ELIoT, you can write this:
So let me try in C or C++, where the code inside "tell" is supposed to execute on anot
...or a class of languages (Score:2)
Has it been hacked yet? (Score:1)
Re: (Score:2)
Security? We don't need no stinking security! (Score:2)
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 els
Re: (Score:2)
Since when has security ever been anything but an afterthought when it comes to *groan* IoT *groan* devices?
Re: (Score:2)
Security has been considered, but is not implemented at this stage.
The planned security model is to show only those features that are available to a given user. Say that temperature is available to anybody, but self_destruct requires a special privilege. Then anybody connecting to the device can request "temperature" and gets a response, but "self_destruct" is not even in the symbol table, so no way to access it. Trying to use it results in a run-time error, just as if you had tried to call schtroumpf.
If yo
Re: (Score:2)
Security has been considered, but is not implemented at this stage.
"Success has been considered, put now is not possible because security was not implemented from the beginning."
If you haven't learned the lessons of HTML, Email, ecommerce, and myriad other platforms that failed to address security at the start, Elliot is doomed.
Re: (Score:2)
And in Lisp, you do nothing but that (Score:2)
| 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
Can we stop it already? (Score:1)
"Internet of things" is fucking stupid. Stop.
-B
Oh good (Score:3)
another boutique language that won't be here in five years.
Re: (Score:2)
another boutique language that won't be here in five years.
Agree. But the ideas, if novel will continue in generations of boutique languages, until they get refined and distilled to a core that can be incorporated into a future C++ standard. (And then be misused for decades).
Why not use Tcl, or Python, or Perl? (Score:2)
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.
Huh, maybe they could call it.... (Score:1)
JINI (https://en.wikipedia.org/wiki/Jini [wikipedia.org]) instead?
Yeah no. (Score:1)