
JavaScript right on the hardware - chinchang
http://technical.io/
======
eob
First off, this is cool. It is tremendously exciting to see the bar for
hardware hacking getting lower and lower. To the people complaining "Why JS? C
is fine!", remember that once the complaint was "Why C? ASM is fine!".

At the same time, I can't help but grin that we on the CS side find a way to
erase all the gains in performance and efficiency as soon as the EE guys make
them.

There has to be come kind of universal constant: the limit, as technology
proceeds into the future, of the execution time of "Hello World" is some fixed
number. Because as soon as we get better hardware, we invent an even weightier
runtime environment to slap on it. ;)

~~~
10098
I don't have much problem with programming an embedded device in a high-level
language, but why JS specifically? Why not Lua, which just as fast, and is
better than javascript in many respects?

~~~
coreyja
Slightly off topic, but is it just me or has Lua gotten a lot of attention on
HN in the past weekish? I haven't heard much of Lua before but recently it
seems to have come up a lot more.

And even more off topic (sorry), what makes Lua better/different than other
scripting languages?

EDIT: On jacobwcarlson suggestion, I Googled Lua vs Python, and found this
Wiki, [http://lua-users.org/wiki/LuaVersusPython](http://lua-
users.org/wiki/LuaVersusPython) Not a speed comparison, but gives a fair
amount of difference in the actual languages. And yes it is on a Lua users
site, so may be biased, but on my very light reading didn't seem too bad.

~~~
Aldo_MX
Lua is a language designed to be embeddable, Javascript is a language that
didn't even had the chance to be properly designed.

Although I'm one of those Lua "unadopters", for me it's better to simplify
stuff to my audience, and I have considered seriously to use JavaScript for my
next project instead of Lua.

~~~
TheZenPsycho
Both javascript and lua were designed for very similar goals. It just so
happens that the designers of Lua had more time to do it- plus they aren't
burdened with the need to always be backwards compatible, so lua (now at
version 5) breaks scripts written for older versions.

So they each have their trade offs.

~~~
Aldo_MX
I'm pretty confident that if Lua were as widespread as JavaScript is, a
backwards incompatible change would be less likely to happen, although with
Corona SDK, I'm also confident that Lua will have an opportunity to shine :).

~~~
TheZenPsycho
I"m not sure that "widespread" really would do it. The other difference
between Javascript and Lua is that- while Javascript has been embedded in
adobe software, modified to become actionscript, and is the scripting language
in some games, its primary use has always been the web- with its specific DOM
api. The web carries with it the backwards compatibility burden.

Lua doesn't have to be backwards compatible because nobody _has_ to upgrade to
the latest version of lua- and there isn't much of a standard library to break
anyway- All the things you'd traditionally use a library for are provided by
the outer application lua is embedded in- an application likely not written in
lua itself- and so if you do decide to upgrade your app/game the only thing
you break is individual scripts.

~~~
Aldo_MX
With a widespread adoption more security-related issues and bugs get
discovered, with new security-related issues and bugs comes new fixes, and
those fixes (especially the security-related ones) IMO are the incentive to
update.

Whenever you release a new version with backwards-incompatible changes you
discourage your audience to update and they fragment.

Your product exist because it solves a problem, and the moment your product
gives more problems than the ones it solves, you discourage your users to use
your product and they begin to look for options, and if an option that meets
their needs doesn't exist they will stall (ex. Windows XP).

This means extra effort, since you have to maintain at least the most used
major versions, and at the very least provide security updates to your users.
Fragmentation is a <s>headache</s> migraine that you want to avoid whenever
it's possible...

With a widespread adoption you have to evaluate deeply whether the
fragmentation troubles are worth the value the backwards-incompatible changes
will provide. It's not the same trouble having a hundred users, than having a
billion users.

~~~
TheZenPsycho
You're not wrong, but I think with lua the fragmentation problem is pushed out
to the app developers who embed lua in their various games and applications.
Do the developers of lua concern themselves much with this? I suppose
slightly, but mostly in the form of documenting what's different and how to
convert old code to new code. The lua philosophy seems to be that a
simpler/smaller implementation trumps backwards compatibility.

