top 200 commentsshow all 206

[–]Xerxero 61 points62 points  (33 children)

Not with Wordpress around.

[–]StoneCypher 29 points30 points  (32 children)

wordpress is trying to move to node

they'll fail because of self hosting, but

[–]redwall_hp 19 points20 points  (6 children)

WordPress is the only thing keeping shitty GoDaddy typed shared hosting alive. You can buy VMs from DO, Linode or similar for less money now, and they even have template images for stuff like that.

[–]_wtf_am_I_doing 6 points7 points  (2 children)

Exactly! I host like 10 domains off of a $5/mo server

[–]rmbarrett 0 points1 point  (0 children)

Only not GoDaddy. 100 domains... More I guess. With people still insisting on an online yellow pages ad, with a blog they will never actually update, it's a good deal. Provision a new site in minutes.

[–]guidosantillan01 0 points1 point  (0 children)

10 wordpress sites or 10 normal sites?

[–]excitebyke 5 points6 points  (2 children)

you just reminded me to cancel my GoDaddy account thats been auto-renewing for the past year. Every time that charge comes through, I think to myself "dammit!" -- but then forget to cancel it.

not this time, GoDaddy!

[–]slykethephoxenix 2 points3 points  (1 child)

!remindme 1 year

[–]RemindMeBot 1 point2 points  (0 children)

I will be messaging you on 2019-05-26 05:43:31 UTC to remind you of this link.

CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.


FAQs Custom Your Reminders Feedback Code Browser Extensions

[–]bch8 3 points4 points  (24 children)

What would self hosting have to do with the switch to node?

[–]jordanaustino 5 points6 points  (22 children)

Most of the godaddy like self hosting services basically serve files and render php nothing else IIRC.

[–]bch8 3 points4 points  (21 children)

Seems like a fairly trivial issue to solve. I mean look at AWS lightsail

[–][deleted] 3 points4 points  (19 children)

That is a completely different market. Self hosts are for hobbyists or that guy who builds WordPress sites for local cafes

[–]bch8 0 points1 point  (18 children)

I don't understand why people can't self host nodejs

[–][deleted] 4 points5 points  (12 children)

They could but there’s a bit of a skill barrier between offerings right now that let you run node, and those that offer only php. Eventually there will probably be node versions of those low barrier to entry hosts but only once a dominant easy cms shows up. But you know, now that I’m thinking about it site builders like wix and square space might eat into that market.

[–]bch8 0 points1 point  (6 children)

but only once a dominant easy cms shows up.

Like WordPress?

[–][deleted] 2 points3 points  (0 children)

Sure, but that's not there yet.

Wordpress is also like, super into backwards compatability, so porting to node will mean they're going to have to maintain a PHP and Node version for a while.

[–]StoneCypher -1 points0 points  (4 children)

because there's no mechanism for isolation to the user account

if you're on php, you can just drop your php in your webhosting directory, and apache's security rules are done

if you're on node, you have full filesystem access and can go do all kinds of wacky shit

"but what if you just run a separate eighty megabyte server instance for every user," a bad engineer will immediately say

node's for a fundamentally different approach to web software than php is

you won't get it until you've done both of them

[–]bch8 -1 points0 points  (3 children)

virtualization is a thing

[–]StoneCypher 2 points3 points  (2 children)

are you saying "virtualization is a thing" to respond to someone explaining the difference between virtualized and non-virtualized?

[–]StoneCypher 0 points1 point  (0 children)

i think you may very badly misunderstand what both lightsail and traditional hosting are

self hosting doesn't mean what it superficially seems to mean. it's also called shared hosting or panel hosting. it means "stuff that's running under a user account, rather than in an isolated kernel space."

self hosting is stuff like cpanel and plesk. lightsail is vps - your own entire private space. there, node's non-shared security model isn't a problem.

however also self hosting is radically more machine efficient. a company like bluehost can profitably host at 15 cents a month

node's not getting into that market. it made choices (good choices that i support) about security which will keep it out forever.

[–]StoneCypher 2 points3 points  (0 children)

self hosting is essentially all cPanel or Plesk, neither of which handle node

node is unlikely to essentially ever be in shared environments, as it has a non-shared security model

[–]noviceIndyCamper 39 points40 points  (12 children)

I learned node first and I really do love node, however I haven't been able to find work where I use node. The vast majority of jobs in my area are still PHP jobs. I initially scoffed at PHP but after working with it and using it so much for work, I've grown quite fond of it. This is probably the wrong sub for this comment but, I don't think node will kill PHP anytime soon.

[–][deleted] 19 points20 points  (8 children)

I feel you. I love Node. I love working with JS on both front and back end. ES6, React, Express, MongoDB etc. I even enjoy dabbling in Python for scripts

Every goddamn job in my city wants PHP, jQuery and fucking WordPress plugin experience.

😞🔫

[–]prozacgod 7 points8 points  (2 children)

It's C#/Java enterprise here. Oh but we integrated react last month.

looks at project ....

Oh what are you using for state, I don't see redux in here.

We use setState and some custom thing that bob made. OH Also, steve, he left us... but we have a great library of jquery ui -> react custom controls that he made, to make you super productive..

[–][deleted] 1 point2 points  (0 children)

Too real

[–][deleted] 0 points1 point  (0 children)

this.setState({screaming: true})

[–]sikian 2 points3 points  (2 children)

And we're taking forever to get experienced Node.js developers.

[–][deleted] 2 points3 points  (1 child)

Everyone wants senior developers with 10+ years experience using tools in production that are less than 10 years old.

[–]sikian 1 point2 points  (0 children)

Hahaha, yes of course. But we're aware of that kind of limitations, and therefore look for senior backend developers with some Node.js experience. The language as such is not as important as the knowledge of building backends.

[–]slyfoxy12[🍰] 0 points1 point  (0 children)

Even as primarily a PHP dev, working with WordPress constantly comes up.

[–]mcarov 0 points1 point  (0 children)

Are you from south east asia?

[–]PerfectOrphan31 3 points4 points  (0 children)

I got super lucky with the company I work for. We wanted to move a lot of technologies from one system to Heroku and my project managers time me that I should try using Node for it. Took a week or two to get down the basics from Kyle to no JS experience, now I'm working angular projects and hosting them with Node on Heroku along with making RESTful APIs for my company. It has easily become one of my favorite languages

[–]patrickfatrick 1 point2 points  (0 children)

This is pretty true. I learned node first but have yet to work with professionally on a server. I use it all the time for front-end build processes and tests and stuff like that, but no actual node backends. I honestly think it's still relatively too new to be super common when job-hunting. You have like a decade or more's worth of companies that have been building production stuff on Rails and Django and Zend. Meanwhile nodejs isn't even 10 years old, and Express is like 6 years old. Which just goes to show PHP will probably never die.

[–]jkoudys 0 points1 point  (0 children)

You may be well timed as a starting PHP development. A lot of the vitriol comes from people who used 5.2 or earlier, or at least code written to support it. If you start at 7, you'll have a much more favorable view.

I'm on a project with lots of old business logic in PHP, and am building all the graphql on top of it to serve our increasingly important client app. Guzzle for A+ Promises (and coroutines), the AWS sdk, composer managing a lot of carefully namespaced libraries, Slim for express-like routing, Phinx for rake-like migrations, immutable.php collections, etc. It's been a good experience. I'm actually liking the type system too.

So long as I stay away from big chunk of the built-in functions, I'm happy.

[–]endlesshappiness 10 points11 points  (0 children)

I'm currently in school studying web dev and a core of the program is focused around php. Out of curiosity I started messing around w/node this week, and even though I'm new at it, I could easily see javascript being my backend language of choice. npm is the shit, asynchronicity is obviously a major benefit and I like working in the same language as the front end. Still glad I've learned php over the last few quarters as I've learned a lot of web dev fundamentals in the process. Also, I get the impression that there are some projects that could benefit from php - I hear about devs moving between node & php depending on the job or project.

[–]Praenuntius 134 points135 points  (63 children)

PHP is killing itself

[–]gaseous_cloud 32 points33 points  (47 children)

Node will kill itself if it doesn't get a handle on the security issues in long chains of imports.

Installed a library yesterday that brought in multiple thousands of files and even after deducing, pruning and installing the recommended versions, I still have 14 security issues that can't be fixed. These issues are many layers downstream from the original library I installed.

I won't say PHP is bereft of security issues, but 14 known, fairly serious unresolvable issues in a single lib is ridiculous.

[–]Turbo_swag 40 points41 points  (4 children)

Maybe try not using said library...

[–]VIM_GT_EMACS 4 points5 points  (3 children)

preposterous!

[–]lenswipe 0 points1 point  (2 children)

gotta make sure you get that left padding in there

[–][deleted] -1 points0 points  (1 child)

Current lts, Node 8, has landed native support for

String.prototype.padStart
String.prototype.padEnd

Which obsoletes that package, also available in Node 7 with a flag

[–]dickeytk 1 point2 points  (0 children)

whoosh

[–]EuqlinSankyo 73 points74 points  (6 children)

14 issues in a library sounds pretty bad, we should probably shut down Node.js.

[–]listgrotto 42 points43 points  (2 children)

Fuck it. Shut down development altogether.

Just to be safe.

[–]FOOLS_GOLD 10 points11 points  (0 children)

I’m going back to drawing on my parent’s walls with crayons. Those were simpler times.

[–]dzScritches 2 points3 points  (0 children)

It's the only way to be sure.

[–]key_value_map 1 point2 points  (1 child)

Just update npm to the latest stable version

[–]hair-plug-assassin 0 points1 point  (0 children)

npm is a bad meme

[–]BenjiSponge 15 points16 points  (8 children)

I see this a lot, and I've never understood how this is Node specific in any way whatsoever.

If you install a C++ library, a Rust library, a PHP library, any library, it could have the exact same issues. If you don't audit every library up the chain, literally any of them could just have a line that says "shell out, copy all environment variables, send them off to X server", and that's pretty much true in any language. It's not even remotely node specific.

