Hacker News new | past | comments | ask | show | jobs | submit login

What modern language do you use that doesn't also have a laundry list of warts?

Honestly, AFAIK only PHP comes with a bigger laundry list.

The only python wart I know is no block scope

    for i in [1,2,3]:
        print i
    print i # still visible 

Only functions introduce lexical scope in Python/JS. JS has the ===, this, undefined

The only ruby wart for me is the difference between block/lambda/Proc and perly features.

Java/Go/Lua don't turn you into a omlette, with their language features. Nor do they leak memory in XS like perl.

C++ is a differnt story.

EDIT: Added JS

Then you don't know anything about Ruby and Python warts. Take yourself out of the conversation please or at Google before you blather.

Enlighten us.

Python has its own wiki about them for one (first Google hit):


Here is one of the first Google hits for Ruby:


Every languages has warts. Lots of them.

Why doesn't he know anything about Python or Ruby warts? I think his complaint about Python is valid. The other wart I would add is Python having a default empty list in a method signature. In successive calls to the function if you modify the list it retains it's value. (The solution is to have it set to None in the method signature). Read

http://docs.python.org/3/tutorial/controlflow.html#function-... section 4.7.1 if you're curious

Generally though I'd say Perl has hundreds (or maybe thousands) of warts for every one Python or Ruby has.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact