caelum / alura / casa do código guilherme silveira
TRANSCRIPT
Caelum / Alura / Casa do Código
Swift: uma relação de amor e ódio
Guilherme Silveira@guilhermecaelum
Guilherme Silveira
❖ curso no alura.com.br
❖ livro no casadocodigo.com.br
❖ instrutor na www.caelum.com.br
popularizou programação windows?
vb e o sobrinho programador
popularizou programação web?
php e o sobrinho programador
linguagem fácil mobile?
swift e o sobrinho programador
vb e php… humm…
vb e php => código ruim?
pop como vb e php… mas ainda mais “seguro”?
BUG
quem não gosta?
encontrar, testar, corrigir, vencer
a evolução dos bugs
a evolução dos bugs
desde software
1990 Sistema Operacional
1991 Aplicativo
1996 Webthin-client
2013 Mobile
a evolução dos bugs
desde software solução
1990 Sistema Operacional reinicia
1991 Aplicativo fecha e abre, ou reinicia o SO
1996 Webthin-client refresh, fecha e abre ou reinicia o SO
2013 Mobile ??
a evolução dos bugs
desde software solução tempo p/resolver
1990 Sistema Operacional reinicia minutos
1991 Aplicativo fecha e abre, ou reinicia o SO minuto
1996 Webthin-client
refresh, fecha e abre ou reinicia o SO segundos
2013 Mobile ?? ??
a evolução dos bugs
desde software solução tempo p/resolver
se quiser usar o concorrente
1990 Sistema Operacional reinicia minutos horas e $
1991 Aplicativo fecha e abre, ou reinicia o SO minuto horas e $
1996 Webthin-client
refresh, fecha e abre ou reinicia o SO segundos minutos
2013 Mobile ?? ?? segundos
a evolução dos bugs
desde software solução tempo p/resolver
se quiser usar o
concorrenteconcorrentes
1990 Sistema Operacional reinicia minutos horas e $ conta em
uma mão
1991 Aplicativo fecha e abre, ou reinicia o SO minuto horas e $ conta em
duas mãos
1996 Webthin-client
refresh, fecha e abre ou reinicia o
SOsegundos minutos centenas
2013 Mobile ?? ?? segundos muitos
se crasheia?
a evolução dos bugs
desde software solução tempo p/resolver
se quiser usar o
concorrenteconcorrentes
1990 Sistema Operacional reinicia minutos horas e $ conta em
uma mão
1991 Aplicativo fecha e abre, ou reinicia o SO minuto horas e $ conta em
duas mãos
1996 Webthin-client
refresh, fecha e abre ou reinicia o
SOsegundos minutos centenas
2013 Mobile DESINSTALA +segundos -segundos muitos
pepino…
linguagem + fácil com - bugs?
linguagem + fácil
live code em swift x android x vblive code em swift x java x scala x etc
refatoração win
+ fácil => porta de entrada
Mas e os crashes?
solução: compilação + rígida
acesso inválido a memória
php: ignora e ve mensagens se acumulando e coisas inesperadas
acesso inválido a memória
java e discipulos: thread crash e nullpointerexception
acesso inválido a memória
java: se catch exception, uuuu, boa sorte
acesso inválido a memória
java: throws exception como controle de fluxo (aka frameworks)
acesso inválido a memória
c e discipulos (nodejs, android, objective C included): acabou o mundo
acesso inválido a memória
swift: nunca
acesso inválido a memória
swift: nunca!
acesso inválido a memória
swift: nunca?
acesso inválido a memória
swift: só se o programador quiser ele força goela abaixo.
acesso inválido a memória
swift: padrão safety
java, nodejs, qq coisa: padrão caca
OO x funcional
tell don’t ask
ou o contrário?
Mas…. no XCode…
100 tipos de construtores
gerador de código zoado
multiple inheritance
multiple inheritance
Senhor Marquinhos:“desamarro qualquer situação, amorosa, multiple inheritance, mixins, traits etc”
Resumindo
Resumindo
❖ Em geral, continuamos programando como em 1990
❖ Mobile: crash = perde cliente
❖ Swift: sobrinho ou expert podem programar
❖ Mais fácil, menos seguro, mais difícil, mais seguro
❖ Gerador de código: :(
Resumindo
❖ Queria uma linguagem sobrinho
❖ + segura
❖ com gerador de códigos melhor
❖ Será que Hack e outras seguem este caminho? O que você acha?
Guilherme Silveira
❖ curso no alura.com.br
❖ livro no casadocodigo.com.br
❖ instrutor na www.caelum.com.br