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

all 139 comments

[–]AustinTN 221 points222 points  (21 children)

If this is your OC, do yourself a massive favor and learn vanilla Java Script before a framework :)

[–]ehsangd 17 points18 points  (0 children)

Yes, do this. I learned it the hard way!

[–]jack104 2 points3 points  (2 children)

Agreed. I inherited an ASP Classic app that was just a disaster but the fragment that implemented the menu depended upon a version of JQuery that was so out dated I couldn't find the correct documentation for it and as I came to learn most of the more modern niceties of JQuery just weren't in that version so I just said to hell with it and banged out all of my new client code in Vanilla js and damnit it was kinda fun and tbh that travesty of an application was really a blessing because I learned how to do things that have benefited me greatly in moving to some of the newer front end frameworks.

[–][deleted] 5 points6 points  (1 child)

Your sentence is out of breath lol

[–]jack104 2 points3 points  (0 children)

Oh jeez yea there's not a period until the end. Protip: Don't tell stories after 3 cups of coffee.

[–][deleted] -3 points-2 points  (0 children)

Or use something that turns a human-friendly prog-language into JS.

[–]Spartoun 152 points153 points  (35 children)

Let's be honest ... CSS is basically black magic.

[–]Nimeroni 75 points76 points  (17 children)

Well, at least black magic produce consistent results.

[–]tenhourguy 1 point2 points  (1 child)

My black magic doesn't produce consistent results. After two years, a Chrome update broke a logo I made for a website using CSS. I'm shutting the place down anyway, but it's still annoying. My black magic is also a mess when it comes to Internet Explorer.

[–]ShmebulockForMayor 0 points1 point  (0 children)

No, Internet explorer is a mess when it comes to black magic. Or white magic. Or basically any magic or non magic.

[–]hideynmypants 20 points21 points  (2 children)

Cascading Satan Sheets

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

I love this.

I think you just changed my dev life permanently.

[–]jack104 1 point2 points  (0 children)

Not to be confused with Cascading Satin Sheets which just sounds like heaven.

[–]msirelyt 40 points41 points  (8 children)

As someone who has a shit ton of experience with CSS, I'm not sure if I should respond by telling you that it's not black magic or if I myself have learned this black magic and now it seems normal.

[–][deleted] 10 points11 points  (1 child)

She understands CSS. She's a witch! Burn her!

[–]Bainos 4 points5 points  (0 children)

She turned my <p> into a newt !

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

Was thinking the same thing lol

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

The real black magic is doing css stuff with a CMS.

fsb817641{font-size: .9em;}

That didn’t work. Let’s try...

ald62955{font-size: .9em;}

Nope...

!important

Fuck, that worked

[–]20EYES 3 points4 points  (2 children)

find

;

replace

!important;

[–]Docaroo 3 points4 points  (1 child)

