Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: There's a level in Hell reserved for ________

by mowgli (Friar)
on Feb 28, 2003 at 08:52 UTC ( [id://239371]=note: print w/replies, xml ) Need Help??


in reply to There's a level in Hell reserved for ________

NOTE: Read with caution and flame-proof outfit. :)

There is a level of Hell reserved for...

  • ... people who confuse the usefulness of a language with whether they personally like it (this especially seems to be true when it comes to python zealots, although certainly the vast majority of python programmers are a very nice bunch).
  • ... people who sneer at perl because it is "just a scripting language" instead of a "real" programming language.
  • ... people who claim that any perl program that is bigger than what fits on one 80x24 screen is inherently unreadable.
  • ... the decision to not include a proper switch statement in perl. foreach etc. may work, but it looks like an ugly kludge to me (or at least ugly).
  • ... people who use variable and function names such as $a, @b, %c and &d and the like.
  • ... people who use variable and function names such as $a, @b, %c and &d and the like and expect you to maintain their code later on (or leave the job/project/whatever for other opportunities so you don't even have a choice).
  • ... people who think that OO is always the One and Only way to go (after all, that's what OO means, right?).
  • ... vi.
  • ... software patents, the people who grant them and the people who apply for them (and a very special level this is indeed!)
  • ... people who have no sense of humour.
  • ... people who think that orthogonality in a language is a good thing.
  • ... people who limit what you can do in a language so they can build compilers more easily.
  • ... people who advocate the use of modula, pascal, oberon or other such languages. :)
  • ... people who consider certain programming techniques (like goto, but it surely is not limited to that) to be harmful as such, instead of being able to see them for what they really are - another tool that you can choose to use or not use, and which is not inherently good or bad on its own.
  • ... people who think that code is not free speech and should not be protected as such (might be better to not send some of these people to hell at all, though, lest they'll be offered jobs down there).
  • ... people who don't test their code before checking in.
  • ... people who insist perl is never the right tool.
  • ... people who insist !perl is never the right tool.
  • ... people who program their user interfaces with Tk.
  • ... random acts of management.
  • ... people who don't know what subroutines are for.
  • ... people who keep re-inventing the wheel instead of focusing on the actual work that needs to be done.
  • ... people who keep re-inventing the wheel and keep getting it wrong.
  • ... people who insist that you need to refactor existing, working and less-than-completely-ugly code instead of writing those important missing bits, just because, well, you have to refactor your code after all, don't you? it's just hip and shows how great a programmer you are!
  • ... probably many others I haven't thought of, but this is enough steam-blowing for today, I guess. :)

--
mowgli

Replies are listed 'Best First'.
Re: Re: There's a level in Hell reserved for ________
by chromatic (Archbishop) on Feb 28, 2003 at 17:31 UTC
    ... people who insist that you need to refactor existing, working and less-than-completely-ugly code instead of writing those important missing bits, just because, well, you have to refactor your code after all, don't you? it's just hip and shows how great a programmer you are!

    Done properly, supported with unit tests, as part of a disciplined schedule of writing simple, test-driven code, it's only the best way I know of to produce code that can be changed as easily as possible in the future.

      Amen. I always think about it as pre-emptive maintainance.

      Of course, if you only have one day to implement feature X you implement feature X rather than refactor existing code.

      However, the fact that you only have one day indicates larger project scheduling problems - exactly the sort of problems that unit tests, test-driven code and continual refactoring can help with.

      "Done properly" is the key point here. ;) If that's the case, I do agree with you, too, but there are also people who simply rewrite their existing code just for the sake of doing so, transforming it from one state to another one that's different but not really more easily maintainable, easier to understand or showing any other quality that would justify the time they invested in doing it. And there are also bosses with at least somewhat pointy hair that use micromanagement to make *you* do that, even if they are otherwise quite reasonable to deal with. :)

      --
      mowgli

Re: Re: There's a level in Hell reserved for ________
by Anonymous Monk on Feb 28, 2003 at 10:13 UTC

    Excellent formatting! I was getting very tired of reading "There's a level in hell reserved for.." before every point in the preceeding posts. I recommend everyone adopt this format or at least something along the lines of TALIHRF.. (which is FRHILAT spelled backwards! Wait, that doesn't mean anything... ). Anyways commenting on formatting isn't enough substantial content for a post, so I'll proceed to off my insights on your (as of yet unread) points:

    people who confuse the usefulness of a language with whether they personally like it

    I concur. To expand on this slightly I should mention this especially applies to highly specialized languages and those in a different paradigm than the programmer is used to. For example, someone who has only programmed in c, java, and perl may think prolog is entirely useless while someone extensively involved in AI programming may think it's the best thing since beer with skittles. Moral of the story: you haven't programmed everything yet (if you have, I have a job for you), so you don't know how useful a given language could be. Oh, and 5 points off for referring to python programmers as zealots (python rocks!).

    people who sneer at perl because it is "just a scripting language" instead of a "real" programming language.

    Ah, the age old question of Do scripters suffer discrimination? (it's a slashdot link, don't bother). Well, sadly scripters will always be second to us real programmers. Disregard all you here about "programming is programming" the only people who say that are TCL programmers anyways. Real programmers use real languages, like Python and Perl ;-).

    the decision to not include a proper switch statement in perl. foreach etc. may work, but it looks like an ugly kludge to me (or at least ugly).

    I group switch in with goto as ugly, unmaintainable, brute methods of programming. Perl's a very high level language, use it like one!

    vi

    And emacs, yuck, talk about being left in the 70s. Use kate, take back the mouse!

    software patents, the people who grant them and the people who apply for them

    Do not blame those who apply for them, they can't pass up the opportunity when there competitors have it as well. The problem lies with those agencies that grant the patents out of ignorance.

    people who insist perl is never the right tool.

    I disagree.

    people who insist !perl is never the right tool.

    I disagree ;-).

    Okay, now I'm just getting silly. Nice post and goodnight :).

      people who confuse the usefulness of a language with whether they personally like it.

      I concur. To expand on this slightly I should mention this especially applies to highly specialized languages and those in a different paradigm than the programmer is used to. For example, someone who has only programmed in c, java, and perl may think prolog is entirely useless while someone extensively involved in AI programming may think it's the best thing since beer with skittles. Moral of the story: you haven't programmed everything yet (if you have, I have a job for you), so you don't know how useful a given language could be. Oh, and 5 points off for referring to python programmers as zealots (python rocks!).

      I'm sure it does - I haven't tried it myself yet, mostly because I'm not fond of the idea that the amount of indentation of a line defining semantics rather than just reflecting them, but I don't really know much about Python at all, so I can't speak on it.

      Neither do I want to, btw; I think there is nothing wrong with Python, Python programmers, Python developers or whatever. In fact, the whole zealotry thing is of course not limited to Python at all, but since my personal experiences in this regard have mostly been with Python programmers (who also disliked Perl a lot, to say the least), I mentioned those.

      Sorry if I stepped on anyone's toes - I wrote "python zealots" to distinguish them from "python programmers", not to imply that the latter were necessarily the former. :)

      Apart from that, I agree that there a lot of cool languages for all sorts of jobs; Prolog is one of them, of course, and Erlang also comes to my mind right now. I think that Perl is usually either a good tool for a given job or can be turned into one relatively easily, but it is not *always* the best tool, and using Perl for everything just because it is Perl would be zealotry as well, I guess. :) Everything has its own linguistical niche (even Malbolge).

      Oh, and as far as having programmed in every language is concerned - I guess that's impossible. In one of my introductory courses to computer science (longer ago than I would like to think - goodness, I'm feeling old), the professor mentioned a compilation of known programming languages from 1972 (!) that listed more than 700 of them. I guess a lot of these aren't around anymore today, but I also think that a lot more have been invented, so not even a Leonardo da Vinci would be able to learn them all. ;)

      ... people who sneer at perl because it is "just a scripting language" instead of a "real" programming language.

      Ah, the age old question of Do scripters suffer discrimination? (it's a slashdot link, don't bother). Well, sadly scripters will always be second to us real programmers. Disregard all you here about "programming is programming" the only people who say that are TCL programmers anyways. Real programmers use real languages, like Python and Perl ;-).

      TCL - that's another one I have never really looked into (but which I don't feel the need to look into, either). :) On a serious note, the people who I mostly heard this from where the same who thought that languages should be as simple and limited as possible (so the compilers would be less difficult to build) and that functional programming languages were automatically, inherently superior to imperative languages. Now, I do think that functional programming is a cool thing myself, and a very interesting approach, but things like this always leave a bad taste in my mouth - it's basically just slapping labels on things and then arguing on what's better based on what the labels say, rather than based on the inherent qualities and merits of the things themselves. The same happens with regard to computers etc. in general, too (linux vs. *bsd, for example, solaris vs. linux, sparc vs. x86 and all that), and in fact, it's not even limited to computer science-related topics, but I think going further into that would be completely off-topic now. :)

      ... the decision to not include a proper switch statement in perl. foreach etc. may work, but it looks like an ugly kludge to me (or at least ugly).

      I group switch in with goto as ugly, unmaintainable, brute methods of programming. Perl's a very high level language, use it like one!

      TMTOWTDI. :) Anyhow, why do you think switch (or goto, for that matter) is a low-level language concept?

      ... vi.

      And emacs, yuck, talk about being left in the 70s. Use kate, take back the mouse!

      I personally found joe to be best-suited for my needs - if you ever tried running X applications (KDE or otherwise) over a dial-up line, you'll know why I prefur the console for now. ;)

      ... software patents, the people who grant them and the people who apply for them

      Do not blame those who apply for them, they can't pass up the opportunity when there competitors have it as well. The problem lies with those agencies that grant the patents out of ignorance.

      Indeed. But still, even applying for software patents as a purely defensive measure is a dangerous thing at best, not to mention that it shows how fouled-up the situation is, anyway (defensive measures were not exactly the initial idea behind patents, after all). I don't blame companies like Red Hat for getting patents on certain things that came from their labs, but I don't think this is the right way to go, either. In the words of Mahatma Gandhi (not literally quoted), "there is no way to peace - peace is the way", and I think that holds true about software patents as well. The best way to go would be to abolish them altogether; otherwise, if things continue like this, we might end up having to sign NDAs just to attend basic math lectures at universities in 50 years simply because the theorems and results presented are covered by patents and copyrighted all over.

      Cynical? I wish it'd be. :)

      Okay, now I'm just getting silly. Nice post and goodnight :).

      Thanks! The same to you. :)

      --
      mowgli

        mostly because I'm not fond of the idea that the amount of indentation of a line defining semantics rather than just reflecting them

        In principle, I'm not fond of it either. However, it has not once inconvenienced me in the slightest. Maybe it's just force of habit that keeps us tied to certain languages. So I'd say try it out, if it does get in your way there are many other obvious alternatives ;-). Also, if anyone has examples of running into whitespace problems in python, I'd be very interested (I haven't been programming in it for that long either).

        Sorry if I stepped on anyone's toes

        Not at all, I meant the "5 points off" bit as a joke :). I know a fair number of python programmers and I'd label about 60% of them 'zealots.' Mind you, I'd probably label about the same number of Perl programmers 'zealots.' Don't even get me started on Java programmers... ;-)

        Oh, and as far as having programmed in every language is concerned - I guess that's impossible

        Yeah, that was a trick. I really work for NIMH. Anyone who claimed they did know every single programming language has been committed (regardless of whether or not they were telling the truth ;).

        Anyhow, why do you think switch (or goto, for that matter) is a low-level language concept?

        Mostly because I've found that using dispatch hashes eliminates the need for them. I'm sure there's still a couple good uses, but sometimes I wonder if when a feature is that abused it wouldn't be better just to eliminate it. Yes, it's catering to the lowest common denominator and It would probably annoy all those write-25000-lines-of-assembly-before-breakfast kind of programmers, but my sanity would greatly appreciate it :).

        Speaking of breakfast, gotta run. Have a nice day :)

