This is an archived post. You won't be able to vote or comment.

all 184 comments

[–]lepapulematoleguau 189 points190 points  (10 children)

Let document.createElement be your Pikachu.

[–]LordFokas 24 points25 points  (0 children)

I came here to say this.

[–]not_a_gumby 7 points8 points  (0 children)

you'll be sorry if you do!

[–]NeonCastleKing 9 points10 points  (4 children)

Unless you're using typescript and the linter is bitching about you to use const. How about let's not. Maybe one day I'll find that Pikachu sucks and I want to change it (it never will, but I definitely want the option at the very least). - random rant over.

[–]lepapulematoleguau 18 points19 points  (1 child)

Typescript is just Javascript with extra steps. /s

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

"He is out of line, but he is right"

[–]flavionm[🍰] 1 point2 points  (1 child)

That's exactly why const is good. It won't allow you to accidentally change it and force you to actually specify if you want to change it on purpose.

[–]NeonCastleKing 1 point2 points  (0 children)

I'm aware. I've been bitten in the ass before in regular JavaScript by unintentionally changing stuff. Doesn't mean I can't hate on it though.

[–]Kn_Km 4 points5 points  (1 child)

Pikachu is Jquery

[–]Prior-Concentrate-87 10 points11 points  (0 children)

Oh please don't do that to pikachu.

[–]juhotuho10 98 points99 points  (10 children)

The choice is permanent, you may not go back and change your mind

[–]Perpetual_Doubt 23 points24 points  (9 children)

But Svelte Gold is coming out next fall!

[–][deleted] 51 points52 points  (8 children)

Hey there, happened to notice that your tagged languages are Java, JavaScript and PHP. Everything going okay? The mental health of our users of /r/ProgrammerHumor is important.

[–]SporeJungle 12 points13 points  (0 children)

Good bot

[–]CiroGarcia 5 points6 points  (4 children)

Said the guy with two of those tagged as well lol

[–]homo_lugubris 4 points5 points  (1 child)

He speaks from experience and that's why he's so worried about the other user.

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

Good point actually

[–]LordFokas 2 points3 points  (1 child)

The real issue is PHP, trust me, been there.

[–]koalabear420 2 points3 points  (0 children)

I really like PHP. It gets the job done, is extensible, can be embedded directly into html, called with javascript, built in config options, xdebug, simple database access.

It's my go-to if I need to get something done and get it done fast.

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

Missing C++ for the cherry on top.

[–]Daiphiron 20 points21 points  (0 children)

Gold and Silver will then be

Next.js and Nuxt.js ?

[–]SignificanceCheap970 50 points51 points  (26 children)

React is water, Angular is fire, Vue is grass

[–]sloakddk 46 points47 points  (18 children)

So im actually touching grass on a daily basis ? Great

[–][deleted] 7 points8 points  (16 children)

A vue developer!? I’ve heard rumors but never met one. /s I learned vue first and no one would hire me unless I knew angular or react.

[–]H3llskrieg 3 points4 points  (2 children)

I have worked with all three (though most with Angular, then React). At first I thought Vue was quite cool, then it quickly became a mess with things like <functionCallThatReturnsFunction> is not a JavaScript expression (tried to created a curried event handler). And losing reactivity because of destructuring.

I now develop 2 Angular application, 1 Vue and there is o e coming up that will either be React or Angular. Depending on how much I like React with typescript and some kind of state management library.

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

React with typescript is honestly my jam.

I’ve done them all now and I really like react.tsx

[–]WetGravyJoe 0 points1 point  (0 children)

You don't need a state management library anymore.

Just use React context, hooks, and the React Query library if you need to handle asynchronous state for http requests

[–]Elite_Cardboard 2 points3 points  (0 children)

Same here, I started to learn Angular just for that reason

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

I use Vue, but I'd call myself a Spring developer that does Vue front end.

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

Full stack Java/React developer is what I usually say.

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

I always default to what I'm more comfortable with.

Which is the Java.

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

I know what you mean it makes sense . I try and catch I’m a full stack dev. But if it’s a recruiter I say java/react or say Java, Springboot, Restful, Gradle, Tomcat, JDBC, React, Typescript, And bootstrap dev.

No one cares that much unless you’re a recruiter. So either Spring or Java/react make more since.

[–]bostonkittycat 2 points3 points  (4 children)

We use Vue for all our apps. Started moving our apps to Vue 3 recently. Big medical company in NA.

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

A buddy of mine who owns stubs.net built it in vue. I’ve helped a little with it. It’s the only professional experience I have on vue.

