7 ms·
"We're talking about a language that still doesn't have a standard way of reading and writing bytes... for talking to hardware. Think about that for a moment."
by TheZenPsycho 13y ago
"We're talking about a language that still doesn't have a standard way of reading and writing bytes... for talking to hardware. Think about that for a moment."
Wrong. Javascript has typed arrays. When's the last time you actually looked at Javascript? 1998?
"Honestly, I'd not have blinked if the idea was to use Java (even with its lack of unsigned arithmetic), C#, Objective-C, Lua, or even say Go to do the job."
They are using lua. They just have a front end to lua that uses javascript syntax, it would seem. Because languages without curly braces are scary, and the goal is to make this stuff accessible.
To the expert, making your niche accessible to plebes is scary. I understand.
- cbsmith 13y ago> Wrong. Javascript has typed arrays. When's the last time you actually looked at Javascript? 1998? See comments here: https://news.ycombinator.com/item?id=6468339 https://news.ycombinator.com/item?id=6468339 As recently as a few months ago I had to base64 encode a binary protocol because the JavaScript guys couldn't handle decoding the raw bytes. > They are using lua. Yes, but it seems like lua is merely used as a target rather than a programming language. What language people actually code in is highly relevant if your goal is to make a domain more accessible. > They just have a front end to lua that uses javascript syntax, it would seem. Because languages without curly braces are scary, and the goal is to make this stuff accessible. There are a lot of languages with curly braces that aren't half as scary as JavaScript. > To the expert, making your niche accessible to plebes is scary. I understand. I appreciate your "understanding". Next time you are trying to make the big "I can read your mind" power play, you might want to read the context a bit more carefully. I don't generally do programming that talks directly to hardware, so even by your rationale I have no reason to be threatened, and I'm all for making this niche more accessible. I've seen excellent jobs of making hardware accessible to novice programmers using Java, Smalltalk, and even things like SCRATCH and Alice. I think that stuff is great. As you put it, "making a niche accessible to the plebes" is a great endeavour and what I have spent most of my career striving for. I've learned a thing or two about that path along the way. This isn't the first time a choice like this has been made. I thought I'd share that this particular choice, if anything, undermines the goal.
- TheZenPsycho 13y ago"I thought I'd share that this particular choice, if anything, undermines the goal." but that isn't what you shared. All you had to share was vague old man gripes about a language, with the only concrete example being something that is only really half true. For christ's sake, you suggested Java and Objective-C for the task. How do you expect to have any credibility after that? For a novice language, why are you expecting a typical task would be decoding a binary protocol? To claim that you are just sharing your wisdom here is intellectually dishonest.
- cbsmith 13y ago> For christ's sake, you suggested Java and Objective-C for the task. How do you expect to have any credibility after that? Because while they might not be considered "hip" languages, they have large developer communities and are comparatively straightforward to pick up for any web developer that isn't familiar with them, yet they still have good support for the task at hand: talking to hardware. > For a novice language, why are you expecting a typical task would be decoding a binary protocol? Because they're talking to hardware, and because working with binary is actually much simpler (if your language doesn't have some bizarre aversion to it). If you've ever taught novices to program, it's actually easier to start with binary as you avoid all the complexity of text encodings and parsing. You want an integer? Read an integer. No length prefixed fields. No reserved characters. No escape sequences. No terminating characters. No character set encodings. No case sensitivity or symbolic equivalents to worry about. The worst you might have to deal with is endianess and usually you can dodge that issue by starting with native endianess. C makes it harder with it's "not sure what width that is" fixed point integers, but that's part of why you don't pick C for that job either. Working with binary only really becomes a pain once you have to start talking to humans.
- TheZenPsycho 13y ago> comparatively straightforward to pick up for any web developer that isn't familiar with them compared to javascript. really? you think java is "easy to pick up" ? I'm going to have to just say I disagree with you there. I don't like my chances of convincing you how silly that sounds. You seem to be operating on some very peculiar assumptions.
- justin66 13y ago> They are using lua. They just have a front end to lua that uses javascript syntax, it would seem. Regarding the limits of how far this Lua / javascript combo can or should take us I refer you to the words of Roberto Ierusalimschy, creator of Lua, himself (I agree with him): > I must confess that I would be very reluctant to board a plane with flight control implemented in Lua or any other dynamic language. http://lua-users.org/lists/lua-l/2008-10/msg00405.html http://lua-users.org/lists/lua-l/2008-10/msg00405.html I think if the goal is to make little gadgets that put large block letters over jpegs of cats and post those jpegs to social media sites, Tessel's software side is on the right track. It might not be so great for "internet of things" gadgets that interface with the real world, in real time, in novel ways. (in fairness their hardware looks interesting, though currently overpriced)
- TheZenPsycho 13y agoI think the market this is aiming at is more arduino scale. Would you board an airplane powered by an arduino? Or an apple II, for that matter- Another product aimed at making something more accessible to "software" type people.