Entrevista com Colin Walls
- por Sergio Prado
Um tempo atrás eu postei a resenha de um livro bem interessante do Colin Walls, “Embedded Software The Works“. Entrei em contato com ele, que topou responder algumas perguntas sobre a área de sistemas embarcados. Segue nossa conversa abaixo.
Colin, fale um pouco sobre você. Como você começou a trabalhar com sistemas embarcados?
CW: Quando eu era criança, eletrônica era meu hobby. Mais tarde me interessei por computadores e comecei uma carreira na área de software, me especializando em sistemas de controle de tempo real. Trabalhar com sistemas embarcados foi uma evolução natural.
O que você faz na Mentor Graphics? Em que projetos tem trabalhado ultimamente?
CW: Tenho trabalhado na Mentor Graphics por um bom tempo. Trabalhava na Microtec, que foi adquirida no meio da década de 90. Comecei desenvolvendo trabalhos puramente técnicos como suporte e desenvolvimento. Mais tarde fui para o marketing, aproveitando meu background técnico. Sempre gostei de escrever e descobri também que gosto de palestrar. Hoje me sinto em casa quando estou palestrando. Nos últimos 2 anos, tenho me envolvido bastante com eventos de marketing online (Web Seminars), que são mais efetivos em trazer resultados.
Qual foi o maior desafio na sua carreira?
CW: Eu acho que a decisão de trabalhar na Microtec foi um grande passo para mim. Eu estava deixando um emprego seguro para me juntar à uma start-up. No final, percebi que fiz a coisa certa.
Que ferramentas você usa no seu dia-a-dia para gerenciar ou desenvolver projetos?
CW: Eu não estou ativamente envolvido em qualquer trabalho de desenvolvimento no momento. Se estivesse, ou quando estiver, naturalmente vou escolher as ferramentas da Mentor Graphics. :-)
O que você pode dizer sobre o futuro na área de Sistemas Embarcados?
CW: Ler uma bola de cristal é sempre perigoso, já que novas tecnologias aparecem e mudam o jogo. Mas algumas coisas são certas. Sistemas Embarcados estarão cada vez mais presentes nas nossas vidas. Dificilmente um dia se passa sem que eu ouça algo sobre um novo dispositivo eletrônico. Consumo de energia continuará sendo uma preocupação, já que questões ambientais são uma forte influência. Projetos usando CPUs com múltiplos núcleos se tornarão mais comuns – provavelmente padrão.
E sobre o crescimento do número de dispositivos com Linux embarcado?
CW: Como existem muitos programadores que trabalham com aplicações desktop, parece coerente para desenvolvedores de sistemas embarcados tirarem vantagem disso, e aproveitar toda a gama de drivers e aplicações disponíveis. Portanto, o uso de Linux em aplicações embarcadas, onde restrições de memória e aplicações de tempo real não são prioridades, é compreensível. Acredito que veremos cada vez mais o uso de Android, que roda em cima de Linux, em várias aplicações além de equipamentos mobile.
O que você tem a dizer para novos engenheiros/desenvolvedores que estão começando a carreira em sistemas embarcados?
CW: O principal ponto é que eles precisam saber programar. Grande parte do software para desktop é desenvolvido através da reutilização de componentes existentes. Não existe nada de errado nisso, mas para sistemas embarcados, prestar atenção no uso de recursos é essencial. Um desenvolvedor de software embarcado precisa conhecer C, e pelo menos saber ler Assembly, se não for capaz de codificar neste nível.
Eu li “Embedded Systems The Works” e gostei bastante. Existe algum planejamento para um novo livro?
CW: Obrigado. Tem sido bem recebido e as vendas também estão bem. E uma parte dos royalties de cada cópia vendida é revertida para uma instituição de caridade, o que é bastante gratificante. Escrever um livro consome bastante tempo, o que infelizmente não tenho neste momento. Entretanto, uma nova edição do “The Works” será publicado no ano que vem.
Se você fosse para uma ilha deserta, que linguagem de programação, arquitetura de CPU e sistema operacional levaria?
CW: Não tenho certeza se desenvolveria software embarcado em uma ilha deserta! De qualquer forma, acredito que tenho algumas preferências. Acho que C seria a primeira opção de linguagem, apesar de achar que aprender algo novo também seria interessante. Programar em uma linguagem de alto nível isola o programador da arquitetura da CPU. De qualquer forma, eu sempre gostei do 68000, então talvez levaria um Coldfire. A escolha do sistema operacional dependeria da aplicação, mas um sólido RTOS como Nucleos seria uma escolha fácil.
Últimas palavras para nossos leitores…
CW: É muito fácil assumir que todo sistema embarcado deva ser projetado com CPUs high-end de 32 ou 64 bits. Apesar de serem certamente necessários para dispositivos mais complexos, podem ser “demais” para determinadas aplicações. Por isso, existem ainda muitos dispositivos projetados com 4, 8 ou 16 bits por aí. São geralmente invisíveis, sem qualquer tipo de interface. Entretanto, programar para eles pode trazer desafios bem interessantes.
O Colin postou a entrevista original em inglês no blog dele aqui.
Um abraço,
Sergio Prado