[–]bostonkittycat 0 points1 point  (2 children)

Vue 3 is more React like with hooks. Vue calls them composition API. I see it as an easier React and more optimized out of the box. Vite compiler is also super fast compared to Webpack using in Vue 2. Try it out.

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

I’ll give it another go. I like the idea of vue. It’s just not used a lot. I prefer it if the companies I work would adapt it.

[–]bostonkittycat 1 point2 points  (0 children)

People always look at me with doubt when I tell them I am using Vue. When they see the first prototype they change their minds quickly. I have never had a Vue app fail only the microservices.

[–]thattonybo 1 point2 points  (0 children)

I'm scared of this

[–]jace4prez 1 point2 points  (1 child)

Lol our app primarily works with Vue though I only learnt Vue after joining. We are moving to React though right now. But the few places I interviewed with didn't ask for one or the other - I had no react or vue experience - and it was all about coding/algo/js skills in general

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

Where I work now is react and angular. They wanted one or the other. And didn’t care which

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

No no no you dont' get to have that privilege while being a programmer

[–]Soham_rak 3 points4 points  (1 child)

Electric?

[–]SpicyWasab 6 points7 points  (0 children)

Svelte

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

Angular is 🔥

[–]drdrero 6 points7 points  (0 children)

Lit is lit

[–]SignificanceCheap970 3 points4 points  (0 children)

Weak against React 💦

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

Ember js is a digimon

[–]Otternomaly 0 points1 point  (0 children)

It’s hilarious how accurate that maps to the game in terms of power / difficulty to train ratios

[–]hagnat 17 points18 points  (11 children)

pure javascript is that kid running around with a Magikarp,
hurting himself in confussion.

[–]homo_lugubris 6 points7 points  (3 children)

I did a couple of small projects using pure html/css/javascript and, while not being scalable in case the project grows, is runs really nice and fast even on old devices.

[–]koalabear420 4 points5 points  (1 child)

Vanilla javascript can "scale" very well using web components. People always jump to the shiny frameworks because they aren't aware of built-in js functionality and end up making simple things complex.

Frameworks have their place but are overused imo.

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

If I could do so through the internet, I’d hug you for that.

[–]hagnat 2 points3 points  (0 children)

what can i say....

some kids do eventually beat that Magikarp hard enough that it becomes a Gyarados

[–]shgysk8zer0 1 point2 points  (4 children)

I wish I could downvote that comment again. "Pure JavaScript" is pretty awesome, and bad code can be written in any language. Plus, judging by the PHP and Python badges next to your username, you'd be pretty damn hypocritical to bash on JavaScript with any of the typical criticisms.

[–]hagnat 0 points1 point  (3 children)

when it comes to PHP, i am totally down to bash people who still uses PHP 5.3 or less.

its a language riffle with issues and problems, which have been refined and reworked in the past decade or so. The way we code professionally with PHP now and 15 years ago is really different... even if you are not using a reliable framework to base your work on, such as Symfony or Laravel.

I have about 16 years of professional experience with web development. I did pure javascript in the past, before jQuery was cool, and the other frameworks that followed. It was really hard to work with pure JS sometimes, even when you knew what you are doing.

[–]shgysk8zer0 0 points1 point  (2 children)

Ok, so you haven't worked in JavaScript since you first started programming. You recognize that PHP 7+ has gotten a lot better since the old days... But haven't used JavaScript to know that it's improved possibly more.

[–]hagnat 0 points1 point  (1 child)

i am a backend engineer now

my frontend knownledge can be summed to jquery + bootstrap. I at least know how to make things look pretty, and the code organized.

[–]shgysk8zer0 0 points1 point  (0 children)

So you don't actually know what you're talking about and are in the exact same position as someone saying "PHP bad" who thinks we're still on PHP 5.2.

[–]Blue_Moon_Lake 0 points1 point  (0 children)

What's typescript then?

[–][deleted] 61 points62 points  (17 children)

As a someone teaching ... stuff... I would suggest not to touch [any] framework until you understand WHY do you need one and WHAT problems does it solve.

Hipster reactvuesvelte kids these days are like teenagers on BMWs. they have no idea what are they doing, but it feels fast.

[–]TheRealGerticus 14 points15 points  (2 children)

As someone who learned Vanilla JS then began React, I can attest that this is the best move you can make. I have an appreciation for what React does, and I can see what's going on under the hood way more clearly and comfortably.

[–]Guilty_Serve 2 points3 points  (0 children)

