Hangi programlama dili daha iyi? Hangisini öğrenmeliyim?

by Uğur Çelenk 5. Nisan 2009 01:00

Geçenlerde Önder Eren ile sohbet arasında programlama dillerinin avantajları/dezavantajlarından bahsediyorduk ve bu konuda kesinlikle bir yazı yazmamı tavsiye etti ve tavsiyesi üzerine yazıyorum.

Öncelikle ne tür uygulamalar yazmak istediğinize karar verin. masaüstü uygulaması mı?, yoksa web uygulaması mı? 
Eğer sadece masaüstü uygulamaları geliştirmek istiyorsanız benim önereceğim programlama dili JAVA olacaktır. Neden java? En önemli kriteri platform bağımsız(çoğu işletim sisteminde çalışıyor) olmasıdır. İkinci önemli kriter ise .NET'e göre daha çok kaynak bulunabilmesidir.

Hem windows, hem de web uygulaması geliştirmek istiyorsanız, benim önerim kesinlikle .NET platformunda uygulama geliştirmeniz olacaktır.
Peki neden? Bir müşteriniz için windows uygulaması geliştirdiniz diyelim, ardından müşteriniz sizden bir de web sitesi yapmanızı isterse ne olacak? 3 katmanlı mimari ile hazırladığınız windows uygulamasındaki kodların birçoğunu web uygulamasına entegre edebiliyorsunuz ve bu da size en az %50 zaman kazandırmış oluyor(zaman=para). Başka bir örnek daha verecek olursak, windows mobile işletim sistemi yüklü PDA'inize bir uygulama da yazabilirsiniz. Windows uygulaması geliştirirken C#.NET veya VB.NET kullanıyorsunuz, web uygulaması geliştireceksiniz ise Asp.NET kullanıyorsanız, ASP.NETin içinde de C# veya VB kullanarak kodluyorsunuz. Dezavantajı ise geliştirdiğiniz masaüstü uygulamasının, sadece windows işletim sistemi yüklü bilgisayarlarda çalışmasıdır. Ek olarak, C#.NET veya Vb.NET öğrendikten sonra JAVA öğrenmekte sanıldığı kadar zor değildir.) 

.NET platformu çok yavaştır, kullanmayın,kaçın" gibi ağızdan ağıza yayılan yanlış bir anlaşılma vardır. Bunu diyen arkadaşların birçoğu da maalesef hayatında .NET ile bir tane bile uygulama geliştirmemiş insanlar oluyor. Kodu eğer optimize bir şekilde yazmamışsanız, hangi platform olursa olsun zaten yavaş çalışacaktır.  

"Facebook bile php ile yapılmış, binlerce insan giriyor, site çökmüyor, demekki php iyi" gibi yanlış bir kanıya varanlar da mevcut. Facebook'un kullandığı server sayısı, kullandığı dil herkesin kullandığı türden bir yapıda değildir, kendi geliştirdikleri onlarca classları, kendilerine özel script dilleri(FBML) vardır. Yani böyle bir sonuç çıkarmak amatörlükten başka birşey değildir. Bu dediklerimden php kötü sonucu çıkmasın, php iyidir ama asp veya asp.net'te iyidir. Eğer günde 1 milyon ziyaretçi alan bir site yapmıyorsanız(Türkiye de böyle bir site yok zaten) ve kodunuzu optimize çalışacak bir şekilde yazmışsanız hangi programlama dilini kullanacağız çok bir önemi yoktur. Hayatında 1-2 site yapıpta programlama dillerinin performansını karşılaştırıp kesin yargılara varanlara hep şaşırmışımdır..

PHP=Open Source, Asp.NET != open source" gibi yanlış bir anlaşılma daha var. Bkz. www.codeplex.com 

.NET ve MsSQL ikilisini tavsiye etmem(.NET ve MySQL ile henüz tam olarak istenenler yapılamıyor). Php ve MySQL ikilisini tavsiye ederim. Php ve MySQL ile yaptığınız projelerinizi Linux server üzerinde barındırdığınızdan lisans ücretlerinden kurtulmuş oluyorsunuz.

SQL konusuna gelirsek, eğer .NET ile uygulama geliştiriyorsanız MsSQL öğrenirseniz çok kolay ve kısa sürede veritabanı kullanan ufak projeler geliştirebilirsiniz. Yapılan testlere göre performans anlamında MySQL ile aralarında pek bir fark yoktur(saliseleri saymazsak).  (Bir de Oracle var ama hiç kullanmadığımdan yorumlayamayacağım.)

Sonuç olarak, hem web,hem masaüstü uygulamaları geliştiren biri olaraktan .NET platformunu seçmenizi öneririm. Microsoft'un son yaptığı ataklarla (Asp.NET MVC, Silverlight vb.) herşey daha kolaylaşıyor. (Not: Eğer bu alanda iş bulmak istiyorsanız, .NET bilen yazılımcı arayan şirket sayısı çok fazla.)

Siz hangi programlama dilini kullanıyorsunuz/tercih ediyorsunuz? Yorumlarınızı bekliyorum.. 

Yorumlar

05.04.2009 21:01:42 #

Ali ABAKAN

Java sülalesini kullanacaksanız ya da Java ile ilgili iş yapıyorsanız, Groovy tavsiye ederim.(Yanlış anlama olmasın Java Sülalesini kullanmanızı tavsiye etmem genel olarak ama kullanacaksan Groovy kullan)

Hızlı iş yapmak istiyorum diyorsanız vazgeçilmeziniz Python olacaktır.

Web üzerine çalışmak istiyorsanız PHP ve Perl tabiki vazgeçilmezleriniz. Perl yerine C'yi düşünebilir, abartıp C++ application serverlar ile oynaşabilirsiniz ama bunu alttaki madde de değerlendiriyoruz.

Platform bağımsız çalışmak istiyorum, hem masa ustu hemde server uygulamalarıda yazayım diyorsanız C ve C++ oldukça portable diller.

E artık size kolay gelsin Smile

Ali ABAKAN | Yanıtla

06.04.2009 08:25:10 #

"Bu soru aslında hangi dili öğrenmeliyim?" sorusu ile aynı kapıya çıkıyor.
Türkiye'de yaşacaksanız Türkçe öğrenmelisiniz; ABD'ye göçecekseniz İngilizce öğrenmelisiniz.
Firmanız Almanya merkezli ya da Almanya ile iş yapıyorsa Almanca öğrenmelisiniz.

Microsoft ürünlerini kullanıyor, bu ürünler üzerinde geliştirme yapıyor ya da bu ürünlere eklenti
hazırlamayı planlıyorsanız .Net güzel bir seçenektir.

Java'yı daha çok seviyorsanız ya da Java kullanmanız daha mantıklıysa Java daha güzel bir seçenektir.

Dil seçiminde hız, kolaylık vs. ön plana çıkmıyor çoğu zaman. Ne yapmak istiyorsunuz? Nerede yapacaksınız? Ne ile yapabilirsiniz?

Web uygulaması yapmak istiyorum, Windows sunucumuz var. O zaman ASP.Net öğrenin.
Mobil uygulama yapacağım, IPhone'da çalışacak. O zaman XCode öğreneceksiniz.

Can HANHAN | Yanıtla

07.04.2009 22:53:00 #

1- Php mi Öğrenmek daha kolay yoksa .net mi?
2- Hangisi ile daha pratik kodlama yapılıyor?
3- .net ile mi iş bulmak kolay php ile mi?

Alihan | Yanıtla

08.04.2009 04:09:35 #

Alihan,
1. ikisinde de mantık benzerdir ama php ile ilgili daha çok döküman bulacağından, daha kısa sürede öğrenebilirsin.
2. .NET ile daha pratik kodlama yapılabilinir ama çokta fark yoktur.
3. Bu sorunun cevabını ufak bir araştırma yaparak bulabilirsin. www.kariyer.net  www.yenibiris.com www.secretcv.com bu 3 sitedeki ilanlara bakabilirsin. (.NET bilen kişi sayısı çok fazla olmadığı için her zaman ".NET bilen yazılımcı aranıyor" ilanı görebilirsin. )

Uğur ÇELENK | Yanıtla

10.05.2009 08:01:55 #

Adem

Kesinikle .NET C# ASPX MSSQL !!

Adem | Yanıtla

15.08.2009 22:56:07 #

Ben php web programlama diliyle birlikte mysql veritabanı sistemini kullanıyorum. Aslında .net ile uygulama geliştirmeyi isterim. Büyük şirketler daha çok .net altyapısını kullanıyor.

Burak S. Vanlı | Yanıtla

26.08.2009 19:24:50 #

huseyin

.net diger isletim sistemlerindede calisabilmektedir framework mevcuttur bu nedenle kesinlikle .net cok hizli windows uygulamasi gelistirilebilir java yavas calisan bir dildir kodlamasida bana gore yavastir hız konusunda iddali degil zaten ben javayi sadece cep telefonu icin kullanirim masaustu icin .net c# webde php mobilde .net c# database mssql yada mysql mobil icin sqlite kullanmayi tercih ediyorum

huseyin | Yanıtla

12.03.2010 09:08:47 #

Emre

Burada önemli olan diller değil. Sunucu işletim sistemleri de değil. Hyper-V le sanal sunucular yaratırsınız olur biter. Önemli olan veritabanları. Bana sorarsanız en mükemmeli .Net kim ister ki unix ve türevlerinin karanlığında koybolmayı.  Örnek bir senaryo ele alalım. Facebook veri tabanı için 30.000 sunucu kullanılıyor veritabanı olarak microsoft yada oracle kullansaydı, sunucu başına enterprise sürümler için 30.000 $ civarında bi para ödeyecekti. Hadi toplu lisans falan filan 10.000$ diyelim.  30.000 sunucu için ne kadar para ödeyeceğini varın siz düşünün artık neden php nin daha iyi olduğunu anlasınız. Bu arada dil olarak php nin kötü olduğu sonucuna varılmasın php de çok iyidir.

Emre | Yanıtla

13.04.2011 20:25:55 #

türk ünlüler

mobil icin sqlite kullanmayi tercih ediyorum

türk ünlüler | Yanıtla

04.06.2011 05:15:21 #

Hasan YILDIZ

Artık web tabanlı büyük yazılımlar (aslında daha çok cloud computing türü olanlar)  java ile yazılıyor. hatta java için geliştirilmiş ajax classları da mevcut. Ama nacizane bilgime göre jsp hosting maliyeti çok yüksek olduğu için java ile yazılmış web sayfası hiç göremezsiniz. Bu nedenle windows da görülen c#.net asp.net  beraberliğinin linux tarafındaki en iyi alternatifi python ve django ikilisidir.

Hasan YILDIZ | Yanıtla

15.01.2012 13:09:37 #

İsmail Sağlam

.NET ile web geliştirmek sadece otoriteye itaat etmektir. PHP ve linux sunucuların tercih edilme sebebinin sadece ücret olduğunu iddaa ediyorsanız konuya yeterince aşina olamamışsınız demektir Smile

İyi bir programcı her ortam için en uygun dili kullanabilmelidir. Masaüstü uygulama yazacaksanız ve hedefiniz Windows kullanıcıları ise oturup .NET C# ile geliştirin uygulamanızı.

MVC'ye gelince: .NET'in getirdiği bir yenilik değildir. Sadece bi programlama tekniğidir. PHP ve diğer birçok dile ait frameworklerin de çoğunluğu MVC mantığı ile çalışır.

Linux size nerede  ne dönüyor her türlü detaya müdehale etme imkanı verir ve sınır tanımayan bir altyapı sunar. Windows'un ise geri planında ne döndüğünü çözmeniz imkansız gibi birşeydir. İşinizi kolaylaştırdığını iddaa eder ama tek yaptığı sizin yerinize program modülleri geliştirip size hazırı kullandırtmaktır. Yeterince kullandıktan sonra kendinize özel bir yöntem geliştirmekten aciz herşeyin hazırını arayan birine dönüşmeniz çok olasıdır...

Microsoft ise .NET için olabildiğince kurs açıp programcıları kendine çekme çabası içinde. Firmaların .NET'e yönelmesinin temel sebebi de budur. NET harika olduğu için değil işlerini yaptırabilecekleri yeterince "işçi" bulabilecekleri içindir. Öte yandan PHP geliştiricilerinin çok yüksek bi yüzdelik dilimi PHP'yi kendi başına araştırarak ve deneyerek öğrenir ve bu kişiler programlama mantığına, olaya Windows'un pencerelerinden bakan birçok kursiyerden daha aşinadır... Yani .NET'in piyasadaki ağırlığı MS'in mali gücünden ve firmaların ticari hesaplarından kaynaklanmaktadır.

Büyük projelerde .NET kullanılır daha güvenilirdir gibi sözlerle ortalıkta dolaşan kişilerinse benim gözümde: bir zamanlar kulaktan dolma bilgilerle "HTML'in açığı var o yüzden ASP kullanıyoruz." diyenlerden ve hazır sistem kurup "ASP'nin açığı var o yüzden PHP'ye geçtim." diyen paket kurucularından hiçbir farkları yok.

Büyük projelerde .NET kullanılır diyenlere sorulacak en güzel soru şudur:
"Alexa ilk 100'de kaç adet .NET site var?"

Yine de programlama dilinin araç olduğunu akıldan çıkarmamak en önemlisidir. .NET'de yazıyor olsanız, PHP'de yazıyor olsanız önemli olan ortaya bir ürün/hizmet sunmaktır.

Herkese saygılar...


İsmail Sağlam | Yanıtla

22.01.2012 10:40:09 #

ugur

İsmail Sağlam,
Öncelikle yorumun için teşekkürler.

MVC, microsoftun getirdiği bir yeniliktir şeklinde bir açıklamam olmadı yazımda belirttiğim üzere, yanlış anlaşılma olmasın.

"Alexa ilk 100'de kaç adet .NET site var?"
Bunun cevabı çok açık. Alexa ilk 100deki sitelerin çoğu bir sürü servera sahip ve bu sunucuların, programların lisansı vs. pahalı geldiğinden mecbur microsoft dışında bir teknoloji seçmek zorunda kalıyorlar. (İster microsoft teknolojilerini beğensinler, ister beğenmesinler, mecburlar)

Bunların dışında diğer dediklerine benim de katıldığımı belirtmek isterim.

ugur | Yanıtla

30.01.2012 08:10:12 #

İsmail Sağlam

Ben teşekkür ederim.

Sonuç olarak ikimizin de dediği şu sonuca ulaşıyor: Büyük projelerde .NET kullanılır doğru bir önerme değildir Smile

Tekrar saygılar....

İsmail Sağlam | Yanıtla

Yorum ekle




biuquote
  • Yorum
  • Canlı önizleme
Loading



Etiket Bulutu