Groovy Script Dili

Son yıllarda yaşanan script dillerindeki patlamayı hayretle izleyerek takip ediyorum. Bu kadar çok dilin gelişmesi iyi birşey mi kötü birşeymi karar vermekte zorlanıyorum açıkçası. Yeni dillerin tasarlanması, geliştirilmesi yeni teknolojiler demek olduğu için yazılım endüstrisi için güzel gelişmeler gibi gözüküyor. Diğer yandan ise bu kadar farklı sözdizimlerine sahip, birbirlerinin yaptığı işi tekrar eden script dilleri birçok kişinin kafasını karıştırmaktan başka pek bir iş yapmıyor açıkçası.

Ruby kullanımını adeta uçuran Rails benzeri Java tabanlı bir framework olan Grails’ı incelerken, karşıma Groovy adında neden daha önceden haberim olmadığını pek de anlayamadığım bir script dili ile tanıştım. Yukarıda bahsettiğim script dilleri açısından bakacak olursak Groovy bence çok özel bir yere sahip. Tüm Java platformunun gücünü, closures gibi modern dil özelliklerini kullanan ve basit bir sözdizime sahip bir script dile ile kullanmak gerçekten müthiş. İşte bu nokta da Groovy, diğer script dilleri ile farklı bir noktada tutulması gerekiyor.

Php ilk çıktığında, PERL varken Php neden diye düşünmüştüm. Ancak Groovy, bu şekilde asla ele alınamaz. Çünkü gerçekten ihtiyaç duyulan bir noktada geliştirilmiş, modern ve platform bazında Java gibi bi okyanusda ilerliyor.

Devam »

Java Swing – İlk Uygulama

Java Swing, Java uygulamaları için grafiksel arayüz (GUI) hazırlamak için geliştirilmiş, devasa büyüklükte bir grafik setidir.

Bu yazıda Java Swing kullanarak ilk grafiksel Java uygulamamızı geliştiricez. Swing uygulamalarını derlemek için ek bir ayar gerekmemektedir. Normal Java uygulamalarını derlediğimiz şekilde Swing uygulamalarını da derleyip çalıştırabiliriz.

Devam »

Java Foundation Class (JFC) ve Swing

Java Foundation Classes (JFC), Java uygulamalarına grafiksel arayüz (GUI) kazandırmak için gereken grafik sınıflarını barındıran sınıflar topluluğudur.

JFC temel olarak 5 bölümden oluşmaktadır.

Devam »

Java Collections – Interfaces

Java Collection Frameworkünü anlamak için, API içerisinde bulunan Interfaceleri incelememiz gerekiyor.

Java Collection çatısının en üstünde 2 adet Interface bulunmaktadır ve diğer tüm Interfaceler, bu 2 Interfaceden türetilmiştir. Bu 2 Interface sırasıyla “Collection” ve “Map” adındadır.

API içerisinde bulunan Interfaceler aracılığı ile, somut koleksiyon nesnelerimize belirli bir standart getirilir ve değişik türdeki koleksiyon nesneleri üzerinde bu standartlar eşliğinde işlemlerimizi yapabiliriz. Bunun için Collection Framework içinde bulunan Interfaceler, koleksiyon nesnelerini kullanabilmek ve anlayabilmek için kritik öneme sahiptir.

Devam »

Java Collection Framework Nedir?

Java Collection Framework, koleksiyonlar üzerinde gelişmiş işlemler yapabilmenizi sağlamak ve kolaylaştırmak için geliştirilmiş çok kapsamlı bir Java kütüphanesidir. Java Collection Framework kullanarak, Java nesnelerini tekbir çatı altında gruplayabilir, nesneler üzerinde birçok güçlü ve gelişmiş işlemi performanslı bir şekilde yapabilirsiniz.

Java Collection Framework, Java Generics (Jenerikler) özelliğini sıklıkla kullandığı için Jenerikler konusunda bilginiz olmanız sizin yararınıza olacaktır. Jenerikler ile geniş kapsamlı yazı dizisine buraya tıklayarak ulaşabilirsiniz.

Devam »

Javada Expressionlar

Expressionlar (İfadeler) Java dilinde ve diğer pekçok dilde, değer üreten herşey anlamına gelir.

Java’da herhangi bir değer üretmek için expressionları kullanırız. Expressionlar (İfadeler) literaller (sabitler / constant), değişkenler (variables) ve operatörler tarafından çağrılan fonksiyonların birleştirilmesi ile oluşturulabilir. İfadelerdeki işlem sırasını belirlemek için ‘ ( ) ‘ parantezleri kullanarak ifadelerimizi düzenleyebiliriz.

((variable1 * 5) / (variable2 * (variable3 + variable1)))

şeklinde ifadeleri tanımlayabilir, ifadeden dönen değeri o değer tipine sahip herhangi bir değişkene atayabilir, ya da fonskiyonlara parametre olarak geçirebiliriz.

Devam »

Java Networking Temelleri

Java, network (ağ) işlemleri için çok gelişmiş bir API desteği sunar. Java programlama dilinin popülaritesi büyük ölçüde platform bağımsız uygulamalar geliştirilmesine izin vermesinden kaynaklanır. Bunun için de, internet gibi devasa bir ağda bulunan çeşitli platformlarda, Java uygulamalarının çalıştırılması oldukça önemlidir. Bunun için Java, ağ uygulamalarının kolay ve gelişmiş bir şekilde yapılabilmesi için içeriğinde pekçok yardımcı kütüphane barındırır.

Java, internet üzerinden iletişim kurulabilmesi için TCP/IP ve UDP soketlerinin her ikisine de destek verir.
Devam »

Java’da Jenerikler (Java Generics) III

Java jenerikleri önceki 2 yazıda, büyük ölçüde inceledik.
Bu yazıda Java Jeneriklerin başka bir güçlü özelliğini Joker karakterine (wildcards) ele alacağız.

Joker Karakterler (Wildcards)

Wildcards konusuna girmeden önce, jenerikler ile ilgili birkaç konuya açıklık getirmek gerek. Bilindiği gibi nesne yönelimli programlamanın en önemli getirilerinden biri “polymorphism” kavramı. Java’da bu konsepti olabildiğince etkili bir şekilde kullanan bir programlama dili.

Devam »

Java’da Jenerikler (Java Generics) II

Bir önceki yazıda Java’nın sunmuş olduğu jenerik (generic) özelliğinin neden önemli olduğunu, hata yakalama konusunda geliştiricilere getirdiği kolaylıklardan bahsetmiştim ve Jenerik tiplerin Java’da nasıl kullanıldığını birkaç örnek ile anlatmaya çalaışmıştım. Jenerikleri bu yazıda daha derinlemesine ele alacağız.

Önceki yazıda jenerikleri sadece sınıf tanımlamasında kullanmıştık. Ancak jenerikler, sınıfların yanında methodlar ile de kullanılabilir. Hatta yapılandırıcı methodlar (constructor) ile de jenerikleri kullanabiliyoruz. Jeneriklerin sınıflar ve methodlardaki kullanımındaki tek fark, tip değişkenlerin kapsamı (scope) ile alakalı.

Jenerikler, Java’nın çok önemli bir parçasını oluşturan Java Collection Framework üzerinde sıkça kullanıldığı için, Jenerikleri anlamak ve kullanabilmek son derece önemlidir.

Devam »

Java’da Jenerikler (Java Generics) I

Java programlama dilinin güçlü özelliklerinden biri de Jenerikler (generics) konusudur. Daha önce C++ programlama ile ilgilenenler C++ dilindeki “Template” (Şablon) kavramı ile hemen hemen aynı işlevlere sahip olduğunu göreceklerdir.

Java’da jenerikler ( generics), ön tanımlı (built in) dil özelliği (language feature) olarak gelmektedir ve jenerikleri kullanarak çok daha güvenilir ve sağlam uygulamalar geliştirebilirsiniz.

Yazılım geliştirme süreçlerinde en önemli sorunlardan biri hatalarla (bug) uğraşmak ve bunları olabildiğince engellemeye çalışmaktır. Ne kadar sağlam ve özenle uygulama geliştirdiğinizi düşünürseniz düşünün, muhakkak uygulamalarınızda bir süre sonra hatalar meydana gelecektir. Özellikle yazılımlarınıza yeni özellikler eklediğinizde, önceki kodlarda birtakım sorunlar meydana gelebilir hatta yazılımınızn eskisi gibi stabil bir şekilde çalışmayabilir. Bu kaçınılmaz bir durumdur maalesef. Bu tür hataları engellemek veya en aza indirmek için Java, pekçok özellik sunmaktadır.

Java, Jenerik (Generic) özelliği ile uygulamalarınızdaki hataları minimuma indirmeyi amaçlar. Dahası uygulamalarınızda kullandığınız kodların çok daha etkili bir şekilde tasarlanmasına yardımcı olur.

Öte yandan jenerikler, Java’nın sunduğu Java Collection Framework kütüphanesi tarafından kullanıldığından öğrenilmesi ve uygulamaya konması son derece önemli.

Devam »