Slashdot Mirror


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.

91 comments

  1. So... by Anonymous Coward · · Score: 0

    Are you're saying I can now program an... ELIoT Nest? /ducks

    1. Re:So... by ArcadeMan · · Score: 1

      No, but you can use ELIoT to phone home... /ducks

  2. Why not lisp by Anonymous Coward · · Score: 0

    Like lisp... why not lisp?

    1. Re:Why not lisp by Anonymous Coward · · Score: 1

      LISP is old, man. I wouldn't be caught dead using that dinosaur. Slap another name on it and make it hip and maybe ... just maybe ... I'll check it out. If you're lucky.

    2. Re:Why not lisp by Anonymous Coward · · Score: 0

      Because they wanted to reinwent the wheel.

    3. Re:Why not lisp by Anonymous Coward · · Score: 0

      I don't see a problem with that since the current wheel still has flaws.
      That still doesn't mean that I think this wheel solves any of the common problems.
      In fact, the "IoT" focus makes me thing flavor of the week. If it still is around in a year or two I might check at the syntax and see if it seems worth picking up.

      I like the long-term support languages. The ones where I can pick up old code and compile without the language having changed too much to force me to rewrite parts that used to be stable. (Yes PHP I am looking at you.)
      Old fashioned C is more my thing. K&R syntax has been deprecated for a quarter of a century now, but that doesn't mean that it won't compile.

    4. Re:Why not lisp by bondsbw · · Score: 4, 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.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    5. Re:Why not lisp by knightghost · · Score: 2

      Lisp failed because 1) it's hard (different thoughts/mentality to program) and 2) flexibility = unsupportable by another developer.

    6. Re:Why not lisp by slickwillie · · Score: 4, 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.)))))))))))))))))))))

    7. Re:Why not lisp by rlwhite · · Score: 2

      If I were developing something for the IoT space, I'd call it Integrating the Distributed Internet of Things (IDIoT).

    8. Re:Why not lisp by Anonymous Coward · · Score: 0

      Man now I get it. D'oh.

    9. Re:Why not lisp by Anonymous Coward · · Score: 0

      Let me guess, you never remotely used lisp and spend most of your time pedantically berating people's Java?

    10. Re:Why not lisp by HiThere · · Score: 2

      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 learning their trade, they need to learn of basic tools, and they depend on libraries being available. This was the basic advantage of both the GPL and of C. C compilers were cheap, Fortran compilers were expensive. So C won. (And the early C compilers didn't have any noticable advantages over the Fortran compilers of the day except that they were cheaper. That, of course, changed as people wrote libraries for use with them.)

      OTOH, Lisp does have very different strengths than to C and Fortran. E.g., handling numbers is clumsier, but handling variable length strings of data is simpler. That may also have had an effect.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    11. Re:Why not lisp by Anonymous Coward · · Score: 0

      Parenthetically speaking, of course.

      Hah!

    12. Re:Why not lisp by tricorn · · Score: 1

      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.

    13. Re:Why not lisp by tricorn · · Score: 1

      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.

  3. REM First Post by Anonymous Coward · · Score: 0

    10 print "First post!"
    20 goto 10

  4. Internet of Things by Anonymous Coward · · Score: 0

    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.

    1. Re:Internet of Things by Anonymous Coward · · 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.

    2. Re: Internet of Things by Anonymous Coward · · 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.

    3. Re:Internet of Things by Junta · · Score: 1

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

      --
      XML is like violence. If it doesn't solve the problem, use more.
    4. Re:Internet of Things by monkeyxpress · · Score: 2

      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?

    5. Re: Internet of Things by Anonymous Coward · · Score: 0

      Ah funny!

  5. Wanted: API which is not a rich API by swb · · Score: 4, 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?

  6. Phone... Home... by WalrusSlayer · · Score: 1

    ...so am I so old that I'm one of the few people who get's the E.T. reference?

    1. Re:Phone... Home... by descubes · · Score: 1

      Brilliant. Author here, and I must admit it never occurred to me ;-)

      --
      -- Did you try Tao3D? http://tao3d.sourceforge.net
    2. Re:Phone... Home... by Anonymous Coward · · Score: 0

      I don't get it. Why would a home have a phone? Even a smart home doesn't need a phone. It can just communicate via the Internet (of things)

    3. Re:Phone... Home... by wonkey_monkey · · Score: 2

      What's E.T. short for?

      Because he's only got little legs.

      --
      systemd is Roko's Basilisk.
    4. Re:Phone... Home... by Anonymous Coward · · Score: 0

      ...so am I so old that I'm one of the few people who get's the E.T. reference?

      It was my first thought too.

  7. capable of serving hundreds of clients easily by QuietLagoon · · Score: 1

    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?

    1. Re:capable of serving hundreds of clients easily by Anonymous Coward · · Score: 0

      Scaling to hundreds of clients is trivial and testable in a lab. If something *CAN'T* trivially claim that, something is *REALLY* wrong.

    2. Re:capable of serving hundreds of clients easily by descubes · · Score: 1

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

      --
      -- Did you try Tao3D? http://tao3d.sourceforge.net
  8. Require use case by CastrTroy · · Score: 1

    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.
  9. And, privacy and security? by gstoddart · · Score: 4, 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.

    --
    Lost at C:>. Found at C.
    1. Re:And, privacy and security? by swb · · Score: 4, 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.

    2. Re:And, privacy and security? by Zontar+The+Mindless · · Score: 2

      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.

      --
      Il n'y a pas de Planet B.
    3. Re:And, privacy and security? by Anonymous Coward · · Score: 0

      While your concerns are certainly valid... this post is about a programming language, not something you buy off the shelf.

      If you the ELIoT programs that you write to have security, IMPLEMENT IT.

    4. Re:And, privacy and security? by phantomfive · · Score: 1

      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.

      --
      "First they came for the slanderers and i said nothing."
    5. Re:And, privacy and security? by Anonymous Coward · · Score: 0

      I was just thinking how every time someone re-skins something they have to release a 'NEW" API or SDK to go with it. Always, there are a ton of security holes in the Newness that allow havoc to be waged for a long time, until most all the holes have been fixed.

      We have another Java zero day and that is supposed to be 'baked' for instance

    6. Re:And, privacy and security? by gstoddart · · Score: 2

      While your concerns are certainly valid... this post is about a programming language, not something you buy off the shelf.

      If you the ELIoT programs that you write to have security, IMPLEMENT IT.

      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 and security, then it's going to be garbage from the onset.

      Saying "if you want security then write it yourself" is a lazy and moronic evasion of the problem. Design it properly and it can be something good. Fail to design for the real things it needs to be able to do, and it's just a hodge podge of crap.

      If the language which is supposed to be super awesome for IoT ignores these things, then it's not worth a damn for any real applications.

      We see countless consumer products which absolutely suck at security. Obviously we can't rely on corporations to give a damn or be qualified to do it. In which case if the platform doesn't have this built in, the platform is crap.

      But, it's IoT, and largely a marketing term. Which means it already is crap.

      --
      Lost at C:>. Found at C.
    7. Re:And, privacy and security? by Anonymous Coward · · Score: 0

      > Cash registers at restaurants are all connected to the internet now (you can order online before arriving).

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

      > Electric meters from PG&E are all connected to the internet now.
      No. They are not "connected to the internet". They are connected (via RF mesh network) to the company servers. The servers may be accessed over the internet but the meters are not accessible directly.

      """The solid-state digital SmartMeter electric meter records hourly meter reads and periodically transmits the reads via a dedicated radio frequency (RF) network back to PG&E. Each SmartMeter electric meter is equipped with a network radio, which transmits meter data to a electric network access point (pictured below). The system uses RF mesh technology, which allows meters and other sensing devices to securely route data via nearby meters and relay devices, creating a "mesh" of network coverage. The system supports two-way communication between the meter and PG&E."""

      > Even parking meters are connected to the internet.

      Again, there maybe groups of meters that are wired (or RF) to a controller. The controller may be addressable, or it may simply use a phone line. That does not make individual meters "connected to the internet".

    8. Re:And, privacy and security? by phantomfive · · Score: 1

      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, and they're popping up all over the place. They are definitely connected to the internet.

      --
      "First they came for the slanderers and i said nothing."
    9. Re:And, privacy and security? by Anonymous Coward · · Score: 0

      > It's here man, [squareup.com] and they're popping up all over the place. They are definitely connected to the internet.

      They may be networked locally, they may use TCP/IP, but it is very unlikely (and would be stupid) to have them "connected to the internet".

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

    10. Re:And, privacy and security? by phantomfive · · Score: 1

      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.

      --
      "First they came for the slanderers and i said nothing."
    11. Re:And, privacy and security? by Anonymous Coward · · Score: 0

      > the distinction you are making is irrelevant to the conversation. Very few devices are connected to the internet without a firewall or NAT.

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

      And you have completely missed the point of "IoT". If a thing cannot be accessed over the internet (as distinct from some local or non-TCP/IP network) then it isn't IoT.

    12. Re:And, privacy and security? by phantomfive · · Score: 1

      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.

      --
      "First they came for the slanderers and i said nothing."
    13. Re:And, privacy and security? by Anonymous Coward · · Score: 0

      > you didn't carefully read the links I provided.

      The _single_ link that you provided did not support your assertion:

      """Cash registers at restaurants are all connected to the internet now (you can order online before arriving)."""

      While those iPad minis may send transactions to Square servers there is _NO_ indication that "you can order online before arriving". While there are systems that allow you to order online they are servers and not IoT 'Things'. In fact iPad tablets are not 'Things' either, they are acting as small personal computers.

      And certainly your "are _all_" connected is completely wrong. _Some_ computers running cash register software may be. That does not make them 'IoT'.

      You made 3 claims about what were currently IoT and all 3 claims were factually untrue.

    14. Re:And, privacy and security? by phantomfive · · Score: 1

      How, exactly, do you think the iPad minis are connected? TCP over avian carrier?

      --
      "First they came for the slanderers and i said nothing."
  10. "Less than 20 lines of code" by Junta · · Score: 2

    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.

    --
    XML is like violence. If it doesn't solve the problem, use more.
    1. Re:"Less than 20 lines of code" by tomhath · · Score: 2

      Yea, only 20 lines of code. Because all the real work is done in the library it calls. Nuff said.

    2. Re:"Less than 20 lines of code" by phantomfive · · Score: 1

      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.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:"Less than 20 lines of code" by Xyrus · · Score: 1

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

      --
      ~X~
    4. Re:"Less than 20 lines of code" by descubes · · Score: 1

      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 another machine called "pi.local":


      #include "eliot-like-lib.h"

      int main()
      {
              char *Var = "Declared on original computer";
              tell("pi.local", { printf ("The value of Var is %s\n", Var); });
      }

      This is syntactically invalid, and I see no easy way to make it syntactically valid C or C++ . The closest I can think of are Apple's blocks. So you could write ^ { printf (...); } instead, which is no big deal. But then. How do you capture the value of Var and send it over?

      In order for this to work, you need a fully homoiconic language, where you can transmit the code and its data over the wire, and where there is a way to reconstruct it on the other side reliably so that you can execute there. I'm not saying you can't modify C to get there, but certainly not easily. And in any case, it's not just a library, and not in any language.

      --
      -- Did you try Tao3D? http://tao3d.sourceforge.net
    5. Re:"Less than 20 lines of code" by Anonymous Coward · · Score: 0

      I was thinking it could be implemented using distributed databases. For example:


      #include "eziot.hpp"

      using namespace eziot; //contains a custom std environment.

      int main()
      {
          string varName = load("pi.local","varName");
          init(); // connects to database, stores a computer identification, opens a receiver.
          declare("pi.local","varName", varName);
          settell("pi.local"); //redirects output and anything else deemed necessary
          printf("The value of Var is %s\n", varName);
          end(); // closes up connections
      }

      Obviously, it requires some boilerplate code, but that doesn't mean the complexity has increased.

  11. Iot vs SoD by NotQuiteReal · · Score: 1

    You you would like to sod off?

    --
    This issue is a bit more complicated than you think.
    1. Re:Iot vs SoD by Zontar+The+Mindless · · Score: 1

      I'm on the "shitstorm of devices which have no fucking reason to be networked" side of the aisle, myself.

      --
      Il n'y a pas de Planet B.
    2. Re:Iot vs SoD by Anonymous Coward · · Score: 0

      You you would like learn grammar?

  12. Re:Wanted: API which is not a rich API by Anonymous Coward · · Score: 0

    You're hired! (inverted snake posture with the hand)

  13. ...or a class of languages by Plumber,+Programmer, · · Score: 2

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

  14. How about Ada? by Anonymous Coward · · Score: 0

    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.

    1. Re:How about Ada? by K.+S.+Kyosuke · · Score: 1

      Designed with provable security in mind? So...like some Lisps?

      --
      Ezekiel 23:20
  15. Has it been hacked yet? by AndyKron · · Score: 1

    Has it been hacked yet?

    1. Re:Has it been hacked yet? by jandrese · · Score: 1

      Even better: the whole thing appears to be a hack.

      --

      I read the internet for the articles.
  16. Re:Wanted: API which is not a rich API by cant_get_a_good_nick · · Score: 2

    I re-read your comment with the accent of Ricardo Mantalban in my head; it was much improved.

  17. Ever heard about Occam? by Anonymous Coward · · Score: 0

    Parallel computing language of the 1980ies?

  18. Security? We don't need no stinking security! by Chelloveck · · Score: 1

    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.
    1. Re:Security? We don't need no stinking security! by Lunix+Nutcase · · Score: 1

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

    2. Re:Security? We don't need no stinking security! by descubes · · Score: 1

      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 you want to access a privileged feature, you do something like import "self_destruct". And that checks if you are allowed to import it or not. If you are, then your symbol table is populated with self_destruct and you can call it. Otherwise, run-time error as above. This is not implemented yet, but is definitely on my to-do list.

      Another validation that I plan to implement is the validation of "reply" code. Since you sent the code including the possible "reply" values, you can check on return that only a valid reply is sent, and reject any reply code that does not match one you sent.

      Regarding encryption, I'm still thinking. I'd like something very lightweight for performance reasons, e.g. XOR with a one-time pad.

      --
      -- Did you try Tao3D? http://tao3d.sourceforge.net
    3. Re:Security? We don't need no stinking security! by Anonymous Coward · · Score: 0

      I think schtroumpf should be available globally. I love calling it.

    4. Re:Security? We don't need no stinking security! by Anonymous Coward · · Score: 0

      Regarding encryption, I'm still thinking. I'd like something very lightweight for performance reasons, e.g. XOR with a one-time pad.

      Please put up your hands and slowly back away from the keyboard.

      By saying "I'd like [...] a one-time pad" you have demonstrated that you have insufficient knowledge to design a proper and secure cryptographic system that will ensure authentication, integrity and confidentiality. Please get qualified help for this, otherwise you will build yet another insecure piece of junk and will have cryptographers laugh at you.

      If you try to implement something with "a one-time pad", you will invariably end up with either bogocrypt (the common name for "XOR with hardcoded string", not a one-time pad), a crappy ad-hoc stream cipher (not a one-time pad) or true one-time pads (completely unusable). So please don't and get somebody who knows their stuff to help.

    5. Re:Security? We don't need no stinking security! by mbeckman · · Score: 1

      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.

  19. License by Anonymous Coward · · Score: 0

    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.

    1. Re:License by phantomfive · · Score: 1

      GPL doesn't mean you can't use the language. Just like GCC is GPL, but it has been used for years to compile proprietary code. GPL means you can't extend the language without the extensions being under the GPL. That's probably a good thing.

      --
      "First they came for the slanderers and i said nothing."
  20. devfs by Anonymous Coward · · Score: 0

    No devfs to get easy to read directory based variables?

  21. Re:Wanted: API which is not a rich API by Anonymous Coward · · Score: 0

    It better be "rich" 'cos the FFI is not yet done.

  22. Can we stop it already? by Wee · · Score: 0

    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.

    1. Re:Can we stop it already? by Anonymous Coward · · Score: 0

      Full stop.

  23. Oh good by 0xdeaddead · · Score: 2

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

    1. Re:Oh good by heson · · Score: 1

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

  24. Why not use Tcl, or Python, or Perl? by EvilTwinSkippy · · Score: 1

    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
    1. Re:Why not use Tcl, or Python, or Perl? by Anonymous Coward · · Score: 0

      Perl and Python suck at embedding in C code. Rather, they're intended to work the other way around, embedding and calling C from the interpreter.

      Tcl and Lua are unique in that they work equally way either embedded in C or embedding C. They're also much more lightweight than either Perl or Python. Lua in particular is perfect for this space: the same Lua implementation that builds for huge servers also will build and function out-of-the-box for tiny embedded processors, even non-hosted platforms without malloc/free.

    2. Re:Why not use Tcl, or Python, or Perl? by Anonymous Coward · · Score: 0

      > Perl and Python suck at embedding in C code. Rather, they're intended to work the other way around, embedding and calling C from the interpreter.

      The ability of embedding Python in other languages is a function of the implementation, not of the language. There are several major applications that use Python embedded as a scripting language to provide user defined functionality. eg OpenOffice.org, GIMP, Blender. see: https://wiki.python.org/moin/AppsWithPythonScripting

      It may be a matter of choosing the appropriate run-time to embed in your application, such as Cython, Tiny Python, or BoostPython (or Jython for Java).

      Lua was designed first of all as an embedded, or macro, language for applications written in other languages, but it (and Tcl) are certainly not "Unique". I do have Lua scripting available in my camera (see CHDK) but I wouldn't want to write a large application in Lua, as you say it is 'lightweight'.

  25. Huh, maybe they could call it.... by gerald.edward.butler · · Score: 1
  26. The language makes security harder by presidenteloco · · Score: 1

    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?
  27. Indenting is important? by Anonymous Coward · · Score: 0

    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?

    1. Re:Indenting is important? by Anonymous Coward · · Score: 0

      > 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?

      No. Because they are not some clueless newbie and they only use editors that behave themselves properly. Rule 1 is Never allow tab characters in code. 'Tab' is short for 'tabulate' or 'make into a table'. Code is not a table (well RPG may be). The tab _key_ may be convenient but the editor should always be set to output the appropriate number of space characters. Tab characters may have been useful to save space and time when IBM PCs were limited to 360Kb diskettes, but that was 30 years ago.

  28. And in Lisp, you do nothing but that by mbkennel · · Score: 1

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

  29. Yeah no. by bobmajdakjr · · Score: 1

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