9 ms·
Everyone on this thread is so dismissive about the language that they forget to credit the accomplishments of these wonderful boards. See, Javascript maybe a '
by neya 13y ago
Everyone on this thread is so dismissive about the language that they forget to credit the accomplishments of these wonderful boards.
See, Javascript maybe a 'bad' language according to many of you, but it has massive adoption unlike other languages. These board creators just want to ease the path for most web developers to become hardware developers. It not only opens up a whole new industry to work with, but also it creates a good 'filter' to filter out the bad ones. I will explain.
The thing about hardware products is that most people dont care about internals. Most of them care about the experience. I am NOT an Apple fanboy, but in this occasion I would like to cite the iPhone's sales as a good example. If you suck at programming in Javascript, it will show up, especially in the Hardware world, easily, and you/your product will be rejected.
Also, when you develop, say, a DSLR Quadcopter[1] with this board, people aren't going to ask you "What language is it running on?", "How slow is your language?". People are going to be asking about the footage you're going to film with it. Let's not dissolve ourselves into the hatred of a language. Instead, let's take the time to appreciate what these developers have achieved and what we can build out of these boards.
Cheers.
[1]A sample DSLR quadcopter for reference:
http://farm7.staticflickr.com/6225/6868828438_e6d798c68d_b.jpg http://farm7.staticflickr.com/6225/6868828438_e6d798c68d_b.j...
- jeswin 13y agoDamn right. People arguing about programming languages are like people who focus more on cameras than on the art of taking good photographs. Those of us defending JS or PHP or VB (in discussions which aren't about programming languages) aren't suggesting we should take a point-and-shoot (or a leica) to an action game.
- cbsmith 13y ago> People arguing about programming languages are like people who focus more on cameras than on the art of taking good photographs. Hmm... just to play on that metaphor: there are certainly camera choices that can make the process of learning to take good photographs easier or harder. Isn't that a relevant point?
- bgilroy26 13y agoingent learning a few things about composition and picking an interesting place to take your first pictures than it is making sure you have the best camera.
- twic 13y agoYou don't need to have the best camera, it's true. But you do need to have an adequate camera, where adequacy relates to the purposes you have. For example, i used to have a little digital compact. It had autofocus; the autofocus wasn't perfect, or even particularly great, and there was no way at all to focus manually. I have countless pictures which were ruined by being out of focus, and there was nothing i could do about it. I now have a camera which lets me focus manually, which means that a picture's being in focus or not is now entirely in my hands. The former camera was not adequate for the photographs i wanted to take; this one is. An interesting point is that a 40-year-old film camera would also have been adequate, although much less helpful in other ways. This feels like it could be a good metaphor. C is a 40-year-old SLR covered in dials and switches, enormously capable but a nightmare to work with to anyone but a master; JavaScript is a digital compact which automates everything whether you like it or not. Java is a modern dSLR, capable and more automated than C, but still clunky. Rust is a Leica M9, still manual but modern in other respects. Go is a bafflingly-horrendous-to-outsiders Lomo camera. PHP is a Fisher-Price toy camera. Clojure is a Lytro, weird but capable of amazing things (but weird). Scala fans think their language an E-M5, but it's really an EOS M.
- cbsmith 13y ago> The former camera was not adequate for the photographs i wanted to take; this one is. Right, but that doesn't necessarily comment on its effectiveness as a tool to assist in learning how to take good photographs. > An interesting point is that a 40-year-old film camera would also have been adequate, although much less helpful in other ways. This is more in line with what I'm getting at. There are perfectly good (even great) cameras out there, but there are cameras that are better suited to helping you get up to facilitating the learning process, and others that will hamper it. While perhaps not the most essential component of the learning process, they still kind of matter and are a perfectly reasonable aspect for someone to discuss.
- mamcx 13y agoNonsense. The language shape the minds, define the boundaries and the kind of solutions that can/can't be done in a reasonably time. Look as pretending enlightenment to say that languages not matter, that only matter the man behind them. Well, is that is true, the mans behinds the languages mean nothing? Is only the work that create the ones using the languages that matter but not the work that make THAT possible? The tool matter. You can build a city with only a hammer. But is stupid. Some languages ARE better than others. Some ARE faster. Some ARE more legible. Some ARE more performant. Some ARE safer. Some ARE more productive. Maybe two languages too close in his objective give small returns, but surely exist order of magnitude improvements between different groups...
- goggles99 13y agoThis concept of course not going to amount to anything more than a hobbyist or prototyping/POC use for quite a while purely from a cost perspective. You can hire a master C programmer and pay him $100 an hour for a year, or an advanced JS programmer and pay him $40. Well after launch, you may have saved $150k, but your hardware costs you $50 extra per unit to produce, requires more power to run, and has lower performance and timing precision (not real time). Your break even point is now 3,000 units. This is a non-starter. Other engineering, design and marketing costs will likely land you in the red if you are only producing 3,000 units. Perhaps in some niche markets this concept might be viable (like $500k plug in medical devices), but I doubt it. There is no way to really getting around learning hardware. Who is going to write the hardware interface drivers or driver/JavaScript bridge. Power consumption will rule out the possibility of many portable devices, loss of performance will rule out many options as well as will latency caused by the garbage collected (non real time) nature.
- Jormundir 13y agoYou don't seem to understand history.
- shadowmint 13y agoThis is the 'write everything in assembly' argument. Productivity and prototyping gains that allow you to proof of concept, manufacture and sell small runs of (expensive) toys, enables large scale investment to manufacture more mature products. There's absolutely nothing wrong with this approach, and, honestly, the 'big bang' approach of writing it all in C and producing 500,000 units before actually getting them out to anyone is extremely risky. That's why hardware doesn't get investment. Just look at kickstarter; great ideas popping up, people wanting them, people getting them. If you only ever end up making 5000 units for your 5000 backers, so what? Great idea. Prototyped a thing. People who wanted one got one. Not a mass market thing? Ok. We're not not $4,000,000 in debt. How terrible.
- weland 13y ago> That's why hardware doesn't get investment. Just look at kickstarter; great ideas popping up, people wanting them, people getting them. What exactly leads you to believe that hardware doesn't get investment? Besides Kickstarter, I mean. Hardware development tends to be massively funded. You get less exposure for a lot more money, which is why Kickstarter is obviously not a good place to look, but in most projects I've seen it was software, not hardware that tended to be underfunded.
- lifeisstillgood 13y agoagreed - these guys, like Raspberry Pi, are making a bet on Moore's Law - that's been a good bet for forty years and will keep being a good bet for a long while yet - certainly long enough to make the cost of interpreted JS insignificant
- jamwt 13y agoAnd yet our operating systems are still written in C(++). Javascript web code epitomizes the "long tail" of random ideas being articulated. The code is written quickly, needs to change a lot in response to user behavior and designer inspiration. It's usually < 10k lines, so its terrible medium- and long-term maintenance characteristics are manageable. It's written by millions of independent teams to bring to life millions of small ideas used by (typically) only a few users. And that's great, we really need languages for that. But, humor me for a minute, and let's define "the C law": Anything important enough to be used broadly will eventually be replaced by something written in C(++). Why? Because solution X not written in C is always vulnerable to replacement by solution Y written in C with the equivalent feature set, and the demand is now high enough to provide the time and talent. See: every python module ever used by more than 1M people. See: every programming language implementation (incl javascript and luajit!) ever used by more than 100k people. See every operating system, every database used by more than 1 million. See every web server running top 1000 websites. See (almost) every tech startup that becomes a fortune XXXX company, and rolls through its infrastructure rewriting its ruby or its python or its perl in C/C++/Java. See why we're not all using jitted PyPy yet (hint: those pesky c modules make real world cpython often just as fast or faster and more memory efficient). Languages that trade performance and correctness for productivity are fantastic when the project is young, small, and of dubious value (yet), or narrowly targeted and not generally interesting. Or the browser gives you no other choice. Consumer hardware product development just doesn't align with this kind of thinking. It races right past the C law threshold. Physical stuff introduces serious economies of scale, design costs, significant difficulty of change, etc, where shipping a few hundred of something doesn't make a lot of sense (as a business; maybe as a hobby project). So, if you're going to (aspire to) ship a million of something, investing in the software side to keep costs down, maximize battery life, mitigate risks related to a misapplied language runtime (not designed or heavily tested on embedded), guarantee performance and latency characteristics, etc, makes sense--the compromises that are appropriate for a website because you want to make a little gamble fast don't apply... you're making a pretty big gamble, and it will take awhile to get right anyway, and your capital needs are higher in general, so doing software "right" to save on COGS is just practical. BTW, "C" here is usually C or C++, but it can very occasionally be Java [see: zookeeper] or some other JVM thing like Scala. Regardless, it basically represents the final state reached by the tool/language/platform/project race. If your project could be replaced by a version that says "like $project, but fast/battery efficient/cheap!", you are not yet at the end game, and the C law could always be invoked (if the demand was sufficient), and your project will probably ultimately lose the lion's share of the market (or open source mindshare, or some other version of "market"). So, maybe this project is betting on our lives transforming into everyone paying more for their hardware, and everyone using a lot more small/local/boutique type stuff created by small hardware teams. This doesn't really jive with the way technology products are currently marketed, hardened, and distributed, so I'm operating on the assumption that change doesn't happen anytime soon. It could be useful/fun for hobbyists or prototyping, though.
- r080 13y agoOT: Isn't it sexcopter or what is the proper name?
- weland 13y ago> These board creators just want to ease the path for most web developers to become hardware developers. It not only opens up a whole new industry to work with, but also it creates a good 'filter' to filter out the bad ones. I will explain. What exactly happened to the programmers who, upon realizing that they had to use a new technology, learned the new technology instead of feature-creeping something until it gets to their familiar JS boat. I'm not going to rant that this is never going to fly. Were it based on technical consideration, the current image of Web 2.0 would have sunk like a rock, let alone even try to fly. But this is horribly inefficient and backwards that encouraging seems incredibly detrimental to our field. Come on, people, it's not that hard. If you want to do embedded development, a reasonable subset of C is all you need to know, and it certainly takes less to learn that it took to learn half a gazillion JS frameworks. Ask your boss to give you a one or two-week leave and give you a break from your 70 hours a week streak, and learn something that's actually new for a change.
- TheZenPsycho 13y agoCome on people, it's not hard- if you want to program computers, reasonably structured assembler is all you need to know, and it certainly takes less to learn than it took to learn half a gazillion C libraries.
- weland 13y agoThat's a carricaturized view of it, from which I gather you haven't done much embedded programming. A subset of the (famously thin) standard library is quite sufficient.
- TheZenPsycho 13y agowell good for you then. I guess you don't need this product and you can move on.
- jdmichal 13y agoOf course it's characterized. That's the whole point of a reductio ad absurdum argument. You're basically making the same argument as the old guy yelling at kids to get off his lawn. Out of curiosity, what do you think about Lego Mindstorms? Especially the later versions which allow a large multitude of programming languages to be used?
- VeejayRampay 13y agoI'm getting really tired of this "it has massive adoption" trope. Let's be clear about it, the merits of the language have nothing to do with its adoption. It's widely adopted because Javascript has a stranglehold on the browsers and people don't have a choice. Nowhere in the software space would such a monopolistic position be acceptable, but hey on the web for some reason it's OK. So yeah, it's the dominant language but not because it's oh so good or because people think it's awesome (though some of them do and I respect that), it's only because there's absolutely no alternatives.
- cbsmith 13y ago> Let's be clear about it, the merits of the language have nothing to do with its adoption. Having a platform that is already out there and which you can execute against without even an install might not prove much more about the merits of a language, but it is a merit in its own right. Of course, in this particular case... JavaScript isn't exactly widely deployed in hardware, and this device is what provides the platform so... yeah. > It's widely adopted because Javascript has a stranglehold on the browsers and people don't have a choice. That's not entirely true. People have had lots of choices. There was Java. There was Flash. There was even VBScript on IE (I bet you didn't know that), not to mention all the EMScripten fun that is now available. Time and again, people choose JavaScript if for no other reason than for its lowest common denominator qualities. > Nowhere in the software space would such a monopolistic position be acceptable, but hey on the web for some reason it's OK. If you consider the list of widely used languages for which there is an approved standard by an independent standards body and multiple independent implementations, you end up with a surprisingly short list (and some qualify but by the skin of their teeth). I think, sadly, this is actually quite widely accepted.
- VeejayRampay 13y agoCome on. VBScript and Flash? Really? What I meant and you pretend to not understand is that there is no way to use another language just like you use Javascript when scripting a web application. I can't open a console and go @document.query_selector_all(".fancy").each do |element| ... end I find that annoying. That a few companies have tried to introduce proprietary extensions is another topic, it doesn't mean that there is a real choice for developers. The point is that some people decided some time ago that scripting the web and accessing everything browser-ish (DOM, Canvas, SVG, WebSockets, Web Workers, etc.) meant Javascript and that was it. The lack of choice and variety at hand is absolutely ridiculous. In no other software space would people tolerate to be forced into a technology like that.
- jt2190 13y agoYour comment should be at the top of this thread. Their concept is very very cool, and they look like they're having a blast while they're building it, too. Great job guys!
- porker 13y agoAnyone know where I can find more about this DSLR quadcopter? I've got the original page on Flickr (http://www.flickr.com/photos/blank_canvas_photograpy/6868828438/ http://www.flickr.com/photos/blank_canvas_photograpy/6868828...) but no more...
- asdasf 13y ago>These board creators just want to ease the path for most web developers to become hardware developers Most web developers don't know javascript though. Even the ones who write javascript, I'd estimate fewer than 1 in 10 know the language even at a basic level. Most people are just grabbing messes of jquery infested crap and copy+pasting it. Then making random changes until it seems to work. That's why so much javascript out there is invalid according to the language spec, and doesn't work in less popular browsers.
- gcb1 13y agothose boards sound like all the bad parts of a beaglebone. js only. no linux access. obligatory wifi battery sink. ...its fine to blink a led or do something "dumb" as a thermostat. try to do signal processing in js and i will be slightly more impressed.
- tanto 13y agoAfter a little googleing found this... https://github.com/corbanbrook/dsp.js https://github.com/corbanbrook/dsp.js Also the performance JS delivers is already between 25% to 50% of clang (assuming you use asm.js).
- gcb1 13y agoim pretty sure it is possible, I'm just wondering which frequencies it would accurate at...