Yazılım Gündemi - 2020/21
25-31 Mayıs 2020

İçindekiler

yazilim-gundemi-banner.png

< Önceki Gündem | 25-31 Mayıs 2020 | Sonraki Gündem >

TeknoSeyir'de Oku

1 StackOverflow Geliştirici Anketi 2020 sonuçları açıklandı

StackOverflow sitesinin her yıl düzenli olarak yaptığı geliştirici anketi bu yılın Şubat ayında duyurulmuştu. Geçtiğimiz hafta içerisinde ise bu anketin sonuçları yayınlandı. Yaklaşık 65.000 kişinin katıldığı bu ankete Türkiye'den katılım oranı %1.22 çıkmış. Sektördeki en yaygın 3 rol ise tahmin edebileceğiniz üzere şunlar: Back-End Developer (%55.2), Full-Stack Developer (%54.9) ve Front-End Developer (%37.1). Ankete katılanların çoğunluğu ise %26.5 ile 25-29 yaş arası insanlar oluşturuyormuş. Teknolojilerle ilgili diğer sonuçlar ise şu şekilde:

1.1 En popüler programlama, betik ve işaretleme dilleri sıralaması

stackoverflow-2020-populer-diller.png

1.2 En popüler web framework'leri

stackoverflow-2020-web-frameworks.png

1.3 En çok sevilen ve nefret edilen programlama dilleri

stackoverflow-sev-nefret.png

Şekil 4: (SOL): En çok sevilen programlama dilleri.
(SAĞ): En çok nefret edilen programlama dilleri

Bu tarz konuları değerlendirirken sürekli söylediğim bir şeyi yine tekrarlamak isterim: Teknoloji tercihlerinizi bu anketlerin sonuçlarına göre değil kendi ihtiyaçlarınıza göre yapın. Bu veriler sadece geliştirici ekosisteminin büyük resmini görmeye yarıyor.

Anketin tüm sonuçlarını buraya eklemek mümkün olmadığı için sadece bu başlıkları aldım ben ama diğer sonuçlar da oldukça ilgi çekici. StackOverflow da zaten sonuçlar için çok güzel bir sayfa hazırlamış. Konu başlığına eklediğim bağlantıya tıklayarak diğer anket sonuçlarını inceleyebilirsiniz.

2 Microsoft'un paket yöneticisi WinGet, AppGet'den 'esinlenmiş'

Bir önceki yazılım gündemi yazısında (bkz: Yazılım Gündemi - 2020/20) sizlere Microsoft'un Build 2020 etkinliğinde duyurduğu paket yöneticisi WinGet'den bahsetmiştim. Yine aynı hafta içerisinde AppGet isimli farklı bir paket yöneticisinin de geliştiricisi tarafından artık devam ettirilmeyeceği duyurulmuştu fakat bunu gündeme eklememiştim (İtiraf etmek gerekirse geliştiricinin yayınladığı yazıyı okumadığım için konuyu farklı bir şey sanmıştım). Bu hafta The Verge sitesinde yayınlanan haber ve Microsoft'un ilgili takımının yöneticisinin yayınladığı yazıyla birlikte konu daha fazla gündeme geldi.

AppGet'in geliştiricisi Keivan Beigi, geçtiğimiz hafta bir blog yazısıyla AppGet'i artık geliştirmeyeceğini, 1 Ağustostan itibaren de kapatacağını duyurdu. Bu hareketinin nedenini ise şöyle açıkladı: "Microsoft WinGet'i geliştirirken benimle iş görüşmesi yaptı, ben onlara AppGet'in arka planından ve teknik kısımlarından bahsedip, gelecekle ilgili fikirlerimi aktardım fakat sonrasında bana hiç geri dönüş yapmadılar. Geçtiğimiz hafta duyurulan WinGet'i görünce çok oldum. Microsoft'la rekabet edemem ve topluluğu da bölmek istemiyorum. O yüzden AppGet'i artık geliştirmeyeceğim". Üstelik WinGet'in duyuru yazısının hiçbir yerinde de bu geliştiriciden ve emeğinden bahsedilmemiş.

