DEV Community

Cover image for Don’t be arrogantly ignorant: don’t flame
Manuel Odendahl
Manuel Odendahl

Posted on

 

Don’t be arrogantly ignorant: don’t flame

There is a widespread tendency in technology to discuss specific programming languages (and their frameworks) with open contempt. Who hasn’t heard people scoff at how stupid PHP is, how backward Java programmers are, and how criminally short-sighted C++ users are?

Nothing infuriates me more than this open gatekeeping, this active bullying. Putting people down is not valid technical criticism: its only goal is propping oneself up as part of an elite in-group. It is blatantly exclusionary.

Discussing technology should be a dialogue driven by compassion and respect. Not putting in the effort to understand why people made a particular choice, what constraints drove them to it, and most importantly, what lessons you can learn from them. Borrowing the expression from a friend, you are being arrogantly ignorant.

Knee-jerk criticism considered harmful

Gatekeeping is the act of denying people access to resources that you have access to. When you derisively denounce a programming language as wrong or harmful, you are framing its users as stupid and incapable; you are implying they are not worthy of working in technology and should leave.

Such statements show a screaming lack of empathy: everybody starts as a beginner and tries to make the best of what they know — you certainly did, not that long ago. A person learning to program at a young age on their personal computer, with parents in engineering, and then attending a prestigious school is just as worthy of being a programmer as someone attending a boot camp at age 35 and then hustling WordPress themes. Expecting the latter to know about dependent types because the first had the opportunity to work at that level of abstraction is shortsighted at best; privileged, and entitled at worst.

PHP is one of my favorite languages, not just because I got into web programming in the wayward days of PHP2, but because of how empowering it is to beginners. When you write PHP, you always have a running website — the language feeds and sustains your motivation. Fighting pip, setting up a remote environment in WSL, and having to learn vim is why many people drop out or feel they don’t belong.

With the widespread adoption of WordPress, you can, in a very short amount of time, become a professional developer: building websites for local businesses, selling themes and plugins on its marketplace, or joining one of the many consultancies and freelance marketplaces. It is hard to stress how transformative this can be for marginalized communities and people in countries outside of western Europe and the US. PHP and freelancer.com allowed me to go from making sub-minimum wage to being able to make rent in an afternoon.

PHP changed orders of magnitude more lives than Haskell.

Gatekeeping as the actual technological sin

Off-handedly rejecting PHP, Java, WordPress, Javascript, and other oft-criticized languages and frameworks is a sign of a closed mind; of willing ignorance.

People write code trying to operate to the best of their capabilities. They make choices according to what they know, the industry's current state, the constraints of the problem they are trying to solve, the pressures of the market, and their personal lives. Viewed through these lenses and given how wildly successful these technologies are shows how capable and driven their users are.

The only valid reason to publicly criticize a decision is when it purposefully harms people or was made by someone who fully knew that there was a better choice but chose not to for personal gain. I often went for architecture choices that I thought were not perfect: out of time pressure; to help a colleague grow by having them make their own choices; so I could hire from a broader, more diverse community.

Rejecting a programming language outright makes you a poorer technologist. It closes you off to huge, vibrant, diverse communities. The lack of humility causes you to miss the creativity of engaged, practically-minded users. You might never experience the quality of their tools and how good their documentation and onboarding can be. A tool with 200,000 users and 500 contributors will quickly become better than something maintained by 3 people in academia. Beginners who get pull requests on their project in the first week promptly improve their software engineering game.

Being dismissive shows that you are missing the larger context of being a programmer: building products, turning concepts into reality, and working and interacting with others. A programmer is much more than a code monkey narrowly defined by their choice of technology.

By poo-poo-ing these popular languages and frameworks, not only are you keeping people from becoming better professionals; from having access to the knowledge and resources that you have—you are actively stunting your personal growth.

You are staying ignorant out of arrogance.

Instead of criticizing, engage and share

Of course, valid criticism is essential and healthy. While everything is a matter of choice and compromise, some options are better than others; some decisions are obvious mistakes (in hindsight). Learning new languages and approaches is an essential path to growth.

Criticism is valuable when everybody participates in good faith, with mutual respect. One should criticize concrete, technical points—critique shouldn’t be aimed at people and why they made a particular choice. Core contributors to languages such as C, Haskell, Typescript, and PHP have candid, deep, and respectful conversations. They know they each come from a different background, embrace each others’ choices, and know they can learn from them.

Instead of putting a language and its users down, consider how you and your interlocutors can enrich each other's lives. We all love programming, working in tech, and learning. If we understand that we each have our journey, skills, motivations, successes, and struggles, we can all make better choices in the future.

I will forever remember the day someone on IRC praised me for my janky PHP website and told me that I would enjoy “Structure and Interpretation of Computer Programs” by Abelson and Sussman, which transformed my career. Had they told me I was an idiot, that PHP sucked, and that I should be ashamed for having written such blatant SQL injections, I might never have gotten to where I am today.

Conclusion

The next time you feel the urge to criticize something or someone, take a breath and reflect on where that urge comes from: do you want to feel superior, or do you genuinely want to help someone?

We should all aspire to make technology more welcoming — the best way to do so is to approach every situation with humility, compassion, empathy, and a love of technology and its communities.

If you think you know better, then act like it.

Top comments (41)

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️ • Edited

When you derisively denounce a programming language as wrong or harmful, you are framing its users as stupid and incapable.

This is just wrong. There are hundreds of reasons for using a bad programming language like PHP: Working on legacy software, being more familiar with the language, simply not knowing any better, having a need for certain language features, etc.

Making a statement about a language is not the same as making the same statement about its users, and acting like it is risks completely derailing the conversation.

Such statements show a screaming lack of empathy

Again, this is just wrong. Nobody should have empathy with a programming language. Thus starts the aforementioned derailing.

A person learning to program at a young age on their personal computer, with parents in engineering, and then attending a prestigious school is just as worthy of being a programmer as someone attending a boot camp at age 35 and then hustling WordPress themes.

I have little to add to this, other than saying that I 100% agree. How you end up in programming is nothing more than an interesting story to share with fellow developers, not a sign of how good or bad you are at what you do.

Expecting the latter to know about dependent types because [...]

And this is where the entire argument starts rolling downhill again. First of all, it is entirely dependent on context whether someone needs to or should be expected to know about these things. If you don't need it for the job, regardless of whether you've spent 20 years in academia or have stacked bricks until two years ago, then there's absolutely no reason to expect that you should know a thing.

But of course there's another side to this too: Thanks to the internet, everyone has access to this information. Universities aren't magical; all they really offer is make the decision of what information you need to learn and offer an environment for people to learn.

Being self-taught is not an excuse and it shouldn't discourage people from just looking these things up and learning them. On the contrary, our effort should be focused on demystifying these more "academic" concepts.

The problem isn't that we keep people out for not knowing certain things. It's that we keep them from learning these things when they absolutely could.

PHP changed orders of magnitude more lives than Haskell.

Not only is this a very short-sighted oversimplification, even if you narrow it down to just the financial impact these languages have had on developers, it's not like PHP has achieved this success through its many design flaws, but in spite of them. This makes it all the more important to criticise the language for everything wrong with it, in a way that that doesn't really apply to a language like Haskell.


Off-handedly rejecting PHP, Java, WordPress, Javascript, and other oft-criticized languages and frameworks is a sign of a closed mind; of willing ignorance.

Again, this is plain wrong.

Your assumption here is that people who reject these technologies without further thought have never, in the past, put in the actual effort of looking at these technologies and evaluating them. But many people have. Most people who say PHP is shit will most likely have worked with it and, through this experience, concluded that they simply do not see any value in the language.

So really, what you're doing here is dismissing people's professional experience as "Off-handed" simply because it does not align with your personal attachment to your first language.

The only valid reason to publicly criticize a decision is when it purposefully harms people or was made by someone who fully knew that there was a better choice but chose not to for personal gain.

The only valid reason to publicly criticise a decision is when it was a bad decision. Whether it was made due to malice, incompetence or project constraints, a bad decision has no excuse that shields it from criticism.

Rejecting a programming language outright makes you a poorer technologist.

And yet here you are, defending the language you started out with, attacking those who have moved on to other technologies they like more for daring to suggest that the thing you feel emotionally attached to may be so flawed that some people just don't want to go near it if they can at all avoid it.

You are staying ignorant out of arrogance.

There is this thing called the Dunning-Kruger effect. The fact that you attribute disagreement with your position to incompetence, ignorance and arrogance gives me a good hint where you roughly are in your learning process.

Instead of criticizing, engage and share

This is what most people are doing already. This is how most conversations about poor choices of technology look like. If your experience is different, then maybe, just maybe it's your surroundings that are being toxic.

Had they told me I was an idiot, that PHP sucked

Sounds to me like you're fighting Windmills here, but again, maybe you're just stuck in some really toxic communities where something like that actually happens. In my world, I can assure you, it doesn't.

Collapse
 
wesen profile image
Manuel Odendahl • Edited

I think my point is that stating "PHP is hot garbage, nobody should use it" is definitely felt as keeping people out. I know it because people tell me things like "I have kept Javascript from my resume because I have heard so often that Javascript is a bad language. It took me 2 years working professionally to gain enough confidence to put it back." Noone should go through that.

There is plenty to criticize about PHP, and it's necessary and healthy, but you can do so without implying that people using PHP don't know better. It will also not help anybody make better choices in the future.

For example, saying "PHP makes it easy to use and misuse global variables, it is a flaw that has survived mostly to this day" I think is very valid. If you see someone using global variables, there are productive ways of pointing it out. Assuming they should have known, and are responsible for their lack of knowledge, I think lacks compassion.

PHP is far from hot garbage. If your past experience left you with that absolutist statement, then I think you are missing out. I very much have strong criticism about any of the technology I use. There is a huge difference between "PHP is hot garbage" and "I think PHP is hot garbage".

I should have made clear I think that PHP is just one of the many technologies I use. I have worked professionally in Common Lisp, C, C++, golang, PHP, Java, Python, javascript, Typescript, I'm not attached to any of those, although Common Lisp is fondest to my heart. If you read the article, I am not defending PHP as a technology, as much as pointing out that it is used by many to good use.

I'm glad you work in communities where this doesn't happen, but I see this behaviour very often, and I know how much it impacts people who are starting out or who are coming from more alternative paths.

Heck, it even kept me from using Rust for years because I got piled on, called irresponsible and outright criminal because I was working in C++.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

There is a huge difference between "PHP is hot garbage" and "I think PHP is hot garbage".

Indeed. And I would agree with both statements. There's plenty of things that make me personally dislike PHP as a language, but there's also a good list of reasons why I think PHP is objectively a bad language. Things like the inconsistency of built-in function names only make it harder to use without adding anything, while features like OOP add something that others enjoy but I don't personally care about.

pointing out that it is used by many to good use.

Just like how transformer oil is used by many to deep-fry food. That doesn't automatically mean it's a good or a bad thing, it just means that lots of people do it. A more important question is: Could these same people be achieving even more if they were to use another tool instead?

Heck, it even kept me from using Rust for years because I got piled on, called irresponsible and outright criminal because I was working in C++.

Unsurprisingly. As someone who hasn't tried Rust, the two cliches I predominantly associate with the language are transgender cat girls nyaaa~ and elitism (from my experience, these two seem mostly disjoint though).

As far as community involvement goes, most of my experience is with the Lua community, which is rather small, so that may be an important factor. Most of the interactions I've seen are generally more leaning towards "PHP is shit, here's why, here's some alternatives and if disagree I'm curious to hear your opinion" (replace PHP with any other hated technology).

In other words, people have the same strong opinions as anywhere else, but with a healthier attitude towards different perspectives.

Thread Thread
 
matthieu_rolland profile image
Matthieu Rolland • Edited

PHP is good at what it does: web oriented OOP.

PHP 8 is a joy to use and the ecosystem is insane: there are few web frameworks as good as Symfony out there... Django or Rails don't match Symfony.
Some php devs prefer laravel but I personally don't like when there's too much magic.

My point is that in the industry, very few teams use php without Symfony or Laravel's tools. They also mostly use things like static code analysis tools to catch edgy errors.

Some will argue that if those tools are needed then the language is bad... Maybe, but I don't know any language that would make me more productive than PHP and Symfony for doing SOLID server-side programming, not even nodejs.

Slack dev team wrote a great article about why they they came back to PHP for their server side stuff.

slack.engineering/taking-php-serio...

Collapse
 
wesen profile image
Manuel Odendahl

Thinking a bit further, "I think PHP is hot garbage" is much less valuable an opinion to hold as "I think PHP is hot garbage because I ran into these issues XYZ, and PHP made it possible. It wouldn't have happened if we had used W, etc...". When I dislike something, I try to think very deeply about it, often read old bug reports and commits to see why someone built something a certain way. I often learn something about the context in which a decision was made.

It doesn't change the technical impact, or that certain things should be avoided, but it is a richer, deeper approach to technology.

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

As I already said though, assuming that other people, just because they don't want to give you the full essay on why they hate what they hate, haven't also done the exact same thing and put in a lot of thought seems like you have a rather low opinion of your fellow developers.

Sure, there's always some knobheads who just hear that a thing is bad and repeat it because it's what they heard, but I don't think it's the majority of criticism, at least not in any online space worth staying in.

Thread Thread
 
wesen profile image
Manuel Odendahl

Thanks for the conversation, and you have a good point there. People can definitely make broad inflammatory statements out of frustration, certainly I did with this article. But I think it's easy to forget how hostile technology can be, especially for people who don't fit the usual mold.

I have been mentoring quite a few people as well as hanging out in a lot of communities, and daily I will see someone explicitly putting not just a language down, but its users, often personally and viciously. I also hear the impact it has on people who come from very different backgrounds, and don't have the confidence to ignore hot takes.

For example, I am autistic, and I take things very literally. Hearing someone calling modern Javascript a scourge and that it destroyed the web pretty much means "You are evil and destroyed the web", and it takes a lot of effort to interpret things differently. It took me 10 years to actually ask for a decent hourly rate, because someone online told me that real programmers know the full stack from the CPU all the way to the graphical interface, which led me down years of studying ASIC design all the way up to type theory, until I realized that real programmers certainly don't know the full stack, and still make a living.

If you don't like a technology, and genuinely want to help people move away from it and get better, I think it's vital to check yourself and see how you can be productive. For example, I genuinely want to hear what you like about Lua, what you dislike about PHP, and vice versa. Now, when I'm talking to my buddies in private, flame away, since they know where I'm coming from.

There is also value in practicing how to communicate these kinds of criticism at the workplace. That's for example why I wrote my article about RFCs.


I definitely have a very high opinion of my fellow developers, and the only thing I find despicable is bullying and putting the work of others down.

I'm definitely trying to find my voice with these articles, my "just be kind" takes on the problem got a very different traction than the more forcible ones. Talking with you helps me refine what I take, and indeed, be more empathetic myself.


The point I wanted to make with "public" criticism is that there are people listening that might take your words differently than just "someone doesn't like XYZ because of their experiences".

The latest experience that ultimately making me write this article was being at a conference, and hanging out with people who out of grad school got a haskell job, calling java programmers "brainless drones that can only program because of their IDE."


What I might expand upon with regard to rejecting technologies say, on their pure technical merits, misses a lot of what programming and technical strategy is in practice. There is always a larger context, and for example WordPress, as much as a despise it when I bang my head against its database schema, is a reasonable choice for say, a small business that wants to self host. As is JAva if you come into a big, completely delusional codebase entirely written in Java.

That might of course not be the kind of work you want to do, and noone forces you, but it's definitely not worth such harsh words.

Collapse
 
stojakovic99 profile image
Nikola Stojaković

This. You like PHP? Okay, great, keep doing it. But don't pretend like all languages are same because they clearly aren't. You can't compare a language which was designed in a small period of time as a small group of utilities with a language designed by people with PhDs in a long period of time and which is used for completely different purposes.

Collapse
 
wesen profile image
Manuel Odendahl

Of course you can compare them, that's fruitful. PHP has also tremendously evolved since the early days. If anything, I benefit a lot from my knowledge of haskell and functional programming / category theory concepts when writing PHP. The article is not about any technology, but the fact that putting down a language in order to make yourself seem smarter is harmful.

I love both PHP and Haskell. What I don't like is Haskell programmer thinking PHP programmers are idiots, or, conversely, PHP programmers thinking Haskell programmers are ivory-tower headscratchers that don't know how to ship stuff. Plenty of very smart people have invested a lot of time and effort into both ecosystems.

Thread Thread
 
stojakovic99 profile image
Nikola Stojaković

It has evolved but it's nowhere near the Haskell's level. That's a fact. I'm not saying it should be though - they are made for different purposes. Both serve their needs.

Thread Thread
 
wesen profile image
Manuel Odendahl

100%. In many ways, Haskell's strength is to be a playground of evolution, while PHP benefits from keeping its roots, as ugly as they might be.

A big strength of PHP is the existing ecosystem around it and its widespread adoption, partly because a lot of messy legacy systems are still around and run "fine" (fine as in, they work well enough that nobody has replaced them with something else).