~~~
Aldo_MX
You are also right, but when a project has small adoption, usually the users
are people that feel identified with and like the project.

But suddenly the project becomes a product, and the product gets adoption
(every time more).

The users will use your product because of different reasons (ex. it's what
other people use / it's what can solve better X problem / it's what I got
recommended / etc.), the users that like and feel identified with _the
project_ become a small niche in comparison with the people that need the
product.

The users become the ones that shape the product, you have to balance between:

Feature A. Which is what you want to do for the project. Feature B. Which
people are telling you they need for the product.

Will you develop exclusively "Feature A"s, because you are following a
philosophy?

Think for a moment what would had happened if Microsoft had adopted Lua for
IE3 instead of reverse engineering Netscape's JavaScript (assuming that IE
would have still won the 90's Browser Wars thanks to Lua). Are there flying
cars in that parallel universe? Is Lua uglier than today's JavaScript? Has
Douglas Crockford written _Lua: The Good Parts_ yet? :)

------
farnsworth
Forgive me for not being hip but why try so hard to put JS in new places? It
seems to be just an unfortunate historical accident that JS is one of the most
popular languages in the world - does anyone actually _like_ it compared to
other modern scripting languages? Could we invest in CoffeeScript instead, at
the very least?

~~~
benihana
Because everyone* knows JavaScript. I'd wager that the vast majority of
professional software engineers work on the web, or very close to the web, and
JavaScript is the _lingua franca_ of the web. I mean just look at the front
page of Hacker News on any given week. It's full of talk of JavaScript and new
JavaScript libraries and new things to do in JavaScript. When you think about
how many more people this can reach without them having to learn yet another
language for a very specific thing, it makes sense.

*hyperbole, please forgive me for being not being completely literal.

~~~
blackhole
I may know javascript, but my god I wish I didn't have to.

~~~
javis
Many people do enjoy writing JavaScript and view it as just as good as Python
and others.

~~~
PommeDeTerre
I've dealt with these kind of programmers on numerous occasions. While they
may claim to know other programming languages, they usually don't know much
about them at all, in reality. If they do know another language, it's PHP,
which is just about as bad as JavaScript in most respects.

Any programmer who has real experience with a variety of different programming
languages will become very aware of how inferior JavaScript inherently is.

JavaScript's problems go much beyond the quirks or oddities we see with
programming languages in general. They're severe deficiencies (the lack of
proper modules or namespacing, and the lack of proper class-based OO), or
inexcusably stupid design flaws (semicolon insertion, its broken scoping
rules, its broken type system, its broken prototype-based OO, its broken
comparison operators, and so on).

No intelligent, experienced, self-respecting programmer will want anything to
do with such a ridiculously flawed and broken language. They surely will not
see it as good as Python or any other language that isn't rife with the
unjustifiable stupidity that permeates every aspect of JavaScript.

~~~
thedufer
Well, that's just unnecessarily offensive. I'm proficient in Python, Java, and
C, and was at some point also fluent in PHP, Ruby, and Lisp. While I wouldn't
particularly enjoy coding in Javascript, CoffeeScript is, to date, the best
language I've worked with. I debug in JavaScript, so I'm not that far away
from it.

Why is "class-based OO" necessary? There's nothing wrong with prototypal
inheritance. The way modules are done in Node is pretty powerful compared to
other languages I've used. The scoping rules are different, for sure, but I
don't really see why you'd call them "broken". They're internally consistent
and easily comprehensible.

Semicolon insertion is, admittedly a problem. The solution, of course, is to
put in your own semicolons. If you do that, and use something approaching
reasonable whitespace conventions, there isn't really a problem. JavaScript's
`==` the like are, for sure, broken, but that's nothing a `===` can't fix.
It's not like the other languages you mentioned wouldn't have issues without
reasonable conventions.

