İyi akşamlar. Bir programlama dili öğrenecek olsaydınız, hangi dili tercih ederdiniz?

C#, .NET Core ile şu anda Java misali tüm platformlarda çalışması amaçlanıyor.
Aynı şekilde vb.NET öğreneceksen, .NET Framework'leri destekliyor.
Bir malware yazacaksan aynı şekilde, .NET işine yarar.

C++ gibi kütüphane bağımlılığı olmayan, native dillerde eğer işlemci makine sürümü ve procces açığı bırakman durumunda, çok sorun yaşarsın.

Mesela Microsoft bile şu an, kernel32.dll üzerinde bıraktığı "sürücü yükleme Framework" ddf ile açık bıraktığı için, av EDR/XDR sistemini bypass eden malwareler piyasada satılıyor.

Veri iletimini düzgün sağlanacak ve decompile, mesela .NET en büyük sorunudur. Ilspy gibi veya dnlib gibi gerçek parserlar kodun sadece decompile değil, komple reverse engineering olmasına müsaade ediyor.

Yapacağın işleme göre değişir yani, ben .NET tarafındayım. Fakat bir freeware yazacaksam C++ tercih ederim.
 
masm (fasm veya nasm değildi diye hatırlıyorum) ile yapılmış Windows 9x virüslü Driver 2kb'lık Assembly ile derlenmiş dosyayı Claude anladı ghidra raporunu atınca direk virüs olduğunu ve kaynak kodunu çıkardı (Virustotal'e atınca algılıyor aynı sebepten antivirüsler). Claude'de iyi ama şu anda ChatGPT düşünme modu 2100+ satır kod yazabiliyor tek bir uzun mesaj yazarsanız. Yani baya ilerlemiş eğer kullanmayı çok iyi biliyorsanız her şeyi yapar.
Eslestirebilmesinin sebebi pattern matching. Gordugu seyde bildigi bir pattern var oldugu icin virus olarak tanimlayabilmis. Gormedigi essiz bir patternde buna karar veremeyecek. Cikarimda bulunacak ve bu cikarimlarin yanlis olma ihtimali var her zaman. AI nadiren bilmiyorum diyebilir.

Claude'un ve o1'nin kod uretim yetenekleri icinse; 3.7 Sonnet'e erisimim var Cursor ile. (Cursor Business). Oto tamamlama Cursor'da komple devre disi, cunku bana verdigi onerilerin 10'da 9'u yanlis. Codebase'i tamamen yanlis okuyor. Benim projemde olmayan kutuphanelerden oneri veriyor. Projemde olmayan fonksiyonlar uyduruyor. Argumanlarin sirasini karistiriyor. Isimlendirme standardinin disina cikiyor. public static methodlar icin PascalCase, private static methodlar icin snake_case, private methodlar ve degiskenler icin camelCase kullaniyoruz. Keyfi estiginde staticlere SCREAMING_SNAKE_CASE kullaniyor, keyfi estiginde pascal, keyfi estiginde camel, keyfi estiginde normal snake kullaniyor. Kodun tutarliligini bozuyor. Codebase devasa da degil hani. 19 bin satirlik bir proje. 19 bin satirda en cok tekrar eden ActionMapping icin kullandigimiz Action'lari hala israrla yanlis oneriyor.

Chat'i 3.7 Sonnet ile kullaniyorum. Onda da eger buyuk bir chunk kod olusturtmaya calisirsam, workspace'i yanlis degerlendirdiginde (ki bu da bol bol yasaniyor) verdigi kodun birden fazla kez modifiye edilmesi gerekiyor. Baya ilerlememis. Oturup 5 paragraflik prompt yazmak zorunda kaliyorum "ilerlemis" yanitlar verebilmesi icin. 5 paragraflik prompt yazana kadar kodu kendim de yaziyorum zaten.

Glorified search engineden fazlasi degiller bana suan. Google'da dokuman aratmaktansa AI'dan aliyorum. Bazen onu da yanlis yada asiri eski oneriyor, oyle olunca mecburen gidip kendim bulmam gerekiyor. Ama suan icin genel itibariyle 3.7 ile tutarli guncel yanitlar alabiliyorum.