Olayın Reddit ve HackerNews gibi platformlarda gündem olmasının ardından olaya konu olan Microsoft takımının yöneticisi açıklama yapmak zorunda kaldı ve yaptıklarını bir nevi kabul edip, AppGet'deki şu şeylerden esinlendik gibi bir yazı yazıp Keivan Beigi'ye teşekkür etmiş. "Geç gelen adalet, adalet değildir" atasözünü şu şekilde değiştirirsek konuya çok uyumlu oluyor: "Geç gelen teşekkür, teşekkür değildir".

Geçmişteki Microsoft davranışlarının terk edilip, açık kaynağa yaklaşmalarının ardından böyle bir haberle gündeme gelmeleri hiç iyi olmadı. Açıkcası ben de Microsoft'un artık bakış açısını değiştirdiğini düşünüyordum fakat bu olay ve sonrasında yaşananlar bende hiç iyi bir intiba bırakmadı.

3 SpaceX Dragon 2 kapsülünün uçuş arayüzü Chromium üzerinde JavaScript çalıştırıyormuş

Geçtiğimiz hafta içerisinde 2011'den beri ilk defa Amerikan topraklarından astronot gönderildi. Bu görevin diğerlerinden farklı ve özel bir yanı daha var: Tarihte ilk kez özel bir şirket uzaya insan gönderdi. Çoğumuz zaten NASA ve SpaceX tarafından yapılan canlı yayını izlemiştir. İşte bu yayınlarda gördüğümüz SpaceX Dragon 2 kapsülünün dokunmatik uçuş arayüzü Chromium üzerinde çalışan bir arayüzüymüş. Bunu da 2015'yılında StackExchange sitesinde sorulmuş bir soruya verilmiş cevaptan öğreniyoruz. Cevabı yazan kişinin kaynağı ise Google Developer Conferance 2015 ve 2016'de SpaceX mühendisleri ile olan konuşmasıymış.

spacex-dragon-ucus-arayuzu.jpeg

Şekil 5: SpaceX canlı yayınından alınmış, çeşitli açılardan Dragon 2 kapsülünün uçuş arayüzü görselleri

Bir kişinin bulup Reddit ve HackerNews gibi platformlarda paylaşması üzere konu üzerine bayağı bir espri yapıldı. SpaceX mühendisleri mutlaka JavaScript'in yol açabileceği şeylerin önüne geçecek önemleri almıştır tabii ki, zaten uzun yıllardır test edilen kapsül geçtiğimiz hafta sorunsuz bir şekile Uluslararası Uzak İstasyonuna kenetlendi ve astronotları sağlıklı şekilde taşıdı. Dragon 2 kapsülünün kenetlenme ekranının bir benzeri için şu adresdeki simülasyonu deneyebilirsiniz: https://iss-sim.spacex.com/ (arkaya da Interstellar filminin meşhur müziğini açarsanız daha eğlenceli oluyor :))

İlgili StackOverflow cevabından öğrendiğimiz diğer bilgiler ise Falcon 9 roketi hakkında. Falcon 9 roketinin C/C++ dilleri kullanılarak oluşturulmuş yazılımı kendilerine göre özelleştirdikleri Linux çekirdeği üzerinde 3 farklı işlemcide çalışıyormuş ve sonuçlar karşılaştırılıp uyumsuzluk durumlarında işleme alınmıyormuş.

Ayrıca benim de bu hafta keşfettiğim SpaceX API'sini de sizlerle paylaşmak isterim. Bu hafta içerisinde Dragon kapsülleri için de birçok end-point kullanıma sunulmuş: https://docs.spacexdata.com/.

4 Android Studio 4.0 sürümü yayınlandı

