├── 1-Sibelius.md ├── 2-Dan_Abramov.md ├── 4-SophieAlpert.md └── ChengLou.md /1-Sibelius.md: -------------------------------------------------------------------------------- 1 | Vinicius Rangel:\ 2 | Como você faz pra saber se um pacote é confiável? 3 | 4 | > Número de stars\ 5 | > criador do package\ 6 | > usamos mesmo que não confiável 7 | 8 | ------------------- 9 | 10 | conradoramalho:\ 11 | Relay ou Apollo? Porque? 12 | 13 | > Relay Modern\ 14 | > quando começamos a usar o Relay, nem existia o Apollo, 2015/6\ 15 | > Relay Modern compila todas as queries (não deixa erro de query em runtime) isso é incrível\ 16 | > gera flowtype para os fragments, deixando o código mais seguro\ 17 | > e com menos chances de erro de runtime\ 18 | > Relay tem ajuda do React core, eles sempre estão alguns passos a frente do apollo 19 | 20 | ------------------- 21 | 22 | nicholasess:\ 23 | Quais são suas dificuldades hoje com React Native? 24 | 25 | > maiores dificuldades são no android\ 26 | > overflow não funciona no android, mas resolvemos em parte com uma bridge nativa\ 27 | > vai ser open source em breve\ 28 | > animations com o debug ligado no android quase não funciona, díficil debugar\ 29 | > upgrades de versão do react native ou de packages nativos ainda não é tão simples\ 30 | > evite cocoapods 31 | 32 | ------------------- 33 | 34 | matheus_gsilva:\ 35 | O que vc acha que será o futuro do js? 36 | 37 | > js é a melhor linguagem hoje\ 38 | > js é o “ingles” das linguagens de programação\ 39 | > como js é feito por um comite ele tende a evoluir sempre\ 40 | > devido as necessidades de diversos grupos 41 | 42 | ------------------- 43 | 44 | Marlon:\ 45 | A técnica de Microfrontend está esquentando em vários blogs, você tem alguma indicação ou contra-indicação? 46 | 47 | > eu não usaria iframe \o/\ 48 | > estamos usando uma técnica que carrega uma página inteira e coloca num componente\ 49 | > vamos fazer open source em breve\ 50 | > o @joao é o responsável por isso\ 51 | > a dificuldade é como fazer a comunicação entre os diversos microfrontends\ 52 | > cada 1 com tradeoffs 53 | 54 | Isso não teria várias instancias do react no DOM? 55 | 56 | > não, vc tem diversos entrypoints 57 | >> joao:\ 58 | >> o DOM é compartilhado\ 59 | >> https://github.com/react-brasil/reactconfbr/issues/21#issuecomment-377065927 60 | 61 | ------------------- 62 | 63 | Erick Maeda:\ 64 | Com o crescimento do Flutter vc acha que irá se tornar um forte adversário do React Native? 65 | 66 | > ainda é cedo para discutir isso\ 67 | > mas o Facebook tem acertado bastante\ 68 | > enquanto que o Google nem tanto na parte de frontend\ 69 | > o React é um conceito\ 70 | > flutter não é tanto\ 71 | > a melhor parte do react native é o React\ 72 | > Async React vai revolucionar ainda mais o React Native 73 | 74 | ------------------- 75 | 76 | Marlon:\ 77 | Qual sua opinião sobre o Apollo 2? 78 | 79 | > apollo 2 melhorou bastante a performance em relação ao apollo 1\ 80 | > talvez ficou mais rápido que o relay classic\ 81 | > mas ainda é bem mais lento que o relay modern\ 82 | > relay modern chega a ser até 10x mais rápido de acordo com alguns devs 83 | 84 | ------------------- 85 | 86 | Vinicius Rangel:\ 87 | Quando você vai desenvolver um app quais as ferramentas não podem faltar? 88 | Ex: Redux, Native-Base etc.. 89 | 90 | > react-native\ 91 | > graphql\ 92 | > relay\ 93 | > styled-components (fazemos o estilo na mão mesmo), escala melhor 94 | 95 | redux não? 96 | 97 | > usamos redux para local state\ 98 | > mas já estamos pensando em usar só relay para lidar com isso 99 | 100 | ------------------- 101 | 102 | lmsfelipe:\ 103 | O uso de Relay ou Apollo anula a necessidade de Redux? 104 | 105 | > voce pode continuar usando o redux para o estado local\ 106 | > recomendo aprender redux para melhorar o jeito de programar\ 107 | > tanto o relay\ 108 | > como o apollo\ 109 | > tem soluções para lidar com state local\ 110 | > https://github.com/facebook/relay/issues/1656 111 | 112 | ------------------- 113 | 114 | guilherme.lopes:\ 115 | Para react-native você já utilizou NativeBase? Usaria novamente, sim não e porque? O fato de conseguir criar layouts(themes) não é melhor para escalar do que styled-components? 116 | 117 | > sempre criamos do zero\ 118 | > usando styled-components\ 119 | > mais fácil de customizar\ 120 | > para as necessidades de cada projeto\ 121 | > sempre tentamos reutilizar components de outros projetos\ 122 | > usando storybook para tornar isso possível\ 123 | > na web e no react-native 124 | 125 | ------------------- 126 | 127 | lmsfelipe:\ 128 | Como vc lida com o compartilhamento de componentes entre projetos? 129 | 130 | > ainda não compartilhamos muitos components entre projetos\ 131 | > por enquanto estamos no ctrl+c ctrl+v\ 132 | > mas já usando um package npm para conseguir lidar com isso também\ 133 | > outra ideia seria usar um monorepo\ 134 | > com um package commons do projeto\ 135 | > mini/micro packages para cada componente pode ser válido também\ 136 | > https://blog.expo.io/universe-exponents-code-base-f12fa236b8e 137 | 138 | ------------------- 139 | 140 | Bruno Sato:\ 141 | O voce acha sobre a lib react-native-web tem que evoluir muito ainda? 142 | 143 | > react-native-web tem bastante potencial\ 144 | > tem bastante gente que usa\ 145 | > mas ainda não mexemos muito com isso\ 146 | > tem o react-xp também\ 147 | > da microsoft 148 | 149 | ------------------- 150 | 151 | Erick Maeda:\ 152 | Qual a melhor solução para navegação de screens no react-native ? 153 | 154 | > react-navigation?\ 155 | > ele é o mais customizável por enquanto\ 156 | > tem as navigation nativas, mas eu prefiro fazer tudo em js mesmo\ 157 | > para customizar com custom transitions é bem mais simples 158 | 159 | ------------------- 160 | 161 | brunolemos:\ 162 | @sibelius qual o impacto do open source na sua vida profissional? 163 | 164 | > open source tem um impacta incrível na vida profissional\ 165 | > se vc ainda não contribuiu contribua\ 166 | > eu demorei para descobrir o open source\ 167 | > universidades deveriam falar mais sobre isso\ 168 | > talvez até uma materia só para contribuir para open source\ 169 | > já consegui diversos freelas só por ter diversas contribuções open source (edited)\ 170 | > já ganhei muito dinheiro por trabalhar de “graca” no open source\ 171 | > segue uma contribuição open source que me trouxe diversos contatos https://github.com/facebook/react-native/releases/tag/v0.25.1 172 | >GitHub 173 | >facebook/react-native 174 | >react-native - A framework for building native apps with React.\ 175 | > meu codemod no release notes do RN\ 176 | > é bom também para você se tornar um desenvolver melhor 177 | 178 | ------------------- 179 | 180 | Jabur:\ 181 | Recomenda Backends as a service como por exemplo Firebase ou GraphCool? 182 | 183 | > neh\ 184 | > só para prototipos rápidos\ 185 | > melhor vc mesmo implementar\ 186 | > vc sempre vai bater em um caso que o baas não te atende\ 187 | > vc mesmo implementado te torna mais inteligente\ 188 | > vc vai criando os seus boilerplates\ 189 | > e acaba sendo até mais rápido do que usar firebase e graphcool 190 | 191 | ------------------- 192 | 193 | Bruno Sato:\ 194 | Como você estuda coisas novas relacionadas a desenvolvimento? 195 | 196 | > leio bastante\ 197 | > sigo bastante dev top no twitter\ 198 | > leio bastante coisa no medium\ 199 | > reviso bastante código dos outros\ 200 | > dou watch em repos\ 201 | > só para aprender 202 | >>joao:\ 203 | >>@Bruno Sato, o @sibelius me ajudou a escrever um artigo que tem a ver com esta pergunta: >>https://medium.com/entria/how-to-discover-that-you-dont-know-what-you-don-t-know-a6fcff20018 204 | >sibelius:\ 205 | >https://medium.com/@dan_abramov/my-react-list-862227952a8c 206 | 207 | ------------------- 208 | 209 | lmsfelipe:\ 210 | Formik ou ReduxForm? Por que? 211 | 212 | > formik\ 213 | > redux é para coisas globais\ 214 | > forms são locais\ 215 | > formik foi a abstração que faltava para o react\ 216 | > teve uma epoca do React que tudo que era feito\ 217 | > era feito com o Redux\ 218 | > passei por essa fase\ 219 | > agora aprendemos a usar o setState\ 220 | > e tudo faz mais sentido\ 221 | > menos complexidade e mais performance 222 | 223 | ------------------- 224 | 225 | Felipe Oliveira:\ 226 | É possível compartilhar elementos entre aplicações web e nativas? Se sim, teria alguma dica para dar? 227 | 228 | > o que a galera tem jeito é seguir a ideia do react native (edited)\ 229 | > .ios\ 230 | > .android\ 231 | > .web\ 232 | > compartilhar boa parte das lógicas\ 233 | > e só mudar os ui/ux 234 | 235 | ------------------- 236 | 237 | tiagosouto:\ 238 | qual a duvida mais comum ou dificuldade que vc tem observado nas comunidades? 239 | 240 | > a galera não sabe debugar muito o problema\ 241 | > a galera desiste muito fácil\ 242 | > a galera do RN não sabe nativo\ 243 | > e nem quer tentar aprender\ 244 | > tem diversas dúvidas que realmente não tem respostas certas\ 245 | > angular vs react vs vuejs por exemplo\ 246 | > tudo depende\ 247 | > talvez a galera não saiba qual caminho seguir para conseguir terminar o que gostaria de fazer 248 | >> lucianomlima:\ 249 | >> Também adicionaria os que pulam etapas de aprendizado, mal sabem React e já querem aprender redux (sem nem mesmo entender para que serve) 250 | 251 | ------------------- 252 | 253 | tiagosouto:\ 254 | quais suas principais fontes de pesquisa para solucionar problemas? 255 | 256 | > sigo todo mundo que já postou algo interessante\ 257 | > toda pessoa pode virar top\ 258 | > deixo o twitter decidir os melhores posts\ 259 | > quando mais gente vc seguir, mais chances de ver coisas legais e mais recentes primeiro\ 260 | > o core do React sempre posta coisas legais\ 261 | > e interesssantes 262 | >>matheus_gsilva:\ 263 | >>seguir o sibelius e as pessoas que ele retweeta é a melhor coisa :slightly_smiling_face: 264 | 265 | ------------------- 266 | 267 | tiagosouto:\ 268 | quais suas principais fontes de pesquisa para solucionar problemas? 269 | 270 | > google\ 271 | > facebook community\ 272 | > stack overflow\ 273 | > github\ 274 | > pesquisar dentro de códigos de github\ 275 | > issues github\ 276 | > criar issues\ 277 | > usar o slack\ 278 | > discord\ 279 | > usar N slacks 280 | >>matheus_gsilva:\ 281 | >>reactiflux no discord tbm é uma boa 282 | > perguntar para pessoas\ 283 | > deixar o tempo passar para voltar no problema 284 | 285 | ------------------- 286 | 287 | matheus_gsilva:\ 288 | Como gerenciar tempo com vida pessoal + 3000 tecnologias pra se estudar + open source? Digo, como definir o que priorizar pra estudar + o que contribuir? 289 | 290 | 291 | > para mim o backend e frontend já está bem definidos\ 292 | > front: react, react native, relay, styled-components\ 293 | > back: node + graphql\ 294 | > a prioridade vem de acordo com os projetos que vc tem que resolver\ 295 | > se vc só trabalha com projetos complexos vc acaba ficando mais inteligente\ 296 | > e aprendendo coisas novas justamente para deixar o projeto mais fácil de ser resolvido\ 297 | > se vc só fizer landing page, não vai evoluir muito 298 | 299 | ------------------- 300 | 301 | rgazeredo:\ 302 | Em questão de produtividade, vale a pena usar Expo? Ou melhor fazer tudo na mão com react-native init ? 303 | 304 | > gosto de fazer tudo na mão\ 305 | > in house\ 306 | > vc sempre vai chegar no limite da Expo\ 307 | > tem o eject\ 308 | > mas depois do eject seria mais fácil começar do react-native puro mesmo\ 309 | > \o/ 310 | >>rgazeredo:\ 311 | >>exatamente, depois que dou um eject eu travo para continuar a trabalhar no projeto novamente 312 | > eu recomendo evitar cocoapods 313 | 314 | ------------------- 315 | 316 | lmsfelipe:\ 317 | Quais foram suas maiores dificuldades ao abrir sua empresa? 318 | 319 | > o @rturk lidou com a parte mais burocratica\ 320 | > abrir uma empresa é fácil\ 321 | > deixar ela rodando que é o díficil\ 322 | > abrir e fechar é fácil 323 | >>Vinicius Rangel:\ 324 | >>hahhahaha vdd\ 325 | >>2 contratações erradas me custaram muito caro\ 326 | >>rturk:\ 327 | >> Cash is King. No Brasil a empresa pode ser pequena ou grande, como em qualquer lugar do mundo.. Mas é vital você fechar as contas no final do mês 328 | 329 | ------------------- 330 | 331 | Jabur:\ 332 | Porque evitar cocoapods? 333 | 334 | > uma das coisas que tornou o js incrível\ 335 | > foi o npm\ 336 | > sistema de pacotes\ 337 | > no objective-c swift temos o cocoapods e o carthage\ 338 | > eu não gosto do cocoapods, ele cria um .xcworkspace\ 339 | > e acaba sempre quebrando diversos packages do react-native\ 340 | > se vc usar pods todos os packages tem que usar\ 341 | > muita complexidade por nada\ 342 | > react-native link FTW 343 | 344 | ------------------- 345 | 346 | Thadeu Esteves Jr:\ 347 | Redux-Sagas ainda faz sentido? 348 | 349 | > faz\ 350 | > https://github.com/kuy/redux-saga-chat-example 351 | > GitHub 352 | > kuy/redux-saga-chat-example 353 | > redux-saga-chat-example - A chat app built with redux-saga and Socket.IO. 354 | > para fluxo em backgrounds complexos\ 355 | > é bem legal\ 356 | > dá para tornar cenários complexos em simples\ 357 | > mas se usar Relay vc pode reduzir bastante o uso dele 358 | 359 | ------------------- 360 | 361 | Vinicius Rangel:\ 362 | O que você acha dessa disseminação do javascript? algo bom ou ruim? 363 | O pessoal fala de tanto nome que eu não faço ideia do que é, parece que tem uma infinidade de técnicas e pacotes que se eu parar pra ver tudo eu não consigo produzir 364 | 365 | > disseminação do js é incrível\ 366 | > mais diversidade gera mais inovação\ 367 | > qualquer coisa nova, sempre vai ser implementada primeiro em js\ 368 | > depois do es6, js ficou incrível 369 | >> lucianomlima:\ 370 | >> Você não precisa aprender tudo, você precisa aprender apenas o que formará sua stack. O resto é adicional… você usa quando necessário 371 | 372 | ------------------- 373 | 374 | Bruno Sato:\ 375 | O voce acha das abstracoes de redux? 376 | 377 | > toda abstração tem problemas\ 378 | > não sinto muito o peso do boilerplate do redux\ 379 | > mais código não quer dizer que seja problemático\ 380 | > o ideal é usar redux só para coisas globais 381 | 382 | ------------------- 383 | 384 | Thadeu Esteves Jr:\ 385 | Existem muitas maneiras de estruturar(folders) um projeto do zero, qual a melhor forma na atualidade? 386 | 387 | > deixamos todo o source dentro da pasta `/src`\ 388 | > para cada time tem um jeito melhor\ 389 | > mas recomendo não ser muito nested\ 390 | > não gosto muito disso aqui\ 391 | > https://github.com/tleunen/babel-plugin-module-resolver 392 | > GitHub 393 | > tleunen/babel-plugin-module-resolver 394 | > babel-plugin-module-resolver - Custom module resolver plugin for Babel 395 | > nem sempre funciona bem em todas as IDE\ 396 | > e quebra algumas coisas\ 397 | > tipo webpack, jest, metro-bundler 398 | 399 | ------------------- 400 | 401 | padil:\ 402 | Você acha que o react-native vai matar o desenvolvimento nativo ? 403 | 404 | > tudo que for layout vai ser feito no RN\ 405 | > boa parte vai ser RN\ 406 | > somente partes críticas e coisas que precisem de performances vão ser bridges\ 407 | > até mesmos jogos poderão ser feitos só em js\ 408 | > talvez usando react-native-gl 409 | 410 | ------------------- 411 | 412 | guilherme.lopes:\ 413 | O que você acha do WebAssembly, já teve oportunidade de mexer? Como você acha que vai ficar o futuro da web e fora da web com ele? 414 | 415 | > ainda não mexi com isso\ 416 | > vai ser interessante\ 417 | > todo mundo vai conseguir codar para a web em qualquer linguagem\ 418 | > eu acho acho melhor continuar usando js\ 419 | > mesmo que compilando js para webassembly 420 | 421 | ------------------- 422 | 423 | tiagosouto:\ 424 | você acha que os problemas recentes que o facebook está enfrentando podem afetar negativamente de alguma forma o investimento deles em tecnologia open source, ou ainda é muito cedo para pensar nisso? 425 | 426 | > acredito que não\ 427 | > o maior problema era a licença do React e outras\ 428 | > se não mexer na licença\ 429 | > tudo certo 430 | 431 | ------------------- 432 | 433 | padil:\ 434 | Voce concorda com o valor que é proposto para o desenvolvimento nativo comparado ao do react-native ? 435 | 436 | > qual valor? 437 | 438 | salarial 439 | 440 | >> Jabur:\ 441 | >> :moneybag: 442 | 443 | > quem ganha mais? 444 | 445 | nativo.\ 446 | pensando apenas em IOS 447 | 448 | > ios no Brasil é raro\ 449 | > díficil achar devs que tenham mac aqui\ 450 | > nativo é bem mais díficil do que react native\ 451 | > é tudo questão de oferta e procura\ 452 | > não só em relação ao nativo vs rn dev\ 453 | > mas sobre qualquer empresa\ 454 | > se todo mundo consegue fazer um trabalho, as pessoas pagam pouco mesmo\ 455 | > capitalismo é assim 456 | 457 | ------------------- 458 | 459 | gabrielrubens:\ 460 | pq flow e não typescript? 461 | 462 | > Flow é baseado em Occaml\ 463 | > sistema de tipos incrível\ 464 | > soundness\ 465 | > expressivo\ 466 | > consigo tipar menos no flow\ 467 | > nem tudo precisa ser tipado\ 468 | > uma linguagem moderna deve conseguir inferir os tipos das variaveis\ 469 | > tipar é cansativo\ 470 | > é mais fácil adicionar Flow num projeto do que TS\ 471 | > depois do Flow 66 as mensagens de erros ficaram incríveis\ 472 | > e ficou muito mais rápido\ 473 | > flow tem suporte nativo para React\ 474 | > funciona super bem 475 | 476 | ------------------- 477 | 478 | Saulo:\ 479 | pra quem ta começando agora com react qual roadmap vc recomenda de curso/estudo? 480 | 481 | > https://github.com/entria/jobs/blob/master/skills.md\ 482 | > https://github.com/petehunt/react-howto 483 | > GitHub 484 | > petehunt/react-howto 485 | > react-howto - Your guide to the (sometimes overwhelming!) React ecosystem. 486 | > tem esse howto do criador do react 487 | 488 | ------------------- 489 | 490 | Thadeu Esteves Jr:\ 491 | O que esperar para JS e React em 2018? 492 | 493 | > async iterator no js é incrível\ 494 | > abstração super poderosa\ 495 | > para lidar com observables\ 496 | > React 2018 mais coisas Async\ 497 | > apps mais responsivos\ 498 | > Suspense\ 499 | > melhor performance para Relay e Apollo\ 500 | > melhor performance para RN 501 | 502 | ------------------- 503 | 504 | Lucas de Assis:\ 505 | react native ou PWA? 506 | 507 | > ambos\ 508 | > ainda tem muita gente fazendo apps\ 509 | > acho válido usar analytics\ 510 | > e medir 511 | >> rturk:\ 512 | >> PWA ainda não funciona em IOS.. 513 | 514 | pra um app simples que utiliza GPS. Como escolher? 515 | > app simples faz os 2\ 516 | > eu iria para o react native\ 517 | > ainda tem algumas polemicas com o PWA por causa da google 518 | >> Pedro Pessoa:\ 519 | >> @rturk suporta, mas service workers ainda está no beta 4 . N é estavel ainda. 520 | 521 | ------------------- 522 | 523 | enieber:\ 524 | oq vc acha do reasonml para novos projetos? 525 | 526 | > ambos\ 527 | > ainda tem muita gente fazendo apps\ 528 | > acho válido usar analytics\ 529 | > e medir 530 | 531 | ------------------- 532 | 533 | guilherme.lopes:\ 534 | Porque você acha que ainda tem pessoas que utilizam ionic, mesmo em projetos novos? 535 | 536 | > medo de inovação\ 537 | > medo de aprender coisas novas\ 538 | > mudar é díficil\ 539 | > know how é complicado\ 540 | > nem todo mundo quer sair da zona de conforto 541 | -------------------------------------------------------------------------------- /2-Dan_Abramov.md: -------------------------------------------------------------------------------- 1 | Vinicius Rangel 2 | Dan, there are bigger plans to redux this year? 3 | 4 | Dan 5 | Not sure what you mean :slightly_smiling_face: But I have no plans regarding Redux personally. I'm not actively involved with maintaining it. 6 | 7 | ------------------- 8 | 9 | thiago.leite 10 | Andrew Clark said on his Twitter that class components will be considered as legacy APIs in the future, while function components will remain. We must take this statement in consideration in the projects that are under development/will be developed? And what is the best way to write a component? 11 | 12 | Dan 13 | He also said on Twitter that we have dozens of thousands of class components and they aren't going anywhere :slightly_smiling_face: When/if we have a more convenient and less verbose way to declare components than classes, we'll definitely announce it, but I don't see how it could affect existing projects. 14 | 15 | ------------------- 16 | 17 | pvieira91 18 | 1) Tests | We went from 0 to 100 in what regards unit testing. It’s pretty common nowadays to find companies that have very high thresholds on unit testings. Do you think that it’s valuable to impose a high unit test coverage even for presentational components? 19 | 20 | 2) Styling | What is your opinion of css-in-js? Do you prefer it over standard stylesheets (scss, css-modules, post-css etc) or it’s more interesting to use a css-in-js lib? If so, which one? (styled-components)? 21 | 22 | Dan 23 | >1) 24 | Personally I don't find unit testing components very valuable. Especially if they just contain markup — you're basically testing that React works, and we have tests in React itself for that. I think some combination of integration tests for higher-level UI scenarios (click a button, something shows up) and unit tests for _logic_ (e.g. complex calculations) is helpful. I'm more skeptical of asserting on component output although I understand others might not agree. 25 | 26 | >2) 27 | I don't care about this much. If I were writing something today for myself I'd probably use vanilla CSS. Maybe glamor if there were a lot of dynamic styles. 28 | 29 | ------------------- 30 | 31 | sibelius 32 | > how will async react help in handling requests waterfall? 33 | > how will async react improve react native? 34 | > what is take on flow/typescript and reason? 35 | > what next after relay modern? 36 | 37 | 38 | Dan 39 | >how will async react help in handling requests waterfall? 40 | Not sure what exactly is being asked. But my guess is this is about the case where you have a parent and child component that each request some data, but it could've been requested in parallel. 41 | With “suspense” APIs (part of async React), we think it’s much simpler to “move” async dependencies up and down the tree without re-wiring the props or changing the app architecture. This is because all components are backed by the same cache. So I think async React would help avoid waterfalls by making it easier to optimistically _preload_ resources that you think components below will need. Similar to `` in HTML. 42 | 43 | >how will async react improve react native? 44 | There's work in progress on revamping React Native architecture to better take advantage of async rendering and solving some existing pain points regarding interop with sync code. I’m not the best person to talk about that though. 45 | 46 | >what is take on flow/typescript and reason? 47 | I’m personally comfortable with JS + some sprinkles of Flow where I’m not confident what’s going on with types. Not a fan of having to annotate everything. I haven’t tried Reason yet so I don’t know if I’ll like it. 48 | 49 | >what next after relay modern? 50 | I don’t know, is there something missing in it? My understanding is that the Relay team is happy with performance wins from Modern. We might need to change the React bindings to it to better take advantage of the upcoming React async features, but I don’t know more. 51 | 52 | ------------------- 53 | 54 | gabrielrubens 55 | We all know that unit testing is important, but it’s hard to make sure that all cases are being covered in a test suite 56 | Is there any technique you guys use to make sure all test cases/possibilities are being covered besides only trusting in human review? 57 | 58 | Dan 59 | If this is about components, I’ll reiterate we don’t do that much unit testing of components at Facebook. 60 | If this is about React itself, we’re using fuzzy testing in some cases where there are too many possibilities. A fuzz test is like a test that generates some inputs randomly many times, and then asserts some conditions that we expect to always be true. If there’s a regression, we add it to a list of inputs that must always be tested. So that helps refine a fuzz test over time. 61 | 62 | ------------------- 63 | 64 | Marco Nicolodi 65 | How do you balance fast delivery with code quality? 66 | 67 | Dan 68 | We sacrifice either one or the other depending on what’s more important? :slightly_smiling_face: 69 | 70 | ------------------- 71 | 72 | haz 73 | How did you start working on Facebook? Was invited? How was the process? 74 | 75 | Dan 76 | I’ve chatted to recruiters a long time ago but they didn’t have any UK positions at the time, and I couldn’t get a US visa (and didn’t want one that much anyway). After about a year I bumped into Jing Chen at React Europe (I think she was on the Relay team at the time, although I’m not sure). She asked if I was interested in interviewing, and mentioned the London office. I said that I am, so she arranged for other speakers to interview me on the next day (so I skipped most of the conference), but it was a regular FB interview process (several interviews). 77 | 78 | ------------------- 79 | 80 | sibelius 81 | > what do you think about recompose? 82 | 83 | Dan 84 | Too much indirection. 85 | 86 | ------------------- 87 | 88 | r.santos 89 | If someone is starting Studying React today do you think it still a good idea study redux as well? 90 | 91 | Dan 92 | I always suggested learning React first before you look at Redux. 93 | After you've learned React, I think learning Redux makes sense even if you don't plan to use it. 90% of "learning Redux" isn't about Redux itself. It's about learning to use functional composition and immutability. That would come in handy regardless of whether you plan to use Redux APIs or rediscover the same patterns yourself when you use context API or something similar. 94 | 95 | ------------------- 96 | 97 | jpbretanha 98 | Should we start moving from using HoC’s and start to use render props? 99 | 100 | Dan 101 | I don't know, what looks clearer to you? 102 | 103 | ------------------- 104 | 105 | sibelius 106 | > is React going to add a compilation step soon? 107 | 108 | Dan 109 | There is already a JSX compilation step but you're probably referring to whole program optimization. There are some experiments we're working on but I wouldn't say there're anywhere near "soon". 110 | 111 | ------------------- 112 | 113 | sibelius 114 | > how does Facebook handles flow-typed internally? 115 | 116 | Dan 117 | I don't know. 118 | 119 | ------------------- 120 | 121 | weslopes 122 | What about the microservices in front-end with react? It’s a good idea? 123 | 124 | Dan 125 | I don't know anything about microservices. 126 | 127 | ------------------- 128 | 129 | sibelius 130 | > will Facebook switch to fullstack Javascript? are you guys using nodejs in backend? 131 | 132 | Dan 133 | No, FB uses a highly optimized runtime and language (HHVM, Hack) and there are no plans to swap it with Node. 134 | 135 | ------------------- 136 | 137 | jcm 138 | > what do you think of function as child components ? 139 | 140 | Dan 141 | They're cool when the API is clear? 142 | 143 | ------------------- 144 | 145 | Marco Nicolodi 146 | What are the most important things to check during code reviews? 147 | 148 | Dan 149 | Semicolons. 150 | 151 | Okay, I'm kidding. 152 | 153 | If you don't have any type checker, I think it's most important to look out for potential crashes (`null` / `undefined`) as those are painful to diagnose and fix. Other than that, I don't know—depends on the kind of mistakes you usually notice and want to reduce? 154 | 155 | ------------------- 156 | 157 | lucasbento 158 | How do you feel about ReasonML? 159 | 160 | Dan 161 | Copy pasting from above: 162 | I haven’t tried Reason yet so I don’t know if I’ll like it. 163 | 164 | ------------------- 165 | 166 | Lucas Sartori 167 | Hello Dan, I’m a great fan, really appreciate you taking your time to answer some questions here! 168 | So, I’m a junior developer that has been working with React and Javascript in general for less than a year. I’d like to ask you about your first steps into the programming world, what motivated you the most to keep going before you had any palpable success and what would you recommend a junior developer in dedicating himself in 2018? 169 | 170 | Dan 171 | I started with Visual Basic so that's kind of a long time ago. Throwing things on a form and seeing it "come alive" when I press "run" was pretty magical. I don't think there was anything else that motivated really, I just liked making things. 172 | I recommend building lots of small things 173 | 174 | ------------------- 175 | 176 | rudiney 177 | Not much a tech question but, how is the mood inside Facebook about this Cambridge Analytica data breach scandal? Can we expect big changes on the FB developers polices or any chance the open source tools licenses being reveiewed? 178 | 179 | Dan 180 | The APIs that allowed this "breach" were closed down four years ago. I think at the time the policy was really naïve but there were also a lot of people who argued data should be "more open" and FB is evil for "locking it down". So it's interesting how the perspective changes over a few years. 181 | I think it's clear to everybody at the company now that the old vision was too idealistic, but even though they closed it down four years ago, the old mistakes keep chasing them :slightly_smiling_face: . I know there's a lot of people working hard on fixing problems like fake news, election integrity, abuse etc, so I think the company will survive through this and become wiser. 182 | I don't see how this relates to open source tools. Regarding developer APIs, yes, there's been some further lockdown on data apps could get, you can read about those changes at https://newsroom.fb.com. 183 | 184 | ------------------- 185 | 186 | guilhermepontes 187 | What is your typical day like? 188 | 189 | Dan 190 | Woke up, fell out of bed 191 | Dragged a comb across my head 192 | Found my way downstairs and drank a cup 193 | And looking up I noticed I was late 194 | Found my coat and grabbed my hat 195 | Made the bus in seconds flat 196 | Made my way upstairs and had a smoke 197 | And everybody spoke and I went into a dream 198 | 199 | ------------------- 200 | 201 | lucasbento 202 | How’s the environment in Facebook HQ? How does it compare to a startup (in terms of bureaucracy, speed, etc)? 203 | 204 | Dan 205 | I don't really see any bureaucracy at all except cases where something has legal implications. Individual people and teams have a lot of agency. 206 | 207 | ------------------- 208 | 209 | r.santos 210 | Do you think that the new versions of React - 16.3.0 and beyond - are going in a direction that will improve state management power to the point where Redux might become useless? 211 | 212 | Dan 213 | I think I sort of answered that. The point of Redux isn't "Redux-the-library", it's the pattern of separating update logic from descriptions of "what happened". Whether you use Redux-the-library or not, this pattern might be handy for some cases. I wrote an article a long time ago that both describes these cases and describes "Redux without Redux" at the end: https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367 214 | I will also quote my earlier reply: 215 | 216 | >90% of "learning Redux" isn't about Redux itself. It's about learning to use functional composition and immutability. That would come in handy regardless of whether you plan to use Redux APIs or rediscover the same patterns yourself when you use context API or something similar. 217 | 218 | ------------------- 219 | 220 | tiagosouto 221 | what’s your opinion about RxJS? 222 | 223 | Dan 224 | I think it's cool for handling complex data flows. Not as much a fan of using it for UI composition. 225 | 226 | ------------------- 227 | 228 | lucasbento 229 | Right now you are working with open-source on your full-time job but how did you manage to work and maintain your personal projects on your free-time? Did you have a limit on how long time you would spend on it? 230 | 231 | Dan 232 | I didn't work on personal projects that I also wouldn't be using at my main job. 233 | 234 | ------------------- 235 | 236 | sibelius 237 | > How Facebook structure their frontend code? there is a bunch of microapps? if so how to you make them communicate each other? 238 | 239 | Dan 240 | No, it's a single monorepo. Any file can import any other file. (edited) 241 | 242 | ------------------- 243 | 244 | @fdaciuk 245 | Hi Dan! Are you using SSR with HHVM? If yes, which tools are you using for? (edited) 246 | 247 | Dan 248 | Not sure what you mean but we don't currently server-render React components. On the server, we use XHP for server rendering (which is not related to React). 249 | 250 | ------------------- 251 | 252 | sibelius 253 | is there any machine learning algorithms to improve frontend code? I heard code splitting is done like that, any other places to apply ML in fronted? 254 | 255 | Dan 256 | I don't know, but yea, we use it for code splitting. 257 | 258 | ------------------- 259 | 260 | andrei_calazans 261 | Do you think Mobx has grown to become a better state handler than Redux? whats your opinion on that? 262 | 263 | Dan 264 | Personally I’m not a fan of mutation. :slightly_smiling_face: It’s cool if it solves your problems but it makes some other things that are important to me harder. 265 | 266 | ------------------- 267 | 268 | Diego Nascimento 269 | What do you think about other forms of DOM manipulation, such as incremental-dom or glimmer? 270 | 271 | Dan 272 | I think the work glimmer is doing with AOT compilation is interesting. I don't know much about `incremental-dom` but I don't think DOM is the best fundamental abstraction to build a component system on. (That's my personal opinion) 273 | 274 | ------------------- 275 | 276 | dnvtrn 277 | What is the best solution to work with SSR and Create React App, avoiding the known problem about Google SEO web crawlers? 278 | 279 | Dan 280 | I don't know. You tell me. :slightly_smiling_face: 281 | 282 | ------------------- 283 | 284 | sibelius 285 | how async react will improve animations frameworks? 286 | 287 | Dan 288 | I don't think async React itself is going to help animation libraries. Although it should help block the thread less which should reduce jankiness of the animations when there are other updates happening. 289 | 290 | ------------------- 291 | 292 | sibelius 293 | > which other technical fields would you like to work? robots? 294 | 295 | Dan 296 | I don't think I have a lot of interest in other technical fields 297 | 298 | ------------------- 299 | 300 | brunolemos 301 | What is that you think may be big in a few years that only a few people is paying attention right now? 302 | 303 | Dan 304 | I'm hoping some ideas from async React will become more commonplace in other view libraries 305 | 306 | ------------------- 307 | 308 | brunolemos 309 | Thoughts on Flutter? 310 | 311 | Dan 312 | Separating state logic into reusable pieces seems nice. We're thinking about this. 313 | 314 | ------------------- 315 | 316 | Aldo Jr. 317 | Dan, what do you think about PWA? 318 | 319 | Dan 320 | I think the premise is good but service workers need better UX 321 | 322 | ------------------- 323 | 324 | fdaciuk 325 | When did you start learning functional programming? Could you recommend any language to get start with? 326 | 327 | Dan 328 | I think I started with an esoteric language nobody uses (http://nemerle.org/). Doesn't really matter, JS is fine 329 | 330 | ------------------- 331 | 332 | leolopes 333 | In the scope of react-native, what do you consider the must-have skills to be considered a good react-native programmer? 334 | 335 | Dan 336 | I don't know, make apps that look and behave well? 337 | 338 | ------------------- 339 | 340 | guilherme_vasconcelos 341 | What are the topics you suggest developers - involved with React and its ecosystem - to focus on studying in order to be prepared for the future or next years? 342 | 343 | Dan 344 | Immutability 345 | 346 | 347 | sibelius 348 | > which books changed your life? 349 | 350 | Dan 351 | https://www.amazon.com/Beginning-Infinity-Explanations-Transform-World/dp/0143121359 352 | 353 | 354 | Jabur 355 | Hey @Dan thank you so much for your time, i`m pretty sure everybody really loved your answers. 356 | 357 | I only have one more question and one invite: 358 | 359 | 1 - Can you point to three other people to the next Q/A Session! 360 | 361 | 2 - And: Any chances to come to React Conf Brazil? :flag-br: 362 | 363 | Dan 364 | Re (2): not very likely because I don't do many talks so I don't even know when the next one is going to be 365 | Re (1): in React ecosystem? 366 | my teammate 367 | 368 | https://mobile.twitter.com/ProvablyFlarnie 369 | 370 | my manager 371 | 372 | https://mobile.twitter.com/sophiebits 373 | 374 | cool folks I've learned from 375 | 376 | https://mobile.twitter.com/NikkitaFTW 377 | https://mobile.twitter.com/rwieruch 378 | https://mobile.twitter.com/siddharthkp 379 | https://mobile.twitter.com/peggyrayzis 380 | https://mobile.twitter.com/CompuIves 381 | https://mobile.twitter.com/elibelly 382 | -------------------------------------------------------------------------------- /4-SophieAlpert.md: -------------------------------------------------------------------------------- 1 | By: @hnordt 2 | In your opinion, what’s the best thing about React? There is anything you would like to change? 3 | 4 | ``` 5 | I don't know if there is a single best thing about React, I think the most important things that React gives are the component model (so that you can have different parts of your code cleanly isolated) and the declarative render methods (so that you don't need to write out separate update logic for how things change), but these days most of the frontend frameworks give both of those. :slightly_smiling_face: I think the most unique things about React are the way that UIs can be treated the same as any other data in your app, and the way that we abstract away platform differences and support other platforms like React Native 6 | 7 | there's a lot of stuff that I would like to change but we're working on a lot of it! 8 | ``` 9 | 10 | --- 11 | 12 | By: @hnordt 13 | How did you learn about React? Did you co-authored it / you’ve been working on it since day 0? 14 | 15 | ``` 16 | I think I first learned about React from seeing the website on Hacker News on the day that it was open sourced, a little over 5 years ago. I'm not an original coauthor (I wasn't working at Facebook at the time) but I started contributing to React more and more over time and eventually I think I was the #1 committer even before I joined Facebook – at that point I figured that I should just go to Facebook to work on it full time, and that's what I did 17 | 18 | fun fact: I deployed React to production in one of my projects less than 2 weeks after it was released – in hindsight I think maybe I was a little irresponsible :wink: but it worked out well and I think that makes me the first production user of React outside of FB 19 | ``` 20 | 21 | 22 | --- 23 | 24 | By: @lucianomlima 25 | What are the difficulties in leading a Facebook development team? 26 | 27 | ``` 28 | at facebook we try to hire people who are good at their jobs and also independent, so my job as a manager is pretty easy :joy: I'd say there aren't many difficulties unique to Facebook except sometimes that at a large company there are a lot of different stakeholders and we feel like we have a big responsibility to do things well. 29 | ``` 30 | 31 | 32 | --- 33 | 34 | By: @Isac 35 | What you think about ReasonML? Do you believe it will be the new language for web development? 36 | 37 | 38 | ``` 39 | I think Reason is very exciting in many ways (personally I love having a strong static type system and algebraic data types) and I don't think everyone likes JavaScript enough that it will remain dominant on the web forever, but the Reason ecosystem also has a long way to go and I think there are still some syntax quirks to the language that would be important for fix in order for it to appeal to most web developers 40 | ``` 41 | 42 | --- 43 | 44 | By: @gabriel.metalanguage 45 | What books do you think most contributed to your life? 46 | 47 | ``` 48 | I remember reading a lot of web development books when I was young from the likes of Jeffrey Zeldman and Dan Cederholm explaining some of the ways to build websites with semantic HTML, etc; I think those brought me more immersed into web development originally but they were written before serious JS development on the web was common at all. These days I don't get to read as much as I'd like but when I do I've been dedicating more of my energy towards learning more about social justice and finding ways to make our world better. 49 | ``` 50 | 51 | --- 52 | 53 | By: @lucianomlima 54 | Could you explain how Pull Requests code review works at Facebook? 55 | 56 | ``` 57 | on the React project, we use github pull request in our open source repo pretty similarly to how anyone else does – the only significant difference from most people's workflows is that we always let the author of a PR merge the commit (when it's someone on the team) so everyone has control over when their own code lands. at Facebook broadly, we have custom in-house code review tools (which began as a fork of Phabricator https://www.phacility.com/) that integrate with all of our internal systems like CI and task tracking; they're not too unusual but one nice feature that GitHub is missing is a way to do "stacked diffs" – posting two commits where one depends on the other but where the commits should be reviewed separately (perhaps even by different people) 58 | ``` 59 | 60 | --- 61 | 62 | By: @schuchowsky 63 | Recently, Airbnb and Udacity shared their feedback after using React Native. In short, looks like it worked for them at the beginning, but now they are both moving to native IOS/Android development. 64 | The question is: Is RN scaling well in Facebook? What are your thoughts on using RN on a complex project? 65 | 66 | ``` 67 | React Native isn’t the right choice for every project – I do think that the recent posts from Airbnb and Udacity share some insight into React Native’s advantages as well as some current limitations. we'll never get to a place where all apps are built in React Native, but we're constantly improving React Native so that it can work for more people – a few weeks ago I published an update on the React Native blog about the React Native roadmap and many of these planned improvements, so hopefully these improvements will solve many of the limitations these teams encountered! 68 | 69 | at Facebook, we're continuing to use RN more than ever, including on FB Marketplace which is entirely RN, which might sound like a small feature but it has 800 million monthly users and about 100 different full-screen views as part of it – larger than almost all standalone apps! 70 | ``` 71 | 72 | --- 73 | 74 | By: @haz 75 | How is Facebook’s position regarding employees doing personal side projects (open source or not)? 76 | 77 | ``` 78 | there's a review process to make sure that it doesn't conflict with what we're doing at FB (for example, you probably aren't allowed to contribute to a competing social network) but in general it's totally encouraged and I know a lot of people do it! 79 | ``` 80 | 81 | --- 82 | 83 | By: @haz 84 | How was the process for you to join Facebook and how did you get your position? 85 | 86 | ``` 87 | as I mentioned above, I was very involved in the React project even before I joined Facebook; I think I was the #1 committer to the repo, and I was attending many of the weekly team meetings – so from there, I already knew that I could probably come work here if I wanted to; at some point I decided that that would make sense so I messaged the manager at the time (who's also my current manager!) and told him that I would come interview :slightly_smiling_face: 88 | ``` 89 | 90 | --- 91 | 92 | By: @sibelius 93 | What is missing in js type systems (TS or Flow)? 94 | 95 | ``` 96 | hmm, that's a good question. I think there are often complex APIs that might be hard to write a type signature for, but oftentimes that is a reason to simplify the API! Flow and TS have different strengths but I think Flow tends to have a stronger inference engine while TS has focused more on practical concerns like editor integration and npm tooling, so I think they can learn a lot from each other too 97 | ``` 98 | 99 | --- 100 | 101 | By: @brunolemos 102 | Do you have any curious skill or hability that few people know about it? 103 | 104 | ``` 105 | I have perfect pitch, and my fingers are a little bit double-jointed. also I did a lot of math competitions when I was young so I know a lot of random math facts that tend to be useful :sweat_smile: 106 | ``` 107 | 108 | --- 109 | 110 | By: @andrei_calazans 111 | As a manager/team leader, what’s the secret to keep a healthy environment? 112 | 113 | ``` 114 | I think the most important thing is for the team to trust and respect each other, and to have an environment where it's ok for people to make mistakes and not know things – that's how you grow! 115 | ``` 116 | 117 | --- 118 | 119 | By: @andrei_calazans 120 | What skill do you think is always lacking in junior developers? 121 | 122 | ``` 123 | I think the biggest thing I wish more people did is try to not be afraid of other parts of code, even if your team didn't write it or if it's a third-party package – many people stop debugging once they reach the end of "their code" but often you can learn a lot and fix problems if you are comfortable looking one level deeper 124 | ``` 125 | 126 | --- 127 | 128 | By: @brunodahora 129 | Will the new React features, like Async Rendering, be arriving to React-Native anytime soon? How is the status of it and how is this being treated inside the team? 130 | 131 | ``` 132 | yes! the architecture changes I mentioned in this post https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018 are designed to integrate really well with async rendering so hopefully we will release them broadly for web and RN around the same time. we're currently doing our first production tests of async rendering so hopefully we'll see some good results soon :slightly_smiling_face: 133 | ``` 134 | 135 | --- 136 | 137 | By: @brunodahora 138 | What is the trend inside the React team? What we, as React developers, should be looking at? 139 | 140 | ``` 141 | many of you have already seen this talk, but Dan Abramov's talk at JSConf Iceland in March talks about the future things we're thinking about right now: https://reactjs.org/blog/2018/03/01/sneak-peek-beyond-react-16.html (edited) 142 | 143 | as React users, I think you can try to stay up to date with all of the new things but it's also not necessary so I wouldn't stress about trying to keep up with every single thing; the ideas that are really good will be here for a long time and you can always learn them later 144 | ``` 145 | 146 | --- 147 | 148 | By: @sibelius 149 | How does engineering teams in FB interact with other (like react team, react native team, flow team, relay team)? 150 | 151 | ``` 152 | we sit very close to the other teams we work the most with, so it's easy to collaborate (and we also try to do fun activities together, like yesterday we had an offsite where we played "archery tag") but basically we try to develop our larger roadmaps together so that we can make sure we are building towards the same thing, and then we can always collaborate on smaller things when something comes up 153 | ``` 154 | 155 | --- 156 | 157 | By: @sibelius 158 | What is missing in Relay/Apollo? 159 | 160 | ``` 161 | I haven't used them a lot myself, but I know that one big thing that stops people from using them is not having a graphql server, so I think it would be cool if there was some easy way to map graphql queries to normal API requests so that you can start using those libraries without a graphql server at all 162 | ``` 163 | 164 | --- 165 | 166 | By: @jcm 167 | Does facebook uses chatbots? How automated is your normal workflow? 168 | 169 | ``` 170 | we don't use that many chatbots for work (partly for security reasons) but we have a lot of internal tools (probably hundreds) that are custom-built for our use cases that make us more productive. I think it's cool to work somewhere that is large enough to do this and somewhere that cares about making employees more productive. at some level, React is even an example of this: we built it as a tool to make ourselves faster at building high-quality UIs! 171 | ``` 172 | 173 | --- 174 | 175 | By: @sibelius 176 | What IDE do you use? what is the missing feature of most IDEs today? 177 | 178 | ``` 179 | I used vim and macvim for a long time but got frustrated at configuring the file fuzzy finders (ctrlp, command-t, etc) to work well; recently I have been using vscode in vim mode although I get frustrated with it because some of the keyboard shortcuts are slightly different than vim and it confuses my muscle memory 180 | ``` 181 | 182 | --- 183 | 184 | By: @sibelius 185 | What is missing in current open source bundlers (webpack, parcel, metro bundler)? 186 | 187 | ``` 188 | high performance and reliability are the biggest things I want in a bundler :slightly_smiling_face: I haven't recently felt frustrated at anything missing but I'm sure lots of other people have ideas for improvements that could be made 189 | ``` 190 | 191 | --- 192 | 193 | Thank you so much for your time @Sophie Alpert it was AMAZING, i’m pretty sure all Brazilian devs really loved it. 194 | 195 | We have one last question: 196 | 197 | By: @allBrazilianDevelopers <3(@Nic) 198 | Any chance of you coming to Brazil for React Conf in October/2018? 199 | 200 | ``` 201 | unfortunately I don't think I will make it this year but maybe sometime in the future! 202 | thank you for having me today, it's great to see everyone! 203 | ``` 204 | 205 | -------------------------------------------------------------------------------- /ChengLou.md: -------------------------------------------------------------------------------- 1 | By: @AndreiCalazans 2 | Do you think reasonML has potential to be more than just a compiled to JavaScript language? Can it become itself a language compiled directly to machine code or any other low level language? 3 | 4 | ``` 5 | We already compile to machine code! :smiley: That's how Reason started. But since compiling to JS gets us a bigger crowd, here we are. I won't get into details, but if you look at e.g. https://github.com/bsansouci/bucklescript, you can basically make your pure Reason project to compile to assembly without many changes 6 | GitHub 7 | bsansouci/bucklescript 8 | A backend for the OCaml compiler which emits JavaScript. - bsansouci/bucklescript 9 | ``` 10 | 11 | By: @grsabreu 12 | Why should JS devs get into ReasonML if we have relatively easier options like TypeScript and Flow? What points Reason can offer that neither TS and Flow can't? 13 | 14 | ``` 15 | Until you try a "sound" type system, you wouldn't realize that most other type systems fall into an uncanny valley of static typing. By "sound", we usually mean "it'll be 100% correct", _not_ a heuristics, but a guarantee. This is subtle, but drastically changes how you think and use the types. If you hover over a type in Reason and it says "number", it'll _definitely_ be a number, not "maybe a number, maybe undefined, etc". That's one thing. The other thing is, we've got one of the fastest build pipeline in the world. One of our codebases has 1k files and it compiles in under 2s, fresh build. Type inference is still immediate. No such thing as save -> wait minutes -> check for errors 16 | ``` 17 | 18 | By: @sibelius 19 | Your talk "Spectrum of Abstraction" opened my mind about all the trade offs libraries/packages and frameworks have to decide when choosing an abstraction. 20 | What powerful abstractions have you seen that changed your mind? (edited) 21 | 22 | ``` 23 | Some of the recent improvements in machine learning really made me stop and wonder what I'm doing as engineer, lol. On top of my mind, there's also https://www.youtube.com/watch?v=xnez6tloNSQ recently and https://www.youtube.com/watch?v=iWa4t9oa5zw&feature=youtu.be&t=1972. And as always, I recommend you to check everything by http://worrydream.com (edited) 24 | ``` 25 | 26 | By: @Rafael Ramblas 27 | Why the functional approach to React? How this idea came to be and why OCaml was chosen to be the code base for the first Proof of Concept? 28 | 29 | ``` 30 | It was SML at first, then OCaml. OCaml's type system had a few extra things Jordan was looking for. He chose SML because it was a faster language for him to prototype in. Honestly, once you dig to the end of it, you realize React isn't _that_ functional or that OOP. It's somewhere in-between, and that's fine. I think we should start with "does this help me build my product better" rather than the sometime wrong proxy metric of "is this the most functional-oriented thing I can use". 31 | ``` 32 | 33 | By: @guilhermedecampo 34 | What was the hardest problem you had to deal with lately? 35 | 36 | ``` 37 | That hits close to home... not one problem but a few dozen. I worry about the future of computing, etc. But more on that another time I guess 38 | ``` 39 | 40 | By: @PlayMa256 41 | Why OCaml was only known and used in the academic environment? 42 | Are there any particular reasons for it to not had became a "mainstream" language? 43 | 44 | ``` 45 | Well, every language starts obscure, right? Arguably OCaml is taking longer than most. Simply speaking, the timing wasn't right until recently. There wasn't even a package management story until a few years ago, etc. And front-end folks were unfamiliar with types back then too. And then no such thing as BuckleScript existed. It took a while for the window of opportunities to align 46 | ``` 47 | 48 | By: @andrei_calazans 49 | As for mid-2018 is it safe to start a to production project with ReasonML, will my company still face some difficulties with its adoption? (edited) 50 | 51 | ``` 52 | The learning curve's still there; but if you've got a Reason person who knows the in and out of things, there's not much that's not achievable. BuckleScript's interop system is featureful, to say the least, so you usually know that you can bind to everything you need. Definitely do the JS track; the native track is still experimental (edited) 53 | ``` 54 | 55 | By: @grsabreu 56 | Are there any plans to provide an official Relay-like GraphQL client for Reason as an approach to get more people using it? 57 | 58 | ``` 59 | not currently, as messenger doesn't use Relay. If you're getting started with Reason, I highly recommend not trying all the pieces at the same time. You'll dissuade your coworkers and lose your chance of convincing them lol 60 | 61 | By the way, follow the spectrum of abstraction! Start with the most concrete thing you can propose to coworkers, e.g. "I can write this particular piece of our product better". Don't start with the most abstract "lemme tell you all about the functional paradigm". Everyone who starts with the latter has failed so far. Think about why, in terms of abstractions vs concretization. It's just a bad way of selling your pitch to start at the most abstract proposition... 62 | 63 | The most successful Reason conversions we've had are during Reason meetups where we gathered folks together to make e.g. a game or a small app. The moment you start preaching some monadic whatever, you've lost the interest of most newcomers/coworkers. (edited) 64 | ``` 65 | 66 | 67 | By: @Raphael Thomazella 68 | How essential is math for a person to work at the industry nowadays? E.g. Can I get by with poor math skills? 69 | 70 | ``` 71 | Front-end dev basically requires no math at this point, which isn't a bad thing, since people of all walks of life can create now. But if you're doing this professionally, I do recommend you to at least look into the proper computer science stuff, e.g. classic data structures & runtime analysis. Again, think of the spectrum of abstractions: do you need math/CS right now to ship your web app? Likely not. Do you need it to jump into a related software domain you couldn't have otherwise? Probably. 72 | 73 | There are definitely some more CS/Math-y domains such as crypto, machine learning, and anything low-level. I'd say don't be uncomfortable not knowing the theory, but make sure you do learn some so that you don't get stuck writing the same webapp in ten years. 74 | 75 | Here's my recommendation to get started (I know this works because that's how I got started): read about some simple but non-trivial data structures like binary tree, and implement one yourself. Then do it for hash map, heap, trie. One day when folks are talking about things one abstraction level lower than what you're programming in, you'll suddenly start to realize things and connect concepts. It's an exciting feeling. 76 | 77 | You're literally "powerful" once you learn proper CS. Folks usually counter that with the argument "yeah but it's not needed for what I'm doing right now", which is really talking beside the point if you think about it regarding abstraction spectrum. I think "it's not needed for what I'm doing" is actually a _great_ stance, as it prevents over-engineering, which is pretty much the root of all evil (the Reason community tries really hard not to reach for overly powerful and un-useful patterns like monads and other type-level tricks). But it has to be a learned, carefully understood stance, not an argument to defend your temporary ignorance. (edited) 78 | ``` 79 | 80 | 81 | By: @haz 82 | What's the thing you like the most about working at Facebook? 83 | 84 | ``` 85 | You're the average of your coworkers, so it's nice to be around smart, passionate coworkers. Being around great folks is probably the best thing you can do for your career, so definitely do seek these folks out. You have internet, so you can reach out to a big pool of folks whenever you want now. Use it 86 | ``` 87 | 88 | 89 | By: @Raphael Thomazella 90 | How was the process of making a programming language? 91 | 92 | ``` 93 | I wouldn't know, since we started with taking an existing one and tweak the edges as we saw fit. I'm very close to folks who created languages though; if it's to get work done, then forget about it right now, because you won't get any useful work done by starting with creating your own language lol. It's akin to "let's create a game engine before starting our game!". You never come back writing your product. 94 | If it's just for fun: you'd still start with a concrete goal, but a goal that's concrete relative to creating said language, e.g. "I wanna see if I can implement a few type system feature" or "I wonder if I can make these optimizations or explore these new paradigms". Honestly, I'm always tracking new interesting languages, but it's not my main interest. My main interest is getting the job done :smiley: 95 | ``` 96 | 97 | 98 | By: @haz 99 | How did you learn English and French? Do you have another language you would like to learn? 100 | 101 | ``` 102 | I'm Chinese and immigrated to Montreal, Canada. Montreal's official language is French. Every Chinese friend I have there are at least trilingual; it definitely sounds impressive to some folks! 103 | My school also taught Latin, and I learned a bit of Spanish by myself. But use or it lose it. And I lost these two. 104 | ``` 105 | 106 | 107 | By: @sibelius 108 | Will Reason have support to generators, async await, async generators and other async sugars syntaxes? 109 | 110 | ``` 111 | Generators will be hard; not thinking about it atm. Async/await, likely. This topic has been delayed for a long time now, because we just still don't think Promises is the way to go for us (perf, semantics, bike shedding, flexibility). We're thinking about it mostly for the interop purposes. 112 | ``` 113 | 114 | gabriel.metalanguage [3:51 PM] 115 | Last question, would you consider coming to React Brasil Conf in 2019? All Brazilian React devs would love to see you giving a talk 116 | 117 | Cheng Lou [3:51 PM] 118 | I haven't decided yet, but thanks for the invitation! :smiley: 119 | --------------------------------------------------------------------------------