DEV Community

Discussion on: The most important lesson that the success of JavaScript has taught us

Collapse
 
redaalaoui profile image
Réda Housni Alaoui • Edited

IMO, it is more basic.
Javascript boosted in popularity thanks to the web. If you want to build webapps, you have simply no other choice.
I think this langage is a pill of crap mostly because it lacks typing. Therefore all my projects are written in TypeScript.

Collapse
 
portela828 profile image
Flavio Portela • Edited

Javascript boosted in popularity thanks to the web.

Exactly, it is accessible because JS is in web browsers.

Collapse
 
yousafsyed profile image
Yousaf Syed • Edited

Incorrect, javascript boasted after nodejs.
Javascript is destroying bigtime on backend and people who do use nodejs are one the most sophisticated programmers out there.

NodeJS is one the most popular choice when it comes to microservices, realtime-time services, services with high I/O , streaming, proxying and specially when you are working with NoSQL/Object store there is no better choice than nodejs

Collapse
 
xicarus profile image
Sergiu-Lucian Petrica • Edited

What is Javascript destroying in the backend? All I see in 2018 is people realizing that they don't care about Node's asynchronous nature in most web projects, thus minimizing Node's expansion: w3techs.com/technologies/details/w...

And in the cases where you care about non-blocking IO, the PHP community has a solution available: reactphp.org/

Meanwhile PHP is easier to set up, easier to learn and has a far more mature ecosystem than Node does. There's just no reason to go towards Node if you want a CMS for example, and Laravel is also one of the best frameworks in existence. These things actually matter more than a few performance benchmarks or made-up scalability concerns which can ultimately be solved (see Facebook), especially since PHP7 and ReactPHP exist.

If you don't want PHP, you have Python which is a joy to code in and is one of the most coherent modern languages. It's immensely helped by the likes of Django and Flask if you want to write web apps, those are some seriously good frameworks. Maybe it doesn't have such a rich assortment of CMSs but it's a seriously strong alternative.

Java is also a very strong contender when it comes to web services. I personally don't like it, but nobody can deny its strength.

Your opinion that Node is destroying everything in the back-end is, as a result, false. Node has immensely strong competition and has barely managed to dent the back-end marketshare.

"people who do use nodejs are one the most sophisticated programmers out there."

This is the most useless and biased piece of text in this whole comment section.
A little advice: the web space moves really fast, it's an ill act to fanboy over one technology like you're doing right now.

Collapse
 
redaalaoui profile image
Réda Housni Alaoui

people who do use nodejs are one the most sophisticated programmers out there.

That is fanboy talk.
NodeJS is crushing nothing.
It is not used in most of the tech companies.

Please know that I saw your comment part questioning my programming capabilities before you erase it.

I doubt your credibility as a programmer as you use typescript when you have es6

I contributed to numerous open source projects among them Hibernate, Chrome, Spring and Maven.
PTAL github.com/pulls?utf8=%E2%9C%93&q=...
But maybe you googled me after posting your comment.
So I think I am entitled give an opinion on the subject.

Whatever the context, we should try to question the hype.

Last week, while every hipster was crying on the roof that Gradle >>> Maven, we discovered that Gradle was not so great.
Gradle support of Java 9 (started in 2016) is still experimental and buggy. By default, Gradle log output give zero information in case of failure. You cannot debug your Gradle script from IntelliJ.

Docker is another type. I think Docker is great, but not being able to start a container as the current user without scripting it is just lame.

I tried node as backend on little projects.
I think node is way behind JVM in the backend land because:

  • The ecosystem is not mature
  • Monitoring/profiling is not mature
  • The single threaded aspect is just an issue more than anything else
  • javascript (can be fixed with TS)
  • if you want to go all async, you can use Vert.x

But I enjoy building node CLI tools. With TS. I use it to build frontends. With TS.

At work, our main soft is a Java project made of 19 Millions lines of code. Can you imagine that with a weak typed langage like Python, Javascript or Ruby? You may answer microservices. But even a microservice have a few thousands lines of code.

IMO, weak typed langage are good for prototyping and other disposable projects.

Thread Thread
 
yousafsyed profile image
Yousaf Syed

Yes, I have changed my bad wording about you and its not because I googled you, instead, I realized it was personal and I am sorry about that.

I have never said Javascript is the best language when it comes to the language itself, I am not a NodeJS developer, I am an architect whose primary job is to work on the bleeding edge technologies, researching and optimizing the business on the highest scale in the ticket industry to handle millions of transactions per minute, my team manages hundreds of services and microservices if not thousands.

We have scaled up applications written in PHP and NodeJS, Python and Java and guess what? Which language has the microservices which are easiest to scale to handle millions of requests? Answer "NodeJS"

When I said people who work on NodeJS are one of the most sophisticated programmers because they are able to write amazing services even with the crappiest nature of the Javascript.

You don't agree with me that it's really making a huge dent in backend market shares while we are on the post which talks about the popularity of NodeJS.

You may answer microservices. But even a microservice have a few thousands of lines of code.
Yeah ofcourse I would have said that but whats wrong with 2000 lines of code in NodeJS?

I agree with first two points its not so mature as Java and its obvious, but single threaded nature of NodeJS forces you to think out of the box when desiging highly scale architectures, and its obviously not designed for complex computations, what its best is I/O primarily and you should consider something else when you want todo multi threading or complex computing.

if you want to go all async, you can use Vert.x why not scala, golang or rust ? they have a bigger community than vert.x

Docker is another type. I think Docker is great, but not being able to start a container as the current user without scripting it is just lame.

It is an uninformed comment from you about Docker. It is not designed for that and it has no intentions in doing so. Docker/Containerizations solves a bigger problem in software delivery than running a container with the current user in your host. If you are trying todo so, it's fundamently incorrect and an antipattern.

IMO, weak typed langage are good for prototyping and other disposable projects. Absolutely agreed, but you can always find exceptions and write easy microservices that can scale to infinitly with a minimal effort, at the end of the day its all about the business who does not cares about any langauge but time to market,stability and scale.

We should choose what's the best option given the parameters by business, and not because we have an opinion or love for a tool.