25 Temmuz 2009 Cumartesi

Yazılım Geliştirme Ortamları Kıyaslaması:

Evans Data Şirketinin yaptığı bir araştırmayı burda paylaşmak istedim.Yapılan araştırmada 1200’ü aşkın yazılım geliştirici kişilere, yazılım geliştirme ortamlarını ( Eclipse, Delphi, Rational Development Tools Suite, IntelliJ, Visual Studio and Tools, NetBeans, JDeveloper ve Sun Studio ) kıyaslamaları istenmiş ve sonuçlar şu 18 başlık altında toplanmış:
1. Basit araçlar – ( editor/debugger/ compiler ve/veya interpreter )
2. Modelleme araçları – ( App Modeling tools )
3. Web Dizaynı/Geliştirimi – ( Web Design/Development Tools )
4. Paralel programlamaya imkan sağlaması– ( Support for Parallel Programming )
5. Diğer araçlarla entegre olabilirliği – ( Ability to integrate tools )
6. 3.Parti araçlarla uyumluluğu – ( Availability of 3rd party tools )
7. Teknik destek kalitesi – ( Quality of Tech Support )
8. Geliştiricilerinin miktarı/kalitesi– ( Size/quality of developer community )
9. Dokümantasyonu – ( Documentation )
10. Örnek uygulamaları – ( Sample apps )
11. Çalışma zamanı bellek analiz araçları– ( Runtime memory analysis tools )
12. Görsel araçları ve desteği– ( Visual tools and declarative support )
13. Kullanıma hazırlılığı – ( Ready to use out of box experience )
14. Veri tabanı geliştirme araçları – ( Database development tools )
15. Veri tabanları ile entegre olabilirliği – ( Integration with databases )
16. Framwork’lere desteği – ( Support for frameworks )
17. Test araçları – ( Test tools including Code Coverage tools )
18. Uzaktan geliştirmeye desteği– ( Support for Remote development )

İlgili araştırmadan çıkan genel sonuç IBM’s Rational’ in kullanıcılar arasında daha yaygın olduğunu göstermiş.Elbette bu yazılım firmalarının ihtiyaç ve proje odaklı tercihlerine bağlı olarak değişse de yeni başlayanlara güzel bir referans olabilceği kanısındayım.



Firma, kullanıcılar geliştirme ortamlarını değerlendirirken aynı zamanda geliştirme ortamlarının değerlendirilen 18 maddesini de önem sırasına koymalarını istemiş.Buna göre çıkan sonuçlar:























Relative Importance of Attributes Relative
Ranking
Basit araçlar ( editor/debugger/ compiler ve/veya interpreter )
272.1
Dokümantasyon ( Documentation )
212
Diğer araçlarla entegre olabilirlik ( Ability to integrate tools )
195.5
Veri tabanları ile entegre olabilirliği ( Integration with databases )
174.5
Framwork’lere desteği ( Support for frameworks )
165.2
Veri tabanı geliştirme araçları ( Database development tools )
160.1
Geliştiricilerinin miktarı/kalitesi( Size/quality of developer community )
159
Web Dizaynı/Geliştirimi ( Web Design/Development Tools )
154.7
Test araçları (Test tools including Code Coverage tools)
154.7
3.Parti araçlarla uyumluluk( Availability of 3rd party tools )
149.9
Kullanıma hazırlılığı ( Ready to use out of box experience )
138.8
Örnek uygulamaları ( Sample apps )
137.3
Görsel araçları ve desteği ( Visual tools and declarative support )
136.9
Teknik destek kalitesi ( Quality of Tech Support )
136.4
Çalışma zamanı bellek analiz araçları ( Runtime memory analysis tools )
135.4
Modelleme araçları ( App Modeling tools )
108.3
Paralel programlamaya imkan sağlaması ( Support for Parallel Programming )
87
Uzaktan geliştirmeye desteği ( Support for Remote development )
76.3


Özelliklere göre geliştirme ortamlarının ayrıntılı sonuçları :

1. Basit araçlar – ( editor/debugger/ compiler ve/veya interpreter )

2. Modelleme araçları – ( App Modeling tools )

3. Web Dizaynı/Geliştirimi – ( Web Design/Development Tools )

4. Paralel programlamaya imkan sağlaması– ( Support for Parallel Programming )

5. Diğer araçlarla entegre olabilirliği – ( Ability to integrate tools )

6. 3.Parti araçlarla uyumluluğu – ( Availability of 3rd party tools )

7. Teknik destek kalitesi – ( Quality of Tech Support )

8. Geliştiricilerinin miktarı/kalitesi– ( Size/quality of developer community )

9. Dokümantasyonu – ( Documentation )

10. Örnek uygulamaları – ( Sample apps )

11. Çalışma zamanı bellek analiz araçları– ( Runtime memory analysis tools )

12. Görsel araçları ve desteği– ( Visual tools and declarative support )