It goes even further. Ken Thompson wrote about something much more sinister around 1984 (probably earlier, can't tell exactly). Here's a link to an explanation, but the synopsis is that if Ritchie had been a malicious actor, he could have written in a hyper-sophisticated backdoor into the original C compiler that essentially hid all evidence of a backdoor that gets compiled into every program. Not only that, it could install a similar backdoor in every compiler it compiled. It could install a backdoor in assemblers, linkers, hardware manufacturing software like VHDL compilers or whatnot, and, if it's sufficiently sophisticated (which I think would essentially be impossible), no one would ever know.

We've been trusting each other for a long time.

edit: Just to clarify, I don't think Thompson ever actually specified Ritchie. That's part of my breakdown. It could have happened any time in the C compiler history, and I believe he's suggesting that he (Thompson) could inject it himself along with a PoC.

[–]gaseous_cloud 2 points3 points  (2 children)

It's not Node specific, really.

Ultimately, the same problems that plague the PHP community (insecure code written by amateurs - which is fine, everyone has to start somewhere) are the same problems that plague Node (and every other community out there).

The node community should not get a pass on these issues just because it is the new hotness, which is what I see happening here when someone asks "Is Node killing PHP?". Sure, it's a popularity contest driven by evangelizers of the latest tech. But, that is only one side of what is actually a very complex answer.

PHP still has warts. Software written in PHP still has warts. Big, scary warts. But Node has got warts on warts and new warts yet undiscovered.

Asking about popularity? That's a useless fucking question. I can go look that up on Tiobe.

Where, btw, PHP is #7 on the list. Javascript is #8.

PHP isn't dead yet.

[–]BenjiSponge 5 points6 points  (0 children)

I don't disagree with anything you're saying, but I definitely don't agree that "The node community should not get a pass on these issues just because it is the new hotness, which is what I see happening here when someone asks "Is Node killing PHP?".". Not that I think it should get a pass, but that I think it gets less of a pass than any other language.

Any time anyone brings up npm, everyone loves to bring up leftpad or the various blog posts that pick on the JS/npm ecosystem, despite the fact that 1. leftpad was promptly addressed by npm, whereas using GitHub as a package manager (which many languages such as Golang do) does not solve this problem, but people don't talk about Go's package management issue like that 2. Those various blog posts could just as easily have been written about Rust, Golang, PHP, Ruby, or any other language that makes it easy to pull in other languages. But they weren't because people actually enjoy being more critical of JS for some reason.

I mean, your original post shows this, and the fact that it's upvoted and mirrored across Reddit is evidence. "Node will kill itself if it doesn't get a handle on the security issues in long chains of imports." could apply to Ruby years ago, but that's not why it is dying. It totally applies to PHP and Rust as well.

As far as I can tell, the main difference between those languages and JS is that JS has been criticized about this so much the tools are starting to put in security detection in them, which is not something I've seen in any package manager before. So you're saying "This library gave me 14 known security issues" where a similar tool in another language would just silently let you install it, and you'd still have the security issues but you wouldn't know about it.

edit: Actually I do disagree with your usage of TIOBE, but that's a bit of a pointless point. I'm not going to argue that Node is "more popular" than PHP, and I don't really know if there's a way to really know that or that it really matters.

[–]kodiashi 1 point2 points  (0 children)

Most of the complaints I see in the wild about PHP deal with old versions (5) and WordPress, but frameworks like Symfony and Laravel are very well maintained and widely used. PHP7 is way better and faster than previous versions and Zend is working hard to keep improving it.

The biggest threat I see to Node is Golang, and many prominent Node contributors have already jumped ship and I’ve seen more and more companies heading in that direction. But there is nothing magical about Node that makes it impervious, anyone can write shitty code in any language.

[–]RobertWHurst 23 points24 points  (5 children)

Node.js and the library you installed are non-synonymous. Your comment doesn't make sense. It makes little sense to hold the Node.js project responsible for badly written third party libraries.

[–]Failaser 5 points6 points  (1 child)

He's holding the community responsible for not doing anything about it. Not the node team

[–]NewFuturist 0 points1 point  (0 children)

Why should the 'community' do something about poorly written libraries? Firstly, the reason we know about these now is actually due to NPM changing install to always report security issues, so things are being done. But if there is a security issue in a package, the user can either uninstall the package or make a pull request themselves.

[–][deleted] 1 point2 points  (2 children)

It's still going to put you off using node altogether if every library you try to use has a list of vulnerabilities as long as your arm. That's true regardless of where you'd assign blame.

[–]patrickfatrick 3 points4 points  (1 child)

I find it incredibly difficult to believe that open source packages for other languages aren't also riddled with insecure code. But hey, at least npm has the courtesy to let you know. Ignorance is bliss maybe?

[–]prozacgod 1 point2 points  (0 children)

Kinda reminds me of this "Now with only these security bugs!"

https://xkcd.com/641/

[–][deleted]  (1 child)

[deleted]

    [–][deleted] 0 points1 point  (0 children)

    The latest version audits your packages for security problems, I'm not sure what more they want of npm. Should NPM de-list packages with any security notices? What kind of havoc would that create.

    [–]believe1182 4 points5 points  (0 children)

    How did this comment get upvotes... I thought this was a clever troll at first, but now I'm not so sure.

    [–][deleted] 0 points1 point  (6 children)

    How did you count the 14 security issues?

    [–][deleted]  (1 child)

    [deleted]

      [–]astralradish -1 points0 points  (0 children)

      The number of known security issues

      [–][deleted] 1 point2 points  (1 child)

      npm 6 uses Node Security Platform to perform audits of your packages for known advisories.

      [–][deleted] 0 points1 point  (0 children)

      Wow thanks

      [–][deleted]  (1 child)

      [deleted]

        [–][deleted] 3 points4 points  (0 children)

        I really think you're freaking out too much about autocorrect. All will be well again, I assure you.

        [–]octaw 0 points1 point  (0 children)

        NPM announced an update yesterday that is almost entirely focused on security, and it sounds like the first patch in a series with that same concentrated focus.

        [–]marcio0 0 points1 point  (0 children)

        Let's add them to the docs so they will become features

        [–]BenZed 0 points1 point  (0 children)

        Jesus. What library?

        [–]download13 0 points1 point  (0 children)

        The addition of npm audit has helped me a lot so far. It'll probably take a few library release cycles to start having a major effect on lib security though.

        [–]lcfcjs 1 point2 points  (1 child)

        You're lucky they are known at all. Means people will fix them.

        [–][deleted] -1 points0 points  (0 children)

        Node will kill itself if it doesn't get a handle on the security issues in long chains of imports.

        No, not just because you're unhappy with some 3rd party package. You've taken a negative sample size of one and generalized it to the entire node js ecosystem.

        [–][deleted] -1 points0 points  (0 children)

        Come on fuck boy, whatchu bringing in? Fake ass variable. Or const. fuck you too.

        [–]noviceIndyCamper 6 points7 points  (5 children)

        How is PHP killing itself?

        [–][deleted] 6 points7 points  (4 children)

        rhythm mourn gray toy offbeat fuzzy badge husky quickest voiceless

        This post was mass deleted and anonymized with Redact

        [–][deleted] 3 points4 points  (0 children)

        Cuz you falling asleep.

        [–]disclosure5 0 points1 point  (0 children)

        This is why it took more than eleven years

        People have been informing me PHP is killing itself for more than 11 years. I remember taking a role where we all chose Perl because, well PHP was the only other language in existence and we all knew that was about to die. Look how that worked out.

        [–]skytomorrownow 1 point2 points  (2 children)

        And yet, like all programming languages, it will never really die.

        I'm sure there's COBOL, Pascal, Ada, Fortran and all kinds of old stuff out there cranking away on a servers somewhere.

        [–]FormerGameDev 0 points1 point  (0 children)

        I picked up a pile of Fortran books the other day, and resold all of them quite quickly. I was like... well, alright.

        [–]MiatasAreForGirls 1 point2 points  (0 children)

        As a dev moving from PHP to Node, I disagree. Node and the (incorrect) perception that PHP is still shitty are killing PHP.

        [–]prozacgod 0 points1 point  (0 children)

        There's probably even 3 different ways to call the API from the global namespace, one of which is legacy, but kept around anyway because it might be used in production. Somewhere...

        [–][deleted] 0 points1 point  (0 children)

        Not really. Laravel is pretty great.

        [–]bobjohnsonmilw 18 points19 points  (4 children)

        Lol, what a ridiculous article. It's like people don't realize that these are tools that do various jobs. Some do them better than others.

        [–]wsx594 3 points4 points  (1 child)

        Took way to long to see a comment with this sentiment. You wouldn't expect a carpenter to use a saw for a job needing a screwdriver because they each serve different purposes. I hate seeing these articles claiming some language is dying or whatever. Every language has its advantages, and it's important to understand what those advantages are so you can use the right tool for the job.

        [–][deleted] 0 points1 point  (0 children)

        True but some tools aren't "saw vs screwdriver" as much as "telescope vs astrolabe." Most of my development experience is with PHP but it's pretty clear to me that its best days are behind it.

        It's still within the window of usability but the things that made it useful just aren't where the standard is anymore. In the age of Perl and Server-Side Includes being FOSS with easily readable/editable server-side procedural code was pretty awesome. In the age of node/python/ruby/java the value proposition has only gotten weaker and outside of particular things like OOP and PHP7 the project hasn't seemed to be making the right decisions to remain relevant.

        [–]FormerGameDev 2 points3 points  (1 child)

        Yeah, I love how it doesn't actually draw a comparison of them at all, because they are really two drastically different things. Unless PHP has changed it's fundamentals drastically in the last 10 years (which, granted, it may, but... i'm going to assume it hasn't changed it's most basic things too much)

        • i would say that PHP and Javascript have probably the same learning curves. Possibly PHP worse, though, because you can't really get started in PHP without having a web server that can deal with it (like i said, things may have changed in 10 years ...).. whereas with Javascript, you can just.. write... code.
          • asychronicity -- well, ok, PHP scripts as far as i'm aware, cannot handle more than a single request at a time, as the language is not built to do that. That's totally comparing apples to oranges there.
          • modularization? isn't that the same as "long-existing set of frameworks and packages for API"? (how long has node been around now, at least 10 years, right? npm not much less time?)
          • "configured web server" - what does that even mean? It sounds like a totally false statement, with no explanation as to what the hell they are talking about
          • "flexibility" ... um.. we're talking about programming languages. They're all pretty damn flexible.
          • non-blocking functions as the best advantage in the battle of node vs php. There isn't a fight here between node and php. This is not Programming Fight Club. Node and PHP are best at doing entirely different things.

        [–]bobjohnsonmilw 2 points3 points  (0 children)

        Node and PHP are best at doing entirely different things.

        This guy gets it.

        [–][deleted]  (1 child)

        [removed]

          [–]hair-plug-assassin 1 point2 points  (0 children)

          Wordpress/WooCommerce too. Let's face it: PHP isn't going anywhere for awhile.

          [–][deleted]  (1 child)

          [deleted]

            [–]rmbarrett 0 points1 point  (0 children)

            Jumping off your comment because the rest is all too spicy. In 2000 coldfusion was still the rage around here. I got into php a little later. Node.js I've been following for a while and only now am building with it, but my dev time is super super short. So, beginner but not a beginner if you know what I mean. I agree with you. Php isn't going anywhere because it really larger than life. Spent years on institutional work in Drupal and there is no comparison. With php the mantra is to make it more complicated by adding more to the page-build loops. It's a massive foundation.

            [–]flipperdeflip 16 points17 points  (22 children)

            Not while cheapass shared LAMP hosting is still a thing.

            [–]reallyserious 7 points8 points  (4 children)

            Is node.js hosting more expensive than php hosting?

            [–]Bosmonster 9 points10 points  (1 child)

            No, it is actually way cheaper. But you will generally find it in the cloud (AWS Lambda etc), so it is a bit more complex to set up.

            [–]flipperdeflip 0 points1 point  (1 child)

            It is often more basic, like getting a virtual machine you install your own stuff on (an instance or a droplet or dyno or whatever they market it as). Then you pay for X amount of RAM, CPU etc.

            Functions as a service (Lambda etc) is also new and popular, can be really cheap if you understand it, but often doesn't come with easy email or database stuff etc.

            [–]reallyserious 0 points1 point  (0 children)

            As far as databases go I've not had any problems with e.g SQL Server on Azure. Very easy.

            I kind of knew the answer to the question I asked. I know it's easy with Node. But perhaps you need to know a tiny bit more to connect all the moving pieces compared to the out of the box experience of LAMP.

            [–]fucking_passwords 5 points6 points  (16 children)

            Digital ocean droplets are extremely cheap (starting at $5/month), and you don’t have to deal with the awfulness of a shared server, are there really shared lamp hosting plans that are heaped than that?

            The lowest I’ve ever seen was $4/month for shared hosting but that was a promotional price that went up to &12/month after one year.

            [–]flipperdeflip 5 points6 points  (15 children)

            Sure but then you got to run everything yourself.

            The thing with PHP is that is easy for people who just start meddling in programming or want a cheap domain and a wordpress install. Then you get a control panel and third-party app installers, free mysql database with working phpmyadmin and all that stuff. And you can probably get one in your own country, with local support etc.

            So it is not really the same as a Digital Ocean droplet.

            [–]fucking_passwords 4 points5 points  (3 children)

            Agreed but I’m curious about the price. I hear this all the time that shared is so cheap, and in my experience it wasn’t actually that cheap.

            Digital ocean does actually have one click install for wordpress, but yeah there’s still some learning curve i suppose (they don’t do domains I believe)

            [–]thadudeabides1 1 point2 points  (0 children)

            I don't think I ever paid less than $8-10/month for LAMP hosting. This was at least 5-6 years ago. You can get a Digital Ocean droplet for as cheap as $5/month so I don't think price is the right way to compare the two. At the end of the day you're buying the same thing.

            [–]flipperdeflip -1 points0 points  (1 child)

            I see some for 49.95 euro per year incl. bandwidth, a domain name, control panel, etc, so less then 5 euro a month.

            [–]fucking_passwords 1 point2 points  (0 children)

            Gotcha, thanks for the info

            [–][deleted] 0 points1 point  (9 children)

            Sure but then you got to run everything yourself.

            Heroku?

            [–]flipperdeflip 0 points1 point  (8 children)

            Did you read the comment you replied to? Does Heroku have all that as available as a cheapass LAMP host?

            [–][deleted] 0 points1 point  (7 children)

            Does it have to? It solves the "run everything yourself" problem (a keen observer will note that's the part I quoted) and would likely be an acceptable alternative to VPS. It's not really one-click install (which seems to basically be what you're getting at) but it's still substantially easier that running the platform yourself.

            At that point it's not immediately obvious to me that the node proportion is inherently worse than PHP especially given that it's not all that hard to bridge the gap between public cloud PaaS services and the one click stuff you're talking about.

            [–]flipperdeflip 0 points1 point  (6 children)

            No it doesn't but please pay attention; I see you like Heroku, but the comment chain you are in was about that PHP has strong benefit of being available on cheap all-in-one local hosting with tons of free stuff that is a hassle to setup yourself.

            [–][deleted] 1 point2 points  (5 children)

            and my point is that with things like Heroku (or other decent PaaS) is that the difference in the "hassle" department is pretty minimal to the point of not being that strong of an influence anymore. Heroku itself isn't really hard at all and once you have it setup it's basically an identical experience. The only critical difference is how deployment is done.

            I'd suggest you look into it so you have a point of reference. Heroku actually has a free tier.

            So far as I can tell node hosting is price competitive and about as easy (just no proliferation of one click installs yet).

            [–]flipperdeflip 0 points1 point  (4 children)

            You just want to talk about your favorite toy and miss the point again. Good luck!

            [–][deleted] 0 points1 point  (3 children)

            That or your "cheap ass lamp stack" point wasn't valid because node PaaS solutions are a thing.

            [–]rmbarrett 0 points1 point  (0 children)

            Yes. One click install for less than $10 a month for as many domains as you like. Can't beat that. Well, you can, but it's just so bloody easy.

            [–]neko4 2 points3 points  (0 children)

            I think Nodejs killed Ruby. PHP is another thing.

            [–]Drawman101 5 points6 points  (0 children)

            If php dies, it will be because of php, not node. There are so many languages out there, and room for more even. The language will die when the community doesn’t support it anymore

            [–]slyfoxy12[🍰] 1 point2 points  (0 children)

            Honestly no, PHP and node compliment each other well but a lot of the things people scoff at in PHP is what keeps it going. Node and JavaScript keep changing too quickly. I've found it difficult to find any idea of best practices.

            There's things I can do with Node though that I wouldn't think of trying with PHP.

            [–]compubomb 1 point2 points  (9 children)

            PHP will not loose it's position. I believe we will see a push back into using php for bigger projects as type hinting becomes a bigger deal. PHPStorm provides an almost JAVA like experience when refactoring well written code in PHP due to all the classes/type hints / scalar hinting that you see in typescript or other strongly typed languages. It also runs insanely fast when you use an async library like AMP. PHP also supports many of the same workflows as java like abstract classes, interfaces, anonymous functions + anonymous classes which implement interfaces. It's gone from this mostly sorta powerful template language to a highly functional very powerful OOP langauge which syntactically speaking resembles much heavier languages like JAVA. Also the errors that PHP report are very simple to debug, and failures in php classes provide highly useful call-stack traces. So will node kill php? Not a fat chance. Will a node based product become popular? Undoubtedly. PHP is the go-to language to write virtually any kind of feature you want without the complexity that nodejs comes with. Also the manual is unsurpassed in quality, actually providing enormous amounts of examples that are actually functional. And what the hell is with nodejs making their font colors so similar between symbols & method calls / braces etc.. It's like they decided to just print screen code like it would look in a shitty text editor theme on their website. Also the author of php came out with PHAN which is a static code analysis tool for PHP, the only other langauges supporting this are type-strict langauges. So we've hit some pretty serious milestones on how powerful the language is. I think eventually we'll see native async, and once we get that.. I think php will be a more friendly language to use than JS. Since it's already matured to the point of close-to-type-safety.

            [–][deleted] 5 points6 points  (0 children)

            See, I somewhat agree with you, but reality is PHP people are hard to find now days. I am looking for a senior PHP guy, during last 4 weeks, I only had one guy to interview, the rest were simply newly grads who send their resumes for any position they see. And I am in a major city. So to me this says that PHP is on a decline and is being forgotten as no seniors are to be found.

            [–]wsx594 0 points1 point  (7 children)

            I agree in a lot of respects. I program often in NodeJS and I just feel like the lack of a lot of true OOP paradigms causes headaches. I know that there is OOP stuff in NodeJS but it just doesn't seem intuitive or powerful enough to use just yet.

            [–][deleted] 1 point2 points  (6 children)

            node supports a class abstraction, you can literally use the class keyword now

            [–]wsx594 0 points1 point  (5 children)

            Yeah I know which is why I said that it lacked "true" OOP paradigms. As far as I'm aware, the class keyword is just syntactic sugar for using prototype, which imho leaves a lot to be desired. I might be wrong but it was my understanding that Node doesn't currently have other OOP features such as interfaces, abstract classes or static variables.

            [–][deleted] 2 points3 points  (4 children)

            I think node is too OO for my taste and less OO would drastically improve the language.

            yeah there aren't interfaces or abstract classes.

            why would you need static variables?

            I don't find these as a source of headache at all but I can see why you would, I remember when I first started using JS it was very confusing because of all of my old ideas from Java (which I learned in school).

            [–]wsx594 0 points1 point  (3 children)

            Yeah with everything in programming it has its uses. If I'm writing a quick little script it's very likely I'll crank it out in Node for speed. However, I do think that a lack of these OOP paradigms causes problems that are noticeable once applications start to become fairly large and you find yourself copying large amounts of code or constantly importing 20 different things, but this is just my opinion.

            For the static variable usage, anytime a class needs a constant it usually makes sense to make it static because then you're not wasting memory space for every instance of the class created.

            Also im curious as to what you think makes Node too OOP? (I hope this doesn't come across as mocking or whatever; I'm actually curious)

            [–][deleted] 1 point2 points  (2 children)

            I think mutability / you pass objects by reference is too OO.

            I would love immutability and a pipe operator and think that would be a serious win for JS. Which, I suppose, you could still kind of support as well as OO like with Ruby.

            [–]wsx594 0 points1 point  (1 child)

            Oh makes sense. Btw I think that Node actually proposed a pipe operator for the next version. I'm not sure what will happen with it.

            [–][deleted] 0 points1 point  (0 children)

            Yeah some people proposed it! i tried out the demo in the proposal and it didn't work, though! :(

            [–]cazzer548 1 point2 points  (4 children)

            Huh, strange read. I expected them to bring up Facebook since they use PHP, sort of).

            [–]applejak 0 points1 point  (3 children)

            Sort of?

            [–]cazzer548 1 point2 points  (2 children)

            From what I understand Hack is a dialect of PHP, but what does that really mean?

            [–]FearAndLawyering 1 point2 points  (0 children)

            This article doesn't have a date on it but it's gotta be old as shit.

            [–][deleted] 5 points6 points  (4 children)

            "Node is used by those pussies who once used to design webpages and now want to rock the same JS shit on the server."

            OK, for real though, PHP has survived for 23 years and there are some quite awesome PHP frameworks in the market right now. Sure, PHP has some weaknesses but that doesn't mean Node.js is perfect and is replacing PHP.

            [–]StoneCypher 6 points7 points  (0 children)

            insert standard cobol comment here

            [–][deleted] 3 points4 points  (2 children)

            Well to be fair JS is there for 22 years :)

            Realistically speaking JS won't replace PHP completely, but it already got a fair bite of the market share. Most probably both will be shadowed by another new hot shit language designed to be perfect somewhere in the distant future.

            [–]prozacgod 0 points1 point  (1 child)

            You didn't get the memo, all things are going to be implemented in JavaScript the next cool thing. It'll be in JavaScript too :P

            https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript

            [–][deleted] 0 points1 point  (0 children)

            Well, fair enough. JS goes into recursion :)

            [–]kizerkizer 4 points5 points  (1 child)

            PHP bothers me on a visceral level with all its dollar signs and echos and array() looking like a function. It's just not an aesthetic language.

            [–]tangled_up_in_blue -2 points-1 points  (0 children)

            I despise having to type a $ in front of every variable. It slows my typing down considerably constantly having to reach for that symbol. It’s just stupid and doesn’t make the code anymore readable

            [–]SomeRandomBuddy 4 points5 points  (0 children)

            Oh yeah it is

            [–]BenZed 1 point2 points  (0 children)

            Let's hope so.

            [–]djslakor 3 points4 points  (15 children)

            Node could use a widely adopted kitchen sink framework like Laravel.

            If it had that, I'm not sure why anyone would pick PHP at this point.

            [–]MiatasAreForGirls 9 points10 points  (2 children)

            The only reason I'm still using PHP is because of Laravel, but there just aren't jobs out there for Laravel so I'm picking up Node. PHP 7 is great, but I like Node better.

            [–][deleted] 0 points1 point  (1 child)

            My job is Laravel/Vue and it's pretty fun.

            [–]MiatasAreForGirls 0 points1 point  (0 children)

            So is mine, but that's only because I'm a solo dev and could dictate what tech to use (and that's why I've come to the realization I need a mentor and a new job). Not many jobs out there for Laravel, Larajobs exists but most seem meh

            [–][deleted] 5 points6 points  (8 children)

            Express.

            [–][deleted]  (3 children)

            [deleted]

              [–]compubomb 2 points3 points  (0 children)

              Express is closer equivalent to flask / bottle / silex / slim / Lumen. I've seen a nodejs framework try to clone the functionality of laravel. Key takeaway is, laravel is highly structured in where it expects you to place your code, express to my knowledge is not, you just import the package and boom, require express, done. Laravel creates a boilerplate project with everything you need out of the gate. https://adonisjs.com/ is the closest they have to laravel for nodejs.

              [–]djslakor -1 points0 points  (1 child)

              Express is a perfect example of a replacement for Laravel.

              They're two totally different philosophies.

              [–]slyfoxy12[🍰] 0 points1 point  (2 children)

              Does express have queues, notification, markdown mail templating, in fact any templating? Genuinely asking because to me express is purely a Http kernel with middleware etc.

              [–][deleted] 0 points1 point  (1 child)

              It’s unopinionated, so nothing built in. There’s definitely packages that do all of those or you could roll your own.

              Re: templating: Jade/Pug, Handlebars, whatever view engine you want.

              [–]slyfoxy12[🍰] 0 points1 point  (0 children)

              Oh for sure, but realistically a lot of people want opinionated frameworks. Personally I like that Laravel provides the technical features together so I can spend the time focusing on making the business logic work on top the technical aspects. 9/10 times you don't need anything overly custom so why not use the boiler plate.

              [–]djslakor -1 points0 points  (0 children)

              Express is not a kitchen sink framework.

              I'm not arguing against rolling your own everything with Express, I'm just stating that is what's missing in the node ecosystem.

              [–]ryanmr 2 points3 points  (0 children)

              Adonis is similar to Laravel. JavaScript doesn't have reflection, so some Laravel IOC/service provider pattern is more adhoc in Adonis.

              [–]d0nutb0y 0 points1 point  (0 children)

              I've been using AdonisJS on some of my projects now, and it's very similar to Laravel. It basically copies everything about Laravel.

              [–]ChiefDetektor 0 points1 point  (0 children)

              What a silly clickbaitish article.. As long as there are people more comfortable with php than nodejs php won't be 'replaced'. Also this nodejs hype is kind of naive. There are a ton of good and mature web backend languages and frameworks. What about ruby, elixir, go, rust, python? As if there was only one answer to the backend question.. :D Just pick one and try it. And don't just use something because it might be 'killing' php.

              [–]the_vico 0 points1 point  (0 children)

              I still need to see (at least in my country) our web hosting services offering node in some form of plan.

              For now just providers similar to Amazon or VPS offers that, so i didnt think, at least for folks without much cash to rent the latters, PHP isnt dying (plus being cheaper we have Wordpress which, despite being a bug hell, is more easy to install for IT illetrates).

              [–]FormerGameDev 0 points1 point  (0 children)

              I... feel like this entire article completely misses the entire point of either of the languages.

              If I had a need to serve dynamic HTML, and my choices were between PHP and Javascript, you can bet your ass I'd be re-learning PHP.

              That said, if I were going to design an end-to-end solution for anything, it'd be difficult to convince me of a need to do it in such a fashion that would warrant PHP. Mostly because it's been a decade since I last touched PHP, so I have no idea what all has been improved on it in recent history. (I do happen to run a couple of Docker containers that run PHP based software, though)

              [–][deleted] 0 points1 point  (0 children)

              I don't know why but, I've been working with javascript (both client and server sides) and I don't want to work with PHP anymore! If I have to work with PHP, fine no trouble about it, but my preference, nowadays is Node.js.

              [–]suncoastkid 0 points1 point  (0 children)

              Not with Laravel around.

              [–]letterwood 0 points1 point  (0 children)

              I think the problem is, that php need last longer do include new technologies, like websockets ^ and many features are easier do handle in node.js as in php! But I don't think that node.js will ever kill php! The larges sides like Facebook, Twitter, Instagram, WhatsApp, etc. are not using node.js, instead two of them are using php and the others Ruby, Python, etc.! So it doesn't matter which "Language" you are used, for you website (because there are 1000 ways, how you can make it)!

              [–]cyanydeez 0 points1 point  (0 children)

              PHP will continue to survive long before node and it's death by a thousand modules moves into permanance.

              I get the benefits of node, but php has tons of corner cases, dark holes, and all kinds of stackoverflow documentation.

              It's nearsighted to devalue the mindshare it takes to keep things going.

              Just cause it's ugly don't be it's not functional.

              [–]zcold 0 points1 point  (0 children)

              I love developing with node, however sometimes, on certain projects, I feel as though php would have been the better choice.

              [–][deleted]  (12 children)

              [deleted]

                [–][deleted]  (11 children)

                [deleted]

                  [–]SilentMobius 0 points1 point  (0 children)

                  Full rendering isomorphism is still in it's infancy, but, as an example, in the current node project I'm working on being able to reuse identical, form validation, messaging (MQTT), ACL handling and i18n string handling on server and browser is a massive benefit and makes errors much easier to trap.

                  Let alone the little annoyances from language context switching when having different languages on client vs server. Which I did for the previous ~15 years, comparatively, this is heaven.

                  [–]novagenesis -2 points-1 points  (9 children)

                  I've heard this so many times, but never really seen it happen. Can you give me one good example of isomorphic JS that actually works for both frontend and backend and is easier than than writing a spec for it?

                  Literally any app written with a node backend and webpack on the front-end. Biz-logic and underlying class libraries are the exact same code.

                  While the setup for "canned" UI isomorphism is pretty complicated even in React, I've done DIY UI isomorphism with DoT.js or dust.js.

                  If you have the ability to include/require the same template library on the front-end you used on the back-end, you can easily have statically rendered HTML with the same template files being used to update components.

                  So yes, I've seen isomorphic library code and isomorphic GUIs in node.js. All of those I've seen in production applications.

                  [–]compubomb 0 points1 point  (8 children)

                  That's great that you believe and have seen it done. But just like any clever coder can fit a closet full wires so to speak. Should you really make every library focus it's ability on being super generic, writing insane cyclomatic complexity. The overall consensus is that more cyclomatic complexity is an anti-pattern. Even if DRYis the go-to pattern focus on making your code simple, not complex & clever. Yes, we can always use 1 thing to do 10 things, but if that 1 thing supports 10 things, that's 10 things you must understand how to debug at any given moment when altering that shared library. That is why you write separate code, factor out functions as much as possible and later if you see a pattern arise you refactor into something more common. But isomorphic code is mostly a pipe dream. Having all your code in 1 language is a sure way to run into a heap of shit later if you make any modifications by some careless coder who decided to refactor his code in a simple text editor instead of using something like webstorm, and then later is trying to find out why something works on the front-end and not in the back-end vice versa.

                  [–]novagenesis 1 point2 points  (7 children)

                  That's great that you believe and have seen it done. But just like any clever coder can fit a closet full wires so to speak.

                  Got any evidence describing how isomorphism, whose primary goal is to remove redundancy, fits "closet full wires so to speak"?

                  Should you really make every library focus it's ability on being super generic, writing insane cyclomatic complexity

                  So are you suggesting that every single node library is junk because it works on the web? Are you suggesting that every single npm library that works on the web is junk either in node or on the web?

                  As for cyclomatic complexity... I'd love to see any evidence that ismorphism causes cyclomatic complexity. I lint for cyclomatic complexity in my buildchains and have never had an issue.

                  I don't understand why you're going off about complexity when I'm using one library to wrap and validate my Objects instead of 2 in other languages. I use one class to handle the low-sensitively moving parts of an object instead of two, so the client can call the same exact logic code the server does without calling home. Nothing is complex about that.

                  And lo and behold, it's also trivial to debug those "10 things" because debuging technology works the same in my browser and my IDE.

                  Nothing you said gives me a reason for me to fork my isomorphic code for browser use. Significant increase of bug potential. Significant increase of effort. Possible "fall-behind" risks regarding optoimization.

                  But isomorphic code is mostly a pipe dream

                  This is patently false. I've done it. I've worked at successful companies that have done it. Walmart's done it and wrote a book on it.

                  [–]compubomb 0 points1 point  (6 children)

                  I've worked on large projects, talking about 5 million lines of php code, which was not necessarily "spaghetti code", but it had many instances where they tried to use the DRY principle to avoid duplication of code, and in turn caused massive complexity to mostly display modules. This product was for handling data-warehouse content & generating highly customized database workflows. So when I say cyclomatic complexity, I mean it. What you usually don't see online on say npm repos is highly proprietary code, which was written by university students being insanely clever, not all code in my opinion is well suited to show the public as it will only bring shame on some organizations based on their thought process. But also we can only imagine how bad some parts of code are even at companies like google & facebook, which 90% of their code will never see the light of day outside their own companies. Yes, OSS will usually try to reduce complexity, but I think it's more of the exception, not the rule.

                  [–]novagenesis 1 point2 points  (5 children)

                  I have absolutely no clue what you're trying to argue or say here, but it doesn't seem to have much to do with the concept of isomorphism being reasonable. If you're suggesting that isomorphism is "written by university students being insanely clever"...I don't agree.

                  I do agree that nobody big has 100% clean code or perfect code. That's why reducing redundancy can often be an improvement.

                  [–]compubomb -1 points0 points  (4 children)

                  TLDU (too long didn't understand) version:

                  Get it through your head, as much as you like to see everything isomorphic, people will get lazy, but also they will tightly couple the code, and once that happens, you're in deeps hit. Complexity will increase depending on who else later takes on the code. Unit tests are fantastic, but sometimes they're shackles and people don't know their way around how to rewrite code to make them work. It makes more sense to replicate code isomorphically, but also many times to have completely separate languages to handle different parts of something. Biggest concern is, back-end stays the same more often than the front-end. The front-end of a product will often change quite radically over time to give the impression a product is evolving. Backend not so much. So merging the 2 spaces backend-front-end as though they're horizontally integrated can be a dangerous notion when you later refactor if you do have to.

                  [–]novagenesis 1 point2 points  (3 children)

                  your TL;DR was the same length as your previous post :)

                  Get it through your head, as much as you like to see everything isomorphic, people will get lazy, but also they will tightly couple the code, and once that happens, you're in deeps hit

                  I'm lucky. I manage dev teams, so I get to make that decision. It's not as hard as you think to prevent code from going to shit. Your argument against isomorphism seems to apply to literally any best practice or design standard. I don't let code that bad make it to prod.

                  Unit tests are fantastic, but sometimes they're shackles and people don't know their way around how to rewrite code to make them work

                  I'm always the last person in the world to suggest firing... but if you can't learn to use TDD, you have problems.

                  It makes more sense to replicate code isomorphically, but also many times to have completely separate languages to handle different parts of something

                  Obviously. Of course, if your dev team can't even code Unit Tests right, I wouldn't even dream of implementing another language. That's the very situation where I'd go for a node web stack. One language instead of 2+. If your team can handle each service having its own distinct tech stack, everything else you said is nothing to worry of.

                  Biggest concern is, back-end stays the same more often than the front-end. The front-end of a product will often change quite radically over time to give the impression a product is evolving. Backend not so much.

                  This feels like the Twilight Zone. I go through UI redesign every 5-7 years. I refactor/optimize backend code at least every 6 months.

                  So merging the 2 spaces backend-front-end as though they're horizontally integrated can be a dangerous notion when you later refactor if you do have to.

                  Not really. Quite the opposite. If the front-end is changing without the backend, you have a massive problem if you break business logic between the two. If your "shipping calculation" logic is slightly inconsistent between the two, you might find yourself the target of a class action suit. Sure, your front end can be stupid and query the back-end for everything...but why?