Yazılım Dünyasında 2022 Trendleri
Pandeminin gölgesinde geçirdiğimiz bir yılın daha ardından “Yazılım Dünyasında Trendler” serisinin 3. sayısı olan 2022 versiyonu ile karşınızdayız. (2020, 2021)
Bu sayıda alanında uzman yirmi iki kişinin görüşlerini okuyacaksınız. Bu sene kamuoyunun nabzını da yoklayarak yazarlarımız için iki dönem kuralı getirdim. Yani ilk iki sayıda da katkı sağlayan yazarlarımız bu sayıda yer almadı. Bunun yanında geçen sayıda bulunup bu sene müsait olamayan veya trendleri yeterince takip edemediğini düşünen yazarlarımız da bu sayıda yer almadı. Yeri gelmişken bu sayıda da sadece iki kadın yazılımcı, yazar olarak yer aldı. Ayrıca iki arkadaş son haftalardaki bazı aksilikler dolayısıyla yazı gönderemedi. Onlar haricinde ulaşamadıklarım oldu, topluluklar üzerinden biraz daha geniş bir kitleye ulaşıp davet etmeyi denedim ama maalesef sayıyı artırma konusunda başarılı olamadım. Bu vesileyle önümüzdeki yıl görüşlerine başvurmam için tavsiye edebileceğiniz kadın yazılımcılar (kendiniz de olabilirsiniz) varsa bana iletirseniz memnun olurum.
Geçen sene olduğu gibi bu sene de içerikte çeşitliliği sağlamak için yazarlarımızdan sınırları oldukça geniş çizilmiş “serbest bir format” istedim. Kimi yazarlarımız tek bir uzmanlık alanında, kimileri dokundukları farklı alanlarda değerli görüşlerini paylaştı. Yine kimileri teknik konulara(dil, framework vs), kimileri daha soyut olan süreçlere, metodolojilere odaklandı. Velhasıl her biri kendi perspektifinden okurlara değer katacak öngörülerini, tavsiyelerini paylaştı.
Yine geçen sene olduğu gibi bu sene de yazılımla ilişkili farklı alanlarda uzmanların görüşünü aldım. Mesela Kutlu Kutluer’e kuantum bilgisayarları, Şefik İlkin Serengil’e yapay zekayı, Ahmet Usta’ya blokzinciri teknolojisini, Ömer Çıtak’a uygulama güvenliğini sordum.
Rapora geçmeden önce bizlerle değerli görüşlerini paylaşan tüm yazarlarımıza(Ahmet Aygün, Ahmet Usta, Altuğ Bilgin Altıntaş, Berk Ulsoy, Burak Selim Şenyurt, Coşkun Taşdemir, Egemen İmre, Emre Karaoğlu, Fatih Kadir Akın, Fatma Tanrısevdi, Hadi Tok, İsmail Baskın, Kutlu Kutluer, Mert Nuhoğlu, Meryem Alay, Mustafa Ilıkkan, Oğuz Kılıç, Ömer Çıtak, Seyfeddin Bassarac, Şefik İlkin Serengil, Sedat Kapanoğlu ve Üstün Özgür), dokümanın PDF formatını hazırlayan Tarık Çayır’a ve özenle tüm metnin imla/noktalama kontrolünü yapan Zehra Betül Meriç ile Tayfun Demir’e teşekkür ediyorum.
Not: Yazarlar alfabetik olarak sıralanmıştır.
Kapak Fotoğrafı: https://unsplash.com/@nicklbaert
Tasarım: Tarık Çayır
Kürasyon: Muhammed Hilmi Koca
Editöryel Son Okuma: Zehra Betül Meriç, Tayfun Demir
Raporun PDF formatı:
Ahmet Aygün
Tech Lead
Yazılımcılar olarak son 30 yıldır, finanstan sağlığa, otomotivden eğitime, gündelik ticaretten sanayiye kadar pek çok alandaki değişimi, bazen yenilikler ve icatlar bazen de daha verimli süreçler ile şekillendiriyoruz. Bu sebeple dil, framework ve metodoloji özelinde kalmadan biraz daha geniş açıdan düşünelim derim.
Geleceğin Çalışma Şekilleri (Future of Work)
Genel kanının aksine uzaktan çalışma ya da evden çalışma yeni bir olgu değil. Sadece mücbir sebeplerle daha çok yaygınlaştı ve bazı yenilikçi liderlerin yıllardır kurumlarını ikna edemediği değişimi küresel pandemi hepimize benimsetti.
İster üç kişi olun ister on bin kişi, organizasyonel yapılanma, işgücü planlama, üretim verimliliği gibi konular öncesi olmakla beraber, yaygın olarak sanayi devriminden bu yana insanoğlunun üzerine kafa yorduğu konular. Gelecekte de bunun devam edeceğini düşünüyorum.
Özellikle adaptasyon ihtiyacı ile birlikte gelen iş/özel yaşam dengesi, psikolojik ve sosyolojik faktörler bu alanlarda yeni çözümler geliştirmemizi gerektiriyor. Gelişmiş birkaç ülkede tecrübeli çalışanların işlerini bırakarak ya da daha az stresli, hafif iş yükü olan işlere geçerek, şehirlerden kırsala göç ettiğini okumuşsunuzdur. Ya da Türkiye ve benzeri ülkelerde olduğu gibi bazı meslek gruplarının yüksek sayılarda başka ülkelere göç ettiğini gözlemlemişsinizdir. İstihdam açığı vb. durumlarda bu göçler sebebiyle yaşanan değişimi takip etmekte fayda var.
Geleceğin Finansı
Blockchain teknolojilerinin uzun süredir en çok kullanıldığı alan finans. Merkezi ya da merkeziyetsiz fark etmeksizin büyük oranda finansal kaynakların bu yöne aktığı birkaç yıla şahit olduk. Her yeni alanda olduğu gibi burada da birçok yeniliğe, değişikliğe şahit olacağız. Özellikle aracısız (p2p) ödeme ve borç verme protokollerinin geleceğinin şekillendiği
yılların henüz başlarındayız. Bankalar gibi aracı kurumları bertaraf etmenin pozitif ve negatif etkilerini gözlemlemenin geleceğe dönük kararlar alırken fayda getireceğine inanıyorum.
Benzer şekilde finans alanında yeni gelişecek regülasyonlarla beraber birçok yeni regülasyon teknolojisine (RegTech) ihtiyacımız olacak. Sadece finansal ürünlerde değil, burada da yeni gelişen bir pazar görüyorum.
Küresel İşgücü
Eğer Türkiye’de ya da benzeri bir ekonomide iseniz, emeğinizin küresel olduğunu ve ürettiklerinizin küresel olabileceğini lütfen unutmayın. Kurumların ihracatı elbette güzel bir şey ama bireysel olarak da ihracat yapabiliriz ve yapıyoruz.
Eğer emeğinizi küresel pazara henüz taşımadıysanız vakit kaybetmeyin derim. Sadece bireysel ekonominize değil, aynı zamanda ülke ekonomisine de katkıda bulunduğunuzu, ülkesini ve milletini sevenler olarak sizi takdir etmemiz gerektiğini -bu konuda negatif yorumlar dahi duysanız- lütfen unutmayın.
Hangi alanda kendimi geliştirmeliyim?
AI, ML, bulut, mikroservisler, OOP/FP/RP, serverless gibi alanlar mı? React mı Vue mü, Flutter mı React Native mi, Go mu Rust mı, no-code mu?
Para akışını ve ihtiyaçları takip edin. Mesleki tatminin yüksek olduğu, emek sarf ederken keyif aldığınız alanlara bakın.
Öğrenmeyi, bildiklerinizi unutup baştan başlamayı, internette sonuca hızlı ulaşmayı, akıllıca sorular sormayı, faydalı geri bildirimler vermeyi ve almayı öğrenin. Faydalı geri bildirim almak için doğru soruları sormak önemli, alırken de verirken de bir insanın ya da işin daha iyi, daha verimli bir sürümüne nasıl ulaşabileceğinizi düşünün.
Endişelerle boğuşmak yerine harekete geçin, sonrasında duruma göre adapte olursunuz. Eğer içinde bulunduğunuz duruma adapte olabilirseniz, orta ve uzun vadede yukarıdakiler arasında yapacağınız seçim inanın ki fark etmez. Çünkü ihtiyaçlarla beraber siz de değişeceksiniz ve gelişeceksiniz. Her ihtiyacın ya da sorunun bir tek çözümü yok, önemli olan bir çözüm üretmek ve gerektikçe iyileştirmek.
Birkaç paragrafta özetlenemeyecek kadar geniş bir sorun ve çözüm uzayında çalışıyoruz. Bu yazı yayımlandığında eleştirilerinizi ve düşüncelerinizi bizimle paylaşmayı unutmayın.
Ahmet Usta
Founder
2022 Blockchain Trendleri
Pandeminin gölgesinde geçirdiğimiz iki yıl boyunca Blockchain teknolojileri bir kez daha rüşdünü ispat ederek, daha fazla sektöre ve hayata dokunmaya devam etti. Kripto para piyasalarının fırtınalı belirsizlikleri, devletlerin ve kurumların bu alana daha fazla girmesi ile bir nebze olsun çehresini değiştirmeye başladı. 2022 yılı ise daha fazla yasal düzenlemenin hayatımıza girdiği bir dönem olacak. Bu yasal düzenlemelerde risk almayı sevmeyen yapıların yenilikçi fikir ve projeleri engelleyici, en azından yavaşlatıcı adımlar atması kaçınılmaz ancak diğer yandan bu düzenlemeleri yeni fırsatlar yaratmak için kullanacak ülkelerin isimlerini daha fazla duymaya başlayacağız. Özellikle kripto paraların geleneksel sistemlere entegre olmaya başlaması, DeFi gibi uygulamaların geleneksel kurumlar tarafından benimsendiği yeni iş modellerini hayatımıza katma potansiyeline sahip.
Uzun yıllardır çivisini arayan çekiç gibi ele aldığımız Blockchain teknolojisinin, kripto paralar dışında gerçek hayattaki en önemli uygulama alanlarından birisi ise NFT’ler olmaya başladı. 2021 bir keşif ve yükseliş trendi sunarken, NFT uygulamaları 2022 yılı içinde sadece birer koleksiyon objesi olmaktan çıkarak ayağı yere basan iş modelleri ile güçlendirilmiş çözümlere dönüşecek.
Her ne kadar şimdilik bir reklam ve pazarlama söylemi olmaktan öteye geçemese de Metaverse, Blockchain teknolojisi ile gerçek anlamda potansiyelini bulan bir kavrama dönüşmeye namzet. Üç boyutlu evrenler, sanal toplantı odaları… Bir süre için bunları kenara koyalım; bir dijital varlığın mutlak sahipliğini şifreleme (kriptoloji) ile garanti altına alan blockchain teknolojisi sayesinde insanlar ve işlemeler dijital varlıklarını özgürce farklı projeler arasında taşımaya başlayacaklar. Bu öylesine büyük bir evren ki beraberinde getirebileceği seçenekler hayal gücümüzün bile ötesinde imkanları bizlere sunabilir. 2022 bu iş modellerinin keşfedildiği ve dijital alemde açık sahiplik ve yaşam standartlarının belirlenmeye başladığı bir dönemin kapılarını aralayacak.
Tüm bu gelişmeler ışığında gözden kaçmaması gereken en önemli husus, madalyonun bir diğer yüzü olduğu. Blockchain teknolojisi ve buna bağlı iş modelleri hayatlarımızı daha özgür ve bağımsız kılma potansiyeli sunsa da yanlış ellerde mutlak bir tarassut ve tahakküm aracına dönüşebilir. İnsanlığın ortak aklının -ki maalesef sabıkalı geçmişi ile pek de bilge olmadığını bizlere defalarca gösterdi- bu süreçten fayda ve değer üretecek sonuçlar ile çıkmasını temenni etmeliyiz. 2022 kendi dinamikleri içinde bu sürecin nereye gideceğine doğru da bizleri ipuçları verecektir.
Altuğ Bilgin Altıntaş
Business Agility Engineer
1 — Bulut yapılar üzerinde çalıştırılan mikroservislerin çalışma maliyetleri gün geçtikçe artıyor ve artmaya devam da edecek.(Kaynak: https://webrazzi.com/2021/12/30/microsoft-subat-ayinda-azure-fiyatlarina-yuzde-68-zam-yapacak)
Bu sebepten dolayı Java üzerinde kod geliştiren organizasyonların “Effective Java” yaklaşımlarına daha fazla dikkat edeceklerini öngörüyorum. Artık nesneye yönelik programlamanın ötesinde “Bulut Faturası Odaklı” kod geliştirme devrinin ön planda olacağını bekliyorum.
2–2022 yılında bulut yapılarının getirdiği ciddi maliyetlerinden dolayı geriye dönüş hikayelerini daha sık duyabiliriz. Özellikle kurumsal uygulamaların şirketlerin kendi veri merkezlerinde daha uygun maliyetle hizmet vermeye başlaması söz konusu olabilir. Mevcut monolotik kurumsal uygulamaları mikroservis mimarisine dönüştürüp, bulut yapılarda çalıştırmanın beklendiği kadar fayda getirmediğinin anlaşılacağı bir yıl olmasını bekliyorum. Özetle 2022 yılı, tekrardan yalın monolitik uygulamalara dönüşün yaşanabileceği bir yıl olabilir.
3 — Spring Native‘in Graal VM ile işbirliğini ve entegrasyonunu çok önemli buluyorum. 2022 yılında Spring Native‘ın Beta sürümünden çıkmasını bekliyorum. Uygulamaların hızlı ayağa kalkması, ölçeklemenin önündeki en büyük engellerden bir tanesi. Spring Native projesinin avantajları için: https://docs.spring.io/spring-native/docs/current/reference/htmlsingle/
4 — Graal VM’in sadece native compilation özelliğiyle bilinmesinin kendisine büyük haksızlık olduğunu düşünüyorum. Sadece Graal VM üzerine geçiş yaparak %30’a yakın performans artışı sağlayan uygulamaların var olduğunu biliyorum. Elbette bu “Graal VM iyidir, sorgusuz sualsiz geçin” demek değil ama 2022 yılında Graal VM’e dair bu farkındalığının artacağına inanıyorum.
4 — Lombok projesi yıllardır birçok geliştiricinin gözdesi oldu. Özellikle getter / setter / builder gibi özellikler kodun sadeliğini korumak için anahtar nitelikte. 2022 yılında Java Records’un yaygınlaşmasıyla Lombok projesinin pabucunun kısmen dama atılmasını bekliyorum.
5 — Quarkus’un popülaritesi geçen yıl zaten patlamıştı. Bu sene de Quarkus projesinin popülaritesinin daha da artarak devam edeceğini öngörüyorum. Özellikle Quarkus’un Jakarta EE MicroProfile extensionları ile elde edecekleri hızlı başlama, düşük bellek kullanımı ve performans gibi özellikler kullanıcılara muazzam avantajlar sağlayabilir. Quarkus dışında Micronaut ve Helidon projeleri de 2022 yılında dikkat çekenler arasına girebilir.
Berk Ulsoy
Lean/Agile Transformation
2021 yılı yazılım endüstrisi açısından gayet iyi bir yıl oldu. Bunda hem karlılığı arttırma baskısı altındaki şirketlerin pahalı görünmesine rağmen yazılım odaklı çözümlere daha fazla eğilmesi, hem de dünyada kredi/yatırım imkanlarının (bambaşka bir tartışma konusu) artması etkili oldu. 2021’de göze çarpan, 2022’de de odakta olmaya devam edebilecek konulardan bazıları neler?
Uzaktan Çalışmak
Uzaktan çalışmak pandemi öncesine kadar nispeten kısıtlı sayıda yazılımcının tecrübe ettiği bir yaşamdı. Ağırlıklı olarak özellikle bu yaşamı tercih edenler ve çalıştığı şirket tarafından ofis/ev dengesi konusunda serbest bırakılanlardan oluşmuştu. Şu anda çok daha büyük bir kitle bu yaşamın içinde. Kimisi zorunluluktan, kimisi daha iyi ekonomik ve kariyer şartlarına ulaşmak için, kimisi denemek için katıldı.
Lakin hepimiz farklıyız ve temelli uzaktan çalışmak herkesin üstünde aynı pozitif etkiyi bırakmıyor. Bir şeylerin gerçekten bize uyup uymadığını, çoğu zaman onu birinci elden uzun uzadıya yaşamadan anlayamayız. 2022 yılının ilerleyen dönemlerinde temelli uzaktan çalışma konusunda muhasebelerin yapıldığını görebiliriz. Bu, mutlak bir doğrunun olmadığı, tamamen kişisel bir durum.
Low-code / No-code
Yazılım dünyasında “Low-code/No-code” enteresan tartışmalara yol açan konulardan. Endüstriyel açıdan baktığımızda yazılımın mühendislik olarak görevi, etki bırakan çözümleri ekonomik, hukuksal, ticari kriterlere uygun şekilde hayata geçirmek. Bunların arasında “citizen developer” dediğimiz, aslen yazılımcı olmayan fakat basit otomasyon kuralları yaratarak hem işini daha etkin yapmak hem de katma değerli başka işlere daha çok zaman bulabilmek fırsatına kavuşan kişiler var.
Low-code ve özellikle no-code çözümlerini üretmek, yazılım dünyasının gözdeliği artan yeni iş olanaklarının doğduğu alanlardan olmaya devam edecek.
Robotic Process Automation
“Low-code/No-code” deyip RPA’dan bahsetmemek olmaz. Yazılım dünyasında her gün bir değişiklik olurken, dünya ekonomisindeki kurumların çok büyük bir kısmı çalışanlarının geleneksel, yaygın, yüksek teknoloji içermeyen elementleri dijital dünyayla manuel bir şekilde birleştirmesi ile çalışıyor. Bir sürecin tamamen sayısallaştırılması her zaman yapılabilecek en doğru şey olmadığı gibi, birçok durumda kah ekonomik kah başka engellerden ötürü mümkün olmayabiliyor. RPA çözümleri iki uç nokta arasını başarılı bir şekilde doldurabildiklerini gösteriyorlar. 2022’de daha fazla kurumun süreçlerini yazılım dünyasında son yıllarda ürün portföyü gittikçe çeşitlenen RPA çözümleri ile otomatize edip etkinliklerini ilerlettiklerini görebiliriz.
Multi-Cloud
Geçtiğimiz senelerde defalarca tecrübe ettiğimiz üzere cloud provider’lar dahi milyonları etkileyen servis kesintisi yaşayabiliyorlar. Bu kesintilerin kimi kurumlara maliyeti, bu kesintiyi asla yaşamayacak şekilde yapılarını kurmanın maliyetinden daha fazla. Bu durum, şirketlerin multi-cloud senaryolarını planlarına katmalarına bir gerekçe oluyor.
Bir diğer gerekçe, cloud provider’ların kimisinin bir çözümde diğerlerine göre üstün iken diğerinde arkada kalması. Kurumlar tüm hizmetler için tek bir sağlayıcıya bağlanmaktansa aynı anda birkaç sağlayıcıyı kullanmayı gittikçe daha mantıklı görüyorlar.
Önümüzdeki yıl multi-cloud senaryoların artmasını sağlayabilecek bir başka gerekçe ise işin ekonomik tarafı. Cloud sağlayıcılar ile anlaşmalarını enterprise satış kanalları üstünden yapan büyük organizasyonlar için aynı anda birkaç cloud provider ile çalışmak aynı zamanda ciddi bir pazarlık gücü.
FinOps
Cloud hizmetlerinin kullanımı artarken baş ağrısı haline gelmeye başlayan bir konumuz var: FinOps ve Financial Trace.
Birçok organizasyon için cloud faturaları, ay sonunda ne ödeneceği, kimin ne için ne kadar harcama yaptığı, hangi harcamanın mantıklı hangisinin israf oldugu sisli bir mayın tarlası. Bu durumun önüne geçmek için kimi yerler cloud kullanımını karneye bağlarken, bir yanda da FinOps adı verilen yeni yaklaşım ortaya çıktı.
FinOps, cloud harcamalarının finansal hesap verme yükümlülüğünün tek bir merkezde toplanması yerine, gerekli şeffaflığı, detaylı ve canlı raporlamayı, analiz imkanlarını, finansal izleri tüm organizasyona yayarak ürün ekiplerinin de cloud harcamalarını etkileyen iş kararlarını yerel olarak alabilmelerine olanak sağlayan bir yaklaşım.
İsrafın önüne geçme yöntemi olarak hemen klasik silolaşmanın görüldüğü dünyada, FinOps prensiplerini hayata geçirip sadece kurumun akıllıca harcama yapmasının değil, aynı zamanda inovasyonun, time-to-market’ın önündeki en büyük engellerden olan siloların kırılmasında da en büyük rol oynayabileceklerin başında DevOps uzmanları geliyor.
Güvenlik
Artık güvenlik problemleri iyiden iyiye gündelik haber haline gelmeye başladı. Güvenlik konusuna önem veren kurumlar bile sorun yaşarken, birçok kurumda güvenlik için bir strateji, sorumlu bile yok.
Güvenlik ucuz bir yatırım değil. Üstüne üstlük çoğu durumda bu yatırımın karşılığı yükselen cirolar şeklinde alınamıyor ve tablolara baktığımızda gider hanesinde kalıyor. Fakat art arda çıkan krizler kurumları CSO organizasyonu oluşturmaya ve güvenliği sadece uygulama geliştirme değil, her alanda day-0’dan itibaren düşünmeye ve alışmaya zorluyor. Dolayısı ile 2022’yi, güvenliğin değişik alanlarında faaliyet gösteren uzmanların kendilerini yine oldukça meşgul bulacakları bir yol olarak görebiliriz.
2022’nin herkese ne ümit ediyorsa onu getirmesi dileğiyle…
Burak Selim Şenyurt
Senior Software Engineer
İnsanlığın uçmayı icat edene kadar dünya üzerinde geçirdiği süre düşünüldüğünde teknolojinin akıl almaz bir süratle ilerlediği gün gibi ortada. Hatta çoğu yenilik henüz endüstriyel anlamda kendini kanıtlamadan başka teknoloji hareketlerinin öncüsü olmakta. Bu bağlamda bir yıllık bir öngörüde bulunmak bana kalırsa çok zor. Yine de hangi alanlara doğru eğilim olacağını veya hangi alanlarda kendimizi yetiştirip hazırlamamız gerektiğini tartışmaya açabilirim. İşte başlıyoruz:
Siber Korumalar
Artık akıllanmayan cihaz kalmadı diyebiliriz. Neredeyse hepsi birbirine bağlanabilecek şekilde tasarlanıyor. Bu inanılmaz bir bilgi akışı demek. Lakin beraberinde getirdiği tehlikelerin de farkındayız. Bulunan ürünlerin zaman içerisinde yarattığı bağımlılıkların insan psikolojisi ve toplum üzerine ne denli etkileri olduğunu yeni yeni görüyoruz. Ayrıca dijital teröre doğru kayan siber korsanlığın giderek yaygınlaşması da söz konusu. Akıl sağlığımızı korumak adına sosyoloji ve psikoloji gibi alanlarda, dijitalleşmenin getirdiği tuzaklara karşı çözüm üretebilecek eleman ihtiyacının artacağına ve akademik çevrede bu konuların müfredata girerek uzmanlıklar haline gelmeye başlayacağına inanıyorum. Aynı sürecin özellikle dijital korsanlara karşı siber güvenlik alanında da olacağını düşünüyorum. Bir başka deyişle şirketlerin yazılım güvenlik ekiplerinin eğer yoksa siber korsanlarla da mücadele edebilecek yönde evrimleşmeye başlayacağını tahmin etmekteyim. Gerçekten siber korsanlar artık sıradan site saldırıları gerçekleştirmekten öteye geçti ve bağlanabilir tüm cihazları kırıp bilgi sızdıracak ya da daha çok hasar verecek etkilere neden olacak şekilde değişti. Özetle psikoloji ve güvenlik alanına hitap eden Siber Korumalar önümüzdeki yıla koymak istediğim iki kavram.
Metaverse (Evren Ötesi) Geliştirici
Sanal ve artırılmış gerçekliğin en büyük sonuçlarından birisi de evren ötesi desek yeridir. Gerçi “Evren Ötesi” diye çevriliyor ama bana “Öte Evren” ya da “Sanal Evren” daha uygun geliyor. Hatta “İkinci Şans” veya “Sanal Şans” diye de çevirebiliriz belki. Nitekim doğrudan çevirmek, etkisini anlamak açısından çok da yeterli değil bana kalırsa. İnsanların sosyal dünyada var olurken farklı kimliklere kolayca bürünebildiğini hepimiz biliyoruz. Gün içerisinde ünlü bir düşünür, yazar, televizyon yapımcısı, radyo spikeri veya Barcelona’ya tekrar dönüp ağları yine havalandıran Messi olmamız içten bile değil. Dolayısıyla insanlık için sanal bir evrende yeni bir kişilik bulmak, orada merkezi olmayan finansal hamleler yapmak, arsa ya da araba satın almak oldukça cazip görünüyor. Pek çok kaynakta okuduğumuz üzere Ready Player One filminde bahsi geçen evrene ulaşmaya az kaldı ve umarım oradaki gibi bir hayatı sürdürmek, oyunlardan coin kazanmaya uğraşmak anlamına gelmez. Bu yeni oluşumun yazılımcılar için önemli bir fırsat kapısını da araladığı inancındayım. Nitekim metaverse içerisine ürün geliştirmek için farklı yazılım disiplinlerine ve hatta donanım bilgisine sahip olmak gerekecektir. Bu noktada her yazılımcının VR gözlüğüne sahip olması belki mümkün görünmüyor ama bununla ilgili emulator uygulamalar pekâlâ gündeme gelebilir. Metaverse için özel olarak tasarlanmış birçok giyilebilir cihazın üretileceği ya da var olanların adapte edileceği de şüphesiz. Mekatronik mühendisliğinin daha da kıymetleneceği bir yıl bizi bekliyor gibi. Buna bağlı olarak önümüzdeki sene yazılımcıların metaverse içerisinde nasıl geliştirme yapılacağına dair çalışmalara girişeceğini de söylesek yeridir.
Remote Ürünler
Pandemi önümüzdeki yılda da hayatımızda olmaya devam edecek gibi duruyor. Geçtiğimiz dönemde gördük ki pek çok firma işlerinin mümkün kıldığı mertebede uzaktan çalışma dönemine iyiden iyiye alıştı. Geçen yıl uzaktan çalışma tekniklerinde verimliliği artıracak şekilde birçok uygulamanın hızla gelişimine ve yenilerinin çıkmasına tanıklık ettik. Artık sahnenin uzaktan çalışanların sanal olarak bunu yapabileceği bir ortama dönüşeceğini söylesem sanırım kimse şaşırmaz. Söz gelimi bir çevik metodoloji geleneği olan günlük özet toplantısını, güneş gözlüğü ağırlığında bir cihazla evinizde ama ofisin içinde ayakta yapabildiğinizi düşünün. Bir başka deyişle Teams, Zoom, Webex ve benzeri uygulamaların giyilebilir teknolojilerle entegre edilecek türde evrimleşeceğini öngörüyorum. Diğer yandan uzaktan çalışanlar evde bilgisayar başında çok daha fazla vakit geçirmeye başladılar. Bunun verdiği rahatsızlıkların önüne geçmek adına şirket için oyunlaştırma tabanlı aktivitelere yönelik uygulamaların giderek zenginleşeceği inancındayım. Çalışanların motivasyonlarını yüksek tutmak adına yeni ürünler için iyi bir pazar var diyebilir miyiz? Tabii iskelet sistemlerimizin bu uzun çalışma süreleri sonrası meslek hastalıklarına dönüşecek olması da ürkütücü bir gerçek. Bu sorunla ilgili olarak mimar ve mühendislerin sağlık sektörü ile hareket ederek konsept çözümler ortaya koyması pekâlâ mümkün olabilir. Bilgisayar kamerası veya kol saati gibi aygıtların yorgunluk belirtilerini algılayıp ara verdirmek için uğraşacak uygulamaları tetiklemesinden, bir süre ayakta kod yazmamızı sağlayacak çalışma masalarının çoğalıp yaygınlaşmasına kadar birçok yardımcı söz konusu olabilir.
İç Girişimcilik
Senenin son zamanlarında finans piyasaları inanılmaz bir hareket içerisinde. Döviz, altın gibi finansal enstrümanlardaki inanılmaz sıçrayışları hep birlikte gördük, hissettik. Bu dış pazarlara daha çok yazılım ürünü sunmak için iyi bir fırsat olabilir. Özellikle kalabalık nüfusa sahip yazılım firmalarının iç girişimcilik programlarına daha fazla yatırım yapacağını ve yurtdışına satılabilecek ürünler için yeni inisiyatifler başlatacağını düşünmekteyim. Başlatmayanlar varsa da geç kalmadan başlatsınlar derim. Gerçekten her şeyin dijitalleştiği, birbirine bağlandığı ve akıllandığı bir ortamda iyi fikirlerin yazılım teknolojileri ve cihazlarla birleşip pazara çıkması şirketler açısından oldukça kritik. Bu fikri sahiplenen firmalar büyük ihtimalle doğru pazarlara doğru fikirlerle girmek isteyecektir ve işte bazı problemler de burada baş gösterecektir. Zorlaşan hayat şartları sebebiyle motivasyonu giderek azalan çalışanlarınızdan iyi fikirleri nasıl toplar ve bunların ürün haline getirilmesi için çıkılan yolda onları nasıl desteklersiniz? Mali açıdan bu yol haritasına gücü yeten firmaların ürünleşme ile ilgili olarak yeni takımlar oluşturacağı ve hatta danışmanlıklar almaya başlayacağı bir seneye girmiş olabiliriz. Hali hazırda bu işle uğraşan danışmanlık firmalarına daha çok iş çıkacağını düşünüyorum.
Rust
Gelecek yılla ilgili beklentilerimde programlama dillerine değinmezsem elbette olmaz. Dünya çapında kod tabanının çok büyüdüğünü, yüzlerce servisten oluşan sistemlerin iş hattında faal olarak kullanıldığını, yaşı geçmiş monolitik ürünlerin değiştirilerek yeni nesil mimari altyapılar üzerine oturtulduğunu, cihaz odaklı geliştirmelerin ön plana çıktığını uzun süredir görüyoruz. Ancak ortada anlaşılması kolaylaşacağına giderek zorlaşan, daha iyi yetkinlikler gerektiren, birkaç değil bazen onlarca yardımcı araçla desteklenen, sürekli takip bekleyen sistemler dolaşmaya başladı. Üstelik gözden kaçırdığımız teknik borçlar da halen daha yeterli ölçüde yönetilemiyorlar ve artma eğilimini sürdürüyorlar. Yazılımlarımız böyle bir dünya içerisindeyken bazı yerlerde performans artırımı için farklı dillerle çözümler üretiliyor. Go bu noktada belki de en çok öne çıkan dillerden birisi ancak ben son yıllarda Rust’ın koşar adım geldiğini görüyorum. Benim de uğraştığım bir dil olan Rust’ın öğrenme eğrisi epey zor ancak sistem programlama, oyun motoru geliştirme, gömülü cihaz uygulamaları üretme ve performanslı web çözümleri hazırlama gibi alanlarda kendisini hissettiriyor. Şayet üniversitenin son yıllarında bir öğrenci olsam Rust’ı mutlaka öğrenmeye bakardım. Gerçekten domain odaklı yazılım geliştirme bir yana böylesine güçlü bir programlama dilini öğrenmek yetkinlikler açısından son derece kıymetli.
Yapay Zekâ Destekli Mikro Eğitim
Bir yetkinlikler furyasıdır alıp başını gitti. İçinde bulunduğumuz dünya her zaman bizden daha iyi olmamızı bekleyen performans metrikleri üzerine inşa edilmeye devam ediyor. Sonuç her şeyi acele bir şekilde öğrenmeye çalışarak çok yönlü olmayı bekleyen insanların artması. Hatta neredeyse gece yatıp sabah kalktığımızda herhangi bir konuda uzmanlaşabilelim derdindeyiz desek yeridir. Neo gibi birkaç saniyede Kung Fu öğrenmek için metaverse yeni bir alan yaratacak bunu biliyoruz ama henüz vakit var. Eğitimin mikro seviyelerde tasarlanarak işletilmesi uzun zamandır gündemde olan bir mevzu ancak çok yönlü olmak adına en doğru yetkinliklerin tespiti ve bunlar için gerekli yol haritasını çizecek araçlar gerekiyor. Keza birey olarak bu hıza yetişmemiz pek de mümkün değil. Tüm alışkanlıklarımızı takip ederek karakterimize uygun enstrümanları karşımıza çıkaran yapay zekâ gibi olguların mikro eğitimler için destekleyici olarak uygulanabileceği bir yıl söz konusu olabilir. Var olan yetkinliklerimizi çeşitli algılayıcılar ile öğrenen ve hangi alanda ne gibi eksiklerimiz olduğunu ve artırmak için nasıl bir patika izlememiz gerektiğini belirtecek sistemlerin hem de bulut tabanlı olarak pazara sokulacağı bir eğitim dünyasına adım atabiliriz.
Tamamen kişisel gözlemlerim çerçevesinde hazırladığım ve herhangi bir bilimsel dayanağı olmayan bu öngörülerim önümüzdeki bir sene içerisinde olmasa da gelecek yıllarda etkisini daha çok hissettirebilir. Yine de 2022 farklı başlangıçlara gebe bir yıl olacak gibi duruyor. Her ne kadar yazı boyunca metaverse geliştiricisi, siber koruma, rust vs dediysek de bazılarımızın an itibariyle kodlarına dönmesi ve bir şeyleri debug edip üretim ortamında oluşan problemlerle ilgilenmesi gerekiyor. Sözün özü yenilikler çok cezbedici alanların yolunu açacak belki ama bir yazılımcı günündeki rutin çalışmalar da devam edecek.
Sağlık, sıhhat yanınızda olsun efendim.
Coşkun Taşdemir
Gömülü Yazılım Mühendisi
Aşılamaların hızlanması ile 2021–22 kışını daha rahat geçirebileceğimizi umarken, yeni ve maalesef daha hızlı yayılan bir varyant ile yeniden kapanmaların yaşandığı bir zamandayız.
Ben bu satırları yazarken yaşadığım Hollanda’da temel ihtiyaç maddelerini satan yerler dışında tüm mekanlar kapalı. 2020 yılının mart ayından beri evden çalışıyorum ve görünen o ki bu bir süre daha böyle devam edecek. Sonrasında pandemi bitse de birçok şirket “hibrit” çalışmaya geçeceğini duyurdu bile. “Uzaktan çalışma” özellikle bilişim ve yazılım gibi alanlarda “yeni normal” haline geldi. Aslında “uzaktan” kelimesi işin bir merkezi olduğu (ofis, fabrika vs.) varsayımıyla bu merkezin yakınında olmama durumunu ifade ediyor. Ama dijital işlerde zaten bir merkez çoğu zaman ortada yok. Sadece belirli ekiplerin işbirliği ve bu iş birliğini kolaylaştırabilecek ortamlar var. Pandemi ile birlikte bu verimliliği aynı fiziki mekanda olmadan da sürdürme yeteneklerimizi geliştirmek zorunda kalıyoruz.
Uzaktan çalışma trendinin artık bizimki gibi sektörlerde “normal” hale geleceğini düşünüyorum. Bu konuda yeni birçok araç ve platform geliştirilecektir. Özellikle “gömülü sistemler” gibi çoğu zaman belirli bir cihaz ve sisteme bağımlı alanlarda da uzaktan çalışmayı kolaylaştırıcı araçların ortaya çıkacağını düşünüyorum. Uzaktan ölçüm, kontrol ve test sistemleri önemli yenilik alanlarından birisi olacak.
Uzaktan çalışma trendinden en çok zarar görenler mesleğe yeni atılan “junior”lar oluyor. Tecrübesiz olunan zamanlarda ekipteki daha tecrübeli kişilerle geçirilen “formel” ve “informel” zamanlar oldukça değerli oluyor. Çoğu zaman tecrübe aktarımı “kahve sohbetlerinde” gerçekleşiyor. Uzaktan çalışma düzeninde, işe başlatma süreçlerinde yaşanabilecek sıkıntılardan çekinen şirketler “Junior” geliştiricileri daha az istihdam etme eğiliminde. Ancak halihazırdaki “yetişmiş insan gücü” açığı durumu daha da zorlaştırıyor. Bu nedenle uzaktan eğitim, “onboarding” sistemleri gibi çözümlerin artacağını öngörüyorum.
Gömülü sistemler ve elektronik dünyasında son dönemin ikinci kriz konusu da “çipler”. Gündemde “çip krizi” adıyla hemen herkesin aşina olduğu bu problem büyük sıkıntılara yol açıyor. Birçok firma geliştirdiği ürünleri üreteceği çipleri tedarik edemediği için üretim kesintileri ya da tasarım değişikliğine gitmek zorunda kalıyor. Bu noktada yazılım mimarilerini farklı ürünler arasında geçiş yapabilecek şekilde “taşınabilir” olarak tasarlamanın önemi ortaya çıkıyor. Artık “ürüne göre çip” döneminden “elde ne varsa ona göre tasarım” dönemi yaşanıyor desek yanlış olmaz. Bu noktada mikrodenetleyici uygulamalarında piyasada bulunabilirliği fazla olan ürünler tercih ediliyor. 8 bitler giderek yok olacak derken 32 bitlerden 8 bitlik mikrodenetleyicilere aktarılan tasarımlar konuşuluyor.
Embedded Linux da kullanım alanını her geçen gün genişletiyor. Mikrodenetleyici taraflı uygulamalardan farklı yetenekler gerektirmesi bu konudaki insan kaynağı sıkıntısını da artırıyor. Genelde gömülü yazılım alanında çalışanların elektrik-elektronik vb.bölümlerden gelen insanlar olduğu düşünüldüğünde, bu alana yönelecek arkadaşların işletim sistemi, sürücüler, işletim sistemi üzerinde yazılım geliştirme gibi konularda kendilerini geliştirmeleri faydalı olacaktır.
C++ kullanımı da gömülü sistemler alanında giderek artıyor. Son dönemde C++ standardındaki güncellemelerle daha farklı bir çehreye bürünen ve artık “modern C++” olarak anılan dili daha çok konuşmaya devam edeceğiz gibi duruyor.
Son olarak şu anda içinde çalıştığım sektöre dair de bir şeyler söylemek istiyorum. Son dönemde otomotiv dünyasını azıcık göz ucuyla takip edenlerin bile fark ettiği bir trend var: elektrikli araçlar. Aslında elektrikli araç konusu çok yeni bir şey değil. İnternette gezinen 1900’lü yılların başındaki şarj olan elektrikli araç fotoğraflarını hepiniz görmüşsünüzdür. Aslında o zamanlar batarya teknolojisi çok geri olduğundan elektrikli araçlar içten yanmalı motora yenik düştü. Tesla firmasının yarattığı yeni akımla bugün geleneksel otomotiv üreticileri de -belki kendilerine kalsa uzun yıllar hiç girişmeyecekleri- elektrikli araç projelerini başlattılar.
Son dönemde otomotiv üreticilerinden ardı ardına “yazılım” ve “batarya” konularında yatırım haberleri duyuyoruz. Aslında bu iki alanın ortak özellikleri: geleneksel otomotiv üreticileri için uzak konular olması ve elektrikli araçlardaki en kritik bileşenler olması.
Yanlış anlaşılmak istemem; otomobiller içerisinde yazılım uzun zamandır var. Ancak elektrikli araçlarda yazılım, otomobil içerisindeki bir bileşen olmaktan çıkarak en önemli katma değer yaratıcısı haline geliyor.
Burada konuyu kısa kesmek adına şunu söylemek istiyorum: Otomotiv önümüzdeki yıllarda yazılım geliştiricilerin en çok istihdam edileceği alanlardan birisi olacak. Bu konuda heyecan verici gelişmeler yaşanacağına inanıyorum.
Pandemiden kurtulduğumuz ve heyecan verici gelişmeleri daha çok konuşacağımız bir yıl olmasını diliyorum.
Egemen İmre
System Engineer
Uydular ve Uzayda Yazılım — 2022
Uzay alanı genel olarak son derece tutucu ve yavaş olması ile ünlüdür. Kullanılacak işletim sistemlerinin bile yıllar öncesinden sabitlendiği, yeni (ve riskli) yazılım dilleri ve konseptlerinin “çalışan sistemi bozmayalım, icat çıkarmayalım” gibi “legacy” meselesi nedeniyle kapıdan kovalandığı bir sektör için 2022 öngörülerini yazmak, diğer katılımcılara oranla daha kolay gibi görünebilir. Gerçekten de yazılımların kullanıldığı alanları Veri Üretenler (uydular vb.) ve Veri İşleyenler olarak ikiye ayırdığımızda ilk ekip bu kötü ünü hak ediyor. Öngörülerimize onlarla başlayalım:
Uydu tasarım ve üretim süreçleri ile yer istasyonlarında kullanılan yazılımlar oturmuş ve devrimden ziyade evrimle gelişiyor demek mümkün. Ancak arkadan koşar adım gelen “NewSpace” camiası geçmişe sünger çekip her şeyi bambaşka ve daha verimli bir şekilde yapmayı vaat ediyor. Eski ve oturmuş şirketler kadar yazılım altyapısına (ve genellikle de paraya) sahip olmayan şirketlerin açık kaynak yazılımlarla gidebilecekleri kadar yol gitmeleri şaşırtıcı olmayacaktır. Benzer şekilde, yeni şirketler uydu üretimi için de yepyeni bir yaklaşım vaat ediyor. Eskinin az sayıda, büyük ve pahalı uyduları yerine azami bir otomasyona sahip bir seri üretim bandından çıkan, belki daha düşük kalite standartlarına sahip ama düşük maliyetli uydular bambaşka bir üretim paradigmasına işaret ediyor. Bunu sağlamak için gerekli otomasyon, üretim, 3B baskı, yazılım modelleme ve simülasyon ile test ve doğrulama tekniklerinin koşar adım gelişeceği yıllar bizi bekliyor diye düşünüyorum.
Uyduların üstündeki gömülü yazılımlar ve FPGA’ler de bir yandan esneklik, bir yandan da yüksek performans baskısı altındalar. “Software-defined satellite/payload”, yani yazılımlarının güncellenmesi ile uydudan ya da faydalı yükten daha yüksek performans elde edebilme ya da benzer bir başka görev yapabilme kavramları biraz fazla “hype” içerse de, uydulardan beklentilerin nereye gittiğine dair bize bir fikir veriyor. Diğer uçta ise, özelleşmiş uydular gitgide daha fazla veri üretiyor ve bu verilerin uydu üstünde sıkıştırılması ve belki de belli bir aşamaya kadar işlenmesi ya da gereksiz verilerin elenmesi gibi süreçler için daha yüksek performansta FPGA’ler ve daha karmaşık işlevler gerekecek gibi görünüyor.
İkinci ekip ise uydulardan gelen verileri işleyerek bunlardan faydalı ve katma değerli veriler elde edenler. Burası ise “icat çıkaranların” mekanı. Gelen verilerin miktarı, çeşitliliği, detayı ve sıklığı arttıkça bunların işlenmesinde de Makine Öğrenmesi ve yüksek performanslı işlemci ve/veya GPU “cluster”larının kullanılması yaygınlaşıyor. Savunma ve istihbarat harcamaları muhtemelen aslan payını alsa da, çevre ve iklim krizini anlamaya ve buna karşı önlem almaya yönelik uygulamalar da gitgide öne çıkıyor. Meteoroloji modellemesi ve hava tahminleri, tarımda rekolte tahmini ve tarlalardaki hastalıkların belirlenmesi ile orman yangınlarının izlenmesi gibi alanlar önem kazanıyor. Birçok Avrupa ve ABD uydusu verilerini açık olarak yayımlarken, bunların verilerini işleyen ya da buna hevesli araştırmacılar için bu verileri kullanılabilir hale getiren Açık Kaynak ve Açık Erişim yaklaşımlarının da adını anmamak olmaz.
Son olarak, uzay çöplerinin izlenmesi ve uyduların bundan kaçınması derdinden de bahsetmek gerekiyor. Tüm uydu operatörlerini birbirine bağlayacak, çarpışma uyarılarını ve yörünge değişikliklerini otomasyona bağlayabilecek bir sistem için de (bence) 2022 ağır adımların atıldığı bir yıl olacak. İşin teknik kısmına kıyasla idari ve diplomatik kısmının çözülmesine emek harcanacağı ve böylece heba edilecek bir yıl daha bizleri bekliyor.
Emre Karaoğlu
Cloud Operations Sr. Expert
“Yazılım trendleri”ne sızmış bir “ops expert” olarak bu yıl benim küçük dünyamdan altyapı (veya ops) dünyası nasıl görünüyor anlatmak isterim.
Aslında bu yazıya başlamadan geçen yılki yazımı (ve aslında diğer yazıları da) yeniden gözden geçirdim. Geçen yıl için neler beklemişim, neler beklediğim gibi olmuş diye. Evet teknoloji çok hızlı ilerliyor, beklentiler de çok hızlı değişiyor. Ancak Ops dünyası aynı zamanda işin CAPEX tarafını da içerdiği için ciddi yatırım maliyetleri istiyor. Bu da düşünüldüğü kadar hızlı dönüşememeye sebep olabiliyor. Hatta bazen en doğru maddi yatırım “dalgalar durulduktan sonra” yapılmak isteniyor (ki bence doğru olan da bu). İşte bu sebeple Ops dünyasındaki değişim biraz daha -görece- uzun yıllara yayılmak zorunda kalıyor.
Yine başlık başlık ilerlemek daha güzel olacak gibi:
Öncelik yine cloud native teknolojilerde ve yazılım dünyasının da göz bebeği olan Kubernetes’te olsun. Artık K8s clusterlarının yönetilmesi ciddi bir sorumluluk oldu. Bu yüzden de özellikle kurumsal çözüm için Vanilla Kubernetes kurmak yerine yönetilen (managed) veya enterprise Kubernetes çözümleri tercih ediliyor. Bu yıl da işte tam olarak bu teknolojilerin hem Dev hem de Ops tarafında artışını gözleyeceğiz. Özellikle kurumsal çözümlerde Red Hat gücü ile OpenShift, Suse gücü ile Rancher, VMware gücü ile Tanzu isimlerini daha çok duyacak gibiyiz ve bunları -halen etmeyenler için- tecrübe ve test edeceğiz. Ama bence bu çözümler daha çok on-prem’de kullanılacaktır. Tüm büyük cloud servis sağlayıcıları zaten yönetilen K8s servisi sunuyorlar. Bu yüzden zaten buralardan hizmet alanlar için hem daha kolay hem daha ucuz olabilir bu servisler. Fakat hibrit çözümlerde bütünlüğü sağlamak için de enterprise çözümleri tercih eden kurumlar elbette olacak. Bir de aslında bu çözümler yazılımcılar için de çok kullanışlı arayüzler sunuyor. 2022 Kubernetes’in yılı olacak. :D
Kubernetes yedeklenmesi konusunu da unutmamak gerek. Ciddi konulardan biri de burası. Artık vm için bile legacy dediğimiz bir dünyada yedekleme işleri tamamen bir standarta geldi derken K8s yedeklerinin halen eksikleri var gibi gözüküyor. Platformların standartlaşmaması, yedeklerdeki beklentilerin de henüz tam oturmaması derken K8s yedek alma ve kurtarma senaryoları bu yıl eksiklerini ciddi oranda tamamlar bence.
Yılın sonuna doğru öğrendiğim bir çözüm veya yaklaşım benim de aklımı karıştırmadı değil: Adına “Cloud Native Virtualization” denilen bu çözüm, sanal makine oluşturmayı ve yönetmeyi DevOps süreçlerinde artık çok alıştığımız YAML’lar ile yapmayı sağlıyor. Benim tecrübem OpenShift ile oldu. Altyapı olarak KVM kullanıyor. Bir Linux bare-metal sunucu üzerinde aynı arayüz ile hem OpenShift K8s clusterları hem de sanal makineleri yönetebiliyorsunuz. Bir YAML hazırlayıp vm ayağa kaldırmak değil de, “desired state” dediğimiz beklenen/istenen duruma hızlıca dönebilmek fazlaca fantastik geldi bana. Sanki VM’lere bakışımız da değişecek. “Biz zaten biliyorduk” diyenler çıkabilir çünkü sanırım 2019'dan beri bahsi geçen bir konu. Fakat halen de gelişmesi gereken yönleri var gibi gözüküyor. Öte yandan aynı altyapı ile hem VM’leri hem K8s’i yönetmek Ops yöneticilerini heyecanlandırır. (Beni heyecanlandırdı en azından:)) Bu arada VMware’in de benzer bir çalışmayı Tanzu ile yaptığını unutmayalım.
Aslında biraz da önceki paragrafla yaptığım girişi GitOps yaklaşımı ile bağlayayım. Yoksa siz hala GitOps’a nasıl geçeriz diye düşünmediniz mi? :) Artık her şeye “Cloud native” gözü ile bakıyorsak, GitOps yaklaşımını altyapımıza nasıl uygularız diye düşünmenin yılı olur 2022. :)
İşletim sistemi dünyasında Linux’un artan popülaritesi artarak devam edecek gibi gözüküyor. Dünya geneline değil sadece çalıştığımız yerlere bile baksak 2020 ve 2021 yılında kurulan Windows Server sayısı artışı ile Linux Server sayısı artışında çok ciddi farklar var. Sanki Microsoft da “Windows Server” ile var olmak yerine daha çok cloud, Microsoft 365 gibi “as a service” şirketi olmak istiyor gibi gözüküyor. Azure ve 365 tarafındaki agresif satış yaklaşımları da benim 2021 yılı beklentilerimdeki cloud ile alınan servislerin artışını destekler yönde. Kısacası 2022 Linux’un yılı olacak. :D
2021'i ciddi bir log4j açığı problemi ile kapatan security dünyası ise sürekli değişen standartlarını bize dikte etmeye devam ederken, zero day’ler için de ensemizde boza pişirmekten geri kalmaz. 2022 güvenliğin yılı olur. :D
Mutlaka eksiklerim, yanlışlarım olabilir. Bunlar için uyarılarınızı, tavsiyelerinizi de duymayı çok isterim. Şöyle bir oturup düşündüğümde aklıma ilk gelenler bunlar oldu. Ben de “2022 yazılım trendlerindeki” diğer yazıları okumak için sabırsızlanıyorum.
Fatih Kadir Akın
Senior Software Engineer
2022 Web Trendleri
Facebook’un Meta adını almasıyla 2022'ye büyük bir metaverse hype’ı ile girdik. Sonrasında Twitter’ın Ethereum ağına bağlanabiliyor olması Blokzincir ve NFT kavramlarını daha ciddiye bindirdi. Bu nedenle “dağıtık” ve “merkeziyetsiz” bir Web olmayı amaçlayan Web3, 2022 ile web geliştiricilerin önüne düşüverdi.
2022 yılındaki bu hızlı trend bana kalırsa bir süre daha hayatımızda yer edinecek ve önümüzdeki günlerde “Connect to Wallet” butonlarını daha sık göreceğiz.
Bununla beraber Blokzincire bağlanabilen WebGL ve WebAssembly destekli “web metaverse” denemeleri göreceğimizden neredeyse hiç şüphem yok. Dolayısıyla VR/AR cihazları ve tarayıcının etkileşimi konusunda yeni teknolojilere sahip olabiliriz.
Bu heyecanlı girişten sonra 2022'de web geliştirme tarafında beklediğim diğer trend ise “dark mode”. Çok 2021 trendi gibi hissettirse de 2021 daha çok mobil uygulamalarda dark mode’un giriş yılı olmuştu ve dönüşüm hala tamamlanmış değil. PWA’lerin yükselişi ve WebAssembly’nin gelişmesi ile artık tarayıcılar da çok ciddi işler yapabiliyor. Dolayısıyla “uygulamalara benzeyen web sayfaları” trendi 2022 yılında da devam edecek gibi görünüyor, dark mode ile birlikte tabii ki.
Geçmişte karmaşık olanın bugün basitleştiği, ama yeni çıkan her şeyin daha önceki karmaşık şeylerden daha fazla karmaşık olduğu bir dünyada yaşıyoruz. Bu basitleştirilmiş karmaşık yapılardan biri de tabii ki “sunucular”. Her şey PWA olunca back-end ihtiyacımız da azalıyor ister istemez. Azalan backend ihtiyacı da bizi daha basit yönetebileceğimiz micro-backendlere yönlendiriyor. İşte bu kelebek etkisinin sonucu olarak “Serverless” hiç şüphesiz ki hayatımızın bir parçası olacak ve 2022 yılında eskisinden daha sık duyacağız.
Öte yandan, gelişen yapay zeka teknolojileri Web’e daha fazla entegre olmaya başladı. Chatbot’lar her ne kadar şu an için çok komik seviyede olsalar da henüz çok küçükler ve yeterince iyi eğitilmediler. Fakat her geçen gün daha iyi hale geliyorlar. Özellikle pandemi dönemi boyunca her işimizi telefon ve internet üzerinden yaptığımız bu dönemde AI chatbotlarla web geliştiriciler olarak daha fazla içli dışlı olabiliriz.
Ve tabii ki No-code. Geliştirme dünyası bu kadar yoğun hareket ederken “geliştirmeme” dünyası da boş durmuyor ve “daha az geliştiriciye ihtiyaç duyarak değer üreten” bir sektör oluşuyor. 2022'de “Low code” ve “No-code” kavramları daha fazla karşımıza çıkacak ve çok fazla ürün göreceğiz. Galiba web geliştiriciler olarak birilerini kendimizden bıktırdık :)
Fatma Tanrısevdi
Director Of Engineering
Pandeminin etkisi, en iyimser ihtimalle 2022’nin ortalarına kadar devam edecek. Pandeminin, sektörümüze uzaktan çalışmanın yaygınlaşması ve hatta varsayılan çalışma biçimi olarak kalacak olması gibi bir etkisi oldu. Tahmin ediyorum ki 2022 yılı, uzaktan çalışan ekiplerden nasıl maksimum verim alınır ve/veya uzaktan çalışırken nasıl maksimum verimle çalışılır konularına kafa yorularak geçecek. Çalışan bağlılığını artırmak için neler yapılabilir konusu da epey gündemde kalacaktır.
Web 3.0, 2022’nin en popüler başlıklarından biri olacağını, daha 2021 bitmeden bize gösterdi bile. Web’in zaman içerisindeki gelişimini 3 aşamada inceleyebiliriz: Web 1.0, Web 2.0 ve gelmekte olan Web 3.0. Çok çok kısaca özetleyecek olursam; Web1 Web’i keşfettiğimiz, sınırlarımızı denediğimiz tek taraflı bilgi paylaşımı temelli bir iletişimdi. Genellikle statik içerikler text ve image olarak sunuluyordu. İnternet erişimi ne yaygındı ne de hızlıydı. 2000’lerin ortalarına doğru şu anda da deneyimlemeye devam ettiğimiz karşılıklı iletişim temelli bir yapıya geçtik ve buna Web 2.0 dedik. Sosyal medyanın altın çağı Web 2.0 ile birlikte geldi ve hükümdarlığını sürdürüyor.
Peki Web3 hayatımıza ne getiriyor?
Web3’ün diğerlerinden en temel farkı decentralization(merkezden uzaklaşma, dağıtıklık). Web3 applicationları tek bir sunucu ya da tek bir veritabanı ile çalışmak yerine, blok zincirlerinde ya da birçok peer-2-peer dağıtık ağ üzerinde çalışıyor/çalışacak. Bu uygulamalara dapp(decentralized app) deniyor ve Web3’le birlikte sıkça duyacağız gibi görünüyor.
Jamstack dünyasında 2 oyuncu ön planda ve 2022’de de liderliklerini sürdüreceklerini düşünüyorum; Gatsby JS ve Next.js. Her iki framework de react-base ve static site generation yapabiliyor. Next.js’in SSR desteği de var. 2022’de Next.js’in daha da yaygın olacağını öngörüyorum.
React demişken oradan devam edeyim. Tahmin ediyorum ki 2022 senesi yeni projeler için React.js’in daha az tercih edilmeye başlandığı bir yıl olacak. Next.js gibi daha yetenekli frameworklerin yeni projeler için daha çok tercih edileceğini düşünüyorum. Tabii yanılıyor da olabilirim. :). Bu arada React komünitesi 18. versiyon için hazırlanıyor. Durmuyorlar.
Angular cephesi de yarıştan düşmüyor. Senede 2 büyük release vaadini, 2021’de tutturmayı başardı. 2022’de de sorun çıkacağını sanmıyorum. Angular Universal(SSR) konusunda hayal kırıklığı yarattıklarını düşünüyorum. Gönlüm bu konuya daha çok eğilmelerinden yana ama kasımda yayımlanan roadmap’te bu konudan hiç bahsedilmemiş. Performans, öncelikli konu başlıkları gibi görünüyor.
Vue ve Svelte’i 2022’de sahnede göreceğiz. 2022 senesinin başka hangi JS framework’e gebe olduğunu merakla bekliyorum. :)
TypeScript’in tahtını sağlamlaştıracağını ve yeni projeler için mecburiyet olacağını düşünüyorum. Front-end komünitesi TypeScript’e neden ihtiyaç olduğunu anladı ve giderek içselleştiriyor.
2021’in sonlarına doğru adını daha sık duymaya başladığımız No-code, Low-code gibi kavramlar da 2022’nin konuşulan başlıklarından olacaklar gibi.
Hadi Tok
Software Engineer
Mobilde reactive UI framework’lere geçişin 2022’de hızlanacağını düşünüyorum. Android tarafında Jetpack Compose geçtiğimiz yıl içerisinde “stable” olarak yayınlanmıştı. Stable olmasından bu yana Compose ile alakalı bir çok problem çözülmüş gibi görünüyor, kullanıma daha hazır. iOS tarafında da SwiftUI’ın en büyük problemi iOS 13+ üzerinde kullanılabilmesiydi. Gördüğüm kadarı ile genelde mobil uygulamalarda son 3 ya da 4 iOS versiyonu destekleniyor. iOS 15 kullanımının artması ve iOS 16’nın yayımlanması ile daha çok uygulama SwiftUI kullanmaya başlayacaktır. Reactive stili, daha önce kullanılan imperative’e göre farklı bir mantık ile düşünüp kurgulamayı gerektiriyor. Daha önce Reactive bir UI framework’ü ile çalışmamış yazılımcıların yavaştan bu mantığı araştırıp öğrenmeleri faydalı olacaktır.
Reactive framework’lerin diğer bir temsilcisi Flutter, son iki yıldır büyük gelişme kat etmesine rağmen çok yaygın olarak kullanılmıyordu. “Flutter öğrenmeli miyim?” diye soranlara genelde “Ne kadar Flutter geliştirici ilanı var?” diye cevap veriyordum. Geçtiğimiz sene içerisinde iş ilanlarının ve profesyonel olarak çalışan Flutter geliştiricilerin sayısının arttığını gördüm. Bu trendin hızlanacağını düşünüyorum. Özellikle Türkiye’de yaşanan döviz krizi sonrası yazılım geliştirme maliyetleri büyük ölçüde artacak ve şirketler Flutter gibi gerekli iş gücünü azalttığını iddia eden teknolojilere daha sıcak bakacaklardır.
Türkiye’de yaşanan krizden bahsetmişken bununla alakalı bir uyarı yapmak istiyorum. Yurtdışına remote olarak çalışıp kazancın döviz ile alındığı durumdaki vergilendirmede bir belirsizlik var gibi. Sosyal medyada gördüğüm kadarı ile birçok kişi bu durumun gelir vergisinden istisna olduğunu düşünüyor. Devlet gelir sıkıntısı yaşadığı zamanlar yeni kaynak arayışına girer. Daha önce Youtube ve uygulama marketleri üzerinden gelir elde edenleri araştırmaya başlamıştı.. Benzer bir şekilde uzaktan yurtdışına çalışan yazılımcılar hedef alınabilir. Ankara Sanayi Odasının Hazine ve Maliye Bakanlığına verdiği dilekçe aslında bu durumun birilerinin gözüne batmaya başladığını gösteriyor. Bu durumdaki yazılımcıların bu işleri bilen bir muhasebeci ile görüşüp kendilerini güvene almaları mantıklı olur.
Son olarak da bu sene içerisinde geliştiriciler için bir farklılık oluşturur mu çok emin olmasam da telefonlar dışındaki cihazlar için hareketli bir yıl bizi bekliyor. Android’de tabletler için özel tasarlanmış bir uygulama deneyimi pek yok ne yazık ki. Katlanabilir cihazların kullanılabilirliklerinin artması ve yaygınlaşmaları bu durumu değiştirebilir. Katlanabilir cihazlar tam açık haldeyken tablete benzer bir ekran alanına sahip oluyorlar ve katlanabilir cihazlar için yapılan iyileştirmelerden tabletler de faydalanacaktır. Hem Google hem Samsung bu cihazlara özel deneyim sağlamaları için geliştiricileri teşvik etmeye çalışıyor. Büyük ekranlar için Apple tarafında M1 çiplerin iOS uygulamalarını çalıştırması yazılım firmalarına büyük ekranlardaki (iPad ve MacOS) deneyimi güzelleştirmek için bir teşvik olabilir.
Apple Watch akıllı saatler piyasasındaki en başarılı cihaz ve Android ekosistemi bu konuda baya geri kaldı. Samsung Galaxy Watch’ın Wear OS ile çıkması Android’de akıllı saat ekosistemi için umutları yeşertmişti. Google’ın Fitbit’i satın alımı sonrası çıkaracağı Pixel Watch’ın Wear OS tarafını biraz daha canlandıracağını düşünüyorum. Bu da uygulama geliştiricilere akıllı saatler tarafında güzel bir fırsat sunabilir.
İsmail Baskın
Founder
Sosyal Deprem ve Blockchain
Her sektörde olduğu gibi yazılım sektörünün de 2022 yılındaki temel belirleyicisinin 2 yıldır süren pandemi olacağı herkesin malumu. Fikirlerine katıldığım birçok ekonomist ekonomiye etkisi bakımından Covid-19 pandemisini dünya savaşlarıyla aynı kategoriye koyuyor. Tüm dünyada karar vericiler sürekli kötü seçenekler arasından birini seçmeye zorlandı ve her aldıkları kararda milyonlarca insanı rahatsız ettiler. Bu kararların faturası ortaya çıkmaya başladıkça da kitlelerin ulusal, uluslararası, özel her türlü organizasyonun çok daha derinden sarsılmaya devam edeceğini, insanlığın önceki tecrübelerine bakarak tahmin edebiliyoruz.
İşte bu noktada 2008 krizine tepki olarak 13 sene önce Bitcoin ile başlamış olan blockchain devrimi, DeFi (Decentralized Finance) ve DAO (Decentralized Autonomous Organization) çözümlerinin gelişimini daha da hızlandırarak devam ettirmesi için bir fırsat oluşturuyor. Geleneksel kurumların kendilerini tehdit eden bu tehlikeye karşı elindeki silah ise yine blockchain tabanlı merkezi dijital paralar olacağı öngörülüyor. Öyle ya da böyle bir kavga başladığında bariz bir sonucu olacak: devasa bir blockchain yazılım ve yazılımcısı ihtiyacı!
Uzaktan Çalışma ve Kurumsal Güvenlik
Uzaktan çalışma ile birlikte video konferans uygulamaları hayatımıza mecburi kararlarla hızlıca girdi. Fakat şirketler başta güvenlik gerekçeleri ile halen uzaktan çalışmaya yönelik teknolojik adaptasyonları tamamlamaktan çok uzaktalar. Örneğin; birçok çalışan kendi evinde kurumsal ve kişisel iki farklı cihaz kullanmak istemiyor. Ya da kişisel işleri için de kullandığı cihazda şirketin invazif kontrolcü uygulamalarından rahatsız oluyor. Sadece evden değil, güvensiz ağlardan da internete bağlanarak çalışabilmek istiyorlar. Bu gibi gereksinimler Zero Trust Model, BeyondCorp gibi konseptlerin adaptasyonunu kaçınılmaz hale getiriyor. Bu da güvenliğin network seviyesinden uygulama seviyesine geçmesine ve yazılımcıların OAuth, OIDC, SSO, SAML, PKCE gibi kavramları daha sık duymalarına yol açacak gibi görünüyor.
Artan Çalışan Sirkülasyonu ve DevOps
Uzaktan çalışmanın yaygınlaşması, bazı şirketlerin hızlı çöküşü ve bazılarının hızlı büyümesi gibi birçok olası sebeple yazılımcıların işverenlerine sadakati oldukça azaldı ve çalışan sirkülasyon oranı (Turnover rate) zirve yaptı.
Bu da yazılımcıların artık çalıştıkları alanı daha hızlı değiştirmelerini sağlıyor, bazen de mecbur kılıyor. Firmaları ise DevOps, DevSecOps gibi otomasyonu ön plana alan metodolojilerin daha üst seviyede kullanmaya zorluyor.
Süreçleri sadece İngilizce diliyle dokümante edip çalışanlardan bunları okuyup uygulamalarını beklemek artan turnover rate ile iyice çalışmaz hale geliyor. Bunun yerine otomatize edilmiş testler, IaC (Infrastructure as Code), GitOps gibi modelleri kullanarak süreçleri farklı yazılımların da anlayacağı programlama dilleriyle dokümante etme fikri bunları bir lüks olarak değerlendiren firmalar için dahi zorunlu hale geleceğe benziyor.
Kutlu Kutluer
Researcher
Son yılların en sıcak teknoloji konularından biri olan kuantum bilgisayar alanındaki gelişmeler devam ediyor. Kuantum bilgisayarların teorik olarak vaad ettiklerinin ne kadarının gerçekleştirilebileceği konusundaki tartışmalar süredursun, Maryland merkezli bir start-up olan IonQ şirketi New York Borsası’nda (NYSE) halka açılan ilk full-stack kuantum bilgisayar firması oldu. Bir diğer kuantum bilgisayar start-up’ı Rigetti ise SPAC şirketi üzerinden 2022 yılında halka açılacağını duyurdu. Henüz endüstriyel çözümler üretebilen ürünler ortaya koymadıkları halde bu şirketlerin halka açılıp yatırımcıların dikkatini çekebilmeleri, kuantum bilgisayarların potansiyelinin büyüklüğünü teyit etmiş oldu.
Son yıllarda alanda adından söz ettirmeye başlayan bir şirket olan Honeywell Quantum Solutions, kendisine ait olan kuantum hacim (quantum volume) rekorunu 2021 yılı içerisinde, Mart ve Temmuz aylarında iki kere kırdı ve 1024 kuantum hacmine ulaşıldığını açıkladı. 2016 yılında IBM tarafından önerilen kuantum genişlik kavramı farklı platformlarda üretilen kuantum bilgisayar performanslarını tek bir parametre ile karşılaştırılmasına olanak sağladığı için alanda kullanılan bir parametre olmuştu.
2020 yılında donanım yol haritasını açıklayan IBM 2021 yılında da yazılım ve algoritma haritasını duyurdu. IBM hali hazırda kuantum donanımlara bulut üzerinden API’lerle erişim imkanı sunuyor. Yol haritasına göre 2023 yılından itibaren kernel geliştiriciler için devre kütüphaneleri ve 1000 kübitin aşıldığı donanımlar için kontrol sistemleri hazır olacak.
IBM donanım tarafında ise 127 kübitlik Eagle isimli kuantum işlemcisini tanıttı ve böylece 100 kübit barajını aşmış oldu. Eagle’ı 2022 yılında bitirmeyi hedefledikleri 433 kübitlik Osprey isimli işlemci takip edecek.
ABD’de bu gelişmeler yaşanırken Çin’de de hem fotonik hem de süperiletken sistemlerde kuantum avantajı gösterildi. Fotonik sistemde yapılan bozon örnekleme deneyi deneme yanılma yöntemi ile çalışan klasik süper bilgisayarlar simülasyonundan yaklaşık 1024 kat daha hızlı örnekleme verdi. Daha önceki kuantum avantajı gösterilen deneylerde bazı tartışmalar olsa da, (bkz. 2019 yılında Google’ın Sycamore işlemcisi) bu deneyde gösterilen hızlanma konuyu tartışmalara kapadı diyebiliriz. Fakat yine de belirtmekte fayda var; bozon örnekleme deneyi gibi deneyler kuantum sistemlerin klasik bilgisayarlara göre üstünlüğünün bariz olduğu ama endüstriyel anlamda kullanım alanı henüz olmayan işler.
Son yıllarda hem devletlerin fonlamaları hem de özel şirketlerin yatırımları ile kuantum bilgisayım alanında rekabetin arttığını görüyoruz. Bunun sonucunda 2022 yılı da hem donanım hem yazılım tarafında gelişmelerin katlanarak devam edeceğini öngörmek zor değil. Bilgisayımın yanında diğer kuantum teknolojilerinin de aynı hızlı geliştiğini hatta daha olgun aşamalarda olduklarını da belirtelim. Bir taraftan şehirler arası kuantum iletişim ağlarının kurulumu devam ederken, diğer yandan otomotiv sektöründe birkaç sene içerisinde kuantum sensörlerin kullanılmaya başlaması planlanıyor.
Mert Nuhoğlu
Principal Process Consultant
Sınırlı bilgime dayanarak gözlemlediğim yazılım trendlerinden önümüzdeki dönemde yaygınlaşmaya devam edecek olanların bir kısmının şunlar olacağını tahmin ediyorum:
Programlama Yöntemleri: Data Oriented Programming, R TidyVerse
Araçlar: Fuzzy Finder Araçları, Neovim Telescope, Neovim ve Lua Tabanlı Eklenti Geliştirme, Language Server Protocol
Stratejik Planlama Yöntemleri: Wardley Mapping
Programlama Yöntemleri
Data Oriented Programming
Önümüzdeki dönemin önemli trendlerinden birisinin veri odaklı programlama (data oriented programming) yaklaşımı olacağını düşünüyorum. Oyun programlamasında eskiden beri kullanılagelen bir yaklaşımmış bu. O tarafları doğrusu hiç bilmiyorum. Ben iki sene önce Clojure öğrenmeye başladığımda bu kavramı ilk kez duymuştum. İlk duyduğumdan beridir de, çok hoşuma giden ve iyice öğrenmek istediğim bir yaklaşım bu.
Bu yaklaşımı güzelce anlatan içerikler çokça mevcut internette. Örneğin: Data-Oriented Programming is dope — DEV Community, What is Data Oriented Programming? | Yehonathan Sharvit. Geçtiğimiz senenin en çok satan Manning kitabı Data-Oriented Programming olmuş.
Gördüğüm kadarıyla, DOP zaman içinde OOP’yi mevcut yerleşik konumundan edebilecek bir yaklaşım. Mutlaka saf fonksiyonel programlama (FP) yöntemlerini kullanmadan da, mevcut Java, Python gibi OOP için tasarlanmış programlama dillerinin içinde kalarak, programlama yapmaya müsait. Önümüzdeki dönemin güçlenecek trendlerinden birisinin bu dizayn yöntemi olacağını düşünüyorum.
TidyVerse
TidyVerse, R programlama dili içindeki bir programlama yaklaşımı ve bu yaklaşıma göre dizayn edilmiş bir library ekosistemidir. 2014 yılında Hadley Wickham tarafından yazılan dplyr adlı bir kütüphane etrafında şekillenen bir dünya bu. Hadley Wickham, R dünyasındaki pek çok önemli kitabın ve yaygın kullanılan kütüphanenin yazarıdır. Genel olarak veri bilimi ve veri analiz çalışmalarındaki en büyük maliyet kaleminin verinin hazırlanmasıyla ilgili çalışmalar olduğu söylenegelir. TidyVerse, bu problemlerin birçoğunu çözmeye yönelik yaklaşımlar ve araçlar sunar. Hadley Wickham, “Tidy Data” makalesiyle veriyi formatlama ve modellemeye dair temel bazı prensipleri anlatır. Hem bu prensiplere hem fonksiyonel programlama ve diğer iyi programlama yaklaşımlarına göre kendine kısıtlar koyarak veri manipülasyonu ile ilgili çeşitli kütüphaneler dizayn eder.
Zaman içinde bu kütüphaneleri kullanan R programcıları, bu prensipleri ve yaklaşımları giderek daha çok benimsedi ve başka programcılar da aynı dizayn yaklaşımlarına göre TidyVerse adını verdikleri ekosistemi inşa ettiler. Her geçen sene bu ekosistem daha da gelişmektedir.
Data Oriented Programming ile kesişen bazı yönleri de bulunuyor TidyVerse yaklaşımının. Bu da her ikisinin Fonksiyonel Programlama yaklaşımından ciddi ölçüde etkilenmesinden kaynaklanıyor olabilir. Mesela, her ikisinde de ham veri sadece temel data structure’lar kullanılarak işleniyor. Nesne tabanlı modellemenin önerdiği data hiding veya encapsulation gibi yaklaşımların tam tersi uygulanıyor. Immutability ve side-effect free programlama prensipleri takip ediliyor. For-loop’lar yerine map/reduce tarzı fonksiyonlarla döngüsel iş mantığı kodlanıyor.
TidyVerse’in belirleyici özelliklerinden birisi de Unix’in pipe operatörünü standart kompozisyon (composition) aracı olarak kullanması. Bu standart, kütüphane yazarlarının API dizayn kararlarını kısıtlamakla birlikte, tüm API’lerin birbiriyle uyumlu olmasını sağladığından çok büyük fayda sağlıyor.
Araçlar
Fuzzy Finder Araçları
Fuzzy Finder araçlarından kastım; Windows Search Bar, MacOs Spotlight, fzf (terminal fuzzy finder), IntelliJ Search Everywhere, Vs Code Command Palette, Vivaldi Quick Commands, Neovim Telescope, Figma Quick Actions gibi genel arama bulma fonksiyonalitesi sunan komut satırı (command bar) araçları.
Bu tür genel komut satırı araçları kullanıcıların uygulamaları kullanma verimliliklerini ciddi biçimde artırıyor. Sistem-kullanıcı etkileşiminin şeklini grafiksel etkileşimden klavye tabanlı etkileşime doğru çeviriyor. Uygulamaların kolay öğrenilebilirliği ve verimli kullanılabilirliği arasında uyumlu bir dengeyi yakalıyor. Önümüzdeki dönemde bu tarz etkileşimin daha da fazla yaygınlaşacağı kanısındayım.
Bu genel komut satırına dayalı arama bulma araçlarının tarihsel evriminde başlangıç noktasının Google olduğunu söyleyenler var. Google arama motoru ilk kurulduğundan beridir, sistem-kullanıcı etkileşimi için sadece tek bir görsel öge sunageldi. Kullanıcı istediği her şeyi yazabildi bu girdi alanına. Google ise bu girdiyi bir şekilde anlamlandırarak ilişkili gördüğü her şeyi listeleyegeldi. Şimdi de benzer etkileşim şeklini bu komut satırı araçlarıyla, her türlü uygulamayla yapar hale gelmekteyiz.
Neovim Telescope
Fuzzy finder araçları arasında Neovim Telescope eklentisinden bahsetmiştim. Buna özel bir bölüm açmak istiyorum, çünkü diğer fuzzy finder araçlarından çok farklı bir yönü var Neovim Telescope aracının. Neovim Telescope, bir Neovim eklentisi olmakla birlikte aynı zamanda kendisi için de eklenti geliştirilebiliyor. Yaklaşık bir veya bir buçuk yıllık bir eklenti olmakla birlikte, ve kendisinden önce Unite veya Fzf.vim gibi yerleşik yaygın benzer eklentiler olduğu halde, çok hızlı bir şekilde bunların yerini almakta ve yepyeni bir eklenti ekosisteminin oluşmasına yol açmaktadır.
Telescope’un önceki benzer Vim eklentilerinden önemli bir farkı bulunuyor. En baştan genişletilebilirlik düşünülerek tasarlanmış. Yeni kullanım ihtiyaçları için kolaylıkla Telescope eklentileri hazırlanabiliyor. Böylece her türlü veri kaynağı için özelleşmiş bir fuzzy finder aracı hazırlanabiliyor. Dolayısıyla Telescope yeni, niş bir yazılım ekosistemi oluşturuyor kendi etrafında. Önümüzdeki dönemde bu ekosistemin oldukça zengin bir araç seti sunacağını zannediyorum.
Neovim ve LSP (Language Server Protocol)
Neovim, klasik Vim uygulamasının sıfırdan yeniden yazılmış drop-in replacement versiyonu. Neovim ve Vim birbirine paralel olarak evrimlerine devam ediyorlar. Neovim çok daha geniş bir çekirdek geliştirici desteğine sahip. Performansı çok daha yüksek ve Lua tabanlı eklenti geliştirmeye dahili olarak destek veriyor. Bu da çok daha performanslı ve kolay eklenti geliştirme imkanı sağlıyor.
Neovim’in geçtiğimiz 2021 senesinde yayınlanan 0.5 versiyonuyla dahili LSP (Language Server Protocol) desteği geldi. Bununla birlikte Neovim, sade bir metin editörü olmaktan çıkıp, VS Code veya IntelliJ gibi tam teşekküllü bir IDE aracı haline geldi. Önümüzdeki dönemde de mevcut LSP entegrasyonunu geliştirecek çok sayıda yeni özellik ve eklentiler çıkacağını düşünüyorum. Vim’in büyük IDE’lerin özellik seti olarak hep gerisinde kalmasına neden olan en önemli kısıtı aşıldı. Bu sayede, Neovim’in gelecekte diğer IDE’lerin önüne geçmesini sağlayacak yeni özelliklere imkan tanıması muhtemel.
Stratejik Planlama Yöntemleri
Wardley Mapping
Simon Wardley, bulut bilişim kavramının ve teknolojisinin doğduğu 2000'li yıllarda bu alanda altyapı hizmetleri veren büyük bir teknoloji firmasının yöneticisi. Firmanın CEO’luğu görevine atandığında, “bu firmaya nasıl bir yön çizmeliyiz?” sorusu üzerine düşünürken, stratejik planlama literatürünün aslında son derece yetersiz olduğunu ve yöneticileri yanlış yönlendirdiğini fark etmiş. Bunun üzerine yaptığı okumalar ve çalışmalarla, herhangi bir alandaki evrilmenin nasıl olacağını daha iyi ifade etmeyi ve öngörmeyi sağlayacak bir yöntem geliştirmiş. Bu geliştirdiği yöntemi açık kaynak bir kitap haline getirip herkesle paylaşmış.
Doğrudan yazılım geliştirmeye yönelik bir yöntem olmamakla birlikte, teknolojinin evrimini anlamak için yararlı bir çerçeve sunduğunu düşünüyorum Wardley’in haritalama yönteminin. Çok hızlı olmamakla birlikte ağır fakat sağlam adımlarla yayılıyor bu yeni strateji planlama yaklaşımı. Bu yüzden, bu yaklaşımı da niş bir trend olarak eklemek istedim.
Meryem Alay
Engineering Manager
Son birkaç yıla baktığımızda her şey ne kadar da hızlı değişti değil mi? Eğlence anlayışımız (online tiyatro izleme), arkadaş buluşmaları (zoom partileri) ve çalışma şartlarımız (uzaktan çalışma) bu değişimlerin başında yer alıyor. Her ne kadar bu değişimler bizim tercihlerimiz sonucunda olmasa da kısa sürede bu değişimlere ayak uydurduk. Öyle ki uzaktan çalışmak, artık birçoğumuzun olmazsa olmazlar listesinde ilk sırada yerini aldı. Zorunlu olarak deneyimlediğimiz uzaktan çalışmanın getirilerini, iki sene içinde tecrübe ettik. Çoğumuza göre evden çalışmak kısmen özgürlük! Ve biz bu özgürlüğü çok sevdik. Özgürlüğün tadını alan her insan, biraz daha özgür olma yollarını aramaya başladı. Freelance çalışmak her zamankinden daha cazip hale gelmeye başladı. Bir şirkete bağlı olmadan, proje bazlı çalışmak, kulağa ne kadar hoş geliyor değil mi? Haftanın kaç günü, kaç saat çalışacağınıza kendiniz karar veriyorsunuz, dahası istediğiniz yerden çalışabilirsiniz! Bir nevi kendi kendinin patronusun. Evet arkadaşlar “2022 freelancer’ların yılı olacak!” diye iddialı bir çıkış yapıyorum ve devam ediyorum “kendine yatırım yapan, bu yıl her zamankinden daha çok kazanacak!”
Öncelikle şunu belirteyim, yazılım yaşam döngüsünün herhangi bir alanında uzmanlığınızın olması, freelance olarak çalışmanız için yeterlidir. Fakat bazı alanların daha hızlı proje bulacağı konusunda şüpheniz olmasın. Eğer native mobil (Android, Swift vs) yazıyorsanız, freelance konusunda doğal olarak şanslılardansınız. Mobil projelerin nispeten daha küçük ölçekli olması ve şirketlerin mobil ekip kurmak istememesi… Bazen de bir fikrim var diye yola çıkan girişimcilerin, ekip kurmadan fikirlerini birilerine yaptırma isteği… Bu noktalarda freelancer bulmak, akıllıca bir seçim oluyor. Native mobil hala popülerliğini koruyor ve freelancer için cazibesini devam ettirecek gibi duruyor.
Geçenlerde freelance sitelerinden birinin yayınladığı bir makalede, frontend ilanlarının hatırı sayılır bir derecede çok olduğundan söz ediliyordu. Frontend framework’lerinin son yıllardaki mobil (React Native vs) başarılarını da göz önünde bulundurursak, 2022 yılı frontend yazılımcılarını en çok aranılanlar listesinde en üste çıkaracaktır. Eğer kendinize böyle bir kariyer kurmak istiyorsanız, JavaScript başta olmak üzere, popüler frontend framework’lerine yatırım yapmak akıllıca olacaktır.
Ama bana sorarsanız asıl aranılan yazılımcılar, full-stack’ler olacak. Eskiye dönüş gibi düşünebilirsiniz. Bir projeyi baştan uca ön yüzden, dağıtımına kadar yapabilenler; yani tek başına dev kadrolar bu yıl yok satacak.
Freelancer olmak kulağa çok cazip gelse de hiç kolay bir iş olmadığını söylemek lazım. Tek başınıza bir şirket olduğunuzu unutmayın. Network yapmak, kendi reklamınızı yapmak, iletişim becerilerinizi geliştirmek, yabancı müşteriler için akıcı İngilizceye sahip olmak, temel muhasebe bilgisi vs. derken öğrenecek ve geliştirilecek bir sürü şey var. Ama bir kere işleri oturttuktan sonra, gerisi çorap söküğü misali… Sonrası hangi şehirde, hangi kafede çalışsam diye sorunları çözmekle geçecek.
Mustafa Ilıkkan
Java Web Developer, Java SE 11 OCP
2022 yılında Java Dünyası
Yazılımda özellikle 2010’dan sonra baş döndürücü bir değişim yaşanmaya başladı. Firmaların yazılımlarını daha hızlı geliştirmesi, daha hızlı sürüm çıkarması ve bunları sürekli geliştirmesi, pazar paylarını ve karlarını etkilediği için kritik bir hal aldı. Bu da bizlere sürekli yeni dil ve framework çıkması, yeni mimarilerin kullanılması, DevOps pratiklerinin ve çevik metodolojilerin yaygınlaşması olarak yansıyor. Bu bir süreç: yeni trendler deneniyor, bazıları gelişiyor bazıları unutuluyor, bazıları başka şekillere evriliyor. Yeni trendleri yazılım dünyasında takip etmek önem kazandı ancak sürekli “hype trenine” binmek de odağı kaybetmeye sebep olabilir.
2022 yılında yazılım dünyasında birçok gelişme yaşanacaktır, ancak ben bu yazıda Java dünyasındaki gelişmelere değinmek istiyorum. Öncelikle, Java’yı sadece bir programlama dili değil, dilin kendisi, API’lar ve JVM’den (Java Sanal Makinesi) oluşan bir platform olarak ele almak lazım. Günümüzde Java platformu hem üretilen yazılım miktarı hem de yazılımcı sayısı açısından dünyadaki en büyük yazılım ekosistemlerinden birisi oldu. Buna bytecode üretip JVM üzerinde çalışan Kotlin, Scala, Groovy gibi dilleri de ekleyerek dev bir JVM ekosisteminden bahsedebiliriz.
Java, 9 versiyonundan sonra, 2017 yılından itibaren 6 ayda bir sürüm çıkarmaya başladı ve bu uygulama yeni özelliklerin Java’ya daha sık eklenmesini sağlayarak, kullanıcıların bunları denemesine imkan verdi. Aslında 25 yıldır Java’da birçok inovasyon yapılıyor ve dil günün gerekliliklerine uygun hale getirilmeye çalışılıyor, ancak sürüm hızının artması bunu daha görünür kıldı. Bu sisteme göre 2022 yılında Mart ayında Java 18 ve Eylül ayında Java 19 sürümleri çıkacak. Ayrıca daha önce 3 yılda bir çıkarılan LTS (Long Term Support) sürümleri, yeni alınan bir kararla 2 yılda bir olacak şekilde düzenlendi. Yani son LTS sürümü olan Java 17’den sonraki LTS sürümünün, 2023 yılının Eylül ayında çıkacak Java 21 olması planlanıyor. LTS sürüm aralığının 2 yıla düşürülmesinin, Java 8 ve Java 11’den daha yeni sürümlere geçişi hızlandırması bekleniyor. Geçen yıl yapılan anketleri incelediğimizde Java 11 kullanım oranının oldukça arttığını ve neredeyse Java 8 ile aynı orana geldiğini görüyoruz. Bu da yeni 6 aylık sürüm sisteminin Java’ya ivme kazandırdığını göstermektedir. 2021 sonunda Java 17’nin LTS olarak çıkması sonrası Java 11 ve Java 17’ye geçişlerde artış olacaktır. Ancak şunu da unutmamak gerekiyor: özellikle Java kullanan firmaların çoğu büyük kurumsal firmalar ve uygulama sunucuları üzerinde çalışan monolit yapıdaki kod tabanlarının yeni sürümlere güncellenmesi uzun sürebiliyor veya kurumlar bu konuda risk almak ve çalışan sistemlerini bozmak istemiyorlar. Bu anlamda Java 8’in destek süresi (extended support) Oracle tarafından 2030 yılına kadar uzatılmış durumda.
JavaSE’deki (Standard Edition) gelişmelere baktığımızda yeniliklerin Amber, Loom, Panama ve Valhalla isimli 4 ana şemsiye proje altında toplandığı görülmekte. Bu çatı projeler kapsamında çeşitli yenilikler 6 aylık sürümlerle kademe kademe kazandırılıyor. Bu projelerdeki gelişmeleri kısaca özetlersek;
- Project Amber dile yeni özellikler kazandırılması hedefliyor. Bu kapsamda text blokları, switch ifadeleri, sealed sınıflar, record sınıfları ve pattern matching gibi birçok yenilik kazandırıldı. 2022 yılında ise yeni patern’lerin eklenmesi ve bunların recordlar, diziler ve diğer veri yapıları ile birlikte kullanılması ile Java’nın daha deklaratif bir yapıya doğru evrileceğini değerlendiriyorum.
- Project Loom Java’ya eşzamanlılık (concurrency) konusunda, mevcut thread’lerden daha etkin, çok hafif thread’lerden oluşan yeni bir model getirecek. Burada amaç karmaşık asenkron kodlar ile sağlanan eşzamanlılığı, JVM yönetimindeki maliyeti düşük çok sayıda sanal thread kullanılarak, daha basit senkron kodlarla sağlayabilmek. Sanal threadler konusunda günümüze kadar müstakil yapılan geliştirmeler, 2022’de JDK’ya entegre edilmeye başlanacak ve bunları kullanmaya başlayacağız.
- Project Panama JVM kodunun JVM dışındaki, makinenin native koduna daha kolay ve güvenli erişebilmesini hedefleyen, mevcut JNI (Java Native Interface) yerine geçecek özellikleri barındırıyor. Java 18 ve Java 19’da Foreign Memory API ve Vector API ile ilgili daha fazla özellik gelecek ve bu proje büyük oranda tamamlanmış olacak.
- Project Valhalla kapsamında Java’nın tip sisteminde köklü değişiklikler yapılacak ve “value types” denen tipler gelecek. Böylece sınıfların getirdiği maliyet hafiflemiş olacak ve JVM performansı artacak. 2022 yılı için bu proje kapsamında beklenen gelişmeler “primitive classes” ve “value classes” özelliklerinin gelmesi. Bunlar kimlik (identity) bilgisi olmayan sınıflar olacak ancak primitive de değiller. Daha ayrıntılı bilgi için kaynaklarda bağlantısı paylaşılan State of Valhalla başlıklı makale okunabilir.
Eski adıyla JavaEE, 2019’dan itibaren JakartaEE olarak ismi değişen, Java’nın Enterprise Edition tarafında ise 2020 sonunda JakartaEE 9 sürümü çıkmış ve “javax” isim uzayından (namespace) “jakarta” isim uzayına geçiş tamamlanmıştı. Bu sorun çözüldükten sonra JakartaEE dünyasında uzun süredir sekteye uğrayan gelişmeler toparlanmış ve yoluna girmiş oldu. 2022 yılında ise JakartaEE 10 spesifikasyonu yayımlanacak ve bununla uyumlu implementasyonlar minimum Java 11 ile çalışacak. Ayrıca Platform ve Web Profillerine ilave “Core Profile” isimli, daha küçük mikroservis runtime’larının sertifikasyonunu hedefleyen yeni bir profil teklif edilmiş durumda. Bu anlamda JakartaEE, Java’nın kurumsal, web ve mikroservis tarafındaki standartlarını belirlemeye devam edecek ve Java’nın açık standartlar üzerine inşa edilmiş, güçlü bir dil olarak varlığını sürdürmesine katkıda bulunacak. JakartaEE’nin referans implementasyonu Eclipse Glassfish projesi ancak bu standartlar Spring, Quarkus, Helidon gibi birçok framework ve Tomcat, Wildfly, Payara gibi diğer uygulama sunucuları tarafından da implemente ediliyor. JakartaEE ile bağlantılı bir diğer proje de Java ile cloud-native mikroservis projeleri geliştirmek için standartları belirleyen MicroProfile projesi. Bu projenin referans implementasyonu OpenLiberty projesi ancak bu standartlar Quarkus, Helidon MP, TomEE gibi başka framework’ler tarafından da kullanılıyor.
Java’nın mikroservis projelerinde kullanımının 2021 yılında oldukça arttığını görüyoruz. JRebel’in “2021 Java Developer Productivity Report” isimli anketinde, uygulama mimarisi olarak mikroservis kullanımı %49, monolit mimari %42 olarak görünüyor. Bu trendin 2022 yılında da artacağını, ancak monolitlerin Java dünyasında büyük oranda varlığını koruyacağını düşünüyorum. Diğer taraftan söz konusu ankete cevap verenlerin %10’u uygulamalarını serverlerless mimaride çalıştırdığını söylemiş. Bu da Java’nın hızlı start-up ve düşük memory ayak izi gerektiren serverless uygulamalarda kabul gördüğünü ve yaygınlaştığını gösteriyor. Bu trendin 2022 yılında da devam etmesi beklenebilir.
Java’nın cloud-native, mikroservis uygulamalarında kullanımının artması, Kubernetes gibi konteyner ortamlarında ve serverless mimaride kullanımının yaygınlaşmasında GraalVM’in büyük katkısı var. GraalVM hem JIT derleme yapabilen, hem -AOT olarak isimlendirilen- native imaj oluşturabilen hem de Kotlin, Scala, Groovy, Closure gibi JVM dillerine ilave olarak Python, JavaScript, Ruby, C/C++ gibi birçok dili çalıştırabilen (polyglot) bir sanal makine. GraalVM JIT derleme performansı OpenJDK’dan daha iyi. Ayrıca native imaj özelliğini kullanan Quarkus, Helidon ve Micronaut gibi frameworklerin kullanımı yaygınlaştı. Bunların 2022 yılında da kullanım oranlarının artacağı öngörülüyor. Twitter 2019 yılında GraalVM kullanarak bekleme süresini (tweet latency) %20 oranında düşürdüğünü açıklamıştı. Facebook is 2021 yılında GraalVM sayesinde Apache Spark yüklerinde %10 CPU kullanımında azalma gözlemleyip, CPU kullanımı yüksek büyük veri işlerini GraalVM’e taşımış.
Spring framework’e bakarsak, şu anda Java dünyasında en yaygın kullanılan framework olduğunu görüyoruz. Synk firmasının “JVM Ecosystem Report 2021” isimli anketinde Spring Boot kullanımı %57, Spring MVC kullanımı %17 olarak ölçülmüştü. Bu trend 2022 yılında da devam edecektir. 2022 yılı sonlarına doğru Spring Framework 6 ve Spring Boot 3 sürümlerinin çıkacağı duyuruldu. Bu sürüm minimum Java 17 ve JakartaEE 9 gerektirecek. JakartaEE 9 sürümünde jakarta isim uzayına geçildiği için javax kullanılarak yazılmış eski Spring uygulamalarının tekrar derlenmesi gerekecek. Ayrıca bu geçişten dolayı Spring Boot 3 uygulamalarında gömülü sunucu olarak Tomcat 10 ve Jetty 11 sürümleri kullanılacak.
Spring tarafından üzerinde çalışan diğer bir proje de Spring Native projesi. Burada da GraalVM kullanılarak Spring uygulamasının native olarak derlenmesi hedefleniyor. Ancak Spring framework dahilinde yoğun olarak reflection ve dinamik proxy kullanıldığı için bu süreç Quarkus’taki kadar hızlı ilerlemiyor. 2022 yılında bu konudaki gelişmeleri takip etmeye devam edeceğiz. Spring tarafındaki diğer bir gelişme de Microsoft’un Azure üzerinde “Azure Spring Cloud” isimli “fully managed” bir servis sunması oldu. Spring framework üzerinde Java dışında Kotlin ile de uygulama geliştirilebiliyor. Kotlin’in buradaki kullanımının da önümüzdeki dönemde artması bekleniyor.
Sonuç olarak Java dünyası 2022 yılında da dünyanın en büyük yazılım ekosistemlerinden biri olarak varlığını sürdürecek. Gücünü de imkanların çeşitliliğinden ve açık standartlar üzerine inşa edilmesinden almaya devam edecek. Günümüzde modern uygulama geliştirme trendi cloud-native, mikroservis ve serverless olabilir ancak uygulama sunucuları, web MVC uygulamaları ve diğer monolit yapıdaki uygulamalar da tabi ki varlığını sürdürmeye devam edecektir. Yeni çıkan framework ve teknolojileri işimizde kullanmasak da deneyip, incelemek bize vizyon kazandıracaktır.
Kaynaklar:
- State of Valhalla makalesi: https://openjdk.java.net/projects/valhalla/design-notes/state-of-valhalla/01-background
- JRebel 2021 Java Developer Productivity Report: https://www.jrebel.com/resources/java-developer-productivity-report-2021
- Twitter’ın GraalVM kullanımı ile ilgili sunum: https://www.youtube.com/watch?v=W-5kUG8_mbk
- Facebook’un GraalVM kullanımı ile ilgili makalesi: https://medium.com/graalvm/graalvm-at-facebook-af09338ac519
- Synk JVM Ecosystem Report 2021: https://snyk.io/jvm-ecosystem-report-2021
Oğuz Kılıç
Software Architect
Şüphesiz 2021 yılı frontend ekosistemi için verimli ve hareketli bir yıl olarak tamamlandı.
Geçtiğimiz yıl dikkatimi çeken ilk şey popüler olduğunu düşündüğümüz kütüphane ve araçları daha iyi olmaya iten alternatiflerin popülaritesinin hızlı bir şekilde artması oldu. Yeni yılda içinde bulunduğumuz ekosistemde birbirini iten araçların daha iyi olma yarışını keyifle izleyeceğimizi düşünüyorum.
Diğer dikkatimi çeken konu ise Rust’ın JavaScript tooling tarafındaki hızlı yükselişi. Bunun en güzel örneklerinden biri olarak SWC’yi gösterebiliriz. Babel’a alternatif bir derleme ve paketleme aracı olan SWC popüler React framework’ü Next.js tarafından da kullanılıyor. JavaScript dünyası sanıyorum Rust’ı altyapı tarafında daha fazla hız ve performans için ideal bir gelecek olarak görüyor. Benzer şekilde ESbuild gibi Go tabanlı araçlar da hızla JavaScript ile geliştirilen popüler kütüphanelerin yerini almaya başladı. Rust’ın JavaScript dünyasındaki bu popülaritesi WebAssembly için oldukça önemli gibi görünüyor.
Bu konudaki görüşlerine büyük ölçüde katıldığım bir isim olan Lee Robinson’ın “Rust is the Future of JavaScript” yazısına göz atmanızı öneririm.
Ön yüz kütüphanelerinde farkların büyük oranda ortadan kalktığını, birbirine benzer özelliklerin hızlıca ortaya çıktığını geçen yıl olduğu gibi bu yılda göreceğimizi düşünüyorum. Özellikle kendi penceremden baktığımda React tarafında uzun süredir beklenen streaming SSR, server components gibi özellikler React 18 ile birlikte yaygınlaşma eğilimi gösterebilir. CSS-in-JS dünyasına baktığımızda zero runtime yeteneği olan kütüphanelerin özellikle styled-components gibi araçların popülerliğini azaltacağını düşünüyorum.
Geçtiğimiz yıl çıkan Remix, Next.js’e daha iyi bir alternatif olarak hızlıca yerini aldı. Tahtından eder mi henüz bir şey söylemek güç. Ancak Next.js’in arkasında Vercel gibi güçlü bir şirket var. Vercel geçtiğimiz yıl JavaScript dünyasının önemli bazı yetenekli geliştiricileri kadrosuna kattığını hatırlatalım. Bu durumun yansımasının Next.js’in ilerleyişine olumlu katkılar sağlayacağını düşünüyorum.
Tarayıcıların artan yetenekleri web tabanlı uygulamaların gelişimi için önemli bir yere sahip. Bu bağlamda Progressive Web App, Single Page App gibi artık genel kabul görmüş yaklaşımların daha fazla yaygınlaştığını görmeyi bekliyorum. Aynı zamanda Google’ın Web’i daha performanslı olmaya itmesi sonucunda, geçtiğimiz yıl Web Vitals metrikleri SEO için dikkate değer bir konu haline geldi. Daha performanslı web uygulamaları geliştirmek için bir süredir oluşturulmaya çalışılan farkındalığın 2022'de yaygınlaşacağını görebiliriz.
Her yıl olduğu gibi 2022 de frontend ekosistemi için hareketli ve yeniliklerin bol olduğu bir yıl olacaktır. Büyük ölçüde React, Angular, Vue gibi kütüphaneler üzerine kurulan bu ekosistemin keskin bir değişime uğrayacağını sanmıyorum ancak bu kütüphaneler etrafında konuşlanan JavaScript araçlarını daha fazla sahnede görebiliriz.
Ömer Çıtak
Founder
In a nutshell: 2022 yılında yazılım geliştiricileri ciddi güvenlik sıkıntıları bekliyor diyebiliriz.
Birçok siber saldırının altında yatan ana sebep para. Sanal dünyadaki suçlular da tıpkı gerçek dünyadaki suçlular gibi bu işleri genelde para için yaparlar. Dolayısı ile değerli verilere sahip şirketler, siber dünyadaki saldırganların ağzını sulandırır.
Siber dünyadaki saldırganlar bir şirketi hedef tahtalarına koyduklarında o şirketi hacklemek için öncelikle keşif yaparlar. Bu keşif aşamasını da tıpkı gerçek dünyada bir suç işlenmeden önce yapmaları gereken keşif aşamaları gibi yaparlar. Bu şirketin herkesin erişimine açık hangi servisleri var, bu servisler hangi yazılımları kullanıyor, bu yazılımları kimler geliştirdi gibi ön bir araştırma yaparlar. Ardından bu bilgileri yorumlayarak şirketi hackleyebilecekleri en uygun noktaları ve bu noktalara yapabilecekleri saldırı tiplerini tasarlarlar.
Bugüne kadar yapılan siber saldırılara dönüp bir bakarsak ve bu saldırganların ilk giriş noktası neresi diye sorarsak bulacağımız en popüler 2 cevap şunlar olacaktır:
1- Phishing e-mail ile zararlı yazılım yükleterek.
2- Şirketin dışarıya açık web uygulamalarını hackleyerek.
Birinci yöntem genelde şirketlerin teknik olmayan personellerini ilgilendiriyor. O yüzden bizi ikinci yöntem daha çok ilgilendiriyor. Çünkü saldırganların hacklediği web uygulamalarını yazılım geliştiriciler geliştiriyor.
Kaynak: https://owasp.org/Top10/assets/mapping.png…
OWASP Top 10 listesinin 2017 ve 2021 versiyonlarını karşılaştırırsak göreceğimiz en belirgin fark 2017'de Injection zafiyetleri ilk sıradayken 2021'de Broken Access Control ilk sırada. 2017 öncesi SQL Injection, XSS gibi injection zafiyetleri popülerdi. Lakin bu zafiyetlerin tespiti ve giderilmesi kolay olduğundan yazılım geliştiriciler bu konularda bilgi sahibi olmasa dahi kullandıkları kütüphaneler aracılığı ile bu zafiyetlerden büyük oranda kaçınmış oldular.
2021'nin ilk sırasında yer alan Broken Access Control’ün tespiti maalesef hiç kolay değil. Çünkü bu zafiyetler business logic zafiyetleridir. Bir araç ya da bir kütüphane hangi eylemin veya hangi nesnenin kimler tarafından erişilebilir olması gerektiğini bilemez. Burada tüm yük şirketin yazılım geliştiricilerine kalıyor. Yazılım geliştiriciler kod yazarken, mindsetleri öncelikli olarak yetkilendirmeye değil de problem çözmeye odaklı olduğundan bu tarz zafiyetler gözden kaçmış oluyor.
Sonuç olarak 2022 yılında yazılım geliştiricileri ciddi güvenlik sıkıntıları bekliyor. Bu süreçte şirketlerin güvenlik sorumluluğunu yazılım geliştiricilerden alıp bir güvenlik ekibine devretmesi gerekiyor. Buna ek olarak davranış tabanlı saldırı tespit sistemleri kullanarak gözden kaçmış business logic zafiyetleri keşfetmeye çalışan saldırganların kurcaladıkları noktaları tespit etmekte fayda var.
Sedat Kapanoğlu
Software Architect
Bu işleri bırakıp Ege’de zeytin yetiştirmek
Geçen hafta tanımadığım birinden şöyle bir mesaj geldi, kimden geldiğini belirtmeden olduğu gibi yapıştırıyorum:
“selam, hocam daha sanirim lisedeyken bana microsoft’ta zamani yonetme ile ilgili aldiginiz tavsiyeleride iceren bir post gondermistiniz sizden tavsiye istedigimde. liseden sonra universiteyi yarim biraktim ama simdi amsterdam’da yazilim muhendisi olarak calisiyorum. tesekkur mu etsem ne yapsam dedim.
birde sizin icinde surecin kolay olmadigi ile ilgili, nasil baslayip neler yasadiginiz ile ilgili kucuk bir ozet vardi postun icinde, o zamanlar icin baya motive etmisti beni
buraya yolun duserse AYRANLAR benden!”
Bunları duymak beni çok mutlu ediyor. Birkaç insanın geleceğine sadece birkaç paragraf yazıyla katkı sağlayabilmiş olmaktan, birilerinin yükselmesine ucundan da olsa vesile olmuş olmaktan çok keyif alıyorum. Maillerde arattım, o kişi için ne yazıp yolladığımı buldum. Bu tarz bir mutluluğu birkaç ay önce yazmayı bitirdiğim ve siz bu yazıyı okurken muhtemelen ilk baskısı piyasaya çıkmış olacak olan kitabım Street Coder’ın yazım aşamasında yaşadım. Başlangıç seviyesi yazılımcıların kariyerlerinin başındaki perspektiflerini ve ufuklarını genişletme amacı güden kitap, yayıncı firma Manning’in yazım aşamasında çok sayıda incelemeden geçiyor. Bu incelemelerde yapılan yorumlar arasında “keşke böyle bir kitap kariyerimin başında olsaydı” gibi sözlere rastladım ve aşırı mutlu oldum.
Bu yazıyı yazarken de kafamda olan düşünce okuyana beş yıl sonra “iyi ki o yazıyı okumuşum ve yazılımcı olmaktan vazgeçip Ege’de zeytin işine girmişim” dedirtebilmek. Böylece aranızdan sadece “yok ya, o kadar korkunç değilmiş, tamam bu güzel, yazılım olur, hallederiz” diyen dirayetli ve iradeli olanlarınız kalacaktır, geri kalanlarınız da ülkemizin zeytin rekoltesine katkıda bulunacaktır; win-win.
2020'de başlayan pandemi süreci coğrafya ve çalışma şartları üzerinde büyük bir dalgalanmaya yol açtı. “Artık tüm dünya uzaktan çalışır” deyip yaşadığı şehri terk edenlerin yarısı ertesi sene bıraktıkları şehirlere geri döndüler. Evden çalışmanın öyle çok da süper verimli olmayabildiği gerçeğiyle yüzleştik. Sadece iş yapmaya ayrılmış bir alanın zihinsel odaklanmamıza faydasını anladık. Diğer yandan ev-iş arası ulaşımın gereksiz vakit kayıplarını hayatımıza kattık. Mesela üç saatlik yoldan kurtardığımız vakitte bir Türk dizisinin bir bölümünün üçte birini ve iki buçuk saat reklam izleyecek vakti bulduk. Açık ofis modelinin mental gürültüsünden ne kadar sıkıldığımızı da fark ettik. Tüm bunların yanı sıra “artık ofisi bu sonbahara açarız herhalde” diyen Apple gibi büyük firmalar ofise dönmeyi süresiz olarak ertelediler. Boş binada WWDC videosu çekmek daha kolay tabii. Ayağına dolanan yok. Tüm bu “uzaktan”, “yoo ofisten”, “yoo uzak da iyi”, “ama odak!?” kaosundan kalkan tozun oturması vakit alacaktır orası kuşkusuz. Ben bu olanları daha büyük değişimlerin öncülü kabul ediyorum.
En başta uzaktan birlikte çalışma gereçlerinin kabiliyetlerinin çok daha fazla artacağını tahmin ediyorum. Mesela Reddit’in P2P versiyonu olan ve benim de yatırımcılarından olduğum Aether projesi Reddit tarzı asenkron ve daha az dikkat dağıtan bir iletişim modelini beraber çalışma döngüsünün içine katmayı hedefliyor. Sadece kodcuların değil tüm ürün geliştirme ekibinin bir arada çalışmasını organize edecek, fikir alışverişi, odaklanma ve iş bölümü gibi konularda bu tarz yeni geliştirme araçlarını ve çalışma modellerini de göreceğimizi tahmin ediyorum.
Mobil geliştirmenin hala web’in yanı sıra iki ekstra dil ve iki ekstra framework öğrenmeyi gerektiriyor olduğu gerçeğini sindirmekte zorlanıyorum. Her ne kadar Kotlin ve Swift çok güzel diller olsalar da tek kişiyle amatör işler geliştirmek tarihte hiç bu kadar işkence olmamıştı. Alt tarafı ana sayfaya ikonunu koyması daha kolay olduğundan herhangi bir yazılımı geliştirmek sadece web geliştirmenin en az üç katı daha masraflı. Her şey bir PWA olabilirdi ve bugün barış içinde mutlu ve huzurlu yaşayabilirdik. Çok performans ya da pil ömrü isteyen yine native yazardı ama web’in mobilde birinci sınıf bir geliştirme seçeneği olmaması utançtır. Uygulamanın yeni sürümü çıkınca “Güncelle” butonuna basıp bekliyoruz dakikalarca taş devrinden çıkmış gibi. Tablet mi kullanıyoruz kil tablet mi belli değil. Uygulama linkini tarayıcıda açıp app’e geçince yamulması, web’den girene zorla uygulama ittirmeye çalışmak gibi bir sürü toksik senaryo bu “duvarlı bahçe” anlayışından çıktı. Mobil dünyasının bu açgözlülük temelli makus talihini kabullenemiyorum. O yüzden React Native olsun, Flutter olsun, yakında gelecek olan .NET MAUI olsun, tek kodla hem web hem mobili idare edebileceğimiz teknolojileri en azından bir teselli olarak görüyorum. Onların yaygınlaşmasını canı gönülden diliyorum.
Rust çok büyük bir hızla gelişiyor ve sistem programlamadaki paradigma değişimlerinde öncü rolünü koruyor. C/C++’ın ufukta bir noktada Rust’a teslim olacağını tahmin ediyorum. Bugün Rust öğrenmenin de özellikle sistem programlama alanında hedefiniz varsa büyük bir avantaj olduğunu düşünüyorum. 2021 itibariyle Linux’un aygıt sürücülerinde Rust kullanılmasına onay vermesi de önemli bir kilometre taşı. Bir noktada Rust’ın yerine “kolay kullanımlı Rust” da gelecektir (Microsoft’un Project Verona’sı gibi), ama şu aşamada Rust bana özellikle C++’tan çok daha düzgün bir alternatif gibi geliyor. En azından hata mesajları anlaşılır.
Ben daha SPA (Single-Page Application) fikrine alışamadan web geliştirmede başka yeni hibrit modeller çıkmış bile. Blazor gibi frontend ve backend’i tek dille yazdığınız teknolojiler başta cazip görünse de bana kısıtlayıcı geliyorlar. Maliyetini ve riskini patron almadıkça onlara kendinizi amade etmek yerine frontend ve backend için yerli bir teknolojiye (mesela frontend’de JavaScript/TypeScript ve bir component framework) hakim olmanızı öneririm. Bu sizi geliştirmeye başladıktan üç yıl sonra “ya onu Blazor’la yapamıyormuşuz, her şeyi baştan yazmamız lazım!” hüsranından kurtarır.
Backend’de son yıllarda gördüğüm büyük iki değişim var. Birincisi elbette Go’nun backend geliştirme platformu olarak yaygınlaşması, dil tasarım tercihlerinin ne kadar isabetli olduğunun sektör tarafından da onaylanması. Go ile yazdığınız kod elegan, zarif, altın varaklı bir saray kodu olmuyor ama tam olarak bu yüzden de herkes birbirinin kodunu rahatça anlayabiliyor. İki satırda bir “if err == nil return err” ameleliğinden kaybettiklerinizi kodu anlama vaktinden kazandıklarınızla telafi ediyorsunuz. Go’nun gelişimiyle ilgili gördüğüm tek darboğaz yayına almak için çok geciktirdiği generics özelliğini geriye dönük oturmakta sıkıntı yaşayabilecek olması. Python 2 ve 3 arasındaki geçiş sancıları gibi bir şey yaşayabilir gibi geliyor. Bu tarz bir kopukluk Go’nun gelişimine sekte de vurabilir ama halihazırda çok makbul bir dil. Ethereum ve Avalanche gibi popüler blok zincir platformlarının da belkemiğini oluşturuyor. Backend çalışacaksanız Go’yu tavsiye ederim şeker gibi dildir. 2015'te ilk incelediğimdeki görüşlerimi Ekşi Sözlük’te yazmıştım.
Backend’de ikinci en büyük gördüğüm değişim ise .NET’in açık kaynak ve çok platform destekli hale gelmesiyle birlikte ASP.NET Core’un backend dünyasına güneş gibi doğması. Özellikle geçen sene çıkan .NET 6 ile birlikte .NET hem olgun hem keyifli bir geliştirme ortamı sağlıyor, performansı da Java çatlatan cinsten. “O kadar Go övdün, niye .NET’e bakalım?” derseniz, C#’ı öğrenmesi çok kolay, .NET’in kabiliyet alanı çok geniş. Öğrendiklerinizi başka alanlara taşımanız rahat. (Street Coder’daki örnekleri C#’la yazmamın sebeplerinden biri de buydu.)
Herkes yazılımcı oluyorken, piyasaya çekirdek gibi yeni yazılımcı katılıyorken yazılımcı olmak, yazılım geliştirmeye odaklanmak iyi bir fikir mi? Evet. Yazılım ihtiyacı yazılımcı artışından çok daha hızlı büyüyor. Özellikle son iki yıl bu konudaki ivmelenmeyi arttırdı. Uzaktan çalışma, sanal ofisler derken yazılım ihtiyaçları katlanarak artıyor. Her seviyede yazılımcının da alıcısı var. “Ben sadece derdimi anlatacak kadar JavaScript biliyorum” da deseniz, “ben bu klavyenin aygıt sürücülerini beğenmeyip baştan yazdım” da deseniz seviyenize uygun iş bulabiliyorsunuz. (Bu tarz kariyer tavsiyeleri barındıran bir yazıyı yakın zamanda blog’umda yayımlayacağım.)
Her sene olduğu gibi 2021'in de en popüler sorusu “programlamaya hangi dilde başlamalıyım?” idi. Doğru cevap “hangisi kolayınıza geliyorsa o” olacaktı. İlla bir isim istiyorsanız bence C#’tan başlayın. Soru sormak da bir sürtünme aslında, soruyu soran için de. Probleminizi birine sorarak çözme arzusuna ne kadar erken yenilirseniz gelişiminizi o kadar geciktiriyor, yavaşlatıyor, ve kendinizi diğer herkesin gerisinde bırakıyorsunuz. Meraklı olduğunuz kadar etkili bir deneyci ve araştırmacı olmanız da bir beceri ve sizi kariyerinizde ilerletecek unsurlardan biri. Üstelik, çok iyi araştırılmış, üzerinde çok uğraşılmış ama çözüm bulunamayınca bir kişiye en son çare olarak sorulan bir sorunun muhatabı olmak ve “bunu sadece o bilebilir” denen kişi olmak kadar iyi hissettiren çok az şey var.
En başta mesajını alıntıladığım yazılımcıdan mesajını paylaşmak için izin istediğimde söyledi: Tavsiye aradığı dönem bildiği ne kadar yazılımcı varsa fikir danışmak için hepsine mail atmış ama sadece iki kişiden yanıt almış: ben ve John Carmack. Ben John Carmack’e ne iş yoğunluğu ne de yazılımcılık tecrübesi açısından yaklaşabilirim ama o bile yapabiliyorsa siz de yapabilirsiniz.
Hepinize mutlu ve huzurlu bir 2022 dilerim!
Seyfeddin Başsaraç
Co-Founder
Bu yıl biter dediğimiz pandeminin bitmemesi sebebiyle artık şirketlerin uzaktan çalışma düzenini kabul ettiği ve kesin geçiş yaptığı bir yılı geride bıraktık. Türkiye’de dövizin sürekli dalgalanması da ülkedeki yazılım sektörünün yurt dışına çalışmaya geçiş hızını artırdı. 2022’de de bu dönüşüm hızlanarak devam edecek. Özellikle yabancı dil konusunda iyi olan yazılımcıların yan ürünlere (e-kitap, bülten, eğitim, mini-servis) yönelip ciddi gelir elde edebileceği bir yıl olacak.
Mobil geliştirme sektöründe de hareketlenme devam ediyor. Apple, SwiftUI’ı geliştirme konusunda yavaş kalınca o beklenen dönüşümü sağlayamadı ve umutlar bu yılın haziran ayında çıkaracağı yeni versiyona yöneldi. Buna karşın Flutter ciddi bir atılım yaparak yazılımcı ekosistemini güçlendirdi ve şirket ürünlerinde kullanılır hale geldi. Native platformlar kadar olmasa da, birçok uygulamayı Flutter ile geliştirmek mümkün. Arkasındaki destek devam ederse React Native’i geride bırakabilir.
Bir yandan da DevOps kavramının çok daha ön planda olduğu bir yılı bitirdik. Öyle ki yeni yazılıma başlayanlarda DevOps kariyer yolunu seçmek isteyenler de bir hayli arttı. Mobil tarafta da DevOps platformları artık herkesin kullandığı araçlar haline geldiler. 2022’de mobil yazılım ekiplerinin tamamına yakını CI ve CD süreçlerini otomatize ederek sadece ürün geliştirmeye odaklanacakları bir düzene geçecekler.
Tasarım — yazılım arasındaki ilişki de gittikçe kuvvetleniyor. Yazılımcıların erkenden tasarım süreçlerine dahil olduğu düzene geçen ekiplerin sayısı hızla artıyor. Tasarım sistemleri iyice yaygınlaştı. Figma gibi araçların JavaScript ile mini-eklentileri desteklemesiyle tasarım dosyalarında dinamik yapılar kurulabiliyor. Bu sayede tasarım süreçlerinin ve yazılımla tasarım ekipleri arasında ileri-geri iletişim döngüsünün kısaldığını görüyoruz. Eklentilerin artmasıyla bu döngü daha da kısalacak. Birbirlerinin yansıması olan tasarım ve yazılım bileşenleri (component) geliştiren ekipler çok kısa sürede yeni özellikler ve değişiklikleri yayına alabilir hale gelecek.
Şefik İlkin Serengil
Software Engineer
Herkese selamlar. Sizlere 2022'de veri bilimi ve yapay zeka alanında yaşanmasını beklediğim yenilik, gelişme ve iyileşmeleri; açıklanabilirlik ve yorumlanabilirlik, üretim hatları (pipeline) ve MLOps ve son olarak da veri güvenliği başlıkları altında toplamaya çalıştım.
Analitik modeller iş birimleri tarafında veri biliminin bugünkü popülaritesine ulaşmasının çok öncesinden beridir kullanılmaktalar. Her ne kadar bugünün popüler algoritmaları derin öğrenme ve gradient boosting olsa da analitik ekiplerin eğilimi lineer / logistic regresyon ve tekil / rastgele orman yöntemiyle oluşturulmuş karar ağaçlarının kullanımı yönünde. İş birimlerinin bu şekilde modellediği ve halen üretim ortamında yaşayan model sayısı da hiç az değil. Bununla beraber analitik ekipleri hala bu yaklaşımlarla model portföylerini genişletiyorlar.
Veri bilimi ve makine öğrenimi ekiplerinin oluşturulmasından sonra model sayılarında bir ivmelenmenin olduğu da aşikar. Bu ekiplerin ellerinden çıkan modellerde de derin öğrenme ve gradient boosting dominant durumda.
Uygulamalı veri bilimi ekiplerinin üretim ortamında yaşayan ve analitik ekiplerin elinden çıkmış modelleri yenilemesi gerektiği noktada problemler yaşanmaya başlamakta. Çünkü genel eğilim lojistik regresyon ya da karar ağacı ile kurulmuş bir modeli derin öğrenmeye ya da gradient boosting ile yenilemek olduğundan, model performansı artmakta ancak model açıklanamaz hale gelmektedir.
Lineer ve lojistik regresyon modelleri denklemlerindeki öznitelikler katsayıları ölçüsünde sonuca etki etmektedir. Dolayısıyla bir regresyon denklemine baktığınızda hangi özniteliğin ne kadar önemli olduğunu söyleyebilirsiniz. Benzer şekilde tekil bir karar ağacı ile kurulmuş modelin öznitelik önem sırasını ağacın her karar noktasında bulunan metrik değeri (GINI veya Entropy) ve o kuraldan etkilenen örneklem sayısından çıkarmanız mümkündür. Zaten karar ağacında verilen kararı, ağacın tepe noktasına kadar takip edilerek cümlelere dönüştürmek de mümkün.
Öte yandan derin öğrenme ve gradient boosting birer kara kutu algoritmadır. Yani bu algoritmalarla oluşturulmuş modeller çoğunlukla insan başarısını aşsa da neden ve nasıl karar aldığı ile ilgili bir tahmin yürütememekteyiz. Dünya genelinde bankacılık gibi ağır regülasyonların bulunduğu ve her verilen kararın açıklanmasının gerektiği kredi verme, işe alım gibi projelerde bu yöntemlerle elde edilen modelleri, performansları her ne kadar başarılı olursa olsun kullanamazsınız. Aksi takdirde model, bir cinsiyet grubuna veya bir etnisiteye bakarak karar alıyor olabilir. Model açıklanabilir olduğu müddetçe böyle bir ön yargı olmadığından emin olabilirsiniz.
Açıklanabilir Yapay Zeka
Aslında açıklanbilirlik için SHAP ve LIME gibi akademik dünyadan çıkmış araçlara 2017'den beridir sahibiz. Bunlar sayesinde kara kutu modellerin tıpkı lojistik regresyondaki gibi öznitelik önemini tespit ederek büyük resmi görebiliyoruz, tekil bir karar ağacıymış gibi karar alınmasına neden olan sebepleri cümlelere dökebiliyoruz.
Örneğin; bir resmin kurt olup olmadığını tespit etmeye çalışan bu sınıflandırıcının yüksek performansa sahip olsa da açıklanabilirlik adımından geçtikten sonra aslında baktığı şeyin resmin arka planındaki kar bölgesi olduğunu anlıyoruz. Dolayısıyla eğitim ve test setinin ön yargılı olarak oluşturulduğunu ancak bu şekilde tespit edebiliyoruz.
Sonuç olarak açıklanabilirlik özelliği artık üretim ortamı odaklı makine öğrenimi projeleri için bir yenilik değil, olmazsa olmaz bir özelliktir. Yeni yıllarda da beklentim açıklanabilirliğin kapsamının yeni araçlar veya mevcut araçlara yeni özellikler şeklinde genişletilmesi yönündedir.
Full-Stack Data Engineer
Veri takımlarının üç temel üyesi: veri mühendisi, veri bilimcisi ve veri analistidir. Son dönemde çok fazla yetenek, veri bilimi ve makine öğrenimi konusunda kaslarını geliştirse de darboğaz yaşanan temel yer veri mühendisliği. Veri mühendisliği altında yapılacak çok fazla görev olsa da kaynak havuzu maalesef halen çok sığ. Takımlarda çoğunlukla ya veri mühendisinin hiç olmamasından dolayı ya da işlere yetişememesinden dolayı veri bilimcilerin veri mühendisliğine ait işleri erittiğini görüyoruz.
Veri mühendislerinin daha çok ETL ve büyük veri ile ilişkili araçlarda (hadoop, hive, sqoop, scala, spark) yetkinliği bulunduğunu söylemek yanlış olmayacaktır. Bu rol için en çok istihdam iş zekası ve veri ambarı alanında yapılmakta.
Önümüzdeki dönemde full-stack data engineer gibi rollerde daha fazla istihdam görebiliriz.
MLOps
Veri takımlarında veri bilimci ile birbirine çok karışan makine öğrenimi mühendisi diye de bir rol bulunmakta. Kesişim kümesinde veri bilimci ile çok fazla aracı bulunan bu rolü, daha çok üretim ortamı perspektifinden bakan bir veri bilimci olarak düşünebiliriz. Veri takımlarının belki de en büyük eksikliği üretim ortamı perspektifi. Jupyter notebook’larla geliştirilmiş çok fazla şey olsa da uçtan uca bir üretim hattı (pipeline) felsefesiyle çalışan veri projeleri halen oldukça ender.
Makine öğrenimi projelerinin geleneksel yazılım projelerinden ayrışan en önemli noktası küflenmesidir. On yıllardır üretim ortamında çalışan uygulamalar mevcutken makine öğrenmesi modelleri zamanla kavram kaymasına (concept drift) uğrayarak iş görmez hale gelebilmektedir. Üretim hattı kurma yetkinliğine ulaşmış kurumlar yapay zeka çağının kazananı olacaktır.
Makine öğrenmesi algoritmalarına beslenecek yeni verinin düzenli şekilde aktarımının (ETL) ve validasyonunun yapılması, üretim ortamında model eğitiminin hangi sıklıkla ve nasıl yapılacağı (örneğin anlık veya harici şekilde yüklenerek), modellerin versiyon ve yönetimi (governance), üretim ortamındaki modelin izlenmesi, başarısının beklenenin altında kalması durumunda nasıl bir aksiyon alınacağı gibi adımları DevOps devriminin bir uzantısı olarak MLOps olarak isimlendiriyoruz. MLOps kavramını önümüzdeki dönemde sıklıkla duyuyor olacağız.
Veri Güvenliği
Derin öğrenme kullanılarak geliştirilen yüz tanıma modelleri insan başarı seviyesini çok uzun zaman önce yakalayıp geçmişti. Aynen parmak izi gibi şifre girmeden banka uygulamalarına bile yüz tanıma ile giriş yapabiliyoruz.
Yüz tanıma özelinde yüzü çok boyutlu bir vektör olarak ifade edip iki vektörün birbirine uzaklığı ya da benzerliğine bakarak aynı kişi olup olmadığına karar veriyoruz. Peki karşılaştırma yapılan yüz resmine ait vektör nasıl saklanmakta? Nasıl ki şifreler açık haliyle değil de özet fonksiyonu (hash) uygulanarak veri tabanında saklanmalı ise bu vektör de açık haliyle değil, bir şifreleme algoritmasından geçirilerek saklanmalı. Çünkü temelinde şifre gerektiren birçok işlemi yüz ile giriş yaparak da yapabiliyoruz.
Homomorphic şifreleme yöntemi şifrelenmiş veriler üzerinde matematiksel işlem yapılabilmesini sağlamakta. Örneğin bir yüz vektörü homomorphic yöntemle şifrelenmiş ve bulut ortamda saklanmışsa bulut ortam iki şifreli vektörün uzaklık ya da benzerliğini şifreli hesaplayabilmekte ancak şifreyi sadece anahtarı bilen veri sahibi açabilmektedir.
Önümüzdeki dönemde makine öğrenmesinin kriptografi ve özellikle homomorphic şifreleme yöntemi ile birlikte kullanımında önemli bir artış beklemekteyim. Zaten insan seviyesini geçmiş bir teknolojiye inovasyonu ancak bu şekilde birlikte kullanım ile getirebiliriz.
Üstün Özgür
Principal Software Engineer
Son birkaç yılda olduğu gibi bu yıl da dağıtık takımlarla uzaktan çalışma, yazılım geliştiricilerin en önemli gündemini oluşturuyor. Sağladığı fırsatlarla birlikte bu yeni düzende etkin proje yönetimi, takım içi iletişimin düzgün yapılması ve sosyal bağların azaldığı bir ortamda sağlıklı bir çalışma ortamının sağlanabilmesi hepimizin üzerine kafa yorduğu konular. Bu konuda takım ve birey olarak psikolojik ve fiziksel sağlığın korunmasına yönelik farkındalığın artmasını bekliyorum. Ruh ve beden sağlığının yazılım geliştirme gibi varsayılan olarak sağlıksız bir meslekte daha ciddi ele alınması gerek.
Dil ve platformlar olarak 2020’lerle birlikte birçok dilde belli bir olgunluk dönemine girildi. JavaScript, Java, .NET, Go, Python gibi farklı dünyalar geliştiricilere benzer deneyimler sunuyor. Açıkcası dil ve platform alanındaki inovasyonların azaldığı bir dönemdeyiz, 2010'ların ilk yarısındaki heyecanlı yeni dil furyası -Rust’ı hariç tutarsak- azalmış durumda. Son birkaç yılda JavaScript’in yaygınlaşması ve Go dilinin başarılı son dönem örneklerinin bulunması firmaları bu dillere yöneltmekte. Yine de Java ve .NET gibi ekosistemlerin de son dönemde önemli momentum yakaladığını görmek ve adımları modaya göre atmamak gerekiyor. Birçok firmadaki dil ve platform değişikliğinin teknolojik değil de, politik kararlar olduğunun farkına varmalı geliştiriciler. Üst yönetim değişimlerinde firmalarda değişim hedefini kitlelere aktarmanın ilk adımı olarak platform değişikliğine gidilebiliyor, böyle bir değişiklik olması durumunda yazılımcılar gerekli değişikliği yapabilecek esneklikte olmalı.
Buluta geçişler arttıkça Kubernetes gibi teknolojilerin yaygınlığı da arttı. Ancak yazılımda, teknolojide, hatta hayatta alışkın olduğumuz üzere her çözüm yeni bir sorunu yaratıyor. Bu noktada geliştirilen yazılımların yayına alınmasındaki karmaşıklığı azaltacak DX (developer experience) diye tabir edilen ve mevcutta büyük bulutlara alternatif oluşturan developer SaaS’larına da talep artıyor. Vercel, Contentful, Netlify gibi çözümler geliştirme ve yayına almada geldiğimiz karmaşıklığı bir nebze olsun azaltma derdinde. Aynı şekilde büyük bulut sağlayılar da Cloud Run, Firebase gibi çözümlerle bulutun nimetlerinden yararlanıp karmaşasından uzak durmaya çalışanlara bir alternatif sunmakta.
Web geliştirme dünyasında da son yıllarda SPA’lara ve JavaScript’e kayan geliştirme, hala Rails ya da Django ile web geliştirmesi yapmadaki rahatlığın çok uzağında. Burada da Next, Remix, Redwood gibi frameworkler umut vaad ediyor. Yine de sarkacın ters yönde çok ileri gittiğini iddia eden bir grup ise JavaScriptsiz web sitesi geliştirme tekniklerini modern zamanlara uyarlamaya çalışıyor. Hey bünyesinde geliştirilen HotWire ya da htmx gibi kütüphaneler çok karmaşık olmayan uygulamalarda kullanıcı deneyiminden biraz feragat ederek daha hızlı geliştirme yapmayı sağlayabilir.
Yazılım geliştirilen cihazlara baktığımızda, sanal gerçekliğin ve AR/VR’ın sonunda on yıllardır beklenen sıçramayı yapacağı günler yaklaşıyor gibi. Facebook 2021 içinde buna ne kadar inandığını gösterircesine adını Meta olarak değiştirdi. Kişisel olarak henüz deneyimlememiş olsam da, Oculus ve benzer teknolojilerin birkaç yıl öncesine göre çok daha gerçekçi görüntüler sağlayabildiğini işitmekteyim. Bu nedenle 2022, bu alanlara yatırım yapmak için atılgan ruhlu yazılımcılara bir fırsat sağlayabilir.
Son olarak güvenlik giderek daha da önem kazanmakta. Neredeyse her firmanın verilerinin bir gün istenmeyen kişilerin eline geçeceği varsayımıyla davranması ve hazırlık yapması gerekiyor. Yöneticilerin bu potansiyel tehlikeye göre paydaşlarını bilgilendirerek önlem almaları, yazılımcıların temel veri güvenliği bilgilerini geliştirmeleri; ama aynı zamanda açık anahtarlı şifreleme gibi kriptolojik gelişmeleri yazılımlarına uygulamaya başlamaları için doğru bir zaman. Şu an için kriptolojinin bayrağı kripto para tutkunları tarafından devralınsa da, buradaki anahtar teknolojiler aslında on yıllardır bilinen fikirler. Bu teknolojilerin artık genel yazılım geliştiricilerin de gündemine girmesi gerekiyor.