O padrão brasileiro de TV
digital tem como middleware o sistema Ginga, camada de software que
permite o desenvolvimento de aplicações interativas portáveis para
a TV Digital utilizando a linguagem NCL (Nested Contex Language).
NCL, é uma aplicação XML
baseada no NCM (Nested Context Model), modelo conceitual para
especificação de documentos hipermídia com sincronização
temporal e espacial entre seus objetos de mídia. NCL permite ao
autor descrever o comportamento espacial e temporal de uma apresentação
multimídia, associar hyperlinks a objetos de mídia, definir
alternativas para
apresentação (adaptação) e
descrever o layout da apresentação em múltiplos dispositivos.
A autoria de aplicações
utilizando linguagens declarativas como NCL, e vantajosa quando o seu
desenvolvimento depende apenas de recursos previstos no projeto da
linguagem.
No entanto, quando uma
aplicação necessita de funcionalidades não previstas pela
linguagem declarativa, a solução pode se tornar complicada ou até
mesmo impossível.
Em NCL, a realização de
muitas tarefas é complicada sem auxílio imperativo, tal como
processamento matemético, manipulação sobre textos, uso do canal
de interatividade, controle fino do teclado, animações e colisões
para objetos gráficos e, de maneira geral, tarefas que necessitem da
especificação de algoritmos e estruturas de dados.
Por outro lado, linguagens
imperativas, apesar de genéricas, introduzem uma maior complexidade
de programação e dependem de uma base lógica que autores de
conteúdo audio-visual nem sempre possuem.