-a very limited range of instructions is available, so massive decomposition is required.
-you have to manage all your data, as all different types of data must be represented using binary.
-debugging is very difficult, because a bug can make the machine crash.