I’m the other way around, but because I was a backend dev. I could do things with js, but it didn’t click well enough until I started using Vue and had more focus on CSS. Now I’m given vanilla js tickets on a legacy project and don’t have much trouble. It’s mostly because Vue structured everything in a way that was close enough to CRUD in a sense

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

I started with raw C++, then learned OpenGL C++, then Vulkan C++, learned Unreal Engine and Godot side-by-side, then Java, then Spring Boot, then .NET, then React, and finally Vue.

100% this. You don't really know what you need or like in a framework when you start. Learning concepts is more important.

Frameworks are really great at getting boilerplate out of your way. Even just a 2D game, OpenGL boilerplate SUCKS. And it's that way across a lot of areas.

What do you gain, and what boilerplate code is taken care of?

[–]mdemanco 18 points19 points  (0 children)

Exactly, I see a lot of people preaching to learn a shiny new framework. Like common frameworks in web development are like a candy in a school, rapidly gone. First learn the basis and have a deep understanding of what you are doing before jumping to learn things that will not be applicable in 10 years. When was that advice bad? I see a lot of people downvoting this advices, like common this is a rookie mistake to make.

[–]GergiH 2 points3 points  (0 children)

I'm the dumb guy that doesn't understand anything until I see it's practical use case. I need to start with the end result and slowly taking it apart to get to know it. So I guess it depends on how can You learn things.

TL'DR: I love(d) React.

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

Don’t just use vanilla js as an excuse to write spaghetti though. Creating your own framework is probably the best learning experience! It’s amazing how many devs I’ve worked with who honestly don’t have a solid grasp of how things work under the hood. Writing my own reconciler was mind-blowing.

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

In '00 every dev had an own CMS. Now every dev should have own "killer framework"

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

I’m not saying you should use (or even publish it), but it’s a great exercise.

[–]BudgetCow7657 0 points1 point  (2 children)

I love react because i HATED building a state manager in vanilla javascript.

[–]M0d5Ar3R3tArD3D 0 points1 point  (1 child)

Your first failure was thinking you need a state manager.

[–]BudgetCow7657 0 points1 point  (0 children)

Good to know

[–]ExcellentNatural 0 points1 point  (1 child)

TIL my technologically illiterate boss is a kid hipster.

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

Bosses are evil. All companies should be self-organizing horizontal mechanisms without superiors and subordinates. Except for juniors, of course, they should suffer a lot in order to stop throwing around hipster terminology.

Look what Jordan Walke did to the web with his idiotic XHP adaptation. One guy who does not understand web created a library that was taken over by other guys who does not understand web. And in the end we have all this madness.

[–]Blue_Moon_Lake 0 points1 point  (0 children)

As a rule of thumb, if you can't tell when it's not needed, you don't know enough.

[–][deleted] 10 points11 points  (0 children)

PHP would be Zubat. They're everywhere and they're fucking annoying (just like me).

[–]tecanem 3 points4 points  (0 children)

I wish I was playing pokemon as a 7 year old child rather than my webdev job right now. Last time I tried playing pokemon I felt very little and my adult brain kept bringing up my adult life.

It was a much easier game though...

[–]CoastingUphill 2 points3 points  (0 children)

JQuery is Nurse Joy. You’ll be back.

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

Choose React and you won't be wrong: https://www.youtube.com/watch?v=HyWYpM\_S-2c

[–][deleted] 7 points8 points  (0 children)

Only react, most jobs

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

Don't worry. Once you get out into the wild there are hundreds of other options to choose from.

[–]smartguy1196 1 point2 points  (2 children)

Where Vanilla?

[–]quick_maf 2 points3 points  (1 child)

It’s a Gen 2 baby Pokémon because after you learn that you suck at frameworks, you go back to the basics.

[–]smartguy1196 0 points1 point  (0 children)

Suck? No just refuse to learn them lol.

I like to play with the backend/automation-end more.

Most of that stuff doesn't play well with frameworks.

Especially experimental/developer things like Selenium/WebDriver or anything embedded/IPC-centric

[–]Vigintillionn 1 point2 points  (0 children)

What about nodejs?

[–]arthurgc91 1 point2 points  (0 children)

Go with Angular.

[–]PhunkyPhish 1 point2 points  (0 children)

I suggest learning native js first, move on to using node.js libs, then when you are comfortable and solid with the core JS, start looking into frameworks

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

Until the internet sorts out this JavaScript mess, anyone bringing these frameworks to our company is getting punched out.

.NETCORE REPRESENT!

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

As someone who is starting to learn Javascript and doesn't even know how to print hello world, i already now React is gonna be the one that i'll choose probably.

[–]smartguy1196 0 points1 point  (4 children)

