Seri wawancara ini didedikasikan untuk
ScalaConf ,
konferensi nyata pertama di Rusia yang didedikasikan sepenuhnya untuk Scala pada tanggal 26 November. Sebelum acara ini, saya mewawancarai 6 saksi dan "rasul" tentang asal usul gerakan Scala di Rusia. Tidak akan ada diskusi tentang Free, Tagless Final, Monix, IO atau ZIO, dan "kickback" Future. Tujuan saya adalah mendiskusikan Scala dalam konteks sejarah. Saya menulis semua cerita berjanggut, kembali 10 tahun yang lalu dan mengumpulkan cerita yang tidak relevan tetapi menarik tentang bahasa.

Serial ini disusun dalam format "The Day Before" oleh Parfyonov - acara, orang, fenomena. Saya akan menemukan orang-orang yang pernah mengatur pertemuan di Rusia, mengumpulkan informasi dari mereka tentang segala hal penting dan menarik, menyelesaikannya dan mengaturnya berdasarkan tahun. Setiap wawancara dimulai dengan fakta bahwa ia meminta untuk menetapkan tahun cerita seakurat mungkin. Tapi, wawancara ternyata tidak seperti yang saya harapkan dan memotong tangan mereka dalam format "The Other Day" tidak naik. Oleh karena itu, seri ini akan menceritakan kisah-kisah dalam bentuk penyelidikan pribadi. Bagaimana itu, dalam urutan apa, bagaimana saya pergi ke orang-orang, dan apa yang saya ketahui tentang mereka sebelum wawancara. Di bawah cut - interogasi dan protokol, proyek pertama tentang Scala, mitaps pertama dan kelahiran gerakan.
Apa yang diharapkan dari penyelidikan?
Banyak cerita tentang format teknologi pribadi yang entah bagaimana terkait dengan Scala. Sebagian besar dari mereka berhubungan dengan 2011-2015, tetapi bahkan sedikit masih berhasil mengembalikan tahun
2007 orang lain. Proyek pertama dan alasan untuk memilih bahasa. Tentang proyek yang gagal juga! Perpustakaan, ekosistem, IDE, mitaps pertama di Moskow dan St. Petersburg, dan itu saja. Secara umum - banyak hal, bahkan tanpa Kotlin tidak bisa melakukannya.
Untuk merumuskan harapan yang lebih holistik, selanjutnya kami mendaftar orang-orang yang kami kelola untuk berkomunikasi:
Roman Grebennikov ,
Roman Timushev ,
Alexander Podkhalyuzin ,
Vladimir Uspensky ,
Roman Elizarov ,
Alexey Fomkin, dan
Nikolai Tatarinov .
Hari ini saya akan memberi tahu Anda apa yang mereka bicarakan dengan Roman Grebennikov dan Roman Timushev.
Roman Grebennikov - 2011. Voronezh Beau monde dan C ++ vs Erlang vs Scala

Jadi,
tersangka pertama yang saya tuju adalah
Roman . Saya tidak tahu banyak tentang dia, tetapi semua bukti menunjukkan bahwa dia telah berada di tema Scala untuk beberapa waktu. Ketika pergi ke konferensi Jawa tidak cukup membosankan bagi saya, saya
berbicara dengannya. Ini secara bersamaan menampilkan Scala dan Clojure, tetapi dengan cukup hati-hati agar tidak mengejutkan penonton. Saya juga menemukan slide dengan slopokami dari laporan "
Kinerja Scala untuk yang ragu-ragu ." Laporan ini mungkin masih satu-satunya di Rusia tentang topik kinerja keren ini.
Setelah kira-kira menggambarkan konsep artikel itu, saya pergi ke Roman untuk memberitahunya tentang gerakan Scala yang lama.
Roman Grebennikov: Sejujurnya, saya tidak pernah mencoba mengikuti gerakan Scala di Rusia, karena terlalu kecil dibandingkan dengan yang asing. Pada tahun 2014, di Voronezh, kami memiliki ruang obrolan dengan seluruh elite - 4 orang di seluruh kota yang tahu cara menggunakan Scala. Apa yang terjadi di Moskow dan kota-kota lain, saya tidak tahu :)
- Informatif. Menurut genre klasik, dalam sebuah wawancara saya harus bertanya tentang proyek pertama dan keakraban dengan bahasa.Roman Grebennikov: Di suatu tempat di 2011, saya melihat sebuah permulaan dengan teman-teman, yang, secara mengejutkan, masih hidup dan menguntungkan. Startup ini terlibat dalam penilaian kredit berdasarkan data publik dari jejaring sosial. Sebelum itu, saya menulis disertasi dengan kode C ++ dan secara paralel bekerja di hedge fund kecil - saya melakukan segala macam strategi dan perdagangan algoritmik di bare C ++. Tidak mengherankan, sistem pengumpulan data prototipe pertama juga ditulis dalam C ++.
Kemudian ternyata C ++ bukan bahasa yang ideal untuk tugas dengan asinkron dan distribusi. Pada satu saat yang baik men-debug sebuah coredump 20 GB, setelah jatuhnya laba-laba web kami berikutnya, ide itu merayap ke kepala saya untuk memilih alat yang lebih cocok untuk tugas kami dan tidak menendang kuda mati. Kami melihat tiga kandidat pengganti: Erlang, Jawa, dan Scala. Kami menulis tiga prototipe di lutut saya untuk mengisi jumlah maksimum kerucut di muka.
Erlang tidak menyukai perpustakaan dan ekosistem standar yang sangat kecil di sekitarnya. Untuk setiap orang, Anda perlu bersepeda perpustakaan baru untuk hal-hal dasar yang hampir di mana-mana di luar kotak. Masalah kinerja juga menghambat kehidupan. Di Jawa 2011, tumpahan tidak suka jumlah platplate raksasa untuk ditulis untuk aplikasi asinkron. Tapi di Scala, kecuali untuk monad yang tidak jelas dan scalaz alien, semuanya baik-baik saja dengan segalanya. Kemudian Akka 2.0 dirilis, di mana kami menulis ulang semuanya. Anehnya, potongan-potongan kode itu berfungsi hingga hari ini, meskipun pada tahun 2019 saya tidak akan membual tentang kualitas kode itu.
Di bidang tahun-tahun itu, saya bukan satu-satunya yang menulis di Scala di Voronezh. Demi penggemar, kami terkadang mengatur pertemuan kecil dan saling memberi tahu semua hal aneh. Mitapas terbuka, dan biasanya sekelompok javists datang kepada mereka, yang mengerang dan mengerang saat melihat semacam neraka seperti kombinator pengurai. Lalu ada ruang obrolan kecil di Skype untuk membahas masalah mendesak dan melempar kipas. Sekarang dia benar-benar mati, karena Telegram memiliki @scala_ru.
Roman Timushev - 2012. Akka pertama, pembaruan sbt, dan kelahiran mitaps Moskow.

Saya belum pernah ke Moscow Scala-meeting, tetapi saya mendengarnya di chat room dan podcast. Hanya satu orang yang
aktif di sekitar mereka -
Alexey Fomkin . Karena itu, saya bahkan tidak berpikir bahwa orang lain dapat melakukannya. Hanya kebetulan saya mengetahui bahwa masih ada orang ketika saya mencari informasi tentang mitap pertama dan membuka halaman di
meetup.com . Salah satunya adalah
Roman Timushev , penulis
sbt-updates .
Roman Timushev: Ayo beres. Saya dari Nizhny Novgorod, saya tinggal di Moskow, dan sekarang saya telah pindah ke Munich. Saya memasuki Scala pada 2012, ketika versi 2.9 masih ada, dan hanya Akka pertama. Dia bekerja di Grid Dynamics, di mana kami bekerja pada sistem terdistribusi, cache, terutama di JVM.
Ada ide untuk membuat produk baru. Ini adalah permulaan dalam perusahaan untuk mengelola sistem terdistribusi, penyebaran, pembaruan - untuk semua yang sekarang disebut DevOps. Orang-orang berkumpul dengan latar belakang yang sangat berbeda: JVM, .NET, Python.
Maka kami duduk, memikirkan apa yang harus ditulis untuk produk baru. Kami mencoba Python, Scala, dan beberapa bahasa ketiga. Kami mengembangkan prototipe, dan Scala lebih menyukainya, terutama setelah Java - mengetik statis, semuanya. Karena itu, kami memutuskan untuk menulisnya dan saya masuk ke Scala.
Pada 2012, Scala rumit dengan perpustakaan. Sebagian besar ekosistem tidak ada di sana sekarang. Ada tumpukan Twitter, tetapi terisolasi, dengan karakteristiknya sendiri.
- Sepertinya dia masih tetap begitu.Roman Timushev : Pada saat itu semuanya benar-benar ada di sana, dan sekarang mereka entah bagaimana berusaha menyatukan lebih banyak bagian dengan ekosistem lainnya. Lalu ada semua jenis perpustakaan untuk HTTP: unfiltered, spray, scalaz. Tidak ada kucing sama sekali. Semuanya baik di masyarakat.
- Tidak ada yang dikutuk?Roman Timushev: Mungkin mereka bersumpah, tetapi itu tidak merangkak ke permukaan.
Kemudian hanya ada Akka dan Play pertama. Kami melihat dan berpikir bahwa Akka sangat cocok dengan sistem kami di masa depan. Tampaknya keren, tidak ada kunci, semuanya akan cepat, dapat diandalkan, mari menulis di Akka dan pilih Play.
Untuk beberapa waktu kami menderita Akka pertama - sakit. Aku masih ingat
Future dari Akka pertama ketika timeout dijahit dengan ketat di mereka. Secara default, batas waktu berlangsung 5 detik. Combinator apa pun yang Anda panggil menciptakan masa depan baru dengan batas waktu ini. Jika Anda ingin melakukan sesuatu yang membutuhkan waktu lebih dari 5 detik, maka semuanya adalah komedi finita la. Itu menyakitkan, kami bertarung untuk waktu yang lama, tetapi kemudian kami meluncurkan Akka kedua, masa depan muncul di Scala dan hidup menjadi lebih mudah.
- Apakah Anda memiliki distributor? Lalu akka-cluster tidak?Roman Timushev: Menurut saya, ketika kami mulai, belum ada kluster. Tetapi ketika dia muncul, kami menyeretnya dan menyapu masalah dengan semua jenis otak yang terpisah. Mereka menulis pemecahan-otak-pemecahan mereka, yang entah bagaimana diselesaikan melalui database kami.
Pada masa itu, banyak yang masih menggunakan Eclipse. Tampaknya Eclipse secara default adalah IDE Scala resmi. Kami mengembangkan proyek kami dan menangkap semua kesalahan yang mungkin dilakukan oleh pemula yang melihat Akka, Scala untuk pertama kalinya, dan itu saja. Meskipun demikian, produk ini berhasil. Dari Scala hanya ada kesan positif.
- Apakah ada aturan umum untuk menulis di Eclipse?Roman Timushev: Entah bagaimana, ya, itu normal.
- Apakah ada plugin Anda sendiri?Roman Timushev: Ya, ada plugin resmi yang berfungsi dengan baik. Saya tidak ingat cara kerja plugin IDEA, tetapi saya tidak yakin apakah itu lebih baik. Eclipse selalu agak aneh: hidup, atau tidak benar-benar.
Sebelum saya beralih ke Scala, saya kebanyakan menulis di Jawa. Harus bekerja dengan Maven, Gradle. Ada plugin di mana-mana untuk memperbarui dependensi atau setidaknya menonton. Bagi Scala, ini bukan, jadi saya harus menulis sendiri dan menggunakannya. Dia masih hidup, orang-orang menggunakannya - semua orang senang.
Sbt-pembaruan dapat digunakan sebagai plugin terpisah. Ini menunjukkan pembaruan ketergantungan. Frank Thomas sekarang aktif mempromosikan
scala-pramugara . Di bawah tenda, ia memiliki plugin yang sama yang pernah saya tulis. Tentu saja, selain plugin ini masih ada banyak keajaiban tentang cara memperbarui dependensi di kebun binatang file.
Di satu sisi, saya tidak mengerti bagaimana orang bisa hidup tanpanya. Di sisi lain, ketika saya datang ke perusahaan, dan di sini sudah di GitHub ketergantungan pada proyek saya entah bagaimana lucu.
- Bagus?Roman Timushev: Ya, dan omong-omong, itu tidak perlu ditambahkan ke proyek. Sbt-pembaruan harus dikonfigurasi secara lokal, seperti halnya grafik dependensi, dll.
- Lalu apa yang terjadi dengan gerakan itu?Roman Timushev: Awalnya, ada sedikit gerakan, setidaknya di Rusia. Di perusahaan tempat saya bekerja, perjalanan bisnis ke AS tersebar luas. Dan di sana, di Lembah, ada banyak gerakan: acara, pertemuan, konferensi, dan yang lainnya. Beberapa kali seminggu beberapa Scala-mitap wajib. Tiba di sana, sesuatu terus-menerus terjadi di sana, kembali itu kosong. Saya berpikir tentang cara memperbaikinya, dan memulai halaman meetup.com untuk Scala Moscow.
Sekitar waktu yang sama atau bahkan lebih awal, Vlad Uspensky membuat grup Facebook di Scala di Moskow. Pertemuan pertama diselenggarakan oleh Vlad. Entah bagaimana, mereka melewati seluruh komunitas dan muncul di pertemuan setelah fakta. Dilihat dari foto, ada 25 orang di sana.
Dan kemudian ada mitap berikutnya, yang sudah nyata di kantor Tinkoff, yang juga diselenggarakan oleh Vlad. 50 orang terdaftar, ada beberapa laporan menarik.
Belakangan, berkat Misha, platform kedua muncul - Lembaga Penelitian "Voskhod". Saya tidak ingat mengapa Institut Riset Ilmiah Voskhod melakukan sesuatu pada Scala, tetapi mereka tertarik untuk mengembangkan komunitas dan mengatur pertemuan.
- Dan di mana semua komunikasi itu terjadi? Di Facebook atau ada semacam ruang obrolan?Roman Timushev: Ya, ada grup di Facebook. tetapi tidak terlalu aktif. Secara berkala ada posting informasi tentang mitaps, ada diskusi kecil. Ada juga grup di Skype - selalu ada beberapa holivar di sana. Telegram belum.
Pertemuan itu tidak terlalu teratur - semua orang memiliki pekerjaan, perjalanan bisnis, bisnis. Kemudian Vlad pergi ke Amerika Serikat, saya ke Jerman, dan semuanya nyaris bengkok. Karena itu, saya sangat senang bahwa gerakan baru sedang muncul, bahwa Anda menyelenggarakan konferensi Scala.
- Bagaimana Anda suka di Jerman?Roman Timushev: Saya di Munich, ada Scala yang bagus dan cukup banyak. Kami juga menulis proyek di Scala. Saya punya proyek kesayangan di Haskell, tetapi di tempat kerja kebanyakan Scala.
- Anda telah menulis di Scala selama hampir 10 tahun. Apakah Anda akan sampai pada akhirnya menggunakan haskalator?Roman Timushev: Yang satu tidak mengganggu yang lain. Untuk beberapa waktu saya berkeliling Haskell, tapi sekarang saya suka itu sebagai bahasa. Ada beberapa hal di dalamnya yang mulai saya lewatkan di Scala. Tetapi Scala juga memiliki sesuatu yang lebih sulit dilakukan di Haskell. Itu bagus ketika ada pilihan, dan semua orang menemukan apa yang paling cocok untuk bisnisnya.
- Jadi, apakah Anda masih puas dengan bahasanya? Bagaimana Anda melihat Scala 3, apakah Anda takut?Roman Timushev: Saya memiliki perasaan campur aduk. Ketika saya datang ke Scala, saya sangat terkesan dengan bagaimana sejumlah kecil konsep berhasil membuat begitu banyak fitur keren yang berbeda. Tampak bagi saya bahwa Scala adalah contoh yang baik tentang bagaimana, dengan tiga konsep dasar, adalah mungkin untuk mengimplementasikan hampir seluruh varietas: kelas tipe, metode ekstensi. Bagiku terasa dingin, dan sayang sekali bahwa pada Scala ketiga ia pergi.
Di sisi praktis, akan lebih mudah untuk mendidik orang, memasuki bahasa juga akan lebih mudah. Mungkin akan ada tulisan yang lebih seragam di Scala, dan itu juga merupakan nilai tambah. Tunggu dan lihat. Saya yakin para pengembang Scala memikirkannya dan memberikannya karena suatu alasan.
- Saya juga ingin bertanya. Apakah ada pin bergulir di Tinkoff saat itu atau tidak?Roman Timushev: Scala sudah berada di Tinkov saat itu. Saya tidak bisa mengatakan untuk keseluruhan Tinkoff, tetapi ada beberapa pengembang yang menulis di Scala. Bicara tentang hal ini dengan Vlad - dia akan dapat memberi tahu lebih banyak, karena dia bekerja di sana.
Ini adalah bagian pertama dari "penyelidikan" tentang gerakan Scala Rusia. Kisah detektif tidak berakhir di sana. Dalam seri berikutnya: berkenalan dengan Vlad dan tersangka baru yang tak terduga, sebuah wawancara dengan yang akan untuk seluruh artikel selanjutnya. Tetap disini agar tidak ada yang terlewatkan.
Jika Anda ingin menambahkan aspek baru ke riwayat gerakan Scala atau berbagi pengalaman Anda tentang penggunaan, kirimkan laporan . Batas waktu umpan adalah 29 hari. 6 hari sebelum batas waktu berikutnya untuk kenaikan harga - pesan tiket Anda .