npm is just a repository.

A repository exists in Python, Ruby, ArchLinux (AUR), Debian, etcetera.

A repository purpose is to publish a program/module/library  that can be
reused across projects.

A repository doesn't force you to create dependencies.

A repository doesn't need your code to be compatible with everything else.

A repository is a place to publish and consume common reusable code.

In GJS everyone is re-inventing the wheel daily.

I've seen GJS examples repository and laughed hard at the dance to obtain
the current working directory:
https://github.com/optimisme/gjs-examples/blob/master/egAsset.js#L17-L30

Instead, someone (like me) could write a module that does the proper dance
to grab most essential info on bootstrap so that everyone else could `const
info = require("gjs-app-info")` and use `info.program` instead of that old
hack.

Same goes for 3rd parts modules that are not bound to Node or Browsers (or
Nashorn or Espruino ... or ... )

Accordingly, having the ability to use a central registry to share code
worked for everyone in the JS community, keeping GJS outside that is a huge
missed opportunity.

This, of course, unless I realize there is a parallel universe full of
community effort to make GJS easy for newcomers.

So far, unfortunately, I haven't seen that place though, hence my effort.

Regards









On Sun, Nov 5, 2017 at 4:49 PM, Luke Jones <luke.nukem.jo...@gmail.com>
wrote:

