One thing people always seem to argue over is naming conventions in programs. Should we allow the use of Camelcase, or underscore when naming variables, and functions? CamelCase is defined as writing compound words, such that each word in the middle of the phrase begins with a capital letter, with no intervening spaces or punctuation.
boundingbox - not CamelCase bounding_box - separated by underscore boundingBox - CamelCase
Arguably we do use CamelCase even in daily text we write – eBay, iPhone.
Some have argued that the use of Camelcase reduces readability. The reality is that programs written in UPPERCASE reduced readability because words in a program lost their shape, and word shape is one of the cues which helps us read effectively. Is it better than underscore? I would say yes. There have been studies on what is known as an “interword filler”, in this case the _ character, that show that they cause lateral distraction, reducing reading speed. Although the alternate universe would argue that underscores better resemble natural writing, with the underscore simulating a space. Epelboim  found that removing spaces from text slowed reading by only 10-20%.
CamelCase is aesthetically pleasing and underscores are ugly? Which of these is truly better?
playerIdentifier, playerID, playerId, player_ID
Likely the use of CamelCase is still somewhat controversial.
writetofile(); VS WriteToFile(); writeTOfile(); Write2File(); write2File();
Obviously you would only use CamelCase where appropriate.
Deißenböck  cite that approximately 70% of the source code of a software system consists of identifiers. They go on to describe the naming of identifiers in real-world software systems as being “close to obfuscation”. This of course is somewhat frightening.
Ultimately its up to you to make the right choice when it comes to selecting names for variables and functions. I like the notion of using a lowercase letter for the starting word, e.g. write2File. I would do the same thing for external modules, such as in Julia. For example a function readPGM() from module imageIO, would be accessed as imageIO.readPGM(). There is no right or wrong way – but the names must be readable and used consistently. And nowadays, I avoid underscores as much as I can.
 Epelboim, J., Booth, J.R., Ashkenazy, R., Taleghani, A., Steinmans, R., “Fillers and spaces in text: The importance of word recognition during reading”, Vision Research, 37(20), pp.2899-2914 (1997)
– This study looks at fillers in words: Latin letters, Greek letters, digits and shaded boxes, and conclude that fillers in text disrupt reading by affecting word recognition directly.
 Deißenböck, F., Pizka, M., “Concise and consistent naming”, In: Proc. of the 13th Int. Workshop on Program Comprehension (2005)