Java 8, 57 bytes (9470 bytes)
By the power of streams, my java answer shall be the shortest
Arrays.stream(a).max(Comparator.comparing(String::length))
Honestly I don't know if I cheated with that answer because I don't return anything but you could use that line of code. If we really want to return stuff then it's a bit longer.
Thanks to LukeStevens for pointing out to use lambdas to be more golfy.
String b(String[] a){return Arraysw->Arrays.stream(aw).max(Comparator.comparing(String::length)).get();}