- O documento discute a motivação e características da linguagem de programação Hack, desenvolvida pelo Facebook como uma extensão estática e tipada de PHP. Hack oferece checagem de tipos instantânea, interoperabilidade com PHP, e novas funcionalidades como generics, coleções e lambdas.
O documento descreve o .NET Framework, incluindo: (1) O CLR executa código intermediário MSIL em várias linguagens; (2) O CTS fornece tipos comuns entre linguagens; (3) A metadata contém informações sobre componentes .NET em vez de registro.
Este documento fornece um resumo de um curso introdutório sobre a linguagem de programação Pascal utilizando o compilador Turbo Pascal. O documento explica a estrutura básica de um programa Pascal e apresenta um exemplo de programa, além de definir elementos importantes como palavras reservadas, identificadores e regras para criação de nomes.
O documento fornece um resumo sobre a linguagem de programação PHP, descrevendo sua origem em 1994 como ferramenta para páginas pessoais, seu status atual como uma das linguagens mais populares para desenvolvimento web e alguns de seus recursos e características principais como tipos de dados, comandos condicionais e iterativos.
O documento discute vários tópicos relacionados à programação, incluindo tipos de programação, linguagens para dispositivos móveis, HTML, PHP, JavaScript e exemplos de scripts.
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Existem três classes de linguagens de programação de acordo com o nível de abstração: linguagens de máquina, de baixo nível e de alto nível. Linguagens de máquina usam códigos binários e dependem da arquitetura da CPU, enquanto linguagens de alto nível são mais independentes e se assemelham à linguagem humana, facilitando a programação.
O documento descreve a história e características da linguagem de programação Python, desde sua criação por Guido van Rossum até versões atuais. Python tem tipagem dinâmica, sintaxe simples e é interpretada, possibilitando programação em diversas plataformas. Existem várias ferramentas para desenvolvimento com Python.
O documento discute fundamentos de computação e software, definindo software como lógico em oposição a hardware que é físico. Explora os tipos de software como programas, documentação e sistemas operacionais, e como as linguagens de programação permitem escrever software para computadores.
O documento descreve o .NET Framework, incluindo: (1) O CLR executa código intermediário MSIL em várias linguagens; (2) O CTS fornece tipos comuns entre linguagens; (3) A metadata contém informações sobre componentes .NET em vez de registro.
Este documento fornece um resumo de um curso introdutório sobre a linguagem de programação Pascal utilizando o compilador Turbo Pascal. O documento explica a estrutura básica de um programa Pascal e apresenta um exemplo de programa, além de definir elementos importantes como palavras reservadas, identificadores e regras para criação de nomes.
O documento fornece um resumo sobre a linguagem de programação PHP, descrevendo sua origem em 1994 como ferramenta para páginas pessoais, seu status atual como uma das linguagens mais populares para desenvolvimento web e alguns de seus recursos e características principais como tipos de dados, comandos condicionais e iterativos.
O documento discute vários tópicos relacionados à programação, incluindo tipos de programação, linguagens para dispositivos móveis, HTML, PHP, JavaScript e exemplos de scripts.
Qual o estado dos frameworks atualmente no PHP, assim como a situação atual da linguagem. Como você pode escolher seu framework e um comparativo entre os 4 principais frameworks do mercado.
Existem três classes de linguagens de programação de acordo com o nível de abstração: linguagens de máquina, de baixo nível e de alto nível. Linguagens de máquina usam códigos binários e dependem da arquitetura da CPU, enquanto linguagens de alto nível são mais independentes e se assemelham à linguagem humana, facilitando a programação.
O documento descreve a história e características da linguagem de programação Python, desde sua criação por Guido van Rossum até versões atuais. Python tem tipagem dinâmica, sintaxe simples e é interpretada, possibilitando programação em diversas plataformas. Existem várias ferramentas para desenvolvimento com Python.
O documento discute fundamentos de computação e software, definindo software como lógico em oposição a hardware que é físico. Explora os tipos de software como programas, documentação e sistemas operacionais, e como as linguagens de programação permitem escrever software para computadores.
Este documento fornece um resumo de 3 frases ou menos sobre o documento:
O documento discute a história e uso da linguagem de programação Python, desde sua criação até versões atuais. A linguagem é de código aberto e licenciada pela Python Software Foundation. O documento também fornece instruções sobre como instalar e usar o interpretador Python em diferentes sistemas operacionais, incluindo Windows.
O documento discute os conceitos de compiladores, interpretadores e linkagem no contexto da programação. Explica que compiladores transformam programas de alto nível em código de máquina, enquanto interpretadores fazem isso linha a linha. A linkagem une código objeto e bibliotecas para criar programas executáveis.
O documento fornece dicas para se tornar um melhor programador Python, começando com recursos básicos em português e inglês, e avançando para IDEs, editores, documentação e comunidades online. Aprender constantemente, ler códigos de outros programadores, e se envolver com a comunidade de software livre são apontados como formas de melhorar.
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
A aula apresenta conceitos iniciais sobre linguagens de programação, incluindo uma breve história desde os primórdios até os dias atuais, níveis de linguagens, tipos como de script, interpretadas e compiladas, e tipagem.
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
O documento descreve os principais paradigmas de programação - lógico, funcional, imperativo e orientado a objetos - e seus usos típicos. Também discute os componentes fundamentais de ambientes de programação e como estes evoluíram para se tornarem ambientes integrados de desenvolvimento de software.
Explorando O Potencial Das Linguagens De Programação Open SourceRafael Jaques
Palestra de Rafael Jaques no Software Freedom Day 2009 em Novo Hamburgo - RS acerca de como explorar o potencial das linguagens de programação de código aberto
O documento apresenta uma palestra sobre Python. Ele introduz o palestrante e discute o que é Python, quem o usa e suas principais características como tipos de dados poderosos e software livre. Em seguida, exemplifica vários recursos básicos de Python como strings, números e sets e coleções como Counter e Namedtuple. Por fim, lista outros tópicos interessantes para futuras discussões.
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
Este documento apresenta uma aula sobre linguagens de programação. Aborda os seguintes tópicos: 1) O que será aprendido na aula, incluindo linguagens de programação, histórico, conhecimentos necessários e oportunidades de carreira; 2) As propriedades desejáveis de uma linguagem de programação; 3) Os diferentes níveis de linguagens de programação; 4) Os tipos de programação como estruturada, orientada a objetos e lógica. A aula também discute interpretação versus compilação, o histó
O documento discute conceitos de linguagens de programação, incluindo interpretação pura, interpretação híbrida e ambientes de programação. Ele explica que a interpretação pura executa programas diretamente sem compilação, enquanto sistemas híbridos geram código intermediário para melhor desempenho. Também descreve ferramentas comuns em ambientes de programação como editores de texto e depuradores.
Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar algoritmos com precisão.
O documento descreve os principais conceitos de linguagens de programação, incluindo linguagens de alto e baixo nível, ambientes de programação como Free Pascal e PascalZim, e os passos básicos para escrever, compilar e executar programas nesses ambientes.
O documento discute a linguagem PHP para desenvolvimento web, incluindo sua história, como funciona com servidores, características como tags, operadores, estruturas de controle, tipos, funções, variáveis, orientação a objetos, suporte a bancos de dados e porque é uma linguagem útil para desenvolvimento web.
O documento descreve a história das linguagens de programação, desde as primeiras linguagens de máquina até linguagens modernas de alto nível. Aborda os conceitos de linguagens interpretadas, compiladas e scripts, além de diferentes paradigmas de programação como imperativo, orientado a objetos e funcional. Também discute as gerações de linguagens, desde linguagens de máquina da primeira geração até linguagens de alto nível da terceira geração.
Comparando python com outras linguagens de programaçãoValore I/O
Comparando python com outras linguagens de programação
Traduzido da fonte:
https://www.python.org/doc/essays/comparisons/
“Este ensaio foi escrito em algum momento de 1997. Ele mostra sua idade. É mantida aqui meramente como um artefato histórico”.
Autor: Guido van Rossum
O documento discute paradigmas de programação e apresenta o professor Sérgio Souza Costa. Apresenta conceitos de linguística aplicados ao estudo de linguagens de programação e discute sintaxe, semântica e pragmática. Também aborda os principais paradigmas de programação: procedural, orientado a objetos, funcional e lógico.
-Algoritmo
- Linguagens de Programação
-Variáveis e Tipos de Dados
- Operandos
- Comando de Atribuição.
- Estruturas de Controle Condicional
- Estrutura de Repetição
O documento introduz a programação em C, descrevendo sua linguagem como de alto nível e baixo nível, permitindo controle total ao programador. Explica conceitos como estruturação de programas em módulos independentes e a diferença entre erros sintáticos e lógicos. Também resume detalhes sobre compilação, variáveis, case sensitivity e outros tópicos importantes para iniciantes em C.
Linguagens de programação permitem especificar dados, ações e armazenamento de forma estruturada para computadores. Existem três formas de execução: interpretada (tempo real), compilada (mais rápida) e byte-code (interpreta arquivo intermediário para maior velocidade). Exemplos incluem C, Java, Python e PHP.
O documento descreve a história das linguagens de programação, desde as primeiras linguagens de máquina até linguagens modernas de alto nível. Ele discute os tipos de linguagens (interpretadas, compiladas e scripts), paradigmas de programação (imperativo, orientado a objetos, funcional e lógico) e gerações de linguagens (de máquina, assembly e alto nível).
1. A aula introduz o PHP, abordando sua história, características e estrutura básica.
2. Variáveis, constantes, tipos de dados e operadores são explicados. Exemplos ilustram o uso de variáveis, operações matemáticas e lógicas.
3. O documento fornece os conceitos fundamentais da linguagem PHP para iniciantes.
O documento apresenta uma aula introdutória sobre PHP. Aborda os objetivos da aula, a introdução à linguagem PHP, sua estrutura e sintaxe, variáveis, constantes e operadores.
Este documento fornece um resumo de 3 frases ou menos sobre o documento:
O documento discute a história e uso da linguagem de programação Python, desde sua criação até versões atuais. A linguagem é de código aberto e licenciada pela Python Software Foundation. O documento também fornece instruções sobre como instalar e usar o interpretador Python em diferentes sistemas operacionais, incluindo Windows.
O documento discute os conceitos de compiladores, interpretadores e linkagem no contexto da programação. Explica que compiladores transformam programas de alto nível em código de máquina, enquanto interpretadores fazem isso linha a linha. A linkagem une código objeto e bibliotecas para criar programas executáveis.
O documento fornece dicas para se tornar um melhor programador Python, começando com recursos básicos em português e inglês, e avançando para IDEs, editores, documentação e comunidades online. Aprender constantemente, ler códigos de outros programadores, e se envolver com a comunidade de software livre são apontados como formas de melhorar.
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
A aula apresenta conceitos iniciais sobre linguagens de programação, incluindo uma breve história desde os primórdios até os dias atuais, níveis de linguagens, tipos como de script, interpretadas e compiladas, e tipagem.
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
O documento descreve os principais paradigmas de programação - lógico, funcional, imperativo e orientado a objetos - e seus usos típicos. Também discute os componentes fundamentais de ambientes de programação e como estes evoluíram para se tornarem ambientes integrados de desenvolvimento de software.
Explorando O Potencial Das Linguagens De Programação Open SourceRafael Jaques
Palestra de Rafael Jaques no Software Freedom Day 2009 em Novo Hamburgo - RS acerca de como explorar o potencial das linguagens de programação de código aberto
O documento apresenta uma palestra sobre Python. Ele introduz o palestrante e discute o que é Python, quem o usa e suas principais características como tipos de dados poderosos e software livre. Em seguida, exemplifica vários recursos básicos de Python como strings, números e sets e coleções como Counter e Namedtuple. Por fim, lista outros tópicos interessantes para futuras discussões.
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
Este documento apresenta uma aula sobre linguagens de programação. Aborda os seguintes tópicos: 1) O que será aprendido na aula, incluindo linguagens de programação, histórico, conhecimentos necessários e oportunidades de carreira; 2) As propriedades desejáveis de uma linguagem de programação; 3) Os diferentes níveis de linguagens de programação; 4) Os tipos de programação como estruturada, orientada a objetos e lógica. A aula também discute interpretação versus compilação, o histó
O documento discute conceitos de linguagens de programação, incluindo interpretação pura, interpretação híbrida e ambientes de programação. Ele explica que a interpretação pura executa programas diretamente sem compilação, enquanto sistemas híbridos geram código intermediário para melhor desempenho. Também descreve ferramentas comuns em ambientes de programação como editores de texto e depuradores.
Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar algoritmos com precisão.
O documento descreve os principais conceitos de linguagens de programação, incluindo linguagens de alto e baixo nível, ambientes de programação como Free Pascal e PascalZim, e os passos básicos para escrever, compilar e executar programas nesses ambientes.
O documento discute a linguagem PHP para desenvolvimento web, incluindo sua história, como funciona com servidores, características como tags, operadores, estruturas de controle, tipos, funções, variáveis, orientação a objetos, suporte a bancos de dados e porque é uma linguagem útil para desenvolvimento web.
O documento descreve a história das linguagens de programação, desde as primeiras linguagens de máquina até linguagens modernas de alto nível. Aborda os conceitos de linguagens interpretadas, compiladas e scripts, além de diferentes paradigmas de programação como imperativo, orientado a objetos e funcional. Também discute as gerações de linguagens, desde linguagens de máquina da primeira geração até linguagens de alto nível da terceira geração.
Comparando python com outras linguagens de programaçãoValore I/O
Comparando python com outras linguagens de programação
Traduzido da fonte:
https://www.python.org/doc/essays/comparisons/
“Este ensaio foi escrito em algum momento de 1997. Ele mostra sua idade. É mantida aqui meramente como um artefato histórico”.
Autor: Guido van Rossum
O documento discute paradigmas de programação e apresenta o professor Sérgio Souza Costa. Apresenta conceitos de linguística aplicados ao estudo de linguagens de programação e discute sintaxe, semântica e pragmática. Também aborda os principais paradigmas de programação: procedural, orientado a objetos, funcional e lógico.
-Algoritmo
- Linguagens de Programação
-Variáveis e Tipos de Dados
- Operandos
- Comando de Atribuição.
- Estruturas de Controle Condicional
- Estrutura de Repetição
O documento introduz a programação em C, descrevendo sua linguagem como de alto nível e baixo nível, permitindo controle total ao programador. Explica conceitos como estruturação de programas em módulos independentes e a diferença entre erros sintáticos e lógicos. Também resume detalhes sobre compilação, variáveis, case sensitivity e outros tópicos importantes para iniciantes em C.
Linguagens de programação permitem especificar dados, ações e armazenamento de forma estruturada para computadores. Existem três formas de execução: interpretada (tempo real), compilada (mais rápida) e byte-code (interpreta arquivo intermediário para maior velocidade). Exemplos incluem C, Java, Python e PHP.
O documento descreve a história das linguagens de programação, desde as primeiras linguagens de máquina até linguagens modernas de alto nível. Ele discute os tipos de linguagens (interpretadas, compiladas e scripts), paradigmas de programação (imperativo, orientado a objetos, funcional e lógico) e gerações de linguagens (de máquina, assembly e alto nível).
1. A aula introduz o PHP, abordando sua história, características e estrutura básica.
2. Variáveis, constantes, tipos de dados e operadores são explicados. Exemplos ilustram o uso de variáveis, operações matemáticas e lógicas.
3. O documento fornece os conceitos fundamentais da linguagem PHP para iniciantes.
O documento apresenta uma aula introdutória sobre PHP. Aborda os objetivos da aula, a introdução à linguagem PHP, sua estrutura e sintaxe, variáveis, constantes e operadores.
Ferramentas Livres Para Desenvolvimento com PHPAdler Medrado
Este documento apresenta diversas ferramentas livres úteis para desenvolvimento com PHP, incluindo IDEs como PDT e editores como gPHPEdit, frameworks como Symfony e Zend Framework, ferramentas de depuração como XDebug, sistemas de controle de versão como CVS e SVN, e sistemas de rastreamento de bugs como Trac. O documento também fornece demonstrações e estatísticas sobre essas ferramentas.
Este documento fornece informações sobre uma licença Creative Commons que permite o uso não comercial e compartilhamento da obra desde que mantenha a mesma licença. Também apresenta detalhes sobre o livro "Python para desenvolvedores" de Luiz Eduardo Borges.
1. O PHP é uma linguagem de programação usada principalmente para desenvolvimento de aplicações web dinâmicas e interativas.
2. Surgiu em 1994 e tornou-se popular por ser de código aberto e multiplataforma.
3. O PHP permite acesso a bancos de dados e possui recursos para desenvolvimento de aplicações web robustas e escaláveis.
Este documento compara o uso de linguagens de programação (PHP e Java) e geradores de código (GeneXus e Scriptcase) no desenvolvimento de sistemas, analisando critérios como custo, facilidade de aprendizado, manutenção de código, integração com banco de dados e suporte. Conclui que cada empresa deve escolher a tecnologia com a qual seus profissionais têm maior conhecimento e domínio, e que a melhor opção depende de resolver os problemas específicos de cada projeto.
O documento apresenta uma pesquisa sobre a linguagem PHP realizada por um aluno. A pesquisa descreve a origem e evolução da linguagem PHP, desde sua criação em 1994 até a versão atual PHP 5, e apresenta exemplos básicos de código PHP, incluindo variáveis, formulários, acesso a banco de dados e interação com o navegador.
Este documento fornece uma introdução sobre como desenvolver aplicações web com PHP e MySQL. Ele discute a instalação do Apache, PHP e MySQL no Windows e Linux, sintaxe básica do PHP como tipos, variáveis e estruturas de controle, e como PHP pode interagir com MySQL para construir aplicações web dinâmicas.
O PHP foi criado em 1994 por Rasmus Lerdorf como um conjunto de scripts CGI para rastrear visitas a seu currículo online. Desde então, evoluiu para uma poderosa linguagem de programação usada para desenvolver aplicações web dinâmicas e é uma das linguagens mais populares para esse fim.
O documento descreve o que é a linguagem PHP, sua origem e vantagens. Explica que o PHP é um pré-processador de hipertexto usado para desenvolvimento web server-side e é gratuito e de código aberto. Também mostra como usar tags PHP e como iniciar um projeto PHP usando o XAMPP.
O documento discute as vantagens da linguagem PHP para desenvolvimento web, incluindo sua popularidade, suporte a orientação a objetos, e como a empresa Zend é fundamental para o desenvolvimento do PHP. Recomenda-se iniciar com o manual online do PHP e praticar criando scripts para aprender a linguagem.
O documento apresenta Fernando Chucre, um desenvolvedor que trabalha com linguagens como PHP, Java e C#. Ele é coordenador do grupo de usuários de PHP no Ceará e fala sobre as características e aplicações da linguagem PHP, incluindo frameworks e casos de sucesso, além de empresas cearenses que usam PHP.
O documento fornece um resumo histórico da linguagem PHP, desde sua criação em 1995 até a versão mais recente. Explica as principais estruturas de controle e funcionalidades da linguagem, e faz uma comparação com ASP, JSP e ColdFusion, destacando vantagens e desvantagens de cada uma.
O documento descreve as principais características da linguagem PHP. PHP é uma linguagem de script usada para desenvolvimento de sites dinâmicos e permite a manipulação de bancos de dados. Algumas características importantes do PHP incluem ser gratuita, multiplataforma, compatível com vários bancos de dados e protocolos, e permitir funções como coletar dados de formulários e gerar páginas dinamicamente.
Este documento apresenta PHP como uma linguagem de programação adequada para aplicações web de grande porte. Apresenta as vantagens do PHP, como simplicidade, escalabilidade e custo baixo, e como o PHP pode lidar com requisitos como integração, testes, desempenho e suporte através de recursos como frameworks, caches, clusters e comunidades ativas. O documento também discute outras tecnologias para aplicações web e como o PHP se compara a elas.
Como contribuir-com-open-source-php conference-2016Marcos Paulo
O documento discute várias maneiras de contribuir com o PHP, incluindo documentação PHPDoc, testes de framework, relatórios de bugs, código-fonte interno PHP e PHPUnit. Ele também explica brevemente como o código-fonte PHP é estruturado.
Desenvolvimento web: PHP orientado a objetosLucas Vegi
Este documento apresenta um curso de PHP orientado a objetos. O curso tem como objetivo ensinar conceitos básicos de PHP para iniciar projetos de programação orientada a objetos nesta linguagem. O conteúdo programático inclui módulos sobre introdução ao PHP, a linguagem PHP, programação orientada a objetos com PHP e sessões.
O documento fornece uma introdução sobre PHP, incluindo sua história, características e principais funções. Resumidamente: (1) PHP é uma linguagem de script amplamente utilizada para desenvolvimento web; (2) Foi criada em 1994 e se tornou popular por permitir interpretação de comandos em páginas HTML; (3) Oferece características como sessões, uploads de arquivos e conexões com banco de dados.
Automação de Aplicativos: Scripting com PythonFabio Spanhol
O documento discute linguagens de script e o uso de Python para automatizar aplicativos. Python pode ser usado para controlar o aplicativo de edição de imagem GIMP, através de plug-ins registrados na base de dados procedural do GIMP. Os plug-ins em Python podem acessar as ferramentas e funcionalidades do GIMP para automatizar tarefas.
1) O documento descreve a história e funcionalidade da linguagem PHP, desde a sua criação em 1995 até à versão atual.
2) A PHP permite o desenvolvimento de aplicações web dinâmicas utilizando uma arquitetura de três camadas (apresentação, lógica e dados).
3) A sintaxe da PHP é processada no servidor e gera páginas HTML para o cliente.
Semelhante a Facebook's Hack programming language / Linguagem de programação Hack do Facebook (20)
5. Motivação
● Erros que podem ser percebidos
somente em termo de execução
● API complexas
Erros detectados somente em tempo de
execução
API complexa
6. Motivação
● Linguagem nova -> Desenvolvedores mais
produtivos
o Iteração rápida
o Preservar PHP
o Detecção de erro
7. Motivação
● Linguagem dinâmicamente tipadas
o Rápido desenvolvimento
Sacrifício na habilidade de detectar erros
rapidamente
Sacrifício na habilidade de uma
introspeccção rápida no código
9. Motivação
● Linguagem de programação para HHVM
● Interopera perfeitamente com PHP
● Concilia
o o rápido desenvolvimento do PHP
o disciplina provida pela tipagem estática
o Adiciona ferramentas encontradas em outras
linguagens modernas
10. Checagem de tipo
instantânea
Problema
o Durante o desenvolvimento, um programador PHP
pode facilmente alternar entre o código fonte e
seu resultado no navegador.
o Pode-se "iterar" nesse processo quantas vezes
eles quiserem até atingirem o grau de perfeição
almejado do código...
11. Checagem de tipo
instantânea
Problema
o Uma checagem de tipos tradicional
normalmente rompe com a rotina de feedback
devido ao fato de a análise de código ser
demorada.
o Para não atrasar o fluxo de trabalho do PHP, o
Facebook projetou uma abordagem nova que
reconcilia feedback instantâneo com segurança
quanto a tipagem.
12. Checagem de tipo
instantânea
Solução
o A solução arquitetural do Facebook foi projetar um
type checker num servidor local que observa o
sistema de arquivos onde o código a ser
analisado se encontra.
o O servidor mantém toda informação sobre o
código em memória e automaticamente atualiza
suas informações quando ocorrem mudanças.
13. Checagem de tipo
instantânea
Resultado
o O type checker roda em menos que 200
millisegundos e raramente mais que 1 segundo.
o Conseguentemente tornou-se possível a rotina de
checagem sem atraso perceptível.
14. HHVM
O que é HHVM?
o Uma máquina virtual projetada para executar
programas escritos em Hack e PHP.
o Usa a abordagem de compilação just-in-time (JIT)
para obter uma performance maior e, ao mesmo
tempo, prover a flexibilidade oriunda do PHP
15. HHVM
O que é HHVM?
o HHVM roda muito dos código PHPs utilizados no
mundo. Desenvolvedores e hosts estão
adotando o HHVM.
o Ainda existem pequenas incompatibilidades,
porém a solução proposta pelo Facebook roda
bem os top 20 frameworks do Github.
17. HHVM
O que é HHVM
o O time do HHVM, juntamente com a cooperação
de membros da comunidade, tornou um objetivo
claro e de alta prioridade rodar todos os códigos
PHP existentes na comunidade.
18. HHVM
O Compilador JIT
o O HHVM não interpreta diretamente ou compila
código PHP em C++. Hack e PHP são compilados
para um código portável (bytecode)
intermediário.
o Tal código é traduzido para código de máquina
de 64 bits dinamicamente em tempo de
execução por um compilador just-in-time (JIT).
19. HHVM
O Compilador JIT
o Tal abordagem permite inúmeras otimizações
que não seria possível para código binário gerado
estaticamente.
o Consequentemente torna possível maior
performance dos programas Hack e PHP.
20. Migração de código
o Alguns benefícios advindos de segurança de
tipagem e de refatoração do Hack são mais
perceptíveis quando todo o código está na
linguagem Hack (e menos código em PHP).
o Como a transição para uma nova linguagem
requer tempo, a linguagem Hack pode interoperar
diretamente com arquivos PHP de uma aplicação
enquanto os novos arquivos são introduzidos aos
poucos.
21. Migração de código
o O transições que envolvem adição de anotações
de tipos e uso de novos recursos de linguagens
podem ser feito conforme necessidade para um
arquivo de código.
o No mesmo arquivo de código podem existir:
Funções com assinaturas contendo tipos
Funções com assinaturas sem tipos.
o Se a função não possui tipos em sua assinatura, a
tipagem é conferida dinamicamente.
22. Migração de código
Automatização
o Historicamente, a aceitação do Hack foi grande o
suficiente para muitos migrarem seus códigos
voluntariamente.
o Criaram assim, uma ferramenta de automatização
para migração de código para auxiliar no
processo.
Liberado como parte do Hack.
23. Web Development
Que linguagem/framework utilizar
o C/C++
performance
o Java
write once, run everywhere
o Ruby On Rails
Simple and easy to write
o Python Django
More with less
o PHP(Yii, Zend, CodeIgnator) ou Hack
24. The Hack Language
Suporte
o Tem suas raízes no PHP, mas alguns funções
obsoletas ou incompatíveis com tipagem estática
foram removidas, (e.g “variáveis variáveis”) e
outras adicionadas
25. The Hack Language
Tipagem estática (principal)
o Foi adicionado informação de tipo a assinatura de funções e
membros de classe, já o algoritmo de checagem (o “type
checker”) infere o resto.
o A checagem de tipo é incremental, de tal forma que um
arquivo pode ser convertido para Hack e o resto pode
continuar sendo dinamicamente tipado.
o Tecnicamente Hack é uma linguagem dinamicamente tipada
que funciona com tipagem estática.
26. The Hack Language
Anotações de tipo
o Permite explicitar no código em PHP tipos nos
parametros, variáveis de membros de classes e
valores de retorno.
27. The Hack Language
Generics
o Permite parametrizar métodos e classes(i.e um
tipo associado quando uma classe ou metodo é
instanciado)
28. The Hack Language
Tipos Anuláveis
o Podemos usar o operador ? para introduzir um
modo mais seguro de lidar com nulos sendo muito
util para tipos primitivos (bool, int .. etc) bastando
fazer ?bool e ?int. O operador pode ser usado em
qualquer tipo ou classe.
29. The Hack Language
Coleções
o Melhora a experiência de trabalhar com arrays em
PHP, provendo classes, já parametrizadas
Vector (lista com ordenação e indexada)
Map (um dicionário ordenado)
Set (uma lista de valores unicos)
Pair (uma coleção indexada composta de exatamente 2
elementos)
Collections enhance the experience of working with PHP arrays, by providing first class, built-in parameterized types such as
Vector (an ordered, index-based list), Map (an ordered dictionary), Set (a list of unique values), and Pair (an index-based
collection of exactly two elements).
30. The Hack Language
Lambdas
o Oferecem funcionalidade similar as funções
anonimas do PHP, mas eles capturam
implicitamente variaveis do corpo destas funções
e sao menos verbosas
Notas do Editor
Contexto do Facebook -> Milhares de engenheiros programando ao mesmo tempo -> qualquer contratempo pode ser problemático
Desenvolvedor entende a semântica, mas gasta bastante tempo com nomes de métodos na documentação
Desenvolvedor entende a semântica, mas gasta bastante tempo com nomes de métodos na documentação
Desenvolvedor entende a semântica, mas gasta bastante tempo com nomes de métodos na documentação
Desenvolvedor entende a semântica, mas gasta bastante tempo com nomes de métodos na documentação