Как сделать переключение вкладок на нативном js?
Такой код нежизнеспособен, ибо хотя бы нет повторного использования кода и Вы будете повторять сами себя, это неизбежно... это если не касаться самого "компонента" ибо это только заготовка.
Абстракцию все ровно придется писать, придется писать минимальный базис для работы с DOM.
Тут у здешних две крайности на эту тему:
1) JQuery везде, JQuery всегда, JQuery любит папа, мама и я... (с) =)
2) Vanilla JS - так давайте же все напишем без абстракций, ядра , библиотек... чем больше сдадим-тем лучше
Писать на "чистом" не освобождает от необходимости грамотно строить код, придерживаться ООП, модульности, юзания библиотек и любых методик позволяющих не повторяться. Да, это приведет к появлению собственных библиотечных функций, возможно микрофеймворка, если не взяли готовый перед этим, но так и должно же быть....
Тоже нужно писать цикл для всех элементов в коллекции?
Ага. 
Ну потом вам это может надоесть, тогда вы оформите все в виде функции (а то и объектами разбрасываться начнете) и потихоньку у вас это будет выливаться в очередную jQuery-подобную библиотеку.