C++11 Yenilikleri
-
Tahribat ta C++11 ile kaynak paylaşıldığına pek rastlamadım, bilmeyenler varsa diye 1-2 kaynak paylaşıyım.
Türkçe dökümanlar:
Ali Çehreli'nin çok güzel bir sunumu var, yeniliklerden kısaca bahsediyor : http://ddili.org/sunum/2012_AliCehreli_Cpp11_D.pdf
Benzer şekilde Kaan Aslan'ın da sunumları var, incelemek için : http://www.csystem.org/makeleler (sayfa 2 de)
C++11 özelliklerini kullanabilmek için kodunuzu derlerken -std=c++0x veya -std=gnu++0x eklenmeli(c++0x_warning.h dosyasında belirtiyor)(IDE kullanıyorsanız derleyici parametreleri gibi bir bölüm olmalı oraya eklersiniz)
Ayrıca en güzel döküman sitesi http://en.cppreference.com/w/ bence kesinlikle burasıdır standartları güzel bir şekilde anlatıyor, sanırım resmi sayfası burası.(İngilizce'niz çok iyi olmada bile şiddetle tavsiye ederim inceleyin)
Çoğu kişi C++ ile program yazar, ama düzgün yazdığını zannetmiyorum(Takıldığım forum sitelerinde Türkiye çapında gördüklerim bunlar).Standartları, syntax yapısını vs. iyi bilmek lazım.
Burdan ben çok iyi biliyorum gibi bir şey çıkmasın, gördüklerim bunlar. Dilin felsefesini kapmak önemli olay direk tamam hadi kod yazalım demekte değil.
Saygılar
-
C++11 standartlırını 2009 dan veri takip ediyorum diyebilirim. Aslında çoğu boost (http://www.boost.org/) library nin getirdiği şeyleri startlaştırdı C++11 ile.
Özellikle standart thread işlemleri yapılabiliyormuş artık ama hala tam araştıramadım bu konuyu.
DrKill tarafından 22/Eki/13 15:32 tarihinde düzenlenmiştir -
http://en.cppreference.com/w/cpp/thread evet thread c++11 den itibaren standart kütüphaneye eklenmiş, boost c++ komitesi ile çok yakın çalışıyorlarmış ve boostda kileri standartlaştırıyorlar, birde süreç daha hızlı olsa iyi olacak
-
Ali Çehreli'nin o sunumunu canlı olarak izlemiştim:)
UNICODE geldi diye hatırlıyorum. Bana göre en büyük yenilik bu.
Yalnız dikkat edilmesi gereken nokta dile getirilen olanakların kural sayısını da arttıracağı. Zaten karmakarışık olan C++ için durum daha da zorlaşacak.
İkinci nokta da STL'nin zaten pek iyi bilinmiyor oluşu.
-
YeniHarman bunu yazdı
Ali Çehreli'nin o sunumunu canlı olarak izlemiştim:)
UNICODE geldi diye hatırlıyorum. Bana göre en büyük yenilik bu.
Yalnız dikkat edilmesi gereken nokta dile getirilen olanakların kural sayısını da arttıracağı. Zaten karmakarışık olan C++ için durum daha da zorlaşacak.
İkinci nokta da STL'nin zaten pek iyi bilinmiyor oluşu.
Karmakarışık olan şeyler nedense ilgimi daha çok çekiyor, sorun bende mi acaba, java da c++ kadar zevk aldığımı zannetmiyorum :)
DeadSoul tarafından 22/Eki/13 15:44 tarihinde düzenlenmiştir -
DeadSoul bunu yazdı
Karmakarışık olan şeyler nedense ilgimi daha çok çekiyor, sorun bende mi acaba, java da c++ kadar zevk aldığımı zannetmiyorum :)
Yok canım ne alakası var fakat son ürün ortaya çıkarırken aracın karmaşıklığı sizin karın ağrınız oluyor.
Java da bana göre oldukça karışık:) Nedir kardeşim inner class inner class, clone clone clone, boxing-unboxing. Basit olması için işlevsellikten ödün verilmiş. Belki Java'nın tost makinesi programlamak için ortaya çıktığından olabilir:D -
C++'a çok daha ciddi olanaklar geliyor, 2014 de minor, 2017 da major olmak üzere iki standart gelecek. Yeni eklenecek olanaklar için oluşturulmuş çalışma grupları (Study Groups) var ve beni en çok sevindiren SG1 ve SG4. Yanılmıyorsam SG1 concurrency ve parallelism, SG4 ise networking idi.
Bunların dile standart olarak kazandırılması demek, en ileri seviye programların bile (Http server vb) %100 portable olması demek. Gelgelelim YeniHarman'ın dediği doğru, dil çok büyük ve karmaşık, zaten C++ kullanan firmaların hemen hepsi, C++'ın belirli bir alt kümesini kullanır. Yine de imkan imkandır :)
Şu videoda Herb Sutter (ISO C++ komitesi ve Visual C++ ın başındaki adam) yukarıda bahsettiklerimi anlatıyor, çok eğlenceli, bu arada video da da vurgulandığı üzere C++'ın resmi sitesi, http://isocpp.org/ dur.http://video.ch9.ms/sessions/build/2012/2-005.mp4
-
YeniHarman bunu yazdıDeadSoul bunu yazdı
Karmakarışık olan şeyler nedense ilgimi daha çok çekiyor, sorun bende mi acaba, java da c++ kadar zevk aldığımı zannetmiyorum :)
Yok canım ne alakası var fakat son ürün ortaya çıkarırken aracın karmaşıklığı sizin karın ağrınız oluyor.
Java da bana göre oldukça karışık:) Nedir kardeşim inner class inner class, clone clone clone, boxing-unboxing. Basit olması için işlevsellikten ödün verilmiş. Belki Java'nın tost makinesi programlamak için ortaya çıktığından olabilir:Dtost makinesini ilk defa duydum kahve makinası adı olduğunu biliyordum ama :D ayrıcca hocam java dönemi koşulları içerisinde gelişmeleri göz önünde bulundurarak oluşmuş bir dil olarak biliyordum yanılıyormuyum.
-
çizik :) takip edelim bende merak ediyordum :)
-
Tugberk bunu yazdı
C++'a çok daha ciddi olanaklar geliyor, 2014 de minor, 2017 da major olmak üzere iki standart gelecek. Yeni eklenecek olanaklar için oluşturulmuş çalışma grupları (Study Groups) var ve beni en çok sevindiren SG1 ve SG4. Yanılmıyorsam SG1 concurrency ve parallelism, SG4 ise networking idi.
Bunların dile standart olarak kazandırılması demek, en ileri seviye programların bile (Http server vb) %100 portable olması demek. Gelgelelim YeniHarman'ın dediği doğru, dil çok büyük ve karmaşık, zaten C++ kullanan firmaların hemen hepsi, C++'ın belirli bir alt kümesini kullanır. Yine de imkan imkandır :)
Şu videoda Herb Sutter (ISO C++ komitesi ve Visual C++ ın başındaki adam) yukarıda bahsettiklerimi anlatıyor, çok eğlenceli, bu arada video da da vurgulandığı üzere C++'ın resmi sitesi, http://isocpp.org/ dur.http://video.ch9.ms/sessions/build/2012/2-005.mp4
eyvallah hocam, sabır zor iş :)
dediğin gibi standartları şöyle resimle göstermişler, http://isocpp.org/files/img/wg21-timeline.png
DeadSoul tarafından 22/Eki/13 19:22 tarihinde düzenlenmiştir -
whopper bunu yazdı
tost makinesini ilk defa duydum kahve makinası adı olduğunu biliyordum ama :D ayrıcca hocam java dönemi koşulları içerisinde gelişmeleri göz önünde bulundurarak oluşmuş bir dil olarak biliyordum yanılıyormuyum.
Tost makinesi şaka ama Java'nın hayatına set top box'lar için (bir çeşit akılsız televizyon akıllandırma cihazı) OAK adında başladığı biliniyor. Belki bu yüzden basit ama yavaş yığın tabanlı sanal makine üzerinde çalışıyor (Oracle JVM; Android'deki sanal makine, Dalvik, yazmaç tabanlı).
Java isminin nereden geldiği http://www.javaworld.com/jw-10-1996/jw-10-javaname.html makalesinde açıklanmış (kimse hatırlamıyormuş tam olarak:)).
Çığır açan teknolojinin Java değil de önceden LiveScript olarak adlandırılan, JavaScript denilen, en son da EcmaScript olarak standartlaşmış JS olduğunu düşünüyorum. Bir de ihtiyaçlara C# daha hızlı cevap veriyor. Predicate, fonksiyonel yaklaşım, kısmi sınıflar, yield ve daha niceleri... Örneğin .NET 4'te (nihayet) thread-safe koleksiyonlar konmuş ki bir programımı sırf bu yüzden 4. sürüme göre değiştirdim. Aksi halde ne lock ne de mutex çalışan programın istisna oluşturmadan öylece manyak gibi kapanmasına engel olamıyordu (ve hayır, aylarca araştırıp kendi thread-safe koleksiyon sınıflarımı yazacak kadar ne çalışkanım ne de zamanım var. Belki de o kadar zeki bile değilimdir, Kim bilir?:))...
Herb Sutter'in bu dünyadan olduğuna emin değilim. Exceptional C++ ve Gotw ile neden C++'yi tek başıma kullanmamam gerektiğini kibar bir dille kabul ettirmiş kişidir. C++ ile ekonomik değeri olan programlar yazmanın ekip işi olduğuna oldukça eminim. Aksi halde kafa yemek olası.
Herb Sutter'dan bir alıntı:
Optimizasyonun kuralları:
1) Yapmayın.
2) Henüz yapmayın.
Bu cümleyi kurabilen insanın deneyim seviyesini hafife almamak lazım, o yapma diyorsa yapmam:)
YeniHarman tarafından 22/Eki/13 23:20 tarihinde düzenlenmiştir