13. Kullanıma hazırlılığı – ( Ready to use out of box experience )

14. Veri tabanı geliştirme araçları – ( Database development tools )

15. Veri tabanları ile entegre olabilirliği – ( Integration with databases )

16. Framework’lere desteği – ( Support for frameworks )

17. Test araçları – ( Test tools including Code Coverage tools )

18. Uzaktan geliştirmeye desteği– ( Support for Remote development )



kaynak:

Users' Choice: Software Development Platforms
May 2009
Software Development Platforms - 2009 Rankings
By: Janel Garvin

10 Şubat 2009 Salı

Moore Yasası ve Kuantum Bilgisayarlar üzerine..

Moore Yasası, Intel şirketinin kurucularından Gordon Moore'un 19 Nisan 1965 tarihinde Electronics Magazine dergisinde yayınlanan makalesi ile teknoloji tarihine kendi adıyla geçen yasadır.

Her 18 ayda bir entegre devre üzerine yerleştirilebilecek bileşen sayısının iki katına çıkacacağını , bunun bilgisayarların işlem kapasitelerinde büyük artışlar yaratacağını , üretim maliyetlerinin ise aynı kalacağını , hatta düşme eğilimi göstereceğini öngören deneysel (ampirik) gözlem olarak da adlandırılabilir.

1965 yılında , "mikroişlemciler içindeki transistör sayısı her yıl iki katına çıkacaktır" diyen Moore , daha sonraları 1975 yılında bu öngörüsünü güncellemiş ve her iki yılda bir iki katına çıkacak şekilde düzeltmiştir. Moore "18 ayda bir" ifadesinin de kendisi tarafından söylenmediği konusunda da ısrar etmiştir. Kendisi tarafından hiçbir zaman yasa olarak tanımlanmayan ifadesi , Kaliforniya Teknoloji Üniversitesi profesörü ve yüksek ölçekli indirgeme konusunun öncülerinden biri olan Carver Mead tarafından bu şekilde adlandırılmıştır.

Sözün ilk söylendiği 1965 yılından bu yana bu yasa çoğunlukla geçerli olmuştur. Yasa temel olarak , bir entegre devrenin fiziki boyutunun devreyi oluşturan transistör sayısının karesiyle değiştiği anlamına gelir. Örneğin , entegre devre bünyesindeki transistör sayısı iki katına çıkarsa devrenin boyutu dört katına çıkar.

Optik litografi yöntemi ile üretilen entegre devrelerde günümüzde silisyum yongalar üzerinde 65 nanometre (1 nanometre = 10-9m) boyutuna kadar büyüklüklerde , yani yaklaşık olarak 600 silisyum atomu boyutunda yapılar oluşturulabilmektedir. Kullanılan morötesi ışık dalga boylarının , atom fiziksel boyutlarının sınırlılığı ve küçük yapıların yüksek frekanslarda çalıştırılmasında ortaya çıkan çalışma düzensizlikleri , yeni bir entegre devre teknolojisi geliştirilemez ise Moore yasasının kısa bir süre geçerliliğini yitireceğini göstermektedir.

Gordon Moore da, 13 Nisan 2005 tarihinde kendisi ile yapılan bir söyleşide , öngörüsünün kısa bir zaman içinde geçerliliğini yitirebileceğini ifade etmiştir. Yakın zamanda(5-10 sene) geliştirilmeye başlanacak olan çiplerin üzerindeki bağlantıların bir atomun genişliğinden daha büyük olamayacağı düşünüldüğünde eğer başka bir teknolojiye geçilmezse bu yasanın Gordon Moore ‘un da soylediği gibi biteceği öngörülmektedir.

Bunun farkında olan Intel ‘in Moore Yasası ‘nı devam ettirmek ve başka alanlara yaymak için yeni silikon teknolojileri ve malzemeler üzerinde gerçekleştirdiği araştırma ve geliştirme çalışmaları arasında; Aşırı Morötesi Litografisi (Extreme Ultraviolet lithography), gerilmeli silikon (strained silicon) yeni transistor dielektrik teknolojileri gibi yenilikler bulunuyor. Intel’in gelecek on yılın ikinci yarısında üretmeyi planladığı yüksek hızlı Terahetz transistorlar üzerindeki araştırma projeleri, yüksek performanslı , düzlemsel olmayan, üç geçetli deneysel CMOS transistorlar üzerine odaklanmış durumda. Bu tür bir farklı transistor yapısı ile mevcut düzlemsel tasarım yapısı ile mevcut düzlemsel tasarım yerine üç boyutlu bir mimari kullanılması, transistor geçitlerini yüzey alanını arttıracak. Bu da performansı yükselterek yüksek hızlı işlemcilerin yapılmasına olanak tanıyacak. Üretim tekniklerinin değişmesine rağmen gerçekleştirilmesi gereken transistor boyutlarının mümkün olduğunca küçültülmesi.

Bu noktada kuantum bilgisayarların bulunması ile de bir hayli yol alınacağını böylece Moore Yasası’nın en azından önümüzdeki yaklaşık 20-25 sene daha dolaylı da olsa geçerliliğini koruyacağı görülmektedir.

Kısaca kuantum bilgisayarla değinmekte fayda var diye düşünüyorum:

Kuantum hesaplama tekniği temelde kuantum mekaniğine dayanmaktadır. Ünlü fizikçi Paul Davies, 1996 yılında

“19 ncu yüzyıl makine çağı, 20 nci yüzyıl bilgi çağı olarak bilinmektedir. İnanıyorum ki 21 nci yüzyıl kuantum çağı olacaktır.”

sözü ile kuantum fiziğinin olası etki alanını ve bilimdeki dönüştürücü etki potansiyelini de vurgulamıştır.

Şu anda bilgi çağının geleceğine yönelik olarak görülen en büyük atılım nanoteknoloji ve kuantum hesaplamanın birleştirilmesi olarak ifade edilebilir.

Kuantum bilgisayarlar konusunda teorik araştırmalar 1980 ‘lerde, pratik çalışmalar 1990 ‘lı yıllarda başlamıştır. Kuantum bilgisayar ile klasik bilgisayar arasındaki fark, laser ile normal ışık arasındaki gibidir.

Bugün bilgisayar yongaları mikron genişliğinde kapılardan oluşmaktadır. Bu mesafe atomik düzeye doğru yaklaştırılmaktadır. Atomik bir düzeyde farklı kanunlar işlemektedir. Bu düzey kuantum mekaniği yasalarına tabidir.

Fiziksel bit elektron değil atomdur. Elektron 0 yada 1 değerleri alabilirken, kuantum mekaniğinde atom 0,1 yada her iki değeri de alabilmektedir (koherent süperpozisyon). Kuantum bit Qubit olarak tanımlanmaktadır. n bit, herhangi bir zamanda 2n sayı depolarken, n qubit bir kerede 2 n sayı depolayabilir. Qubitlerin eklenmesi ile bellek üstel olarak artar. Tüm süperpozisyonlarda işlem yapılabilir. Bu durum bir çeşit paralel hesaplamaya benzer. n bit ile kodlanan 2 n sayı 2 n basamak yada 2 n paralel işlemci gerektirir. Aynı işlem n qubit ile kodlanan 2 n sayı için bir basamakta gerçekleşir.


IBM tarafından geliştirilen kuantum bilgisayar molekülü


5 yıl içerisinde 30 qubitlik bilgisayarlar çıkarılacağı öngörülmektedir.

(Doç. Dr.Nazife Baykal’ınBilgi Teknolojisinin, Ulusal Güvenlik ve Ulusal Güvenlik Stratejisi ile İlgili Boyutu” adlı makalesinden alıntıdır)

Kuantum bilgisayarlarındaki paralelliğin hesaplamaları nasıl kolaylaştırdığını anlamak için şu örnekler verilebilir:

· Örneğin bir milyon adet hesaplama aynı anda yapılabilmektedir(ki masalarımızdaki kişisel bilgisayarlarımızsa, aynı anda yalnızca bir tane hesaplama yapabiliyor.)

· 8 bitlik dijital bir bilgisayar, herhangi bir anda 256 ayrı konumun yalnızca birinde bulunabilmektedir. Oysa ki 8 kubitlik bir kuantum bilgisayarda aynı anda 0’dan 256’ya kadar olan tüm değerler olabilir. Böylece kuramsal olarak aynı anda 256 ayrı hesaplama işlemi üzerinde çalışabilir. Bu örnek çok kubitli sistemlere genişletildiğinde, klasik bilgisayarların sunduğunun çok ötesinde, katlı olarak artan bir hesaplama potansiyeline ulaşılmaktadır. Böylece hesaplamanın tamamlanması için gereken süre, ciddi biçimde azalır. 300 kubitlik bir hesaplama, klasik bilgisayardaki 2^300 bitlik hesaplamaya karşılık gelir. 130 basamaklı bir sayının çarpanlarına ayrılması, bildiğimiz klasik bilgisayarların yüzlercesinin aylarca çalışmasını gerektirirken. Kuantum bilgisayarlarsa böyle bir işlemin sonucunu birkaç saniyede bulabilmektedir. 400 basamaklı bir sayının faktörize işlemiyse klasik bilgisayarlarla 109 yıl sürüyorken, kuantum bilgisayarlarla yalnızca dakikalar alır.

kaynaklar:

  • Doç. Dr.Nazife Baykal’ınBilgi Teknolojisinin, Ulusal Güvenlik ve Ulusal Güvenlik Stratejisi ile İlgili Boyutu” adlı makalesi

  • http://bm.erciyes.edu.tr/5230/Kuantum%20Bilgisayarlar%C4%B1/sayfa_01.htm