Why you Shouldn't use NODE JS in 2023

Stefan Mischook
10 Nov 202307:41

Summary

TLDRIn this video script, the speaker shares a personal journey from using Node.js to preferring PHP for its stability and reliability. They criticize Node.js for its brittle package management, which can lead to unexpected app failures due to dependency updates. The speaker advocates for PHP, especially for small to medium web app development, praising its stability and the conservative approach of the PHP community to breaking changes. They also touch on the importance of gaining practical experience through small projects to increase one's value as a developer.

Takeaways

  • 🍷 The video script likens the value of the discussed content to wine, suggesting it improves with time.
  • 🔧 The speaker used Node.js for three years as a junior developer but switched to PHP due to its stability.
  • 🛠️ The speaker prefers PHP for its stability and reliability, criticizing the need to frequently update backends with Node.js.
  • 🔄 The speaker criticizes Node.js for its package management, which can lead to apps breaking due to unforeseen updates.
  • 🏗️ The importance of software stability is emphasized, aligning with principles of object-oriented programming.
  • 🔗 The speaker advises against frequent use of inheritance due to its potential to create brittle code structures.
  • 📦 Node.js is compared to having a brittle structure due to its dependency on packages that can break the application easily.
  • 🔑 The speaker's main argument against Node.js is its package management and the resulting instability.
  • 🚀 Node.js is recommended for high concurrency applications, but the speaker suggests this is a rare requirement.
  • 🌱 The speaker recommends PHP for small app development due to its lightweight, efficient, and stable nature.
  • 📈 PHP is described as having evolved significantly, with versions 7 and 8 being particularly stable and enterprise-ready.
  • 🛑 The speaker concludes by advocating for choosing the right tool for the job, highlighting the pros and cons of different technologies.
  • 📚 Uncle Steph offers a mentoring program aimed at teaching the fundamentals and providing practical experience for aspiring developers.
  • 💼 The importance of gaining real-world experience through small projects is stressed as a means to increase job prospects.

Q & A

  • What is the main message the video creator is trying to convey about Node.js?

    -The main message is that Node.js can be unstable due to the constant need to update and manage its packages, which can lead to applications breaking unexpectedly.

  • Why did the individual in the comment switch from Node.js to PHP?

    -The individual found PHP to be more stable and solid, avoiding the need to frequently change the backend or fix issues with npm packages.

  • What is the video creator's view on the importance of software stability?

    -The video creator emphasizes that stability is one of the most important aspects of software, as it ensures that applications do not break unexpectedly.

  • What is the fundamental principle of object-oriented programming mentioned in the script?

    -The fundamental principle mentioned is that the components of software should be independent and not influenced by other objects, which is why inheritance should be used sparingly.

  • Why does the video creator advise against using inheritance frequently in object-oriented programming?

    -Using inheritance can introduce a framework that is open to breaking things, as changes in the base object can lead to a cascade of breaking code in inherited objects.

  • What is the video creator's opinion on the use of Node.js in high concurrency applications?

    -The creator acknowledges that Node.js has its uses, particularly in high concurrency applications, but notes that such use cases are rare and not applicable to most developers.

  • What are the video creator's reasons for preferring PHP for small app development?

    -The creator prefers PHP for its stability, lightweight nature, efficiency, and the conservative approach of the PHP community towards breaking old code.

  • What does the video creator suggest as a strategy for becoming a professional developer?

    -The creator suggests learning the fundamentals, doing two to three small projects to gain experience, and then using that experience to land a job and increase one's value as a developer.

  • What is the mentoring program mentioned by the video creator?

    -The mentoring program is a boot camp that teaches the fundamentals needed to become a professional developer and helps participants gain real-world experience through small freelance projects.

  • Why does the video creator compare the PHP of today to an outdated iPhone 1?

    -The comparison is made to illustrate that the negative perceptions of PHP from the past are outdated, and that modern PHP, especially since version 5.6, is stable and enterprise-ready.

  • What is the video creator's view on the importance of experience in becoming a developer?

    -The creator believes that experience is crucial, as it increases a developer's value and chances of landing a job, and that creating one's own experience through small projects is essential.

Outlines

00:00

🍷 The Evolution of Software Stability: Node.js vs PHP

In this paragraph, the speaker reflects on their personal journey from using Node.js to PHP, highlighting the stability issues they encountered with Node.js. They discuss the unpredictability of package updates and the resulting instability in applications, which contrasts with their positive experience with PHP. The speaker emphasizes the importance of software stability and criticizes the frequent need for backend changes in Node.js. They advocate for the principles of object-oriented programming, such as designing by interface to avoid brittle code, and express their preference for PHP due to its reliability and conservative approach to updates.

05:00

🛠️ Choosing the Right Tools for Development: PHP's Advantages

The speaker delves into their preference for PHP over Node.js, particularly due to PHP's solid and dependable nature. They mention the creator of Node.js, who also stepped away to create Deno, implying a shared sentiment regarding Node.js's limitations. The paragraph discusses the importance of selecting the right tools for different situations and the speaker's choice of PHP for its simplicity and reliability. The speaker also shares insights from their mentoring program, emphasizing the value of gaining practical experience through small projects to enhance one's skills and employability as a developer.

Mindmap

Keywords

💡Node.js

Node.js is an open-source, cross-platform JavaScript runtime environment that executes JavaScript code outside a browser. It is used for server-side applications and is known for its non-blocking, event-driven architecture. In the video, Node.js is criticized for its package management system, which can lead to instability due to updates in dependencies that may break the application without the developer's knowledge.

💡PHP

PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language. The video script praises PHP for being 'stable as a rock,' suggesting that it is a reliable choice for development because it does not require frequent backend changes and is less prone to the issues associated with Node.js's package management.

💡Package Management

Package management refers to the collection of tools and processes used to install, update, and manage software packages. In the context of the video, it is a point of contention, particularly with Node.js, where the speaker argues that the package management system can lead to brittle code and frequent, unanticipated application failures.

💡Brittle Code

Brittle code is code that is prone to breaking due to changes in its environment or dependencies. The term is used in the video to describe the fragility of Node.js applications that rely heavily on external packages, which can be updated in ways that cause the application to fail unexpectedly.

💡Object-Oriented Programming (OOP)

Object-oriented programming is a programming paradigm based on the concept of 'objects', which can contain data in the form of fields (often known as attributes or properties) and code in the form of procedures (often known as methods). The video mentions OOP as a fundamental approach to creating stable software components that are independent of external influences, contrasting it with the instability caused by Node.js's package management.

💡Inheritance

Inheritance is a key concept in object-oriented programming where a class (or object) can inherit properties and methods from another class. The video script warns against overusing inheritance as it can introduce instability, as changes in the base class can lead to a cascade of issues in derived classes, similar to the problems with Node.js's package updates.

💡High Concurrency Applications

High concurrency applications are those that can handle a large number of simultaneous operations or requests. The video mentions that Node.js might be necessary for such applications, which are rare, and contrasts this with the more common need for stable, lightweight solutions like PHP for web app development.

💡PHP 5.6, PHP 7, PHP 8

These are versions of the PHP language. The video script indicates that PHP has evolved significantly, with PHP 5.6 being a stable version, PHP 7 becoming 'super solid', and PHP 8 being enterprise-ready with enhanced capabilities. This progression is used to argue that PHP has overcome past criticisms and is now a robust choice for development.

💡Mentoring Program

A mentoring program, as mentioned in the video, is a structured initiative aimed at guiding individuals in their professional development. The speaker, Uncle Steph, describes his mentoring program as focusing on the fundamentals and practical experience through small projects to prepare individuals for professional development roles.

💡Fundamentals

In the context of the video, fundamentals refer to the core knowledge and skills necessary for a professional developer. The speaker emphasizes the importance of mastering these basics before moving on to practical projects, which is a part of his mentoring program's approach to prepare individuals for the workforce.

💡Freelance Projects

Freelance projects are short-term work assignments done by individuals or businesses for clients, often on a contract basis. The video script suggests that completing 2-3 small freelance projects after learning the fundamentals can significantly increase a developer's value and job prospects, providing practical experience and demonstrating the ability to execute projects on time.

Highlights

Commenter's preference for PHP over Node.js after three years of use.

PHP is described as more stable and solid compared to Node.js.

The frustration with constantly changing backends and manually fixing npm packages.

Software stability as a fundamental principle in object-oriented programming.

Inheritance as a rarely used structure due to its potential to introduce brittleness.

Node.js's package management leading to apps breaking due to external updates.

The importance of creating independent software components.

Node.js's Achilles heel is its brittleness due to package management.

High concurrency applications as a rare case for using Node.js.

PHP's lightweight and efficient nature making it ideal for small app development.

PHP's conservative approach to not breaking old code.

The evolution of PHP from version 5.6 to 8, becoming enterprise-ready.

All languages having their pros and cons, and being good in certain situations.

The reinvention of brittle code despite object-oriented programming's intent to prevent it.

Uncle Steph's mentoring program focusing on fundamentals and real-world projects.

The importance of getting into the workforce and gaining experience quickly.

The value of doing small freelance projects to build a developer's portfolio.

The role of a mentor as a guide, not a doer, in a developer's journey.

The necessity of creating one's own experience in software development.

Transcripts

play00:02

how you guys doing so uh this is the

play00:05

long version of a vlog I put out well

play00:07

video I put out a couple days ago so I'm

play00:10

just going to read this comment that was

play00:12

uh placed under one of my videos that I

play00:15

put out maybe three years ago anyway

play00:17

here it is this video gets old like wine

play00:20

I was using nodejs during three years as

play00:23

a junior developer one day I decided to

play00:25

try PHP just to see how it worked since

play00:29

then I prefer PHP for development so

play00:31

much stable so much more stable and

play00:34

solid as a rock I don't need to keep

play00:36

changing you don't need to keep changing

play00:39

your backend every year or fix man

play00:41

manually dirty npm packages that was and

play00:46

has been my main message and this

play00:48

individual figured it out for themselves

play00:50

that's been my main message about node

play00:52

for years now it's all the packages that

play00:55

brittle back drop of the

play00:58

packages and the way way it works uh you

play01:01

can see your app break unbeknownst to

play01:04

you for no apparent reason because

play01:06

somebody decides they're going to update

play01:07

a package

play01:08

somewhere this is a nightmare one of the

play01:11

most important things about software is

play01:13

that it is stable a principle V

play01:17

fundamental object oriented programming

play01:19

is that the objects that you build the

play01:22

components of your software be

play01:24

independent of influence from other

play01:27

objects around it so for example in

play01:29

inheritance which is actually a

play01:31

fundamental structure of O is something

play01:34

you should only use very rarely because

play01:35

when you use inheritance you're

play01:37

introducing a um a framework that is

play01:42

Britto that is open to breaking things

play01:46

that's why I always say designed by

play01:47

interface what do I mean by open to

play01:49

breaking things if you create a base

play01:52

object and you inherit from that object

play01:56

uh basic functionality methods in that

play01:58

object for example and if you change the

play02:00

base object because of you know things

play02:02

happen multiple coders and then you're

play02:04

going to have a Cascade of breaking code

play02:07

node.js is kind of like that with its

play02:09

packages where you can start leveraging

play02:12

all these packages everywhere and the

play02:15

way it's structured things could break

play02:16

pretty easy it's very brittle brittle

play02:18

code is really bad and one of the

play02:21

reasons that object-oriented programming

play02:23

was invented was to invent Britto code

play02:25

so of course us inventive developers

play02:28

reinvented different ways of becoming

play02:30

Britto even with o based infrastructures

play02:33

so anyway there you go a node has its

play02:37

uses but it's big Achilles heel it the

play02:40

big problem that it has as I mentioned

play02:42

in my short is that it is Britto because

play02:46

of the way they manage the uh packages

play02:49

and so apps that uh you've created can

play02:52

break because somebody changed something

play02:55

somewhere one of your dependencies not

play02:58

good not good that that is the number

play03:00

one reason and the number two reason and

play03:02

the number three reason I decided

play03:04

against using node unless I absolutely

play03:06

had to and where would you have to use

play03:08

node is in high concurrency applications

play03:11

this is exceptionally rare most of us

play03:14

are not building the next Netflix or

play03:17

Facebook or something so I wouldn't be

play03:19

too concerned about that my number one

play03:21

choice is uh for small app development

play03:25

web apps of PHP because it's small it's

play03:28

lightweight it runs very L efficiently

play03:30

it's solid as a rock you won't have

play03:32

things breaking on you 6 months later

play03:34

for no given reason uh they're very

play03:37

conservative in PHP world with regards

play03:39

to Breaking old code if you've heard bad

play03:43

