Hacker News new | past | comments | ask | show | jobs | submit login

I know I shouldn't be turned off by this, but I so am. And I'm starting to dislike the dev-community more and more for each day I try to learn programming myself. Elitism at its worst.

I guess it started a few years back when I started an introductory programming-class at university where I was supposed to learn Java. I had already tried some light-weight languages like HTML and CSS and felt comfortable modding Wordpress-solutions. At the time, I studied a non-tech minor, and worked at an it-consultancy with a bunch of guys roughly my age. We were pretty good friends, but I strongly remember how they ridiculed Java as being old and outdated, and how I was wasting my time trying to learn more than the course expected of me. And it actually turned me off a lot, mainly because I thought these guys knew what they were talking about.

About a year ago, I tried my way with python for web-scraping and some light scripting, but ran into the same ridicule by a co-worker where I had my internship.

This february I finished my liberal arts'ish IT-master degree, and decided that I needed to learn how to do some code in order to get better at my job, and understanding it and tech in general.

This time, I'm focussing on FreeCodeCamp, and I'm dedicated to learn Javascript and front-end development. Because I've realized that there will always be people who trash-talk other languages, and I've learned that no languages are better or worse than others. I just think it's so frustrating asking for advice online when you run into people who fanatically defend one coding-language as "the only one" and trash talk everything else.

So fuck the haters - I'm learning Javascript, and it's gonna help me build some super cool apps that will help a lot of people!




You seem to be taking this personally, as if someone criticising a language you've chosen to learn is criticising you.

That seems like an odd reaction. It's perfectly possible to say "JavaScript is crap" without also implying "And everyone who learns it is an idiot. Including you."

It's actually useful - really, really useful - to understand where these strong opinions come from. As a beginner/outsider you may not understand a lot of the criticism, and when you do understand if you may not agree with it.

But the standard criticisms of all the popular languages are directly linked to how well programmers at all levels can work with them.

So if someone has an opinion about Java, they're really saying "I think Java is a bad language because..."

They may also be saying - and often are saying - "I know a lot about programming because I have a strong opinion about this."

What they're not saying is "You're an idiot" - because most often if you ask someone, they actually have no opinion about your competence, probably don't know enough about you to assess it (unless they've worked with you for a while) and realistically aren't all that interested in a random stranger anyway (unless they have a good professional reason to be.)

So the next time someone criticises a language, ask them why they don't like it, and ask them what they'd recommend instead and why they'd recommend it.

You don't have to agree with them or take their advice, but their reasons may help you understand why we have so many different languages, why no one is really happy with any of them, and why secretly pretty much everyone wishes the whole scene was simpler, better, and less frustrating and imperfect.


I don't make fun of JavaScript except in the company of fellow JS coders.

I think it has great aspects, and awful aspects, from a technological and just logical perspective, and I suspect even its creators would agree.

Still, I am too weary to see it as anything but a part of the reality of software in 2016. The language was designed in a hurry for commercial reasons, and subject to entirely different design constraints compared to, say, Haskell, which was designed by an academic committee over several years and with no demand for fast shipping, implementation, or familiarity for mainstream coders.

"Wat" to me is a satirical expression concerning the illogical and frustrating situations in which we nevertheless find ourselves needing to operate.

Despite my general appreciation of the language, it hurts me, and "Wat" is a warning that reminds me to be very careful with the treacherous semantics.

(But then, few languages get equality right.)


trash talk can be important(o)

the wat video in particular is more than an attempt at insulting javascript

it is an education, and an important one

one of undefined or odd behaviour

it strengthens anyone who watches it because you can move past the 'am i the only one who thinks this is odd' into the 'this is the spec, my work needs to be mindful of it, and now how do i use this knowledge to my advantage'

(o) edit: instead of 'can be' it used to say 'is', but i prefer specialists' quantification


Trash talk can be an antidote to groupthink, fanaticism, stampeding of the toads.


I write A LOT of javascript.

I would not discourage you from learning it at all, in fact I highly encourage it if you are starting out.

HOWEVER...

You really need to understand the limitations of the language.

It is poorly designed. It is infuriating to work with.

As far as the js ecosystem is concerned:

The community is fragmented and largely unreliable. The workplace is becoming increasingly saturated.