Re^2: There's a level in Hell reserved for ________
by Aristotle (Chancellor) on Mar 01, 2003 at 13:19 UTC
    ... vi.
    Yeah, what's up with that.. I use Vim and it's so much better. ducks *g*

    Makeshifts last the longest.

      Yeah, what's up with that.. I use Vim and it's so much better. ducks *g*

      Better, but with vim you have still not attained perfection. You must advance further, to Viper. Or you could advance to vilevigor, but then you have to train toward eventually becomming an evil genius so that you can try to take over the world (which never seems to work out, for some reason). With Viper you can train toward eventually becomming a module writer so that you can have your text editor make you coffee (or tea if you prefer) and refactor your code for you while you read usenet in another process.

      Update: Corrected thinko. Although vile is, I suppose, a third option.


      for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc' .'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$ p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}

      I use Vim and it's so much better. ducks *g*

      Whatever works best for you. ;)

      --
      mowgli

Re: There's a level in Hell reserved for ________
by jonadab (Parson) on Mar 01, 2003 at 18:27 UTC
    people who use variable and function names such as $a, @b, %c and &d and the like.

    Those are okay if they're lexically scoped in a block that fits on half of the screen all at once. (Otherwise, you're spot on, of course.) I say half of the screen, of course, so that you can look at two pieces of code at once (e.g., to view a routine and where it is called).

    vi

    No. I don't use vi, but it at least has some basic functionality. It's not scriptable, so it's not good for really serious use, but it can get simple jobs done in a pinch, unlike most other so-called text editors (EDIT, Notepad, SimpleText, TPU, ...).

    There is however, on a related note, a special judgement reserved for people who release operating systems that don't include basic things like a decent text editor, perl, basic network utils (ping, traceroute, wget), and a compiler. (You're probably okay if it's on the CD but not installed by default; it's not including it at all that gets you the extra bonus warmth.)


    for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc' .'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$ p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}
      No. I don't use vi, but it at least has some basic functionality. It's not scriptable, so it's not good for really serious use, but it can get simple jobs done in a pinch, unlike most other so-called text editors (EDIT, Notepad, SimpleText, TPU, ...).

      i assure you, not only is vi scriptable, it's really good for serious use. and if you use a buff version like vim you can even have a Perl interpreter inside your editor.

      i remeber converting a shell script to Perl once while someone was watching.

      # foo.sh HELLO = "hello" WORLD = "world" # tons more of these

      luckily :g/^[A-Z]\+ =/s/^/my $/|s/$/;/ can Perlify all of those variable declarations for me!

      # foo.sh my $HELLO = "hello"; my $WORLD = "world"; # ...

      there's nothing like watching a file morph from one language to another almost magicly.

        Is it scriptable, really? I've never seen anyone claim that vim was fully scriptable before. I know about the Perl embedding (which is indeed cool, since there are (a small handful of) things Perl makes significantly easier than elisp), but maybe we're stumbling over the definition of scriptable.

        When I say scriptable, I mean that every action is scriptable. I'm not talking about giving the user the ability to create scripts and then call them at will (that's more like what I call macro facility), but the ability to completely rewrite the editor's behavior in arbitrary circumstances. So, for example, in a truly scriptable editor, I can create a mode just for quizzing questions, and I can set that mode up so that when I type a question in and finish up with a question mark that causes my function (quizques-electric-question-mark or somesuch) to be called, which can do whatever it likes (insert some additional stuff, move the cursor around, save the file, refactor the indentation, whatever). Similarly, given an arbitrary computer language (a new one, say), someone could create a mode that does not just syntax highlighting and indentation but also actively helps the author write -- something like cperl-mode. Every keypress has to be fully scriptable.

        If I'm mistaken, and vim is indeed scriptable to that degree, then I've been putting off learning it for too long. (Not that I can really switch, given the amount of custom elisp I have that I'd have to translate, but if it's as flexible as you say I'd like to learn it as a second editor.) But though I've seen a lot of vim advocacy, that's a claim I've never seen before. Can you point me in the direction of some documentation that explains how to do it, the vim equivalent of the Gnu Emacs Lisp Reference Manual? If this is really true, it excites me considerably, and I would stop putting it off and learn vim this spring.

        But I suspect that you misunderstood me, because if vim could really do that stuff I'd think some of the people who are really into vim would have written command shells and spreadsheets and mail/news clients and web browsers and z-machine emulators whatnot for it, like the Emacs people have done.


        for(unpack("C*",'GGGG?GGGG?O__\?WccW?{GCw?Wcc{?Wcc~?Wcc{?~cc' .'W?')){$j=$_-63;++$a;for$p(0..7){$h[$p][$a]=$j%2;$j/=2}}for$ p(0..7){for$a(1..45){$_=($h[$p-1][$a])?'#':' ';print}print$/}
      ... people who use variable and function names such as $a, @b, %c and &d and the like.

      Those are okay if they're lexically scoped in a block that fits on half of the screen all at once. (Otherwise, you're spot on, of course.) I say half of the screen, of course, so that you can look at two pieces of code at once (.e.g, to view a routine and where it is called).

      Granted. I also don't mind variable names like $a if they're used solely as one-time temporary values and the like, but that's about it.

      ... vi.

      No. I don't use vi, but it at least has some basic functionality. It's not scriptable, so it's not good for really serious use, but it can get simple jobs done in a pinch, unlike most other so-called text editors (EDIT, Notepad, SimpleText, TPU, ...).

      I'm not convinced. I'd rather use just cat and sed to edit my programs than dabbling with vi. ;) But that's just me, of course.

      There is however, on a related note, a special judgement reserved for people who release operating systems that don't include basic things like a decent text editor, perl, network utils (ping, traceroute, wget), and a compiler. (You're probably okay if it's on the CD but not installed by default; it's not including it at all that gets you the extra bonus warmth.)

      Absolutely agreed - in particular, not including a C compiler is something that I hope the respective responsible parties get some heat for. ;)

      --
      mowgli

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://239371]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-03-29 11:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found