As linguagens de script tornam a codificação mais simples e rápida, portanto, não é surpreendente que sejam amplamente utilizadas no desenvolvimento web.

Entretanto, esse não é seu único campo de aplicação. Há também linguagens de script para sistemas operacionais, software de análise estatística, aplicações de escritório, motores de jogos e muitos outros tipos de plataformas.

Neste artigo, aprenda exatamente o que elas significam e conheça os melhores exemplos de linguagens de script.

As linguagens de scripting podem realizar diferentes ações dentro de um determinado ambiente de tempo de execução, tais como automatizar a execução de tarefas, melhorar a funcionalidade do software pai, realizar configurações, extrair dados de conjuntos de dados, e outros.

As linguagens de scripting podem surgir de duas maneiras:

  1. Um ambiente de tempo de execução pode introduzir sua própria linguagem de script, como Bash para o sistema operacional GNU ou VBA para aplicações Microsoft Office.
  2. Um ambiente de tempo de execução pode adotar uma linguagem de script existente, por exemplo, a casca de mongo do MongoDB foi construída em torno do JavaScript.

Por outro lado, às vezes é a linguagem de script que existe primeiro e dá origem a sua própria plataforma de pais – por mais estranho que isso possa parecer.

Foi o que aconteceu no caso do Node.js, um ambiente de tempo de execução backend que foi criado para permitir que os desenvolvedores web usassem JavaScript não apenas no frontend, mas também no backend, seguindo o paradigma do ‘JavaScript em todos os lugares’.

O que significa Scripting na Programação?

A ação do scripting é essencialmente escrever uma série de comandos que são interpretados um a um por uma aplicação ou motor de scripting. Embora o script oriente a plataforma através do que fazer (dá-lhe um script para ler e interpretar), a execução é realizada pelo ambiente de tempo de execução e não pela linguagem de script em si.

É assim que as linguagens de scripting são diferentes das linguagens de programação como Java que você pode “escrever uma vez, rodar em qualquer lugar” (slogan oficial do Java que significa que os programas Java podem rodar como aplicações autônomas em qualquer ambiente; uma vez que sendo cunhado, tornou-se também o princípio WORA que se refere às capacidades multi-plataforma).

Linguagens de Scripting vs Linguagens de Programação

Embora os termos “linguagem de script” e “linguagem de programação” sejam freqüentemente utilizados de forma intercambiável, eles não são a mesma coisa.

Plataforma-específica vs Plataforma-Agnóstica

As linguagens de scripting são específicas da plataforma, enquanto as linguagens de programação são agnósticas à plataforma (multi-plataforma), pois têm a capacidade de executar elas mesmas. Por exemplo, você pode executar um programa Java em qualquer sistema operacional.

(Na maioria das vezes) Interpretado vs Compilado

Enquanto as linguagens de programação são compiladas, as linguagens de script são em sua maioria interpretadas – embora existam algumas linguagens de script que são tanto compiladas como interpretadas, como Python e Groovy.

Compilado” significa que uma linguagem de programação tem seu próprio compilador que traduz a sintaxe em código de máquina antes do tempo de execução. Em contraste, as linguagens de script são interpretadas linha por linha durante o tempo de execução pelo intérprete da plataforma em que estão rodando.

Mais rápido vs. mais lento em tempo de execução

Devido a esta diferença na implementação, as linguagens de programação funcionam mais rapidamente que as linguagens de script, pois não precisam ser compiladas em tempo real. Os compiladores também realizam o tratamento coletivo de erros antes da execução, enquanto os intérpretes avaliam o código linha por linha, de modo que eles fazem uma pausa (ou param completamente) toda vez que encontram um erro.

Isto também aumenta o tempo total de execução das linguagens de script, mesmo que em hardware moderno e mais rápido, este é um problema menor do que era antes.

Mais vs Menos Intensivo de Código

As linguagens de programação são mais intensivas em código, pois você tem que fazer muitas coisas manualmente que são tratadas pela plataforma no caso das linguagens de scripting. Se você usa uma linguagem de scripting, você tem que escrever muito menos código.

Aplicações autônomas vs Aplicações como parte de uma pilha

Há algumas coisas que você simplesmente não pode fazer com uma linguagem de roteiro. Mais importante ainda, você não pode criar aplicações autônomas de mesa e móveis com uma linguagem de script, pois não há um ambiente de tempo de execução que as interprete.

Por exemplo, você pode usar estruturas PHP como WordPress e Laravel somente para websites e aplicações web porque eles usam o navegador web como seu ambiente de tempo de execução. Da mesma forma, os aplicativos móveis WordPress são executados em ambientes móveis de tempo de execução, como o Capacitor, que incorporam vistas da web.

Scripting vs Linguagens de Programação – Visão Geral das Diferenças

Portanto, as principais diferenças entre as linguagens de scripting vs programação são as seguintes:

Linguagem de scripting Linguagem de programação
Plataforma específica Plataformaagnóstica (cross-platform)
(Na maioria das vezes) interpretada Compilado
Mais lento no tempo de execução Mais rápido em tempo de execução
Menos intensivo em código Mais intensivo em código
Cria aplicações como parte de uma pilha Cria aplicações como parte de uma pilha

Confusões sobre as linguagens de scripting

Há algumas confusões sobre as linguagens de roteiro que você encontrará com freqüência, então vamos dar uma olhada nelas antes de entrar nas melhores linguagens de roteiro.

O mais importante é que não faz muito sentido falar em linguagens frontend versus backend scripting, mesmo que muitos artigos que você encontrará em toda a web utilizem este tipo de agrupamento.

Na verdade, há apenas uma linguagem de frontend de script atualmente em uso, que é o JavaScript (antes existiam outras, como ActionScript e JScript, mas agora todas estão obsoletas).

Não é o frontend vs backend que é importante no contexto das linguagens de scripting, mas o(s) ambiente(s) de tempo de execução onde uma linguagem de scripting pode funcionar.

Note que ‘frontend’ significa apenas algo (imagem, fonte, marcação, folha de estilo, script, outro tipo de arquivo estático) que um navegador da web pode interpretar. Por exemplo, tente abrir um arquivo PHP diretamente do navegador da web: você não pode, porque um servidor de aplicação PHP tem que interpretá-lo – assim o PHP é uma linguagem de script backend no contexto do desenvolvimento web, enquanto a camada de aplicação de uma pilha de servidores (por exemplo, LAMP) no contexto das linguagens de scripting.

Além do desenvolvimento web (frontend e backend scripting), as linguagens de scripting também podem ser usadas para múltiplas coisas como programação e configuração de sistemas operacionais e aplicações/ambientes específicos, manipulação de conjuntos de dados, automatização de tarefas e muitas outras.

Uma linguagem de script também pode ser executada em múltiplos ambientes.

O que não são Linguagens de script?

Antes de entrar nas melhores linguagens de script, vamos ver as linguagens de codificação que às vezes são falsamente chamadas de linguagens de script, mas você não pode escrever com elas:

  • Linguagens de marcação, tais como HTML e XML. Em HTML, há atributos para o tratamento de eventos como onclick e onmouseover, mas estes ainda são callbacks em JavaScript.
  • Idiomas das folhas de estilo, tais como CSS, Sass e LESS.
  • Qualquer tipo de biblioteca ou estrutura construída sobre qualquer linguagem de script, tais como jQuery, PostCSS, React, Vue, Angular, Rails, Grails, Django, Laravel, WordPress, e outros.
  • Linguagens que são compiladas em uma linguagem de script, tais como TypeScript e CoffeeScript.
  • SQL como é para gerenciar dados em sistemas de gerenciamento de banco de dados relacionais (RDBMS) tais como MySQL e MariaDB. Eles não permitem que você escreva funcionalidades dinâmicas. Entretanto, muitos RDBMSs têm shells que permitem o uso de uma linguagem de script (por exemplo, JavaScript ou Python na do MySQL Shell).
  • Ambientes de tempo de execução para uma ou mais linguagens de script, como o NodeJS.

Quais são as 13 Melhores linguagens de script?

Há muitas grandes linguagens de script que mereceriam uma menção neste guia, mas que não estão mais em desenvolvimento ativo. Entretanto, as 13 linguagens de scripting a seguir são regularmente atualizadas e também estão sendo utilizadas na produção.

Portanto, se você está pensando em aprender uma nova linguagem de roteiro como um novo caminho profissional, todos eles valem a pena tentar.

1. JavaScript/ECMAScript

JavaScript
JavaScript

JavaScript é uma implementação da norma ECMA-262 que define a linguagem de script de propósito geral ECMAScript (ES). Em outras palavras, o JavaScript é um dialeto da linguagem ECMAScript, portanto não tem uma especificação autônoma, mas usa a mesma sintaxe do ECMAScript.

