Skip to main content

C ainda é uma linguagem de programação ou um protocolo?

C é tão onipresente que outras linguagens não podem ter sucesso sem comunicar com ela – na realidade, a linguagem de programação é a base de todo o software mundial.

Algumas linguagens de programação são melhores, mais seguras e simples do que C; mas isso não as torna mais populares. Além disso, algumas tendências recentes como Rust demonstram ser impossível esse afastamento da linguagem C. Afinal, as aplicações raramente existem em ambientes completamente isolados, e é aí que o sapato aperta. As aplicações são executadas em determinados ambientes e podem querer interagir com a entrada dos utilizadores.

1. Tudo é C

Vamos trabalhar num ambiente baseado em Windows? A maior parte do kernel do Microsoft Windows foi escrita e desenvolvida em C, como tal, para comunicar com esse sistema operativo a nossa aplicação tem de entender C.

E se apostarmos no Linux? Enquanto Linus Torvalds encaminha este sistema operativo cada vez mais na direção do Rust, o kernel é novamente escrito principalmente em C. Provavelmente haverá uma mudança lenta nos próximos anos. O mesmo aplica-se ao Android, que é baseado no kernel do Linux. O Google incentiva o uso de Rust no Android, mas o código base permanece baseado em C.

E Tim Cook estará melhor? Nem por isso. O kernel do OS X também é um produto C. Tal como no Linux e no Android, podemos estender a linha para a implementação móvel: o iOS depende do C. Mesmo no mundo das bases de dados, é impossível escapar ao C (ou C++), que alimenta a Oracle Database, assim como o MySQL, Servidor MS SQL e PostgreSQL.

2. Nenhuma linguagem sem FFI

Esta é a realidade em que tem de viver e crescer as linguagens modernas como Rust, Swift e Python. Para se tornarem úteis nos principais sistemas operativos, as linguagens precisam ser capazes de invocar funções e rotinas dessas plataformas. Uma interface de função externa (FFI) permite que uma aplicação escrita numa determinada linguagem interaja com uma aplicação escrita noutra linguagem. Uma FFI permite a uma determinada linguagem a capacidade de interagir diretamente com um ambiente C, sem API.

Nenhuma linguagem pode amadurecer sem FFI que permita uma interação direta com C. Mas essa realidade arrasta alguns problemas, já que C não é exatamente a linguagem mais fácil de traduzir; mas todas as linguagens de programação têm uma solução para resolver os problemas de integração – neste caso um C-FFI é obrigatório.

3. O inglês das linguagens de programação

Algumas aplicações por vezes gostam de correr noutras plataformas além daquela onde foram criadas/executadas. É perfeitamente possível que aplicações escritas em duas linguagens modernas menos onipresentes precisem interagir entre si. A questão então é se um FFI é fornecido, para assegurar uma base comum de comunicação.

O idioma de trabalho entre um colega de língua neerlandesa e um de língua francesa é muitas vezes o inglês; um idioma falado em todo o mundo. O mesmo acontece no mundo da programação. Por que razão as aplicações não devem comunicar entre si já tendo como base a linguagem C?

Como tal, C torna-se mais do que uma linguagem, assumindo agora uma clara evolução para uma espécie de protocolo. Cada linguagem e aplicação deve falar C devido aos sistemas legados, tornando C uma linguagem segura para todos comunicarem. Na realidade, C é o inglês das linguagens de programação.

Se também acredita que C domina o mundo (ou não)? Então a CHRLY Portugal precisa das suas skills. Confira as nossas vagas de emprego e candidate-se hoje mesmo.

Leave a Reply