Programação para crianças

fevereiro 7th, 2012 | 0 comments

Gostaria de abrir um curso introdutório de programação na escola onde trabalho. Os alunos terão entre 11 e 17 anos.

A pergunta é: Qual linguagem de programação utilizar?

Alguns pontos s√£o importantes e devem ser considerados, nesta ordem de prioridade:

  1. Código simples, prático, visualmente agradável, com aspecto amigável;
  2. Orienta√ß√£o a objetos: abstra√ß√£o, polimorfismo, heran√ßa…;
  3. Boa popularidade;
  4. Semelhança com Java.

Escolher uma boa linguagem para crianças dá um bom debate. E eu estarei nisso, nas próximas duas semanas.

Ah, sim… E quanto ao Java?

fevereiro 4th, 2012 | 0 comments

Por que não uso Java (que eu já conheço bem)? Por que aquilo que a torna uma linguagem cheia de recursos e altamente customizável, é exatamente o que também a torna difícil de se programar.

Por que n√£o uso Groovy? √Č a linguagem que mais elegantemente pode substituir Java, otimizar seu c√≥digo, etc… Mas n√£o consigo achar bons tutoriais, livros,¬†e a p√°gina oficial n√£o ajuda. Por ter tipagem din√Ęmica, √© poss√≠vel que perca ainda alguma velocidade.

Como alternativa, achei uma linguagem chamada Scala.

A p√°gina inicial de seu Scala IDE for Eclipse encanta com bons v√≠deos introdut√≥rios… Sua sintaxe lembra menos o Java que o Groovy, por√©m decidi investir meus estudos nela, para utilizar o potencial Java, com menos linhas de c√≥digo e maior simplicidade.

Assim, por enquanto: falou-se em Java, falou-se Scala.

Python: meu sonho acabou (e bem cedo)!

fevereiro 4th, 2012 | 0 comments

Pois… Desisti do Python! √Č uma √≥tima linguagem, mas lenta e pouco compat√≠vel com o OpenGL¬†(meu alvo atual).

Depois de estudar sobre SDL, SWIG, Pyrex, CPython, Cython, as ctypes, e at√© a √≥tima Pygame, compreendi que Python n√£o tem boas chances de explorar ao m√°ximo o OpenGL, em situa√ß√Ķes extremas, como eu pretendo.

Tamb√©m √© impressionante como, passados dois anos de Python 3, usu√°rios e produtores de extens√Ķes ainda relutam em abandonar o Python 2. Dos m√≥dulos OpenGL que conheci, apenas Pygame tornou-se compat√≠vel com as vers√Ķes 3 do Python.

A sa√≠da? Estudar algo que tenha boas rela√ß√Ķes com C/C++, as linguagens nativas do OpenGL.

» Read the rest of this entry «

Brincando com o Python

janeiro 19th, 2012 | 0 comments

Quer aprender a programar, sem muita dificuldade? Aprenda Python! Baixe e instale a vers√£o mais nova (atualmente a 3.2.2) em python.org.

Esta versão vem com a IDLE, que é um ambiente pequeno e leve para executar código Python. Após instalado, use a IDLE e comece a escrever seus códigos. Por exemplo, tente este:

pessoas = ["Ana", "Pedro", "Beatriz"]
total_de_pessoas = len(pessoas)
print(total_de_pessoas)

Ap√≥s criada uma lista de nomes, entre colchetes, buscamos o n√ļmero de itens da lista e o imprimimos na tela. O resultado ser√° 3. √Č poss√≠vel tamb√©m incluir novos nomes e conferir se todos est√£o gravados:

pessoas.append("Carlos")
for inscritos in pessoas: print(inscritos)

O resultado ser√° uma lista com os quatro nomes.

Recomendo a leitura do livro “Use a cabe√ßa programa√ß√£o”, que ensina a programar, utilizando a linguagem Python. H√° tamb√©m a documenta√ß√£o em ingl√™s, aqui, al√©m de sites como o¬†http://www.python.org.br.

Por que JavaFX?

fevereiro 14th, 2011 | 0 comments

Em 1996, ficou pronto meu primeiro programa de computador. No curso técnico, aprendi a adorar uma linguagem de programação chamada Clipper. Eu nem sabia o que era linguagem procedural. Cheguei a fazer um programa que organizava a classificação de um campeonato de futebol, mas apanhava na indexação e só consegui ordenar a lista pelos pontos ganhos, desconsiderando o saldo de gols e outros dados.

Voltei a me concentrar em programação em 2002, já com o Delphi. Embora já no mundo da programação orientada a objetos, eu o utilizava praticamente de maneira procedural. Os códigos ficavam uma bagunça e eu não conseguia terminar nenhum programa grande. Acabei desistindo.

Anos mais, comprei o livro da s√©rie “Use a cabe√ßa”, sobre Java (tinha lido o sobre HTML e gostei da pedagogia deles). Tinha estudado rapidamente PHP (e Php-Gtk, mas n√£o tinha me aprofundado). Acabei entrando no mundo Java. Gostei muito. Pensei: “Agora volto para a programa√ß√£o de vez!”. Por√©m, o Java n√£o √© t√£o fant√°stico assim.

Explico o por quê. Gosto de programar jogos e acho péssimo ter que:

1 - Anexar um objeto de barra de rolagem a objetos como o JList ou o JTextArea. √Č uma perda de tempo;

2 – N√£o descobrir como manipular imagens adequadamente. Tive que criar um JPanel modificado, para utilizar estruturas gr√°ficas para desenhar improvisadamente as imagem (e o NetBeans sempre encrencou com isso);

3 РODIAR a manipulação de eventos em Java! O listener fica encapsulado mas a função propriamente dita fica fora do objeto. O código fica uma bagunça! Há maneiras de se fazer isso tudo encapsulado mas eu não gostei;

4 – O Swing j√° deu o que tinha que dar. Est√° feio e ultrapassado. E nem falo dos gerenciadores de layout…

Ent√£o, eis que paro para ler sobre JavaFX no Wikipedia e acabo por chegar a uma p√°gina da Oracle cheia de exemplos de applets, ali, no meu navegador (uso o Chrome). Aquilo mudou tudo…

A proposta do JavaFX (incluo o JavaFX Script, pois um foi feito para funcionar com o outro) é criar as telas de maneira rápida e fácil. E foi inteligente pois corrigiu muito do código complexo do Java e trouxe uma simplicidade enorme. Com 50 linhas de código, fazemos algo realmente atraente. Certamente, para melhorar o Java, seria preciso mudar um pouco a linguagem: quem conhece a linguagem Java, precisará estudar JavaFX Script para conseguir utilizar o JavaFX até a versão 1.3.1. Esse foi um dos motivos da descontinuação do JavaFX Script. E por isso estou estudando o Visage, que pretende ser uma continuidade do JavaFX Script, pois se JavaFX se tornar meramente uma biblioteca multimídia para a linguagem Java, eu estarei fora!

Estou ansioso para come√ßar a postar os conte√ļdos em JavaFX que estou preparando. Alguns j√° est√£o prontos mas descobri que o WordPress n√£o permite inserir c√≥digos javascript (necess√°rios para ativar os applets do JavaFX nos navegadores), ent√£o terei que utilizar imagens de exemplo, com links para minha outra p√°gina (que estou construindo quase que totalmente em JavaFX).

Estou ansioso… Espero poder ajudar com meus exemplos de c√≥digo e minha p√°gina a todos que est√£o aprendendo a usar JavaFX mas est√£o com dificuldades.