>>31787Thanks for your perspective lainon! I should clarify a bit how I use JS.
>1.) Javascript is horrible for privacy. It exposes a complex runtime with all kinds of
fingerprinting abilities, and turned documents into complex computations that are user unfriendly. This is correct on the
client side, but is incorrect on the server side. If you look at my site, the only time I use JS on the client side is for small effects
(such as the snow and the VR page), which don't actually affect the content of the site or the usability. I have JS disabled on my
browser by default, and I make sure my site can operate without JS. Even for the VR page which won't render without JS, I now put
pictures so that if you are interested in the page you can see the pictures. Lainchan is similar in that JS adds small nice features,
but is not necessary since it uses simple POST requests for posting, and that's how I design my site. I refuse to use client-side
frameworks, as they require JS to run, but my site is generated all on the server side, not on the client side. I encourage everyone to
disable JS on sites by default, as it is important for privacy and security reasons. Also, I will remove the VR page if there is concern
since it requires JS to run.
>2.) Javascript is difficult to archive. All of the
computations and dynamism of javascript are horrible for archiving. You are correct you can't simply wget snapshotsThis is
correct, but again only on the client side. This does not apply to my site, since all pages are generated on the server (server side
rendered). Web applications with infinite scroll can't be archived by the user using simple tools like wget, and with protections in
place can't be archived at all without using highly advanced, custom made web scraping tools. My site does not use any JS on the client
side to render the page. I use NodeJS on the server to server side render the page, and statically host the pages. Any pages that are
statically hosted and don't require JS on the client-side for the page to function can be mirrored using wget. You can make an offline
copy of my site using wget and run the offline copy within your browser with JS disabled and the site will still function fully. This
allows sites like archive.org to make archives of my pages, and I go out of my way to make sure all the content is server-side rendered
(again with the exception of the VR page since VR requires JS unfortunately).
>3.)
Javascript is *BIG TECH*This is valid criticism. I have concerns with NodeJS deriving from a large company, and made sure
it was free software (
https://directory.fsf.org/wiki/Node.js) before I even considered using it. I vet the external packages I use for NodeJS
before downloading them, and if I find even the tiniest bit of information that NodeJS has become bot software and is phoning home then
I will dump it immediately.
>Javascript is difficult to run and secure.There
have been concerns that NodeJS has been a bit difficult to secure at times. Part of this is due to semvar as the default for NPM,
allowing "patches" to occur in your packages, even if those patches aren't true patches and introduce breaking changes or security
vulnerabilities. I instead default to specific version numbers, and only make copies of packages a single time. I then use my offline
cache of packages, and manually check for updates periodically and consider patches if they patch actual security vulnerabilities.
In the case of NodeJS's security itself, there are other runtimes in development that add more security features (such as Deno),
and I keep my eye on these other runtimes in case NodeJS becomes bot software. In the case NodeJS and the other runtimes all become bot
software, I can and will switch to a new language fairly easily.
>you need specialized
servers to deliver nodejs appsThis is incorrect, NodeJS runs on your standard Linux instance with an Nginx or Apache web
server, which is the same web servers used in PHP, Ruby, Python, etc for their frameworks.
---
To summarize, there is a
huge difference between server-side rendering and client-side rendering, and you are confusing JS with client-side rendering. JS is a
language, not a client-side framework. V8/Gecko are browser runtimes that implement JS. NodeJS is a server runtime that implements JS.
Your concerns are primarily with V8/Gecko and client-side framework, not with NodeJS and server-side rendering.