Erlang , uma unidade de tráfego telefônico.
Erlang é uma linguagem de programação projetada para desenvolver sistemas robustos de programas que podem ser distribuídos entre diferentes computadores em uma rede. Nomeada para o matemático dinamarquês Agner Krarup Erlang, a linguagem foi desenvolvida pelo Laboratório de Informática Ericsson para construir software para seus próprios produtos de telecomunicações. Em uso há vários anos na Ericsson e em outras empresas, Erlang é ensinada em mais de 80 universidades e faculdades no mundo todo e está disponível gratuitamente como código fonte aberto.
Erlang é similar ao Java, pois usa uma máquina virtual e suporta Multithreading . No entanto, enquanto a comunidade de desenvolvimento Java se concentra em aplicações Web, Erlang é destinada ao mercado de servidores extremamente robustos e sistemas embarcados.
Erlang é descrita como uma linguagem de programação funcional, o que significa que ela enfatiza a avaliação de expressões ao invés da execução de comandos. As expressões utilizam funções para derivar valores básicos. (Dois outros modelos de programação bem conhecidos são procedural e object-oriented .)
Aqui estão algumas características de Erlang:
- Porque a localização dos threads do programa pode ser explicitamente especificada ou invisível para o programa, um programa pode ser facilmente distribuído e executado em qualquer ponto de uma rede.
- Erlang fornece tipos de dados dinâmicos, permitindo que os programadores desenvolvam componentes do sistema (como despachantes de mensagens) que não se importam com o tipo de dados que estão manuseando e outros que aplicam fortemente restrições de tipo de dados ou que decidem como agir com base no tipo de dados que recebem.
- Acoplamento de padrões permite programas extremamente compactos e claros (cerca de 5-10 vezes mais curtos que programas equivalentes em C ou Java ).
- Tal como Java, Erlang fornece coleta de lixo; programadores não precisam se preocupar em devolver espaço de memória alocado.
- Upgrades para o software Erlang não requerem parada do sistema.
- Interfaces para outras linguagens de programação, tais como C, C++ e Java, são fornecidas.
- Erlang vem com padrões de design ou templates para design cliente-servidor, máquinas de estado, distribuição de eventos e supervisão de threads.
- Erlang fornece um framework que suporta a distribuição de programas através de um pool de servidores, com recuperação e redistribuição automática sempre que um servidor falhar.
- Inclui também componentes poderosos para um sistema de rede, incluindo um servidor HTTP, um agente Simple Network Management Protocol ( SNMP ), uma interface Common Object Request Broker Architecture ( CORBA ), um subsistema OAM, e um mecanismo de banco de dados totalmente distribuído.
- Erlang's bytecode é idêntico em todas as plataformas, e uma rede de nós Erlang pode consistir de qualquer mistura de NT, UNIX, ou outras plataformas suportadas.
- Erlang é relativamente fácil de aprender comparado ao C, C++, e Java.
Os proponentes do Erlang afirmam que ele é superior ao Java ao desenvolver sistemas back-end que requerem: tolerância a falhas, processamento distribuído, uma grande quantidade de atividade concorrente, tempos de resposta em tempo real em milissegundos e operação sem paradas.