I agree with ocicat in that a portable solution should be explored first, writing something in assembly.. perhaps for hand optimization, is fine, but generally it shouldn't be used for large complex jobs.
Now for my recommendation, learn C... and whatever you do, just say no to Java/C#