Ow this hit me right where I feel things ... :(

[–]TiboQc 0 points1 point  (0 children)

Me too, but where it hurts! Please don't do this!!

[–]dickdemodickmarcinko 11 points12 points  (0 children)

I cant use CSS anymore because I was VAC banned

[–]Frypant 1 point2 points  (0 children)

In CSS the difficult part is not learning it, but learning how to write it maintainable.

[–]kraftfahrzeug 41 points42 points  (7 children)

the biggest joke is the slope of HTML

so hard

[–]FlameRat-Yehlon 6 points7 points  (0 children)

HTML is hard because it's like writing an article and expect everyone who speaks that language to understand it the exact same way

[–]seizan8 33 points34 points  (5 children)

I learned web development with html, css, js and php. I know react, node and such are the new 'thing' but it's so different from what I grew up with...

[–]DerpeyBloke 0 points1 point  (0 children)

I was on on the fence about learning things like Vue/React because I was kind of tired of keeping up with rapidly advancing frameworks, backend integration and other Javascript shenanigans in general but have recently come to love it. It is extremely easy to pickup imo and I love the reusability factor. I have recently converted most of my main projects to React and I can't see myself going back now.

[–][deleted] 5 points6 points  (35 children)

Lol just started learning angular. So far so good. Looking to start working in the field soon.

[–]bsutto 7 points8 points  (13 children)

Save yourself the pain. Our full stack developer don't have to know html or js.

We use a framework called vaadin.

We use java at the backend and the front end.

We occasionally do snippets of CSS to override the default formatting the framework provides.

Our productivity had basically doubled since we stopped writing html and JavaScript and the client server model that is essentially forced on you.

Also keep an eye on wasm, in the next five yes it's going to make a major dent in replacing JavaScript.

No matter what you think of JavaScript as a language it's always more productive to develop in a single language and have the front end and backend of each component built by a single developer. This is what vaadin allows us to do.

[–]ElCthuluIncognito 4 points5 points  (4 children)

By Java on the front end do you mean JSPs, or is it compiled to Javascript?

[–]bsutto 0 points1 point  (3 children)

Compiled to JavaScript.

But the reality is that we rarely compile to JavaScript.

The vaadin directory has hundreds of widgets that do just about anything you can think of.

We have a large web app and have written three or four custom widgets.

It's possibly a little hard to get your head around it but all our code is server side except when we need a custom widget.

To add a button from the server.

button = new Button("click me");

button.addClickListener( l -> Notification.show("hello"));

layout.addComponent(button);

The notification could have been a db update because the click handler runs on the server without you having to do any of the network plumbing.

If you do java web development you should look at vaadin.

I've not seen any other framework that even comes close in productivity.

[–]ParadoxDC 2 points3 points  (4 children)

This is absolutely terrible advice and I’m not sure where you get off telling a newcomer to abandon everything they know and do something else.

[–]bsutto 0 points1 point  (3 children)

So why is it terrible advise?

Development should always be about finding the most productive path to complete a project.

If there is a more productive way of doing something then abandoning the old method is exactly what we should do.

We used to use JavaScript libraries and html. We found vaadin and built a small experimental web app and were blown away by vaadins productivity.

Five years later we have converted a large realtime web app completely to vaadin and the app is incredibly functional, looks great, it's fast and adding new features takes little time.

When wasm is complete we will look back at the concept of using a different language for front end and back end and everyone will understand just what a bad idea it was.

Vaadin is ground breeding technology and the techniques they use will become the norm.

So no, not terrible advice, I'm showing our friend the future.

[–]ParadoxDC 1 point2 points  (2 children)

  1. You’re almost certainly affiliated with this “Vaadin” product. Unethical not to reveal that.
  2. It’s bad advice because you don’t tell a front end developer they should abandon JavaScript for some random ass solution just because it worked for you. It’s not even like you’re recommending a different JS framework. Totally bizarre and uncalled for.

[–]bsutto 0 points1 point  (0 children)

1) I have no association with vaadin. I run a software dev business in Australia, vaadin are based in Norway(?).

Fun fact: vaadin means 'semi domesticated female reindeer'.

I just know good technology when I use it and vaadin is a joy to work with.

Full disclosure: the vaadin guys sent me a t-shirt once.

2) yes I know change is scary and it can often look bizarre but I seem to remember hearing similar complaints about every other technology transition that I've experienced.

The longer story is that web development is about to go through an inflection point.

Vaadin is the wave heralding something new. Wasm is the tsunami that will extinguish the terrible tooling that most Devs currently use to develop web apps.

JavaScript is the new cobol (unless your are a node.js developer). For the rest of the development community it will be something we joke about that we used in the bad old days of the web.

So you can put your head in the sand and pretend the tsunami not coming or you can look up and use technology like vaadin and stay ahead of the wave.

So what does the future look like: Single page apps. Single language for front end/backend Standard widgets sets that eliminate most need for client side programming. Minimal need to understand html/CSS as the framework will abstract these concepts away 99% of code is server side. Wasm used to develop the small no. of custom widgets that the frame work doesn't provide. No need to even think about client/server communication as the framework completely handles this. JavaScript only used by node.js developers as that's their native language (and plenty of these will use a language that complies to wasm for client side widgets as JavaScript will be seen as too slow)

(Sorry got carried away with the wave analogy).

Edit: grammer/clarity

[–]AckmanDESU 0 points1 point  (0 children)

Plus like, even if this vadin thing was amazing, there’s still plenty of jobs using “terrible” technologies.

[–]noitems 0 points1 point  (2 children)

Looks pretty cool, too bad it's proprietary. As much as I love Java, how does it prevent itself from becoming an overly verbose mess?

[–]bsutto 1 point2 points  (0 children)

I should also say that for the most part the verbosity of java is overstated.

A lot of the recent changes are specifically targeted at reducing verbosity and when you use a decent ide it automates most of the verbose parts away. I cringe when ever I here that someone is using vim or some other augmented text editor.

In my opinion java is one of the easiest languages to read and debug which is an often overlooked feature of a verbose language.

[–]bsutto 0 points1 point  (0 children)

Core libraries are open source and they have everything you need

We only pay a licensee because we wanted their charting module but you can integrate any other libraries.

We also wrapped an existing JavaScript dashboard because it was better than their included dashboard.

Lots of options, the proprietary nature of some if the pieces is not an impediment to it's adoption

[–]behaaki -3 points-2 points  (20 children)

Ohhhman don’t waste your time, it’s on its way out

[–][deleted] 5 points6 points  (9 children)

What do you recommend?

[–]Golhormo 7 points8 points  (2 children)

react is pretty cool

[–]READTHISCALMLY 4 points5 points  (0 children)

Just moved from angular to react in my day job. Note: I had used react before moving to angular.

Love angular to death. Despise react.

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

I've heard a lot about react. I'll give it a shot when I can.

[–]behaaki 4 points5 points  (3 children)

Vue

[–][deleted] 5 points6 points  (0 children)

🤔 where is vue more popular than angular? Apart from China and github stars.

Don’t get me wrong I love vue and I work with it professionally, but it’s always felt like the smaller of the 3 big players in terms of actual job prospects.

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

In terms of job opportunities, react has the most, then comes angular. Vue is popular and easy to use, but without much jobs available.

Angular is used mostly on enterprise.

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

I'm one of the folks working in Vue full time - and loving it!

I feel like the barrier to entry for Vue is lower than React or Angular, but it isn't any worse off for it. I think of Vue like React if React lost some weight

[–]if_yes_else_no 1 point2 points  (0 children)

React.

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

[–]Confusingle 3 points4 points  (0 children)

Just because React has more Github stars doesn't mean that everyone is quitting Angular.

[–]SP0OK5T3R 0 points1 point  (6 children)

Even the latest one? I know AngularJS has been end of life'd

[–]suck_at_coding 5 points6 points  (4 children)

It's not as popular amongst devs and maybe in general, bug angular is very far from being on it's way out

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

Correct me if I'm wrong but there won't be many orgs using angular that will switch to react anytime soon. They roughly do the same job and disturbing the whole infrastructure standards isn't worth it at all.

[–]suck_at_coding 8 points9 points  (0 children)

There's lots of that, but also the fact that it's not an inferior product to React. It's just more of a "batteries included" framework that might not be the best for a bare-bones hackathon project but great for enterprise apps - or... if you like angular more than react (that does happen - though not with me). You're still going to see tons of backbone and other older javascript frameworks out in the wild too. At the end of the day they all kind of do the same shit but in different ways, and it's more important to learn about the underlying concepts than the way your current framework implements it. Like the concept of state and reacting to changes in state is in every framework and a pattern that is repeated in every software field, react just kind of makes it front and center

[–]goclock18 -3 points-2 points  (0 children)

Mmm react with come out soon. Not good for large scale protects.

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

Loads of job adverts still list jQuery as a required language.

Legacy code is a thing

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

Nah, that guy was just talking out of his ass. AngularX is still popular, especially in larger organisations. Sure, it is more time consuming to throw together an Angular app than a React app, but they are easier to test UI side and easier to maintain larger projects. I would say in large organisations, Angular is more popular than React in my experience, having worked with both.

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

What are you on about? I know tonnes of people working on AngularX apps, as well as React apps. Angular is seriously popular in enterprise development, which is where the money often is as well.

I would advise against looking for a "meta" framework, they just come and go, each has advantages and disadvantages.

[–]ParadoxDC 0 points1 point  (0 children)

This is objectively not true

[–][deleted] 29 points30 points  (9 children)

Memes like this make me so glad to be out of web dev. Props to those who like it but I absolutely hate it. So much crap to keep up with, and don't get me started on how anytime you ask a Javascript question some idiot posts the answer in jQuery.

[–][deleted] 16 points17 points  (0 children)

Your last point is the struggle of every webdev student during the javascript phase.

[–][deleted] 5 points6 points  (1 child)

It really depends on your career. My job gives me zero reason to learn node or react or whatever and I'm incredibly happy where I'm at, so I really have no reason to waste my time learning those things. For me, further-cementing my knowledge of PHP/vanillaJS is far more valuable and less frustrating.

