A pergunta está ampla de mais e não está clara. Na verdade nem deu para entender direito o que o AP quer dizer como "o que faço em um consigo fazer no outro"... O que ele faz em um e não faz no outro? Ao que vc se refere? – hugocsl 25/11/19 às 16:59
Um exemplo de como carregar um JS sem HTML nenhum seria bom pra sustentar a tese. – Bacco♦ 25/11/19 às 18:58
Resumindo, o HTML preenche o DOM inicialmente, e o JS manipula dinamicamente. São coisas relacionadas, e não concorrentes. Eu sinceramente acho que o post deveria ser fechado por partir de premissas equivocadas, além de falta de clareza e ainda um componente de opinião. Pra piorar, é uma área que a maior parte que usa não sabe o que está fazendo, então tende a virar um caos. A "sorte" é que as duas primeiras respostas não foram de paraquedista, como anda acontecendo bastante no site.. – Bacco♦ 26/11/19 às 12:22
Mas também é um termo usado por certos desenvolvedores (do qual eu discordei muito até desistir de debater) para se referenciar a diversas tecnologias que vieram na mesma época que o HTML5 começou a ser suportado por diversos navegadores, como exemplo:
Novas funcionalidade CSS (principalmente as que são usadas com tags especificas do HTML, como --webkit-progress-bar para <progressbar>, sendo ou não padronizado)
Então muitas vezes as pessoas usam html5 para se referenciar ao que não é HTML5, aqui no site a tag é muito usada com este intuito:
Se olhar as perguntas vai notar que muitas delas são perguntas sobre CSS e JavaScript e não sobre as tags do HTML5 e seus comportamentos.
Eu pessoalmente acho muito errado essa maneira de se "referir" as tecnologias, porque pra mim que busquei aprender do básico e não só viver de ctrl+c como muitos desenvolvedores fazem (em diversas comunidades, nacionais e gringas), isso sempre soa estranho, me parecia no começo (talvez ainda soe assim) que na verdade os devs nem sabiam direito do que estavam falando e geralmente nem entendiam o básico de doctype
Quase todas tags HTML5 que tem funcionalidades "extras" que vieram com o HTML5 tem API de comunicação ou eventos que podem ser "ouvidos" via JavaScript, logo o HTML5 é a linguagem de marcação+novas funcionalidades e o JavaScript é "linguagem de programação" que pode trabalhar essas novas funcionalidades de cada tag, por exemplo se pegar a tags <audio id="bar"> ou <video id="foo"> pode parar a musica ou o video tocado via JavaScript:
Então simplesmente HTML5 são essas tags e as tags que já existiam antes, mas as pessoas se referencia desta forma "errônea" (em minha opinião) para dizer que HTML5 é tudo o que já foi citado no começo da resposta.
HTML5 sozinho não tem a capacidade de controlar de forma "programada" o que deseja, por exemplo, criar novas tags, vai ter gente que vai citar coisas absurdas como:
Como se eles realmente gerassem novas tags de forma stand-alone, mas na verdade esses "frameworks" não são HTML5, eles são uma série de libs e estrutura que usam HTML5 e JavaScript (sendo que possuem linguagens próprias que são "transpiladas" para JavaScript e HTML)
Isto é o que importa para o navegador renderizar o conteúdo. Existe uma forma básica simples que o manipula que é o HTML. Podemos dizer a grosso modo que ele é a API declarativa básica para isto (falo mais abaixo).
Existem outras APIs que fazem o mesmo, uma delas é o CSS que é tão importante também (não vou falar que ele é tão simples porque há muito confusão na sua concepção), mas existem outras que muitos até não entendem que são coisas distintas mas que também servem para manipular o DOM.
O JavaScript é uma linguagem de programação, portanto é mais imperativa e permite fazer muito mais operações, e como tem uma API para manipular o DOM em sua biblioteca padrão nos navegadores é possível fazer operações muito mais poderosas nessa manipulação de DOM.
Em essência você pode fazer tudo no JS até por ser uma linguagem de programação. Uma linguagem de marcação (HTML) ou estilização (CSS) não podem fazer tudo (até conseguiram juntar as duas e fazer coisas mais complexas, mas de uma forma maluca, não dá para usar de verdade assim).
Ninguém ou alguma coisa te obriga a usar o HTML, 5 ou não, você de fato pode fazer tudo com JS, e eu até gosto da "ideia". Até pode ser que a carga dos scripts dependam ligeiramente do HTML, mas só.
Se você se sente mais confortável com JavaScript, não gosta de HTML e considera que pode fazer melhor sem usá-lo deixar tudo para o JS pode fazer se for uma aplicação. Não estou recomendando, mas dizendo que é possível.
Se for um site complica um pouco porque os mecanismos de buscas terão dificuldades de indexar o conteúdo do seu site e ele não será achado pelas pessoas. Deseja ou aceita isto?
Há um mito que esses mecanismos entendem JS, mas ele não consegue executar tudo como aconteceria com a ação de um humano, então pode até conseguir indexar o conteúdo de alguma forma, mas não tudo, não corretamente. Não tem como mesmo com os bots modernos que entendem JS simular toda ação e recriar o que um humano faria.
Além disso alguns navegadores podem ser antigos ou ter algumas coisas desabilitadas, por exemplo o JS todo, o que faria suas páginas não acontecerem. Quer isto?
Fora isto basicamente é gosto mesmo. Designers tendem a ter mais facilidade com HTML que é uma linguagem de marcação e mais fácil de entender do que com JS.
Algumas pessoas aprendem bem HTML mas JS nem tanto. É comum ver todo mundo fazendo tudo o que dá com HTML e só vai para o JS quando não tem outro jeito, aí outras pessoas copiam essas, então todo mundo aprende mais HTML que JS, é meio viral, tem mais informação ensinando usar HTML prioritariamente para depois ir para o JS. Tudo isso influencia como as pessoas adotam tecnologias.
Não dá para falar em vantagem ou desvantagem clara, tem uma ou outra de acordo com o background de cada um, e o que eu falei, se todo mundo usa o HTML(5) pode ter ajuda de forma mais fácil, ter mais exemplos, mais receitas para seguir, ou por ser mais intuitivo para certas pessoas (o JS é mais intuitivo pra mim, mas a API fraca dele faz eu pensar em usar o HTML, mesmo ele permitindo fazer tudo).
Dá para usar só o JS, mas tem a ferramenta certa para cada momento. Alguns querem usar só o JS para não ter que aprender o HTML. O HTML não é difícil, manipular o DOM é que é, isso não tem como fugir, você fará com JS, HTML, CSS e outras APIs.
Ainda podemos dizer que em certo cenário é um pouco mais fácil desenhar a página através do HTML. A a característica não posicional do conteúdo favorece uma forma declarativa um pouco mais que a forma imperativa do JS.
Pode ser muito mais simples e ter um código mais curto para fazer páginas muito simples (em geral não muito dinâmicas). E para as complexas pode diminuir um pouco a complexidade, até porque poucas pessoas sabem organizar código JS para produzir o mesmo resultado.
É muito mais intuitivo fazer certas coisas no HTML do que criar o mesmo efeito com JS. A grosso modo podemos entender (não que seja bem isso) que o HTML meio que são funções prontas que fazem algumas coisas. Possuem alguma parametrização (os atributos), mas é limitado.