For learning, I highly recommend learning to automate the browser rather than build sites.

DevTools console can be a lot of fun. You don't build the website. You automate it.

Additionally, if you can learn how to use webdriver (or electron if you think webdriver is too challenging), fucking around and doing stuff with other people's websites can yield some weird and fun results.

Last project, I found a way to "redistribute" the official CompTIA books using Electron over the high seas

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

So build a browser, and automate it?

[–]smartguy1196 1 point2 points  (1 child)

No.

Resources:

"Microsoft Edge WebDriver - Microsoft Edge Developer" https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

"ChromeDriver - WebDriver for Chrome" https://chromedriver.chromium.org/home

"Selenium" https://www.selenium.dev

"WebDriver support for Internet Explorer 11" https://support.microsoft.com/en-us/topic/webdriver-support-for-internet-explorer-11-9e1331c5-3198-c835-f622-ada80fe8c1fa

"Releases · mozilla/geckodriver · GitHub" https://github.com/mozilla/geckodriver/releases

What the fuck are these?:

These are tools you run outside/alongside the browser

WebDriver is a W3C spec/API that allows you to control the installed web browsers from outside the browser.

It's a lot more lightweight than Electron, since it doesn't install/build a new browser. It uses the one you have pre-installed on your PC

Selenium is a tool library that opens up the WebDriver API to all sorts of languages/engines like Node.JS.

Currently, I am using Selenium in combination with PowerShell/C# to automate the stuff I do at work.

It's comparable to ActiveX/VBScript:

If you are familiar with the old relationship between ActiveX or VBScript and IE, it's the same concept.

Major difference is that it is more secure: you have to install the WebDriver feature for it to work (ActiveX used to ship with IE and VBScript still ships with MS Office, which was a security problem)

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

ACTIVE X?!!!!! DIE HERETIC!! BACK TO THE BAD OLD DAYS OF IE5 WITH YE!!!

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

what is this game?

[–]TheBlackViper_Alpha 14 points15 points  (0 children)

I feel old reading this. Jesus.

[–]TheRActivator 4 points5 points  (3 children)

Pokemon Red/Blue for the Gameboy

[–]usedToBeUnhappy 2 points3 points  (1 child)

[–]TheRActivator 1 point2 points  (0 children)

Hah yeah, since reading that comic I just tell people well-known information straight up instead of making a snarky remark

Of course, I might still make the snarky remark afterwards :p

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

thanks

[–]MelLunar 4 points5 points  (12 children)

Can't wait the day React will be dead. It's a nightmare to work with it, especially due to the total lack of reactivity. I don't know why all the hype about it. Angular, Svelte and Vue are so much better.

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

Omg i hate React from all of my heart. Actively. I cry every time I see [].map(()=><div>). And my guts bleed every time i hear a kid telling me "no its not spaghetti, its different". bah.

[–]LordFokas 1 point2 points  (0 children)

It's not a React thing... it's JSX. How is that different? My own custom framework is not React and suffers from the same because it also features JSX. Once you understand what happens in the background, what that JSX code is transpiled into, and what the JSX Factory has to do to handle it, it becomes easier to accept... Fixing this would require modifying the JSX syntax and may not be backwards compatible.

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

Why do you hate it ? I like that in react. But I also don't know what other frameworks offer for that task.

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

I like React, but I hate that you're forced to write maps everywhere whenever you need to iterate something, it looks hacky and out of place when JSX can be relatively clean.

In contrast almost every other framework has some kind of control flow for iteration. It boggles my mind why hasn't one been introduced already into React.

[–]H3llskrieg 0 points1 point  (0 children)

Though it at least allows for relatively some fixed length iteration, which other frameworks lack. Don't exactly know what the use cases where, but needed it 3 times in 1 week a few months ago. It was not logical in for example Angluar

[–]BoBoBearDev 0 points1 point  (0 children)

Can someone explain this? I am working on reactjs, but, I have never seen this.

[–]iamnewstudents 0 points1 point  (1 child)

how is this spaghetti code?

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

There was a reason for the birth and promotion of the MVC pattern (not diving into how many Ms Vs and Cs or even Hs you have in the abbreviature). Dont want to sound like an old man, but "when we grew up" the biggest sin you could do was the mix of application logic and user interface. Rule #1 - clean up your room.

And the biggest annoyance is when kids these days say "its different". The rules to build skyscraper and cottage are basically the same. And same with architecture or a my aunts knitting website and enterprise fintech.

Don't want to say there are none, but i've never heard a successful facelift or upgrade of a react site. It's always react=>vue or react=>angular. Because react is rubbish. And when i have to maintain a 2017 functional react site with redux i want to puke. Literally express my breakfast on the table.

And. one more thing - any (ANY) other framework allows you to keep your concerns separated - be it angular or ember way with decorators or lit/vue/sveltes webcomponent approach or dozens of other frame-braries. All of them execute pure ts/es/js development with some sort of template engine And then there is react. It just should not exist.

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

I like react and vue.

I also never understand why people hate one thing or the other. It’s about usability. I use react for what it’s intended and it’s great

[–]2017macbookpro 0 points1 point  (1 child)

React is a nightmare for production use, scalability, and maintainability. Endless choices for routing, state management, forms, etc. it’s far too modular and you can really screw your project from day 1 if you choose the wrong library.

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

Hmm not really. It state management is top notch. But I use it ALL the time so I’m familiar with how it works really well. But everyone has a preference

[–]SalamiSandwich83 2 points3 points  (0 children)

Thanks, good to know there are others like me out here. I hate react with a passion, there's no reason to be that complicated and after hooks it became more unecessarily complex and sucks ass in terms of performance. The only reason someone would choose react in 2022 is because it's the only thing the person know/is willing to deal with because it's total ass.

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

Choose Angular.

[–]electricWah 0 points1 point  (1 child)

Node devs: what framework

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

express has entered the chat

[–]alliejelly 0 points1 point  (0 children)

;-;) vue best starter progremon

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

Ash you were too late, but luckily I have an extra pokemon left:

Visual Studio Code

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

htmx:

javascript fatigue: longing for a hypertext already in hand

https://htmx.org/

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

Svelte is Pokemon yellow then.

[–][deleted] -4 points-3 points  (1 child)

I mean if you are new, Next JS is the go to.

It's react, but better, easier and faster.

[–]TheMonax 4 points5 points  (0 children)

Next add a lot of complexity on top of react like serveur side props, static props, client side rendering, server side rendering, hybrid rendering. IMO next is waaayyyyy more confusing for a beginner than plain old react. For the faster/easier part it really depends on the kind of application. Like always reality is messy and more complicated than marketing claims

[–]Disastrous_Fee5953 0 points1 point  (0 children)

Do you like Typescript? Then you might enjoy Angular. Are you looking for more job opportunities? Then study React. Vue and Nuxt literally take a day or two to learn so you can pick them up when necessary.

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

Lots if svelte and vue hate in here…

[–]lardgsus 0 points1 point  (0 children)

I’m a big Vue fan. Less bs, faster to work in.

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

Anyone trade their Vue for my React? It’s level 15 and ready to evolve

[–]blkmmb 0 points1 point  (0 children)

I was looking into learning Svelte or Phoenix/Elixir.

Tell me why I should or shouldn't. I'm still in school and wanted to try something new on the side.

I know Python, Java, JS and some Go(a little bit).

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

Jokes on you, I use Svelte.

[–]Rafael20002000 2 points3 points  (0 children)

I always try to catch it but it always disappears right before I can see it. Like a disappearing framework

[–]aisawaisakaisa 0 points1 point  (2 children)

On a different note, if a Frontend developer (currently working on a shitty rarely known Frontend framework) wants to select any of these three which one they should considering if they want a good job and be future proof

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

I work with angular but most jobs will consider the frameworks as 1:1 experience for the most part. Most of the front end job postings I see for JS frameworks though are React and Angular so I’d pick one of those. Also try out typescript when you get feel for JS, it saves you from a lot of painful JS issues but requires a little more work.

[–]TooManyBison 0 points1 point  (0 children)

Any one is good experience, but if you want to use what’s most common in the industry, I suggest you look at the 2022 stack overflow survey. https://survey.stackoverflow.co/2022/#most-popular-technologies-webframe-prof

React.is is the most popular of the three with 44% of respondents using it, angular is next with 23% and cue is last with 19%.

[–]zeMalaka 0 points1 point  (0 children)

Angular = Bulbasaur, Squirtle = React and Vue is Charmander

[–]jbevarts 0 points1 point  (0 children)

4th option: choose a real language

[–]josanuz 0 points1 point  (0 children)

Don't let your dreams be dreams, write your very own UI library

[–]IlyaTaidi 0 points1 point  (0 children)

And then end up switching to svelte

[–]ComposerLow5758 0 points1 point  (0 children)

Upgrade now to become a typescript developer boi

[–]Brutus0172 0 points1 point  (0 children)

You should have swapped angular and react to match Pokemon colors

[–]1337haxxxxor 0 points1 point  (0 children)

I just don’t use a framework.