Well I main mid lane so let me explain how mid lane works and you can figure out how side lanes work by contrast.
Mid is for heroes who can take advantage of RUNES because runes spawn either in between mid/bot or mid/top.
In competitive games runes are fiercely contested because they can literally turn fights around(DD)/force people out of mid(regen)/create unescapable deaths(haste)/create temporarily uncontestable advantages (DD)/cause mass paranoia (illusion/invis).
A rune resets a bottle which total gives something like 405 life and 225 mana.
Wisp + anything is incredibly scary middle (mostly seen in serious business games) because Wisp's tether allows his hp/mana regen to effect his ally and essentially double the bottle resets. Many more vulnerable mids (SF, Storm, Invoker) absolutely cannot do anything but die to a CK + wisp that knows what they are doing for instance.
Runes are made for aggression. The mid hero(es), their job is normally to help the rest of their team win their lanes (99% of the time in unorganized play. More likely to have more customized plans in organized but this is boiler plate and it works fairly well).
Heroes that snowball either themselves or their teams are generally a good choice (Wisp snowballs his team extremely hard). For example, Earth Spirit is over powered (cannot contest his runes, his spells are extremely mana efficient) but better now after nerfs. He is a good mid. TA is extremely good mid because she starts 1 or 2 hit killing people if she gets ahead too much and has 0 down time because her traps are always up.
Lion is not as good because his spells are mana inefficient and his Finger has a lot of down time.
Storm is very good because he theoretically has 0 down time if the player is good enough with mana management/lucky with runes. Also his first item is an Orchid which is an extremely aggressive and powerful item before people have Linkens/BKB.
Puck is like a safer more AoE version of Storm.
Dragon Knight is actually not bad because he snowballs his team by forcing tower fights/slowly beating them to death. He is basically invulnerable against most of the cast for most of the game if he gets a large gold advantage since he buys hybrid defense/offense items like BKB, Halberd, Cuirass, Satanic.
Invoker used to be popular mid but he dies to everything at lv 1/2, has 280 base ms and can't contest/use runes well and needs too many levels to get useful. Most mids get much more useful at 6.
Shadow Shaman is not bad despite being mana inefficient. Many heroes can't prevent the mid tower from falling when he hits 6. He gets extremely scary if he can start taking towers and working towards his Aghanims early in the game.
Pudge is fun but somewhat risky. He runs slow for one thing and is useless if he can't land good hooks.
Tinker is often times better left alone in the jungle to quickly farm his BoT. Mirana is good if paired with a BANE for guaranteed 5 second arrows, so no solo. Same with heroes who can jungle safely like NP, Enigma, DS.
Map control heroes like NS and BS are actually usually better placed in a side lane since they often times can't effectively deal with bottle spam + nuke wave + get all the runes play that Puck/SF/DK/etc. can use against them. They're wasting the lane if they can't contest runes because they are always at tower.