O JavaScript tem funções de primeira classe (as funções são tratadas como variáveis) e suporta programação orientada a objetos baseada em protótipos (os objetos existentes são reutilizados como protótipos).

Exemplo de código

ECMAScript utiliza uma sintaxe de parênteses curvos. O seguinte exemplo de código JavaScript adiciona números de 1 a 10 juntos e produz o resultado no console (você pode testá-lo no console JavaScript do seu navegador da web, pressionando F12):

let total = 0, count = 1;

while (count <= 10) {
    total += count;
    count += 1;
}

console.log(total);
// 55

Fonte: Eloquent JavaScript by Marijn Haverbeke: Introduction

Estojos e Ambientes de Uso

JavaScript é a linguagem de script utilizada pelos navegadores web modernos, como o motor V8 da Chrome e o motor SpiderMonkey da Mozilla. Além disso, o desenvolvimento web frontend, também pode ser usado em ambientes não navegáveis. O ambiente NodeJS runtime foi criado para permitir aos desenvolvedores web usá-lo no backend.

Os shells de alguns sistemas de gerenciamento de banco de dados NoSQL, tais como MongoDB e Apache CouchDB, e alguns sistemas de gerenciamento de banco de dados relacionais, tais como o já mencionado MySQL Shell, também o utilizam como uma linguagem de scripting.

2. PHP

PHP
PHP

PHP é uma linguagem de script de código aberto de uso geral utilizada no desenvolvimento web backend. A sigla originalmente significava ‘Personal Home Page’, já que o PHP foi criado para adicionar funcionalidades dinâmicas às páginas HTML estáticas.

Desde então, o PHP evoluiu para uma linguagem autônoma, por isso agora o acrônimo é usado no sentido de “Hypertext Preprocessor”. O PHP é digitado livremente (você não precisa declarar os tipos de dados das variáveis), pode ser embutido em documentos HTML, e tem características orientadas a objetos também.

Exemplo de código

O PHP tem uma sintaxe semelhante à do C. O exemplo de código PHP a seguir cria uma matriz numérica com quatro elementos, faz loops através deles, multiplica cada item por dois, e desativa a variável de $value quando o loop termina.

<?php
$arr = array(1, 2, 3, 4);

foreach ($arr as &$value) {
   $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)

unset($value);
?>

Fonte: PHP documentation: Control Structures

Casos de uso e Ambientes

O PHP pode ser executado em diferentes servidores HTTP, sendo o Apache e o Nginx os mais populares.

As pilhas de servidores PHP mais comuns são LAMP (Linux, Apache, MySQL, PHP), LEMP (Linux, Nginx, MySQL, PHP – usado por Kinsta), e WAMP (Windows, Apache, MySQL, PHP), e MAMP (macOS, Apache, MySQL, PHP).

Também é usado por muitos sistemas de gerenciamento de conteúdo popular (CMS) como WordPress, Drupal e Joomla, e frameworks de aplicações web como Laravel, Symfony e CodeIgniter, que são todos construídos em cima da linguagem PHP e a aperfeiçoam com funcionalidades extras.

Você também pode usar PHP para o desenvolvimento local do WordPress.

3. Python

Python
Python

Python é atualmente a segunda linguagem de codificação mais popular no GitHub (depois do JavaScript). É adorada por sua sintaxe clara e concisa – ao codificar em Python, você tem que digitar muito menos do que na maioria das línguagens.

Python é um projeto livre e de código aberto, gerenciado pela Python Software Foundation. Ele suporta os paradigmas de programação estruturada, orientada a objetos e funcional, e tem uma extensa biblioteca padrão que é uma coleção de módulos Python comumente usados.

Exemplo de código

Python não usa colchetes e os ponto-e-vírgula são opcionais, portanto o código é fácil de ler e escrever. O seguinte exemplo de código Python passa por números inteiros entre 0 e 4, e os imprime:

count = 0
while count < 5:
   print(count)
      count += 1

Fonte: Learn Python: Loops

Casos de uso e Ambientes

A implementação mais popular da Python é o CPython, escrito na linguagem C. É também a implementação de referência que você baixa junto com a linguagem Python. Embora Python seja uma linguagem interpretada, CPython utiliza tanto uma etapa de compilação quanto de interpretação. Primeiro, ele compila o código fonte em bytecode (não é o mesmo que código de máquina) que ele interpreta em tempo de execução.

Além do CPython, Python também tem outros ambientes de tempo de execução, o mais importante, PyPy que omite a etapa de compilação e só faz a interpretação JIT (just-in-time). As implementações Python são multi-plataforma, ou seja, rodam em múltiplos sistemas operacionais, incluindo Linux, Windows e macOS.

A linguagem Python é freqüentemente usada no aprendizado de máquinas, desenvolvimento web backend (sendo Django a estrutura web mais popular), análise de dados, automação, computação científica e raspagem da web.

4. Ruby

Ruby
Ruby

O Ruby é uma linguagem de script de código aberto, de uso geral, com uma sintaxe compacta e de fácil leitura. Ela segue os princípios da programação orientada a objetos e permite que você escreva código limpo e lógico. Em Ruby, tudo é um objeto – mesmo tipos que são primitivos na maioria das linguagens, tais como booleans e inteiros.

Conceitos orientados a objetos como herança, mixins e metaclasses também são muito utilizados.

Embora Ruby tenha um projeto puramente orientado ao objeto, também suporta programação processual (funções e variáveis definidas fora das classes pertencem ao objeto Self) e programação funcional (através de funções anônimas, fechamentos e continuações).

Exemplo de código

O Ruby tem uma sintaxe concisa semelhante à do Python. O exemplo de código Ruby a seguir define a classe KaraokeSong como uma subclasse da classe Song:

class KaraokeSong < Song
   def initialize(name, artist, duration, lyrics)
      super(name, artist, duration)
      @lyrics = lyrics
   end
end

Fonte: Programming Ruby reference guide: Classes, Objects, and Variables

Casos de uso e Ambientes

O Ruby é usado principalmente no desenvolvimento web backend, alimentando alguns frameworks robustos de aplicações web, como o Ruby on Rails. Muitos sites e aplicações populares rodam em Ruby on Rails, tais como Airbnb, Shopify, GitHub, e Hulu.

Ruby é também a linguagem na qual muitas ferramentas populares de desenvolvimento web estão escritas, mais notadamente o pré-processador Sass CSS, o gerador de sites estáticos Jekyll e o ambiente de máquinas virtuais Vagrant.

A implementação padrão do Ruby é YARV (Mais uma máquina virtual Ruby). Ela mudou o Intérprete Ruby original do Ruby Matz (também Ruby MRI ou CRuby) que havia sido criticado por problemas com velocidade e escalabilidade.

Há também vários ambientes concorrentes para Ruby, tais como JRuby (permite executar Ruby na máquina virtual Java), mruby (uma implementação leve que você pode incorporar dentro de sua aplicação), TruffleRuby (interpretador Ruby da Oracle construído sobre GraalVM), Rubinius (uma máquina virtual nebulosa para Ruby), e outros.

5. Groovy

Groovy
Groovy

Groovy é uma incrível linguagem flexível escrita para a Máquina Virtual Java (JVM) que pode ser usada tanto como uma linguagem de script quanto de programação. É um projeto de código aberto mantido pela Apache Software Foundation. Groovy é uma linguagem orientada a objetos que estende a superclasse java.lang.Object

Ele suporta tanto a digitação estática quanto dinâmica (a verificação de tipo pode ser realizada tanto em tempo de compilação quanto em tempo de execução) e tem suporte nativo para listas, arrays associativos, expressões regulares e linguagens de marcação, como HTML e XML.

Você pode usar Groovy junto com as bibliotecas Java existentes.

Exemplo de código

Groovy tem uma sintaxe compatível com Java, usando colchetes encaracolados. O seguinte exemplo de código Groovy define a classe Coordinates com as propriedades de latitude e longitude e o método getAt():

 @Immutable
class Coordinates {
   double latitude
   double longitude

   double getAt(int idx) {
      if (idx == 0) latitude
      else if (idx == 1) longitude
      else throw new Exception("Wrong coordinate index, use 0 or 1")
   }
}

Fonte: Groovy Documentation: Semantics

Casos de uso e Ambientes

Como o Groovy se compila em código byte Java, você pode usá-lo como uma linguagem de programação de propósito geral semelhante ao Java. Neste caso, você pode compilar o código fonte em código byte antes do tempo de execução usando o compilador groovyc (o equivalente ao javac).

No entanto, também há muitas implementações Groovy que permitem usá-lo como uma linguagem de script. As mais populares são a estrutura de aplicação web Grails (anteriormente conhecida como Groovy on Grails) e a ferramenta de automação Gradle build, mas há várias outras também.

6. Perl

Perl
Perl

Perl é uma linguagem de roteiro de propósito geral que existe há mais de trinta anos (desde 1987). Originalmente, ele foi criado como uma linguagem de script UNIX para o processamento de relatórios. É também daí que vem seu nome, como a sigla Perl que significa “Practical Extraction and Reporting Language”.

A linguagem Perl tornou-se popular nos anos 90, quando os programadores começaram a usá-la amplamente para o script CGI (Common Gateway Interface), que é uma especificação de interface mais antiga para servidores web (atualmente, ela é usada principalmente por sites legados).

Apesar de ser um jogador relativamente precoce, Perl ainda é o 11º no índice TIOBE e o 21º idioma mais popular no GitHub (a partir de outubro de 2020).

Exemplo de código

A sintaxe do Perl é similar à da linguagem C. O exemplo de código Perl abaixo define primeiro o square() sub-rotina que calcula e retorna o quadrado de um número, depois passa o valor 8 como argumento, executa a sub-rotina, e salva o resultado na variável $sq:

sub square {
   my $num = shift;
   my $result = $num * $num;
   return $result;
}

$sq = square(8);

Fonte: Perl docs: Perl Intro

Casos de uso e Ambientes

Embora hoje em dia não seja a escolha mais freqüente dos desenvolvedores web, o Perl pode ser usado com sucesso no desenvolvimento de backend. Além do ambiente de execução CGI, ele também executa nos servidores web Apache e Nginx – a pilha LAMPP é na verdade LAMPP, que significa Linux, Apache, MySQL, PHP e Perl.

Também existem algumas estruturas de desenvolvimento web Perl, sendo Catalyst, Mojolicious, e Dancer as mais populares.

O Perl é utilizado por vários sites e aplicações notáveis como Amazon, IMDB, Booking.com e o BBC iPlayer. É utilizado também em outras áreas, como programação de rede e administração de sistemas. Você também pode conferir a Comprehensive Perl Archive Network (CPAN), onde mais de 25.000 projetos Perl open-source estão disponíveis para download.

7. Lua

Lua
Lua

Lua é uma linguagem de escrita rápida e leve. A palavra ‘lua’ significa ‘lua’ em português, pois a língua é desenvolvida e mantida pela Pontifícia Universidade Católica do Rio de Janeiro no Brasil. Lua apóia os paradigmas procedimentais, orientados a objetos e de programação funcional.

Como o intérprete da Lua é escrito em C, ele pode ser facilmente incorporado em aplicações usando sua API C. Dito isto, você pode usar Lua para estender aplicações existentes escritas em linguagens baseadas em C, como C++, C#, Java, Perl, Ruby, e outras.

Exemplo de código

Lua tem uma sintaxe concisa e fácil de ler, semelhante a Python e Ruby. O exemplo de código Lua a seguir mostra como usar a declaração if-then-else. Primeiro, ele avalia a variável op, depois realiza operações aritméticas básicas dependendo do seu valor:

if op == "+" then
   r = a + b
elseif op == "-" then
   r = a - b
elseif op == "*" then
   r = a * b
elseif op == "/" then
   r = a / b
else
   error("invalid operation")
end

Fonte: Programming in Lua reference guide: Statements

Casos de uso e Ambientes

A implementação padrão do Lua não interpreta o código fonte diretamente, mas primeiro o compila em código byte que depois executa na máquina virtual Lua. Como tudo isso acontece em tempo de execução, não há nenhuma etapa de compilação manual que você precise executar (mesmo que você possa optar pela compilação do Lua antes do tempo de execução para melhorar a performance).

Existem também outras implementações Lua, como LuaJIT, LuaVela, e muitas outras.

Lua é freqüentemente usada para desenvolver jogos de vídeo, como Angry Birds, World of Warcraft, e Grim Fandango. Como é fácil de incorporar, é também uma escolha freqüente para dispositivos incorporados, tais como set-top boxes, painéis de instrumentos de carros (por exemplo, Volvo), câmeras IP (por exemplo, Cisco) e outros.

Ele também pode ser usado no desenvolvimento web, pois tanto os servidores Apache quanto os Nginx possuem um módulo Lua (aqui está o mod_lua do Apache, e aqui está o ngx_http_lua_module do Nginx). A Wikipedia escolheu Lua como sua linguagem de scripting modelo, e a UI do Adobe Photoshop Lightroom também é escrita em Lua.

8. Bash

Bash

