Programlamaya Hangi Dil İle Başlanmalı?

Açıkça söylemek gerekirse 2010 yılında programlamaya başladım. O zamanlar visual basic vardı. Şuan C# ve Js ikilisi ile geliştirme yapıyorum. Pazar payı büyük 2 programlama dili. C# İle servislerimi yazıyorum. Js ile masaüstü, mobil ve web kodluyorum hızlı geliştirme süreci sağlıyor ,hızlı bir şekilde para kazanmanı. Tavsiyem c# ile başlamandır.
 
C'den kastınız normal C olarak mı yoksa C++ mı?
Değişiyor. C de C++ da kullanılıyor.

On-board uydu veya rover yazılımları için assembly de kullanılıyor. C compilerları çok gelişti fakat uzayda çalışan bilgisayarların sınırlı kaynağı olduğundan tek bir clock cycle değerli oluyor ve assembly'e de dönüyorlar.

Yeryüzündeki hesaplamalarda da Fortran'dan tutun Python'a kadar tüm diller kullanılır çünkü genelde programcının veya bilim insanının en hakim olduğu dil kullanılır.

Mission critical konularda genelde NASA, kodu tekrardan kullanmak ister çünkü bu kod kendini kanıtlamıştır. Bu sebepten hadi bunu bir standart hale getirelim diyerekten HAL (High-order assembly language) adında bir programlama dili geliştirildi. Bu dil ile space shuttlelar programlandı. Fakat savunma bakanlığının HAL'a değil de ADA'ya destek vermesinden dolayı HAL projesi de gümledi. İşin ilginci ADA; F-16, F-22 gibi savunma sanayii projelerinde de kullanılmasına rağmen okullar bu dili öğretmediği için C/C++ işleri hep daha yoğun oldu.

90ların sonu 2000lerin başında ise C, C++ dominasyonu başladı. Bu yıllara Unix, Linux, C, C++ ve TCP/IP anahtar kelimelerini ekleyebiliriz.

NASA atmosferden yukarı çıktığı an interpreted dilleri unutur. Konuda güzelce açıklanmış zaten. Ben açıklasam bu kadar net olurdu.
 
Iste bu "onemli sistem" den kasit mission critical olmali. Milisaniyelerin bile onemli oldugu, kesinti yasanmasinin insan hayatina etki edebilecegi sistemler. Askeri ya da saglik sektorunde kullanilan ekipmanlar, gudumlu fuzeler vs.

Bi kere kafadan garbage collector kullanan sistem ile yazamazsin, GC devreye girince milisaniyelik kesintiler yasanir. Web sitesi icin 20 ms hic onemli degil ama gudumlu fuze icin onemli : ) Ayrica her zaman uygulamadaki yavaslik programlama dilinden kaynaklanmaz, hatta %99 inin kaynagi IO yavasligidir. ( disk, network vs )

High level dili guzel yapan sey insan diline yakin olmasi ve bu sebeple daha anlasilir olmasi. Ayrica abstraction cok kolay yapildigindan 2 satir ile yazdigin seyi low level ile 200 satirda yazamazsin. Assembly de hello world kac satir merak eden bakabilir.

Tum sistemler sahiplerine gore "onemli" , o zaman her seyi C ile Rust ile Go ile neden yazmiyoruz sorusunun cevabi da iste yukarida gizli. O kadar ugrasmaya degecek mi, zaman = para cunku. Python ile 3-4 gunde cok fazla yol alirsin. Okumasi kolay, maintain etmesi kolay. C kodu spagettiye donmeye cok daha yatkin eger duzgun maintain edilmezse.

High level diller farkli interpretorler ya da VM ler ile geldigi icin her sistemde calisiyorlar. Spesifik sistemin spesifik islemci modeline gore farkli farkli interpretorler yaziliyor ve boylece calisiyor kod. Windows uzerinde calisan JVM ile, Android uzerinde calisan JVM ya da Linux Fedora uzerinde calisan JVM farkli. 32 bit CPU ya sahip Windows uzerinde calisan JVM ile 64 bit CPU ya sahip Windows uzerinde calisan JVM farkli. Bir nevi her dil icin farkli tercuman kullaniliyor ki ayni Java kodu her sistemde calissin diye. Python icin de ayni sekilde. Eh, sen aradaki tercuman katmanini ortadan kaldirma niyetindeysen, yazdigin kodu hedefledigin sistemin makine koduna kendin cevireceksin. O sebeple hedef sisteme yonelik compiler ve assembler bulup kullanirsin. Yazdigin kod sadece ve sadece o sistemde calisir ama cok optimize calisir. Trade off bunlar hep.
Teşekkür ederim hocam :)
 
Değişiyor. C de C++ da kullanılıyor.

On-board uydu veya rover yazılımları için assembly de kullanılıyor. C compilerları çok gelişti fakat uzayda çalışan bilgisayarların sınırlı kaynağı olduğundan tek bir clock cycle değerli oluyor ve assembly'e de dönüyorlar.
Açıklama için teşekkür ederim.
 
Python en kolayı Java'da bir şey yazmak için en az 4 işlem Python'da daha az bu da Python'un yararı. Ben bilişim garajında öğrrnmekteyim bunları.
 
Asıl soruya cevap veriyorum.
Programlama ile uğraşan veya uğraşmayı düşünen herkesin en azından bir kez sorduğu sorudur.
"Hangi dil en iyisi?"
Öncelikle yanlış soruların yanlış cevapları olur.
Soru yanlış. En iyi dil, işletim sistemi, derleyici, IDE vs diye bir şey yoktur.
Önemli olan kullanım amacı ve ihtiyaçlar.
 
İyi günler, ben bir lise öğrencisiyim. Kendimi bildim bileli, bilgisayarla uğraşmayı çok seviyorum. Orta okula başladığımda Yazılım mühendisliği olmaya karar verdim, hala fikrim değişmedi. İnternette birçok arama yaptım bu konuda ama bir sonuca varamadım. Sizden bir dil sırası yapmanızı rica ediyorum. Boş zamanlarımda bu dilleri öğrenmeye çalışacağım. Hiçbir bilgim yok. Şimdiden, verdiğiniz cevaplar için teşekkür ederim.
Senin bahsettiğin bilgisayar mühendisliği.
 
Bize okulda ilk Python öğretmişlerdi, bir bildikleri vardır herhalde.

Yalnız Python print('Hello World')den ibaret değil Python'u yaklaşık bir senedir görüyorum ve kendim bol bol pratikle bilmem günlük bilmem kaç saatimi Python'a ayırıyorum kendime ben Python biliyorum bile diyemiyorum.
Senin bahsettiğin bilgisayar mühendisliği.

Bir de Türkiye'de bilgisayar mühendisliğini yazılım mühendisi olarak bilme sorunsalı varya :d
 

Yeni konular

Geri
Yukarı