Ok, I got a little out of control before, language wars can do that. Sorry.

(Thinking calm thoughts...)
It's possible to rebuild Lua with a different datatype for number. Some people do it with int, because the default lua type is actually a double (because a double gives you both fractional numbers, and it can accurately represent every value in a 32 bit int. A float can't, it doesn't have enough digits in the mantissa). So this "Motivate" you tried might have used a custom build with integer only support. But that's not true Lua. I've been a Lua coder for around 9 years now, and it's always had floating point as the primary number data type.
The same can be done to Ogre, you could redefine ogre's Real type as an int if you want, but it's not ogre's fault if it doesn't work properly any more.
I missed the part where you listed all the Accredited Universities using Lua as embedding programming Language.
Well, I can't speak for other places, but here's one for the list: Qantm. I know this because I do the Lua teaching.

I also use it not just for the degree students but for afternoon mini-classes with high school kids, we can get them from never programming before to having a working game written in Lua in about 2-3 hours.
Back on the original question... I used to use LuaBind, but I found it tended to make Lua too much like C++, whereas I thought one of the strengths of Lua was how unlike c++ it was. So I do all binding manually. It's not really hard once you get used to it. But a lot of people love Luabind.
Using raw Lua also made it very easy to swap to Falcon, which has a very similar (but better) api to Lua, but no Luabind style system (yet).
Back on Lua features, a dot product was mentioned. Here's a vector3 class with constructor and dot product in lua:
Code: Select all
Vector3 = function(xx,yy,zz) return {x=xx, y=yy, z=zz, dot = function(self, v) return self.x*v.x+self.y*v.y+self.z*v.z; end} end
Now we can do stuff like this:
Code: Select all
v1 = Vector3(1,2,3)
v2 = Vector3(4,5,6)
d = v1:dot(v2)
x = v2.x
etc.
Pretty similar to doing it in c++, and fully float compatible.