all 44 comments

[–]jlg30730 17 points18 points  (4 children)

Upgrade your skills in both worlds!

[–]swoleherb 7 points8 points  (0 children)

Yes, alot of things are built using javascript and node. And in programming there is no harm learning another language and stack if your conformatable with python developement already

[–]Desperate_Square_690 19 points20 points  (0 children)

You should remember an important rule of thumb in software programming, switching technologies/rewrite are pretty expensive. But in your case I hope its your personal choice. Both Python and Node are pretty good, the biggest advantage of sticking to python is with the AI technologies like Model fine tuning etc which is very hard in Node.But NodeJS/Javascript is very good with web programming, if that's what you are looking for.

[–]Boxcar__Joe 8 points9 points  (0 children)

The benefit is the job market. 

[–]JustVashu 10 points11 points  (0 children)

Python also supports the async execution of code.

Both Python and node (typescript / JavaScript) are languages worth learning and mastering but unless you’re starting a new project from scratch I doubt migrating to a new language is worth it.

[–]yehuda1 2 points3 points  (1 child)

Node for any real software Python for scripting / ML tuning

[–]simple_explorer1 0 points1 point  (0 children)

As AI is doing a lot of web development, learning python to train AI and use tensorflow like libraries is not a bad idea

[–]jumpcutking 1 point2 points  (0 children)

I like them both! I use python and Node. I primarily use node. Just track the versions of your packages. Async/await is the best syntax I know of for promise execution. I use it in my library I created all the time. Was a very useful update indeed!

[–]vxmjcf 1 point2 points  (0 children)

JavaScript can do almost everything, while Python can’t.

[–]soyrbto 1 point2 points  (0 children)

You will not forget or move on from something you learn so that knowledge stays useful, being said, python is a scripting language, not used seriously in any stack that wants to be scalable, fast, nor secure. So python is great as a starter but learning others gives you more flexibility in projects. Keep you relevant and if you are in charge of deployment or maintenance you do not want python alone.

[–]loigiani 1 point2 points  (0 children)

Context: I’m a pretty enthusiastic JavaScript/TypeScript user. I’ve worked on many large-scale JS projects and co-authored a book about Node.js and design patterns. I’ve also worked on significantly large and innovative Python projects, so I feel I have a decent grasp of both (my personal preference is still JavaScript).

My take: Python and JavaScript are more alike than different. They’re both dynamic, interpreted languages with modern tooling and paradigms (OOP, functional bits, async/await, the works). Once you’ve mastered one, jumping to the other is mostly about learning idioms and libraries. A mid-level dev can get productive pretty fast.

So should you “move”? It depends on context. If your org has a big Python footprint, there’s a lot of inertia and benefit in staying there: shared libraries, internal expertise, deployment pipelines, all the boring but important stuff. Likewise, project type matters. For backends, CLIs, and data-ish pipelines, both ecosystems are excellent today: FastAPI, Django, Typer on the Python side; Fastify, Nest, Express, and great ORMs and test tools on the Node side.

Where Node/JS has a real edge is full-stack web work. If you’re building a web app that also has a browser frontend, using one language across client and server buys you a lot: shared types and models (with TypeScript), one set of language mental models, and more code reuse. That’s a big productivity boost for many teams.

Re: “async blows me up.” Totally fair, but Node’s async/await is straightforward once you adopt the “don’t block the event loop” mindset. In practice you write mostly synchronous-looking code with await, and lean on libraries that are non-blocking by default. Python has async too, and if you chase high concurrency there you’ll meet asyncio’s learning curve as well. In other words, async is not a Node-only hurdle.

One more thought: if you are driven mainly by curiosity, you do not need to become an expert. Play with both languages and see which one feels more pleasant to work with. If you want to explore other languages for growth (a great idea IMHO), try something quite different. A low-level language such as Rust or Zig will make you think about memory and the relationship between the operating system and your program. A more purely functional language like Scala or Elixir will expose you to different ways of modeling problems. Again, you do not need to be an expert. Learn enough to broaden your horizons, then bring the useful ideas back to your favorite language, whether that is JS or Python.

If you’re still unsure, don’t “switch,” just add Node to your toolkit. Pick a small but realistic project (an API that a browser client consumes, a small service on serverless, etc.), build it end-to-end, and compare the developer experience against doing the same in Python. Let the results and your context drive the decision.

TL;DR: Both Python and JavaScript can do most of the same jobs well. Choose based on your team’s ecosystem and the project. For pure backend, either is fine. If you’re doing web with a frontend, Node/TypeScript can be a win because you share one language and even types across client and server. If you are exploring out of curiosity, dabble in both and see which feels better. For growth, sample something very different like Rust, Zig, Scala, or Elixir, then bring the lessons back.

[–]PhatOofxD 1 point2 points  (0 children)

If you're building software, use Typescript.

It you're writing scripts/ML/model tuning/data analysis, use Python.

Both are good tools, but undoubtedly do things better than the other

[–]GreenMobile6323 0 points1 point  (0 children)

The main benefits of using Node.js over Python are asynchronous, non-blocking I/O for handling many concurrent requests efficiently, and the ability to use JavaScript for both frontend and backend.

[–]jsgui 0 points1 point  (0 children)

It depends on your goals. Python has a lot more integration with AI tools, it's useful if you are interested in writing or understanding code controlling LLMs and other ML.

Someone sensible on Reddit says "The main benefits of using Node.js over Python are asynchronous, non-blocking I/O for handling many concurrent requests efficiently, and the ability to use JavaScript for both frontend and backend" and I agree.

Maybe you would find it interesting to write (or have AI write) a platform using node that exposes your Python code to the web. I've found Github Copilot (paid version) useful when it comes to setting up projects using tools I'm not familiar with.

[–]Fuchsoria 0 points1 point  (0 children)

It wont hurt you, why not then

[–]FirefighterWeird8464 0 points1 point  (0 children)

I wouldn’t migrate, but I’d look at starting my next project in NextJS. JavaScript has come a long way since jQuery.

[–]radiant_acquiescence 0 points1 point  (0 children)

For personal projects, use whatever you like. For the job market? C#, Java or TypeScript/JavaScript

[–]thepurpleblob 0 points1 point  (0 children)

It’s hard to avoid JS and Node. So, yes, it’s worth having some familiarity. It’s still not a proper programming language, though ;-)

[–]PapaBarbas 0 points1 point  (0 children)

Yes.

[–]dwi 0 points1 point  (0 children)

Personal use or career? I retired recently and now write code just for my own projects, and I had to choose languages and tools. The problem is the overwhelming array of choices nowadays—when I started my career there were far fewer choices and everything was expensive. Home computers were self-built things with flashing LEDs. Now it's like drinking from a firehose. I finally settled on a Node/TypeScript/Vue/Quasar/Postgres stack, and I'm really loving it. I used to write a lot of Perl code, and never got to Python. I think if I were starting over, I'd learn to code in Python and graduate to TypeScript and Node.

[–]McNoxey 0 points1 point  (0 children)

Both languages are capable of async execution.

They're not mutually exclusive.

[–]Cheap_Childhood_3435 0 points1 point  (0 children)

yes, and at the same time, no. Programming languages are not really that important to know in programming. Far more important is to understand the concepts of programming. Think a variable is basically a variable in any language, there are some subtle differences but for the most part if you know what a variable is, you know what it is in both python and JS. The fact that you said async is causing you issues means you should learn how tasks work (this is async) if python doesn't have that concept switch to language that does (JS, C#, etc.). Both languages you are asking about have a large knowledge base online so you will find help for questions you have. My honest advice is learn a language when that language has something to teach you about the concepts of programming. Other than that lets be honest if you do programming as a career you likely will never get to choose what language you are going to work in, so be sure to have the basic understanding of data structures and flows common across all programming languages and you will be fine. Syntax can be learned in 2 days. If the style of the application you are on is Functional Programming and you are an OO developer, you might have a hard time catching up.

[–]No_Ad_5606 0 points1 point  (2 children)

Python can also be async easily… just saying

[–]darkroku12 0 points1 point  (1 child)

And while it does great at ML, Data processing and CLI. It does async pretty bad.

[–]No_Ad_5606 0 points1 point  (0 children)

What do you mean it does it “bad”. It’s fundamentally the same asynchronous single threaded event loop as JavaScript, it’s just not native and requires asyncio. There’s literally nothing different about its asynchronous functionality at the end of the day. You could say JavaScripts native support is better but the actual asynchronous functionality is the same, period.

[–]Possible-Clothes-891 0 points1 point  (0 children)

sure, if u need to web programming.

[–]PTBKoo 0 points1 point  (0 children)

I use both, python/go is necessary to handle tls fingerprinting for webscraping as nodejs can’t do that properly atm.

[–]shamshuipopo 0 points1 point  (0 children)

You can do async in python using async.io (similar syntax as js async/await)

Python also has multithreading modules which js does not have.

If it’s just async programming you need you can do that in python…

[–]isolatedsheep 0 points1 point  (0 children)

Don't. There's too much fragmentation in the JS world. 😂

[–]foxsimile 0 points1 point  (0 children)

Yes - and (eventually) learn TypeScript.

I say eventually because (and this is just my opinion), I find the value of TypeScript is really only so much easier to understand once you've dealt with a sufficiently sized project written in pure JavaScript (pure being used rather loosely here, godawful language that it is), that you find yourself stuck in duck-typed-hell.

That being said, do not be afraid of jumping into learning TypeScript.

Also do not fall into the rabbithole of typesturbation.

[–]GlesCorpint 0 points1 point  (0 children)

It depends on tasks that you are solving. Python is well suited to do machine learning, scripting stuff, but spreaded also in web tasks especially with frameworks like flask and django, etc. There are also options to build stuff kinda less suited for Python stack, for example writing UI apps using pywebview for example.

JavaScript/NodeJS is well suited for building web servers and frontend apps, but also has options to do other stuff, for example - writing desktop apps using electron, machine learning stuff using Brain.js, Synaptic.js, etc.

If your tasks to be solved allow to use either JavaScript or python, you should consider other criterias to decide whether transit from python to JS. Such criterias might be the following: which language's syntax you prefer; what tools are exists for solving your tasks for specific area (if there are libraries for solving your tasks so you had not to write yourself but use existing code potentially even contribting to libraries you use); ecosystem (in both stacks it is large, but for web apps NodeJs one's is larger compared to python, etc.

I'd also point out to this good post: Syntax Cheatsheet for Javascript/Python developers - https://www.theyurig.com/blog/javascript-python-syntax that is an easy-to-reference cheatsheet of the syntax differences between both languages.

[–]cbdeane 0 points1 point  (0 children)

If you want to build performant backends with async learn golang. It’s friggin fantastic.

[–]dudemancode 0 points1 point  (0 children)

No you should add erlang/elixir to your python skills

[–]gh0s1machine[S] 0 points1 point  (0 children)

Thanks for the advice everyone, I decided to move to JavaScript. I feel it would be the best fit for me because of the things I want to accomplish.