Gruppal ile Tatile kn
 
Makaleler
Türkçe English
12 Mart 2002'de Visual Studio .Net Türkiye Lansmanında, Volkan Gazioğlu ile birlikte Microsoft C# ürün müdürü Prashant Sridharan ve ASP .NET ürün müdürü Shawn Nandi ile Bilişim Cumhuriyeti adına çok özel bir röportaj yaptık.

Türkiye'de başka hiçbir kimse tarafından yapılamayan bu çok ilginç röportajın tamanını okuyorsunuz.

Microsoft C# Ürün Müdürü Prashant Sridharan ve ASP .NET Ürün Müdürü Shawn Nandi ile Çok Özel Röportaj
12 Mart 2002

BC: Prashant (soldaki), sizin Java dünyasında önemli çalışmalarınızın olduğunu, Advanced Networking in Java ve JavaBeans Developer's Resource adlı kitapları yazdığınızı biliyoruz. Daha önce Sun Microsystems'te yazılım mühendisi olarak görev yapıyordunuz. Microsoft'a katılmanızdaki en önemli motivasyon ne idi?.

Sridharan: Tamamen kişisel nedenler ile Microsoft'a katıldım.

BC: Microsoft'ta bir dönem J++ ürün müdürlüğünü yaptınız?

Sridharan: Evet, J++ v:1.0, 1.1 ve 6.0 sürümlerinden sorumlu oldum.

BC: Java dünyasındaki engin deneyimlerinizin C# dilinin geliştirilmesine katkısı ne ölçüde oldu?

Sridharan: C# ürün müdürü olmadan önce Microsoft uygulama geliştirme araçları ve Microsoft TV üzerinde çalışıyordum. C# v:1 tamamen benim dışımda geliştirildi, herhangi bir katkım olmadı. C# v:2'den ise şu an itibariyle sorumluyum.

BC: Uygulama geliştiriciler arasında son zamanlarda C# ve Java yoğun olarak karşılaştırılıyor. Sizin bu konuya yaklaşımınız nasıl?

Sridharan: C# ve Java'ya baktığımızda her ikisinin de değişik yazım kuralları (syntax) içerdiğini görüyoruz. Burada Java dili ve Java platformu arasındaki farkı iyi ortaya koymak lazım. C# kendi başına bir platform değildir. Microsoft .Net çatısı altında yeralan bir uygulama geliştirme dilidir. Java platformu ile .Net alt yapısı, .Net sınıfları (class) ve CLR (Common Language Runtime) arasında bir analoji kurmak mümkündür. C# ile Java'yı birer dil olarak karşılaştırdığımızda ise C#'ın bir iki önemli özellik taşıdığını görüyoruz. Bunların arasında güvenli olmayan (unsafe)* kod, operator overloading ve .Net altyapısı üzerinde kısa sürede uygulama geliştirmeye yönelik özellikleri sayabiliriz.

BC: C#, Java için bir tehdit oluşturuyor mu yoksa rekabet etmek için artık çok mu geç?

Sridharan: Rekabet etmek için hiçbir zaman geç değildir (gülüyor). Burada yine Java dili ve platformu arasındaki ayırımı yapmak gerekiyor. C#, Java platformunu hedef almıyor ancak .Net Java platformu için çok ciddi bir tehdit oluşturmaktadır. .Net platformu hali hazırda 20'den fazla dili destekliyor. Dünyada çok sayıda VB (Visual Basic) ile yazılım geliştiren insan var. Eğer bu insanlar C# yerine VB kullanmak istiyorlarsa bu bizim için sorun değil çünkü burada önemli olan platformdur. Sun Microsystems C#'ı tehdit olarak görüyor ama onların asıl tehdit olarak algıladıkları .Net platformudur.

BC: .Net platformunda yer alan diller arasında J# da var. Microsoft ile Sun Microsystems arasında JVM lisansı konusunda ciddi sorunlar vardı. Bunu nasıl aştınız?

Sridharan: J#, JVM üzerinde çalışmıyor. J#, Java yazım kuralları ile .Net altyapısı üzerinde .Net sınıfları ve CLR ile yazılım geliştirilmesini sağlamaktadır. Bu anlamda diğer .Net dillerinden farkı yoktur.

BC: Java mucitlerinden James Gosling bir röportajda, C#'ın Java'nın güvenilirlik, üretkenlik ve güvenlik özelliklerinin çıkarılmış bir versiyonu olduğunu ifade etmişti. Bu yorum hakkında ne düşünüyorsunuz ?

Sridharan: Tamamen saçma bir yorum. C#'ın güvenli olmayan kod özellikleri ile yazılım geliştirmek tamamen yazılım geliştiricinin elinde olan bir şeydir.

BC: Gosling bu yorumu yaparken C#'ın geriye dönük C ve C++ desteğinden gelen bazı açıkları olduğunu, bu açıkların da C ve C++'ta belleğin herhangi bir yerine herhangi bir zamanda ulaşılabilme özelliğinden kaynaklandığını belirtmişti.

Sridharan: Evet, bu C#'ın unsafe kod özelliklerinden kaynaklanıyor. Bunu kullanmak tamamen yazılım geliştiricinin elinde ve aslında çok az kişi tarafından kullanıyor. C#'ın doğasından kaynaklanan herhangi bir güvenilirlik sorunu yoktur. Java'da bulunmayan unsafe kod özelliğini içerir ama bu tamamen sizin nasıl kullandığınız ile ilgilidir. Unsafe kod özelliklerini kullanarak bir uygulama geliştirdiğinizde, uygulamayı güvenli bölgenin dışına çıkarmış oluyorsunuz ama dediğim gibi bu tamamen sizin elinizde olan bir şey. Unsafe kod özelliklerini kullanmadan geliştireceğiz uygulamar ise güvenli bölgede kalmaya devam edecektir.

BC: .Net platformunda yazılan programlar öncelikle IML (Intermediate Language) adı verilen bir meta dile derleniyor ve daha sonra CLR içerisinde, işletim sistemi bağımlı olarak çalıştırılıyor. CLR şuanda sadece Microsoft platformunda destekleniyor. Linux ve Unix'lere taşımayı düşünüyor musunuz?

Sridharan: Halihazırda kendi içimizde kullandığımız ve şuan resmi adı SS-CLI olan (Shared Source Common Language Interface) bir ürün var. Bunu FreeBSD ve Windows için pozisyonlandırıyoruz. Geliştiricilerden beklentimiz diğer platformlar için C# derleyicileri hazırlamaları ve CLI ile C# kodunu farklı platformlarda koşabilir hale getirmeleridir. Şu anda Ximian'ın Linux için bu yönde geliştirdiği bir ürün bulunmaktadır.

BC: Bir anlamda dilden ve platformdan bağımsız hale gelmiş oluyorsunuz?

Sridharan: Henüz platform bağımsız hale geldiğimizi söylemek için çok erken. Şu anda daha ziyade SS-CLI akademik çevrelerde ve önümüzdeki seçeneklerin ne olduğunu görmemizi sağlayacak şekilde kullanılıyor. VS.Net 4 yıllık bir çalışmanın ürünü ve kaynaklarımızı onu iyileştirmek için kullanıyoruz. Platform bağımsızlığı için henüz çok erken.

BC: VS.Net geriye dönük uyumluluk (backward compatibility) konusunda neler sağlıyor?

Sridharan: Hali hazırda iki temel geliştirici tabanımız bulunuyor. Birinci grupta COM ve Win32 ile uygulama geliştiren kişiler yer alıyor. İkinci grupya ise sadece VB ile uygulama geliştiren kişiler var ki onları da aslında COM ve Win32 geliştiricileri olarak ele alabiliriz. VB geliştiricileri için kaynak kod bazında analiz yapan ve eski VB kodunu .Net koduna taşıyan VB Yenileme Sihirbazını sunuyoruz. Her zaman %100 başarım elde etmek mümkün değil, %60, %70 gibi başarım oranları ve zaman zaman da manuel müdahaleler söz konusu olabilecektir.

Bir diğer hususta .Net altyapısı içinde COM objelerine erişimin ve bu DLL'lerin çağırılmasının son derece kolay olmasıdır. Eski uygulamalarını .Net'e taşımak istemeyen kişiler de .Net'i kullanarak web servislerini geliştirebilir ve ihtiyaç halinde eski COM objeleri ile entegrasyon yapabilirler. Bu yöntem %90 gibi bir başarım getirecektir. Nispeten küçük bir grupta yeralan ve işletim sistemine bağımlı (native) kod içeren uygulamaların .Net altyapısına taşınmasında ise geliştiriciler, C#'ın unsafe kod özelliklerini yada Managed C++'ı kullanabilirler. Bizim burada önem verdiğimiz nokta, geliştiricilerin yeni ortama geçerken eski çalışmalarının heba olmaması ve onları kullanabilmeleridir. VS.Net, Visual Studio 6.0 ile aynı makina üzerindee ve yan yana kurulabilmektedir.

