
Beberapa tahun yang lalu, ada banyak posting blog “Lihat apa bahasa Kotlin yang menarik” yang menjelaskan dasar-dasarnya. Pada tahun 2019, Anda tidak perlu lagi mengunyah dasar-dasarnya, tetapi sekarang publikasi muncul dalam format yang sama sekali berbeda. Marchin Moskala, yang telah mengajar orang bahasa ini selama bertahun-tahun, sekarang menerbitkan buku "Kotlin Efektif" - yaitu, bukan hanya "cara menulis di Kotlin", tetapi "cara menulis di Kotlin dengan cara terbaik".
Dan Marchin akan segera mendatangi kami di Mobius
dengan laporan . Karena itu, kami bertanya kepadanya tentang buku baru, laporan, pelatihan orang Kotlin, dan tentang apa yang terjadi di industri seputar bahasa ini. Dan tentang perbedaan antara kata "efektif" dan "efisien".
- Pertama, tolong beri tahu kami sedikit tentang diri Anda. Apa yang Anda lakukan sebelum Anda mulai mendidik orang dan menciptakan Kt. Akademi ?- Saya sudah pemrograman sejak kecil. Saya mulai dengan Visual Basic ketika saya berusia 10 karena saya ingin membuat game. Kemudian, selama pelatihan, saya menemukan Android untuk diri saya sendiri dan mengabdikan diri untuk pengembangan Android. Pada tahun-tahun berikutnya saya bekerja untuk perusahaan seperti Samsung, Warta dan mBank (sebagai karyawan Apreel), Docplanner dan Gamekit. Dan juga menemukan Kotlin dan jatuh cinta. Saya mulai membuat presentasi tentang dia, menulis artikel dan buku. Segera, perusahaan mulai meminta saya untuk pelatihan, dan Kt muncul. Akademi
- Apakah Anda memiliki status mitra JetBrains, dan apa artinya? Persyaratan apa yang perlu Anda penuhi? Apakah Anda sering mengobrol dengan JetBrains?- Syarat utama adalah mengenal Kotlin dengan baik dan menyebarkan pengetahuan tentang hal itu. Juga penting bahwa seseorang dapat diandalkan, dan itu tidak akan berlebihan jika dia dikenal.
Saya tetap berhubungan dengan beberapa anggota tim Kotlin, serta dengan para penginjil, tetapi saya sendiri tidak yakin seberapa banyak ini terkait dengan status mitra. Sebagian besar, status ini adalah cara bagi JetBrains untuk melaporkan bahwa seseorang mengetahui teknologi JetBrains tertentu, dan sertifikat dari orang itu sangat berharga.
- Anda mengajar orang Kotlin, sehingga Anda mendapatkan banyak umpan balik dan pertanyaan tentang hal itu dari orang yang berbeda. Apa yang mereka katakan dan apa yang paling sering mereka tanyakan?- Orang-orang sangat menyukainya. Mereka terutama mencatat singkatnya dan fakta bahwa mereka melakukannya dengan sangat mudah. Dan fungsi tingkat atas dan penerima implisit dalam ekspresi lambda (penerima implisit) khawatir. Menurut pendapat saya, tidak ada masalah dengan opsi pertama, tetapi bagaimana dengan yang kedua ... Saya pikir orang berlebihan, dan kami baru mulai menyadari skala masalah.
- Dan apakah ada kesalahan umum atau antipattern dalam kode Kotlin orang yang berbeda?- Saya pikir ini hanya keinginan berlebihan untuk menyembunyikan penerima. Nah, Anda tahu, segala macam DSL di dalam DSL, terapkan di dalam berlaku ... semakin sering penerima menggunakannya secara terselubung. Sangat bagus ketika Anda menulis kode, tetapi tidak ketika Anda membacanya.
- Awalnya, semua orang datang ke Kotlin hanya dari Jawa. Sekarang apakah Anda harus mengajar orang yang sama sekali tidak mengenal Jawa, tetapi ingin belajar Kotlin?- Ya, saya melatih banyak pengembang dalam JavaScript dan Swift, tim rocker dan bahkan tim pengembang di C, untuk siapa lompatan besar Kotlin. Kotlin juga banyak berpikir tentang pythonis - Saya harap mereka juga ikut.
- Apakah Anda merekomendasikan belajar Kotlin sebagai bahasa pertama di 2019? Atau apakah pemula masih harus berurusan dengan Jawa, sehingga akan sulit?- Jika seseorang ingin terlibat dalam pengembangan Android, saya merekomendasikannya. Jika saya punya lebih banyak waktu, saya akan menulis buku tentang pengembangan Android modern, yang tidak menyentuh asal sama sekali, tetapi segera menyarankan pendekatan baru: Kotlin, AndroidX, Room, WorkManager, ConstraintLayout dan MVVM dengan ViewBinding (dan segera Jetpack Compose ) ... Kita dapat hidup dengan baik tanpa Java, Support Library, DatabaseHelper, AlarmManager.
Backend lebih rumit, tetapi juga mengasyikkan di sana dengan kerangka kerja Kotlin modern seperti Ktor. Jadi bagi siswa ini juga bisa menjadi pilihan yang menarik.
- Bahasa yang berbeda dievaluasi secara berbeda dalam konteks pembelajaran: Python sering dipuji dalam hal ini, Jawa terkadang dikritik. Bagaimana rasanya mengajar Kotlin dibandingkan dengan Jawa?- Di satu sisi, di Kotlin jauh lebih mudah untuk melakukan sesuatu. Saat Anda mengajar Kotlin, kemampuan untuk menempatkan banyak kelas dan fungsi dalam satu file sangat membantu.
Kotlin, di sisi lain, memiliki lebih banyak fitur daripada Java, sehingga mempelajarinya membutuhkan waktu. Meskipun, sampai batas tertentu, idiom-idiom ini masih mengandung pola berulang dari Jawa: misalnya, kelas data, yang bagi pemula di Jawa akan sulit, dan di Kotlin sepele, cukup menambahkan pengubah data. Saya akan mengatakan bahwa belajar Kotlin umumnya lebih menyenangkan.
- Terkadang Kotlin dianggap hanya sebagai "bahasa untuk Android", tetapi memiliki ambisi di bidang lain. Apa yang Anda lihat dari pelatihan Anda: semua permintaan untuk mereka dari pengembang seluler, atau apakah backender juga berlaku?- Setahun yang lalu, hampir semua orang adalah untuk pengembang Android. Dan sekarang, saya kira, sekitar 50 hingga 50. Ada juga minat yang meningkat pada pelatihan Kotlin Coroutines dan Kotlin Efektif.
- Untuk pertanyaan Kotlin Efektif: buku baru Anda disebut sama, dan laporan Anda tentang Mobius adalah Kotlin Efisien. Apakah nama yang mirip seperti itu berarti bahwa laporan baru itu menceritakan kembali secara singkat tesis-tesis dari seluruh buku?- Kata-kata "efektif" dan "efisien" dalam pemrograman memiliki arti yang sangat berbeda, seperti "aman" dan "aman". "Efektif" lebih umum, tentang praktik terbaik yang paling berbeda. Dan "Efisien Kotlin" hanya tentang kinerja dan optimalisasi memori, bagian ketiga dikhususkan untuk ini dalam buku ini. Untuk Mobius, ini lebih baik, karena konferensi ini dikenal dengan laporan lanjutan untuk pengembang berpengalaman. Dan waktu laporan terbatas, seluruh buku tidak dapat dibahas di sana.
- Dan prinsip-prinsip "Kotlin Efektif" dan "Kotlin Efisien" cocok untuk semua pengembang, tidak peduli apa yang mereka tulis di Kotlin, atau adakah kekhususan di sana?- Semua orang: tidak hanya Android dan backend, tetapi bahkan mereka yang menggunakan Kotlin / JS dan Kotlin / Asli.
- Nama "Kotlin Efektif" segera mengingatkan "Jawa Efektif" oleh Joshua Bloch. Bagaimana buku Anda terlihat seperti dia?- Ada banyak buku dalam format "Efektif X", dan semuanya dibangun dengan prinsip yang sama: tunjukkan dengan contoh nyata bagaimana menulis kode dengan lebih baik. Saya terinspirasi oleh Java Efektif dan lainnya oleh C # Efektif, Python Efektif, C Efektif, JavaScript Efektif. Tetapi tidak ada ikatan ketat dengan buku-buku ini - semua ini adalah bahasa yang berbeda, dan saran yang berbeda diperlukan untuk itu. Meskipun, jika Anda membaca semuanya dan kemudian membaca Efektif Kotlin, Anda dapat menautkan saran saya dengan saran dari buku "efektif" lainnya. Dan juga dengan tips dari buku-buku berpengaruh lainnya seperti Code Complete, Clean Code, Clean Archutecture, Struktur dan implementasi program komputer, dan sebagainya. Tujuan saya adalah mengambil kiat-kiat terbaik yang sesuai dengan Kotlin dan menyajikannya dengan cara yang paling bisa dimengerti.
- Banyak buku telah diterbitkan tentang Kotlin, tetapi biasanya mereka berada dalam format "bagaimana melakukan sesuatu di Kotlin", dan bukan "bagaimana melakukannya dengan cara yang paling efisien." Apakah Anda berpikir bahwa pada awalnya masyarakat membutuhkan dasar-dasar Kotlin, tetapi sekarang telah dikuasai dan ingin meningkatkan kualitas?- Ya, saya pikir komunitas telah tumbuh sangat banyak sehingga sekarang perlu praktik terbaik. Menurut situs resmi, sudah ada lebih dari dua juta pengembang Kotlin di dunia. Ini banyak sekali. Sudah ada banyak "Cara ..." memformat artikel dan jawaban untuk Stack Overflow, tetapi ada semakin banyak orang yang harus menggunakan Kotlin karena solusi CTO, atau untuk siapa itu menjadi bahasa pertama. Sekarang menetapkan standar sangat penting karena Kotlin memungkinkan banyak, dan jika kita tidak menghentikan orang dari melakukan hal-hal gila, mereka mungkin akhirnya menyukainya dan mulai menganggapnya membingungkan dan tidak dapat dibaca.
- Praktik terbaik selalu menjadi topik yang bisa diperdebatkan, pendapat orang tentang "apa yang terbaik" berbeda. Apakah ada diskusi dalam pelatihan atau laporan Anda?- Ya, dan diskusi ini menginspirasi saya untuk menulis Kotlin Efektif. Seperti yang saya katakan, orang sering memperhatikan beberapa fitur. Saya biasanya mendengarkan dan membiarkan mereka berbicara. Sebagai hasilnya, selalu memungkinkan untuk sampai pada kesimpulan tentang kelebihan dan kekurangan fitur, dan kemudian tim memutuskan bagaimana menghadapinya.
"Kamu menerbitkan buku kedua." Seperti apa proses pengerjaan mereka? Misalnya, bagaimana Anda memutuskan siapa yang akan menerbitkannya?- Yang pertama saya terbitkan di Pakta. Saya tidak cukup senang dengan kolaborasi ini, jadi saya memutuskan untuk menerbitkan Kotlin Efektif sendiri menggunakan LeanPub. Sejauh ini, pengalamannya luar biasa. Saya memiliki pengulas sukarela yang sangat baik, desainer yang baik, dan tipografi yang bagus. Masalah muncul hanya dengan akun di Amazon, tapi saya harap saya punya waktu untuk menanganinya sebelum penerbitan versi final buku.
- Apakah Anda menyarankan pengembang untuk menulis buku? Seberapa bermanfaat ini untuk pengembang?"Untuk sampai ke buku, Anda perlu tahu bahwa itu hampir pasti akan memakan waktu lebih lama daripada yang Anda harapkan." Perkirakan 1-2 jam per halaman. Dan jika Anda seorang pengembang, kecil kemungkinan buku itu akan memberi Anda lebih banyak uang daripada jika Anda menghabiskan waktu pemrograman ini. Di sisi lain, Anda akan belajar banyak. Untuk menulis dengan percaya diri, Anda perlu mempelajari topik dengan cermat dan benar-benar memahami setiap argumen. Dan ini adalah pengalaman unik.
- Dan pertanyaan terakhir: jika Anda dapat mengubah satu hal di Kotlin, apakah itu?- Saya pikir saya akan menyingkirkan Unit. Dia sedikit menyebalkan. Terutama saat berinteraksi dengan beberapa bahasa lain.
Terakhir, ingat tautan ke apa yang disebutkan dalam teks. Buku "Effective Kotlin" diterbitkan di Leanpub , dan deskripsi laporan baru Marcin, yang dengannya ia akan tiba di Mobius pada bulan Desember, diterbitkan di situs web konferensi (dan Anda juga dapat melihat program lengkapnya di sana ).