IntelliJ IDEA temelli, Google tarafından geliştirilen Android Studio IDE'sinin geçtiğimiz hafta içerisinde 4.0 numaralı sürümü stable etiketiyle birlikte yayınlandı. Bu sürümle birlikte gelen birkaç özelliği birlikte inceleyelim:

4.1 Motion Editor

android-studio-4-0-motion-editor.gif

Android işletim sisteminin 4.0 sürümünden beri desteklenen MonitonLayout API'si sayesinde objelere animasyon kazandırabiliyorduk zaten ama artık Android Studio 4.0 ile bu daha kolay bir hale geldi. Özel editör sayesinde artık XML dosyalarıyla boğuşmadan grafik arayüzünü kullanarak animasyonlar yaratabileceğiz. İsterseniz yine XML görünümüze geçebiliyorsunuz tabii.

4.2 Layout Validation

Android sistemler için uygulama geliştirirken tek bir cihaz olmamasından dolayı birçok farklı ekran boyutu için tasarımınızı ayarlamanız gerekiyor (web tarafındaki responsive tasarım gibi). Artık Android Studio 4.0 ile birlikte her cihaz için farklı emülatör çalıştırmak yerine Layout Validation sekmesini kullanarak tasarımınızın farklı ekran boyutlarında nasıl gözüleceğini görebiliyorsunuz.

android-studio-4-0-layout-validation.png

4.3 Build Analyzer

Geliştirdiğiniz uygulamaları derlerken bazen derleme süreleri acayip uzayabiliyor fakat bunun hangi eklenti ya da kütüphaneden kaynaklandığını bulmak biraz zordu. Bu sürümle birlikte gelen Build Analyzer ile artık uzun süren build işlemlerinde sorunlu olan eklenti ya da kütüphaneleri kolaylıkla tespit edebileceksiniz.

android-studio-4-0-build-analyzer.png

Android Studio'nun bu sürümüyle birlikte gelen diğer özellikler ve değişiklikler için konu başlığına eklediğim bağlantıya tıklayabilir ya da Android Developers kanalında yayınlanan şu videoyu izleyebilirsiniz.

5 Google Chrome takımının nedensiz eklenti kaldırmalarının yeni kurbanı: Kozmos

2016 yılındaki left-pad olayıyla tanıdığımız Azer Koçulu, npm'den sonra bu sefer de Google Chrome Eklenti Takımı'ndan haksızlık gördü. left-pad olayını hatırlamayanlar için Azer Koçulu'nun kendi sitesinde yazdığı şu yazıya göz atabilirler (alternatif Türkçe kaynak) ya da kendisinin konuk olduğu şu podcast yayınına göz atabilirler. Bugünkü konumuz 2017'den beri geliştirmekte olduğu ücretli Chrome eklentisi olan Kozmos.

kozmos.png

Kısaca Kozmos, tamamen çevrimdışı çalışma imkanı sunan bir çeşit yerimi depolama çözümüydü. İnternet bağlantınız yokken bilgilerinizi tarayıcının içinde depolayan, internete bağlandığınızda ise her yerden erişebilmeniz için onları kendi sunucularına gönderen bir yeni sekme sayfası eklentisiydi. Azer Koçulu böyle bir girişimde bulunmuş fakat pek beklediği yatırımlara ulaşamamış olsa da projeyi pasif gelir olarak sürdürmeye devam etmiş. Hiçbir kullanıcı verisini satmamış, tamamen Google'ın Eklenti Marketi Kurallarına uygun şekilde geliştirmesini yapmış.

Son 2 yıldır ise tabiri caizse Google'ın Chrome eklenti takımı Azer'in başına musallat olmuş. Birkaç haftada bir eklentisini marketten kaldıran otomatik botlar ile arasında şöyle bir diyalog geçirdikten sonra insan çalışanlar durumu düzeltiyormuş (basit özet şeklinde):

  • Google (Bot): Eklentini marketten kaldıracağız.
  • Azer Koçulu: Bu bir yanlışlık olmalı.
  • Google (Bot): Yanlışlıklık yok, kuralları gözden geçir, senin eklentin kurallardan birini ihlal ediyor.
  • Azer Koçulu: Hiçbirini ihlal etmiyor, bu bir yanlışlık!
  • Google (sonunda insan): Özür dileriz, yanlışlık oldu.

