Created
December 12, 2019 01:49
-
-
Save rafaeltoledo/6f918ecfb146beb33a19e60d31f81725 to your computer and use it in GitHub Desktop.
Transcrição / Tradução do keynote da KotlinConf 2019
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1 | |
00:00:00,100 --> 00:00:07,000 | |
[Música] | |
2 | |
00:00:11,500 --> 00:00:13,500 | |
Olá pessoal, bom dia! | |
3 | |
00:00:13,500 --> 00:00:18,200 | |
Caramba... 1.700 pessoas... | |
4 | |
00:00:22,500 --> 00:00:26,500 | |
Será que eu já vi tanta gente | |
em uma sala antes? | |
5 | |
00:00:26,500 --> 00:00:28,500 | |
Bem, talvez, mas nunca na KotlinConf | |
6 | |
00:00:28,500 --> 00:00:30,200 | |
Obrigado a todos por virem | |
7 | |
00:00:30,200 --> 00:00:31,500 | |
É maravilhoso estar aqui | |
8 | |
00:00:32,800 --> 00:00:35,200 | |
Hoje vamos falar sobre Kotlin | |
9 | |
00:00:35,200 --> 00:00:39,200 | |
E espero que seja uma abertura inspiradora | |
para os próximos dias | |
10 | |
00:00:40,800 --> 00:00:43,500 | |
Então vamos começar com... | |
11 | |
00:00:44,300 --> 00:00:45,500 | |
Números! | |
12 | |
00:00:45,500 --> 00:00:48,200 | |
Eu venho mostrando os | |
números de utilização | |
13 | |
00:00:48,200 --> 00:00:51,000 | |
em todo keynote de abertura | |
14 | |
00:00:51,000 --> 00:00:53,200 | |
Porque é algo que me ajuda | |
15 | |
00:00:53,200 --> 00:00:55,200 | |
a ter o sentimento de | |
16 | |
00:00:55,200 --> 00:00:57,500 | |
quem somos e como estamos indo. | |
12 | |
00:00:58,000 --> 00:01:00,200 | |
Vamos voltar alguns anos atrás | |
13 | |
00:01:00,800 --> 00:01:04,200 | |
Nós lançamos a versão 1.0 em 2016 e | |
14 | |
00:01:04,700 --> 00:01:08,700 | |
aquela versão foi usada | |
por cerca de 200.000 pessoas, | |
15 | |
00:01:08,700 --> 00:01:10,000 | |
o que é um número maravilhoso! | |
16 | |
00:01:10,000 --> 00:01:14,200 | |
é muito mais gente do que temos nessa sala, | |
o que é muita gente! | |
17 | |
00:01:14,200 --> 00:01:16,500 | |
E isso foi só o começo | |
18 | |
00:01:16,500 --> 00:01:20,500 | |
a propósito, quando digo que foi usado | |
por essa quantidade de pessoas | |
19 | |
00:01:20,500 --> 00:01:24,000 | |
significa pessoas que, de fato, | |
abriram um arquivo no editor | |
20 | |
00:01:24,000 --> 00:01:26,500 | |
e modificaram alguma coisa. | |
21 | |
00:01:27,000 --> 00:01:29,500 | |
Então, talvez elas não tenham colocado | |
isso em produção | |
22 | |
00:01:29,500 --> 00:01:31,200 | |
mas elas fizeram alguma coisa | |
com código Kotlin | |
23 | |
00:01:32,000 --> 00:01:35,200 | |
então a versão 1.1 teve 500.000 usuários | |
24 | |
00:01:35,200 --> 00:01:37,500 | |
e a 1.2 mais de 2 milhões | |
25 | |
00:01:37,500 --> 00:01:40,200 | |
e a 1.3, que é a versão atual | |
26 | |
00:01:40,200 --> 00:01:43,500 | |
já tem mais de 4 milhões de usuários | |
27 | |
00:01:43,500 --> 00:01:45,800 | |
o que é um número impressionante. | |
28 | |
00:01:46,000 --> 00:01:49,500 | |
Mas, o que é mais | |
impressionante pra mim | |
29 | |
00:01:49,500 --> 00:01:52,500 | |
é que se passaram menos de 4 anos | |
30 | |
00:01:52,500 --> 00:01:56,200 | |
desde o lançamento da versão 1.0 | |
em fevereiro de 2016 | |
31 | |
00:01:56,200 --> 00:01:59,500 | |
e hoje já temos mais de 4 milhões de | |
usuários no último ano | |
32 | |
00:02:00,000 --> 00:02:02,200 | |
Isso me impressiona muito, | |
e é algo que me inspira também. | |
33 | |
00:02:03,000 --> 00:02:07,500 | |
Mas, por que devemos nos preocupar | |
com os números de utilização? | |
34 | |
00:02:07,500 --> 00:02:12,200 | |
Isso é uma métrica, | |
é só um número qualquer | |
35 | |
00:02:12,200 --> 00:02:16,200 | |
Eu me preocupo é em fazer o Kotlin | |
um grande produto | |
36 | |
00:02:16,200 --> 00:02:18,200 | |
torná-lo uma ferramenta que todo | |
mundo gosta | |
37 | |
00:02:18,200 --> 00:02:21,200 | |
que ajuda as pessoas, etc. | |
38 | |
00:02:21,200 --> 00:02:23,500 | |
Então por que devo me preocupar | |
com o número? | |
39 | |
00:02:24,000 --> 00:02:28,200 | |
bem, na verdade é só um tipo | |
de validação pra mim. | |
40 | |
00:02:28,500 --> 00:02:31,500 | |
Acredito que, se as pessoas gostam | |
do produto, | |
41 | |
00:02:31,500 --> 00:02:34,200 | |
se elas acham a linguagem útil, | |
42 | |
00:02:34,200 --> 00:02:37,500 | |
se elas querem resolver seus | |
problemas com ela, | |
43 | |
00:02:37,500 --> 00:02:39,200 | |
então ela é boa | |
44 | |
00:02:39,200 --> 00:02:42,400 | |
e ver essa quantidade de pessoas | |
interessadas no Kotlin | |
45 | |
00:02:42,400 --> 00:02:44,500 | |
significa que estamos fazendo | |
um bom trabalho | |
46 | |
00:02:44,500 --> 00:02:46,500 | |
nós, eu digo todos nós, | |
47 | |
00:02:46,500 --> 00:02:48,800 | |
todo mundo na comunidade Kotlin. | |
48 | |
00:02:48,800 --> 00:02:53,700 | |
Se olharmos nos nossos | |
lançamentos anteriores, | |
49 | |
00:02:53,700 --> 00:02:57,500 | |
começamos relativamente | |
pequenos, não é? | |
50 | |
00:02:57,500 --> 00:03:01,500 | |
Inicialmente pensamos Kotlin | |
como uma nova linguagem para JVM | |
51 | |
00:03:01,500 --> 00:03:06,200 | |
como algo pensado para modernizar | |
o ecossistema da JVM | |
52 | |
00:03:06,200 --> 00:03:10,500 | |
a 1.0 foi JVM e Android, | |
e um pouco de JavaScript experimental | |
53 | |
00:03:11,500 --> 00:03:15,400 | |
Então estabilizamos JavaScript e | |
introduzimos Coroutines experimental | |
54 | |
00:03:15,400 --> 00:03:20,000 | |
E adicionamos multi-plataforma como | |
uma feature experimental também | |
55 | |
00:03:20,000 --> 00:03:22,500 | |
então estabilizamos as coroutines | |
56 | |
00:03:22,500 --> 00:03:26,200 | |
e Kotlin Native continuou andando | |
e atingiu o beta na 1.3. | |
57 | |
00:03:26,200 --> 00:03:29,000 | |
Agora estamos olhando para | |
a versão 1.4 | |
58 | |
00:03:29,000 --> 00:03:30,200 | |
é possível ver a progressão | |
59 | |
00:03:30,200 --> 00:03:32,500 | |
estamos ampliando o escopo | |
60 | |
00:03:32,500 --> 00:03:34,500 | |
estamos cobrindo mais casos de uso | |
61 | |
00:03:34,500 --> 00:03:36,000 | |
e isso é o que me faz sentir que | |
62 | |
00:03:36,000 --> 00:03:39,200 | |
o Kotlin tem amplitude | |
em termos de escala, | |
63 | |
00:03:39,200 --> 00:03:41,000 | |
em termos de relevância, | |
64 | |
00:03:41,000 --> 00:03:43,400 | |
em termos de interesse | |
dos os usuários. | |
65 | |
00:03:47,000 --> 00:03:49,200 | |
Kotlin está se tornando | |
nem uma linguagem, | |
66 | |
00:03:49,200 --> 00:03:50,500 | |
nem um conjunto de ferramentas, | |
67 | |
00:03:50,500 --> 00:03:51,500 | |
nem uma palavra, | |
68 | |
00:03:51,500 --> 00:03:53,500 | |
mas um ecossistema | |
69 | |
00:03:53,500 --> 00:03:57,200 | |
e queremos que seja um | |
ecossistema aberto | |
70 | |
00:03:57,200 --> 00:04:00,200 | |
que seja acolhedor para todos | |
71 | |
00:04:00,200 --> 00:04:01,700 | |
o ecossistema é aberto para vocês | |
72 | |
00:04:01,700 --> 00:04:04,800 | |
ele é aberto para qualquer um | |
que queira estender o Kotlin | |
73 | |
00:04:04,800 --> 00:04:08,100 | |
para quem queira construir algo | |
em cima do Kotlin | |
74 | |
00:04:08,100 --> 00:04:12,000 | |
e um ecossistema é mais que | |
uma coisa só. | |
75 | |
00:04:12,500 --> 00:04:14,500 | |
é primeiramente feito de pessoas | |
76 | |
00:04:14,500 --> 00:04:17,500 | |
Kotlin não é um pedaço de software, | |
77 | |
00:04:17,500 --> 00:04:19,000 | |
são pessoas. | |
78 | |
00:04:19,000 --> 00:04:21,400 | |
São pessoas unidas por ideias, | |
79 | |
00:04:21,400 --> 00:04:23,200 | |
pela forma de pensar | |
80 | |
00:04:23,200 --> 00:04:25,900 | |
pela forma de fazer código funcionar | |
e assim por diante, | |
81 | |
00:04:25,900 --> 00:04:29,800 | |
e claro, sobre tudo isso, | |
Kotlin é software | |
82 | |
00:04:29,800 --> 00:04:33,400 | |
É assim que penso sobre | |
o que Kotlin é | |
83 | |
00:04:33,800 --> 00:04:36,600 | |
e o ecossistema é complexo | |
84 | |
00:04:36,600 --> 00:04:38,600 | |
como aqui na parte de | |
baixo do slide, | |
85 | |
00:04:38,600 --> 00:04:40,300 | |
vocês podem ver várias caixas | |
86 | |
00:04:40,300 --> 00:04:42,500 | |
elas são a plataforma do Kotlin | |
87 | |
00:04:42,500 --> 00:04:44,200 | |
é com isso que nós, | |
88 | |
00:04:44,200 --> 00:04:47,400 | |
o time core na JetBrains, | |
estamos contribuindo | |
89 | |
00:04:47,400 --> 00:04:49,500 | |
estamos fazendo o compilador, | |
o ambiente de execução | |
90 | |
00:04:49,500 --> 00:04:52,200 | |
todos os geradores de código | |
para diferentes plataformas | |
91 | |
00:04:52,200 --> 00:04:56,100 | |
bibliotecas, ferramentas, IDE | |
92 | |
00:04:56,100 --> 00:04:58,100 | |
temos nosso repositório | |
no Github | |
93 | |
00:04:58,100 --> 00:05:01,500 | |
disponível para todos | |
contribuírem, etc. | |
94 | |
00:05:01,500 --> 00:05:05,100 | |
e isso é o nível mais | |
básico da plataforma | |
95 | |
00:05:05,100 --> 00:05:08,800 | |
então, todos constroem em cima | |
de tudo isso. | |
96 | |
00:05:08,800 --> 00:05:12,200 | |
Várias pessoas criam seus próprios | |
materiais de aprendizagem, | |
97 | |
00:05:14,000 --> 00:05:17,200 | |
criam plugins para o compilador | |
e para o toolchain, | |
98 | |
00:05:17,200 --> 00:05:19,500 | |
criam suas próprias bibliotecas, | |
99 | |
00:05:19,500 --> 00:05:21,400 | |
criam pull requests no Github, | |
100 | |
00:05:22,200 --> 00:05:26,000 | |
nos enviam bugs e | |
solicitações de features | |
101 | |
00:05:26,000 --> 00:05:29,200 | |
e tudo isso vem pra | |
estender a plataforma. | |
102 | |
00:05:29,200 --> 00:05:32,500 | |
Aqui eu gostaria de agradecer | |
os nossos contribuidores | |
103 | |
00:05:32,500 --> 00:05:35,200 | |
muitas pessoas estão, de fato, | |
104 | |
00:05:35,200 --> 00:05:37,200 | |
adicionando código ao Kotlin | |
105 | |
00:05:37,200 --> 00:05:39,500 | |
através de pull requests | |
no Github | |
106 | |
00:05:39,500 --> 00:05:42,300 | |
e agora não é somente | |
o time core na JetBrains, | |
107 | |
00:05:42,300 --> 00:05:45,100 | |
mas também um time no Google | |
ajudando com o compilador. | |
108 | |
00:05:45,100 --> 00:05:47,500 | |
Muito obrigado por fazer | |
isso por todos nós | |
109 | |
00:05:47,500 --> 00:05:52,300 | |
e muitas outras pessoas | |
na comunidade fazendo o mesmo | |
110 | |
00:05:52,300 --> 00:05:55,400 | |
mas isso é só um tipo | |
de contribuição, certo? | |
111 | |
00:05:55,400 --> 00:05:57,200 | |
somente código... | |
112 | |
00:05:58,200 --> 00:06:00,400 | |
...e bibliotecas, são código também | |
113 | |
00:06:00,400 --> 00:06:03,200 | |
mas sobre tudo isso, | |
tem muito mais coisas. | |
114 | |
00:06:03,200 --> 00:06:06,400 | |
Todos que compartilham um | |
estudo de caso na Internet, | |
115 | |
00:06:06,400 --> 00:06:09,000 | |
que fazem perguntas, | |
fornecem respostas, | |
116 | |
00:06:09,000 --> 00:06:12,300 | |
compartilham notícias, | |
comentam nas redes sociais, | |
117 | |
00:06:12,300 --> 00:06:15,400 | |
ou mesmo aperta o botão | |
de like em algum lugar, | |
118 | |
00:06:15,400 --> 00:06:17,800 | |
todos estão trazendo valor | |
para a comunidade | |
119 | |
00:06:17,800 --> 00:06:21,300 | |
e mesmo que você não tenha tempo | |
para fazer isso, | |
120 | |
00:06:21,300 --> 00:06:24,400 | |
alguns de nós estamos realmente | |
ocupados com nosso código, | |
121 | |
00:06:24,400 --> 00:06:26,100 | |
focando nos problemas do negócio, | |
122 | |
00:06:26,100 --> 00:06:29,400 | |
ainda assim, se você somente | |
reportar os dados de utilização, | |
123 | |
00:06:29,400 --> 00:06:32,100 | |
você pode ajudar a comunidade | |
de forma passiva. | |
124 | |
00:06:32,500 --> 00:06:37,100 | |
Agradeço a todos que nos ajudam | |
a tornar o Kotlin melhor. | |
125 | |
00:06:39,500 --> 00:06:42,100 | |
Vamos pensar por um segundo | |
126 | |
00:06:42,100 --> 00:06:45,400 | |
sobre o que queremos que | |
o Kotlin se torne no futuro. | |
127 | |
00:06:45,900 --> 00:06:49,400 | |
Eu penso em uma metáfora de | |
uma linguagem padrão, | |
128 | |
00:06:49,400 --> 00:06:50,400 | |
ou uma ferramenta padrão, | |
129 | |
00:06:50,400 --> 00:06:56,400 | |
algo que procuro quando tenho | |
uma tarefa a fazer. | |
130 | |
00:06:56,900 --> 00:07:01,300 | |
Uma linguagem padrão é mais do que | |
algo que eu sei bem, | |
131 | |
00:07:01,300 --> 00:07:03,500 | |
é algo que posso usar em | |
qualquer lugar. | |
132 | |
00:07:03,500 --> 00:07:08,200 | |
Algo que vai resolver qualquer | |
problema que eu tiver, | |
133 | |
00:07:08,200 --> 00:07:12,200 | |
e algo que vai escalar se | |
o projeto demandar, certo? | |
134 | |
00:07:13,000 --> 00:07:15,200 | |
Então, para tornar o Kotlin | |
a sua linguagem padrão | |
135 | |
00:07:15,200 --> 00:07:18,400 | |
precisamos que ele funcione | |
em qualquer escala, | |
136 | |
00:07:18,400 --> 00:07:19,700 | |
em qualquer plataforma, | |
137 | |
00:07:19,700 --> 00:07:21,300 | |
em qualquer área de aplicação, | |
138 | |
00:07:21,300 --> 00:07:25,100 | |
e claro, entendemos que precisamos | |
fazê-lo acessível | |
139 | |
00:07:25,100 --> 00:07:28,500 | |
para que seja relevante em | |
qualquer nível de experiência | |
140 | |
00:07:28,900 --> 00:07:31,200 | |
porque nem todo mundo já | |
é um profissional. | |
141 | |
00:07:31,200 --> 00:07:34,200 | |
Então queremos ser o padrão para | |
todas as pessoas, | |
142 | |
00:07:34,200 --> 00:07:38,500 | |
e a ideia é que, se tenho algo | |
para trabalhar, | |
143 | |
00:07:38,500 --> 00:07:41,100 | |
e eu já sei Kotlin, | |
vai funcionar pra mim. | |
144 | |
00:07:41,100 --> 00:07:43,400 | |
E eu posso usar como minha | |
ferramenta padrão. | |
145 | |
00:07:44,100 --> 00:07:47,300 | |
Como fazemos isso, então? | |
146 | |
00:07:47,300 --> 00:07:50,200 | |
Para completarmos essa missão | |
de ser a sua linguagem padrão, | |
147 | |
00:07:50,200 --> 00:07:52,300 | |
não é uma tarefa fácil, | |
148 | |
00:07:52,300 --> 00:07:55,400 | |
você precisa ser muito bom | |
149 | |
00:07:55,400 --> 00:07:59,100 | |
e o caminho que penso que vai | |
levar o Kotlin a ser tão bom | |
150 | |
00:07:59,100 --> 00:08:01,300 | |
é diminuindo as barreiras. | |
151 | |
00:08:01,900 --> 00:08:05,100 | |
Para ser esse tipo de linguagem padrão | |
152 | |
00:08:05,100 --> 00:08:09,000 | |
precisamos diminuir as barreiras | |
entre as plataformas | |
153 | |
00:08:09,000 --> 00:08:10,600 | |
para permitir que você transferir | |
seu conhecimento | |
154 | |
00:08:10,600 --> 00:08:12,200 | |
de uma plataforma para outra. | |
155 | |
00:08:12,400 --> 00:08:13,600 | |
Diminuir as barreiras entre as pessoas, | |
156 | |
00:08:13,600 --> 00:08:16,300 | |
para que possam compartilhar sua | |
expertise em seus códigos. | |
157 | |
00:08:16,700 --> 00:08:18,500 | |
e, por último, | |
158 | |
00:08:18,500 --> 00:08:22,400 | |
diminuir a barreira entre humanos | |
e software funcional. | |
159 | |
00:08:22,400 --> 00:08:24,300 | |
Assim, se você tem uma ideia | |
160 | |
00:08:24,300 --> 00:08:27,200 | |
existe uma ferramenta que é a via | |
161 | |
00:08:27,200 --> 00:08:30,500 | |
para expressar a ideia, | |
e não o obstáculo no caminho. | |
162 | |
00:08:31,100 --> 00:08:33,200 | |
É assim que eu penso. | |
163 | |
00:08:33,200 --> 00:08:38,100 | |
E, claro, vocês perceberam que | |
falei muito sobre plataformas. | |
164 | |
00:08:38,100 --> 00:08:40,300 | |
O que você faz deve funcionar | |
em qualquer plataforma. | |
165 | |
00:08:40,300 --> 00:08:43,500 | |
Nós diminuímos a barreira | |
entre plataformas, | |
166 | |
00:08:43,500 --> 00:08:47,300 | |
e essa é uma parte muito importante | |
da nossa estratégia. | |
167 | |
00:08:47,300 --> 00:08:50,600 | |
Vamos olhar as plataformas | |
em que o Kotlin funciona hoje. | |
168 | |
00:08:50,600 --> 00:08:53,300 | |
Vou começar com desenvolvimento | |
no server side. | |
169 | |
00:08:53,300 --> 00:08:57,300 | |
De novo, lá atrás em 2010 | |
170 | |
00:08:57,300 --> 00:08:59,200 | |
quando começamos com o Kotlin, | |
171 | |
00:08:59,200 --> 00:09:00,900 | |
pensávamos no ecossistema Java | |
172 | |
00:09:00,900 --> 00:09:03,100 | |
e Java é enorme no server side. | |
173 | |
00:09:03,100 --> 00:09:05,700 | |
Então, esse foi o caso de uso | |
primário que pensamos naquela época | |
174 | |
00:09:05,700 --> 00:09:08,900 | |
e hoje Kotlin é muito forte no server side. | |
175 | |
00:09:08,900 --> 00:09:12,300 | |
Quando você olha vagas de Kotlin | |
na Internet, | |
176 | |
00:09:12,300 --> 00:09:14,400 | |
existem muitas vagas para server side. | |
177 | |
00:09:14,400 --> 00:09:17,400 | |
É desenvolvimento backend de todo tipo | |
178 | |
00:09:17,400 --> 00:09:19,500 | |
e todo tipo de negócio. | |
179 | |
00:09:19,500 --> 00:09:22,300 | |
E faz sentido, certo? | |
180 | |
00:09:22,300 --> 00:09:27,200 | |
Kotlin foi criado para projetos | |
de larga escala, | |
181 | |
00:09:27,200 --> 00:09:29,400 | |
para criar soluções robustas, etc. | |
182 | |
00:09:29,400 --> 00:09:30,000 | |
e está funcionando. | |
183 | |
00:09:30,000 --> 00:09:35,300 | |
Existe muitas soluções interessantes | |
para desenvolvimento server side com Kotlin, | |
184 | |
00:09:35,300 --> 00:09:39,000 | |
e muitas mais estão emergindo, | |
185 | |
00:09:39,000 --> 00:09:41,200 | |
mas eu gostaria de destacar algumas. | |
186 | |
00:09:41,600 --> 00:09:45,300 | |
Vocês devem saber que somos amigos | |
do Spring faz tempo. | |
187 | |
00:09:45,300 --> 00:09:49,400 | |
O Spring Framework é um dos frameworks | |
web mais populares do mundo | |
188 | |
00:09:49,400 --> 00:09:51,600 | |
está dominando o mundo Java, | |
189 | |
00:09:51,900 --> 00:09:57,200 | |
e o suporte oficial para Kotlin | |
foi adicionado lá em 2017 | |
190 | |
00:09:57,200 --> 00:09:58,700 | |
e está sendo expandido | |
191 | |
00:09:58,700 --> 00:10:01,300 | |
agora não só no Spring Boot, | |
mas também no Web MVC | |
192 | |
00:10:01,300 --> 00:10:05,400 | |
tendo até a documentação de exemplo | |
em Kotlin junto com Java | |
193 | |
00:10:05,400 --> 00:10:09,300 | |
e tem o Web Flux que é um grande | |
amigo das coroutines | |
194 | |
00:10:09,300 --> 00:10:12,200 | |
fazendo requests assíncronas muito fáceis. | |
195 | |
00:10:12,200 --> 00:10:14,300 | |
Acredito que é uma colaboração | |
muito produtiva. | |
196 | |
00:10:14,300 --> 00:10:16,000 | |
E muitas pessoas já estão usando, | |
197 | |
00:10:16,000 --> 00:10:17,700 | |
fico muito contente em ver isso. | |
198 | |
00:10:18,300 --> 00:10:19,800 | |
Nossos amigos da Pivotal | |
199 | |
00:10:19,800 --> 00:10:23,400 | |
vão dar grandes palestras aqui | |
na KotlinConf sobre Spring. | |
200 | |
00:10:23,400 --> 00:10:25,500 | |
Então, se estiver interessado em | |
desenvolvimento server-side, | |
201 | |
00:10:25,500 --> 00:10:27,700 | |
não perca. | |
202 | |
00:10:29,100 --> 00:10:33,400 | |
Nós da JetBrains também estamos fazendo | |
203 | |
00:10:33,400 --> 00:10:37,200 | |
nosso próprio framework de aplicações | |
conectadas chamado Ktor | |
204 | |
00:10:37,200 --> 00:10:40,200 | |
que é usado no software de missão crítica | |
205 | |
00:10:40,200 --> 00:10:41,700 | |
que desenvolvemos na JetBrains. | |
206 | |
00:10:41,700 --> 00:10:43,300 | |
Acredito que a JetBrains | |
207 | |
00:10:43,300 --> 00:10:47,300 | |
é um dos maiores usuários no | |
server-side desde o começo | |
208 | |
00:10:47,300 --> 00:10:49,500 | |
porque começamos a colocar código Kotlin | |
209 | |
00:10:49,500 --> 00:10:52,300 | |
em produção no servidor | |
antes mesmo da versão 1.0 | |
210 | |
00:10:52,300 --> 00:10:56,300 | |
e hoje o Ktor é muito forte | |
e fazemos mais produtos baseados nele. | |
211 | |
00:10:56,300 --> 00:11:00,300 | |
Então, Kotlin é um investimento | |
estratégico para a JetBrains | |
212 | |
00:11:00,300 --> 00:11:01,700 | |
e estamos comprometidos com ele. | |
213 | |
00:11:01,700 --> 00:11:03,300 | |
Mas não somos somente nós. | |
214 | |
00:11:03,300 --> 00:11:06,400 | |
Muitos outros estão compartilhando | |
seus estudos de caso | |
215 | |
00:11:06,400 --> 00:11:11,100 | |
e aqui na KotlinConf vemos muitos | |
casos interessantes. | |
216 | |
00:11:11,100 --> 00:11:14,300 | |
Nossos amigos da Expedia estão usando, | |
217 | |
00:11:14,300 --> 00:11:19,300 | |
E até mesmo a receita federal da Noruega | |
está usando Kotlin em seus servidores. | |
218 | |
00:11:19,300 --> 00:11:22,300 | |
Essa é uma transição muito interessante. | |
219 | |
00:11:22,300 --> 00:11:25,300 | |
Primeiro, vimos os early adopters e | |
220 | |
00:11:25,300 --> 00:11:28,000 | |
nós usávamos Kotlin internamente | |
na JetBrains. | |
221 | |
00:11:28,000 --> 00:11:31,400 | |
Então vimos startups e grandes empresas | |
222 | |
00:11:31,400 --> 00:11:33,900 | |
e empresas financeiras começando a usar | |
223 | |
00:11:33,900 --> 00:11:36,300 | |
e agora é o governo. | |
224 | |
00:11:36,800 --> 00:11:39,400 | |
Imagino o que vem depois... | |
225 | |
00:11:40,100 --> 00:11:42,800 | |
Não sei, vamos ver ano que vem. | |
226 | |
00:11:47,300 --> 00:11:49,800 | |
OK, então é assim que estamos | |
no servidor. | |
227 | |
00:11:51,200 --> 00:11:53,200 | |
Mas, claro, existem muitas outras | |
plataformas. | |
228 | |
00:11:53,200 --> 00:11:55,200 | |
Android é uma plataforma muito forte. | |
195 | |
00:11:55,700 --> 00:11:58,800 | |
Android se tornou Kotlin-first este ano, | |
195 | |
00:11:58,800 --> 00:12:02,400 | |
e podemos perceber que o ecossistema | |
195 | |
00:12:02,400 --> 00:12:04,700 | |
está crescendo com o | |
desenvolvimento mobile. | |
195 | |
00:12:04,700 --> 00:12:07,500 | |
mais de 50% dos desenvolvedores | |
profissionais | |
195 | |
00:12:07,500 --> 00:12:09,600 | |
trabalhando na plataforma Android | |
195 | |
00:12:09,600 --> 00:12:11,400 | |
estão usando Kotlin | |
195 | |
00:12:11,400 --> 00:12:14,200 | |
além de 60% dos Top 100 apps | |
195 | |
00:12:14,200 --> 00:12:15,400 | |
na Play Store | |
195 | |
00:12:15,400 --> 00:12:18,200 | |
o que é um número gigante de usuários, | |
195 | |
00:12:18,200 --> 00:12:19,800 | |
milhões e mais milhões de usuários | |
195 | |
00:12:19,800 --> 00:12:20,900 | |
não sei, talvez bilhões. | |
195 | |
00:12:21,500 --> 00:12:23,900 | |
Todos esses apps estão usando Kotlin | |
195 | |
00:12:24,200 --> 00:12:27,200 | |
e o time incrível da Google | |
195 | |
00:12:27,200 --> 00:12:30,200 | |
está criando excelentes | |
bibliotecas com Kotlin | |
195 | |
00:12:30,200 --> 00:12:32,800 | |
e nos ajudando a melhorar | |
o ecossistema. | |
195 | |
00:12:33,000 --> 00:12:35,200 | |
Agradeço meus colegas da | |
Google novamente | |
195 | |
00:12:35,200 --> 00:12:36,700 | |
tem sido ótimo trabalhar juntos | |
195 | |
00:12:37,100 --> 00:12:39,200 | |
e para reforçar ainda mais | |
195 | |
00:12:39,200 --> 00:12:44,300 | |
esses são alguns apps | |
feitos pela Google | |
195 | |
00:12:44,300 --> 00:12:46,200 | |
que são disponibilizados | |
para todo o mundo | |
195 | |
00:12:46,200 --> 00:12:48,200 | |
inclusive tenho alguns deles | |
aqui no meu bolso, | |
195 | |
00:12:48,200 --> 00:12:51,300 | |
todos eles estão usando Kotlin. | |
195 | |
00:12:51,300 --> 00:12:53,400 | |
E acredito que é empolgante ver | |
00:12:53,400 --> 00:12:56,200 | |
quantos casos interessantes o Kotlin | |
está ajudando hoje me dia. | |
195 | |
00:12:56,900 --> 00:13:00,200 | |
Mas essa história não para com o Android | |
195 | |
00:13:00,200 --> 00:13:03,500 | |
porque o mundo mobile é mais amplo. | |
195 | |
00:13:03,500 --> 00:13:05,200 | |
Existem duas plataformas principais | |
195 | |
00:13:05,200 --> 00:13:09,100 | |
e com o Kotlin estamos tentando | |
195 | |
00:13:09,100 --> 00:13:12,500 | |
fazer as coisas funcionarem | |
bem para todas as plataformas | |
195 | |
00:13:12,500 --> 00:13:15,000 | |
e é por isso que estamos investindo | |
195 | |
00:13:15,000 --> 00:13:16,600 | |
no que chamamos mobile multiplatforma. | |
195 | |
00:13:16,600 --> 00:13:19,200 | |
Onde vamos compartilhar código | |
entre Android e iOS | |
195 | |
00:13:19,200 --> 00:13:20,600 | |
aqui temos uma lista de apps, | |
195 | |
00:13:20,600 --> 00:13:24,200 | |
muitos deles terão seus estudos | |
de caso apresentados na KotlinConf | |
195 | |
00:13:24,200 --> 00:13:27,200 | |
todos esses apps estão usando | |
Kotlin multiplataforma. | |
195 | |
00:13:27,200 --> 00:13:30,200 | |
Estão compartilhando lógica de | |
negócio entre iOS e Android | |
195 | |
00:13:30,200 --> 00:13:35,200 | |
e eu fico muito empolgado | |
por ver as pessoas | |
195 | |
00:13:35,200 --> 00:13:38,200 | |
colocando isso em produção hoje | |
00:13:38,700 --> 00:13:40,200 | |
é muito bacana | |
195 | |
00:13:40,200 --> 00:13:45,100 | |
São várias empresas, algumas delas | |
nomes bem conhecidos | |
195 | |
00:13:45,100 --> 00:13:50,200 | |
incluindo soluções completas como | |
o recente anúncio da VMware | |
195 | |
00:13:50,200 --> 00:13:54,200 | |
Eles estão com a solução Workspace ONE | |
195 | |
00:13:54,200 --> 00:13:56,800 | |
que é um conjunto de aplicações | |
para mobilidade corporativa | |
195 | |
00:13:56,800 --> 00:14:02,200 | |
e estão usando a mesma lógica de negócios | |
tanto no iOS quanto no Android | |
195 | |
00:14:02,200 --> 00:14:06,700 | |
ou então a PlanGrid da Autodesk, com vários projetos de construção envolvidos | |
195 | |
00:14:06,700 --> 00:14:11,200 | |
é possível ver os números, milhões e milhões de usuários em cada aplicativo | |
195 | |
00:14:11,800 --> 00:14:14,800 | |
Gostaria também de destacar | |
aqui o Quizlet | |
195 | |
00:14:14,800 --> 00:14:16,700 | |
porque eles foram ainda mais longe | |
195 | |
00:14:16,700 --> 00:14:18,500 | |
eles possuem dois clientes | |
195 | |
00:14:18,500 --> 00:14:21,200 | |
iOS e Android, | |
195 | |
00:14:21,200 --> 00:14:23,000 | |
mas eles também tem um cliente web | |
00:14:23,000 --> 00:14:24,900 | |
onde usam Kotlin para | |
compartilhar código | |
195 | |
00:14:24,900 --> 00:14:28,900 | |
e é isso que queremos que o | |
Kotlin se torne no futuro, | |
195 | |
00:14:28,900 --> 00:14:32,500 | |
a solução universal para | |
todas as plataformas | |
195 | |
00:14:32,700 --> 00:14:39,200 | |
Acredito que vocês vão gostar das | |
palestras sobre esses casos aqui | |
195 | |
00:14:39,200 --> 00:14:43,800 | |
e espero que tirem conclusões | |
interessantes dessas palestras | |
195 | |
00:14:44,300 --> 00:14:47,300 | |
Falando agora do panorama universal | |
195 | |
00:14:47,300 --> 00:14:49,800 | |
de ter Kotlin em todo lugar, | |
em todas as plataformas | |
195 | |
00:14:49,800 --> 00:14:51,400 | |
é assim que seria | |
195 | |
00:14:51,700 --> 00:14:54,200 | |
somos fortes no servidor, | |
fortes no mobile, | |
195 | |
00:14:54,200 --> 00:14:56,200 | |
nós somos fortes no navegador | |
195 | |
00:14:56,200 --> 00:14:58,200 | |
você pode fazer um cliente | |
desktop também | |
195 | |
00:14:58,200 --> 00:15:02,200 | |
se estiver usando uma IDE Jetbrains | |
pode fazer um plugin para a IDE | |
195 | |
00:15:02,200 --> 00:15:04,200 | |
Então essa é a experiência fullstack | |
195 | |
00:15:04,200 --> 00:15:06,400 | |
Você tem uma ferramenta | |
195 | |
00:15:06,400 --> 00:15:08,900 | |
e você resolve todos os seus problemas | |
em todas as plataformas com ela | |
195 | |
00:15:08,900 --> 00:15:11,500 | |
É exatamente isso que | |
estamos fazendo na JetBrains | |
195 | |
00:15:11,800 --> 00:15:14,500 | |
vocês devem ter ouvido | |
que vamos anunciar | |
195 | |
00:15:14,500 --> 00:15:18,400 | |
um novo produto para equipes | |
aqui na KotlinConf mais tarde | |
195 | |
00:15:18,600 --> 00:15:20,200 | |
e não estou dizendo o que é | |
195 | |
00:15:20,200 --> 00:15:23,500 | |
É algo para equipes, e só. | |
195 | |
00:15:23,600 --> 00:15:28,200 | |
Mas posso dizer que é assim | |
que ele funciona. | |
195 | |
00:15:28,200 --> 00:15:30,600 | |
Ele roda Kotlin em todos os nós | |
195 | |
00:15:30,700 --> 00:15:33,900 | |
ele tem Kotlin no servidor, | |
no iOS, no Android | |
195 | |
00:15:33,900 --> 00:15:36,500 | |
no desktop, na IDE e no navegador | |
195 | |
00:15:36,700 --> 00:15:40,200 | |
está tudo aqui e vão haver... | |
195 | |
00:15:40,200 --> 00:15:42,200 | |
... | |
195 | |
00:15:42,200 --> 00:15:43,500 | |
vou falar das palestrar daqui a pouco... | |
195 | |
00:15:43,500 --> 00:15:45,700 | |
então, é isso que as | |
plataformas compartilham | |
195 | |
00:15:45,900 --> 00:15:48,200 | |
tudo nesse slide é compartilhado | |
195 | |
00:15:48,200 --> 00:15:50,400 | |
tanto o modelo de dados e | |
suas validações, | |
195 | |
00:15:50,400 --> 00:15:52,800 | |
as chamadas RPC, até | |
mesmo o View Model | |
195 | |
00:15:52,800 --> 00:15:54,700 | |
assim chegamos realmente | |
próximos da UI | |
195 | |
00:15:54,700 --> 00:15:56,500 | |
é muita coisa compartilhada | |
195 | |
00:15:56,500 --> 00:15:59,000 | |
e meus colegas vão falar mais sobre isso | |
195 | |
00:15:59,200 --> 00:16:03,100 | |
Maxim Shafirov vai anunciar | |
o produto mais tarde | |
195 | |
00:16:03,200 --> 00:16:04,400 | |
e Maxim Mazin... | |
195 | |
00:16:04,600 --> 00:16:07,400 | |
eu nem posso falar o título da palestra | |
195 | |
00:16:07,700 --> 00:16:11,300 | |
mas vai ser a palestra sobre como | |
tudo isso funciona, | |
195 | |
00:16:11,300 --> 00:16:15,400 | |
com bastante código e detalhes | |
empolgantes sobre esse produto. | |
195 | |
00:16:17,300 --> 00:16:21,200 | |
Espero já termos suspense o suficiente | |
pra esse anúncio. | |
195 | |
00:16:26,800 --> 00:16:29,200 | |
Então temos um sumário intermediário | |
195 | |
00:16:29,700 --> 00:16:32,200 | |
sobre onde estamos com o Kotlin hoje | |
195 | |
00:16:33,200 --> 00:16:34,300 | |
Todas as plataformas | |
195 | |
00:16:34,300 --> 00:16:35,600 | |
servidor, Android, | |
195 | |
00:16:35,600 --> 00:16:38,700 | |
código compartilhado em | |
dispositivos móveis, | |
195 | |
00:16:38,700 --> 00:16:41,300 | |
web, desktop, tudo junto. | |
195 | |
00:16:41,300 --> 00:16:42,300 | |
Isso significa fullstack, | |
195 | |
00:16:42,300 --> 00:16:43,700 | |
é aqui que estamos mirando e | |
195 | |
00:16:43,700 --> 00:16:46,800 | |
vamos continuar investindo | |
nessa história. | |
195 | |
00:16:48,300 --> 00:16:51,200 | |
Acredito que já temos 23 | |
minutos de keynote, | |
195 | |
00:16:51,200 --> 00:16:54,400 | |
é hora de falar sobre alguns anúncios | |
195 | |
00:16:54,700 --> 00:16:57,200 | |
novamente, tenho que me desculpar, | |
Kotlin é um projeto open source, | |
195 | |
00:16:57,200 --> 00:17:00,200 | |
você já sabe de tudo se olhar no Github, | |
195 | |
00:17:00,200 --> 00:17:05,200 | |
mas vamos repassar algumas coisas | |
que estão acontecendo lá | |
195 | |
00:17:05,200 --> 00:17:09,000 | |
além disso, não vamos | |
lançar nada hoje | |
195 | |
00:17:09,300 --> 00:17:12,800 | |
eu parei de fazer lançamentos | |
em conferências | |
195 | |
00:17:14,000 --> 00:17:15,200 | |
sabem por quê? | |
195 | |
00:17:15,200 --> 00:17:16,400 | |
Uma conferência | |
195 | |
00:17:16,400 --> 00:17:18,800 | |
é algo que você precisa se preparar | |
195 | |
00:17:18,800 --> 00:17:21,500 | |
e um lançamento é algo que | |
você precisa se preparar | |
195 | |
00:17:21,500 --> 00:17:22,700 | |
e só existe um eu | |
195 | |
00:17:23,500 --> 00:17:25,600 | |
e só existe uma equipe | |
195 | |
00:17:25,600 --> 00:17:27,700 | |
e não vamos fazer isso. | |
195 | |
00:17:27,900 --> 00:17:30,500 | |
Estamos só lhes dando um aviso | |
195 | |
00:17:30,500 --> 00:17:34,700 | |
de que uma versão vai ser lançada | |
em algum momento na primavera deste ano. | |
195 | |
00:17:35,100 --> 00:17:37,000 | |
espero que seja sensacional | |
195 | |
00:17:37,200 --> 00:17:39,200 | |
e hoje vou somente passar | |
por alguma coisas | |
195 | |
00:17:39,200 --> 00:17:41,300 | |
que estarão disponíveis. | |
195 | |
00:17:41,800 --> 00:17:44,500 | |
O nosso maior foco | |
195 | |
00:17:44,500 --> 00:17:47,300 | |
nesta versão | |
é qualidade e performance | |
195 | |
00:17:47,600 --> 00:17:50,200 | |
Nós viemos adicionando muitas | |
features no passado, | |
195 | |
00:17:51,300 --> 00:17:54,200 | |
e dessa vez quisemos apenas | |
195 | |
00:17:54,200 --> 00:17:55,900 | |
diminuir um pouco o ritmo | |
195 | |
00:17:55,900 --> 00:17:58,000 | |
e polir as coisas. Polir bastante. | |
195 | |
00:17:58,000 --> 00:18:00,700 | |
Não significa que não vão haver | |
features, claro | |
195 | |
00:18:00,700 --> 00:18:01,900 | |
nós também somos desenvolvedores | |
195 | |
00:18:01,900 --> 00:18:04,300 | |
adoramos criar features | |
195 | |
00:18:04,300 --> 00:18:06,000 | |
mas também há muito trabalho | |
relacionado a qualidade. | |
195 | |
00:18:06,600 --> 00:18:09,000 | |
Uma das coisas... olhem isso | |
195 | |
00:18:09,000 --> 00:18:10,200 | |
é um vídeo, espero que funcione... | |
195 | |
00:18:10,200 --> 00:18:12,500 | |
aqui, dois desenvolvedores | |
195 | |
00:18:12,500 --> 00:18:14,900 | |
estão trabalhando em suas IDEs | |
com diferentes versões do Kotlin | |
195 | |
00:18:15,700 --> 00:18:18,400 | |
e dá pra ver que a pessoa de cima | |
195 | |
00:18:18,400 --> 00:18:21,200 | |
é mais rápida, sabe por quê? | |
195 | |
00:18:22,200 --> 00:18:24,100 | |
conseguem adivinhar o que houve? | |
195 | |
00:18:24,300 --> 00:18:26,200 | |
dá pra ver que é muito mais rápido | |
195 | |
00:18:26,200 --> 00:18:28,100 | |
praticamente uma linha na frente | |
195 | |
00:18:28,500 --> 00:18:29,900 | |
sabe o que aconteceu aqui? | |
195 | |
00:18:29,900 --> 00:18:31,200 | |
é code completion | |
195 | |
00:18:31,200 --> 00:18:32,300 | |
ficou mais rápido. | |
195 | |
00:18:32,300 --> 00:18:34,800 | |
3x mais do que costumava ser | |
195 | |
00:18:35,800 --> 00:18:39,100 | |
é um trabalho brilhante do | |
nosso time de IDE | |
195 | |
00:18:39,100 --> 00:18:41,200 | |
e vamos continuar trabalhando nisso | |
195 | |
00:18:41,200 --> 00:18:44,600 | |
hoje temos cerca de 93% | |
dos nosso usuários | |
195 | |
00:18:44,600 --> 00:18:48,200 | |
obtendo sugesões em menos | |
de 500 milissegundos | |
195 | |
00:18:48,200 --> 00:18:49,500 | |
podemos melhorar isso também, | |
195 | |
00:18:49,500 --> 00:18:53,100 | |
e vamos trabalhar nesses 7% | |
195 | |
00:18:53,100 --> 00:18:54,200 | |
que ainda não chegaram lá | |
195 | |
00:18:54,200 --> 00:18:56,500 | |
mas já é uma melhora muito boa | |
195 | |
00:18:58,100 --> 00:19:02,400 | |
além disso, quando você usa | |
uma IDE com Kotlin e Gradle | |
195 | |
00:19:02,400 --> 00:19:04,900 | |
tem uma dor latente chamada | |
import, certo? | |
195 | |
00:19:04,900 --> 00:19:08,700 | |
você muda alguma coisa num | |
arquivo Gradle e... | |
195 | |
00:19:10,200 --> 00:19:11,500 | |
de agora em diante | |
195 | |
00:19:11,500 --> 00:19:16,800 | |
vai ser muito menos ... | |
dá pra ver nos números, certo? | |
195 | |
00:19:16,800 --> 00:19:20,000 | |
ficou muito mais rápido | |
195 | |
00:19:20,300 --> 00:19:24,100 | |
ficou 2,5x mais rápida no import, | |
195 | |
00:19:24,100 --> 00:19:25,500 | |
e vamos melhorar ainda mais | |
195 | |
00:19:25,800 --> 00:19:29,200 | |
além de usar muito menos memória, | |
cerca de 4x menos memória | |
195 | |
00:19:29,200 --> 00:19:33,500 | |
é uma mudança crítica | |
pra muita gente. | |
195 | |
00:19:33,500 --> 00:19:35,200 | |
a propósito, isso já foi lançado | |
195 | |
00:19:35,200 --> 00:19:37,200 | |
tenho da versão 1.4 como | |
um grande ciclo de release | |
195 | |
00:19:37,200 --> 00:19:40,000 | |
mas algumas dessas coisas | |
já foram lançadas | |
195 | |
00:19:40,000 --> 00:19:42,400 | |
porque queremos que vocês usem | |
o mais rápido possível. | |
195 | |
00:19:43,000 --> 00:19:47,200 | |
Além disso, a compilação no Kotlin Native | |
foi melhorada também | |
195 | |
00:19:47,600 --> 00:19:49,500 | |
em modo de desenvolvimento, | |
195 | |
00:19:49,500 --> 00:19:51,200 | |
agora estamos cacheando código | |
195 | |
00:19:51,200 --> 00:19:53,200 | |
e podemos reutilizar binários | |
de compilações anteriores | |
195 | |
00:19:53,200 --> 00:19:55,500 | |
então vocês já devem obter | |
195 | |
00:19:55,500 --> 00:19:57,200 | |
melhoras significantes nos | |
tempos de build | |
195 | |
00:19:57,200 --> 00:19:59,900 | |
e vamos continuar trabalhando para | |
tornar ainda mais rápido. | |
195 | |
00:20:00,200 --> 00:20:02,400 | |
mas entendemos que | |
195 | |
00:20:02,400 --> 00:20:04,500 | |
a maior dor na comunidade Kotlin | |
é a velocidade de build | |
195 | |
00:20:04,500 --> 00:20:06,500 | |
e um dos problemas aqui é que | |
195 | |
00:20:06,500 --> 00:20:08,500 | |
vocês continuam escrevendo código. | |
195 | |
00:20:09,200 --> 00:20:13,200 | |
melhoramos o compilador e | |
o toolchain, e todo o resto | |
195 | |
00:20:13,200 --> 00:20:15,300 | |
mas vocês escrevem mais código, | |
195 | |
00:20:15,900 --> 00:20:18,200 | |
e quanto maior o projeto, | |
mais lento é o build | |
195 | |
00:20:18,200 --> 00:20:19,300 | |
é assim que funciona. | |
195 | |
00:20:19,700 --> 00:20:24,200 | |
então, mesmo fazendo essas | |
melhoras incrementais | |
195 | |
00:20:24,200 --> 00:20:29,200 | |
entendemos que é preciso | |
uma medida mais radical | |
195 | |
00:20:29,200 --> 00:20:32,700 | |
e é por isso que eu tenho que confessar: | |
estamos trabalhando em um novo compilador. | |
195 | |
00:20:40,300 --> 00:20:41,300 | |
Sim, estamos | |
195 | |
00:20:42,300 --> 00:20:46,800 | |
queremos que o novo compilador seja | |
rápido e seja uniforme | |
195 | |
00:20:46,800 --> 00:20:48,200 | |
e também seja expansível | |
195 | |
00:20:48,200 --> 00:20:51,200 | |
quando digo rápido, digo que queremos | |
muito aumentar a velocidade do build de vocês | |
195 | |
00:20:51,200 --> 00:20:56,900 | |
não em algum percentual, mas... | |
Já vou mostrar o quanto | |
195 | |
00:20:56,900 --> 00:20:59,200 | |
e também queremos que seja uniforme | |
195 | |
00:20:59,200 --> 00:21:01,200 | |
para que funcione da mesma forma | |
em todas as plataformas | |
195 | |
00:21:01,200 --> 00:21:03,200 | |
e quando digo que seja expansível | |
195 | |
00:21:03,200 --> 00:21:06,000 | |
queremos que possamos | |
criar um plugin | |
195 | |
00:21:06,000 --> 00:21:07,100 | |
que funcione me todas as | |
plataformas também. | |
195 | |
00:21:07,400 --> 00:21:10,200 | |
Algumas partes desse compilador | |
vão estar na versão 1.4 | |
195 | |
00:21:10,200 --> 00:21:11,800 | |
algumas outras virão depois | |
195 | |
00:21:11,800 --> 00:21:15,900 | |
vou tentar a apontar esses detalhes | |
durante essa palestra. | |
195 | |
00:21:17,000 --> 00:21:19,600 | |
Vai ter bastante trabalho, | |
mas vai ser muito interessante. | |
195 | |
00:21:20,200 --> 00:21:24,200 | |
A parte mais interessante do | |
novo compilador | |
195 | |
00:21:24,200 --> 00:21:25,700 | |
acho que é a velocidade | |
195 | |
00:21:25,700 --> 00:21:29,000 | |
e, hoje, o maior gargalo é | |
00:21:29,000 --> 00:21:30,800 | |
algo que chamamos frontend | |
do compilador, | |
195 | |
00:21:30,800 --> 00:21:32,400 | |
é a parte que olha o seu código, | |
195 | |
00:21:32,400 --> 00:21:35,100 | |
entende ele, analiza os tipos, etc. | |
195 | |
00:21:36,200 --> 00:21:37,900 | |
então, antes de qualquer | |
geração de código, | |
195 | |
00:21:38,200 --> 00:21:39,900 | |
você tem esse frontend | |
195 | |
00:21:39,900 --> 00:21:42,800 | |
e isso é algo que | |
começamos a trabalhar | |
195 | |
00:21:43,000 --> 00:21:46,200 | |
não está pronto, não vai | |
estar na versão 1.4 | |
195 | |
00:21:46,200 --> 00:21:51,600 | |
mas já é cerca de 4,5x mais | |
rápido que o antigo. | |
195 | |
00:21:51,900 --> 00:21:56,700 | |
o que significa muito se você | |
tem um build demorado, | |
195 | |
00:21:58,100 --> 00:21:59,800 | |
ele vai demorar bem menos. | |
195 | |
00:22:00,700 --> 00:22:02,500 | |
Isso não está finalizado, | |
195 | |
00:22:02,500 --> 00:22:05,600 | |
então as medições não são perfeitas | |
195 | |
00:22:05,600 --> 00:22:08,900 | |
já que vamos adicionar mais | |
funcionalidade ao subsistema | |
195 | |
00:22:08,900 --> 00:22:11,500 | |
e ele pode ficar um pouco mais lento, | |
mas vamos também otimizá-lo. | |
195 | |
00:22:11,500 --> 00:22:14,700 | |
então estamos de fato mirando | |
em um fator de 5 e alguma coisa | |
195 | |
00:22:14,700 --> 00:22:16,400 | |
mas, por enquanto, é animador | |
195 | |
00:22:16,600 --> 00:22:19,400 | |
o que temos hoje já faz boa | |
parte do trabalho | |
195 | |
00:22:19,400 --> 00:22:21,700 | |
então acreditamos que ele | |
pode ser realmente rápido. | |
195 | |
00:22:23,200 --> 00:22:28,800 | |
Outra coisa que vem junto do | |
frontend do novo compilador | |
195 | |
00:22:28,800 --> 00:22:29,900 | |
é a nova inferência de tipos | |
195 | |
00:22:29,900 --> 00:22:33,700 | |
e o novo motor de inferência | |
que vamos lançar na 1.4 | |
195 | |
00:22:33,700 --> 00:22:35,900 | |
e não estamos falando de performance, | |
195 | |
00:22:35,900 --> 00:22:38,200 | |
é mais sobre | |
195 | |
00:22:38,200 --> 00:22:39,700 | |
os bugs problemáticos que | |
não conseguimos | |
195 | |
00:22:39,700 --> 00:22:41,700 | |
corrigir na implementação anterior | |
195 | |
00:22:41,800 --> 00:22:43,100 | |
porque ela não era flexível o suficiente. | |
195 | |
00:22:43,200 --> 00:22:46,500 | |
Então vamos lançar com várias | |
correções de bugs. | |
195 | |
00:22:46,600 --> 00:22:48,500 | |
Esse motor possibilita novas | |
features na linguagem, | |
195 | |
00:22:48,500 --> 00:22:51,200 | |
e uma delas vou mostrar mais | |
a frente nessa palestra | |
195 | |
00:22:51,200 --> 00:22:54,400 | |
e, claro, ele pode ser evoluído | |
195 | |
00:22:54,400 --> 00:22:56,200 | |
e estendido depois. | |
195 | |
00:22:56,200 --> 00:22:58,900 | |
então, vai possibilitar ainda mais | |
features na linguagem no futuro. | |
195 | |
00:22:59,600 --> 00:23:04,200 | |
Outra parte do novo compilador | |
é o backend unificado. | |
195 | |
00:23:04,700 --> 00:23:08,500 | |
Kotlin tem 3 backends, | |
195 | |
00:23:08,500 --> 00:23:10,800 | |
JVM, JS e Kotlin Native | |
195 | |
00:23:10,900 --> 00:23:14,600 | |
e os três fazem o mesmo trabalho, | |
195 | |
00:23:14,600 --> 00:23:20,400 | |
convertem a representação do frontend para | |
um binário de alguma plataforma. | |
195 | |
00:23:22,500 --> 00:23:23,500 | |
Historicamente, | |
195 | |
00:23:23,500 --> 00:23:28,100 | |
os backends da JVM e JS foram | |
escritos completamente separados | |
195 | |
00:23:28,100 --> 00:23:29,500 | |
então eles não compartilham | |
muito código, | |
195 | |
00:23:29,800 --> 00:23:32,100 | |
mas quando começamos com | |
o Kotlin Native, | |
195 | |
00:23:32,100 --> 00:23:34,300 | |
começamos a construir essa | |
infra-estrutura | |
195 | |
00:23:34,300 --> 00:23:35,500 | |
que iria unificar todo mundo | |
195 | |
00:23:35,600 --> 00:23:37,800 | |
que é baseada numa | |
representação interna | |
195 | |
00:23:37,800 --> 00:23:39,200 | |
chamada 'Backend IR'. | |
195 | |
00:23:39,700 --> 00:23:42,600 | |
Agora estamos migrando JVM e JS | |
195 | |
00:23:42,600 --> 00:23:44,200 | |
para essa nova infra-estrutura | |
195 | |
00:23:44,200 --> 00:23:47,100 | |
e todos os 3 backends serão similares, | |
195 | |
00:23:47,100 --> 00:23:48,600 | |
e vão compartilhar muito código. | |
195 | |
00:23:48,900 --> 00:23:50,800 | |
E se quisermos criar | |
uma nova feature | |
195 | |
00:23:50,800 --> 00:23:52,600 | |
não precisamos fazer 3 vezes, | |
apenas uma | |
195 | |
00:23:52,600 --> 00:23:54,100 | |
e se corrigimos um bug, | |
195 | |
00:23:54,100 --> 00:23:56,400 | |
ele é corrigido em todo | |
lugar de uma só vez. | |
195 | |
00:23:57,000 --> 00:23:58,800 | |
Isso vai vir na versão 1.4 | |
195 | |
00:23:58,800 --> 00:24:01,600 | |
Não vamos migrar todos | |
os usuários de uma vez | |
195 | |
00:24:01,600 --> 00:24:03,600 | |
então deve haver um | |
período experimental | |
195 | |
00:24:03,600 --> 00:24:06,600 | |
Mas ainda assim, já está logo ali. | |
195 | |
00:24:08,200 --> 00:24:09,800 | |
Algo interessante | |
00:24:11,100 --> 00:24:15,200 | |
que esse novo backend | |
unificado possibilita | |
195 | |
00:24:15,200 --> 00:24:17,400 | |
é a criação de plugins para o compilador | |
195 | |
00:24:17,900 --> 00:24:21,400 | |
onde você pode escrever algo | |
195 | |
00:24:21,400 --> 00:24:24,800 | |
para melhorar ou estender | |
a funcionalidade do Kotlin | |
195 | |
00:24:24,800 --> 00:24:28,600 | |
e mesmo não lançando APIs | |
para isso na 1.4 | |
195 | |
00:24:28,600 --> 00:24:30,100 | |
como sempre, | |
195 | |
00:24:30,100 --> 00:24:33,700 | |
já existem pessoas dependendo | |
dessa API. | |
195 | |
00:24:35,200 --> 00:24:36,400 | |
Claro, são pessoas amigas, | |
195 | |
00:24:36,400 --> 00:24:37,700 | |
então estamos as ajudando | |
195 | |
00:24:40,200 --> 00:24:41,500 | |
Pessoas no Google | |
195 | |
00:24:41,500 --> 00:24:43,700 | |
estão trabalhando em algo | |
chamado Jetpack Compose | |
195 | |
00:24:43,700 --> 00:24:45,500 | |
que é um framework de UI maravilhoso, | |
195 | |
00:24:46,300 --> 00:24:50,200 | |
e estão criando um plugin | |
para o backend | |
195 | |
00:24:50,200 --> 00:24:53,200 | |
que é o coração da tecnologia | |
do Jetpack Compose | |
195 | |
00:24:53,200 --> 00:24:54,500 | |
Além disso, | |
195 | |
00:24:54,500 --> 00:24:55,800 | |
nossos amigos no Facebook | |
195 | |
00:24:55,800 --> 00:24:58,100 | |
estão fazendo algo muito interessante | |
195 | |
00:24:58,100 --> 00:24:59,800 | |
fazendo do Kotlin | |
195 | |
00:24:59,800 --> 00:25:03,400 | |
uma linguagem excelente para | |
Machine Learning e AI, | |
195 | |
00:25:03,700 --> 00:25:06,400 | |
criando extensões para a linguagem | |
195 | |
00:25:06,400 --> 00:25:09,500 | |
chamadas de 'diferenciação automatizada'. | |
195 | |
00:25:09,900 --> 00:25:11,500 | |
então Leland e Eric | |
195 | |
00:25:11,500 --> 00:25:13,700 | |
vão apresentar suas palestras sobre | |
195 | |
00:25:13,700 --> 00:25:16,200 | |
essas iniciativas aqui na KotlinConf | |
195 | |
00:25:16,200 --> 00:25:19,300 | |
então se você está na crista da onda | |
195 | |
00:25:19,300 --> 00:25:20,700 | |
no ecossistema Kotlin, | |
195 | |
00:25:20,700 --> 00:25:22,600 | |
recomendo e muito assistir | |
essas palestras. | |
195 | |
00:25:24,200 --> 00:25:27,200 | |
Adoraria abrir para perguntar agora, | |
mas não vou | |
195 | |
00:25:28,800 --> 00:25:32,200 | |
Outro ponto sobre o novo compilador | |
é o formato portável. | |
195 | |
00:25:32,200 --> 00:25:36,200 | |
Hoje estamos disponíveis | |
em muitas plataformas | |
195 | |
00:25:36,200 --> 00:25:40,200 | |
precisamos unificar nosso formato | |
de distribuição para bibliotecas | |
195 | |
00:25:40,200 --> 00:25:43,700 | |
então, KLIB é o nome desse | |
novo formato. | |
195 | |
00:25:43,700 --> 00:25:45,500 | |
Ele vai unificar todas as plataformas, | |
195 | |
00:25:45,500 --> 00:25:49,000 | |
ele contém uma representação de | |
alto-nível de um programa Kotlin | |
195 | |
00:25:49,000 --> 00:25:54,500 | |
um tipo de bytecode como o do Java, | |
ou qualquer outro bytecode | |
195 | |
00:25:54,500 --> 00:25:57,500 | |
e isso significa que essa | |
representação pode ser lida | |
195 | |
00:25:57,500 --> 00:25:59,500 | |
você pode analisar, | |
você pode transformá-la | |
195 | |
00:25:59,500 --> 00:26:02,300 | |
é o início de uma representação | |
devidamente analisável | |
195 | |
00:26:02,300 --> 00:26:04,500 | |
de um programa Kotlin compilado | |
195 | |
00:26:04,500 --> 00:26:07,300 | |
Vamos começar a experimentar | |
esse formato na 1.4, | |
195 | |
00:26:07,300 --> 00:26:09,500 | |
e esperamos estabilizá-lo | |
ao longo do tempo | |
195 | |
00:26:11,200 --> 00:26:12,500 | |
OK, este é o novo compilador. | |
195 | |
00:26:13,000 --> 00:26:16,500 | |
Vamos agora olhar outras áreas. | |
195 | |
00:26:16,500 --> 00:26:18,500 | |
Venho falando muito sobre | |
multiplataforma | |
195 | |
00:26:19,000 --> 00:26:23,500 | |
já que é algo muito interessante | |
sobre Kotlin | |
195 | |
00:26:23,500 --> 00:26:26,500 | |
queremos que as pessoas possam | |
compartilhar código | |
195 | |
00:26:26,500 --> 00:26:29,200 | |
e habilidades entre plataformas | |
195 | |
00:26:29,200 --> 00:26:31,500 | |
então se você escreve algo em Kotlin | |
195 | |
00:26:31,500 --> 00:26:33,500 | |
você pode usar esse código | |
em qualquer lugar | |
195 | |
00:26:33,500 --> 00:26:35,500 | |
e se você adquire alguma expertise | |
195 | |
00:26:35,500 --> 00:26:36,500 | |
algumas habilidades em Kotlin, | |
195 | |
00:26:36,500 --> 00:26:38,500 | |
você pode usá-la em outra plataforma | |
195 | |
00:26:38,500 --> 00:26:44,500 | |
mas se você quer fazer algo | |
específico da plataforma | |
195 | |
00:26:44,500 --> 00:26:49,100 | |
que não pode ser facilmente | |
feito em outra plataforma | |
195 | |
00:26:49,100 --> 00:26:51,900 | |
algo legal que só essa | |
plataforma pode fazer | |
195 | |
00:26:51,900 --> 00:26:54,500 | |
você pode se apoiar | |
nas bases da plataforma | |
195 | |
00:26:54,500 --> 00:26:58,500 | |
é compartilhamento de código, | |
compartilhamento de conhecimento | |
195 | |
00:26:58,500 --> 00:27:01,500 | |
além de 100% de acesso a plataforma | |
195 | |
00:27:01,500 --> 00:27:03,500 | |
é assim que estamos tentando fazer | |
195 | |
00:27:03,500 --> 00:27:06,500 | |
este é o diagrama | |
195 | |
00:27:06,500 --> 00:27:08,500 | |
de como o Kotlin | |
multiplataforma funciona | |
195 | |
00:27:08,500 --> 00:27:11,500 | |
no centro temos o Kotlin comum | |
195 | |
00:27:11,500 --> 00:27:13,500 | |
que é a linguagem, as | |
bibliotecas core | |
195 | |
00:27:13,500 --> 00:27:15,500 | |
e o toolchain básico | |
195 | |
00:27:15,500 --> 00:27:18,100 | |
lá você escreve código | |
apenas com Kotlin | |
195 | |
00:27:18,100 --> 00:27:19,900 | |
e funciona em qualquer lugar | |
195 | |
00:27:20,500 --> 00:27:24,100 | |
mas sempre que quiser interagir | |
com a plataforma | |
195 | |
00:27:24,100 --> 00:27:26,500 | |
você opta por uma versão | |
específica do Kotlin | |
195 | |
00:27:26,500 --> 00:27:29,500 | |
extensões para a linguagem, | |
bibliotecas específicas, etc. | |
195 | |
00:27:29,500 --> 00:27:30,900 | |
seja Kotlin JVM, Kotlin JS | |
195 | |
00:27:30,900 --> 00:27:33,500 | |
ou o backend baseado em LLVM | |
do Kotlin Native | |
195 | |
00:27:33,500 --> 00:27:35,500 | |
todos te dão poder | |
195 | |
00:27:35,500 --> 00:27:37,500 | |
para interoperar com uma plataforma | |
195 | |
00:27:37,500 --> 00:27:39,500 | |
e através dessas extensões, | |
195 | |
00:27:39,500 --> 00:27:41,500 | |
você pode se comunicar com | |
código nativo da plataforma | |
195 | |
00:27:41,500 --> 00:27:43,500 | |
então, se existe código JVM lá, | |
você pode acessá-lo | |
195 | |
00:27:43,500 --> 00:27:45,900 | |
então, se existe código JS lá, | |
você pode acessá-lo | |
195 | |
00:27:45,900 --> 00:27:48,500 | |
e qualquer tipo de código nativo, | |
você pode acessar também | |
195 | |
00:27:48,500 --> 00:27:53,500 | |
o que leva a um monte de plataformas que | |
você pode se comunicar | |
195 | |
00:27:53,500 --> 00:27:58,500 | |
é qualquer coisa Java, é o navegador, | |
é NodeJS, é Android, claro | |
195 | |
00:27:58,500 --> 00:28:00,500 | |
e todas as plataformas nativas como | |
195 | |
00:28:00,500 --> 00:28:04,900 | |
Windows, Linux, Mac, | |
microcontroladores, você é quem sabe | |
195 | |
00:28:05,500 --> 00:28:08,500 | |
é essa a tecnologia que | |
estamos fazendo | |
195 | |
00:28:08,500 --> 00:28:12,500 | |
e algumas notícias interessantes | |
sobre ela | |
195 | |
00:28:14,900 --> 00:28:17,500 | |
primeiro, estamos expandindo o | |
conjunto de bibliotecas core | |
195 | |
00:28:19,100 --> 00:28:22,900 | |
existe, claro, a biblioteca padrão | |
comum para todas as plataformas | |
195 | |
00:28:22,900 --> 00:28:27,900 | |
temos strings, coleções, todo o | |
essencial está lá | |
195 | |
00:28:27,900 --> 00:28:29,500 | |
ah, e agora temos durações também | |
195 | |
00:28:29,500 --> 00:28:33,500 | |
e coroutines, coroutines | |
são sensacionais | |
195 | |
00:28:33,500 --> 00:28:35,500 | |
também funcionam em qualquer | |
plataforma | |
195 | |
00:28:35,500 --> 00:28:39,500 | |
serialization é algo que esperamos | |
estabilizar no Kotlin 1.4 | |
195 | |
00:28:39,500 --> 00:28:44,500 | |
I/O e clientes HTTP também estão | |
ali para todas as plataformas | |
195 | |
00:28:44,500 --> 00:28:48,500 | |
e definitivamente estamos adicionado | |
DateTime, porque todo mundo precisa | |
195 | |
00:28:48,500 --> 00:28:51,500 | |
e falando em bibliotecas | |
195 | |
00:28:51,500 --> 00:28:55,500 | |
vão haver duas palestras muito interessantes | |
dos meus colegas de equipe | |
195 | |
00:28:55,500 --> 00:28:58,500 | |
Leonid vai falar sobre o design | |
da Kotlin Serialization | |
195 | |
00:28:58,500 --> 00:29:03,500 | |
que é algo como uma linha tênue entre | |
uma biblioteca e uma feature da linguagem | |
195 | |
00:29:03,500 --> 00:29:04,500 | |
o que é muito legal | |
195 | |
00:29:04,500 --> 00:29:08,500 | |
e Roman vai falar de algo chamado Flow | |
195 | |
00:29:08,500 --> 00:29:12,500 | |
que é a implementação do Kotlin | |
para os Reactive Streams | |
195 | |
00:29:12,500 --> 00:29:17,500 | |
que te ajuda a manipular fluxos | |
de dados usando Coroutines | |
195 | |
00:29:17,500 --> 00:29:20,500 | |
e é muito interessante, | |
195 | |
00:29:20,500 --> 00:29:22,500 | |
porque se você olhar em | |
alguns benchmarks, | |
195 | |
00:29:22,500 --> 00:29:25,500 | |
Kotlin Flow é não só mais conveniente | |
195 | |
00:29:25,500 --> 00:29:27,300 | |
como também muito mais rápido | |
195 | |
00:29:27,300 --> 00:29:31,500 | |
que algumas das implentações existentes | |
dos Reactive Streams | |
195 | |
00:29:31,500 --> 00:29:35,500 | |
então você acaba não só | |
com código mais idiomático | |
195 | |
00:29:35,500 --> 00:29:37,500 | |
mas também mais velocidade | |
ao adotar o Flow | |
195 | |
00:29:37,500 --> 00:29:38,500 | |
Espero que gostem | |
195 | |
00:29:40,300 --> 00:29:43,500 | |
E então, bibliotecas | |
195 | |
00:29:43,500 --> 00:29:46,900 | |
Bibliotecas talvez sejam a fonte de | |
energia do ecossistema Kotlin | |
195 | |
00:29:49,100 --> 00:29:52,500 | |
então nos preocupamos com as | |
pessoas escrevendo as bibliotecas | |
195 | |
00:29:52,500 --> 00:29:56,900 | |
por isso estamos adicionando | |
algumas ferramentas pra ajudá-las | |
195 | |
00:29:56,900 --> 00:30:00,500 | |
Vai haver um modo para autores | |
de bibliotecas | |
195 | |
00:30:00,500 --> 00:30:03,700 | |
que vai auxiliar com algumas checagens, | |
195 | |
00:30:03,700 --> 00:30:08,500 | |
para fazer suas APIs realmente | |
robustas e estáveis ao longo do tempo | |
195 | |
00:30:08,500 --> 00:30:12,500 | |
vendo onde é necessária uma visitiblidade explícita, | |
ou tipos públicos são requeridos | |
195 | |
00:30:12,500 --> 00:30:17,500 | |
também estamos trabalhando no Dokka, | |
a ferramenta de geração de documentação | |
195 | |
00:30:17,500 --> 00:30:23,500 | |
isso é um esboço de como o design | |
de documentação vai ser | |
195 | |
00:30:23,500 --> 00:30:27,500 | |
e notem no canto superior direito, | |
195 | |
00:30:27,500 --> 00:30:29,500 | |
tem várias plataformas | |
195 | |
00:30:29,500 --> 00:30:32,500 | |
Dokka funciona em bibliotecas multiplataforma e | |
também pra uma plataformas somente. | |
195 | |
00:30:34,100 --> 00:30:37,500 | |
Falando de multiplaforma | |
195 | |
00:30:37,500 --> 00:30:40,500 | |
estamos investindo no caso do mobile | |
195 | |
00:30:40,500 --> 00:30:43,500 | |
Tenho falado sobre isso, iOS e Android | |
195 | |
00:30:43,500 --> 00:30:47,500 | |
e vai haver uma palestra sobre | |
como as coisas funcionam ali | |
195 | |
00:30:47,500 --> 00:30:49,500 | |
e tem havido melhorias | |
muito interessantes | |
195 | |
00:30:49,500 --> 00:30:53,500 | |
é uma pena que não posso | |
falar delas aqui no keynote | |
195 | |
00:30:53,500 --> 00:30:54,500 | |
porque é muito empolgante | |
195 | |
00:30:54,500 --> 00:30:59,500 | |
mas Dmitry e Lilia vão falar | |
delas na sua palestra. | |
195 | |
00:30:59,500 --> 00:31:02,500 | |
Um anúncio que gostaria de fazer | |
sobre multiplaforma para mobile | |
195 | |
00:31:02,500 --> 00:31:08,500 | |
é que vamos lhes fornecer a possibilidade | |
de rodar, debugar | |
195 | |
00:31:08,500 --> 00:31:12,500 | |
e testar seus apps Kotlin iOS | |
no Android Studio | |
195 | |
00:31:12,500 --> 00:31:15,500 | |
vai ser feito através de um | |
plugin em separado | |
195 | |
00:31:15,500 --> 00:31:21,500 | |
um plugin de código fechado, porque usa partes | |
proprietárias do IntelliJ | |
195 | |
00:31:21,500 --> 00:31:28,500 | |
mas você poderá abrir seu código Kotlin | |
escrito para iOS no Android Studio | |
195 | |
00:31:28,500 --> 00:31:33,500 | |
e rodar num device, em um simulador, | |
debugar, testar, etc. | |
195 | |
00:31:33,500 --> 00:31:34,500 | |
vai sair no próximo ano | |
195 | |
00:31:34,500 --> 00:31:37,500 | |
e, apenas para alinhas as expectativas, | |
195 | |
00:31:37,500 --> 00:31:39,500 | |
isso não vai substituir o Xcode | |
195 | |
00:31:39,500 --> 00:31:43,500 | |
para algumas coisas você ainda | |
vai precisar entrar no Xcode | |
195 | |
00:31:43,500 --> 00:31:47,500 | |
mas para o ciclo normal de desenvolvimento, | |
será apenas uma IDE. | |
195 | |
00:31:47,500 --> 00:31:52,500 | |
Além disso, não estamos tentando adicionar | |
todas as linguagens a uma IDE | |
195 | |
00:31:52,500 --> 00:31:54,500 | |
mas é um projeto interessante, | |
é um projeto separado | |
195 | |
00:31:54,500 --> 00:31:58,500 | |
e aqui estou falando somente de Kotlin | |
195 | |
00:31:58,500 --> 00:32:00,500 | |
não haverá suporte para linguagens | |
como Objective-C ou Swift | |
195 | |
00:32:00,500 --> 00:32:04,500 | |
mas você ainda pode fazer | |
tudo em Kotlin, certo? | |
195 | |
00:32:05,500 --> 00:32:10,500 | |
então espero que gostem e | |
acompanhem esse projeto | |
195 | |
00:32:10,500 --> 00:32:14,500 | |
Estamos, claro, trabalhando | |
no runtime do Kotlin Native | |
195 | |
00:32:14,500 --> 00:32:17,500 | |
que é o que possibilita | |
Kotlin de rodar no iOS | |
195 | |
00:32:17,500 --> 00:32:20,500 | |
a performance em runtime | |
vem sendo melhorada gradualmente | |
195 | |
00:32:20,500 --> 00:32:22,500 | |
e este é o resultado atual | |
195 | |
00:32:22,500 --> 00:32:26,500 | |
na verdade, apps em Kotlin já | |
são rápidos o suficiente no iOS | |
195 | |
00:32:26,500 --> 00:32:28,500 | |
mas estamos melhorando ao | |
longo do tempo | |
195 | |
00:32:30,900 --> 00:32:35,500 | |
outra novidade é que agora | |
não é somente iOS | |
195 | |
00:32:35,500 --> 00:32:38,500 | |
é TV OS e também watch OS | |
195 | |
00:32:38,500 --> 00:32:43,500 | |
Você pode escrever seu app e | |
empacotá-lo em todos os tipos de device | |
195 | |
00:32:44,200 --> 00:32:47,500 | |
para fins de demonstrar isso | |
195 | |
00:32:47,500 --> 00:32:51,500 | |
aqui temos um app que você | |
pode experimentar na KotlinConf | |
195 | |
00:32:51,500 --> 00:32:57,500 | |
é chamado de Kotlin Locator, procure | |
por ele no Android ou App Store | |
195 | |
00:32:57,500 --> 00:33:04,500 | |
ou caso queira, visite o estande da | |
JetBrains aqui na sala de exibições | |
195 | |
00:33:04,500 --> 00:33:08,500 | |
Com esse app você pode | |
jogar um jogo interessante | |
195 | |
00:33:08,500 --> 00:33:10,500 | |
chamado de Kotlin Locator | |
195 | |
00:33:10,500 --> 00:33:13,500 | |
é uma caça ao tesouro ao | |
redor aqui do espaço | |
195 | |
00:33:13,500 --> 00:33:18,500 | |
você vai ver que roda inclusive no relógio | |
195 | |
00:33:18,500 --> 00:33:27,500 | |
é feito todo em Kotlin, então dá pra ver quantas | |
coisas dá pra se fazer com Kotlin hoje | |
195 | |
00:33:27,500 --> 00:33:35,500 | |
e, claro, trabalhar em algo tão grande é | |
entrar na nova era do desenvolvimento mobile | |
195 | |
00:33:35,500 --> 00:33:39,500 | |
nós não conseguiríamos sem a | |
ajuda de uma comunidade maior | |
195 | |
00:33:39,500 --> 00:33:4 1,500 | |
então vou destacar duas palestras | |
195 | |
00:33:41,500 --> 00:33:46,500 | |
existem muitas outras palestras sobre | |
multiplaforma aqui na KotlinConf | |
195 | |
00:33:46,500 --> 00:33:48,700 | |
mas essas duas eu queria | |
realmente detacar aqui | |
195 | |
00:33:50,500 --> 00:33:54,100 | |
Alexandr vai falar sobre Kotlin | |
Multiplatforma em Ação | |
195 | |
00:33:54,100 --> 00:33:57,500 | |
e vai mostrar o preview de uma | |
biblioteca muito interessante | |
195 | |
00:33:57,500 --> 00:34:00,500 | |
que permite compartilhar UI | |
entre Android e iOS | |
195 | |
00:34:00,500 --> 00:34:06,500 | |
e também o Kevin vai dar insights sobre modelos | |
de concorrência para Kotlin no iOS | |
195 | |
00:34:06,500 --> 00:34:11,500 | |
o que é um tópico muito bom se você mexe | |
com algo relevante a nível de hardware | |
195 | |
00:34:13,500 --> 00:34:17,900 | |
mas multiplaforma não é só mobile, certo? | |
195 | |
00:34:17,900 --> 00:34:19,500 | |
multiplaforma está em todo canto, | |
195 | |
00:34:19,500 --> 00:34:24,500 | |
e claro, a web é um dos maiores casos de uso, | |
o mundo roda em cima da web | |
195 | |
00:34:24,900 --> 00:34:30,500 | |
e vou mostrar um pouco do que estamos | |
adicionando ao Kotlin JS no navegador | |
195 | |
00:34:30,500 --> 00:34:32,500 | |
nós agora temos a experiência | |
de quick reload, | |
195 | |
00:34:32,500 --> 00:34:36,500 | |
que você provavelmente já viu | |
no mundo JavaScript | |
195 | |
00:34:36,500 --> 00:34:39,300 | |
então você pode só mudar o código | |
195 | |
00:34:39,300 --> 00:34:41,500 | |
e o navegador vai recarregar | |
quase instantaneamente | |
195 | |
00:34:41,500 --> 00:34:47,500 | |
vamos melhorar essa experiência, | |
mas espero que seja divertido, | |
195 | |
00:34:47,500 --> 00:34:53,500 | |
você pode mudar de "hey Kotlin" para | |
"hey KotlinConf", "hey World", etc. | |
195 | |
00:34:53,500 --> 00:34:55,500 | |
e a aplicação recarrega... é muito legal | |
195 | |
00:34:56,900 --> 00:35:00,900 | |
estamos também melhorando o compilador JS, | |
195 | |
00:35:00,900 --> 00:35:05,500 | |
que com o novo backend pode | |
gerar binários muito menores | |
195 | |
00:35:05,500 --> 00:35:14,500 | |
então agora vamos de 700k para | |
400k o que faz ficar muito menor | |
195 | |
00:35:14,500 --> 00:35:16,900 | |
e o app otimizado pode ser | |
realmente muito pequeno | |
195 | |
00:35:16,900 --> 00:35:21,500 | |
esse é o benchmark do Kotlinx.Coroutines, | |
que é uma biblioteca substancial | |
195 | |
00:35:21,500 --> 00:35:24,800 | |
é bastante código e pode ser | |
comprimido para até 45kb | |
195 | |
00:35:26,500 --> 00:35:28,500 | |
além disso, estamos trabalhando na | |
interoperabilidade com JavaScript | |
195 | |
00:35:28,500 --> 00:35:31,500 | |
e sabemos que o mundo de | |
JavaScript é gigantesco | |
195 | |
00:35:31,500 --> 00:35:35,300 | |
estamos adicionando coisas, uma a uma, | |
195 | |
00:35:35,300 --> 00:35:40,500 | |
o novo ecossistema JS vai | |
suportar módulos ES | |
195 | |
00:35:40,500 --> 00:35:42,500 | |
que é o novo padrão | |
195 | |
00:35:42,500 --> 00:35:44,500 | |
e também estamos introduzindo o Dukat, | |
195 | |
00:35:44,500 --> 00:35:48,500 | |
que conecta os tipos do Kotlin | |
com os tipos do Typescript | |
195 | |
00:35:48,500 --> 00:35:51,500 | |
então, usando o Dukat, você | |
pode simplesmente | |
195 | |
00:35:51,500 --> 00:35:54,500 | |
adicionar uma dependência NPM ao | |
seu código JS atual | |
195 | |
00:35:54,500 --> 00:36:00,500 | |
e ele vai pegar os arquivos DTS | |
e converter para Kotlin | |
195 | |
00:36:00,500 --> 00:36:05,500 | |
então você tem acesso transparente aos tipos | |
do Typescript através dos tipos do Kotlin | |
195 | |
00:36:06,500 --> 00:36:10,500 | |
Sebastian vai dar mais detalhes | |
sobre isso aqui na KotlinConf | |
195 | |
00:36:10,500 --> 00:36:15,500 | |
outra coisa que gostaria de falar | |
relacionado a web, | |
195 | |
00:36:16,800 --> 00:36:19,500 | |
quem conhece WebAssembly? | |
195 | |
00:36:20,100 --> 00:36:22,500 | |
ok pessoal, vocês devem se informar! | |
195 | |
00:36:22,500 --> 00:36:25,500 | |
quem aqui já roda código | |
em WebAssembly? | |
195 | |
00:36:28,500 --> 00:36:31,400 | |
Posso dizer que talvez isso seja o futuro | |
195 | |
00:36:31,400 --> 00:36:35,500 | |
na verdade, WebAssembly | |
195 | |
00:36:35,500 --> 00:36:40,500 | |
é um novo padrão web suportado por | |
todos os principais navegadores | |
195 | |
00:36:40,500 --> 00:36:44,500 | |
onde eles basicamente expõem uma | |
máquina virtual aos usuários do navegador | |
195 | |
00:36:44,500 --> 00:36:48,500 | |
e não é somente código JavaScript, é | |
também uma máquina virtual especial | |
195 | |
00:36:48,500 --> 00:36:51,500 | |
que você pode compilar e rodar | |
qualquer tipo de código | |
195 | |
00:36:51,500 --> 00:36:54,500 | |
e, claro, Kotlin gostaria de rodar lá | |
195 | |
00:36:54,500 --> 00:36:58,500 | |
e, de fato, temos um protótipo | |
funcional para WebAssembly | |
195 | |
00:36:58,500 --> 00:37:02,500 | |
e mostramos ele, acho, uns 2 anos atrás | |
195 | |
00:37:02,500 --> 00:37:04,500 | |
mas tem um desafio, | |
195 | |
00:37:04,500 --> 00:37:08,500 | |
atualmente, o WebAssembly | |
que existe em todos os navegadores | |
195 | |
00:37:08,500 --> 00:37:11,500 | |
tem um runtime não-gerenciado, | |
195 | |
00:37:11,500 --> 00:37:13,500 | |
o que significa que você precisa | |
gerenciar sua memória manualmente | |
195 | |
00:37:13,500 --> 00:37:17,500 | |
não tem garbage collection, | |
o que é interessante | |
195 | |
00:37:17,500 --> 00:37:22,100 | |
então, o que você pode fazer é compilar o | |
Kotlin com Kotlin Native, | |
195 | |
00:37:22,100 --> 00:37:23,500 | |
e ele adiciona garbage collection | |
195 | |
00:37:23,500 --> 00:37:26,500 | |
agora, você está rodando seu | |
próprio garbage collection | |
195 | |
00:37:26,500 --> 00:37:29,500 | |
em um runtime isolado em um navegador | |
195 | |
00:37:29,500 --> 00:37:33,500 | |
com um monte de garbage | |
collection em volta dele | |
195 | |
00:37:33,500 --> 00:37:34,900 | |
não é o melhor caso, | |
195 | |
00:37:34,900 --> 00:37:40,500 | |
então o WebAssembly atual funciona | |
melhor com linguagens como C++ e Rust | |
195 | |
00:37:40,500 --> 00:37:43,500 | |
onde você pode gerenciar sua memória | |
manualmente e é assim que ele funciona | |
195 | |
00:37:43,500 --> 00:37:45,800 | |
mas a comunidade do WebAssembly | |
195 | |
00:37:45,800 --> 00:37:52,500 | |
está avaliando adicionar GC ao | |
runtime do WebAssembly | |
195 | |
00:37:52,500 --> 00:37:56,500 | |
e então, linguagens como Kotlin devem | |
realmente brilhar, | |
195 | |
00:37:56,500 --> 00:37:59,500 | |
então estamos conversando com os | |
desenvolvimento do WebAssembly | |
195 | |
00:37:59,500 --> 00:38:02,500 | |
para ter certeza que o Kotlin será | |
bem-vindo nesse ecossistema | |
195 | |
00:38:03,100 --> 00:38:07,500 | |
é um trabalho bem preliminar, | |
temos protótipos bem pequenos | |
195 | |
00:38:07,500 --> 00:38:09,500 | |
mas ainda assim é bem empolgante | |
195 | |
00:38:09,800 --> 00:38:15,500 | |
certo, acho que terminei | |
de falar sobre multiplaforma | |
195 | |
00:38:15,500 --> 00:38:17,500 | |
mas ainda não é tudo. | |
195 | |
00:38:17,500 --> 00:38:20,100 | |
tem mais uma coisa | |
195 | |
00:38:20,100 --> 00:38:25,500 | |
mesmo além do mundo do desenvolvimento de | |
software, nem todo mundo é programador | |
195 | |
00:38:25,500 --> 00:38:30,500 | |
mas muitas outras pessoas, além de desenvolvedores | |
de software, escrevem código | |
195 | |
00:38:30,500 --> 00:38:35,500 | |
por exemplo, muitas pessoas hoje em | |
dia escrevem código para Data Science | |
195 | |
00:38:35,500 --> 00:38:42,500 | |
e aqui temos um screenshot do Kotlin rodando | |
em um notebook Jupyter sobre Spark | |
195 | |
00:38:42,500 --> 00:38:45,500 | |
e plotando ali os resultados | |
195 | |
00:38:45,500 --> 00:38:52,500 | |
isso é maravilhoso porque significa que a essência | |
do conjunto de ferramentas padrão de Data Science | |
195 | |
00:38:52,500 --> 00:38:57,500 | |
está disponível para Kotlin, e Roman vai dar | |
mais detalhes desse projeto mais tarde | |
195 | |
00:38:57,500 --> 00:38:59,500 | |
isso é algo que está acontecendo | |
dentro da JetBrains | |
195 | |
00:39:01,500 --> 00:39:06,500 | |
ok, acho que acabei com os anúncios | |
sobre ferramental | |
195 | |
00:39:06,500 --> 00:39:09,500 | |
e agora vamos falar sobre a linguagem | |
195 | |
00:39:11,500 --> 00:39:16,500 | |
bem, de novo, estamos tentando | |
focar mais em qualidade e performance | |
195 | |
00:39:16,500 --> 00:39:20,500 | |
e coisas desse tipo, sem grandes | |
anúncios de features, | |
195 | |
00:39:22,100 --> 00:39:23,500 | |
sem operador ternário... | |
195 | |
00:39:26,500 --> 00:39:29,500 | |
bem, operador ternário é | |
realmente desagradável | |
195 | |
00:39:29,500 --> 00:39:32,500 | |
Devo dizer, tenho quase certeza que | |
podemos fazer funcionar, | |
195 | |
00:39:35,800 --> 00:39:37,900 | |
mas é como se algo dentro de | |
mim resistisse muito | |
195 | |
00:39:38,900 --> 00:39:41,500 | |
mas ainda temos algumas coisas | |
legais pra finalizar | |
195 | |
00:39:41,500 --> 00:39:43,500 | |
Vou destacar apenas uma aqui | |
195 | |
00:39:43,500 --> 00:39:47,500 | |
e você pode ler as informações sobre | |
o resto dos anúncios na web | |
195 | |
00:39:48,900 --> 00:39:54,500 | |
quem sabe o que é KT-7770? | |
oh, algumas pessoas sabem! | |
195 | |
00:39:54,500 --> 00:39:57,500 | |
existe uma pequena aposta dentro | |
do time da JetBrains | |
195 | |
00:39:57,500 --> 00:40:02,500 | |
sobre o dia em que alguém vai vir | |
com uma camiseta dizendo KT-7770 | |
195 | |
00:40:02,500 --> 00:40:03,500 | |
não muito legal, ok | |
195 | |
00:40:03,500 --> 00:40:09,500 | |
essa é uma requisição de feature no | |
nosso issue tracker datada de 2015 | |
195 | |
00:40:09,500 --> 00:40:13,500 | |
não é tão antiga, existem outras | |
adicionadas em 2010 por exemplo | |
195 | |
00:40:15,500 --> 00:40:17,500 | |
mas então, estamos adicionando | |
essa feature agora | |
195 | |
00:40:17,500 --> 00:40:24,500 | |
é mais sobre conveniência e | |
interoperabilidade com Java | |
195 | |
00:40:24,500 --> 00:40:26,500 | |
estou falando sobre interfaces funcionais | |
195 | |
00:40:26,500 --> 00:40:32,500 | |
vocês provavelmente sabem que o Java 8, além | |
dos lambdas, adicionou essa ideia de SAM | |
195 | |
00:40:32,500 --> 00:40:34,500 | |
tipos 'Single Abstract Method' | |
195 | |
00:40:34,500 --> 00:40:38,500 | |
o que meio que resolve a falta | |
de tipos 'função' no Java | |
195 | |
00:40:38,500 --> 00:40:40,500 | |
Kotlin já tem função como | |
tipo desde o começo | |
195 | |
00:40:40,500 --> 00:40:45,500 | |
então foi como "realmente precisamos | |
dessa feature? não tenho certeza..." | |
195 | |
00:40:45,500 --> 00:40:47,500 | |
então fomos adiando ela, | |
195 | |
00:40:47,500 --> 00:40:52,500 | |
mas ao longo do tempo vimos que era realmente | |
conveniente não apenas ter o tipo função | |
195 | |
00:40:52,500 --> 00:40:54,500 | |
mas também dar um nome a ele, | |
195 | |
00:40:54,500 --> 00:40:58,500 | |
não como um alias de tipo, mas um tipo separado, | |
e é isso que estamos adicionando | |
195 | |
00:40:58,500 --> 00:41:00,500 | |
então Kotlin é sobre diversão (fun), certo? | |
195 | |
00:41:00,500 --> 00:41:03,500 | |
estamos adicionando um pouco mais de | |
diversão (fun) ao Kotlin, | |
195 | |
00:41:03,500 --> 00:41:05,500 | |
e agora você pode dizer que temoas algumas interfaces | |
funcionais (divertidas) | |
195 | |
00:41:05,500 --> 00:41:07,500 | |
então existem as interfaces chatas e | |
as intefaces divertidas (fun) | |
195 | |
00:41:07,500 --> 00:41:13,500 | |
uma inteface divertida é a representação | |
de uma inteface funcional | |
195 | |
00:41:13,500 --> 00:41:17,500 | |
é algo com apenas um método abstrato | |
195 | |
00:41:17,500 --> 00:41:19,500 | |
você pode basicamente usá-la como uma função, | |
195 | |
00:41:19,500 --> 00:41:22,500 | |
então você pode passar uma lambda onde | |
essa interface é esperada | |
195 | |
00:41:22,500 --> 00:41:29,500 | |
isso te ajuda a manipular tipos, mas também ajuda | |
com a interoperabilidade com Java | |
195 | |
00:41:29,500 --> 00:41:32,500 | |
porque agora você pode migrar uma | |
biblioteca Java 8 inteira, | |
195 | |
00:41:32,500 --> 00:41:35,500 | |
incluindo as interfaces, sem quebrar | |
nenhum código cliente | |
195 | |
00:41:35,500 --> 00:41:39,500 | |
então essa é a feature que | |
gostaria de destacar | |
195 | |
00:41:39,500 --> 00:41:42,500 | |
existem algumas outras coisas, como | |
algo envolvendo vírgula, por exemplo | |
195 | |
00:41:42,500 --> 00:41:44,500 | |
talvez vocês achem interessante | |
195 | |
00:41:44,500 --> 00:41:49,500 | |
mas existem realmente muitas | |
pequenas melhorias | |
195 | |
00:41:49,500 --> 00:41:51,500 | |
então a maioria delas não são features | |
195 | |
00:41:51,500 --> 00:41:56,500 | |
são correções de bugs ou correções | |
de inconsistência e coisas do tipo | |
195 | |
00:41:56,500 --> 00:42:01,500 | |
e isso leva muito tempo para poder | |
ajustar as coisas na linguagem | |
195 | |
00:42:01,500 --> 00:42:04,500 | |
porque você randomicamente mexe | |
em algo na linguagem | |
195 | |
00:42:04,500 --> 00:42:09,500 | |
e algo quebra, e não na sua máquina, mas na máquina de vocês | |
195 | |
00:42:09,500 --> 00:42:12,500 | |
isso é bastante responsabilidade | |
195 | |
00:42:12,500 --> 00:42:16,500 | |
mas realmente precisamos fazer isso | |
195 | |
00:42:16,500 --> 00:42:21,500 | |
porque queremos que o Kotlin seja moderno | |
mesmo daqui a 20 anos. | |
195 | |
00:42:21,500 --> 00:42:24,500 | |
então temos aqui os três princípios que guiam | |
195 | |
00:42:24,500 --> 00:42:26,500 | |
a evolução da linguagem, e que estamos | |
tentando seguir | |
195 | |
00:42:26,500 --> 00:42:29,500 | |
manter a linguagem moderna significa que, | |
195 | |
00:42:29,500 --> 00:42:34,500 | |
se qualquer tipo de ideia ficar antiga ou | |
irrelevante, então vamos tirar | |
195 | |
00:42:35,500 --> 00:42:39,500 | |
então tudo deve ir embora, e | |
não queremos acumular legado | |
195 | |
00:42:39,500 --> 00:42:45,500 | |
mas, por outro lado, se apenas removemos | |
as coisas, o mundo quebra, certo? | |
195 | |
00:42:45,500 --> 00:42:46,500 | |
e vocês vão nos odiar | |
195 | |
00:42:46,500 --> 00:42:52,500 | |
e também eu não quero seguir o exemplo de um outro | |
ecossistema de linguagem [que não vou citar aqui] | |
195 | |
00:42:52,500 --> 00:42:55,500 | |
que estava lançando versões que ninguém | |
fica realmente ansioso por adotar | |
195 | |
00:42:55,500 --> 00:43:03,500 | |
porque existem mudanças imcompatíveis, o | |
que fere o princípio de updates confortáveis | |
195 | |
00:4 3:03,500 --> 00:43:07,500 | |
toda vez que você atualiza para uma nova | |
versão do Kotlin, deve ser fácil pra você | |
195 | |
00:43:07,500 --> 00:43:10,500 | |
a linguagem não deve quebrar você, etc. | |
195 | |
00:43:10,500 --> 00:43:14,500 | |
e esses dois pontos são muito | |
difíceis de manter em balanço | |
195 | |
00:43:14,500 --> 00:43:18,500 | |
mas estamos tentando e a principal ferramenta que | |
estamos usando é o ciclo de feedback | |
195 | |
00:43:18,500 --> 00:43:21,500 | |
então precisamos estar no ciclo | |
com vocês, pessoal | |
195 | |
00:43:21,500 --> 00:43:24,500 | |
para te avisar quando anunciarmos | |
"ok, vamos deprecar isso aqui" | |
195 | |
00:43:24,500 --> 00:43:26,500 | |
algo como, "em dois anos isso vai embora" | |
195 | |
00:43:26,500 --> 00:43:29,500 | |
então precisamos ter certeza | |
que todos vão migrar | |
195 | |
00:43:29,500 --> 00:43:33,500 | |
e precisamos fornecer ferramentas | |
pra vocês migrarem | |
195 | |
00:43:33,500 --> 00:43:36,500 | |
então precisamos manter contato para ter | |
certeza que a informação está caminhando | |
195 | |
00:43:36,500 --> 00:43:42,500 | |
e estou aqui para recomendar que vocês | |
ativamente estejam no ciclo com a gente | |
195 | |
00:43:42,500 --> 00:43:45,500 | |
você vai ajudar a melhorar o ecossistema | |
195 | |
00:43:45,500 --> 00:43:47,500 | |
então, se você não está nesse ciclo, | |
195 | |
00:43:47,500 --> 00:43:53,200 | |
entre no programa EAP, para acessar builds | |
tão boas quanto as de produção... | |
195 | |
00:43:55,100 --> 00:43:56,500 | |
ok, ok... estou brincando | |
195 | |
00:43:56,500 --> 00:43:58,500 | |
elas são tão boas quanto as de produção | |
195 | |
00:43:58,500 --> 00:44:02,500 | |
mas você pode nos dar feedbacks | |
mais cedo, e é muito importante | |
195 | |
00:44:02,500 --> 00:44:08,500 | |
também enviamos pesquisas às vezes, | |
e te perguntamos algumas coisas | |
195 | |
00:44:08,500 --> 00:44:11,500 | |
por favor, respondam, elas podem | |
nos ajudar a melhorar o Kotlin | |
195 | |
00:44:11,500 --> 00:44:13,500 | |
e mesmo que você não tenha | |
energia para nada disso | |
195 | |
00:44:13,500 --> 00:44:19,500 | |
apenas habilite as estatísticas de uso na IDE, o que | |
é algo que você pode fazer sem nenhum esforço | |
195 | |
00:44:19,500 --> 00:44:25,500 | |
vá até a IDE, abra as Preferências | |
e habilite se você puder. | |
195 | |
00:44:25,500 --> 00:44:27,500 | |
são dados anônimos e não v | |
amos espionar vocês | |
195 | |
00:44:27,500 --> 00:44:30,500 | |
o que me importa é | |
"eu vou quebrar o seu código?" | |
195 | |
00:44:30,500 --> 00:44:32,500 | |
porque eu não quero | |
195 | |
00:44:32,500 --> 00:44:38,500 | |
mas... sabe... se eu não gosto | |
muito de uma pessoa... | |
195 | |
00:44:38,500 --> 00:44:40,900 | |
mesmo assim eu não posso, porque os dados | |
são anônimos. Desculpe. | |
195 | |
00:44:42,500 --> 00:44:47,500 | |
É assim que você fica no ciclo, | |
não tem nenhum esforço | |
195 | |
00:44:47,500 --> 00:44:49,500 | |
você nem precisa reportar uma | |
exceção pra nós | |
195 | |
00:44:49,500 --> 00:44:52,500 | |
apenas envie as estatísticas de uso | |
195 | |
00:44:52,500 --> 00:44:55,500 | |
vocês lembram do exemplo com | |
code completion, certo? | |
195 | |
00:44:55,500 --> 00:44:58,500 | |
alguém começa a ter seu completion | |
muito lento | |
195 | |
00:44:58,500 --> 00:44:59,500 | |
como você report isso? | |
195 | |
00:44:59,500 --> 00:45:04,500 | |
mas se você está no radar, vamos | |
ver alguns dados de seu ambiente | |
195 | |
00:45:04,500 --> 00:45:05,500 | |
e vamos tentar olhar nisso | |
195 | |
00:45:05,500 --> 00:45:07,500 | |
já é melhor do que nada. | |
195 | |
00:45:09,500 --> 00:45:09,900 | |
ok? | |
195 | |
00:45:10,500 --> 00:45:16,500 | |
é hora de concluir, e os 3 principais | |
pontos dessa palestra são | |
195 | |
00:45:16,500 --> 00:45:19,500 | |
Kotlin é sobre pessoas, ideias e software | |
195 | |
00:45:19,500 --> 00:45:23,500 | |
é um ecossistema que traz as pessoas | |
para trabalhar juntas | |
195 | |
00:45:23,500 --> 00:45:26,500 | |
de uma forma comum e com muitos | |
valores em comum | |
195 | |
00:45:26,500 --> 00:45:30,500 | |
estamos constantemente melhorando, | |
permancendo no ciclo de feedback | |
195 | |
00:45:30,500 --> 00:45:32,500 | |
então realmente nos preocupamos | |
com o que vocês pensam | |
195 | |
00:45:32,500 --> 00:45:36,500 | |
venham, falem pra nós, mesmo passivamente | |
através de estatísticas ou algo assim | |
195 | |
00:45:36,500 --> 00:45:40,500 | |
além disso, comunidade é sobre participação | |
195 | |
00:45:40,500 --> 00:45:46,500 | |
tudo que você faz, desde o código que escreve, | |
tutoriais, relatórios de experiência | |
195 | |
00:45:46,500 --> 00:45:48,500 | |
mesmo um like ou um tweet | |
195 | |
00:45:48,500 --> 00:45:51,500 | |
tudo isso é valor que vocês | |
trazem para a comunidade | |
195 | |
00:45:51,500 --> 00:45:52,500 | |
agradeço pela participação de vocês | |
195 | |
00:45:52,500 --> 00:45:56,500 | |
vocês terão dois dias muito interessantes | |
195 | |
00:45:56,500 --> 00:46:04,500 | |
tanto palestras, networking, | |
conversas interessantes, uma festa | |
195 | |
00:46:04,500 --> 00:46:05,500 | |
um anúncio surpresa | |
195 | |
00:46:05,500 --> 00:46:07,500 | |
tudo vai acontecer aqui | |
195 | |
00:46:07,500 --> 00:46:11,500 | |
Espero que tenha um bom | |
dia e uma boa KotlinConf, | |
195 | |
00:46:11,500 --> 00:46:12,500 | |
obrigado! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment