DEV Community

Discussion on: Don’t be arrogantly ignorant: don’t flame

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.