ve bu tarz konuşmalar sürekli tekrarlandığı halde doğru düzgün bir çözüm sunulmamış. En sonunda da birkaç ay önce Google'ın Chrome eklenti takımı Kozmos'u hiçbir uyarı ya da bilgi vermeden Kozmos'u marketten kaldırmışlar. Üstelik iletişim kurup durum hakkında bilgi alınabilecek bir destek sistemi bile yokmuş.

Üzerine planlar yaptığınız, az da olsa gelir elde ettiğiniz bir projeniz işte böyle rahat bir şekilde Google tarafından fişi çekilebiliyor. Bu yazı geçen hafta yayınlanmış olmasına rağmen bu haftanın gündemine almamın sebeplerinden biri de Google'ın bu yüzünü sizlere tekrar göstermek istemem. Üstelik bu olaylar Google'ın elinde tuttuğu tüm uygulama marketlerinde (özellikle Android Play Store üzerinde)sürekli tekrarlanıyor. Google'a güvenerek yola çıkacak olanlar bir kez daha düşünsün.

Bu konu hakkında siz ne düşünüyorsunuz? Yorumlar bölümünde konuşalım.

6 Qt 5.15 LTS sürümü yayınlandı

C++ ile platformlar arası (cross-platform) uygulama geliştirmeye yarayan kütüphane Qt, geçtiğimiz hafta içerisinde 5.15 sürümünü Uzun-dönem desteği (Long-term Support) etiketiyle yayınladı. Bu yılın başında duyurdukları (bkz: Yazılım Gündemi - 2020/05) gibi LTS etiketli sürümler artık sadece kurumsal lisansı olan müşterilerine sunuluyor. Önümüzdeki 3 yıllık periyotda destek almaya devam edecek olan 5.15 sürümüyle birlikte gelen bazı yenilikler ise şu şekilde:

  • 3 boyutlu grafik API'lerinin soyutlanması: Farklı işletim sistemlerinde çalışan farklı grafik kütüphanelerinin yaygınlaşmasıyla birlikte Qt de, cross-platform sözünü tutabilmek için artık sadece OpenGL kullanmayacak. Onun yerine bu katmanı soyutlayarak (abstracting), Metal, Vulkan ve Direct 3D 12 gibi farklı grafik kütüphaneleriyle de çalışılabilmesini mümkün kılan Qt Rendering Hardware Interface (RHI) sistemini getiriyor.
  • Qt Quick 3D: Qt tabanlı uygulamalarda 3 boyutlu içerikleri kullanmayı kolaylaştıracak bir araç için tam destek geldi. Benchmark Demosu için şu YouTube videosunu izleyebilirsiniz.
  • Qt Design Studio 1.5: Bu araca da 3 boyutlu çalışmalar için özellikler eklenmiş.
  • Yeni QML özellikleri
  • Qt Lottie için tam destek.
  • Qt WebEngine artık Chromium 80 kullanıyor.
  • Qt Network artk TLS 1.3 destekliyor.

Bu sürümle birlikte gelen diğer özellikler ve değişiklikler için konu başlığına eklediğim bağlantıya tıklayabilir ya da 4 Haziran günü gerçekleştirilecek olan şu webiner etkinliğine kayıt olabilirsiniz: Qt 5.15 LTS: Built to Last.

Qt ile ilgili diğer haberler:

7 Yaklaşan Online Etkinlikler

8 Diğer Haberler

9 Lisans

Tarih: 1 Haziran 2020

Yazar: Eren Hatırnaz

Oluşturuldu: 2021-01-24 Sun 22:46

Validate