Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #20471

Re: Embedded Scripting -- Tcl? Lua? Thoughts? Suggestions?

From Paul Rubin <no.email@nospam.invalid>
Newsgroups comp.arch.embedded
Subject Re: Embedded Scripting -- Tcl? Lua? Thoughts? Suggestions?
Date 2015-03-13 20:16 -0700
Organization A noiseless patient Spider
Message-ID <87y4n05kvj.fsf@nightsong.com> (permalink)
References <kdCdnY1enJGty57InZ2dnUU7-VOdnZ2d@giganews.com>

Show all headers | View raw


Tim Wescott <seemywebsite@myfooter.really> writes:
> I'm planning on having a chunk of serial flash (or an SD card)... my
> understanding is that I can expect Lua to use about 100k of flash,
> which is a bit much for me but bearable. ...  We briefly considered
> Java, but it just looks entirely too big -- it would basically drive
> us to use Linux or some other "real" OS ... I'm looking for opinions,
> so fire away!

OK, embedded enterpreters were one of my favorite subjects for a while,
so here goes.

1. The smallest SD cards available these days are in the gigabytes, so
100k is nothing.  The interpreter's RAM footprint is probably of more
concern on a small embedded system.  How much ram are you willing to
use?  I also have to ask whether you're going to be the one writing the
customizations at the user's request, or if the customer him/herself
wants to write customizations.  You should probably stay away from weird
or difficult languages if the customer is doing the customization.

2. TCL and Lua are both quite easy to embed but Lua is a more modern and
generally better language, so I'd pick it over Tcl.  Lua has more of a
programmer community these days (lots of mobile games and apps embed it)
and there's a high performance compiler (LuaJIT) available if you want
that.

3. However, from my language snob perspective, Lua and Tcl are both
somewhat distasteful.  Also, you'll probably get much better user uptake
from Javascript (another distasteful language) since so many people know
it.  Javascript will need a lot more machine resources and I don't know
what the embedding side is like, but you might want to consider it if
you have the CPU and RAM for it.

4. Other alternatives include Lisp dialects--I used to be into these.
You might look at GNU Guile (Scheme), Hedgehog Lisp (sort of a
functional subset of Scheme), and Lysp
(http://piumarta.com/software/lysp/).  I guess each of these have
drawbacks.

5. You can use Javacard or J2ME in an embedded (non-Linux) environment
but I'm not sure why you'd want to.  It requires external compilation
tools and a somewhat bureaucratic approach to development.  I mention it
because you brought it up.  Main thing it tries to supply (with some
success but not total) is security against untrusted, potentially
hostile scripts trying to mess with the surrounding application or with
other scripts in the same container.  I don't know if that's an issue
for what you're doing.

6. You can also consider Python though its embedding challenges are
harder.  I think it can be used without Linux but I've never done it.
If you go this route it's probably better to write your outer
application in it, calling C modules from Python as necessary, rather
than the other way around (writing the outer app in C and loading Python
into it).  

7. If you're -really- resource constrained or your scripts need realtime
guarantees, there is Forth, but I'd stay away from it if you have enough
cpu and memory to run something like Lua.

Of all the above, based on the limited info you've given, the quick
answer is probably "Lua unless you can afford Javascript or you're a
language geek and like Lisp".  If you can say more about your
application and your hardware constraints, that might help narrow things
down.

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tim Wescott <seemywebsite@myfooter.really> - 2015-03-13 16:27 -0500
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-13 15:03 -0700
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tim Wescott <seemywebsite@myfooter.really> - 2015-03-13 19:04 -0500
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? rickman <gnuarm@gmail.com> - 2015-03-18 02:34 -0400
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2015-03-18 12:37 +0000
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tim Wescott <seemywebsite@myfooter.really> - 2015-03-13 19:06 -0500
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-13 18:14 -0700
  Re: Embedded Scripting -- Tcl? Lua? Thoughts? Suggestions? Tom Gardner <spamjunk@blueyonder.co.uk> - 2015-03-13 22:30 +0000
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-14 00:48 +0100
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-13 19:45 -0700
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-15 23:01 +0100
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? mroberds@att.net - 2015-03-14 00:28 +0000
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-13 18:45 -0700
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Clifford Heath <no.spam@please.net> - 2015-03-14 13:14 +1100
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-13 20:35 -0700
          Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-14 23:59 -0400
            Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-14 22:30 -0700
              Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-15 21:44 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-15 20:09 -0700
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-14 23:59 -0400
          Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-16 15:42 -0700
            Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-17 04:25 -0400
              Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-17 10:39 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-17 17:06 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-17 19:36 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-18 01:50 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-17 23:32 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Robert Wessel <robertwessel2@yahoo.com> - 2015-03-18 05:30 -0500
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-18 10:32 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Robert Wessel <robertwessel2@yahoo.com> - 2015-03-18 16:11 -0500
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-18 18:26 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-19 02:09 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-19 12:04 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-19 17:52 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-19 15:44 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-20 02:38 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-20 10:05 +0100
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 02:51 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-20 11:49 +0100
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 05:12 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? David Brown <david.brown@hesbynett.no> - 2015-03-20 14:55 +0100
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 15:07 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-20 14:11 -0400
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 15:20 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-22 09:28 -0400
                OT:  EoL Don Y <this@is.not.me.com> - 2015-03-22 12:19 -0700
                Re: OT:  EoL Reinhardt Behm <rbehm@hushmail.com> - 2015-03-23 07:30 +0800
                Re: OT:  EoL Don Y <this@is.not.me.com> - 2015-03-22 17:19 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 02:12 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Mel Wilson <mwilson@the-wire.com> - 2015-03-20 13:24 +0000
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-20 10:20 -0700
                Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-22 08:12 -0400
                OT: senses Don Y <this@is.not.me.com> - 2015-03-22 13:53 -0700
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Wouter van Ooijen <wouter@voti.nl> - 2015-03-15 10:11 +0100
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? mroberds@att.net - 2015-03-14 07:50 +0000
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Mel Wilson <mwilson@the-wire.com> - 2015-03-14 12:24 +0000
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Don Y <this@is.not.me.com> - 2015-03-14 11:46 -0700
          Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-14 23:58 -0400
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Clifford Heath <no.spam@please.net> - 2015-03-14 12:59 +1100
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-13 20:16 -0700
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tim Wescott <tim@seemywebsite.com> - 2015-03-13 23:20 -0500
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-13 22:29 -0700
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-13 22:46 -0700
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Stefan Reuther <stefan.news@arcor.de> - 2015-03-14 11:02 +0100
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Anders.Montonen@kapsi.spam.stop.fi.invalid - 2015-03-16 11:37 +0000
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-16 13:53 -0700
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Robert Wessel <robertwessel2@yahoo.com> - 2015-03-14 03:16 -0500
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2015-03-14 10:27 +0200
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2015-03-14 08:43 +0000
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2015-03-14 13:55 +0200
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2015-03-14 12:14 +0000
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? stephen@mpeforth.com (Stephen Pelc) - 2015-03-14 18:04 +0000
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2015-03-14 23:14 +0200
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Allan Herriman <allanherriman@hotmail.com> - 2015-03-14 10:08 +0000
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-15 00:55 -0400
    Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-14 22:20 -0700
      Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? George Neuner <gneuner2@comcast.net> - 2015-03-15 20:35 -0400
        Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Paul Rubin <no.email@nospam.invalid> - 2015-03-15 18:47 -0700
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? stephen@mpeforth.com (Stephen Pelc) - 2015-03-18 10:03 +0000
  Re: Embedded Scripting -- Tcl?  Lua?  Thoughts?  Suggestions? Matthias Koch <matthias.koch@hot.uni-hannover.de> - 2015-03-19 12:02 +0100

csiph-web