I love experimenting and prototyping in Haskell, writing what I thought would be a simple API server with servant really did my head in.

There are many concepts I experiment with in Haskell that I can easily transpose to PHP.

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

I have a feeling you might enjoy Lua 😅

Thread Thread
 
wesen profile image
Manuel Odendahl

I had some good times with pico8! Made a couple of games with it. Quite a few of my buddies are into it, I haven't fully had the need for it so far, but it is quite enticing indeed. I was planning on building some with fennel-lang.org this summer on my sabbatical, but of course many other things were interesting too.

Thread Thread
 
wesen profile image
Manuel Odendahl

The problem with gamedev is that your code turns to garbage super quickly. And sadly coroutines are quite expensive on pico8, if i remember correctly:

github.com/wesen/carts/tree/master...

It felt very "javascript"-y, in the sense that the prototypal inheritance and the coroutines allow you to experiment with a lot of different programming styles/patterns without feeling friction.

I heard great things about the JIT but never looked closely into it.

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Yep, it shares a lot of features with JavaScript, but between coroutines, TCE and the more powerful tables compared to JS objects make it better suited, in my opinion, for just playing around with some cool FP concepts.

The landscape of languages that compile to Lua is also quite interesting; there's at least two lisp dialects (urn and fennel), a coffee-script-like with two different dialects (moonscript and yuescript) and even an ML-like (amulet)

Thread Thread
 
wesen profile image
Manuel Odendahl

My current "language I want to make some money with so I can call myself a pro" is rust, which I finally picked up after being turned off of it for a while. It's really a solid improvement over C++ in the bare-metal / embedded space. After that, Lua is high on the list (or retirement, hopefully :). Any resources you particularly enjoy?

Collapse
 
leob profile image
leob • Edited

Great post, well written, this deserves more likes!

I think that the tendency of people to put others down (and big themselves up) mostly stems from their own insecurities, and nagging feelings of inferiority ... psychology 101 :)

It's a form of bullying, not that different from classical schoolyard bullying, and driven by the same motivations. I think once people realize this, they might be inclined to stop doing it - as it's not a good look at all, ultimately you're just putting yourself down.

Collapse
 
jmfayard profile image
Jean-Michel Fayard 🇫🇷🇩🇪🇬🇧🇪🇸🇨🇴

Not even that, it's simply the ego being dumb.

No true engineer will ever admit publicly that someone else has a better solution than he has.

Collapse
 
leob profile image
leob

Well then I'm not a true engineer, because if I see that someone came up with a better solution then it's easy for me to admit so ;-)

Thread Thread
 
jmfayard profile image
Jean-Michel Fayard 🇫🇷🇩🇪🇬🇧🇪🇸🇨🇴

then you are not a true engineer and the maxim holds true
en.wikipedia.org/wiki/No_true_Scot...

Thread Thread
 
leob profile image
leob • Edited

Haha nice one, a classic fallacy ... no "true" engineer would ever admit they're wrong!

Anyway, some people (and I tend to agree with them) say that "software engineer" is a bit of a misnomer - what most of us do is probably more "art" than "science" ... so, personally I rarely (if ever) use the "software engineer" moniker for what I do, "software artisan" comes closer, but I'll simply stick with "developer" :-D

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

More than art, I'd just call i tinkering. Large parts of the potential artistic side of programming usually gets destroyed by business goals and what we end up with is FizzBuzz Enterprise Edition.

Thread Thread
 
leob profile image
leob

Yeah lol not even "art", tinker is what we do :-D

Thread Thread
 
jmfayard profile image
Jean-Michel Fayard 🇫🇷🇩🇪🇬🇧🇪🇸🇨🇴

Personally I say that we are like journalists. We are bombarded with problems all the time we don't know much about, and our main skill is to investigate and to learn whatever is needed

Thread Thread
 
leob profile image
leob

Hadn't looked at it that way, but when I have to maintain old legacy code I feel more like an archaeologist :)

Thread Thread
 
wesen profile image
Manuel Odendahl

I love legacy code. You can look at weird stuff and then look at the git log and who worked on it and recognize how it came to be. It's fascinating.

Thread Thread
 
leob profile image
leob

It is indeed! The tragedy however is that we'll then be inclined to proceed and replace that poor old cute legacy code with shiny new start-of-the art hipster code, lol ...

Thread Thread
 
wesen profile image
Manuel Odendahl

And be just one more commit for the next archeologist to find :)

Collapse
 
wesen profile image
Manuel Odendahl

I know I was prone to flaming when I was a teenager, and I wish I had known better at the time. Being inclusive, pragmatic and welcoming is now one of the things dearest to my heart.

What is your take on flaming?

Collapse
 
pinotattari profile image
Riccardo Bernardini

When you derisively denounce a programming language as wrong or harmful, you are framing its users as stupid and incapable.

False.

An example: I really do not like PHP, JavaScript, C and C++, but every now and then I use them because I cannot help. According to your claim, I would frame myself as stupid and incapable. Maybe I can have some self-esteem issues, but not so serious...

The reason for my dislike of said languages is their frailty, that makes too easy to introduce bugs. For example, the fact the PHP and JS try to convert everything in everything else is, in my opinion, a huge issue. Someone could find it convenient, in my experience a strongly typed language catches many bugs already at compilation time. I am willing to pay flexibility to get back resiliance and reduced debug times.

C gives you a lot of freedom, too much, in my opinion. C assumes that you know what you are doing and trust you; with time I maturated the idea that this assumption of C is too optimistic: people make error, even professionals with lots of experience do; therefore, you need a language rigid enough to prevent you from doing silly mistakes (which are the huge majority of mistakes out there). Someone sells C saying that being so low-level is very efficient; but I am quite skeptical. With modern CPU is not so obvious what is more efficient and, moreover, many "C optimization by hand" construction (i.e., using i++ instead of i=i+1) are easily done by optimizers (this kind of optimization were common already in the 80's),

C++ attaches the complexity of OOP over the frail basis offered by C.

Said that, this says nothing about who uses PHP, JS, C or C++. Maybe you use it because you cannot help (if you want to do web programming there is not much choice); maybe you see as an advantage what I see as a big issue (type "volatility" of PH/JS or the flexibility of C), maybe there is some other reason; honestly, I do not care. It is as with food: I like truffles, but maybe you find their aroma too strong. OK, who cares?

If we know each other since long time and are friends, I could tease you for your choice of programming language (and you could do the same with me), but it is more a "bro-like" joking and none get offended.

In case you are curious, if I get to choose the programming language, I use matlab (octave, actually) for number-crunching, Ruby for scripts and fast-and-dirty stuff and Ada for programs of medium to large complexity and/or very long lived.

Collapse
 
wesen profile image
Manuel Odendahl

I think maybe I need to formulate my point a bit differently, because I think we completely agree.

I want people to do exactly what you are doing here: a constructive discussion on why you don’t like Javascript for say, lack of type safety and maddening type coercion (exactly my pet peeve with JS, C and to some extent C++).

But saying “JS is flaming hot shit and people who use it are destroying the web” (you wouldn’t believe how common that is), is lazy and ignorant. I think even just saying “JS is flaming hot shit” without saying “I think JS is flaming hot shit” is insulting to JS users, and it also closes you off to some of the good things in JS.

For example, I like C++ quite a bit, but I use almost no OOP patterns in it. I use the templating to enforce strong constraints on my types (for example to dismantle type coercion), and abstract virtual classes as more of a “trait/interface” like pattern. Discussing C++ at that level, comparing it do Ada and how you can use either language to enforce constraints, pre conditions, etc… Great discussion, and we both know neither language is shit, nor are its programmers.

Matlab/octave is one of the languages I often see get shit as well. Mention matlab and someone is bound to say it’s utter garbage because arrays start at 1 or some nonsense. That’s what I am addressing in this article.

Collapse
 
aschwin profile image
Aschwin Wesselius • Edited

People who flame like that and choose to stay ignorant, should never become parents. Young children, especially babies, are dependent on guidance and support for growth. With the attitude of ignorant aggressive bullies, these children would perish within two weeks. THAT is how fragile a child's life is.

And why would we think that in our adulthood we would be less susceptible to this behavior and attitude? It is devastating!

That's also why the "ubuntu" mentality has been adapted by a broad range of acumen in IT. When one wins, everyone should win. If one is let down, we all should feel as if it's us that is suffering.

Arrogance is a spirit killer. No good comes from it. And it should be a focus to eradicate it everywhere, especially on the work floor.

We've seen millennia of years of results of what arrogance leads to. It's the single most attributing factor leading up to fights, wars, conflicts everywhere.

And if arrogance is all you've got, I pity you. Because that means you've never learned to grow up. You think you're big and important, but all you are is a miserable piece of burden.

We all have our struggles, we all have our past and we all have our opportunities to cease every day. That makes us unique. Not better, not worse. Unique. So nobody is having a head start or is winning. You might ace in fields and suck in others. That's fine. But don't bring others down because of their struggle in areas where you thrive.

The Netiquette is something less and less people are aware of. It should still be the standard online.

Collapse
 
wadecodez profile image
Wade Zimmerman

PHP, Java, Python, C++, etc. get a lot of hate, because they are so popular that you're guaranteed to come across absolutely atrocious code.

Unfortunately, capitalism rewards quality products/services not quality code. On top of that, most devs only master one language/stack.

Also, the SO survey doesn't lie. Some languages are truly awful. Like C++.

Collapse
 
manuartero profile image
Manuel Artero Anguita 🟨 • Edited

What I was thinking while reading this was, ok there are toxic communities out-there. this guy seems to be fighting that.

Just to reply an specific:

Rejecting a programming language outright makes you a poorer technologist.

I kinda disagree here. In the end, personal preferences matter. If you just don't feel comfortable in a language/ecosystem you better change to another one you do like.

Personal example: I do not like python (the ecosystem, the tools, the docs), so I avoid it as much as i can - I'm just happier with js. It does have use cases, but If the decision is on me, I will try other alternatives

Good post!

==== EDIT ====

I've just read again your quote: you said " rejected a p. language outright"

So I do agree xD

I was replying to : "rejecting a p. language makes you...."

My point is: you can have preferences and avoid those tools you just don't like... But extremism is always a bad thing 👍

Collapse
 
wesen profile image
Manuel Odendahl

That's totally fair. But saying "python is hot garbage" makes you miss potentially miss out on say, the jupyter ecosystem, maybe new patterns and libraries, or just being able to maintain a python codebase when needed.

Of course, you don't have to do any of those things, but there is a difference between "python is not for me, I have better uses for my time" and "python sucks and there is no value whatsoever in it."

I personally have strong distaste for python, especially for bigger projects, but I see the good in it, and surely if someone comes to me with a cool python project I won't reject it outright because it's in python.

Collapse
 
glenn_miller_860ba12ffbf7 profile image
Glenn A Miller

Arguing passionately about programming languages has been around since the second language was introduced.

I've lived through 47 years of the phenomenon and never have tired of participating. VB.NET is your gig? I have empathy. My advice? Move on from that job.

The arguments expose the pros and cons of languages, which are helpful the next time you choose one for a project. In the 80s, the emphasis was on speed and memory. That's something I still take seriously. You won't find me writing code that's interpreted or JITed or garbage collected when high bandwidth or transaction counts are involved. I'm saving the company money and doing my part for the planet.

I don't begrudge anyone of their languages of choice. Most are faster to develop and maintain. If I wanted to understand data science, I'd start learning Python. I've done an awful lot of Windows and browser programs in C#.NET and enjoyed it.

The right tool for the job is the thing.

Having said that, VB still needs to be eliminated from computing. 😀

Collapse
 
renancferro profile image
Renan Ferro

Wow, perfect article! I'm a beginner too and it's almost common to see arrogant people idolizing X technology. I think that many time people appear to be experienced but don't know basic things!

Collapse
 
pllffrd profile image
pllffrd

You should rewrite this article in rust…
I think I agree with the main sentiment here. Thanks for writing!

Collapse
 
vitalipom profile image
Vitali Pomanitski

I needed it so much 🥺

Collapse
 
igmuska profile image
igmuska

Does this mean we can't hack NASA anymore with the beginners? I was just adding Starlink hack to that fun hack...

Collapse
 
incrementis profile image
Akin C.

Hello Manuel Odendahl,

thanks for your article.
It's easy to read and feels very emotional without being offensive, which I respect a lot.

I agree with "Discussing technology should be a dialogue driven by compassion and respect.".
I also don't like gatekeeping and I think it's a lack of education on how to approach issues without being harmful.

I once heard an interesting phrase that goes like this: "Don't criticize beginners but help them grow because a beginner doesn't yet have the knowledge to understand criticism or if the criticism is even valid."

Some comments may only be visible to logged-in visitors. Sign in to view all comments.

Dark Mode

🌚 Friends don't let friends browse without dark mode.

Just kidding, it's a personal preference. But you can change your theme, font, etc. in your settings.