16.08.2023
4
Beğenme
756
Görüntülenme
Herkese Merhabalar ilk yazım oldugu için biraz hecanlıyım :)Burada bir bootcampde soru olarak gelen framework ,libraries nedir ve arasındaki farklar nelerdir? Sorularına cevap olarak yazımı yazıyorum …
Öncelikle framework nedir ? Framework nedir sorusuna kısa bir cevap verelim : Framework yazılım geliştiriciler için önceden hazırlanmış kütüphaneleri içerisinde bulunduran, bu kütüphanelerin değiştirilmesine ve geliştirilmesine müsade eden yapının adıdır.
Dilimize çerçeve olarak çevirebileceğimiz framework; yazılım ya da uygulama geliştirmek için deneyimli mühendisler ve yazılımcılar tarafından geliştirilen, optimize edilen ve test edilerek kullanıma sunulan bir yazılımdır. Geliştiricilere ufak detaylarla uğraşmadan alanlarında ustalıklarını konuşturacakları bir çerçeve çizdiği için çok yönlüdür, güvenilirdir ve verimlidir.
Geliştiriciler, hangi alanda bir uygulama ya da yazılım geliştirdiklerine bağlı olarak farklı framework çerçevelerinden birini tercih edebilirler. Herhangi bir framework, geliştiricilere bazı temel düzenlemelerin olduğu bir alan sunar. Geliştirici, bu alan üzerinde çalışmaya başladığı için işin en büyük yükünden daha başlamadan kurtulmuş olur.
Yaygın olarak kullanılan tüm framework yazılımları, alanında deneyimi mühendis ve yazılımcılar tarafından geliştirilmiştir. Yayınlanan tüm framework sistemleri farklı platform ve cihazlar için optimize edilmiş, özel testlerden geçirilmiş ve tasarım süreci en verimli hale getirilmiştir. Framework kullanmanın avantajlarından bazıları şu şekilde;
Yazılım kütüphanesi (Software Library), yazılım geliştiricilerinin program geliştirirken kullandıkları bir tür program kodları ve veriler takımıdır. Yazılım kütüphaneleri, yazılımcılar ve programlama dilinin derleyicilerine çalıştırılabilir programlar geliştirme konusunda yardımcı olurlar. Yazılım kütüphaneleri içinde genellikle önceden hazırlanmış kodlar, sınıflar, prosedürler, betikler, konfigürasyon verilerini içerir.
Bir geliştirici yazılım geliştirirken yazılımını daha işlevsel hale getirmek veya çeşitli fonksiyonlar kazandırmak için yazılım kütüphanelerinden faydalanır. Yazılım kütüphaneleri yazılımcıların iş yükünü hafifletir ve aynı kodu tekrar yazmalarına gerek kalmadan onlara hazır bir kalıp sunar. Basit bir örnekle açıklamamız gerekirse; bir geliştirici matematikle ilgili bir yazılım geliştirdiğinde bu yazılıma karmaşık matematik işlemlerini yaptırması için ayrı ayrı modüller yazmak zorunda kalacaktır. Bu kodları yazmaya uğraşmak yerine yazılım kütüphanesindeki bir matematik modülünü alıp bu modülü doğrudan kendi yazılımına ilave edebilir.
Geliştirici modülü ilave ederken, istemediği veya ihtiyaç duymadığı bölümleri koddan çıkarabilir ya da ihtiyacına göre düzenleyebilir. Verdiğimiz basit örnekten anlayabileceğiniz üzere yazılım kütüphaneleri geliştiricilerin iş yükünü ciddi oranda hafifletebilir ve geliştirme sürecine hız kazandırabilir. Her programlama dilinde popüler hale gelen yazılım kütüphaneleri vardır. Geliştiricilerin daha hızlı ve sorunsuz yazılımlar ortaya çıkarabilmesi için bildiği programlama diline dair ilgili yazılım kütüphanelerinin neler olduğunu ve bunlardan nasıl faydalanması gerektiğini öğrenmesi gerekir.
Yapay zekâ uygulamaları için en popüler programlama dili Python’dur. Python, açık kaynaklı bir dildir ve kolayca öğrenilebilir ve anlaşılabilir bir sözdizimine sahiptir. Ayrıca, geniş bir kütüphane ekosistemi sunar. Bu kütüphaneler sayesinde yapay zekâ uygulamaları için gerekli olan işlemler kolayca gerçekleştirilebilir.
Yapay zekâ uygulamaları için örnek olarak, TensorFlow, Keras, PyTorch, OpenCV, Scikit-learn, Pandas ve NumPy kütüphaneleri sayılabilir. Bu kütüphaneler, makine öğrenmesi, derin öğrenme, görüntü işleme, doğal dil işleme ve veri analizi gibi çeşitli yapay zekâ uygulamaları için kullanılabilir.
Java, geniş bir kitle tarafından kullanılan bir programlama dili ve yapay zeka uygulamaları için de sıklıkla kullanılmaktadır. Java, platform bağımsız bir dil olduğu için, uygulamalarınızın farklı işletim sistemlerinde çalışmasını sağlar.
Java, yapay zeka uygulamaları için kullanılabilecek çeşitli kütüphanelere sahiptir. Weka, Java’nın makine öğrenmesi kütüphanesi olarak kabul edilir. Ayrıca, StanfordNLP ve Apache OpenNLP, doğal dil işleme uygulamaları için Java kütüphaneleridir.
C++, yapay zeka uygulamaları için performans ve hız gerektiren durumlarda kullanılan bir programlama dilidir. Özellikle, yapay zekâ algoritmaları için geliştirilmiş olan TensorFlow ve PyTorch gibi kütüphaneler C++ dili ile yazılmıştır.
C++, performans ve hız gerektiren yapay zekâ uygulamaları için tercih edilebilir. Örneğin, TensorFlow ve PyTorch kütüphaneleri, derin öğrenme uygulamaları için C++ ile yazılmıştır. Ayrıca, OpenCV, görüntü işleme uygulamaları için C++ ile yazılmış bir kütüphanedir.
Kodunuzda bu kütüphaneleri ve içerisinde bulunan fonksiyonları kullanabilirsiniz.
Framework içinse özelleştirilmiş bir kütüphane diyebiliriz.
Framework ve Libraryler aslında çok karıştırılan iki terimdir.
Her bir framework bir kütüphanedir ancak her bir kütüphane framework değildir.
Kullanıcı yorumlarını görüntüleyebilmek için kayıt olmalısınız!
Ramazan Küçükkoç
Öğrenme becerileri yüksek ve yeni teknolojilere hızlı uyum sağlayan meraklı bir geliştirici. Zorlukların üstesinden gelmek için ısrarcı, etkili çözümler üretmek için farklı yöntemler araştırın. Sanat gibi görsel, algoritmik ve kodlamalı tasarıma özen gösterin. En verimli ürünleri yapmak için farklı kaynakları ve algoritmaları araştırın. Dostça yönetim becerileri ve yeni takım üyelerine uyum sağlama, Sadece kendini öğrenmez, takım gelişimi için öğretmeye istekli. Çeşitli teknolojileri, araçları ve kütüphaneleri öğrenmeye meraklı.
Konum
Konya, TR
Eğitim
Bilgisayar Mühendisliği - KTO Karatay Üniversitesi