Info view print order / displaying debug information
This could be used, but i'm sure i'll receive some heat for suggesting this. Run this from text editor, and it will print 'wooot' in the first available blender Python Console.

import bpy

# doesn't support passing the context
# from console_python import add_scrollback

def add_scrollback2(ctx, text, text_type):
    for l in text.split("\n"):
        bpy.ops.console.scrollback_append(ctx, text=l.replace("\t", "    "),
                                          type=text_type)

for area in bpy.context.screen.areas:
    if area.type == 'CONSOLE':

        ctx = bpy.context.copy()
        ctx['area'] = area
        add_scrollback2(ctx, "whooot", 'INFO')
        break


A few caveats, this isn't recommended at all, and especially not for printing out large chunks of data rapidly. That's what logging is for, you can write output to text files on disk, much much faster than your machine can print messages to the screen (printing to screen slows down your code significantly if it happens in tight loops). The benefit of writing to disk is you have virtually no limit regarding the amount of lines you can record, unlike most terminals/consoles which have a finite scroll-back buffer.

In the long run most of us conclude that it's more convenient to have a  console/terminal open in addition to blender, be it landscape or portrait. This means starting Blender from a console, or creating a start-up shortcut that first spawns a console and then from that console an instance of blender.

If you do use regular terminal / console then be selective about what information you print, and avoid print statements that might be triggered in tight loops.