Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you keep all your languages straight? [closed]

I think I'm going a little crazy.

Right now, I'm working with the following languages (I was just doing a mental inventory):

  • C++ - our game engine
  • Assembler - low level debugging and a few co-processor specific routines
  • Lua - our game engine scripting language
  • HLSL - for shaders
  • Python - our build system and utility tools
  • Objective C/C++ - game engine platform code for Mac and iPhone
  • C# - A few tools developed in our overseas office
  • ExtendScript - Photoshop exporting tools
  • ActionScript - UI scripting
  • VBScript - some spreadsheet related stuff
  • PHP - some web related stuff
  • SQL - some web and tool related stuff

On top of this are the plethora of API's that often have many different ways of doing the same thing: std library, boost, .NET, wxWidgets, Cocoa, Carbon, native script libraries for Python, Lua, etc, OpenGL, Direct3d, GDI, Aqua, augh!

I find myself inadvertently conflating languages and api's, not realizing what I'm doing until I get syntax errors. I feel like I can't possibly keep up with it, and I can't possibly be proficient in all of these areas. Especially outside the realm of C++ and Python, I find myself programming more by looking at manuals that from memory.

Do you have a similar problem? Ideas for compartmentalizing so you're more efficient? Deciding where you want to stay proficient? Organizational tips? Good ways to remember when you switch from Lua to C++ you need to start using semi-colons again? Rants on how complicated we programmers have made things for ourselves?

Any ideas welcome!

like image 980
Chris Blackwell Avatar asked Feb 04 '09 06:02

Chris Blackwell


People also ask

Is it possible to forget languages?

Studies on international adoptees have found that even nine-year-olds can almost completely forget their first language when they are removed from their country of birth. But in adults, the first language is unlikely to disappear entirely except in extreme circumstances.


1 Answers

A few things I do to keep them seperate...

Use different IDE's / editors / colour schemes for different languages. You start to associate the language with the environment, and when you switch windows your brain gets a big visual cue that it needs to context switch to the new language.

Try to limit context switching to 2 or 3 active languages at a time. Close down any other IDEs or editor windows when you're done with them.

Try to forget the "fire and forget" stuff. A lot of the languages you've listed seem like they wouldn't be things you're actively coding in every day, but rather tools you use to automate daily tasks. As much as possible try to have a "tool day" where you do any work you need to on those tools. Seperate it as much as possible from your day to day coding, so your brain doesn't have to worry about page swapping that stuff in and out all the time.

-- edit cue, not queue.

like image 146
patros Avatar answered Oct 01 '22 02:10

patros