Bash é o nome de um intérprete de linha de comando (shell) para o sistema operacional GNU e a linguagem de scripting pertencente. Linux’ é, de fato, o sistema operacional GNU usando o kernel Linux (um kernel é a parte central do SO, é o primeiro programa que o sistema operacional carrega).

É uma substituição do shell Bourne original do UNIX (sh) – o acrônimo Bash significa “Bourne Again SHell” (um trocadilho com “born again shell”).

Além de ser o superconjunto da sintaxe da concha Bourne, Bash também inclui recursos de outras linguagens de script como KornShell (ksh) e C shell (csh) – por exemplo, edição de linha de comando e histórico de comandos. Você pode usar o Bash em modo interativo (executando um comando de cada vez e aguardando a resposta da máquina) e em modo de script (executando um conjunto de comandos – um script Bash – de uma só vez).

Exemplo de código

Como a maioria das linguagens de script da CLI, Bash tem uma sintaxe simples e descritiva. O seguinte exemplo de código Bash seleciona um arquivo da pasta atual e emite uma mensagem contendo o nome e o índice do arquivo:

select fname in *;
do
   echo you picked $fname \($REPLY\)
   break;
done

Fonte: Bash Reference Manual: Conditional Constructs

Casos de uso e Ambientes

Você pode usar o Bash para fazer mudanças e executar diferentes ações relacionadas ao seu sistema operacional, tais como executar comandos, executar tarefas que a maioria das pessoas faria usando uma interface gráfica de usuário (por exemplo, criar, mover ou excluir pastas e arquivos), personalizare automatizar tarefas administrativas, conectar-sea um servidor remoto e muitas outras.

Bash é o shell padrão para muitos sistemas operacionais baseados em Unix, incluindo a maioria das distros Linux e todos os lançamentos MacOS até MacOS Catalina que substituiu Bash por Z shell (Zsh) em 2019. Você também pode executar scripts Bash no Windows 10, usando a camada de compatibilidade do subsistema Windows para Linux (WSL) desenvolvida pela Microsoft.

9. PowerShell

PowerShell

Originalmente, PowerShell era um shell de linha de comando e linguagem de script somente para o sistema operacional Windows. Desde então, a Microsoft abriu o código fonte e o transferiu do .NET Framework, que pode criar somente aplicações Windows, para .NET Core, que pode criar aplicações para Windows, Linux e macOS. Isto significa que o PowerShell agora é multiplataforma.

Também foi renomeado de Windows PowerShell para PowerShell Core, correspondendo à estrutura subjacente. Ao contrário da maioria dos shells de linha de comando, PowerShell aceita e devolve objetos .NET em vez de texto simples, o que dá lugar a novas oportunidades na automação de tarefas.

Exemplo de código

PowerShell tem uma sintaxe compacta que torna o trabalho na linha de comando mais rápido. O exemplo de código PowerShell abaixo cria um backup do arquivo boot.ini e o salva no arquivo boot.bak:

Copy-Item -Path C:\boot.ini -Destination C:\boot.bak

Fonte: PowerShell Documentation: Working with Files and Folders

Casos de uso e Ambientes

Você pode usar o PowerShell no Windows, Linux, sistemas operacionais MacOS e alguns dispositivos ARM (por exemplo, wearables, players multimídia, tablets e outros dispositivos eletrônicos de consumo).

Você pode usar o PowerShell para administração do sistema, automação de tarefas e gerenciamento de configuração. Para encontrar módulos e scripts PowerShell, você pode conferir a Galeria PowerShell e a coleção oficial de exemplos de scripts da Microsoft também.

10. R

R

R é um ambiente de software e linguagem de script que você pode usar para computação estatística, análise de dados e exibição gráfica. É um projeto GNU livre e de código aberto e uma implementação da linguagem de computação estatística S (não mais em desenvolvimento ativo).

R permite o uso de muitas técnicas estatísticas diferentes, tais como testes estatísticos clássicos, agrupamento, análise de séries temporais, modelagem linear e não linear, e outras.

Exemplo de código

A sintaxe do R é diferente da maioria das linguagens de script e tem alguns elementos incomuns, também – por exemplo, o operador principal da tarefa é <- em vez do sinal = igual e tem loops sem loopless – veja mais sobre as peculiaridades da sintaxe do R neste guia para iniciantes do R por Sharon Machlis.

O seguinte exemplo de código R define um atributo de names para o vetor da fruit (estrutura básica de dados em R que contém elementos do mesmo tipo) que usa nomes alfanuméricos (orange, banana, apple, peach) para ajudar a identificar seus componentes. Posteriormente, o subvetor do lunch (ou outro) pode acessar cada componente usando seu nome falso:

> fruit <- c(5, 10, 1, 20) > names(fruit) <- c("orange", "banana", "apple", "peach") > lunch <- fruit[c("apple","orange")]

Fonte: An Introduction to R: Index vectors; selecting and modifying subsets of a data set

Casos de uso e Ambientes

O ambiente do software R é multiplataforma; você pode executá-lo em sistemas operacionais Windows, Linux e MacOS. A implementação padrão do R também está disponível em algumas outras linguagens de scripting, como Python e Perl. Isto significa que você pode acessar toda a funcionalidade estatística do R usando estas linguagens de scripting.

Além do ambiente padrão R, você pode usar a linguagem R scripting também em outros ambientes, como pqR (significa “uma versão bastante rápida de R”) e Renjin (uma implementação R em cima da Máquina Virtual Java).

11. VBA

VBA

VBA significa Visual Basic for Applications e é uma implementação da linguagem de programação Visual Basic 6 (não em desenvolvimento ativo desde 2008). Foi criada para aplicações Microsoft Office para permitir aos desenvolvedores automatizar tarefas repetitivas, adicionar novas funcionalidades e interagir com os usuários finais de documentos.

Similar ao Visual Basic, a VBA segue o paradigma de programação orientada por eventos que coloca eventos como as ações do usuário no centro que impulsionam o fluxo do programa.

Como os aplicativos Microsoft Office têm uma interface gráfica de usuário, você pode anexar scripts VBA a botões de menu, atalhos de teclado, macros (padrões programáveis) e eventos OLE (Object Linking and Embedding que permite controlar um aplicativo de outro; é uma tecnologia proprietária da Microsoft).

Exemplo de código

Como o VBA se baseia no Visual Basic (que é uma ampliação do BASIC), ele usa uma sintaxe semelhante às linguagens da família BASIC (Código de Instrução Simbólica para Iniciantes) – o que significa que ele é muito amigável para iniciantes.

O exemplo de código VBA abaixo usa o método GetCertificateDetail() do objeto SignatureInfo para obter a data de expiração de um certificado digital:

Sub GetCertDetails()
Dim objSignatureInfo As SignatureInfo
Dim varDetail As Variant

strDetail = objSignatureInfo.GetCertificateDetail(certdetExpirationDate)

End Sub

Fonte: Office VBA Reference: SignatureInfo object

Casos de uso e Ambientes

A linguagem de script VBA está embutida na maioria dos aplicativos Microsoft Office, respectivamente Access, Excel, Office for Mac, Outlook, PowerPoint, Project, Publisher, Visio e Word – cada um com um guia de referência separado no site de documentação da Microsoft enquanto os conceitos gerais de VBA são detalhados na referência da biblioteca.

Além das aplicações Microsoft Office, existem outras aplicações que também suportam VBA, tais como AutoCAD e CorelDRAW.

12. Emacs Lisp

Emacs Lisp

Emacs Lisp é uma linguagem de script específica do domínio projetada para o editor de texto GNU Emacs. É um dialeto da família de linguagens de programação Lisp (o nome vem de LISt Processor).

Como o Emacs Lisp foi projetado para ser usado dentro de um editor de código, ele vem com um conjunto de recursos específicos para aquele ambiente, tais como digitalização e análise de texto, buffer (objetos com texto editável) e gerenciamento de exibição, e outros.

A linguagem de script Emacs Lisp está intimamente integrada com a própria interface do editor, portanto cada comando é também uma função Lisp que você pode chamar a partir do seu script, e os parâmetros de personalização são variáveis Lisp também.

Exemplo de código

A sintaxe do Emacs Lisp é baseada em uma notação de prefixo totalmente parênteses que pode ser um pouco difícil de ler no início se você não trabalhou com nenhuma linguagem Lisp antes.

O seguinte exemplo de código Emacs Lisp define duas variáveis (símbolos) e atribui uma lista de valores para cada uma – uma lista de árvores (pine, fir, oak, maple) to the symbol trees para as árvores símbolo e uma lista de herbívoros (gazelle, antelope, zebra) para o símbolo herbívoros:

(setq trees '(pine fir oak maple)
   herbivores '(gazelle antelope zebra))

Fonte: An Introduction to Programming in Emacs Lisp: Setting the Value of a Variable

Casos de uso e Ambientes

O editor de texto Emacs é uma aplicação multiplataforma que você pode instalar em máquinas Windows, Linux e MacOS.

Usando a linguagem de script Emacs Lisp, você pode estender e personalizar o editor de código, repetir e automatizar processos, criar gráficos, restringir o foco a áreas específicas (para security), pesquisar expressões regulares, armazenar texto, definir modos e keymaps, fazer perguntas dos usuários e realizar muitas outras ações.

Há também algumas estruturas de configuração para o Emacs Lisp – Doom Emacs e Spacemacs sendo as mais conhecidas.

13. GML

GML

O acrônimo GML significa GameMaker Language. É um bom exemplo de uma linguagem de scripting específica de um domínio utilizado no desenvolvimento de jogos. GML é uma linguagem de script proprietária pertencente ao GameMaker Studio 2, um mecanismo de jogos de plataforma cruzada e plataforma de desenvolvimento pertencente e mantido pela YoYo Games.

Embora o GML seja usado principalmente para controlar objetos de jogo, não é uma linguagem orientada a objetos, mas uma linguagem processual. Ele permite chamar scripts personalizados de qualquer objeto de jogo.

Além da linguagem de script GML, o GameMaker Studio 2 também possui uma ferramenta de script visual chamada Drag and Drop (DnD). Devido à natureza flexível do GameMaker Studio 2, você pode misturar DnD com seus scripts GML, também.

Exemplo de código

A sintaxe do GML é similar à do JavaScript e de outras linguagens semelhantes ao C.

O seguinte exemplo de código GML faz um objeto de jogo se mover horizontalmente em direção ao ponteiro do mouse na tela a uma velocidade de 5 pixels por passo. Uma vez que ele atinge a posição atual do ponteiro, o script cria uma camada de efeito de explosão, executa-a (há um efeito de explosão na tela), depois destrói a instância (o efeito de explosão é removido):

if mp_linear_step(mouse_x, mouse_y, 5, 0) {
   instance_create_layer(x, y, "Effects", obj_Explosion);
   instance_destroy();
}

Fonte: GameMaker Studio 2 Docs – Scripting – GML Reference – Movement and Collisions – Motion Planning

Casos de uso e Ambientes

O GML é interpretado pelo GameMaker Studio 2 que você precisa adquirir se quiser desenvolver jogos nesta linguagem de scripting.

O preço depende da plataforma para a qual você deseja criar jogos – sendo os jogos Mac e Windows os mais baratos; jogos cross-platform (Windows, MacOS, Ubuntu) desktop, jogos HTML5 web, jogos UWP (Plataforma Universal Windows), e jogos cross-platform (Android, Fire, iOS) para celular, sendo os mais caros os jogos PS4, Xbox One e Nintendo Switch.

Alguns exemplos de videogames criados com GML incluem Blackhole, 10 Second Ninja X, Death’s Gambit, Deltarune, e vários outros.

Resumo

Não há dúvida de que as linguagens de script são fascinantes. Elas têm muitas variações, sintaxes e implementações diferentes, e podem ser usadas para muitas coisas.

Da construção de sites dinâmicos, à automatização da administração do sistema, à criação de videogames, e assim por diante.

As três coisas mais importantes a serem lembradas sobre as linguagens de script são:

Eles não podem correr por conta própria, mas sempre precisam de um ambiente (implementação, tempo de execução) com um intérprete para aquela linguagem de scripting.

Às vezes é possível usar linguagens de script de uso geral para acessar ambientes e plataformas criadas principalmente para outras linguagens de programação ou de script. Pense em JRuby (permite executar Ruby na máquina virtual Java), Renjin (implementação R também na JVM), Rpy2 (interface R que você pode usar a partir de Python), como bons exemplos.

Finalmente, antes de aprender uma nova linguagem de script, é sempre uma boa idéia verificar sua popularidade atual usando o índice TIOBE ou GitHut.

Dependendo disso, você também encontrará mais ou menos exemplos de scripts, repositórios GitHub, bibliotecas de módulos, guias de referência, manuais detalhados e vitrines de aplicativos que o ajudarão a começar com a linguagem… e obter projetos e empregos melhor remunerados!

Anna Monus

Anna Monus is a professional technical writer and editor, covering web development, programming, cloud computing, tech culture, accessibility, and other cutting-edge topics. Her work has been published by the greatest technical publications and blogs around the world, such as IBM Cloud, Envato, Raygun, Hongkiat, LogRocket & others. See more on her website or Twitter @azaleamollis.