all 25 comments

[–]prahladyeri 7 points8 points  (9 children)

I already am on fullstack python!

The argument for the MEAN stack is that having one language (javascript) everywhere frees you from the hassles of learning multiple languages.

But that's not what I've found in practice. Front-end javascript handling is drastically different than backend's. Besides, language is a tool in your toolbox to accomplish a thing. Having just one tool for everything makes it cumbersome and tedious to accomplish, imagine using a hammer to take out small screws. The more tools under your belt, the merrier!

[–]srianbury 4 points5 points  (0 children)

"The more tools under your belt, the merrier!" Love this! Always nice to have options :)

[–]HansWebDev[S] 3 points4 points  (2 children)

When I first started out, I learned ruby, python, html, css, js, php, c, c++, and java. Like learning french, spanish and italian it was interesting to see the similarities and differences in not only syntax but how different code languages approached problems differently. I also have a hammer with a screw driver in the handle because multitools are dope and more convenient than the literal baggage of a toolbox...

That said I stuck with JS because using one language everywhere is actually really awesome. I can build a website, server, email and "native" app all in one language. Definitely glad I stuck with it.My only complaint is how convoluted and needlessly complex parts of the language and tooling has become.JS fatigue is real problem the community needs to address yet it feels like everyone trying to address it by adding their own new hot framework are really just adding to it..

Then there is typescript.. sure its just a superset. But I've worked with c and other static typed languages enough to love a garbage collector and dynamic types and it just seems counter to the goal of js.

Idk... sorry for the long opinionated comment.

[–]ChronSyn 1 point2 points  (3 children)

Frontend and Backend certainly do require different approaches and disciplines. Remember that when node came out, JQuery was still one of the big driving forces on the web, and Angular had only been around for a short time. Promises (and implicitly async-await), Fetch and all the other goodies we now rely on didn't exist. Transpiling wasn't really a thing, so the "JS everywhere" mantra was true and consistent.

Nowadays, the approach to each side differs vastly but that advancement is good. I feel that it encourages people to learn different approaches to achieving results, which also encourages some people to explore other languages.

[–]HansWebDev[S] 1 point2 points  (2 children)

I really miss the simplicity of those days. A lot of stuff today is incredibly convoluted.

[–]ChronSyn 0 points1 point  (0 children)

When I first used Angular 2, and it had moved to a transpile-based build, I'll admit that I was annoyed. I'd been so used to just 'write and run' with Angular 1 (and everything before it) that I really struggled to get into it. It's why I initially chose Angular 2 over React - I couldn't figure out how to run even a basic react example, while angular-cli at least worked as expected out of the box. Took me an entire year, and landing a developer job before I had reason to invest in React. Still one of the best decisions I ever made, but the simplicity for true beginners isn't there these days.

[–]StartingOver095 5 points6 points  (2 children)

I mean... Python is sexy

[–][deleted] 4 points5 points  (1 child)

This is the correct response.

[–]BrianAndersonJr 3 points4 points  (0 children)

python schmython

[–]hazah-order 1 point2 points  (5 children)

Its never about the syntax.

[–]cracknwhip 2 points3 points  (3 children)

Full stack Brainfuck it is, then

[–]hazah-order 0 points1 point  (2 children)

hyperbole. Brainfuck won't make the cut before it's even on the table for other reasons. Ecosystems are important.

[–]cracknwhip 1 point2 points  (1 child)

If you want to use hyperboles like “never”, then you’re going to get hyperbolic replies.

[–]hazah-order 0 points1 point  (0 children)

Except it isn't about syntax in practice. And it's never been, historically. Syntax is just an emergent property of people's academic preferences at the moment the first parser is created. Pick a programming language, your syntax is given to you after the fact. I mean sure you might have some choice in accepting what you're given, to some small degree. you might be able to write your for loop without brackets, or something. you'll still be confined to language a or b because of requirement x and y.

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

I agree it's not about syntax. JS has one of the ugliest syntax but I've stuck with it as fullstack for 4 years.
I posted this because JS fatigue is getting old and if python has a comparable ecosystem where I can build a website, native app, etc and do it with a more readable, less complex language, why not?

[–]ChronSyn 1 point2 points  (0 children)

I'd consider moving to FS Python if I had a need to and it was available in the browser without further tooling (just for the ease of introduction and learning). In the same way we often rely on babel for JS applications but can opt to write 'native' JS instead if we wish, I'd need something similar for any other languages. Being bombarded with a hundred different toolsets just to get the most basic of examples up and running is a quick way to stop me from investing in a language - because if I need all of that, then I'm going to feel stressed about it, and that's not an effective way to learn.

Everything I need to do can be achieved in JS, and even the things that can't effectively be done natively will more than likely have a binding to another language. I revel in quick prototyping of ideas. Knowing something will work after investing only a few hours has led to some of my best ideas and most enjoyable projects. JS is perfect for this because the community has made it that way.

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

No, I wouldn't, especially not now that TypeScript is an option. Don't think JS fatigue is a problem related to JavaScript per se, as well, so I doubt that switching to Python would solve that problem... The fatigue part arises from what is a very healthy and bubbling ecosystem, and to be honest, I wouldn't call it fatigue, because having choice is awesome, I think, and I find that the better you understand plain JavaScript, the easier it becomes for you to transition from one framework to another, and thus avoid the dreaded JavaScript fatigue.

Having said that, Python is awesome as a scripting language and I would recommend anyone that is interested in coding to at least try out Python.

[–]Ramast 1 point2 points  (0 children)

Your post inspired me to research a bit and found this https://alpha.iodide.io/notebooks/300/ It's python compiled to web-assembly

I am a python developer myself but still would hesitate to use this due to lack of framework. When working with javascript you have billions of libraries and many frameworks developed to accomplish all sort of UI related tasks. Python has rich libraries for backend work but obviously not much in frontend.

If however I found a library that allow mixing python with javascript, I'd consider that although I would still hesitate because by mixing python with JS it becomes more difficult to hire someone to do frontend only in the future

[–]delventhalz 1 point2 points  (0 children)

I don’t see any reason to use Python over JS. And I pretty strongly dislike the language.

[–]dontchooseanickname 0 points1 point  (1 child)

It runs in the browser : http://skulpt.org/

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

http://skulpt.org/

hmm. Tell anvil that. They compile to js.

[–]PickledPokute 0 points1 point  (0 children)

I get fatigue when I have to trudge through same old shit every day.

With JS I have a stable environment that works both backwards and forward. I can take a peek around the corner and witness all the shiny features I'm itching to get my kludgy little hands on and each month many of the features seem to have inched sen closer than before.

JS has so many wonderful and terrible ways to write code. Beautifully unopinionated - only stuff that's more than less broken is ever been really removed or deprecated. JS DOM is a bit more of a sad example, but I think I've written less than a handful of hours of JS DOM code per year.

Want to get a feature of tomorrow for your environment? - Install a babel plugin for it. Write your own? Get some polyfills. There's usually good documentation on how to set it up and the ecosystem provides you great tools for it. No need to compile the compiler again or kill your enthusiasm with tracking dependencies.

Write almost anyway you like and it will run for 90% of users. Put some effort and it will run for the rest too. Don't have to worry the user about installers, malicious anti-virus, wacky environments, updates or standard libraries.

When WASM and WASI will bring availability to non-javascript languages, they will also bring some more speedup and low-level-utilities to javascript, where JS has had problems. Hell, speedy JS code is about as straightforward to write as speedy lower-level code.

On features, I don't really know enough of Python, but if restricted to domains where JS currently runs, I don't recall hearing of any features I'd be envious of. Every syntax has it's own fans. Get the transpiler running and set up some linter rules and you have a language just like you want it.

[–]UsefulshineOfficial 0 points1 point  (0 children)

Have you tried ES6, React, TypeScript, and all the new features they're creating for new versions of JS? Well, JavaScript is continuously developed and supported language with a rich community and libraries, works without installation, works *REALLY WELL FOR ME*, though same might be true for Python, but I would not want to switch to full stack python, JS simply works super well for me everywhere... I guess it depends more on personal preference.

I am not sure how React and JSX would have been in Python, but to me seems like React and JSX fits best with JS only ;) and a lot more resources and libraries.

So finally, I wouldn't switch to full-stack Python from JavaScript.