When should you use underscores to separate words in variable names or function definitions? Always? I tend to use them always for function definitions like: calculate_sum extract_lines .... But the Ruby built in classes do not always use them. For example: IO#readlines Why not: IO#read_lines ? Are there any guidelines on this subject? How do think they should be used?