Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

C/C++ Programmers

Name: Anonymous 2011-11-24 12:59

Why must they feel the need to redefine all the primitives with different names?

Name: Anonymous 2011-11-24 14:53

>>1

Most reasonably dedicated programmers have two crippling disabilities:
    - Lack of formal, serious education and experience in the programming area;
    - Some severe social dysfunction, typically in the autism spectrum (but which, contrary to what is usually implied, does not warrant the associated greater-than-average intelligence).

The first disability is reflected heavily on the (lack of) quality of the generated code by the forementioned sufferer. Speaking about C, from typedef structs constructs to the most extreme attempts on creating OO-driven abstractions and horrible "language extending" macros (GLib and the like), such a coder develops some particular paranoia with respect to some set of worries and issues, while completely disregarding other aspects of the (rather difficult, as it seems) art of programming. Unecessarily redeclaring (that is, hiding) identifiers through typedefs and sprinkling around tons of preprocessor directives (#ifdef being the least harmful of them) is just the small part of the problem.

The big part of the problem -- which consumes and have consumed manyears of worldwide work effort to properly settle things down, or to fix the damage these things have already caused, or to prevent future disasters caused by such coding practices -- is the proliferation of coding style cults; in other words, the same bad programming practices turned into some kind of philosophy, or model to follow, ultimately yielding different dialects of the same language, and giving solid ground for the uprising of zalooms of different, though absolutely equivalent on every practical aspect, programming languages.

Sometimes, these cults become role models to idolatrize; in the most severe cases of this disease, and in the most demented of the programming environments, things such as Boost are regarded as the "expert way" of doing things, no matter how senseless it really may be. Just look around. GNU code, which is rather proud of having literally thousands of lines of (extremely bad written) code for a simple ls command, is what runs on the userspace of almost every modern Linux system nowadays. OpenSSL is what covers all of our security needs: http://www.peereboom.us/assl/assl/html/openssl.html. Microsoft code does not even respect the relevant standards. And things go on, as it seems, more crippled at each passing day; and the sole, the single reason of the problem is the presence of extremely uneducated people, which don't have the smallest grasp of the consequences of their acts, kludges and "well-thought decisions" in their Autotools-build-driven, #ifdef sprinkled, type-redefined, extension-dependent, completely undertested pieces of what they call "software".

The second disability perpetuates every damage caused by the first one. Given due time, it seems that programmers are transformed into computers themselves; they lose any ability they may have had in being in contact with more complex, sensible creatures -- human beings. They over-rationalize everything to some really advanced pathological condition, and this is ultimately reflected on the technology directed to the industry, to the development of new tools. From aberrations like the C++ and the Haskell languages, passing through the adoption of entire SQL database servers to store ridiculously unimportant information, without any needs for extensive availability or any features a database system is directed for; and to the development of large-scale projects in completely non-scalable technologies (mostly interpreted languages like Python), it is the result of simply lacking the ability of hearing the others say: "Hey, man, that seems bad." "Are you sure this language/technology is adequate for the problem?" "Uh... all this template metacoding seems cool, but what was our real world problem we were supposed to be solving right now?"

Programmers begin to worship The Machine and rejoice with unbelievable extasis over absolutely worthless achievements, which are deep buried inside an entire ocean of usually bad written (see above) code and which does not give the end user any useful improvement, let alone be anywhere perceivable by anyone. Many times it does not even offer any advance in any area related even to the development itself: it is just a rewrite/refactor/re-whatever, as bad or worse than what it is intended to substitute. How many completely different and incompatible build systems are out there on the wild (gmake, cmake, nmake, BSD make)? How many different and incompatible GUI systems are out there? How many different and incompatible database systems are out there? How many... the list is exhaustively long. Autism: this is the cause. Programmers isolate themselves on a reality bubble, completely adrift to the world outside it. Programmers worship the Computer God, and become themselves a tool of a tool. Worse of all: the malady is so widespread it becomes mainstream, it's a pandemy.

Think about it for a single minute: if you wanted to write a very simple application (whichever it may be) in any currently available technology, which language or technology would you choose? It is extremely difficult to choose. There are so underwhelmingly many (completely different and incompatible in the most basic aspects) languages and resources, and each one of them achieve so few in a very strict group of real-world necessities (which is not much beyond that of simplicity, compatibility and/or performance), that chances are you'll be sticking with what the world has sticked for so long, even nowadays: C. That's right. If you're barely serious about it, you'll do it in C, not because C is good, but because everything else is simply worse. Go figure: there's a reason why 90%+ of the world's software is written in C, crudely or not, but that reason is not that C, or anything similar, is good. Is that programmers suck, and they suck really, really bad, both as human beings and as a tool for a tool.

Oh, by the way, what was the OP's question in the first place? Uh. I don't know. I'm a programmer myself.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List