gokayburuc.dev

Rust ve GO Dillerine Teknoloji Transferleri

Önsöz

Selam Aleykum,

Son zamanlarda büyük teknoloji firmalarının C, C#, Java, Python gibi dillerde yazılmış olan mevcut projelerini GO programlama diline transfer ettiği yönünde haberlerle karşılaşıyorum.Ayrıca GO kadar çok olmasa dahi, bir grup teknoloji firmasının da Rust diline proje transferlerinde bulunduğu ile ilgili makelelerle karşılaşıyorum.

Teknoloji Transflerine İten Sebepler

Teknoloji Transferlerine iten belirli sebepler mevcuttur. Sebepleri maddeler halinde paylaşalım :

Rewrite in Rust

Bilinen projelerin GO ve Rust dillerine transferi fikriyle ilk karşılaştığım yer Rusça bir developer forumuydu.Forumu gezerken evvela bir slogan ve bir proje afişiyle bu fikir karşıma çıktı. Projenin görselini aşağıda sizlerle paylaşıyorum:

Rewrite-with-rust

Projenin amacı daha önce farklı dillerde yazılmış kitaplık (library) ve projelerin Rust dilinde yeniden yazılmasıydı. Bu amaçla forumda geliştiriciler arasında teknoloji tartışmaları yer alıyordu.

Aynı projeyi GO dili için de gerçekleştiren Github toplulukları da mevcuttur.

Teknoloji Firmalarindaki Transferler

İnternet araştırmalarım esnasında muhtelif startup şirketleri ve büyük ölçekli teknoloji firmalarının yeni projelerinde GO ve Rust dillerini test ettiğini ve mevcut projelerini kademeli olarak GO ve Rust dillerine transfer etmeye başladıklarını fark ettim. Bilhassa, PHP, Java gibi dillerdeki mevcut projelerini Rust ve GO dillerine transfer eden bir çok firmasına rastladım.

Ayrıca reddit forumlarında "company migration to " biçiminde aramalar yaptığımızda çeşitli tarihlerde yazılmış makaleler karşıma çıktı. Aşağıda bunlardan bir tanesine ait Reddit Post'unu sizlerle paylaşıyorum.

Company migration to Go
byu/kekekepepepe ingolang

Ayrıca Medium üzerinde de bir çok teknoloji transferi makalesi ile karşılaşabilirsiniz. Aşağıda bir örnek makaleyi sizlerle paylaşıyorum:

https://medium.com/beyn-technology/our-journey-moving-from-php-to-go-4b4513f92e75

Ayrıca ycombinator sitesi üzerinden de birçok konuyla ilgili makale bulabilirsiniz.

https://www.zdnet.com/article/programming-languages-from-python-to-500000-lines-of-go-how-one-organization-is-making-a-big-switch/

KhanAcademy isimli web sitesi Python2 üzerinde yer alan backend kodlarını tamamiyle GO diline transfer sürecini anlatıyor.

GO Case Studies - Vaka Çalışmaları

GO programlama dilinin resmi web sitesi üzerinden süreçlerini paylaşan web sitelerine ait makalelere ulaşabilirsiniz:

https://go.dev/solutions/case-studies

Bunlar haricinde çeşitli ölçekli yüzlerce firma her geçen gün belirli projelerinde GO ve Rust dillerini denemeye devam ediyorlar. Fakat şirket içi bilgi gizlilikleri gereğince şirketin resmi olarak paylaşımda bulunmadığı bilgileri burada veremiyorum. Fakat, Linkedin, Twitter, Reddit vb. sosyal platformların aktif kullanıcıları iseniz bu tarz bilgileri de edinebilirsiniz.

Proje Transfer Asamalari

Transfer aşamalarında genellikle mevcut ekiplerin yanında paralel çalışmalarda bulunan yardımcı ekipler kurularak transfer gerçekleştiğini göreceksiniz. Demir yolu rayı gibi düşünürseniz, treni raydan çıkarmamak ya da tren seferlerini durdurmamak adına ray hattını değiştirmek için yan tarafa tali bir makas bağlantısıyla ikinci bir hat inşa edilip tamamlandıktan sonra birinci hatta bağlantı yaparak bypass işlemi ile ilk hat devreden çıkartılır. Bir çok firma maliyet açısından bu yolu tercih etmeyi daha olumlu buluyor. Güncel projelerini bu sayede yeni bir teknolojiye transfer ediyorlar.

İkinci bir transfer metodu ise ise, tedavülden kaldırmayı düşündükleri ve eksiklikleri olan özellikleri barındıran projeleri devreden çıkartarak, GO ve Rust dilleri ile yeniden yazıp devreye alıyorlar. Özellikle Load Balance ve Scalability gerektiren bu alt projeleri bakıma alarak yeniden GO ve Rust versiyonlarını paylaşıyorlar.

Günden Güne Zenginleşen Kütüphaneler

Henüz Python ve JS gibi yaygın dillerde olduğu kadar zengin internet kütüphaneleri içermese de her geçen gün bu kütüphaneler de GO ve Rust dillerine transfer edilerek projelere dahil ediliyorlar. Misal, Python dilinde yazılmış bir Web Scraper ya da Machine Learning kütüphanesinin GO ve Rust versiyonlarını da artık bulabiliyorsunuz. Bunları aşağıdaki web sitelerinden temin edebilirsiniz:

Artı ve Eksiler

Sonsöz ve Değerlendirme

Bu yazımda, sizlere kısaca GO ve Rust programlama dilleriyle ilgili teknoloji transferlerine dair genel bir kanaat oluşturmaya ve farkındalık yaratmaya çalıştım. Tabi ki bu görüşüm kişiseldir ve tartışmaya açıktır. Farklı diller ve teknolojilerle gelişim süreci devam ederken önümüzdeki günlerde başka programlama dillerini de karşımızda görebiliriz.

Yazımı sonuna değin okuma nezaketinde bulunduğunuz için teşekkür ederim. Yeni yazılarımızda buluşmak üzere, Allah'a emanet olun.

Selamın Aleykum,

#go #rust