Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É como uma língua que o computador entende. Atualmente, existem diversas, com diversas funcionalidades, e que variam de baixo nível (mais complexa, que se aproxima da linguagem da máquina) a alto nível (mais simples, se aproxima da nossa linguagem). Mas, como o nosso propósito é aplicar as linguagens de programação para desenvolver projetos em robótica, existem algumas que são mais úteis para isso. E essas são:
0) Programação em blocos
Não é exatamente uma linguagem de programação, é apenas um modelo de programação gráfico, muito mais simples de usar. Não exige conhecimento técnico, apenas conceitos lógicos. Pode-se listar como as duas linguagens mais úteis em robótica o Scratch, usado principalmente para o aprendizado de crianças, e a programação em blocos da Lego, que é acessada pelo seu software. Exemplo:
1) C/C++
A linguagem C foi criada na década de 1970, muito usada até hoje. Já a C++, foi criada baseada na C e tem funcionalidades extras. De qualquer forma, as diferenças entre as duas só são realmente significantes em aplicações muito avançadas, que não é o nosso objetivo ensinar, pelo menos por enquanto. O que importa é: as duas linguagens são a base da linguagem usada no Arduino, e ter uma noção básica a intermediária delas é importante.
2) Python
Criada na década de 1990, é uma linguagem de alto nível, que prioriza a legibilidade do código. Bem mais simples do que a linguagem C/C++ em muitos aspectos, como na programação orientada a objetos (prática de programação mais avançada), mas com alguns pontos negativos, também. É a linguagem usada no Raspberry Pi.
Curiosidade: tem seu nome inspirado em Monty Python, um grupo de comédia britânico muito famoso na década de 1970.
Por fim, é importante frisar que, assim como as plataformas, não existe uma linguagem de programação absolutamente melhor que a outra. Cada uma tem sua funcionalidade, e sua aplicação depende da situação. É bom conhecer um pouco de cada, para saber qual a melhor ferramenta a se usar em cada caso.