Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Technology

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.
This discussion has been archived. No new comments can be posted.

ELIoT, Distributed Programming For the Internet of Things

Comments Filter:
  • by swb ( 14022 ) on Monday July 13, 2015 @08:54AM (#50098021)

    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?
    • by descubes ( 35093 )

      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".

  • 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.

  • by gstoddart ( 321705 ) on Monday July 13, 2015 @09:27AM (#50098269) Homepage

    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.

    • by swb ( 14022 ) on Monday July 13, 2015 @09:55AM (#50098567)

      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.

      • 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.

      • The IoT is here already, look around you:

        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.
  • by Junta ( 36770 ) on Monday July 13, 2015 @09:40AM (#50098387)

    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:
    ssh pi2.local 'while :; 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. "'
    (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.

    • by tomhath ( 637240 )
      Yea, only 20 lines of code. Because all the real work is done in the library it calls. Nuff said.
      • Go look at the assembly for the Apollo control computer sometime. It's in assembly, but some of the control routines are smaller than the comments used to describe them. They are very short because they use function libraries and macros really well.

        That fact supports your point.
    • by Xyrus ( 755017 )

      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).

      • by descubes ( 35093 )

        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:


        Var -> "Declared on original computer"
        tell "pi.local",
        writeln "The value of Var is ", Var

        So let me try in C or C++, where the code inside "tell" is supposed to execute on anot

  • 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
  • Has it been hacked yet?
  • 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

    • Since when has security ever been anything but an afterthought when it comes to *groan* IoT *groan* devices?

    • by descubes ( 35093 )

      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

      • 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.

  • Every API is fucking "rich". Stop.

    "Internet of things" is fucking stupid. Stop.

    -B
  • by 0xdeaddead ( 797696 ) on Monday July 13, 2015 @12:51PM (#50100321) Homepage Journal

    another boutique language that won't be here in five years.

    • by heson ( 915298 )

      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).

  • 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.

  • I think Ill just stick with C. That sample made my eyes bleed.

Real programmers don't comment their code. It was hard to write, it should be hard to understand.

Working...