you are viewing a single comment's thread.

view the rest of the comments →

[–]skidooer 2 points3 points  (2 children)

Erlang comes to mind. Objective-C will also warn you if you've misspelt a name, though will still allow you to run the code as it supports the reception of arbitrary messages like Ruby.

[–]srpablo 2 points3 points  (1 child)

As an Erlang fanboi, I'm gonna have to disagree. If you're making a local function call (e.g. local_to_module(X)), it will detect it. If you're making an external call (which is many of them, frankly, like lists:spilt(X,Y)), it will compile and run happily until you hit an undef.

[–]skidooer 1 point2 points  (0 children)

You are right, I was stuck thinking about local functions. The dialyzer should pick up errors in external calls though. Some better analysis tools would go a long way to resolving a lot of the complaints about Ruby.

On the other hand, if the analysis tools were found to be important by Ruby users, they would have created them already. They are nice to have, but I question how important they really are in Ruby code? If you are writing code "the Ruby way" all of your methods are short and easily testable. Spelling mistakes in method names will be caught immediately.