BC: .Net'in getirdiği önemli avantajlardan birisi de veri tiplerinin normalize edilerek konsensüs sağlanmış olmasıdır. Artık aynı işlevselliği elde etmek için farklı dillerde farklı API'ların kullanılmasına ve COM geliştirme ortamının vazgeçilmezleri arasında yeralan IUnknown, IDispatch gibi arayüzlere gerek kalmamış oldu.

Sridharan: Kesinlikle doğru. Microsoft platformunda her zaman birden fazla dil oldu ve uygulama geliştiricilerin hangi dili seçmeleri konusunda yaşadıkları tereddütlere tanık olduk. C# çıktı, VB'yi bir kenara bırakıp C# mı öğrenmeliyim, bütün kodu VB'den C#'a mı taşımalıyım gibi sorular sıkça soruldu. VB'yi terk edip C#'a geçmek herkesin çok sık kullanmadığı bir iki özelliğe sahip olmak dışında bir fayda sağlamaz. .Net platformunda bütün diller birer 1. sınıf vatandaş olmak durumundadır. Aynı zamanda geliştiricilerin faydalandıkları diğer dilleri de unutmamak gerekir. Örneğin PERL karakter kümeleri ile çalışmak için mükemmel bir dildir. Bir geliştirici için aynı özelliği C# ile replike etmeye çalışmanın bir anlamı yoktur.

BC: Shawn, sabahki sunumunuzda VS.Net ile pek çok karmaşık işlemi 1-2 tuşa basarak ve 2-3 satır kod yazarak yaptığınız gördük. Üretkenlik anlamında VS.Net'i IBM Websphere Studio, Sun's Forte ve diğer benzeri araçlara karşı nasıl konumlandırıyorsunuz?

Nandi: Adı geçen ürünler ile geliştiricilerin sadece Java programlama diline bağımlı kaldıklarını düşünüyorum. Temel fark olarak VS.Net ile istedikleri dili kullanma serbestisine sahip olmuş oluyorlar. Aynı zamanda VS.Net, XML web servisleri için çok ciddi bir destek sağlıyor. Diğer firmalar da bir taraftan inovasyona devam ediyorlar ve geliştiriciler için daha iyisini sağlamaya çalışıyorlar.

BC: Son zamanlarda bütün teknoloji şirketleri XML web servislerini ön plana çıkarıyor. Microsoft'un web servisleri konusundaki stratejisini IBM ve Sun Microsystems ile karşılaştırır mısınız?

Nandi: Microsoft bence web servisleri alanında şuanda açık fark ile önde gidiyor. Bu, tabii ki kendi servislerimizi geliştirdiğimiz ve diğer üreticiler ile uyumsuz oldukları anlamına gelmiyor. Web servislerinin temel amaçlarından bir tanesi değişik sistemler arasındaki bilgi akışını kolaylaştırmaktır. Bu amaçla Web Servisleri Uyumluluğu Organizasyonu (ws-i.org) adı altında değişik şirketler ile bir birliktelik yarattık. VS.Net ve .Net platformu web servisleri geliştirmek için kullanılabilecek en iyi ürün ve platform gibi duruyor şu anda.

BC: Açıkkod (opensource) hareketi ile ilgili ne düşünüyorsunuz?

Nandi: Microsoft olarak, herkese her şekilde açık kod yerine paylaşımlı kod (shared code) felsefesinin daha başarılı buluyoruz (BC).

(*) Burada güvenli olmayan (unsafe) kod ile kastedilen herhangi bir yazılım hatası yada güvenlik açığı değil, programlama dilinin dizilerin sınırlarını kontrol etmemesi gibi yapısal özelliklerdir

© 2002 İlker Atalay & Volkan Gazioğlu, Bilişim Cumhuriyeti
  • Diğer Makaleler




  • Home
         ICQ #: 7318385