> One of the issues I have with NPM support, is that then brings the
> undesirable hundreds of package dependencies through encouraging the
> use of them.
> If someone *does* use NPM packages and creates an app with this
> support, then that introduces some seriously big headaches with
> packaging for distros.
>
> Unless I'm missing something?
>
> The way I see GJS is JS for GNOME. Not as a universal JS runner, and
> so doesn't need NPM or anything as complex as that.
>
> On 6 November 2017 at 07:34, Andrea Giammarchi
> <andrea.giammar...@gmail.com> wrote:
> > If until now GJS ignored the rest of the world in terms of JS modules and
> > the ability to use npm as registry, I believe I'm not the one that can
> > answer that question but I am 100% sure if you want GJS to be more
> popular,
> > you need a better JS ecosystem integration, and npm is mandatory step
> zero
> > to obtain that.
> >
> > However, until CGJS is under development, I don't see GJS integrating it
> > unless you mean just the basic `require` mechanism for which I am sure
> it'd
> > be super useful to have it in core so that I just develop dependencies
> and
> > forget about the thin GJS wrap.
> >
> > Having `require` but no modules though might mislead new comers so maybe,
> > once again, until CGJS is fairly usable and stable and it covers more
> NodeJS
> > core functionalities, we can think about how integrate it and ship it via
> > GJS.
> >
> > Not sure I've answered your question though.
> >
> > Regards
> >
> >
> > On Sun, Nov 5, 2017 at 3:07 PM, <philip.chime...@gmail.com> wrote:
> >>
> >> On Fri, Nov 3, 2017 at 3:16 PM Andrea Giammarchi
> >> <andrea.giammar...@gmail.com> wrote:
> >>>
> >>> yeah, that's why I need help/contributors there.
> >>>
> >>> The fs is relatively trivial, streams are more painful but in JSGtk the
> >>> fs was already working.
> >>>
> >>> I am just starting porting over and improving JSGtk, today you have
> >>> already console globally available, util in core (and timers) and I'm
> >>> working on os, needed by process, and streams soon, also needed by
> process,
> >>> together with EventEmitter ... I will use as much code from Node as I
> can
> >>> though, right now the focus is on the architecture to make core
> modules easy
> >>> to develop, test and deploy, which I think it's the case already.
> >>>
> >>> The last thing I've done a part is the utilities repo which has a GJS
> >>> based query object for the whole env
> >>> This file might be useful regardless:
> >>> https://github.com/cgjs/utilities/blob/master/about
> >>>
> >>> If you'd like to help moving forward just let me know and I'll add you
> as
> >>> contributor.
> >>>
> >>> There's also some basic guidelines on how to:
> >>> https://github.com/cgjs/cgjs/blob/master/CONTRIBUTING.md
> >>>
> >>> Regards
> >>>
> >>>
> >>> On Fri, Nov 3, 2017 at 6:44 PM, Giovanni Campagna
> >>> <scampa.giova...@gmail.com> wrote:
> >>>>
> >>>> On Thu, 2017-11-02 at 22:50 -0300, Andrea Giammarchi wrote:
> >>>> > FYI the whole project has been moved under a CGJS organization:
> >>>> > https://github.com/cgjs/cgjs
> >>>> >
> >>>> > If you'd like to contribute please rise your hand and I'll add you.
> >>>> >
> >>>> > So far working:
> >>>> > require, console, __filename, __dirname, and all timers in place
> >>>> > next up: process module
> >>>> > Each core module can be developed a part, using the old jsgtk source
> >>>> > code to take some example makes it relatively straight forward to
> >>>> > implement what was there already (hopefully cleaned thanks to modern
> >>>> > JS syntax).
> >>>> >
> >>>> > Modules are many but not all of them would be essential to make GJS
> a
> >>>> > NodeJS developer friendly environment or to share npm modules.
> >>>> >
> >>>> > Here the modules TODO list that is worth prioritizing somehow.
> >>>> > https://github.com/cgjs/cgjs#commonjs-modules
> >>>> >
> >>>> > I still would like to hear some feedback, thank you!
> >>>>
> >>>>
> >>>> Not sure what feedback you're looking for here, but I'd say the
> project
> >>>> seems really useful, and I hope it succeeds.
> >>>> Right now writing a desktop app in JS has to either choose node
> (losing
> >>>> all the good stuff in the Gtk+ platform) or gjs (loosing all the npm
> >>>> libraries), which is sad.
> >>>> With this, most JS only (or browserify-ready) node modules will work.
> >>>>
> >>>> This said, it looks like you have a long way to go to fill the fill of
> >>>> core node APIs as cgjs modules.
> >>>> For some module, it might be worth just copying the node source, once
> >>>> you have a few base APIs. At least "assert", "events", "stream",
> >>>> "querystring", "url", "util", maybe even "module", given you have a
> >>>> working require().
> >>>> That should give you a lot more support for npm modules out there.
> >>>>
> >>>> (browserify also has some support for those I believe, and might be a
> >>>> better source than node, not sure).
> >>>>
> >>>> The biggest obstacles will be "net", "http" and "fs", which any
> >>>> nontrivial node module will want to use.
> >>>>
> >>>> Good luck!
> >>>>
> >>>> Giovanni
> >>>>
> >>>> > On Thu, Nov 2, 2017 at 1:17 PM, Andrea Giammarchi
> >>>> > <andrea.giammar...@gmail.com> wrote:
> >>>> > > I've been thinking about for a while and finally made up my mind:
> >>>> > > JSGtk+ was solving the wrong issue and in a wrong way. The project
> >>>> > > is officially death/deprecated now, but not without an alternative
> >>>> > > ... bear with me ...
> >>>> > >
> >>>> > > npm is the biggest Open Source repository of them all. It's not
> >>>> > > about NodeJS code, it actually has more Browser modules than Node,
> >>>> > > but it also has Espruino, Nashorn, MS ChackraCore ... you name it.
> >>>> > >
> >>>> > > Having GJS out of npm is the number one issue I have, while having
> >>>> > > also a 100% NodeJS compatible API is less relevant.
> >>>> > >
> >>>> > > This is why I've created an alternative to JSGtk+ called CGJS
> >>>> > > (CommonJS based GJS), which can be installed via npm install -g
> >>>> > > cgjs and can be used already to require, in a CommonJS fashio,
> >>>> > > scripts and modules from your project folder.
> >>>> > >
> >>>> > > More details here, and I'd love your contribution / feedback.
> >>>> > >
> >>>> > > Thank You!
> >>
> >>
> >> Yes, this looks pretty useful. Do you think it would make sense to
> >> integrate it into GJS in the future and if so, what form do you see that
> >> taking?
> >>
> >> Regards,
> >> Philip C
> >
> >
> >
> > _______________________________________________
> > javascript-list mailing list
> > javascript-list@gnome.org
> > https://mail.gnome.org/mailman/listinfo/javascript-list
> >
>
_______________________________________________
javascript-list mailing list
javascript-list@gnome.org
https://mail.gnome.org/mailman/listinfo/javascript-list

Reply via email to