Como é a ‘cara’ de uma nova linguagem de programação?

Fonte: https://www.flickr.com/photos/jesper/252307864

Fonte: https://www.flickr.com/photos/jesper/252307864

É comum uma linguagem de programação evoluir e apresentar diversas mudanças significativas. Também não é raro encontrar novas linguagens de programação que desafiam as pessoas a aprenderem coisas novas. Neste post vou discutir um pouco sobre este processo de aprendizado de uma nova linguagem de programação.

Quem trabalha na área de programação deve estar acostumado a aprender novos conceitos, sintaxes, elementos e, em termos gerais, novas maneiras de resolver problemas com as linguagens de programação. Talvez isso não seja verdade para todos, pois sempre vamos ter o aquele tradicional cenário padrão COBOL onde as coisas não evoluem muito ou quando evoluem o fazem de maneira muito lenta.

Figura2_Cobol

Recentemente fiquei pensando um pouco sobre este processo de aprender algo novo em relação a uma linguagem de programação, especialmente no que diz respeito à sintaxe. O que me motivou para pensar sobre isso foi a atualização que muitos desenvolvedores vem enfrentando para gradualmente migrar do Objective-C para o Swift e também o estudo que fiz para criar a nova caneca com sintaxe para datas do DatabaseCast . Contudo, pelo que descobri este tipo de atualização é relativamente frequente em diversos cenários. Quer dizer, olha só o novo tipo de sugestão de estilo de programação desenvolvimento com o Java 8! Praticamente não se recomenda mais utilizar loops ou variáveis e sim depender muito de técnicas como métodos anônimos, lambdas e outros.

Figura3_why-lambda2-730x320

Quais são os recursos, técnicas ou recomendações para este tipo de atualização profissional?  Pensando em um contexto mais geral, qual é o tipo de ajuda fornecer para quem está aprendendo uma nova linguagem de programação? Sei que existem muitos recursos técnicos tradicionais como livros, cursos e outros para quem quer aprender algo do zero e se atualizar, mas será que não existem novas abordagens específicas para este tipo de atualização?

Por exemplo, uma forma muito comum de descrever a sintaxe de elementos de uma linguagem é através de diagramas de sintaxe também chamados de “diagramas de ferrovia” (RailRoad diagramas). As figuras abaixo mostram exemplos deste tipo de diagrama para a sintaxe de um comando condicional tipo IF e também um  diagrama para a sintaxe de um comando CREATE da linguagem PL/SQL.

Figura4_ebnfFigura5_FiagramaCREATEEste tipo de representação visual é interessante para quem desenvolve compiladores, parses e analisadores de linguagem. Contudo, muitos desenvolvedores preferem uma notação mais textual quando procuram a documentação como, por exemplo, a definição de uma gramática na notação BNF (Backus–Naur Form)

Figura6_FormaBNFDe qualquer maneira, estes recursos para apresentação de sintaxe são pouco amigáveis para quem quer identificar mudanças e novos elementos. Seria interessante se eles tivessem recursos como animações, cores diferentes e destaques que facilitassem a visualização do que efetivamente mudou, foi inserido ou é novo. Desta forma fica mais simples, rápido e fácil descobrir a nova ‘cara’ da linguagem ou o seu ‘jeitão’.

Outra abordagem interessante é a utilização de técnicas de visualização de dados para evidenciar mudanças. Por exemplo, que tal usar um TreeMap ou as famosas nuvem de palavras (tag cloud) para ver os elementos mais comuns em um código Object-C e Swift? A imagem abaixo mostra um exemplo disso. Figura7_TagCloud

Existem muitas outras formas que podem ser exploradas para facilitar a atualização de um profissional que deseja aprender o que foi modificado em uma linguagem ou se atualizar rapidamente. Mesmo sem um esforço adicional de quem fornece a linguagem de programação, acredito que investir neste tipo de recursos pode facilitar novos desenvolvedores a utilizar o que é novo e também incentivar a adoção que propostas diferentes para resolver problemas antigos ou novos. Isso vale tanto para sintaxe, novas linguagens e paradigmas (estou me referindo a você programação funcional!), versões de API e até recursos adicionais que envolvam novos conceitos fundamentais.



Publicado em Programação, SQL | Com a tag , , , , , , , , , , , , | 1 comentário

DatabaseCast 56: Sintaxe SQL

VitrineDatabaseCast56Olá, pessoal! Neste episódio do DatabaseCast, Mauro Pichiliani (Twitter | Blog), Wagner Crivelini (@wcrivelini) e os ouvintes Alex Zaballa (@alexzaballa) e Henrique Jardim (@henriquejardim) quebram a cabeça tentando descobrir o problema na sintaxe do comando SQL. Você também vai saber um pouco mais sobre o padrão SQL, descobrir por que fugir da álgebra relacional, evitar colocar hints de instrução na forma de comentários, odiar a sintaxe (+)= e =(+) e não dar ouvidos ao diabinho e ao anjinho que ficam em cima dos ombros.

LANÇAMENTO: Veja a caneca Datas SQL com a sintaxe para manipulação de datas no Oracle, SQL Server, Mysql e PostgreSQL.

MontagemCanecaDatabaseCast

Compre esta caneca clicando aqui!

Não deixe de nos incentivar digitando o seu comentário no final deste artigo, mandando um e-mail para  databasecast@gmail.com, seguindo o nosso twitter @databasecast, vendo informações de bastidores e as músicas do programa no nosso Tumblr e curtindo a nossa página no Facebook e no Google+.

feed-rss

Veja no gráfico abaixo a duração e os tempos aproximados de início e fim de cada bloco:

GraficoTamanhoDatabaseCastEpisodio56Veja na tag cloud abaixo a contagem das palavras mais usadas nos emails, comentários e tweets do episódio anterior:TagCloudEp56

Livro Conversando sobre Banco de dados do Mauro Pichiliani (Impresso e PDF, EPUB e MOBI)

Você pode comprar a camiseta com estampa fractal Fluxo Matrix e Sonho Fractal diretamente neste link. Veja também:

Links do episódio:



Publicado em DatabaseCast, Podcast, SQL | Com a tag , , , , , , , , , | Deixar um comentário

DatabaseCast 55: Planilhas e bancos de dados

VitrineDatabaseCast55Olá, pessoal! Neste episódio do DatabaseCast, Mauro Pichiliani (Twitter | Blog), Wagner Crivelini (@wcrivelini) e o convidado Elton Rabello fazem as contas e fórmulas usando planilhas. Hoje você vai entender a dificuldade de usar planilhas no DOS, saber por que contadores adoram calculadores; quando vale a pena ou não trocar planilhas por banco de dados e vice-versa, aprender a convencer o usuário a largar a planilha e descobrir porque a rede fica lenta quando um documento é aberto.

Não deixe de nos incentivar digitando o seu comentário no final deste artigo, mandando um e-mail para  databasecast@gmail.com, seguindo o nosso twitter @databasecast, vendo informações de bastidores e as músicas do programa no nosso Tumblr e curtindo a nossa página no Facebook e no Google+.

feed-rss

Veja no gráfico abaixo a duração e os tempos aproximados de início e fim de cada bloco:

GraficoTamanhoDatabaseCastEpisodio55

Veja na tag cloud abaixo a contagem das palavras mais usadas nos emails, comentários e tweets do episódio anterior:

TagCloudEp55Livro Conversando sobre Banco de dados do Mauro Pichiliani (Impresso e PDF, EPUB e MOBI)

CAPA_AMAZON_REDUZIDA_BLOG

cover_front_medium

Você pode comprar a camiseta com estampa fractal Fluxo Matrix e Sonho Fractal diretamente neste link. Veja também:

Links do episódio:




Publicado em DatabaseCast, Podcast | Com a tag , , , , , | Deixar um comentário

Mal de Parkinson e projeto HTMA

5834306-depressed-elderly-man-sitting-all-alone-health-problemsRecentemente fiquei sabendo de um parente que apresentou um sintoma muito comum de pacientes com o mal de Parkinson: o tremor de mãos. Depois de pensar um pouco sobre isto aproveitei esta notícia ruim e a transformei em uma oportunidade para criar um projeto chamado HTMA.

Em 2013 eu participei de um concurso da Intel chamado Intel RealSense App Challenge. O objetivo deste concurso era desenvolver alguma ideia com uma câmera 3D fornecida pela Intel. Já escrevi aqui no blog um post sobre o projeto que desenvolvi chamado Double Hands.

FiguraModoOposicaoNo ano seguinte houve uma nova edição deste concurso. Como fui um dos dez ganhadores da edição anterior fui convidado para uma trilha especial chamada de embaixadores. Desta vez haviam cinco categorias na qual o projeto poderia ser enquadrado e decidi que desenvolveria outro projeto aplicando a tecnologia na área médica. Me concentrei em um sintoma comum presente em quem sofre do mal de Parkinson ou outras doenças: o tremor dos grupos de músculos da mão.

O meu projeto se chama HTMA (Hand Tremor Measurement Application – não confundir com HTML!) e ele tem o objetivo de fornecer dados precisos sobre o tremor da mão, dedos e pulso. Com a tecnologia do SDK e a câmera é possível fazer esta medição precisa que pode ajudar no acompanhamento de tratamentos, diagnóstico e ainda fornecer dados para futuros produtos voltados para os pacientes. Além de enviar o software para a organização do concurso eu também gravei o vídeo abaixo explicando um pouco melhor sobre o projeto. Os slides estão aqui.

A organização do concurso resolveu premiar as melhores ideias de cada categoria antes mesmo da avaliação final do concurso. Fui um dos escolhidos e, como prêmio, ganhei um minicomputador NUC da Intel que é muito bom . Ainda estou aguardando o resultado final, mas acredito o melhor prêmio é a sensação que, mesmo com um protótipo de um projeto simples, consegui fazer alguma contribuição para auxiliar quem possui sintomas semelhantes ou sofre da terrível doença que é o mal de Parkinson.




Publicado em Apresentação, Programação, Uncategorized | Com a tag , , , , , , | Deixar um comentário

Palestra sobre aplicações não convencionais de grafos

graph-atd-fullRecentemente apresentei uma palestra sobre grafos no meetup de GraphDB em São Paulo. Nesta palestra eu falei um pouco sobre alguma aplicações não muito comuns para grafos, como pode visto nos slides abaixo. Destaco que esta palestra não é para iniciantes, uma vez que ela aborda assuntos avançados e não cobre o básico.

Apesar de não ter muito experiência prática com grafos, eu estudei muito este assunto na faculdade e sei da sua importância. Ainda que os bancos orientados a grafos, como o Neo4J, não sejam maioria e tenham contexto de uso bem específico, acredito que vale a pena estudar um pouco sobre ele. Este tema já foi até um episódio do DatabaseCast, que faz uma introdução ao assunto.




Publicado em Apresentação, Evento | Com a tag , , , , , , , , , , , , | Deixar um comentário