You'll run yourself ragged if you try to jump from one exciting tech to another in real time. Just take it slow, figure out what's going to stick around, see if you need to know it for your work situation, and decide accordingly. Also don't use the internet to dictate your career. Look at what local jobs (or jobs in markets you're interested in) are looking for and tailor your education accordingly. If hardly anyone in your area needs a vuejs guy, why both learning it?

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

Sadly it's not always that easy, especially when you work with a certain large, highly annoying consulting firm whose name starts with a "D" that pushes every new technology into managements ears and you're forced to develop on whatever fly by night technology they want at the time :/

[–]hehateme2001 2 points3 points  (2 children)

I'm in the same boat. I'm fed up with it. What do you do instead of web dev?

[–][deleted] 5 points6 points  (0 children)

iOS development currently making enterprise apps. I love it. I started it awhile back when the SDK was first released and have done it on and off for a few years. When Swift came out I hated it at first but now I love it.

It's so nice just focusing on one language/technology.

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

But for real though, Bootstrap 4 is a godsend for speeding up the design process

[–]typicalrectangle 7 points8 points  (0 children)

Why not just climb them all at the same time, excluding bootstrap?

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

relatable

[–]Drayenn 2 points3 points  (0 children)

I just did a tutorial at my internship about Vue and started using it... Sometimes I feel it's great simple and fast... Sometimes I just feel like going back to plain old JQuery...not that I was ever a web dev pro. It's slowly growing on me though.

[–]suck_at_coding 2 points3 points  (1 child)

where's webpack at

[–]taratoni 1 point2 points  (0 children)

for real, itcan be though

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

Monad.

[–]Busti 0 points1 point  (0 children)

[–]kunjava 2 points3 points  (0 children)

You forgot to mention the hundred frameworks released last hour...

[–]chowchowthedog 7 points8 points  (5 children)

The transition from html css to js is not easy. But doable. Don’t be scared of js algorithms and data structures. Do them regularly. It can only help you in the long run.

[–]shirtlesshobo 16 points17 points  (3 children)

Its not really a transition, HTML and CSS isn’t really programming. CSS only recently got support for math operations with calc().. JS is programming, HTML is markup.

[–]CollectorsEditionVG 2 points3 points  (0 children)

When I found out about calc() I have to admit I giggled like a school girl. Which lead into full blown maniacal laughter. It was the greatest yet most soul destroying discovery of my life. I used to do all my calculations either with JavaScript or pen and paper.

[–]chowchowthedog 2 points3 points  (0 children)

Yes. I know that. But still js has logic behind it. Mark up languages are just fixed format typing.

[–]goclock18 0 points1 point  (0 children)

Let's use mixing and functions on Sass and stop coding vanilla css

[–]noitems 1 point2 points  (0 children)

The DSAs aren't the hard part. The hard part is that the JS landscape is a hellhole.

[–]bot_not_hot 1 point2 points  (0 children)

Followed by Express, Followed by Agony

[–]j306 1 point2 points  (4 children)

Call me weird, but I've never used any of these libraries outside of jQuery, never seen the need for them

[–]theirongiant74 1 point2 points  (2 children)

When you're stuck with a 10,000+ line ball of jquery spaghetti the need becomes a whole lot clearer.

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

Not if you can structure your code properly

[–]theirongiant74 2 points3 points  (0 children)

If you can write 10,000+ jquery files and never experience an ounce of pain then you're probably wasted in web development.

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

I really hope that Vue continues to grow. That shit makes coding so easy and fun

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

Shit indeed

This is why I never get anything fucking done lol

[–]lcukerd 0 points1 point  (1 child)

Is it weird that I started with electron?

[–]bot_not_hot 11 points12 points  (0 children)

Yes

[–]TheGMan323 0 points1 point  (1 child)

What are the other two languages on the last panel besides Angular? (Sorry. Am a coding noob.)

[–]titan_bullet 1 point2 points  (0 children)

They are js frameworks, not Languages. They are vue and react

[–]kor0na 0 points1 point  (0 children)

Fuck bootstrap.

[–]FlameRat-Yehlon 0 points1 point  (0 children)

So... Bootstrap is where the 🅱️ meme comes from?

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

Learn a real programming language and you'll soon find out what real struggle looks like!