

Espruino – An open JavaScript microcontroller - todd8
http://www.espruino.com

======
alexchamberlain
This is awful. What has happened to choosing your language appropriate for the
task at hand? If you are targeting embedded platforms, you should not be
writing in an interpreted language.

Edit: I was having a bad day, and this comment was over the top. I don't like
the current trend of everything should be implemented in JavaScript, but
respect what Espruino are trying to do.

~~~
centizen
Look, I get that the recent sea of -duino devices can get annoying and
represents a new, unknown genre of programming to you, but don't be
ridiculous. What stopping you from using whatever language you want to use on
whatever platform you want to? And who are you to define what paradigms should
be allowed on which hardware?

Embedded platforms are evolving at an incredible pace, in some cases
outperforming PC's from just a few generations ago. There is more than enough
headroom to make interpretation a viable model for micro controllers, and
there is hardly a better way to make the technology more accessible to
beginners. Granted, JavaScript would not be my choice either - but to say that
interpreted languages aren't an option is ridiculous.

~~~
kybernetyk
> There is more than enough headroom to make interpretation a viable model for
> micro controllers, and there is hardly a better way to make the technology
> more accessible to beginners.

Making tech accessible to beginners is a fair point.

But I don't really buy the headroom argument: There's always the case to use
as few resources as possible when it comes to embedded (the micro controller
kind of stuff): Power usage. The less overhead your software stack creates the
less power your always on/battery powered device will consume.

~~~
centizen
For production embedded systems I wholeheartedly agree with you. But for
educational platforms, especially those aimed at complete beginners, the
trade-off for accessibility could be well worth the excess power consumption.

~~~
DiThi
Case in point: programming GPIOs with Python in Raspberry Pi. I don't have
data but I'd bet it's the most frequent use case after lightweight server and
media center.

------
gfwilliams
I'm the guy behind this - I just woke up so I'm a bit late to the party :)

It's really good to see a decent discussion here...

For me, it's about getting the right tool for the job. I'm mainly a C
programmer, but if I want to manipulate a bunch of files I probably won't use
C, I'll use Bash.

In the same way there are (a lot of) times when what you actually want to do
with hardware is quite simple, but you'd end up writing a whole bunch of C
code to accomplish it - and that's where Espruino will not only be faster, but
a lot more fun :)

Someone also mentioned power consumption/events and I thought I'd give you
some figures. When Espruino sleeps between events (which is does
automatically) it draws ~50uA. Even with explicit power management calls,
pretty much all Arduino boards draw at least 5mA (so 100 times more), and
without explicit calls it'll be 20-30mA. Raspberry Pi is anywhere from
100-500mA, so over 2000 times more power.

------
ChuckMcM
Wow another STM32F design win. Amazing that folks are still using AVR parts
when 32 Bit Cortex M parts are cheaper, faster, and more capable.

The trend to on board interpreters is interesting. The whole JS thing with
Beaglebones was my first experience with it. Back in the stoneage there were
Handiboards with a version of C that was interpreted on the board. And I've
built over a dozen robots with boards that ran BASIC of one flavor or another.
Personally if you're going with the STM32 chips anyway I expect Micropython is
a better starting point.

------
Mister_Snuggles
This is very cool. This seems like it's just like Micro Python, but with
JavaScript. Even the form factor looks pretty similar.

The amount of computing power that's now available in embedded systems is just
amazing.

------
greyfox
i don't quite understand, is this for arduino and raspberry pi? I understand
comment 1 that the language may not be correct for the platform, but it
doesn't come right out and say whether this is for RasPi and/or Arduino
although it would appear so since it as -uino in the name. I see they are
offering their own board, is this a language and board, neither both or
separate? Kinda super confused here.

------
kelvin0
`Hey think of how easy it will be for front-end designers to be able to go
into the 'embedded' market. What do you mean limited RAM?

------
kelvin0
Hey think of how easy it will be for front-end designers to be able to go into
the 'embedded' market. What do you mean limited RAM?

~~~
revelation
Right. "I added this short manual to my program, but now all my RAM is gone!
Whats going on?"

------
philwise
This is a really nice programming environment. It reminds me of playing with
forth for the instant feedback and interactive working.

------
vsviridov
Nice price (compared to Tessel). Tessel does have a whole bunch of pre-
designed modules though.

------
ErikRogneby
Wow, this is great! I really appreciate the instant execution on the
interpreter.

------
snoopybbt
It really sounds like it's time to learn javascript. Sigh.

~~~
cordite
It really isn't all that special or complicated. The biggest riff (that I have
seen) which gives it a bad reputation is browsers coming up with their own
conflicting or awkward APIs. (which is one reason why jQuery exists)

------
codehero
Are there any examples to read high detente count encoders?

------
tomphoolery
ES5 or ES6?!? :)

~~~
oso2k
I believe it's more like ES3/ES5-ish. Latest/full spec isn't necessary for
embedded work.