~~~
PommeDeTerre
There's nothing "offensive" about pointing out realities, even if they may be
painful for some people to accept.

I find your arguments somewhat odd. You do openly admit that you "wouldn't
particularly enjoy coding in Javascript". People don't say such things about
good programming languages, especially when arguing in favor of them to some
extent.

I also find it odd that you argue that there's nothing wrong with prototype-
based OO, yet claim that CoffeeScript is the best language you've worked with.
One of CoffeeScript's most useful and important features is that it adds very
simplistic class-based OO to JavaScript. Go look at the example code in the
"Classes, Inheritance, and Super" section of the CoffeeScript home page to see
what I'm talking about. The CoffeeScript code is tolerable; the JavaScript
that's outputted is horrendous. Hand-written JavaScript is often just as bad,
if not worse.

The various JavaScript "module" systems are purely hacks. They abuse existing
language features to fake modularity, poorly. They're nothing like the proper
module support of other languages. And at least you admit that semicolon
insertion and the broken comparison operators are serious issues. Many other
JavaScript advocates refuse to, for whatever reason.

There's nothing wrong with admitting that JavaScript is a really bad language.
I think you know that it is, and want to admit it, and I think you should. It
doesn't deserve to be defended, because its problems are generally inexcusable
in every respect.

~~~
mwcampbell
> There's nothing "offensive" about pointing out realities, even if they may
> be painful for some people to accept.

The problem is that your comments about JS tend to contain more hyperbole and
opinion than undisputed reality.

JS obviously has flaws. But so does English. It's good to have a natural
language that a large percentage of the world's population, across
nationalities and ethnic groups, can speak. I think the same applies in
programming. Programming languages are not just for telling a computer what to
do; they're also for collaborating with other programmers. And once a code
base is written in a particular language, it's often hard to make a case for
rewriting it in a different language. So why not use a language that is
popular, is cross-platform, is vendor-neutral, has multiple optimized
implementations, and is likely to remain popular and well-supported for many
years to come? JavaScript is that language.

FWIW, I have much more experience with Python and Lua than with JavaScript. I
also do some work in C++. Yet, despite JavaScript's flaws, I'm defending it as
a general-purpose programming language.

