Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> mostly do some simple text-mangling

If you call communication with two different browsers (at least), validating source code, signing code and packing it up "simple text-mangling", I understand you're a bit frustrated. But I'm quite sure many see those features as a bit more than that, hence it is quite a popular tool to use in conjunction with browser extensions.

> Why do I have to install Node

Because web developers who do JavaScript for a living find it easier to write JavaScript to support their developer tools. Not a huge surprise here. I'm sure if you find the time to write the "simple text-mangling" in Rust, support it and maintain it, people would be more than happy to use it. But why rewrite something that works well enough for the intended users?

Speaking of cargo-cultism, you seem to have a bit of that stench on yourself as well, where suddenly every utility "should of course" be written in Rust, or otherwise be rewritten in Rust if they are not doing it yet.

Programmers will scratch their own itch with the languages that are familiar to them. Of course web extension dev tools will be written in languages and platforms that are the closest to the web ecosystem, which today is JavaScript.



> communication with two different browsers (at least), validating source code, signing code and packing it up

... is not something that requires a massive engine like Node. It just isn't.

> Because web developers who do JavaScript for a living find it easier to write JavaScript

This is an argument I can accept from a random free-time-opensource developer, not from a well-funded behemoth like Mozilla. An org that big should pay attention to what their objectives are, not what they feel like hacking together on any given day. How can they not see that making this sort of tool significantly burdensome to install on 90% of desktops is bound to limit its impact?

> suddenly every utility "should of course" be written in Rust

No. Write it in Go if you prefer. Write it in brainfuck, I don't care. What I care about, as a user, is that I can just get a single executable I can run on my machine. I care about usability, that's all I care about. How can it be acceptable for a tool like web-ext to have a setup story that is "figure out how to install npm; npm install web-ext and see it fail; figure out how to install Visual Studio (will it even work with the free version? I hope so); re-do npm install web-ext, ignoring a bunch of warnings about everything being horribly insecure and unmaintained"...? And then they have the gall to say in their copy that "you only need a text editor", just before pushing this crap. I mentioned Rust only because it's terrible optics that its very home doesn't dogfood it. Again, not rocket science to notice, at organizational level.

As a fervent Firefox advocate, this is the sort of thing that really riles me up.


I think in your rage against nodejs and/or Mozilla, you forget the target audience of this tool. The tool is written and provided for and by web developers who write browser extensions. The extensions themselves are written in HTML, CSS and JavaScript and the web developers who do write extensions, unless they are first time web developers, for most parts have nodejs already installed on their machine. For them, installing and using web-ext is as easy as it is for you to pull down a binary and putting in $PATH, or installing a tool via your package manager.

I maybe wouldn't have written web-ext in js with nodejs myself, but I do understand why others would make the choice to do so.

Although I agree that the whole nodejs/npm ecosystem is just a insecure clusterfuck waiting to be properly exploited at this point. About the Mozilla objectives, I don't think they even know them themselves at this point, even less so around 2015 when this tool first appeared.


> you forget the target audience of this tool.

I understand, but the reality is that Chrome's own experience to do this sort of thing is still miles ahead. It's literally trivial to build a Chrome extension. It's a big part of Chrome's success: people who used to struggle to build FF extensions when it was about XUL and RDF, when Chrome arrived could quickly bang together something that directly improved their life. Google understood that their audience was anyone using a browser, not just this or that subset of markup fanatics.

One of the pros of the Quantum switch was that building FF extensions became as easy as Chrome. Reintroducing complexity via the tooling is just self-harm.


I guess you are thinking this tool is required because you are coming from Google Chrome extension development where you need a compiler tool to create CRX files. This is not the case for Firefox extension development. It uses plain ZIP files.

You do not need this or any command-line tool to create Firefox extensions. You can create and publish an extension entirely with Notepad, Firefox, and the built in ZIP functionality of Windows Explorer if you want.


> ... is not something that requires a massive engine like Node. It just isn't.

How is asking for a Node install for a Javascript developer a problem?

My non-programmer wife recently started doing some Youtube tutorials to learn Javascript as her first coding experience and almost every single one has step 1 as "Install Node". Installing Nodejs is literally Javascript 101.

Also "Massive"? The Nodejs installer for Windows is 27MB (and requires like 4 clicks to install). On Linux, its available via the native installers and is a 1-click install.


The fact that people don't see this as troubling, is sad in itself.

It's like asking people who want to learn Python: step 1, install Django. Or for Java: step 1, install Spring.

A simple browser extension doesn't need Node. It just doesn't. The browser itself already packs everything the extension needs.

And I could go on - why would a JS runtime/framework need Visual Studio, at all?


> It's like asking people who want to learn Python: step 1, install Django. Or for Java: step 1, install Spring.

But Node is just a JavaScript runtime, like Python or Java. Of course, you don't need Node to run JavaScript in browser as it is built-in in the browser, but the built-in JavaScript engine doesn't allow you to easily use it externally.

> A simple browser extension doesn't need Node. It just doesn't. The browser itself already packs everything the extension needs.

You don't need to use it, as web-ext is just a extra tool to make it do some automation. You can just create some files and use Firefox to load it manually.

> And I could go on - why would a JS runtime/framework need Visual Studio, at all?

Because it uses native addon which is not written in JavaScript, so it need to be compiled when installing. Since Windows doesn't come with a compiler by default, you need to install it. It is more simpler to install it in Linux.

BTW, if you don't want a full visual studio to use native addon in Node.js, you can use https://www.npmjs.com/package/windows-build-tools instead, which provides tools you needed to compile things on Windows.


I'm not sure where you're coming from, but it's evident you haven't done JS development with nodejs, so let me give you the full picture here. nodejs is not a framework like Django or Spring. nodejs is a runtime for JS, just like Firefox and Chrome could be considered a runtime for JS (kind of, simplifying for you here). In fact, Chrome runs JS via V8, which is what nodejs is using too!

It's more correct to say "If you want to learn Python, you need to install a Python runtime", which for me makes a lot of sense. Of course I need somewhere to run Python if I want to learn Python. Same with JS, you need some sort of runtime, either the browser or something like nodejs. Many people go the nodejs route, as you'll end up probably needing or wanting tools from the nodejs ecosystem anyways, but some of us got started way before nodejs was even a thing, and some still do, nothing wrong with that.

> A simple browser extension doesn't need Node. It just doesn't. The browser itself already packs everything the extension needs.

Yeah, this is absolutely true today, for both Firefox and Chrome. In fact, the browser extensions we develop don't even have access to anything nodejs! This tool (web-ext) is simply a tool for making the developer experience better. You're in no way required to use it. You can simply create your files and manually zip things up, sign it and publish. Although it gets a bit easier with web-ext.


How hard is it to understand that Node.js is a JavaScript runtime with access to the filesystem?

I don’t understand most of your complaints. Web-ext does not need Visual Studio, it installs just fine on macOS. You should open an issue if you can’t install it on Windows.

Also deprecations happen frequently on npm so, while they’re annoying during instal, they’re not really a big deal, modules still work.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: