paint-brush
Kotlin'in Yükselişi: Yeni Neslin Programlama Diliile@David
48,487 okumalar
48,487 okumalar

Kotlin'in Yükselişi: Yeni Neslin Programlama Dili

ile David Smooke8m2018/07/05
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

<em>Lütfen haftalık sponsorumuz</em> <a href="http://bit.ly/2lCXscm" target="_blank"><em>Pusher</em></a> <em>to Hacker Noon&#39;a hoş geldiniz!</em> <a href="http://bit.ly/2lCXscm" target="_blank"><em>Pusher,</em></a> <em>dünyanın her yerindeki geliştiricilerin uygulamalarına hızlı bir şekilde iletişim ve işbirliği özellikleri eklemesine olanak tanıyan gerçek zamanlı API&#39;ler oluşturur. Temel ürünleri, geliştiricilerin uygulama içi bildirimler, etkinlik akışları, gerçek zamanlı kontrol panelleri, canlı izleyiciler ve çok daha fazlası gibi özellikleri kolayca oluşturmasına olanak tanır.</em>

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Kotlin'in Yükselişi: Yeni Neslin Programlama Dili
David Smooke HackerNoon profile picture

Lütfen haftalık sponsorumuz Pusher to Hacker Noon'a hoş geldiniz! Pusher, dünyanın her yerindeki geliştiricilerin uygulamalarına hızlı bir şekilde iletişim ve işbirliği özellikleri eklemesine olanak tanıyan gerçek zamanlı API'ler oluşturur. Temel ürünleri, geliştiricilerin uygulama içi bildirimler, etkinlik akışları, gerçek zamanlı kontrol panelleri, canlı izleyiciler ve çok daha fazlası gibi özellikleri kolayca oluşturmasına olanak tanır.

Bugün Kotlin'in durumunu, onu yaptığı şeye neyin ittiğini ve bir uzay kovboyunu uzay kovboyu yapan şeyin ne olduğunu tartışmak için İtici Geliştirici Evangelisti Zan Markan ile buluşacağız .

David : Kotlin Eyaleti ile başlayalım . Yakın zamanda bir Kotlin anketi yürüttünüz ( bununla ilgili daha fazla bilgi burada ). Ekosistemin nabzını tutmak için Ocak-Mart 2018 arasında 2.744 kişiyle anket yaptınız. Hangi sonuçlar varsayımlarınıza meydan okudu? Hangi sonuçlar varsayımlarınızı doğruladı? Peki Kotlin'de olup bitenler hakkında asansör konuşmasının çıkarımı nedir?

Zan : Aynen öyle. Ürünlerimizle uygulamalar geliştirirken giderek daha fazla geliştiricinin Kotlin'i kullandığını fark ettik ve bu nedenle daha derine inip onları neyin motive ettiğini bulmaya karar verdik. Birkaç şaşırtıcı şey öğrendim.

Öncelikle öğrencilerin ve daha genç geliştiricilerin Kotlin'e gösterdiği sevgi beni gerçekten şaşırttı. Daha fazla/daha az deneyimli geliştiriciler arasında daha büyük bir fark bekliyordum, ancak Google silahlarını topluluğun arkasına koyduğundan beri yeni kalabalıklar gerçekten Kotlin'e giriyor.

Beni şaşırtan bir diğer şey de, kaç kişinin Kotlin ekibi tarafından deneysel olarak etiketlenen özellikleri, yani eşyordamları ve çok platformlu projelere desteği - her biri yaklaşık %25-30 oranında - denemeye istekli olmasıydı.

Anketin sonuçları, Android'in ne kadar büyük olduğuna dair şüphelerimi aşağı yukarı doğruladı; anket verilerimize göre bu oran %80 civarındaydı. Gördüğüm diğer bazı anketler Android'in biraz daha az olduğunu gösteriyor ancak yine de rahatlıkla %75'in üzerinde. Bu farkın bir kısmı ağımın çoğunlukla Android odaklı olmasından kaynaklanıyor olabilir, ancak etki açıkça o kadar büyük değildi.

Çıkarımlardan biri, Kotlin'in heyecan verici bir dil olduğu ve geliştiricileri mutlu ettiğidir.

Bu oldukça nadirdir (en azından ana akım programlama dili gibi bir şey için) ve tüm Kotlin ekosisteminin etrafında oluşan canlı ve coşkulu bir topluluğa yol açmıştır.

Kotlin'in birincil gelişimi, Rusya'nın Saint Petersburg kentinde bulunan JetBrains programcılarından oluşan bir ekip tarafından gerçekleştirildi. Kuruluşu hakkında bize başka neler söyleyebilirsiniz? Kotlin'i ilk ne zaman kullandınız?

Bildiğim kadarıyla Kotlin'in geçmişi, geliştirici araçları için "daha iyi bir Java" isteyen JetBrains'in geçmişidir. Birlikte çalışabilirlik ve gelişmiş üretkenlik ana hedeflerinden bazılarıydı ve o zamanlar başka hiçbir JVM tabanlı dil bu amaca gerçekten uymuyordu - Scala çoğu kutuyu işaretledi, ancak araçlar orada değildi ve oluşturma süreleri çok yavaştı JetBrains'in geliştirme ihtiyaçları için.

Birlikte çalışabilirliği yüksek ve daha iyi bir Java fikri, bunun pek çok Android geliştiricisinin ilgisini çekmesinin nedeniydi (ilk günlerden beri Android'i kullanan ben de dahil).

Birkaç yıl önce Android ekosistemi çoğunlukla Java'nın eski bir sürümüyle sıkışıp kalmıştı; Java 7 ile Java 6 arasında tuhaf bir melez, lambdalar gibi hoş özelliklere sahip değildi ve oldukça ayrıntılıydı. Böylece insanlar, birlikte çalışılabilir gibi görünen ve daha fazla üretkenliğe izin veren (özellikle de her şeyi bozmadığı zamanlarda 😅) bu yeni şeyle oynamaya başladı.

Beni de bu işe sürükleyen şey de buydu; bunu ilk kez 2014'te duydum ve daha sonra boş zamanlarımda onunla oynayarak ya da hızlı bir şekilde prototip oluşturmak için Kotlin'in gelişimini yakından takip ettim. İlk üretim Kotlin kodunu Pusher Chatkit ve Feeds ürünleri üzerinde çalışırken yazdım.

Kotlin'in neden daha az deneyimli geliştiricilere hitap ettiğini düşünüyorsunuz? Peki bunun moda olmasını engelleyen ne?

Ha! Kendi başına daha az deneyimli geliştiricilere hitap ettiğini düşünmüyorum, aslında bunu StackOverflow anket sonuçlarında gördüğümüze oldukça benzer bir gruplama olarak görüyorum, yani sektörün gelişimi açısından beklenmedik bir şey yok.

Ayrıca, ilk olarak çoğunlukla deneyimli (çalışan) geliştiriciler tarafından benimsendiğini ve son zamanlarda öğrenciler ve genç geliştiriciler tarafından benimsenmeye başladığını da gördük.

Kotlin'i hızlı öğrenilebilecek bir dil olarak görüyorum. Çoğunu bilmeden bile üretken olmamızı sağlayan mükemmel araçlar var. Java ile birlikte çalışabildiğinden, herhangi bir taşıma veya geçiş işlemi kendi hızınızda gerçekleştirilebilir. Ve son olarak, hem Google hem de JetBrains, Kotlin'i destekleyen belgeler ve kaynaklar hazırlayarak harika işler çıkarıyor.

Kotlin'i diğer programlama dillerinden ayıran ve hızla benimsenmesini sağladığını düşündüğünüz şey neydi? Ve daha genel olarak, benimsenme mücadelesi veren programlama dillerinden benimsenen programlama dillerini ayıran şeyin ne olduğunu düşünüyorsunuz?

Google ve JetBrains'in desteği kesinlikle yardımcı oldu. Öte yandan Google, Kotlin'i Android'de resmi olarak ancak geliştirici topluluğunun yoğun baskısından SONRA desteklemeye karar verdi, dolayısıyla diğer taraftan da zaten önemli bir baskı vardı.

Aslında bunun doğru zamanda, doğru toplulukta ortaya çıkan bir dil olduğunu düşünüyorum; Android topluluğu olgunlaştıkça ve insanlar yeni araçların giderek daha üretken olmasını istedi. Kotlin de oradaydı, elbette kusurları vardı ama oradaydı ve insanların bunu doğru yapmasına yetecek kadar iyiydi.

Önümüzdeki 5 yıl boyunca Kotlin'in mevcut diller ve mimarilerle etkili bir şekilde rekabet ettiğini ve onları tamamladığını nasıl görüyorsunuz?

Açık olanla başlarsak, Java oldukça kolaydır ve Kotlin zaten onu iyi tamamlıyor. Özellikle takımlar sağlamlaştığında ve birkaç "altın standart" takım ortaya çıktığında kesinlikle bundan daha fazlasını göreceğimize inanıyorum. Bu araçlardan biri , Funktionale ve Kategory ekiplerinin daha iyi, daha eksiksiz bir şey yaratmak için bir araya gelmesiyle geliştirilen, Kotlin için işlevsel bir programlama araç seti olan Arrow'dur . Trendin bu olacağını düşünüyorum.

Diğer programlama dillerine gelince; JVM'de Scala ve diğerlerinde neler olacağını göreceğiz ve JVM dünyası dışında bunu söylemek için henüz çok erken, ancak çoklu programlama için Kotlin/Native ve Kotlin hakkında bazı umut verici fikirler gördüm. platform projeleri - her ikisi de hala çok deneysel, ancak bazı konsept kanıtları mevcut, çalışıyor ve oldukça heyecan verici.

Alberto Ballano'nunResimlerdeki Kotlin İşlevleri, Uygulamaları ve Monadları ” Hacker News'e çıktığında ilginç bir tartışma da gündeme geldi… Kotlin'in neye geçiş ilacı olduğunu düşünüyorsunuz?


Bu çok çirkin geliyor! Bu, bizi hem üretken hem de mutlu kılan modern programlama dillerine geçiş sağlayan bir ilaçtır. Kesinlikle birçok insanı işlevsel programlamaya maruz bırakacaktır - özellikle Arrow gibi şeylerle ve bu da bazı kişilerin daha sert çekirdekli FP'ye atlamasına izin verebilir. diller daha kolay.

Yapabileceği diğer birkaç şey de, bir grup Android geliştiricisini tüm platformlar arası desteğiyle web veya yerel geliştirme konusunda girişimde bulunmaya teşvik etmektir ve ayrıca giderek daha fazla geliştirici onu ilk programlama dili olarak seçtikçe, kaçınılmaz olarak bunu yapacaklardır. Kotlin'i diğer tüm dilleri ölçtükleri bir referans noktası olarak görmeye başladılar ve bu da oldukça heyecan verici.

Dilbilimde İngilizce veya İspanyolca gibi bir dilin benimsenmesi çok uzun zaman alır. Ve bunlar pek çok lehçedir, ancak tamamen yeni bir konuşma dilinin kullanımı, yeni yazılım dillerinin kullanımına göre daha az belirgin olmalıdır. Yeni yazılım dillerinin oranının azaldığı bir endüstri olgunluk noktasına ulaşacağımızı mı düşünüyorsunuz? Yoksa daha fazla yeni yazılım dili ortaya çıkmaya devam edecek mi?

Zaten bir grup mükemmel programlama dilinin hızlı bir şekilde ciddi şekilde benimsendiğini gördük ve son yıllarda akla Swift, Go, TypeScript ve Rust geldi. Her biri, önemli kaynaklara ve arkasında mevcut geliştirici topluluklarına sahip bir (veya daha fazla) büyük mühendislik kuruluşu tarafından desteklenmektedir.

Her biri aynı zamanda kuruluşlarındaki belirli bir kaşıntıyı kaşıdı ve eğer bu kaşıntı diğer birçok geliştirici tarafından paylaşılıyorsa, o zaman benimseme gerçekleşir ve bir dil ortaya çıkar ve "kritik kitleye" ulaşmasını sağlar. Bahsettiğim bu dillerin her birinde olan da buydu - Örneğin Go, Google'ın eşzamanlılığı iyi bir şekilde yapmak istemesiyle başladı ve Rust'un hedeflerinden biri asla çökmemekti.


Geleceğe gelince, kesinlikle yeni bilgi işlem paradigmalarının olacağını, yeni fikirlerin geliştirileceğini (kim bilir, belki de Blockchain bir gün gerçekten bir şey haline gelecektir ) olacağını düşünüyorum; bu, mevcut araçlarımızla çok kullanışlı olmayacak. Diğer bazı örnekler kuantumdur. bilgi işlem veya yapay zeka.

Günümüzde çoğu dil genel amaçlı olduğunu iddia etse de, bu yine de her amaç için eşit derecede uygun oldukları anlamına gelmez. Yeni diller gerektirecek yeni amaçlar göreceğiz.

Kişi Zan hakkında konuşalım. Kişisel web sitenizdeki biyografinin ilk iki kelimesi "Uzay Kovboyu" şeklindedir. Bazıları sana aşkın gangsteri mi diyor? Başkaları sana Maurice diyor mu? Aşk pompatusunu somutlaştırıyor musunuz?

Ha, bu şarkıya bayılıyorum! Belki de aşk gangsteri, çünkü kimsenin Zan'ı Maurice olarak yanlış yazmayı başardığını düşünmüyorum, Starbucks personeli bile. Ayrıca roketleri seviyorum ve hala Firefly'ın kaybının yasını tutuyorum, yani bu aynı zamanda bir tür uzay kovboy teması.

Bu "ünvanın" ardındaki asıl hikaye, birkaç yıl önce, üniversiteden birkaç arkadaşımla birlikte kurduğumuz bir startup'ı yönetmeye devam ettiğim dönemdeydi. Yabancılardan para isterken (yani bir yatırımı artırırken) biraz daha meşru görünmek için, her birimize kartvizit yaptırdık.

Başlıklar konusunda pek iyi değilim, özellikle de herkesin hemen hemen her şeyi yaptığı C-başlıkları, bu yüzden diğer tarafa gitmeye karar verdim ve her şey kadar doğru(yanlış) olan Uzay Kovboyu'nu seçtim. En azından bunun iyi bir sohbet başlatıcısı olacağını düşündüm.

Bunu sormanız, bunun gerçekten ne kadar iyi bir sohbet başlatıcı olduğunu kanıtlıyor.

West Coast tarzı IPA'yı sevdiğiniz söylendi. Şu anda Colorado'dayım ve Laguinatis'i özlüyorum. En iyi 3/5 batı kıyısı IPA'larınız nelerdir?

Onları şiddetle güçlü ve acımasızca hoppa seviyorum.

Batı Sahili'ni ne zaman ziyaret etsem, Rus Nehri kenarında bir Pliny the Elder'a ve tabii ki Stone IPA'ya sahip olduğumdan emin oluyorum - her ikisi de tabii ki taslak. Eve yaklaştığımda tercihim Brewdog'dan Jack Hammer olurdu.

İyi bir geliştirici evangelistini yapan şey nedir? İşinizde nasıl daha iyi hale geldiniz? Pusher teknolojisini yaymaya değer kılan şey nedir?

Bir geliştirici müjdecisi (genel olarak herhangi bir geliştirici ilişkileri çalışanı) için en önemli şey öğretme ve bilgiyi paylaşma konusunda gerçek bir tutku olacaktır. Aslında samimi olmak muhtemelen daha da önemlidir. Tam durak. Geliştiriciler, bir şeylerin satılmasından nefret eden doğal BS dedektörleridir.

Birinin daha iyi bir geliştirici olmasına yardım ettiğinizi bilmek de harika bir duygu.

İyileşmem gereken ilk şeylerden biri zaman yönetimiydi. Geliştirici geçmişinden geldiğinizden, belirli görevlere büyük miktarda zaman ayırmanız çok daha yaygındır. Şu anki işim bundan çok daha dinamik ve ilk başta bu değişimi veya ayarlamayı beklemediğimden oldukça bunaltıcıydı. Paul Graham'ın yapımcı ve yönetici programları hakkındaki mükemmel makalesi bana çok yardımcı oldu.

Edindiğim bir diğer yararlı beceri ise proje yönetimidir; örneğin State of Kotlin'de işimin çoğu ilk başta anketi hazırlamak ve içeriği oluşturmak üzerineydi, ardından daha klasik proje yönetimine geçtim, örneğin proje yönetimiyle koordinasyon sağlamak gibi. tasarım ve geliştirme gibi diğer ekipler de dahil oldu (bu işi onlar yaptı, ben değil, tekrar teşekkürler - kim olduğunuzu biliyorsunuz) ve son olarak çeşitli yayınlarda haberi duyurmak, Web'de röportajlar yapmak.

Pusher'ın teknolojisi, entegrasyonun ne kadar hızlı olduğu ve "sadece işe yaradığı" gerçeğiyle ünlüdür.

Bu nedenle, müjdeyi duyurmak çocuk oyuncağıdır. Hatta bir mobil geliştirme konferansında yanıma gelip Pusher kullanan web ekibindeki meslektaşlarının bana Kanallar ürünümüzün ne kadar harika olduğunu söylemelerini söyleyen insanlar bile oldu; bu heyecan vericiydi 😁

Sonuç olarak Kotlin, Pusher'ın uzun vadeli vizyonunu gerçekleştirmede nereye oturuyor?

Zaten Android SDK'larımız için birincil geliştirme dili olarak Kotlin'e güveniyoruz. Yeni ürünler için ( Beams , Chatkit ve Feeds ) SDK'larla başladık ve şu anda bundan oldukça memnunuz.

Ayrıca Kotlin'in en heyecan verici ve katılımcı topluluklardan birine sahip olduğuna inanıyoruz ve bu aynı zamanda Kotlin Eyaleti anketini ve bunun için bir rapor oluşturmaya karar vermemizin nedenlerinden biri. Kotlin'in geliştiricileri mutlu ve üretken kılmaya devam edeceğini ve Kotlin Eyaletinin de bu yaklaşımın benimsenmesine yardımcı olacağını umuyoruz!

Haftalık sponsorumuz olan Pusher , web, mobil ve en popüler arka uç yığınlarına yönelik entegrasyonu kolay SDK'larla desteklenen, tüm dünyadaki uygulamalara güç veren iletişim ve işbirliği API'leri oluşturur. Başlamak.