Plataforma: possíveis significados em TI
Já ouviu alguma pergunta assim: “esse software roda em qual plataforma?” O que significa plataforma na área de TI? Este artigo aborda as possíveis respostas.
O que significa plataforma em Tecnologia da Informação (TI)?
Antes de mergulharmos no tema do artigo quero dar um aviso ao leitor.
Se você é nosso aluno (digo, matriculado em algum de nossos cursos), sabe que trabalhamos nossos materiais pensando em 3 propósitos: mercado de trabalho, empreender com projetos de TI e concursos. Para quem é de concursos, aviso que o significado do termo plataforma nunca foi cobrado em provas, mas já foi usado várias vezes com o seu significado mais comum (para descobrir qual é, continue lendo). Para os outros interesses, mercado e empreendedorismo em TI, entender os possíveis significados de plataforma adicionará abrangência aos seus conhecimentos.
A primeira resposta que darei é aquela tradicional: depende do contexto.
1. Plataforma como Sistema Operacional
O contexto mais comum é usar o termo plataforma como sistema operacional. Assim, no caso da pergunta do início do artigo, “esse software roda em qual plataforma?”, podemos ter como possíveis respostas:
- Windows
- Linux
- Android
- iOS
- Ou outros sistemas operacionais.
Daí você pode pensar, porque usar plataforma no lugar de sistema operacional?
Eu acredito que plataforma é um termo mais fácil e acessível principalmente para quem não é da área de TI. Afinal, você não espera que todo mundo tenha o conceito do que é um sistema operacional (SO). Imagina uma pessoa perguntando para a outra: “Que legal esse aplicativo. Em qual plataforma ele roda?”. Talvez, se a pergunta fosse feita com SO no lugar de plataforma, a outra pessoa poderia não saber do que se trata efetivamente, mas como plataforma ela sabe. Assim, acredito que usar plataforma como sinônimo de SO é uma questão de facilitar a comunicação no sentido de deixá-la menos técnica.
2. Plataforma como combinação Equipamento + Sistema Operacional
Outro possível significado, o qual eu adoto, é usar plataforma para referir a combinação do equipamento mais o sistema operacional. Esta não é uma consideração universal, mas penso que é mais precisa por especificar melhor o alvo ou destino de um determinado software. Vamos rever a pergunta do item acima, mas agora com esse novo significado: “Que legal esse aplicativo. Em qual plataforma ele roda?”
“Roda em iPhones com iOS”. Reparem que a resposta agora é mais precisa por englobar o equipamento e o sistema operacional. Mas roda em iPad com iOS? Não, senão estaria escrito como resposta “Roda em iPhones e iPads com iOS”. Portanto se a resposta fosse só “Roda em iOS”, não conseguiríamos diferenciar esses dois possíveis alvos ou, usando o termo, essas duas distintas plataformas, mesmo possuindo o mesmo sistema operacional.
Um reforço desse exemplo ocorre na área de desenvolvimento de software. Na hora que um desenvolvedor transforma o código em linguagem em programação em um aplicativo, ele deve escolher a plataforma alvo (target em inglês). Vejam como é na Unity 3D, por exemplo: depois de escolher a “plataforma” iOS na esquerda, você escolhe o Target Device, que é o dispositivo alvo (do software que será gerado).
3. Plataforma como vídeo-game
Veja a imagem acima e repare como a Unity 3D considera o termo plataforma. Ela inicia por PCs (que você agora já sabe o que é – senão souber, clique aqui) com os sistemas operacionais Windows, MacOS e Linux.
Depois, vem iOS e Android, ou seja, saímos do PC e chegamos em mobile. Dentro de cada sistema desses, temos um segundo painel de configuração na direita para escolher quais os dispositivos que esse software deve rodar, como só iPhone, só iPad ou iPhone e iPad para o caso do iOS.
Em seguida, saímos de mobile e vamos para um equipamento da Apple que roda o tvOS e não o iOS. Reparem que, agora, o sistemas operacional começa a ficar menos conhecido e, muitas vezes, não estará nem explícito. Os próximos itens, Xbox One e PS4 mostram isso. Nos conhecemos o console, o vídeo-game, e não necessariamente o sistema operacional que roda no equipamento e permite a reprodução de jogos. Sabemos que ele está ali e mexemos diretamente nele, mas não é muito comum estudá-los a fundo, a não ser que você esteja desenvolvendo uma ferramenta que gera programas para essas plataformas.
Assim, se uma pessoa perguntar: “esse game roda em qual plataforma?”, várias poderão ser as respostas: “PC com Windows”, “PC com Linux”, “PC com MacOS ou iMac e Macbook Pro”, “Smartphone Android”, “Xbox One”e assim por diante.
4. APIs e SDKs
Não chegamos ainda a explicar o que é API, por isso vou só resumir aqui. Significa Application Programming Interface ou, em português, Interface de Programação de Aplicações, pode ser pensado como uma camada intermediária de software.
Pense por exemplo no Facebook. É possível, atualmente, fazer um aplicativo para Facebook, ou seja, o Facebook não só é um sistema web atualmente, como também dispõe de uma API na qual programadores podem desenvolver aplicativos para rodar no Facebook. Em outras palavras, por ter API, o Facebook pode ser visto como uma plataforma, como o alvo de um software.
Outra possibilidade, ainda no embalo da imagem, é WebGL, que é a possibilidade de exibir o aplicativo com gráficos 3D no navegador.
Algo parecido com API é SDK (Software Development Kit), mas o segundo é um kit de desenvolvimento, que pode ser embutido em um software e usado livremente depois de instalado, enquanto o primeiro é uma interface direta entre seu software e a API, dependendo sempre que a API esteja disponível para ser usada.
Independente dessa diferença técnica, os SDKs normalmente são distribuídos também com o conceito de plataforma, mas nesse, caso, o termo que dizer ferramentas de desenvolvimento que aceitam a instalação do kit. Veja abaixo exemplos de plataformas em que o SDK da Oculus (óculos de realidade virtual) pode ser instalado.
5. Outras definições
Para quem é da área de sistemas embarcados, o termo pode ser ainda mais amplo. Pode significar um circuito eletrônico, um microcontrolador, uma placa programável e outras possibilidades.
Por fim, em casos mais raros, plataforma pode também se referir a arquitetura. O termo pode se referir a arquitetura de hardware, como ARM, x86 e outras, ou ainda, características do processador, como 32 ou 64 bits.