@manhobby
é uma ótima pergunta...
Bom, além do Alex, criador da linguagem, sou um usuário assíduo da linguagem, inclusive, participo do desenvolvimento dela desde 2008.
Como você pode ter lido no final do meu artigo no code-project, eu desenvolvi sistemas que estão rodando até hoje em bancos, como Banco Bradesco, Banco Fidis, Fundo Estrela ( banco Mercedes ), e estão rodando perfeitamente sem nenhum tipo de problema.
QUando portei estes sistemas de C# para ELENA, inicialmente era um teste que eu estava fazendo, mas, depois que vi o desempenho do sistema, que estava pelo menos 35% mais eficiente e rápido que o mesmo programa feito em C#, abandonei o sistema em C# e mantive tudo em ELENA.
Atualmente, o executavel gerado pelo compilador da linguagem é linkado junto com uma VM ( parecido com que é feito pelo compilador de CA-Clipper ou (x)Harbour, a diferença é que a VM da linguagem ELENA nao interpreta os opcodes, tal como é feito pela vm do clipper ou (x)harbour, a vm da linguagem ELENA faz o que chamamos de JIT, onde o compilador JIT gera codigo de maquina ( assembly ) a partir dos opcodes, e então executa o assembly gerado.
Essa é uma pratica bastante comum hoje na computação, VMs como .Net, JVM fazem isto...
Atualmente a linguagem esta passando por uma refatoração de sintaxe bastante grande, inclusive, este artigo já esta desatualizado, devido a refatoração que esta sendo feita, a sintaxe atual dela esta mais parecida com C#, mas, com um desempenho muito melhor, veja alguns exemplos
Criação de classes
import extensions;
class MyClass
{
// a field
string myString;
// an implicit constructor
constructor(string s)
{
myString := s
}
// an explicit constructor
constructor fromNuber(int n)
{
myString := n.toString();
}
// a method
printString()
{
console.printLine(myString)
}
}
public program()
{
// creating a class instance by sending new message to the class
var myClass := new MyClass("This is printed by my class.");
myClass.printString()
}
Operações lambda
import extensions;
import system'routines;
import extensions'routines;
public program()
{
var list := new Range(1,5).selectBy:(n => randomGenerator.nextInt(100)).toArray();
console.printLine("sort(",list,")=",list.orderBy:(p,n => p < n))
}
Enfim, você pode ver diversos exemplos em:
https://github.com/ELENA-LANG/elena-lang/wiki/ELENA-Programming-LanguageCaso queira ver como era a sintaxe mais antiga da linguagem ELENA, tem projeto que desenvolvi, para descompilar o executavel .net:
https://github.com/bencz/DotNetProject/tree/master/DotNetPELib/DotNetPELib_test_all_sourcesA duvida que fica é, é uma boa ideia migrar o código legado para ELENA ?
Vamos aos pontos:
Contras:
[*] Encontrar desenvolvedor no mercado, é praticamente impossível.
[*] Atualmente ( 15/01/2018 ), a linguagem esta passando por uma refatoração de sintaxe
[*] Muitos pontos importantes para a criação de sistemas não estão migrados para a plataforma 4.0 da linguagem, como por exemplo, criação de programas com interface gráfica.
Pros:
[*] Alto desempenho
[*] Extremamente segura, visto que o código executável é executado por um JIT, então, a alteração do executável se torna quase que impossível
[*] Manutenção muito simples, se aplicadas as regras de desenvolvimento corretas para a linguagem, que é, orientação a objetos
[*] Extremamente dinâmica
[*] Escalável
Bom, e para finalizar... atualmente estou desenvolvendo diversos sistemas em ELENA, muitos já estão em produção e processando dados em diversos clientes e estou muito satisfeito com o desempenho e eficiência!!!!
Para projetos futuros, esta previsto a criação de um sistema para desenvolvimento de sites em ELENA e já esta nos meus planos desenvolver sistemas inteiros em ELENA, para Web!