Troquei o Emacs pelo Visual Studio no Linux

Ok, é temporário e é apenas para Red. Mas a história é a seguinte:

Atualmente existe a possibilidade de salientar a sintaxe e mais algumas coisinhas utilizando Red + Emacs. Porém, ainda existe uma certa dificuldade na integração entre os dois o que faz com que o emacs vire um simples (e bem simples) editor de textos como qualquer outro. Opções simples como enviar um bloco ou até mesmo todo o programa para ser interpretado não estão disponíveis.

A plataforma primária dos desenvolvedores de Red é o Windows e eles já fizeram um bom trabalho integrando Red com o Visual Studio, pensei que poderia usar em vez de perder tempo com editores que não uso. Seria possível ajustar o Kate ou algum editor que use o gtksourceview (não gosto do scintilla). Como resolvi testar o Manjaro Budgie para mudar um pouco o visual de tempos usando o KDE (posso dizer que estou gostando), resolvi instalar o Visual Studio.

Apesar de não estar bem familiarizado, é um editor bom, relativamente simples e possui uma boa integração com Red.

captura-de-tela-de-2017-01-18-23-54-29

Red + Ruby = Reby ou Rud ?

Como todos sabem, ou não, a próxima versão de Red traz #macros. No primeiro formato, é apenas um nome seguido de uma função e seus respectivos parâmetros. Neste caso, a macro irá avaliar a função e trocará o nome e seus parâmetros pelo resultado. No segundo formato, baseado em um padrão definido, o usuário poderá alterar o código para um novo formato (meio estilo Lisp). É interessante pois é uma outra forma de criação de dialetos em Red. Um usuário que gosta de Ruby e Python resolveu colocar o seguinte exemplo na lista:

Para repetir um trecho um determinado número de vezes em Red, utilizamos loop. Fica algo como:

loop 10 [
    print "Hello"
]

A macro acima permite que se crie um dialeto possibilitando a mesma construção  utilizada em Ruby, ou seja:

10 times [
    print "Hello"
]

Basicamente inseriu loop no início, incluiu a primeira parte do código start/1 que é o número 10, pulou a segunda parte start/2 que é o times e incluiu o bloco que é a terceira parte.

Possibilidades? Fica por conta da sua imaginação.  Como a linguagem ainda é beta, provavelmente #macros sofrerão algumas alterações no decorrer do desenvolvimento. Ainda não sei quando, como e onde utilizar #macros e parser para a criação de dialetos, isto é, qual a melhor situação para a utilização de um ou outro ou os dois simultaneamente. Muita coisa para a minha cabecinha. 😀

Red – um pouco de diversão

Como Red ainda está em desenvolvimento (e vai continuar por um bom tempo), um dos problemas que existem é a falta de documentação. O REPL é bastante prestativo permitindo que se digite o início da função, pressione-se Tab e uma lista das possíveis complementações é mostrada. Muitas vezes você sabe que existe algo mas não lembra exatamente o nome ou como inicia. Você pode digitar what e uma relação das funções disponíveis com uma breve descrição será mostrado. Mesmo assim pode ser possível que você não lembre exatamente como é utilizada. Mas você poderá utilizar Help ou ? função e verá maiores informações sobre a utilização dela.

Mas que tal facilitar um pouco a vida? Que tal uma janela com uma lista das funções onde, ao selecionar uma função, será mostrada sua utilização, descrição, argumentos e possíveis refinamentos? Bem, tipo a janela abaixo.

red-fun

Melhor ainda se for com apenas 27 linhas de código (poderia ser menos) como o que segue:

Como o suporte para GUI no Linux e OS X ainda não estão prontos, o programa funciona só no Windows (ou no wine para Linux).

Linhas 1 a 6 é apenas o cabeçalho.

Linha 8 só é necessária se o programa for compilado. O programa help.red encontra-se em environment/console da distribuição e, no meu caso, apenas copiei para o mesmo diretório do programa.

Linhas 12 a 16 varrem as funções existentes e as armazenas na variável fn

Linhas 18 a 27 se encarregam de criar a janela, a lista e a área de texto, preencher a lista com as funções encontradas e reagir ao clique na lista mostrando as informações na área de texto. Se você acha 10 linhas muito, é só colocar tudo que está depois do do na mesma linha que ficam apenas 5 linhas.

Existe espaço para melhorias como colocar exemplos e os respectivos resultados de cada função para facilitar ainda mais a vida do usuário ou especificar um filtro para a lista de funções.

Bem, por enquanto era isso.