Türkçe programlama dilleri ile neler kazanırız?

Tartisma nosyonu oturmus olgun bir insan, elestirinin de kazanim oldugunu fark etmis olmalidir.
Sen kazanim degil, ovgu duyma pesindesin; bu da cok net belli oluyor :)
Her seye ragmen ben iyi niyetli oldugunu dusundugum icin bir daha konularina yorum yapmayacagim.
"Neler kazanırız?" başlıklı konuya yazmak isteyip de konu dışı kalacağı belli olan yorumlarınız için çözüm vardır. Bu görüşlerinizi yansıtabileceğiniz uygun bir başlık oluşturmak ve başlatmaktır.

Saygılarımızla.
Çocuk yaşta daha kavramalarına sebep olur lakin alışınca ingilizcesi zor gelecek bence İngilizce küresel olduğu için tarafım ondan yana.
Çocuklar bilmeyendir. Bilmeyen olarak ele aldığınızda gerek çocuk, gerek yetişkin değme bilmeyen kişi açısından yazılımcılığı kavrama kolaylığı oluşacaktır. Ana dilini bilmeyen yabancı dillerde güçlük çeker. Bu bilinen bir gerçektir. Bundan ötürü İngilizce tabanlı dilleri öğrenmek isteyen beklediğiniz gibi güçlük çekmeyebilir.
 
Son düzenleme:
Bilmeyen olarak ele aldığınızda gerek çocuk, gerek yetişkin değme bilmeyen kişi açısından yazılımcılığı kavrama kolaylığı oluşacaktır.
Katılmıyorum. While kelimesinin anlamını bilmek yerine ne iş yaptığını bilmek önemlidir programlamada. Dili bilmek işi kolaylaştırsa da, asıl önemli olan şey kodun ne yaptığını bilmek. Yoksa yukarıda bitwise'ın bahsettiği gibi durumlar ortaya çıkacak.
Mergesort yerine "birleşiksiralama" yazmadigi için mi nlogn altinda sort algoritmasi gelistirilemiyor?
Kodun ne yaptığını öğretirken dili bildiği için kelimeyle kafasında ilişki kurması daha kolay olacaktır fakat bundan sonra İngilizce devam ettiğinde yine baştan bir çok temeli öğrenmesi gerekecek.
 
Katılmıyorum. While kelimesinin anlamını bilmek yerine ne iş yaptığını bilmek önemlidir programlamada. Dili bilmek işi kolaylaştırsa da, asıl önemli olan şey kodun ne yaptığını bilmek. Yoksa yukarıda bitwise'ın bahsettiği gibi durumlar ortaya çıkacak.

Kodun ne yaptığını öğretirken dili bildiği için kelimeyle kafasında ilişki kurması daha kolay olacaktır fakat bundan sonra İngilizce devam ettiğinde yine baştan bir çok temeli öğrenmesi gerekecek.
Dilden dile çevrilebilir yazılım dilleri olduğunda kimse kendini İngilizce öğrenmek çıkmazında duymayacaktır. Eskiden Fransızca için bu sözleri işitirdik. Ondan önce Arapça ve Farsça. Biraz ana dilimize dönmenin yararı sanıldığından daha çok olacağı inancındayız. Örneğin Türkçede sözcüklerin yer değiştirme özelliği ile kazanabileceğimiz bir çok yeni programlama yöntemleri olabilir.

"Ben eve gidiyorum." = "I am going home."
"Ben gidiyorum eve." = "I am going home."
"Eve ben gidiyorum." = "I am going home."
"Eve gidiyorum ben." = "I am going home."
"Gidiyorum ben eve." = "I am going home."
"Gidiyorum eve ben." = "I am going home."

Bunun dışında Türkçenin başka özellikleri de vardır. Ana diliniz olduğu için bunu gündelik süreçte sezemeyebilirsiniz. Üstünde emek verilmesi gerekir.

Bu elimizdeki bilgilerde bir sorun yok ise bir kökten elde edebileceğiniz ilk kertedeki sözcüklerin durumuna bakınız. Bunlar türediğinde kendi başına başka sözcüklerin ana kökü olmuş olacak. Bu yüzeysel bir örnek ve alıntı. Ağdık durumu ile, eksiği ile, artığı ile sonuç:

EYLEMDEN AD YAPANLAR
bil--mebilme
bil--mecebilmece
bil--meçbilmeç
bil--menbilmen
bil--mekbilmek
bil--melbilmel
bil--mezbilmez
bil--mikbilmik
bil--mürbilmür
bil--mişbilmiş
bil--mserbilimser
bil--ibili
bil--ikbilik
bil--işbiliş
bil--icibilici
bil--ebile
bil--ekbilek
bil--enbilen
bil--embilem
bil--elbilel
bil--elibileli
bil--evbilev
bil--eybiley
bil--esibilesi
bil--eçbileç
bil--gebilge
bil--genbilgen
bil--geçbilgeç
bil--gibilgi
bil--giçbilgiç
bil--ginbilgin
bil--gitbilgit
bil--ilbilil
bil--ilibilili
bil--içbiliç
bil--cebilce
bil--cikbilicik
bil--cekbilcek
bil--dibildi
bil--dikbildik
bil--ecekbilecek
bil--ecenbilecen
bil--emekbilemek
bil--enekbilenek
bil--elekbilelek
bil--erekbilerek
bil--egenbilegen
bil--eğenbileğen
bil--ezbilez
bil--ezikbilezik
bil--itbilit
bil--imbilim
bil--inbilin
bil--inçbilinç
bil--intibilinti
bil--irbilir
bil--sibilsi
bil--sekbilsek
bil--selbilsel
bil--izbiliz

EYLEMDEN EYLEM YAPANLAR

bil--çe-bilçe-
bil--de-bilde-
bil--der-bilder-
bil--dir-bildir-
bil--e-bile-
bil--ek-bilek-?
bil--ekle-bilekle-
bil--ele-bilele-
bil--er-biler-?
bil--erle-bilerle-
bil--eş-bileş-
bil--ey-billey-
bil--ge-bilge-
bil--gen-bilgen-
bil--ger-bilger-
bil--gez-bilgez-
bil--gir-bilgir-
bil--gin-bilgin-
bil--giz-bilgiz-
bil--ik-bilik-?
bil--ikle-bilikle-
bil--il-bilil-?
bil--imse-bilimse-
bil--in-bilin-
bil--ir-bilir-?
bil--iş-biliş-
bil--iz-biliz-
bil--pe-?bilpe-?
bil--pil-bilpil-
bil--le-bille-
bil--lik-billik-
bil--me-bilme-
bil--meş-bilmeş-
bil--ne-bilne-
bil--re-bilre-
bil--se-bilse-
bil--ser-bilser-
bil--sir-bilsir-
bil--sik-bilsik-
bil--sin-bilsin-
bil--şe-bilşe-
bil--şer-bilşer-
bil--şi-bilşi-
bil--şin-bilşin-
bil--şir-bilşir-
bil--t-bilit-
bil--te-bilte-
bil--ter-bilter-
bil--tey-biltey-
bil--ye-bilye-
bil--yi-bilyi-
bil--ze-bilze-
bil--zer-bilzer-
 
Son düzenleme:
İyide bu C? Ayrıca mantıksız yönleri var. Direkt fonk diyerek fonksiyon oluşturmuşsun. Sonra return eylemini gerçekleştiriyorsun. Ne dönecek değişkenin bir türü var, ne de atadığın değişkenlerin bir türü var. Veri uzunluğunu belirlemiyorsun, hangi veri tipleri olduğu belirlemiyorsun. Normalde a + b geri döndüreceğin zaman çıktının türünü ayarlaman gerekir. Örneğin int toplam(int a, int b) (eğer a ve b headerda atandıysa intlerin yazılmasına gerek yok a ve b için) toplamın bir integer olduğunu atamış oldun ve return a + b dediğinde a + b'nin bir integer olacağını belirlemiş oldun. Fonk deyince bellekte tam olarak nerede depolanması gerektiğini nasıl ayarlıyoruz?

Türkçe bir yazılım dili eğer yeterince gelişirse high level bir dil olabilir ve günlük kullanıma uygun programlar geliştirilebilir, çocuklara eğitim vermek için kullanılabilir.
Ayrıca loopu sonsuz olarak çevirmişsin. Loop sonsuz demek değil ki. Loop tekrar demek.
Merhaba,
Ben Karamel Programlama Dilinin gelistiricisiyim.
Dil dinamik ve ust seviye bir dil. Python, PHP, Ruby gibi dillerde oldugu gibi tipler calisma zamaninda belirleniyor.
C, C++, Rust, Java, C# digi dillerde degisken tipleri derleme zamaninda (bazi istisnalar var) bilinmesi gerekiyor. Bu sekilde optimizasyonlar yapiliyor ve native kod olusturuluyor.
Genel olarak butun degiskenler heap uzerinde tutuluyor ama performans icin ayrilmis bir block uzerinden hafizalar aliniyor. Yani malloc ile isletim sisteminden hafiza istemek yerine onceden malloc ile alinmis bir alandan kullanilmayan parcalar kullaniliyor.
Ondan dolayi mantiksizlik soz konusu degil.