------
nawitus
From the title I expected the CPU to actually run JavaScript, like a certain
decades old computer (of which name I can't recall).

~~~
phpnode
you probably mean a Lisp Machine -
[http://en.wikipedia.org/wiki/Lisp_machine](http://en.wikipedia.org/wiki/Lisp_machine)

~~~
nawitus
Found what I meant: B5000 directly supported higher level languages.

~~~
unwind
Thanks, that
([http://en.wikipedia.org/wiki/Burroughs_large_systems#B5000](http://en.wikipedia.org/wiki/Burroughs_large_systems#B5000))
seems like a very interesting processor. A few tidbits that caught my eye:

    
    
        - All code automatically reentrant
        - Partially data-driven tagged and descriptor-based design
        - First commercial implementation of virtual memory

------
twog
So much negativity in this thread & on HN in general. Not everyone has
hardware experience, and this looks great for newcomers.

~~~
hardwaresofton
To add to this, abstracting away from hardware is exactly what C (which most
people consider low-level) was built for. No one wants to write assembly, and
even less people want to write 0s and 1s or punchcards.

Successfully-executed abstraction is a wonderful thing, people have been
trying to abstract away (but retain performance) of C for decades. I welcome
newcomers, maybe someone will get it right

~~~
damian2000
Agreed, the state of art of most microcontroller manufacturers these days is
to push out a (usually buggy) Eclipse based IDE with undocumented C libraries.
They all have their quirks and issues - noone has got it right yet from the
developer's point of view. This seems like a step in the right direction,
albeit taking a big performance hit.

------
chad_oliver
This is very cool, but I don't see how it can compete with boards like the
BeagleBone Black. The BleagleBone Black is $45 for a 1GHz CPU and 512 MB of
memory, yet the access to low-level hardware is just as good.

~~~
Florin_Andrei
Very, very different things.

The BBB and the Raspberry Pi are designed to be relatively high-power (both
computational, and power draw from DC) devices running a true multiuser OS.

This thing is more akin to an Arduino Micro or a Teensy - a low-power
controller that could run a very long time on a tiny battery, no OS to speak
of, just a single loop of essentially real-time code.

I just made a hardware clock for my PC (7-segment LED display mounted in a CD-
ROM bay slot). I used an Arduino Micro to drive the display.

I may build a dedicated media server at home. A RasPi or BBB would be perfect.

I'm thinking to launch a stratospheric balloon. I need something to hold
together and drive a GPS sensor, temperature sensor, VGA camera, SD card, and
radio transmitter. Total weight and power consumption are severely limited. An
Arduino or Teensy would be great.

Do a wall-mount big LCD screen at the office, showing the vital stats of our
website in real time, for all to see? A RasPi or BBB.

Or you could go even more bare-metal and do everything with an AVR that costs
$1 and a few components that you recover from the last floor sweep, like this:

[http://florin.myip.org/blog/how-make-halloween-creepy-
blinki...](http://florin.myip.org/blog/how-make-halloween-creepy-blinking-
eyes-atmel-avr-microcontroller)

See the differences? Horses for courses.

~~~
ippisl
I agree about the arduino and batteries, but this board is a bit different.

It uses external memory which takes more power. It uses javascript which could
take much more power. And the wifi also might not be low power. So it's not
clear yet how low power it is.

------
taurath
I'll take "most terrifying things you could tell an electrical engineer in
2005" for $2000, Alex.

~~~
kyzyl
I had this thought was well. As as physics major and an EE major, it's a
(somewhat humorously) terrifying concept, at some level.

Now this has more or less been discussed to death in the threads above and
below, but while I don't necessarily think running JS on a uC is a _great_
idea, I don't see a problem with letting non-hardware-versed folk write low
level code. People who know hardware will probably not use it for anything
critical, and if it makes someone's life easier without endangering others or
utterly diluting the community (knock on wood...) then so be it. There's no
reason to be elitist about low level programming.

At this moment my workspace consists of a bit of code for an 8bit
microcontroller, a FPGA layout + VHDL, and a mixed signal high speed PCB
layout I've been laboring over for the better part of two weeks. Take that,
"low level" C! Now I could go off about how superior and/or necessary my low
level methods are, but my friend who's working on an ASIC design might say
something similar to me. There's always a lower level. As always it's a little
bit about preference, and a lot about using the appropriate tool for the job.

I might have a problem if web developers started cramming JS onto arduinos and
calling themselves competent hardware engineers, but (and I think most people
in the field would agree with me) I suspect the likelihood of that happening
is negligible. It becomes apparent very, very quickly when someone is
pretending to know how to hardware.

------
malandrew
So a lot of people have been complaining: "Why not language X, Y or Z instead
of JavaScript?"

This to me makes me think that there is a space out there for a board that has
some equivalent to vagrant/docker but for microcontrollers, where you can just
flash the device with a image supporting a language of your choice.

Near as I can tell, there is nothing I read on the product launch page that
says that JavaScript is supported at the physical hardware level.

------
proee
Javascript doesn't support integers, so it doesn't seem like a good language
for programming low level hardware. What about bit manipulation (XOR, AND,
Shifting, etc)? This is critical for a lot of serial data communications and
I/O controls.

~~~
teebrz
JS supports integers; it just doesn't have an integer type so you can't always
store, operate, etc on them efficiently (though a smart engine can do some of
that for you). It has bitwise manipulation operations which treat the Number
as a 32 bit int. There are also Typed Arrays which make it easier to work on
raw binary data. Though yes, it can occasionally get a little finicky trying
to interface a high level dynamic language with lower level stuff.

Anyway, for this I'm sure there will be a lot of libraries that handle that
for you and expose a fairly high level api; like the blinking led in the
example.

~~~
esailija
And when the engine cannot do that for you, there is always Math.imul

------
tehwebguy
This is cool!

If you are a veteran programmer it may seem dumb but there are plenty of
people who only know JavaScript (& HTML). Some of those people will be utterly
blown away that they can control actual, physical "stuff" with those skills.

------
jevinskie
Nifty! I presume this is running on a Linux kernel? How much memory does node
use? I would think that kernel + JS VM would chew up quite a bit of your 32 MB
of RAM.

~~~
zokier
> I presume this is running on a Linux kernel?

I doubt that. It has M-series ARM microcontroller, Linux is usually used with
A-series ARM CPUs.

~~~
zhemao
How would you run Node on it otherwise? If it's not running an operating
system that Node already supports, it means they've done the very large amount
of work needed to port a Javascript interpreter to a bare-metal environment.
I'd be highly impressed if they had actually managed to do that, but I'm
doubtful. More likely they are using some stripped-down Linux kernel and
userspace. A combination of uCLinux and BusyBox should work rather nicely.

------
hardwaresofton
It is very rare that I actually put my email into one of those "sign up for
updates" things, this is pretty awesome, can't wait to hear back from you guys

------
peterwwillis
This is the most elaborate troll i've ever seen. Kudos to the team for
creating what is literally the physical embodiment of everything I hate about
technology.

~~~
delluminatus
In contrast, this troll is quite transparent.

------
knodi
Please I don't need more JS in my life, i need less JS in my life.

~~~
smilekzs
Many others do seem to need more, though.

------
tambourine_man

      180mhz ARM Cortex-M3 LPC1830
      32mb SDRAM
    

I'm amazed that such wimpy hardware can run modern JS satisfactorily.

~~~
test-it
It won't run satisfactory.

Reminds me of that time Sun made the Java CPU and the JavaStation. A hardware
implementation of the JVM. It ran 20 times slower than the Microsoft JVM on an
average Windows PC.

------
ontouchstart
JavaScript is the most deployed dynamic embedded programming language in the
world (consider all the web browsers on desktop computers and mobile devices).
If we expland this environment to customer hardware, we also expand our view
of UI/UX to a different level. We should thank Moore's law.

~~~
nfoz
Are you implying that JS developers know more about UI/UX than others?

Most websites have horrible usability, ranging from "everything in CSS
popups!" to "every site uses a different widget toolkit, deficient in new and
exciting ways".....

I hope I just don't understand your comment.

~~~
ontouchstart
I am not a big fan of the visual UI/UX either. My point is that there is more
to the UI/UX than widgets and popups. With JS on hardware, we might have a new
way to design HCI other than those pretty wireframes in Photoshop.

IMHO, JS is a laguage designed for APIs, which is good for exploring ideas and
protyping. There is always a way to push the performance to another layer,
like CSS boosted by GPU.

------
tn13
This is precisely what I wanted to work with.

~~~
dkuntz2
Why? Because it uses JavaScript? I'd rather stick with my Arduino and use C. I
don't get the whole "JavaScript Everywhere" meme, I'd rather use almost any
other modern language (note the almost).

~~~
Tichy
You prefer C over JavaScript? Header files? Pointer arithmetic hell?
Precompiler Macros? Manual Memory Management? Seriously?

To each their own, though.

~~~
dkuntz2
No. I prefer C over JavaScript for embedded devices. And actually in most
places, too.

I know I'm weird, but I really like pointers, because I really like being able
to manually setup data structures, and enjoy the power provided by pointers.

Manual memory management isn't horribly fun, but for embedded devices I would
rather be in charge of that over the chip having to do it for me. It means
that if there's ever a memory overflow, it's my own damn fault, and I have the
ability to fix it.

JavaScript is an acceptable scripting language. It's not my favorite, but it
works. I just don't think scripting languages should really be used on
embedded devices.

~~~
lttlrck
Not even for scripting them?

~~~
zhemao
There's not really much need for scripting on an embedded device. Embedded
systems are meant to do a single task and run continuously. If he is already
comfortable with C, he clearly doesn't have much use for a language like
Javascript when it comes to microcontrollers.

------
aufreak3
It was both a pleasure _and_ a pain for me to read about this! Pleasure -
because a language with closures is finally getting "closer to the metal"
(even if it means an abstraction layer sitting in between). Pain - because
that language is not a Scheme/LisP!

This would be so much cooler if I could tap into an REPL remotely and blink
out a Morse code on the LEDs :)

PS: I have no idea what makes most of us go "cool!" whenever some form of
remote control of a hardware device is presented :)

------
zdw
I'm curious about performance on this, compared to something like the Arduino
YUN, which is basically a OpenWRT MIPS system (which uses a Lua UI by default)
and an Arduino tacked on the side:

[http://arduino.cc/en/Main/ArduinoYUN](http://arduino.cc/en/Main/ArduinoYUN)

The CPU in particular seems quite underpowered assuming that they're
clockspeed comparable, but I'm not familiar enough with the M-series ARM cores
to give a proper opinion.

~~~
errordeveloper
This is way better then Yun, IMO. Yun is an awkward design, I find very few
reasons they had to put an 8-bit AVR and AR9 on one board. WTF. I really like
this solution with a beefy LPC18xx and CC3000, it's totally cool by me.

------
gfwilliams
I've been working on another embedded JavaScript project - first posted on
here almost a year ago, and soon to go on KickStarter:
[http://www.espruino.com](http://www.espruino.com)

This is really interesting though. It looks like they've got linux and node.js
into 32mb RAM, which is seriously impressive. It seemed as if people were
trying and failing on Carambola (but that may have been because it didn't use
an ARM CPU...)

------
outside1234
Did anyone find details (or have an idea) on power consumption?

<selfishPlug> I'm the maintainer of nitrogen
([http://github.com/nitrogenjs/service](http://github.com/nitrogenjs/service)),
which is a node.js based project to provide web services and client libraries
for devices like this. Check it out if you are interested in devices like
this! </selfishPlug>

------
mistercow
Hmm, I can see some potential difficulties with making JS work efficiently on
that MC. It only has single precision floating point instructions, for one
thing, and I can't tell how many cycles those instructions take. I'm guessing
they'll just do a variant of JS that uses single precision, but even so, it
seems like it would be hard to squeeze any kind of performance out of it.

~~~
diydsp
I took a brief glance at the LPC1830 and it seems it doesn't have hardware
floating-point at all. (None of the mainstream Cortex M3 products that I've
seen do). Do you have better info on this?

So, I believe its FP support is through software and could be written to be
double or greater precision. If this is true and if JS can only do floats, it
would be bad news for many basic mathematical operations running on this chip.
But hey, as someone pointed out above:

People don't want performance. They want libraries.

But with no FPU, count me out. I'd rather have my stm32f4. Just sayin'.

~~~
thedufer
> If this is true and if JS can only do floats, it would be bad news for many
> basic mathematical operations running on this chip

By spec, JS only has double-precision floats. However, since that means that
32-bit integers can be exactly represented, V8 optimizes to integer
calculations unless actually using floats becomes necessary. I would guess
that on this device floating point operations are done in software, but also
that they rarely occur in practice.

------
bcent
Certainly an interesting concept ... and I'm sure that will be some cool
things that come out of this project.

I'm not sure I like the idea of a high level language, trying to control low
level hardware. (seems almost counter intuitive)... however, if you wanted
such a thing ... Node seems to be the way to do it... from both an
accessibility and speed perspective.

------
mcdougle
Very interesting. I feel like I've been seeing a major trend towards
Javascript-based-everything the past few months!

I wasn't sure if I should link this here, but this article really sparked a
train of thought that brought me to write this:
[http://blog.mcdougle.net/?p=54](http://blog.mcdougle.net/?p=54)

------
eplanit
Language-specific hardware has been done before, but do these really make
sense? I remember excitement at the prospect of "Java CPUs". Did any of them
become commercially or even technically important?

[http://en.wikipedia.org/wiki/Java_processor](http://en.wikipedia.org/wiki/Java_processor)

------
6ren
So, it's not actually JS in silicon (would that add much performance anyway,
since JS is so dynamic? at best it would be asm.js-like, I'd guess...), but a
supported language for an embedded device. I had a ghastly bizarro moment
there: JS strikes me as bash + C syntax (not tsch)... in silicon...

------
ulisesrmzroche
I for one am really happy the JS era is here. Finally! Also don't listen to
the haters. Ya'll know most of us make web apps so stop fronting. Though, I
guess now I can make a battlebot too! JS is shaping up to be a great language
and environment as more and more people get on board.

~~~
ulisesrmzroche
Actually, on second thought, if anyone wants to join me in starting a HN
battlebot league, hit me up!

------
damian2000
Great idea and marketing, but I just wish they'd chosen Go - I would have
bought one in a second. Correct me if I'm wrong, but the lack of sane, static
typing in JS just seems crazy to me when you come to writing low level code.

------
Sealy
That looks very very cool. Im really excited to see how this will change the
game.

I just wanted to ask the readers here... anybody notice the sticky tape
holding it together in the second picture?

------
SlaterVictoroff
Had the pleasure to try it out last week and I found it incredibly easy to get
things up and running. I think it has a lot of potential. Excited to see where
this goes.

------
K0nserv
As far as I understand not having an Android or iOS device will severely
cripple the user? Is this the case, are there any plans for Windows Phone?

------
kenster07
There will alway be a need for performance beyond what js can be provide, in
time and memory.

So don't worry, js will not take over...completely.

------
marcamillion
Wow....this is soo cool. Even though I am no fan of JS, I can't wait for Ruby
to be embedded on hardware like this.

Oh the possibilities!

------
smanuel
"the assembly language for the web" just got renamed to... "the assembly
language". Very cool.

------
oscargrouch
a good example of hardware hobyism and of the modern days eletronics
renaissance..

maybe its not this one.. but the next computer hardware revolution will born
like this.. the same way jobs and wozniak did in the 70´s .. from pure passion

hope my kids create its own gadgets like we did with legos in our days..

long live to the hacker spirit!

------
dnautics
will it support asm.js?

------
dpweb
whole world goin JS crazy

------
kingmanaz
It would be interesting to see scheme implemented in hardware, complete with
primitives intended to be wired to low-level pointer manipulation functions.
Further, it would be interesting to see someone seasoned in low-level C sit
down with a copy of Lion's Unix Commentary and the NetBSD sources and attempt
to implement a minimal Unix atop the scheme hardware using only said
hardware's scheme dialect ("SysScheme"?).

~~~
chewxy
So, lisp machines of the 80s?

~~~
kingmanaz
No, scheme machines of the 10s.

------
marssaxman
I feel sorry for the people who need this.

~~~
Widdershin
You know when people talk about negativity in Hacker News comments? This is
what they mean.

~~~
marssaxman
Not sure what you mean by that. I meant exactly what I said: I feel sorry for
anyone whose linguistic toolbox is so limited that Javascript is their best
option for writing low-level code for manipulating electronic devices. It is
hard to imagine a more profound mismatch between the tool and the problem it
is supposed to solve.

~~~
test-it
I feel sorry you lack basic understanding of linguistics. Any major
programming platform today is too complex for a single individual to
understand completely. One can spend his time learning several languages (and
the platform they run on) or concentrate on a single language. I'd say it's
obvious the second choice leads to higher productivity.

You don't see professional musicians trying to play 10 different instruments
on world level. Or olympic athletes competing in 10 disciplines. Or lawyer
practising 10 domains. But some programmers like to pretend they have 10
languages in their "linguistic toolbox".

~~~
zhemao
> You don't see professional musicians trying to play 10 different instruments
> on world level.

Yeah, but a violinist wanting to learn how to play the piano doesn't try to
rub the keys with a bow. If you are a Javascript Web Developer, picking up a
microcontroller is already going pretty far out of your domain. You might as
well learn how to use the tools that were already suited for that task.

