3. É sobre o quê?
● Vou ganhar mais dinheiro?
● Vou ficar mais inteligente?
● Vou aprender novas linguagens de programação?
● Vou dominar o mundo?
● Vou ser mais feliz?
16. Java
Muito utilizada no mundo
“Enterprise”
Orientação a Objeto
ORM
Hibernate
Troca de mensagens
@Annotations
17. Coisas que você verá no Java
● JDBC, Dialect
● compra.getProduto().getCategoria().getNomeCategoria()
● use JOIN FETCH
● PreparedStatement
○ SELECT a, b FROM tb WHERE c = 1234 AND d > 1000;
○ SELECT a, b FROM tb WHERE c = $1 AND d > $2;
18. Coisas que você verá no Java
● CREATE TEMP TABLE foo -> WITH foo as ( …. )
● Exemplos
…
@Column(name="DESC", nullable=false, length=512)
public String getDescription() { return description; }
@Column(name="ORDER_COST", updatable=false, precision=12, scale=2)
public BigDecimal getCost() { return cost; }
...
20. C
● Compatibilidade com vários sistemas operacionais
● Suíte de testes do PostgreSQL
● Usando PostgreSQL no raspberryPI
○ http://www.pgconf.com.br/raspberrypi/
22. Do Ruby ao banco evolutivo e ao pgvm
● Mudanças incrementais
● Git
● Testes
● pgvm inspirado no rvm
● pgxn-utils inspirado no rails new
● method_missing
23. Python
Zen do Python
Explícito melhor que implícito
Melhor pedir perdão que
permissão e o conceito de
transação
Dataframes
ORM SQL Alchemy
pip
24. Do Python ao Django, do Django ao SETL
from setl import *
inicializa = [
Initialize(‘inicializa_banco’, force=True),
]
extrai = [
SQL(‘produtos’),
SQL(‘pessoas’),
CSV(‘pedidos_externos’, file=’PED.csv’),
]
finaliza = [
Run(‘limpa_logs’),
]
SETL.run(initializers=inicializa,
extractors=extrai,
finalizers=finaliza);
28. Me levaram a ...
● PGEx
○ entender o protocolo do PostgreSQL
● ExJSON
○ Só me divertir mesmo…
● Funções de agregação no PostgreSQL
29. CREATE AGGREGATE e recursividade??
CREATE AGGREGATE media (float8)
(
sfunc = acumula_float8,
stype = float8[],
finalfunc = media_float8,
initcond = '{0,0,0}'
);
acumula_float8 vai concatenando os valores em um array
media_float8 recebe o array no final, soma os valores e divide
pelo número de elementos
36. Porque surgiram?
Ruby:
originalmente planejada e desenvolvida no Japão em 1995, por Yukihiro "Matz"
Matsumoto, para ser usada como linguagem de script.
Matz queria uma linguagem de script que fosse mais poderosa do que Perl, e
mais orientada a objetos do que Python
suporta programação funcional, orientada a objetos, imperativa e reflexiva.
inspirada principalmente por Python, Perl, Smalltalk, Eiffel, Ada e Lisp
37. Porque surgiram?
Python:
projetada com a filosofia de enfatizar a importância do esforço do programador
sobre o esforço computacional.
prioriza a legibilidade do código sobre a velocidade ou expressividade.
combina uma sintaxe concisa e clara com os recursos de sua biblioteca padrão e
por módulos e frameworks desenvolvidos por terceiros
38. Porque surgiram?
Javascript:
originalmente implementada como parte dos navegadores web para que scripts
pudessem ser executados do lado do cliente e interagissem com o usuário sem a
necessidade deste script passar pelo servidor, controlando o navegador,
realizando comunicação assíncrona e alterando o conteúdo do documento
exibido.
concebida para ser uma linguagem script com orientação a objetos baseada em
protótipos, tipagem fraca e dinâmica e funções de primeira classe
39. Porque surgiram?
Erlang
é uma linguagem de programação de uso geral e um sistema para execução
desenvolvida pela Ericsson para suportar aplicações distribuídas e tolerantes a falhas a
serem executadas em um ambiente de tempo real e ininterrupto
hot swapping, criar e gerenciar processos é uma tarefa trivial em Erlang
a comunicação entre processos é feita por troca de mensagens
40. Algumas palestras que podem explorar melhor os
temas que abordei aqui ...
Como ser um DBA na era DevOps - Sebastian Webber
Criando uma extensão para PostgreSQL - Marcone Viana Peres
Usando PostgreSQL no raspberryPI - Gustavo Sperandio
Go e PostgreSQL, ganhando desempenho em processos de carga de dados -
Marcelo Kruger