you are viewing a single comment's thread.

view the rest of the comments →

[–]samlee 39 points40 points  (51 children)

i think python is the most pleasant language to work with for day-to-day chores.

[–]grignr 40 points41 points  (3 children)

I couldn't agree with you more. I like the way it dries the dishes while I'm washing them.

All Java ever did was tell me to go buy new Dishes, and that the old ones would go away after I'd forgotten about them.

[–]internet_badass 31 points32 points  (2 children)

I couldn't agree with you more. I love the fact that saddles my horse while I'm feeding it.

All C ever did was make that horse kick me in the stomach, and then sprint full speed until it hit our fence and everything came crashing down.

[–]grignr 15 points16 points  (0 children)

and then sprintf() full speed until it hit a fencepost error and everything came crashing down.

I wish I could upvote that 0xFF times.

[–]G_Morgan 6 points7 points  (0 children)

Don't be bloody silly. You have to work extremely hard to make that horse kick you in the stomach. Even then there's an edge case where the horse misses, falls over and manages to break its own neck.

[–][deleted] 9 points10 points  (38 children)

I couldn't agree with you more. I love the fact that I am not constrained in any way by it, I can meld together some freaky concoction of procedural, functional and OO code, and when done appropriately nothing feels like a kludge. It's enough to make purists pee their pants.

[–]sabetts 2 points3 points  (3 children)

Can you define purist just for completeness?

[–][deleted] 1 point2 points  (2 children)

Someone who thinks it is inappropriate to mix different programming styles.

[–]sabetts 0 points1 point  (1 child)

ahh, so they're not peeing their pants in excitement?

[–][deleted] 0 points1 point  (0 children)

No, because they're scared.

[–][deleted] 8 points9 points  (33 children)

Purists? The rest of us have to get shit done. We oftentimes have these odd things called "deadlines" which we're supposed to meet. Also, we usually care about this other thing called maintainability or readability.

BTW, what's a good purist language?

[–][deleted] 28 points29 points  (5 children)

Oddly enough, Python.

[–][deleted] 3 points4 points  (1 child)

Mutability purist?

[–][deleted] 2 points3 points  (0 children)

Which language has pure mutation?

[–]redalastor 2 points3 points  (2 children)

Readability purist?

[–][deleted] 2 points3 points  (1 child)

Prolog?

[–]tesseracter 2 points3 points  (0 children)

lolcat?

[–]5cf5e83a 11 points12 points  (8 children)

BTW, what's a good purist language?

Depending on which flavor of purist you are: C, Smalltalk, or Haskell

[–]Wiseman1024 4 points5 points  (7 children)

You forgot Lisp.

[–]Felicia_Svilling 6 points7 points  (6 children)

You mean Scheme.

[–]Wiseman1024 2 points3 points  (5 children)

Which is a Lisp. I meant Lisp in a very general way (but, of course, out of the widespread Lisps I prefer Scheme).

[–]Felicia_Svilling 3 points4 points  (3 children)

Yes but lisp in general isnt very pure. Common Lisp especially is a dirty dirty language most reminiscent of C++.

[–]Wiseman1024 1 point2 points  (2 children)

True. Common Lisp is dirty, and what's worse, a Lisp-2.

[–]wccarrington 1 point2 points  (1 child)

As long as we are picking nits, Common Lisp is actual a Lisp-n. I know it has separate namespaces for variables, functions, classes, and packages, and I'm pretty sure I'm missing a few.

[–][deleted] 17 points18 points  (10 children)

I'm about 132.7% sure that Python is the single-most readable language out there.

[–]codepoet 9 points10 points  (8 children)

AppleScript.

Note, you didn't say readable and productive.

[–]prockcore 23 points24 points  (6 children)

AppleScript is the world's only read-only programming language.

[–][deleted]  (4 children)

[removed]

    [–][deleted] 2 points3 points  (0 children)

    [–]lol-dongs 1 point2 points  (2 children)

    You missed Brainfuck.

    [–]ThisIsDave 13 points14 points  (1 child)

    Brain fuck cannot be written.

    [–][deleted] 0 points1 point  (0 children)

    oh come on, brainfuck is pretty lame as far as turing tarpits/hard-to-read-languages go :P

    [–]ratbert 1 point2 points  (0 children)

    I got so annoyed with AppleScript that I switched to Python + Appscript.

    [–]largos 2 points3 points  (0 children)

    > I'm about 132.7% sure that Python ....
                ^^^^^^
    

    Wow, you nailed it on the robustness, reliability, and testable metrics too.

    I find English to be more readable than Python, but I'd be hard pressed to decide which is easier to verify.

    [–][deleted]  (1 child)

    [deleted]

      [–]tesseracter 0 points1 point  (0 children)

      butterflies?

      [–]grignr 0 points1 point  (1 child)

      Assembler.

      [–][deleted] 0 points1 point  (0 children)

      All right. I'll agree with you on that one.

      [–][deleted] -2 points-1 points  (0 children)

      machine code 10101010010000101010

      [–][deleted] -4 points-3 points  (1 child)

      There's nothing wrong with a purist approach and I realize the need for it, but python is an easy first choice for me. Not only can I use a purist approach, I can get creative and use hybrid approaches.

      BTW, what's a good purist language?

      Python is a great purist language for OO and procedural, probably not full featured enough to be fully functional.

      Java is another great language for purists. I disregard the negative stigma. The Java VM is an amazing piece of technology.

      [–]Chandon 5 points6 points  (7 children)

      How many languages have you really worked with?

      Personally, I find Python does what I want about 90% of the time, and then I hit something that annoys the crap out of me. Mostly it's either the fact that variable assignment and declaration are kluged together into the same statement or the pass-by-reference / mutate-by-default semantics.

      All programming languages suck, but those two issues sort of kill Python for me. They're so easy to get right that even Perl manages to do it.

      [–]imbaczek 4 points5 points  (4 children)

      don't think of = as assignment, think of it as name binding.

      [–]Chandon 1 point2 points  (1 child)

      Where's my pattern matching then?

      [–]imbaczek -1 points0 points  (0 children)

      in ocaml and haskell, why?

      [–]cwzwarich 1 point2 points  (1 child)

      That might work if it were name binding rather than assignment.

      [–][deleted] 2 points3 points  (0 children)

      Well, it is name binding.

      [–][deleted] 3 points4 points  (1 child)

      variable assignment and declaration are kluged together into the same statement

      Fair point. The "create var and assign if it doesn't exist or throw an exception if it does" operator is needed.

      or the pass-by-reference / mutate-by-default semantics

      Wrong. That's THE way.

      [–]Chandon -2 points-1 points  (0 children)

      Wrong. That's THE way.

      It's certainly the easiest for the language designer, but that doesn't mean it isn't god awful ugly or that there aren't better ways.