“É fundamental que a comunidade estabeleça padrões”: Marchin Moskala sobre Kotlin



Alguns anos atrás, havia muitas postagens no blog “Veja que linguagem interessante do Kotlin” explicavam o básico. Em 2019, você não precisa mais mastigar o básico, mas agora uma publicação aparece em um formato completamente diferente. Marcin Moskala, que ensina esse idioma às pessoas há muitos anos, agora está publicando o livro “Effective Kotlin” - ou seja, não apenas “como escrever Kotlin”, mas “como escrever Kotlin da melhor maneira”.

E em breve Marchin nos procurará no Mobius com um relatório . Por isso, perguntamos a ele sobre o novo livro, o relatório, o treinamento do pessoal da Kotlin e o que está acontecendo no setor em torno desse idioma. E sobre a diferença entre as palavras "eficaz" e "eficiente".

- Primeiro, conte-nos um pouco sobre você. O que você fez antes de começar a educar as pessoas e a criar o Kt. Academia ?

- Venho programando desde a infância. Comecei com o Visual Basic quando tinha 10 anos porque queria fazer jogos. Mais tarde, durante o treinamento, descobri o Android para mim e me dediquei ao desenvolvimento do Android. Nos anos seguintes, trabalhei para empresas como Samsung, Warta e mBank (como funcionário da Apreel), Docplanner e Gamekit. E também descobriu Kotlin e se apaixonou. Comecei a fazer apresentações sobre ele, escrever artigos e livros. Logo, as empresas começaram a recorrer a mim para treinamento, e assim Kt apareceu. Academia.

- Você tem status de parceiro JetBrains, e o que isso significa? Quais requisitos você precisa atender? Você costuma conversar com o JetBrains?

- O principal requisito é conhecer bem o Kotlin e espalhar conhecimento sobre ele. Também é necessário que uma pessoa seja confiável, e não será supérflua se for conhecida.

Eu mantenho contato com alguns membros da equipe de Kotlin, bem como com os evangelistas, mas eu mesmo não tenho certeza do quanto isso está relacionado ao status de parceiro. Principalmente, esse status é uma maneira de o JetBrains relatar que alguém conhece uma tecnologia específica do JetBrains, e os certificados dessa pessoa são valiosos.

- Você ensina as pessoas do Kotlin, para receber muito feedback e perguntas de pessoas diferentes. O que eles dizem e o que perguntam com mais frequência?

- As pessoas realmente gostam dele. Eles notam especialmente sua brevidade e o fato de fazê-lo com muita facilidade. E suas funções de nível superior e destinatários implícitos nas expressões lambda (receptores implícitos) estão preocupados. Na minha opinião, não há problema com a primeira opção, mas e com a segunda ... acho que as pessoas estão exagerando, e estamos apenas começando a perceber a escala do problema.

- E há algum erro ou antipadrão comum no código Kotlin de pessoas diferentes?

- Eu acho que isso é apenas um desejo excessivo de esconder o destinatário. Bem, você sabe, todos os tipos de DSL dentro de DSL, aplicam-se dentro de aplica ... cada vez mais o destinatário a usa secretamente. É ótimo quando você escreve código, mas não quando lê.

- Inicialmente, todos vieram para o Kotlin somente a partir de Java. Agora você tem que ensinar pessoas que não conhecem Java, mas querem aprender Kotlin?

- Sim, treinei muitos desenvolvedores em JavaScript e Swift, uma equipe de roqueiros e até uma equipe de desenvolvedores em C, para quem Kotlin foi um grande salto. Kotlin também pensa muito em pythonists - espero que eles também participem.

- Você recomendará aprender Kotlin como o primeiro idioma em 2019? Ou os iniciantes ainda terão que lidar com Java, por isso será difícil?

- Se uma pessoa deseja se envolver no desenvolvimento do Android, eu definitivamente recomendo. Se eu tivesse mais tempo, escreveria um livro sobre o desenvolvimento moderno do Android, que não tocava nas origens, mas imediatamente sugeriu novas abordagens: Kotlin, AndroidX, Room, WorkManager, ConstraintLayout e MVVM com ViewBinding (e logo Jetpack Compose ) ... Podemos viver bem sem Java, Biblioteca de Suporte, DatabaseHelper, AlarmManager.

O back-end é mais complicado, mas também é interessante com estruturas modernas do Kotlin como o Ktor. Portanto, para os alunos, isso também pode ser uma opção interessante.

- Linguagens diferentes são avaliadas de maneira diferente no contexto da aprendizagem: o Python é frequentemente elogiado nesse sentido, o Java às vezes é criticado. Como é ensinar Kotlin em comparação com Java?

- Por um lado, em Kotlin é muito mais fácil fazer alguma coisa. Quando você ensina o Kotlin, a capacidade de colocar muitas classes e funções em um arquivo ajuda muito.

O Kotlin, por outro lado, possui mais recursos que o Java, portanto, aprendê-los leva tempo. Embora, até certo ponto, esses idiomas ainda incorporem padrões repetidos do Java: por exemplo, classes de dados, que para um iniciante em Java serão difíceis, e no Kotlin trivial, basta adicionar o modificador de dados. Eu diria que aprender Kotlin é geralmente mais divertido.

- Às vezes, o Kotlin é percebido apenas como a "linguagem para Android", mas tem ambições em outras áreas. O que você vê nos seus treinamentos: toda a demanda deles por desenvolvedores de dispositivos móveis ou backenders também se aplicam?

- Há um ano, quase todo mundo era para desenvolvedores do Android. E agora, penso, entre 50 e 50. Também há um interesse crescente nos treinamentos da Kotlin Coroutines e da Effective Kotlin.

- Para a questão da Effective Kotlin: seu novo livro é chamado de mesmo, e seu relatório sobre o Mobius é Efficient Kotlin. Nomes semelhantes significam que o novo relatório é uma breve recontagem das teses de todo o livro?

- As palavras "eficaz" e "eficiente" na programação têm significados muito diferentes, como "seguro" e "seguro". "Efetivo" é mais geral, sobre as melhores práticas diferentes. E "Kotlin eficiente" é apenas sobre otimizações de desempenho e memória, a terceira parte é dedicada a isso no livro. Para Mobius, isso é melhor, porque a conferência é conhecida por relatórios avançados para desenvolvedores experientes. E o tempo do relatório é limitado; o livro inteiro não pode ser coberto por lá.



- E os princípios de "Kotlin eficaz" e "Kotlin eficiente" são adequados para todos os desenvolvedores, não importa o que eles escrevam no Kotlin, ou há alguma especificidade aí?

- Todos: não apenas o Android e o back-end, mas também aqueles que usam o Kotlin / JS e o Kotlin / Native.

- O nome "Effective Kotlin" traz imediatamente à mente o "Effective Java" de Joshua Bloch. Como o seu livro se parece com ela?

- Existem muitos livros no formato “Effective X”, e todos eles são criados com o mesmo princípio: mostre com exemplos concretos como escrever melhor o código. Fui inspirado pelo Java Efetivo e outros pelo C # Efetivo, Python Efetivo, C Efetivo, JavaScript Efetivo. Mas não existe uma ligação estrita a nenhum desses livros - todos esses idiomas são diferentes e são necessários conselhos diferentes. No entanto, se você ler todos eles e depois ler Effective Kotlin, poderá vincular qualquer um dos meus conselhos aos conselhos de outros livros "eficazes". E também com dicas de outros livros influentes, como Código Completo, Código Limpo, Arquitetura Limpa, Estrutura e implementação de programas de computador e assim por diante. Meu objetivo era pegar as melhores dicas que se encaixassem no Kotlin e apresentá-las da maneira mais compreensível.

- Muitos livros já foram publicados sobre o Kotlin, mas geralmente eles estavam no formato "como fazer algo no Kotlin", e não "como fazê-lo da maneira mais eficiente". Você acha que, a princípio, a comunidade precisava do básico do Kotlin, mas agora ele domina e deseja melhorar a qualidade?

- Sim, acho que a comunidade cresceu tanto que agora precisa das melhores práticas. Segundo o site oficial, já existem mais de dois milhões de desenvolvedores de Kotlin no mundo. Isso é muito. Já existem muitos artigos no formato “Como ...” e respostas para o Stack Overflow, mas há cada vez mais pessoas que tiveram que usar o Kotlin por causa da solução do CTO ou para quem se tornou o primeiro idioma. Agora, definir padrões é fundamental porque Kotlin permite muito e, se não impedirmos as pessoas de fazerem coisas loucas, elas podem acabar gostando e começar a considerá-las confusas e ilegíveis.

- As práticas recomendadas são sempre um tópico discutível, as opiniões das pessoas sobre "o que é melhor" diferem. Existem discussões em seus treinamentos ou relatórios?

- Sim, e essas discussões me inspiraram a escrever o Kotlin eficaz. Como eu disse, as pessoas geralmente se preocupam com alguns recursos. Eu costumo ouvir e deixá-los falar. Como resultado, sempre é possível chegar a conclusões sobre as vantagens e desvantagens do recurso e, em seguida, as equipes decidem como lidar com ele.

"Você está publicando o segundo livro." Como é o processo de trabalhar neles? Por exemplo, como você decide quem o publicará?

- A primeira vez que publiquei no Pacto. Como não estava muito feliz com a colaboração, decidi publicar o Effective Kotlin sozinho usando o LeanPub. Até agora, a experiência é excelente. Tenho excelentes revisores voluntários, um bom designer e uma boa tipografia. Os problemas surgiram apenas com a conta na Amazon, mas espero ter tempo para lidar com isso antes da publicação da versão final do livro.

- Você aconselha os desenvolvedores a escrever livros? Quão útil é isso para o desenvolvedor?

"Para chegar ao livro, você precisa saber que quase certamente levará mais tempo do que o esperado". Calcule 1 a 2 horas por página. E se você é um desenvolvedor, é improvável que o livro traga mais dinheiro do que se você gastasse esse tempo programando. Por outro lado, você aprenderá muito. Para escrever com confiança, você precisa estudar cuidadosamente o tópico e entender verdadeiramente cada argumento. E esta é uma experiência única.

- E a última pergunta: se você pudesse mudar uma coisa em Kotlin, o que seria?

Acho que me livraria da unidade. Ele é um pouco chato. Especialmente ao interagir com alguns outros idiomas.

Por fim, lembre-se dos links para o que é mencionado no texto. O livro "Effective Kotlin" é publicado no Leanpub , e a descrição do novo relatório de Marcin, com o qual ele chegará a Mobius em dezembro, é publicada no site da conferência (e você também pode ver o programa completo lá ).

Source: https://habr.com/ru/post/pt472000/


All Articles