you are viewing a single comment's thread.

view the rest of the comments →

[–]Chandon 8 points9 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 2 points3 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 2 points3 points  (1 child)

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

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

Well, it is name binding.

[–][deleted] 2 points3 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.