Precisely. It all depends on what you call code. Ladder logic is code that is really easy to convert to hardware. But, it's not easy for someone used to high level computer programming to work with.
There are some controllers that allow you to program in a high level language that easily compiles into ladder logic. But, these languages share the same charactaristic as most ladders. They theoretically work in parallel, although most of them execute sequentially. As a programmer, you write code that assumes parallel, while keeping the sequential aspect in mind! I work with just such things for a living. By the time you write good code in these environments, you may as well design the hardware.
By the way, for most applications, if you can write the program, you can compile it for a cheap, small, efficient microcontroller, and then you don't need discreet logic. Automotive "Engine Control Modules" are a perfect example.