iceddev / node-chromify

Entry point to use node in chrome
http://blog.iceddev.com/2012/11/05/node-js-in-chrome/
Apache License 2.0
170 stars 23 forks source link

Discussion #1

Open thomasdavis opened 11 years ago

thomasdavis commented 11 years ago

Couldn't find a place to actually talk about the concept.

I gave a talk on it at a local Javascript meet up last night.

http://thomasdavis.github.com/browser-node-slides/presentation.html#slide1

And here was a way of doing it in firefox https://github.com/thomasdavis/browser-node-slides/

monteslu commented 11 years ago

Very cool slides, good to see someone else interested in this stuff :) This place is as good as any for discussion, or maybe here: https://plus.google.com/103067286453763274834/posts/5Aa8jPPmZjW ?

edit: ooops, didn't mean to close the issue

525c1e21-bd67-4735-ac99-b4b0e5262290 commented 11 years ago

This concept embodies how the web was created and how it will be destroyed. This is what networked platforms, their applications and their constituent modules once were and will be. Once the silos crumble; once the walled-gardens wilt; once the web 2.0 magical fairy pixie dust settles; modular, distributed, peer-centric systems are all that will remain.


For the uninitiated:

There's a long-running effort to augment browsers with the ability to facilitate "servers" (glorified transactors) in a similar fashion to how node augments v8.

Of late, the chrome team has been applying the same principle to chromium itself via extensions, through the APIs they interface...

As I understand it, all major vendors are participating in this initiative. In fact, Opera was so early (~ 6 years) they've since given up and started again, several times.

We have embraced the concept and have discovered what is a rather splendid platform. The realisation of old solutions, sometimes decades old, to problems only now arising.


Here's my humble advice to developers of this realm, including those targeting this project:

  1. Extrapolate the motif of using extensions deep into your apps and their dependencies. Extensions are more than capable of communicating with one-another, a design pattern I have learned to embrace. Utilising extensions forces one into the process of reasonable architecture and enforces isolation in the pursuit of stability and, above all else, security. This need not be difficult, and indeed has been rendered trivial by the layering of protocols (i.e. https://github.com/substack/dnode-protocol) over these message busses.
  2. Leverage the myriad of facilities chrome offers for what is otherwise browsing the internet; drawing parallels to classical server components. For example, use tabs for distinct server applications or independent components. Use chrome sync to keep server configs synced. Use chrome://memory and friends to audit cpu/memory usage. Use the inspector to debug, perhaps even develop, your modules. Abuse these aspects of the browser if need be. Go as far as patching the browser to burst through the glass ceilings. Don't be afraid of the positions collectivists will inevitably take against this movement. Let the whole world look in. "The power is yours".
  3. Don't everyone make a carbon copy of node. I share the sentiment of achieving API compatibility with node; if only for now. But realise node is a moving target you struggle to keep in your crosshairs. Instead, meet node where node aims itself. What you will begin to discover as you venture into this particular endeavour is that by standing on the shoulders of the browser giants, you're at least an order of magnitude more capable than when confined by classical SSJS platforms.

I'd like to be part of the formalisation of these concepts into axioms; bundling it up and presenting it as "a thing"; coining a name, catchy tagline, flashy logo, fancy community site and all that jive. A portal, if you will, to projects of this nature.

All feedback is greatly appreciated; particularly criticism :)


@thomasdavis I woefully regret missing this particular BrisJS. How was their response to these ideas?

thomasdavis commented 11 years ago

Thanks for the big juicy comment @pyrotechnick

Been busy at the moment but I hope to get back to you with feedback