At the end of the day you should just learn what you want to learn, and like you said "fuck the haters". That's why I started learning Haskell a few months back and I'm really enjoying it.

The longer you blame ridicule and others opinions for your procrastination, the longer you will regret not learning to code.


The mockery/bullying that happens around technology decisions in the field is regrettable. It's really unfortunate that this kind of behavior turned you off of programming or any curious pursuit. That's not cool. Definitely do not let this attitude affect you at all.

But it's also not a behavior that is particularly uncommon outside of software. It's a kind of tribalism that you often see in communities everywhere. Sometimes people get picky and petty over their interests, careers, hobbies, etc. Game console choice, child-raising, criminal justice, fashion, anywhere the word "proper" is used. People are quick to get emotional about things they care about, and act out of emotion. I'm not excusing it, but it's pervasive. I know I'm guilty of it sometimes.

I hope I've never turned anybody off of learning with that kind of attitude.


I don't want anybody to get turned off from anything they want to do, but I think it's worth realizing that we used to see tribalism as a badge of honor. You don't feel like you belong when you're young or just starting out because you don't yet belong.

I remember reading programming blogs when I was starting to program and instead of feeling like those guys were elitist jerks who were excluding me, I thought, man, you know, I want to someday know as much as they do.


The ones you wanted to emulate were probably not the elitist jerks, at least, I hope so :-)

The really good ones will usually go out of their way to help neophytes.


Nobody hates what you can do with Javascript, they -- and I -- hate Javascript itself, a programming language that had to die the day it was born, but survived because it conquered the platform it was placed so spontaneously that nobody had the chance to replace it with something better, and then it became irremovible with a standard, which nowadays is as stable as a ball on a tilted surface. Still, if you manage to tame the beast to make something useful like say Gmail and Pocket, nobody will, well, most people won't nag you.


Like one other responder said: Please don't take it personally. I don't know anybody who says they hate JavaScript means that they hate JavaScript programmers or think less of them in any way.

> and I've learned that no languages are better or worse than others

This is decidedly untrue. Even if languages which are Turing Complete are strictly speaking equivalent, you should be easily disabused of this notion by simply trying to implement any algorithm of your choice in JavaScript and then trying the same in Brainfuck.

(Yes, Brainfuck is obfuscated on purpose, but I'm just trying to make the point crystal clear. The same thing applies to other comparisons, just to a lesser degree.)

Think of "Language X is better than Language Y" as a comparison operator for a partially ordered set.


So fuck the haters - I'm learning Javascript, and it's gonna help me build some super cool apps that will help a lot of people!

It sounds like the trash talk you encountered actually taught you a very important lesson, in the end.


Pick a language, any language, announce you are going to learn this language to accomplish X task. Guaranteed you will find a huge number of dissenting and confusing opinions as to why your language sucks for task X and you really should use language Y, where Y is a member of the set of every other language.

Stick with a language you find fun and useful. If that changes, well just pick up a new language, it is better to be doing and making mistakes and learning, rather than trying to find the perfect language for you - there is no such beast.


> and I've learned that no languages are better or worse than others

I don't think this is True though. Languages are different, and there is no 'best' if you stick to very broad standards of 'best'; But certain languages certainly have better net utility then others, relative to the market.


Since JavaScript is the only way to achieve a lot of things people want to do it is not going anywhere, even when the craze for server-side JS eventually dies.


my biggest interest in server side js is what i call offloading

i have server side code that can do a lot of heavy data calculations, and i client side code that can do a lot of heavy presentation calculations, and then i have the internet as a connection between them

since the presentation layer is burdened by needing to be sent to the client over the connection i have a constant optimisation interest in the size of the client code

if i am concerned about the time and data cost on the client, i can do a lot of presentation calculations on the server and send the results stead the source that found them

alternatively, if i am unconcerned with the time and data cost on the client, i can send more server code to the client to offload some of the work to relieve the server

because of this constant optimisation interest i always duplicate my server functions, whatever language they may be, in the presentation source.. currently javascript.. and vice versa

so i can decide on the fly where any function will run when situations define the optimal configuration

server side js would limit the extra work in some cases

but i doubt i'd utilise it because i find the transliterating step to be valuable in hardening the code and logic underlying


Well, you don't really need server-side JS to do that, but I can see how it would save some work.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: