Leptoniando: Toda computação é sempre física

25 08 2010

Seja C, C++, Python, Java, Ruby ou Brainf*ck, independente de sua linguagem preferida, durante a análise léxica, sintática, semântica, geração do código executável ou em qualquer outra operação, na execução de programas, independente da arquitetura de run-time e dependência que ela tenha, seja instruções bare-metal ou dependente de algum sistema operacional, rodando na CPU de um ignorado microcontrolador presente em seu relógio, celular ou na CPU do seu idolatrado (ou cobiçado) notebook ou nas células de uma cloud computing, não há o que discutir, a computação é sempre um fluxo de partículas, sejam léptons do tipo elétron ou bósons de calibre como o fóton. Tudo bem que seja por influência de algum fenômeno eventualmente não se comportam como nós esperamos, porém sabendo disto determinamos faixas de tolerância e assim os mal comportados acabam sendo desprezados e vamos levando a vida praticamente sem perceber estes rebeldes e a física flui, ou tenta, nos favorecendo neste admirável mundo computacional.

E como você já sabe, ou deveria saber, a física não é exclusiva da computação, aspectos físicos estão na fundamentação de vários fenômenos, como por exemplo a sua vida e a natureza.

Tudo bem que o termo “físico”  pode ser empregado para outros contextos e com outros significados que não seja a ciência que estuda os fenômenos naturais como a interação da matéria e da energia, mas sinceramente é muito estranho quando você emprega-o de forma indevida tentando substituir um termo consagrado.

Por exemplo, temos Embedded Systems (ou sistemas embarcados em português) que é um termo que já existe desde a década de 60, quando o pai dos sistemas de navegação inercial – Charles Stark Draper – criou o Apollo Guidance Computer, que era um sistema computacional de controle e comando do módulo Lunar  da missão Apolo. O termo então é coroa e está mais atual do que nunca, principalmente porque hoje as pessoas estão se dando conta do universo computacional onde elas vivem onde há computação embarcada em máquinas de lavar, no controle de freio do seu carro, em fornos microondas, em relógios e até em tênis entre muitos outros lugares.

Obviamente que qualquer um com direitos suficientes, pode ter a liberdade de atribuir qualquer nome para qualquer coisa, mas isto costuma ser mais apropriado quando o universo onde este “apelido” é utilizado seja bem íntimo e restrito ao domínio daquele que o emprega ou a obra ou a criatura ainda não possui um nome devidamente registrado ou consagrado. Rebatizar sem nexo, quando não é feito por ironia como Paul Erdös costumava fazer, é uma ação sempre passível de represália, principalmente quando o termo não agrada por não ser muito elegante ou simplesmente por ser estúpido. Quando é um termo empregado por uma comunidade é ela que poderá estranhar a nova nomenclatura, principalmente se o nome é ligeiramente desprovido de propósitos adequados.

No caso de Sistemas Embarcados, este nome está bastante maduro e bastante conhecido no meio industrial, acadêmico e na sociedade, que é o nome dado aos sistemas digitais microprocessados no qual o computador é encapsulado ou dedicado a um sistema controlado, sendo assim diferente de computadores de propósito geral. Obviamente que há categorias de sistemas embarcados, e alguns sistemas são mais flexíveis do que outros, porém o tipo de computação realizado com eles, seja num marca-passo ou num celular é computação embarcada, sendo um tipo de computação empregado numa grande variedade de domínios e aplicações. Na realidade, se você for analisar bem, você convive a maior parte do dia com dispositivos que realizam computação embarcada do que computação genérica, por razões óbvias! Suas CPUs muitas vezes são especializadas e o próprio processador atende um determinado propósito por concepção, podendo assim ser muito mais eficiente. Dentro deste guarda-chuva, ainda há a computação pervasiva e ubíqua, porém analisando cada um dos conceitos pode-se entender que cada terminologia é bem coerente, e apesar de parecer confusa dependendo da perspectiva de análise, se corretamente analisado percebe-se que ela é inteligente.

Recentemente, surgiu uma nova terminologia chamada “computação física” que designa exatamente  um subset da “computação embarcada” mas empregando seus atributos principais. Este termo é aplicado para os sistems embarcados direcionado para artes, ensino, e no geral para um grupo quase leigo em eletrônica, que sabe apenas o suficiente para realizar suas experimentações. Por um lado, é muito interessante que este público faça uso de sistemas embarcados desta forma, pois com a propagação da informação e das técnicas de desenvolvimento, a chance da tecnologia ser melhor empregada cada vez mais é sempre maior.  Porém, estes não deixaram de desenvolver sistemas embarcados, mas estão rebatizando um termo amplamente conhecido e ignoram outros que tem sido claramente empregados.  Assim como muitos colegas da comunidade industrial, aprecio muitíssimo estas atividades mas algumas terminologias como esta são de doer! Neste caso em específico por uma razão óbvia: toda computação é física, então o que há de diferente nela?

E então vieram me dizer:  mas você entendeu errado! Computação Física são aquelas aplicações que você consegue tocar, interagir.

Vamos lá, fisicamente um bit , de uma maneira geral, é uma carga elétrica acima ou abaixo de uma faixa de  nível padrão. Para se tocar uma aplicação seria necessário entrar em contato com um fluxo de elétrons, então Computação Física é a arte de desenvolver máquinas de eletrochoque? Nem isto, pois o fluxo de elétrons de uma tensão padrão de mensuração digital não costuma ser percebida pelos seres humano normais. Será que estou lidando com anormais? Bem provável…

Ah, não é isto! A interação são com sensores como botões, acelerômetros e atuadores como leds, motores, auto-falantes. Curioso, estes componentes e estas propriedades também são utilizados por embedded systems e a computação presente  é a embedded computing. Isto me lembra o estranho termo NoSQL; afinal, uma bicicleta não é SQL então é NoSQL, mas este termo se refere aos modelos de persistência baseado em banco de dados não relacionais e de alta performance com “novos paradigmas”, alguns existentes desde a década de 60 e 70, sei…

Como o termo incomoda, alguns “gurus” desta nova categoria de projetos de interação, controle, mecatrônica e robótica adoram empregá-lo,  como no caso do NoSQL. Este tipo de artifício pode ser muito útil quando se precisa chamar a atenção, mas os Sistemas Embarcados desenvolvidos com OSHW (Open Source Hardware) por hobby, aprendizado, atividade artística ou qualquer outro objetivo, já chama a atenção por si só, pela massificação de uma cultura que já existia, mas que foi repaginada de uma forma muito vigorosa dentro do contexto Open Source, ramo da computação e da eletrônica que antes era muito restrita e pela própria interação cibernética agradável que ela acaba gerando. Tornando-se um movimento extasiante, inebriante, contagiando e atraindo cada vez mais pessoas para este mundo. Portanto, a cultura OSHW não precisa reinventar terminologias e uma integração maior com a indústria, empregando os termos já existentes e caldo de galinha não faz mal a ninguém.

Rebatizar tem se mostrado não apenas uma prática, mas uma característica da subcultura Arduino, onde se analisarmos a plataforma é uma nova versão da Wiring mas tornou-se Arduino, o IDE que era o Processing foi rebatizado de Arduino, a linguagem virou Arduino, o termo “coreboard” tem sido substituído por Arduino, a DaughBoard virou “Shield”, a arquitetura de stack virou “expansão Arduino” e até o microcontrolador tem sido chamado de Arduino por respeitáveis revistas formadoras de opinião, socorroooo!!!!

Tudo bem que spin-offs são comuns e forks fazem parte da cultura Open Source, sendo até muito bem vindos em alguns casos. Certos projetos de sucesso dificilmente teriam ganhado a projeção que eles alcançaram se estivessem atrelados aos projetos originais, mas tentar utilizar e substituir terminologias e nomes consagrados numa indústria mostra-se agressivo se o novo nome não tem nexo, visto que substituir o termo “sistemas embarcados” por “computação física” é algo que não faz sentido, pois toda computação é física e esta justifica da interação é tão inocente que chega ser constrangedora. E não adianta vir dizer que é o termo mais apropriado pois designa a interação de circuitos digitais e analógicos, pois este processamento de sinais além de ser característica dos circuitos integrados também era conhecido como sinal misto (mixed signal), e qualquer significado que se tentar encontrar para justificar este nome estranho certamente esbarrará na definição de algum outro termo já existente.

No caso do microcontrolador AVR, que já existe desde 1996 e tinha todo um ferramental open source que é empregado pelo Arduino, e da terminologia “sistemas embarcados”, isto é até uma falta de respeito por seu legado.

Entendo que todo este movimento é extasiante e inebriante, assim como somos ilhados por incoerências, ilusões e irradiação de campos de distorção da realidade, porém no que tange a nossas possibilidades devemos sempre colaborar com bom senso.

Na minha humilde opinião, aderir a  terminologias impróprias além de incoerente não é falta de etiqueta, e inclusive tem sido observado por várias pessoas da comunidade, sendo-se que alguns até aprova o movimento Open Source Hardware que é uma repaginação do que já ocorria a décadas, mas que quando abrem certas revistas de “renome” ou navegam por algumas páginas na internet torcem o nariz para estas bobagens que são escritas e propagadas.

Costumo atuar em favor da comunidade Open Hardware, mas certas situações me colocam em situação tão delicada, que realmente não há como negar: alguns sub-grupos desta comunidade precisa de um pouco de maturidade, não há mais o que dizer.

Obviamente, cada um faz aquilo que o torna mais feliz e se quiser chamar celulares de computação falante, afinal por eles se falam;  as máquinas de lavar microcontroladas de computadores lavadores; assim como as catracas de metrô de computadores porteiros, fiquem a vontade! Mas são todos dispositivos com sistemas embarcados, seja aviônica, automotiva, telecom, automação e controle, consumo ou arte digital. Estes sempre foram e a indústria continuará chamando-as assim, então esta é uma opção de cada um: ser coerente ou não.

E por enquanto é isto.

Namastê!


Ações

Information

4 responses

2 09 2010
Márcio Rodrigues

Gostei da introdução de física de partículas aplicada a computação.
Apesar de um pouco ácida, a crítica é muito sólida; há muita gente sem noção posando de entendido na área de sistemas embarcados, felizmente pessoas como vocês vivem nos dois mundos sempre puxando a orelha dos posers aloprados.

Meus parabéns por seu trabalho e pelo artigo

2 09 2010
Iara

Posers aloprados?

Este tipo de perfil não está presente só no desenvolvimento de sistemas embarcados, mas no mercado de IT em geral.

Na área de eletrônica o agravante é que cada vez mais o pessoal se desinteressa por áreas básicas como antena, potência, EMI, etc…

E para ajudar, os que se dizem entendidos palestram bobagens posando de experts.

Muito bom post, ele deveria ser extendido em uma série tratando de vários termos pervertidos.

1 02 2011
Marcellus

Gostei muito do texto e da forma que foi escrita, parabéns. Contudo, tenho um pensamento contrário com relação ao título, pois computação é a ação ou efeito de computar. E computar significa: avaliar, calcular, contar, igualar e orçar.

Portanto, quanto realizamos contas e cálculos mentalmente estamos computando. E essa computação causa reações químicas no cérebro, onde os neurônios processam e transmite informação por sinais eletroquímicos. Em resumo, um processo químico.

Por outro lado a Física, como você disse, a “física não é exclusiva da computação, aspectos físicos estão na fundamentação de vários fenômenos, como por exemplo a sua vida e a natureza.”

A física é a ciência que estuda a natureza e seus fenômenos em seus aspectos mais gerais. Envolve o estudo da matéria e energia, além de suas propriedades, abrangendo a análise de todas as suas consequências. Busca a compreensão dos comportamentos naturais do Universo, desde as partículas elementares até o Universo como um todo. De onde se conclui que tudo é um processo físico, a natureza é física.

2 02 2011
techberto

Marcellus,

Há um “triplo sentido” no título, no fundo ele é uma provação.
Quando uma computação está ocorrendo, o fluxo de léptons que proporciona o processamento é um fenônemo físico – este é um dos pontos de provocação.

E quando pensamos um fenônemo biofísico também está ocorrendo… a física está em todo lugar.

[]s

Deixe um comentário