things about PHP it's because you live

play03:45

in

play03:46

1998 or 1996 perhaps and you still think

play03:50

that PHP from that time is the PHP of

play03:53

today it'd be like looking at iPhone 1

play03:57

and think thinking that oh look at how

play03:59

bad this iPhone 1 is compared to the

play04:01

brand new Samsung phone well yeah you

play04:03

can't compare 15 20-year-old languages

play04:08

to what's going on today PHP since 5.6 I

play04:11

would argue is very stable uh it went

play04:15

4 php7 became super solid and PHP 8 is

play04:19

Enterprise ready it's got some

play04:20

capabilities it's really up there now

play04:23

that all

play04:24

said as I've said in many videos all the

play04:26

languages are pretty good these days

play04:28

even though uh node.js

play04:31

Pon Jango Java spring boot if you have

play04:36

uh lots and lots of time on your hand

play04:37

Java spring boot uh

play04:40

c.net uh PHP laravel PHP Symphony even

play04:44

code igniter which is a PHP framework

play04:46

that was the pro predominant one and it

play04:49

became uh anyway it lost its uh Mojo but

play04:54

apparently it's coming back I don't know

play04:55

I haven't looked at in years so I don't

play04:57

know and node but again use node

play05:00

Lo properly again that package

play05:02

management thing is a huge thing that

play05:04

makes me not want to get near it and I

play05:07

stand in Good Company the guy who

play05:09

created node he ski out out of the node

play05:12

world as well I think he created

play05:13

something called Deno I haven't looked

play05:14

at that as well anyway most of these

play05:17

products they come with their pros and

play05:18

cons well they all do come with their

play05:20

pros and cons some and some will be good

play05:22

in certain situations some will be good

play05:23

in other situations I leave it up to you

play05:26

to choose for me I like solid Dependable

play05:28

easy simple that's why I go with PHP

play05:31

anyway that's it that no's dirty secret

play05:34

the packages evil Britton not good all

play05:38

right I'm Uncle Steph I teach people out

play05:40

of code I Mentor people I have a boot

play05:42

camp I call it the mentoring program

play05:43

because it's different from any other

play05:45

boot camp it teaches you all the

play05:47

fundamentals you need to get your foot

play05:50

in the door as a professional developer

play05:52

my thing about becoming a pro developers

play05:54

is but you got to get that you got to

play05:56

get into the workforce as quickly as

play05:58

possible you need to get that first job

play06:01

the way we do it in the mentoring

play06:02

program once people cover the

play06:03

fundamentals we have them go out there

play06:05

do two to three projects uh little free

play06:08

freelance projects so you can get their

play06:10

hands dirty with real code could be

play06:12

simple things put up a simple e-commerce

play06:13

shop install WordPress get that set up

play06:16

uh set up somebody's Shopify system uh

play06:19

so on and so forth so doesn't really

play06:21

matter because a big part about being a

play06:22

developer is being able to assess out

play06:25

requirements communicate with uh the

play06:28

stakeholders uh execute on projects on

play06:31

time that's that's really the key so if

play06:33

you follow that program whether with me

play06:36

or otherwise learn your fundamentals go

play06:38

out do two to three small projects when

play06:41

you've done that your value as a

play06:44

developer will Skyrocket so that means

play06:46

your chances of Landing a job and it's

play06:48

going to increase quite a bit experience

play06:51

is everything so you create your own

play06:53

experience if you're asking oh I wonder

play06:55

if if Uncle st's mentoring program do I

play06:58

give you those contracts no I don't

play07:00

because part of being a professional is

play07:03

being able to go out there and find

play07:05

contracts but we help you there we

play07:06

support you there we Mentor you just

play07:08

like a coach doesn't play the game for

play07:11

the athlete the coach directs the

play07:13

athlete in the right direction to save

play07:15

him up a lot of time not make stupid

play07:16

mistakes anyway that's it thanks for

play07:19

watching I'm Uncle Steph

play07:21

[Music]

play07:28

byebye

play07:39

l

Rate This

5.0 / 5 (0 votes)

相关标签
PHPNode.jsSoftware StabilityPackage ManagementDevelopment DebateBackend ChoicesProgramming PhilosophyObject-OrientedInheritance IssuesCode BrittlenessDeveloper Mentorship
您是否需要英文摘要?