@FatihAsl https://forum.donanimhaber.com/link-139633625 'deki maaş artış hesapla problemi
Perl 6 ile tek satırda çözümü (forumdaki code etiketi kodu bozdugu için SS gönderdim) < Resime gitmek için tıklayın > |
maalesef bu tek satır değil |
Perl 6'da satır ayrımı ; ile yapılır. Hiçbir ; olmayan bir kod nasıl tek satır olmuyor onu merak ettim şimdi ::) |
|
Kodu tek satır iddiasıyla yazdığım için pek okunaklı değil. 2 veya 3 satıra yaysam Perl6 bilmeyen biri için dahi oldukça okunaklı olabilir fakat o zaman tek satır iddiası gerçekleşmemiş olur. Fakat buradaki asıl konu zaten, kodu tek satırda yazmaya calışırken dilin değişik özelliklerini öğrenmek. |
edit: ben ekleyim bari. işte tek satır denen şey aslında aşağıdaki gibi
buda golang kodu
kodlar bozulduğu için buda goland ide ekran görüntüsü < Resime gitmek için tıklayın > golang in C++ dan daha pratik olduğuna itiraz edenler lütfen bu örneği C++ ile yapabilir mi? |
Süslü parantezleri yeni satırlara yayarak satır sayısı belirlenmez. Süslü parantezin tek amacı kod bloğunu görünür kılmaktır ve başladığı satıra ait syntax olarak kabul edilir yani süslü parantez içindeki kod bloğu, başladığı satıra aittir. O yüzden gönderdiğim Perl 6 kodu tek satır. İç içe geçmiş bloklar birbirine bağımlı tek satır. Ona bakarsan senin GOnzalez kodunda da bir satırlık ifadede 8 süslü parantez var, onları finput := [][]string { { "Maaş Listesi :", "" }, { "Oran Listesi :", "" }, { "Para Birimi :", "" } } şeklinde yeni satırlara yayarak 11 satır, tüm program ise 31 satır sayılır :) C++'da bu programı 14 satırda yaptım, GOnzalez ile kafa kafaya. Kodları göndermedim cunku Perl 6'da tek satırda yaptım zaten. GOnzalez 'de 19 satırda yaptığın şeyi 1 satırda hallettim. GOnzalez C++ dan daha az pratik demedim, sadece C++ varken GOnzalez gereksiz dedim yoksa pratiklik açısından GOnzalezle C++ kafa kafaya fakat tabi ki C++ GOnzalezle karşılaştırılamayacak kadar yaygın. OS'ler, sistem programları C++ ile yapılıyor. Mac'te sürücü yazacaksın diyelim, C++ kullanıyorsun. GNOME, KDE gibi masaüstü ortamları da C++ ile geliştiriliyor. GNOME un geliştiricileri aa GOnzalez diye bir dil çıkmış, C++'yi bırakıp artık GOnzalez kullanım demiyorlar cunku onu gerektirecek bir durum yok. Sistem programlarını geç, işletme & finans yazılımlarında yine C++ ve Python, Java, Scala ve Clojure kullanılıyor. Wall Street'te finans işlemleri için C++ ve Clojure kullanan adamlar aa GOnzalez cıkmış GOnzalez kullanalım demeyecekler. Web frameworklerde de PHP ve ES6'ya ek olarak Ruby ve Python yaygın. Web backend geliştiricileri aa hızlı GOnzalez cıkmış dur şu Ruby Rails framwork 'ü bırakayım demez cunku artık Ruby bile oldukça hızlı. Perl 6 JVM'de calışabiliyor, ona göre tasarlandı. JVM 'de calışmak demek hız demek. Gelişmiş bir web uygulaması yapacak kişi GOnzalez hızlı diye kulanmaz cunku artık hepsi hızlı.Bu durumda Gonzalezle 19 satırda kodlanabilen şeyi 1 satırda kodlama imkanı sağlayan Perl 6'ya sıcak bakar. Hadi Perl 6 biraz yabancı kalıyor diyelim, Ruby , Python falan kullanır, web için yine GOnzalez'i kullanmaz. Hiçbir özelliği olmayan fuzuli bir dil. |
linkini veriyorum adamlar Perl den Go ya geçmişler. gerçek dünya çok farklı https://medium.com/@alvintz.v/how-we-migrate-from-perl-to-golang-1520a4951392 |
Benim kullandığım Perl değil, Perl 6. Bazen Perl kullandığım da oluyor fakat yukarda gördüğün tüm 'tek satır' kodlar hep Perl 6. İkisi arasında cok fark var. Perl 1987'de çıkmış, Perl 6 ise 2015'te piyasaya cıkmış (düzgün çalışan compiler olarak) Linkteki kişiler Perl 6 nedir bilmiyorlar, denize düşmüşler GOnzalez'e sarılmışlar :) |
|
Maaş oran hesapla programının daha okunaklı versiyonu. 3 satır:
$ perl6.exe maas-oran-hesapla_uzun.pl Maaş Listesi, Artış Listesi, Para Birimi gir: 2200 3400 5500, 1.25 1.1 1, TL 2200 yeni 2750.00 TL 3400 yeni 3740.00 TL 5500 yeni 5500.00 TL |
"Perl" ile "Perl 6" arasında çok fark var ise bu durum hiç hoşuma gitmedi. ya "Perl 7" çıkarsa |
Şöyle basit bir soru gelsin: 1'den 10'a kadar sayıların faktöryellerini basan program yazınız. Perl 6 'da tek satırda yazılıyor. < Resime gitmek için tıklayın > Gördüğünüz gibi okunaklı ve açıklamalı tek satır. Perl 7 çıkıp tek satır değil de, 0 satırda yazılmasını mı bekliyordun ![]() Bu soruyu şu senin hızlı GOnzalez ile kaç satırda yazılabildiğini de görmek isteriz ![]() |
|
Go ile tek satırda yazabilir misin diye sormadım ki? Sadece kaç satırda yazabilirsin diye sordum. Perl 'i eleştirmene gelince. Perl 5'i dahi bilmeden, Perl 6'yı hiç bilmeden "Perl 7 çıkarsa" yı konuşmak eleştirmek değil, başka birşey. Perl 6 süper bir dil demedim, sadece fonksiyonel özellikleri sayesinde karışık programlar cok daha kısa ve net yazılabiliyor dedim, ve temel / orta düzey programcılık sorularını coğu kez tek satırda kodlayarak bunun demosunu yaptım, süper dil diye birşey yok. Perl'in gerçek hayatta başarılı projelerde kullanıldığını inş görürüz demişsin, Perl birçok başarılı projede zaten kullanılıyor. Örnek ister misin. Amazon :) Docker hiç kullanmadım cunku gereksiz. Ancak ilerde bir proje sahibi kullanmamı isterse kullanırım o ayrı. |
|
Yaz o halde. 10 veya başka satır görelim. Amazon Ekim 1994 'te Perl 5 ile geliştirildi ve hala Perl 5 kullanıyor cunku Perl 6'ya terfi ettiğine dair hiçbir haber görmedim. Fakat Perl 5 te, Perl 6'da denenen bazı özellikler eklenerek iyileştirmeler yapıldığı için büyük firmalar dahil versiyon güncellemesi o kadar şart değil. |
|
Bu mesajda bahsedilenler: @vonderplanitz