Live data from Hacker News

Inside Netflix’s Project Griffin: The History of Roku Under Reed Hastings (2013)

fastcompany.com

11–14 of 14 posts

Re: Inside Netflix’s Project Griffin: The History of Roku Under Reed Hastings (2013)

#11
post #7

I remember the Roku platform fondly, even if it had some design flaws that left it hamstrung. The biggest of those was the use of a proprietary language for app development called BrightScript. A sort of bastardized VBScript (from what I'm told, as I don't actually know VBScript, but it looks similar), all complex objects that required performance were "components" that you created with a special function, which real…

What open source JS Engines existed at the time Roku launched in 2002?

The first Netflix streaming device from Roku was launched in May of 2008. Prior to that, Roku had a bunch of digital sign products called BrightSign, which is why the scripting language is called BrightScript (actually, I'm not sure if that's Roku, but if not I believe it's another company from the same owner). I understand why they chose BrightScript, they already had it working and had experience with it, I just think it ended up being a problem in the end.

Edit: To answer your original question, Mozilla had an open source engine, and I believe even had a version you could install as a stand alone JS interpreter, Rhino.

Re: Inside Netflix’s Project Griffin: The History of Roku Under Reed Hastings (2013)

#12
post #7

I remember the Roku platform fondly, even if it had some design flaws that left it hamstrung. The biggest of those was the use of a proprietary language for app development called BrightScript. A sort of bastardized VBScript (from what I'm told, as I don't actually know VBScript, but it looks similar), all complex objects that required performance were "components" that you created with a special function, which real…

> Now, imagine if they had just lifted one of open source the JS engines into the device. As someone who writes TV applications and Set-Top Box UI/UX code as my day job (and speaking only for myself and no one else), I actually vastly prefer Roku's approach here. If Roku had done what you suggest (use an open source JS engine), it would probably be a far worse experience for developers and users. As an example, I sub…

This is probably why Apple doesn't expose WebKit as a public API on tvOS: regardless of how useful it would be, the danger is too great that you'll end up with garbage, lowest-common-denomiator web apps littering your platform.

That said, I think the OP has a point that JS could have been used instead of BrightScript--no DOM, no possibility to re-use a generic or non-native UX design, just using the language. Given the timing though, it's hard to fault the choices made 10+ years ago.

Re: Inside Netflix’s Project Griffin: The History of Roku Under Reed Hastings (2013)

#13
post #7

I remember the Roku platform fondly, even if it had some design flaws that left it hamstrung. The biggest of those was the use of a proprietary language for app development called BrightScript. A sort of bastardized VBScript (from what I'm told, as I don't actually know VBScript, but it looks similar), all complex objects that required performance were "components" that you created with a special function, which real…

> Now, imagine if they had just lifted one of open source the JS engines into the device. As someone who writes TV applications and Set-Top Box UI/UX code as my day job (and speaking only for myself and no one else), I actually vastly prefer Roku's approach here. If Roku had done what you suggest (use an open source JS engine), it would probably be a far worse experience for developers and users. As an example, I sub…

> The problem with using a JS engine is that most developers (or their managers) will inevitably overload TVs with heavy JS clients

This happened anyway. Hulu, with help from Roku released a channel that did not use the built in components, and on original Roku devices had horrible usability. Second plus delays before key presses registered, fuzzy and almost unreadable fonts when it downscaled to SD TVs, and it would crash often. All it meant is that you had to have some weight to throw around. Roku enforced size, color and usability guidelines. They could just as easily have put in some language about specific usability with regards to lag. They controlled the store, so it's easy for them to enforce, and you could always note which Roku models your channel was available for, so older ones that were too slow or didn't have certain hardware capabilities could be excluded.

> Roku's job is not to be a computer connected to a monitor -- there are plenty of other devices that do that. Roku's job is to make sure internet video "always just works" as much as possible.

Except that Roku actively courted alternative applications, including games. In the end, their solution to games was to announce that you could design your game for Unity, and they would work with you to get it ported. In the meantime, they had an enthusiastic developer community that was embracing the platform, even as it restricted them in multiple ways.

Let me put this in perspective. We wrote a testing framework to test different language operations, such as addition, division, multiplication for integers and floats, array and associative array creation, etc. Adding ints took a microsecond, adding doubles took 50+ microseconds, and some function calls with lots of params might take as much as half a millisecond.[1] Given that later they provided a bitmap type interface specifically for game and other development, where you could register sprites and flip buffers, that's woefully inadequate for doing any real amount of work between frames if you're trying to achieve any decent framerate. This on a 400 MHz Processor with 256 MB of RAM.

For another example, before they finally added a JSON parsing component (quite late, actually), different people rolled their own.[2] A 100k JSON string took well over 10 seconds to parse. An actual tokenizing parser took over 200 seconds. Again, consider the specs.

If Roku actually didn't want to push it towards non-video and non-audio markets, they could have done that. Instead what we got was encouragement but not enough resources available on their end to provide the tools we needed in an adequate time frame. That's why I think JS could have helped. A lot of optimization and resource development could have been supplied for free.

1: https://forums.roku.com/viewtopic.php?f=34&t=41645&p=283583&... - I can provide a legend for this, but the accum_ and sum_ tests are the ones I'm referring to.

2: https://forums.roku.com/viewtopic.php?f=34&t=49609&p=338815

Re: Inside Netflix’s Project Griffin: The History of Roku Under Reed Hastings (2013)

#14
post #13

Earlier quoted context omitted.

> Now, imagine if they had just lifted one of open source the JS engines into the device. As someone who writes TV applications and Set-Top Box UI/UX code as my day job (and speaking only for myself and no one else), I actually vastly prefer Roku's approach here. If Roku had done what you suggest (use an open source JS engine), it would probably be a far worse experience for developers and users. As an example, I sub…

> The problem with using a JS engine is that most developers (or their managers) will inevitably overload TVs with heavy JS clients This happened anyway. Hulu, with help from Roku released a channel that did not use the built in components, and on original Roku devices had horrible usability. Second plus delays before key presses registered, fuzzy and almost unreadable fonts when it downscaled to SD TVs, and it would…

Hulu has a bad history of releasing poor quality user experiences just to jump on the band wagon of whatever the next hot platform is. Their original Web player was built on spaghetti from Chinese students and slowly rebuilt into what it is today.
Post reply on HN