sonsuz zaten adi ustunde durdurulana kadar devam eden ozel bir dongu.
while (true) {} ile ayni mantikta calisiyor ve esin kaynagi Rust dilidir. Rust dilinde ki loop dongusunden esinlendim.
Baska bir sorun olursa seve seve yanitlarim :)
En fazla ilkokul seviyesindeki çocuklara programlamanın mantığını(synatxını genel olarak) anlatabiliriz. Bunun içinde zaten blok tabanlı öğreticiler var. Onun dışında sektörde yerinin olması imkansız bir şey.

Örneğin; Tıp sektöründe nasıl Latince terimler kullanılıyorsa; programlama sektöründe de İngilizce terimler kullanılıyor.

Global olarak İngilizce varken kimse bir milletin dilini kullanmaz. Adam İngilizce ile şu anda yapabildiği her şeyi yaparken neden gidip zor olan bir dili(Türkçe) öğrenmek istesin? Bunu düşünmek bile zaten sektörde Türkçe'nin yerinin olmadığını gösteriyor. Türkçe öğrenilmesi en zor olan dillerden birisiyken; programlama da kullanılması imkansıza yakın. İngilizce gibi kolay bir dil varken ve global bir dilken kimse gidip Türkçe öğrenmez.
Burada ki amac farkindalip yaratmak aslinda. Benim bu dili gelistirmekte ki amacim birisi mutlaka alsin kullansindan ziyade, programlama dillerinin temelleri nasil, hafiza optimizasyonu nasil gibi sorulara yanit aramakti. Fakat sonradan belki birilerine ilham verebilir yada ilgi cekebilir diye dusunmeye basladim.
Ayni zamanda turkce dil deyince hikaye yazar gibi de yazilmiyor. Turkce kelime sayisida az ve olabildigince kisa ve oz tutmaya gayret gosteriyorum.
Ve haklisiniz yazilimin dili ingilizce ve uzun bir sure daha oyle olacak gibi de gorunuyor, peki neden fark yaratmaya calismayalim? Bunun kime ne zarari olabilir ki? Belki biraz onyargilari kirmaya bile yardimci olabilir :)
Hiç bir işe yaramaz, önü kapalı. Hatta zararı bile olabilir senin öğreteceğin yanlış terimler ile insanın kafası karışacak gidip gene İngilizce programlardan öğrenecek. Önü kapalı kısaca.
Merhaba
Bir ise yarayip yaramayacagi kisiden kisiye gore degisir. Misal bana gore oldukca guzel bir bilgi birikimi toplaniyor. Gercek anlamda kendi sanal makinesi olan (ki sifirdan kendim yazdim), python dilinden daha performansli (ehh cok fazla karsilastirma yapmadim ama olan kisimlar ile kiyaslama oyle) ve istedigimiz gibi gelistirebilecegimiz bir dil.
Insanlarin kafasini karistirma konusunda tamamen karsi fikirdeyim.
Lisp, Erlang, C++ gibi diller birbirlerinden oldukca farklilar ve insanlarin kafalari karismiyor, yanlis terimler ogretmiyorsa neden Karamel Dili bunu yapsin ki?
 
Son düzenleme:
Burada ki amac farkindalip yaratmak aslinda. Benim bu dili gelistirmekte ki amacim birisi mutlaka alsin kullansindan ziyade, programlama dillerinin temelleri nasil, hafiza optimizasyonu nasil gibi sorulara yanit aramakti. Fakat sonradan belki birilerine ilham verebilir yada ilgi cekebilir diye dusunmeye basladim.
Ayni zamanda turkce dil deyince hikaye yazar gibi de yazilmiyor. Turkce kelime sayisida az ve olabildigince kisa ve oz tutmaya gayret gosteriyorum.
Ve haklisiniz yazilimin dili ingilizce ve uzun bir sure daha oyle olacak gibi de gorunuyor, peki neden fark yaratmaya calismayalim? Bunun kime ne zarari olabilir ki? Belki biraz onyargilari kirmaya bile yardimci olabilir :)
Farkındalık yaratmak sorun değil. Birisinin ilgisini çekmek için birden fazla yol varken bunu seçmek mantıklı değil. Çünkü birisi programlamaya adım atmak isterse Türkçe altyapılı başlarsa bir işine yaramaz. Çünkü öğrendiği dildeki şeylerin ne işe yaradığını öğrense bile İngilizceye geçince yine kafasında soru işaretleri kalacak.

Yazılım sektörünün dilinin İngilizce olduğunu da kabul ediyorsunuz zaten. Hiçbir bilgisi olmayan insanların akıllarını karıştırmak bir zarar olabilir mesela. Önyargım yok sadece projenin mantıklı olmadığını söylüyorum. Sizin aksinize diğer arkadaşınız baya kafaya takmış bu projeyi olumsuz yorumlara bile bakmadan kafasına göre konuşuyor. Bu işi yapmak istiyorsanız olumsuz eleştirilere de açık olmanız lazım.

Ben dahil birçok kişi hem bu konuda hem de ilk açtığınız konuda neden sorun olabileceğine dair onlarca mesaj yazdı. Onları okursanız; tekrarlamaya gerek kalmaz.
 
Niye bu kadar gereksiz tepki verilmiş anlamadım. Konu sahibinin Amerika’yı yeniden keşfetmek gibi bir amacı olmadığı belli zaten. Kalkıp her şeyiyle Türkçe bir yazılım dili oluşturuyoruz dünyaya yayılacak altyapısı vs. çok iyi dememiş ki? Çocuklara basit yazılım örneklerini daha kolay öğretmeyi amaçlamışlar.
Gereksiz derecede ciddiye alınıp ona göre tepki verilmiş nedense.
 
Çocuklara basit yazılım örneklerini daha kolay öğretmeyi amaçlamışlar.
Bu iş için blok tabanlı birçok yardımcı uygulamalar var. Ayrıca şu anda çocuklara yapabileceğiniz en iyi yatırımlardan birisi yabancı dil öğretmek olacaktır. Erken yaştaki çocuklar daha kolay şekilde dil öğrenirler. Blok tabanlı uygulamalar sayesinde programlamanın temellerini öğretebilirsiniz. Çocuklara programlama temelini bir dille öğretmek istiyorsanız; Python gibi syntax olarak çok kolay olan diller var zaten. Çocuğa neden print yazdırmak yerine "yazdır" yazdıralım?
 
Su anda mac, windows ve linux uzerinde calisiyor ama calistirilabilir(binary) dosyasini henuz paylasmadim. Onun yerine web uzerinden test edilebilir surumunu koydum.
Onerilere ve goruslere acigim ama lutfen bana bu bosa kurek cekmek, olmaz o is, onu kapali gibi soylemler ile gelmeyin cunku zaten soylendi :)
  • Misal neden turkce kelime kullaniyoruz, onun yerine sembol kullansak olmaz mi diyebilirsiniz.
  • Yada neden ayni anda hem ingilizce hemde turkce destegi yok diyebilirsiniz.
  • Yada neden konusma dilinde ki gibi duz bir sekilde yazamiyoruz da semboller kullaniyoruz da diyebilirsiniz.
  • Yada fonksiyonel dillerde pattern matching var, bunu sorgulamada yada fonksiyon tanimlamada kullanabilir miyiz de diyebilirsiniz.
  • Yada dokumantasyon cok kotu, yardim edebilir miyim de diyebilirsiniz :)
Farkli ve inginc fikirlere acigim.
Saygilar
 
Su anda mac, windows ve linux uzerinde calisiyor ama calistirilabilir(binary) dosyasini henuz paylasmadim. Onun yerine web uzerinden test edilebilir surumunu koydum.
Onerilere ve goruslere acigim ama lutfen bana bu bosa kurek cekmek, olmaz o is, onu kapali gibi soylemler ile gelmeyin cunku zaten soylendi :)
  • Misal neden turkce kelime kullaniyoruz, onun yerine sembol kullansak olmaz mi diyebilirsiniz.
  • Yada neden ayni anda hem ingilizce hemde turkce destegi yok diyebilirsiniz.
  • Yada neden konusma dilinde ki gibi duz bir sekilde yazamiyoruz da semboller kullaniyoruz da diyebilirsiniz.
  • Yada fonksiyonel dillerde pattern matching var, bunu sorgulamada yada fonksiyon tanimlamada kullanabilir miyiz de diyebilirsiniz.
  • Yada dokumantasyon cok kotu, yardim edebilir miyim de diyebilirsiniz :)
Farkli ve inginc fikirlere acigim.
Saygilar
gç::satıryaz bu şekilde böyle kalacak mı yoksa kısaltmayı düşünüyor musunuz?
 

Yeni konular

Geri
Yukarı