Şimdi Ara

c++ için kitap tavsiyesi (2. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
51
Cevap
0
Favori
3.924
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 123
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Ben bu inceleme işinin bu kadar yararlı olacağını bilmiyordum. Daha ilk saniyeden pragma comment ile nasıl konsol ekranı kaldırılır bunu öğrendim... Deneyin arkadaşlar çok zevkli oluyor =)
  • Ne olursa olsun bi deitel okuyun. Bir sürü ince detayı size verir ama kitap okumak sadece dili öğretir, onu kullanmayı öğretmez. Buna göre nekadar kitap okuyorsanız onun kabaca 3 katı kadar süreyi problem çözmeye adayın : Matematik gibi soru çözmezseniz boşuna kitabı okursunuz olay basit. ama kitap okumazsanız da bi yanınız sürekli eksik kalır. Bu aynı sormayın okuyunca anlarsınız. C ile algoritma çalışırsınız ve soruları çözersiniz her dil de algoritma var C++ sadece öğrenecem, algoritma öğrenmeyecem böyle bir şey yok. C çok basit bir syntax a sahip olduğundan ve fazla geniş bir dil olmadığından algoritma için en ideal dil. C ile problem çözme/algoritma kurma yeteneğinizi geliştirirsiniz. Deitel de fazlazını da öğrenirsiniz. C ile başla, C how to program çok güzel bir kitaptır. Daha sonra C üzerine çok fazla şey öğrenmek isteyen hiç uğraşmadan linux un source koduna bakabilir. Her şeyi öğrenirsiniz :) Hem sonradan da işinize yarayacaktır linux un source kodlarını açıp inceleyin. İndirin kernel.org dan en yeni sürüm kerneli çıkarın bir yere arayın .h .c dosyalarını kaybolup gidin kodlar arasında
    Ayrıca algoritma soruları için kesinlikle aşağıda verdiğim soruları seçin çözün. Sizin için mükemmeldir. Yeni öğrenenler için en faydalı iş olur. Okulda bize böyle sorular vermediler başta algoritma falan çözmedik, gerçi bi sene bulmaca yapmaya çalıştık o iyiydi :) ama C'yi öğrendikten sonra santranc yazmaya çalışın size 5 sene yeter : neyse son sene Algoritma ödevi verdi bi hocamız. Hoşuma gitti. Buyrun:

    ACM International Collegiate Programming Contest

    http://cm.baylor.edu/ICPCWiki/Wiki.jsp?page=Problem%20Resources

    C++ için de diyeceğim nesne yönelimi de çok iyi bir şekilde öğrenmeniz gerekiyor. C++ How To Program 5. sürüm ve sonrası baskılardan bir kitap alın ingilizcedir. ama çok güzel kitap hem nesne yönelim için çok güzel bilgiler ve sıfırdan bir proje yapıyor kitap boyunca baştan sona, software engineering'e de adım atmış olursunuz. Bilgisayar Mühendisi her türlü öğrenebileceği kadar İngilizceyi öğrenmek zorunda başka yolu yok. Kitap İngilizce, uğraşamam demeyin sonra kesin uğraşacaksınız o zaman daha acı olacak

    ilk sene C ve C++ halletmeniz yarı mühendis oldunuz demektir. Benim gibi son sene C++ çalışıyor olmayın :)
    2. sene java veya c#.net öğrenin 3 sene software engineering i halledin 4.sene işe gidin



    < Bu mesaj bu kişi tarafından değiştirildi fenerista -- 29 Ocak 2010; 21:47:47 >




  • İşte tam sevdiğim paylaşımcı üye şekli. Yazınızı ilk okurken başta Algoritma çözün dedikten sonra örnek vermeyeceksiniz yine aramaktan sıkılacağım gibi geldi ama çok sağolun. Ben şu anda Lise 1 öğrencisiyim ve amacım zaten belli. Bu senelerden birşeyler öğrenmek ve kendimi geliştirmek istiyorum kısacası.

    Algoritma konusunda siteye biraz baktım şaftım kaydı verilen örnekler ile :D İngilizce bakımından bir sorunum yok çünkü kendi yaşıtlarıma göre çok çok daha iyi bir Ingilizcem var bu da çok küçük yaştan beri PC ile ilgilenmemden kaynaklanıyor. Kodları incelerken çok zorlandım o yüzden kitaptan devam ediyorum...


    Dipnot :
    C++ kitabını okurken birden anlamamaya, bir satırı 10-20 kere okumaya başladım fazla çalışınca böyle olur mu herkesde ? O.o
  • quote:

    Orijinalden alıntı: amone

    quote:

    Peki neden C? Ne güzel C# var. Pek güzeldir java vs. teranelerini duyuyorum şimdi.


    bu işten işe göre farklılık gösterir, ona bakarsanız c ile bir muhasebe programı yazın?, bakalım kaç yılda bitecek?

    c# ve java daha yüksek seviyeli işlemler için vardır, bu yüzden basit bir socket fonksiyonu ile karşılaştıramayız, bu çok taraflı olur

    ona bakarsak ben c# bilerek hem masaüstü, hem mobil hem de web programlama yapabiliyorum?

    c artık günümüzde sistem programları geliştirmek için kullanılıyor, tamam bugünkü dillerin büyük çoğunlu c den geliyor (c++,c#,java,perl,php,js...) ancak bu C yi bu dillere karşı üstün yapmaz...

    sonuç olarak her dilin bir amacı vardır, bu yüzden dilleri belirli bir amaç doğrultusunda kıyaslamalıyız


    Öncelikle, ikimiz birden başlayalım, sen C kullanmadığın sürece, ben senden önce o muhasebe programını bitiririm, emin olabilirsin. Ama desen ki, iki sayıyı toplayan program yapalım, ben daha yamzaya başlamadan, sen bitirmiş olursun o ayrı.

    Projenin karmaşıklığı arttıkça, C gibi diller güçlerini o zaman göstermeye başlarlar. İşte o yüzden C çıktığındna beri hep bir numara olmuştur.

    Bu işin bir tarafı. Diğer tarafında ise şu var. Programlama işini öğrenmek için C ile girişmek başka bir şey, programı C ile yazmak başka bir şey. Şunu aklınızda tutun, C biliyorsanız, yani C ile aklınıza geleni yazabilir haldeyseniz, emin olun tüm programlama dillerini ki buna yarın çıkacak olanlarda dahil, biliyorsunuz demektir. Yani, o dilleri alırsınız, "C bilmeyen" ama o dili iyi bilen birinden daha efektif kullanır geçersiniz.

    Bu nedenle, ilerde C# vs. öğrenip kullanmanız çocuk oyuncağı olacağı için, yapacağınız işe en uygun dili kolayca seçebilir, hatta oturup kendi dilinizi filan yazıverirsiniz gerekirse. Bir işi yaparken o işi yapacak en makul dili seçebilmek ve kullanabilmek ile, genel programlama sürecini hazmetmek farklı şeylerdir.

    Bu arada C ve dilleri özümseyememiş olduğun pek çok açıdan belli oluyor. Scripting ile programming benzer olsada, kesişim kümeleri büyük olsada başka şeylerdir. PERL ve C, PHP ile C, Java ile PHP vs. aynı kefeye konulacak şeyler değildir. Scripting beklenti ve ihtiyaçları farklı şeylerdir. Bugün pek çok durum için C kullanma gerekleri oluşmaz. Hatta bazen C kullanmamak gerekir özellikle. Bu biraz karışık bir konudur, bu topiğin konusu değildir.

    Bu olayın birde tarihi gelişimi var. Geçmişte, ortalıkta yeterince kod yoktu, erişilmesi güçtü. Üstelik alakasız insanların biraraya gelip kod yazmaları vs. gibi bir şey öngörülmüyordu bile. Bu yüzden kod okuyup bir şeyler öğrenmeye çıkmak, abesle iştigaldi resmen. Oysa günümüzde, bu imkan çok genişledi. Sonuçta şöyle bir şey oldu.

    İngilizce öğrenmek için ne yaparsınız:

    1. İngilizce kursuna giderim.
    2. İngilizce öğreniyorum yazan şu güzel ve okkalı kitabı alırım.
    3. Gider bir vakit Londra'da yaşarım.

    Sizce ingilizceyi en iyi hangisi "öğretir"?




  • quote:

    Orijinalden alıntı: AlperXp

    İşte tam sevdiğim paylaşımcı üye şekli. Yazınızı ilk okurken başta Algoritma çözün dedikten sonra örnek vermeyeceksiniz yine aramaktan sıkılacağım gibi geldi ama çok sağolun. Ben şu anda Lise 1 öğrencisiyim ve amacım zaten belli. Bu senelerden birşeyler öğrenmek ve kendimi geliştirmek istiyorum kısacası.

    Algoritma konusunda siteye biraz baktım şaftım kaydı verilen örnekler ile :D İngilizce bakımından bir sorunum yok çünkü kendi yaşıtlarıma göre çok çok daha iyi bir Ingilizcem var bu da çok küçük yaştan beri PC ile ilgilenmemden kaynaklanıyor. Kodları incelerken çok zorlandım o yüzden kitaptan devam ediyorum...


    Dipnot :
    C++ kitabını okurken birden anlamamaya, bir satırı 10-20 kere okumaya başladım fazla çalışınca böyle olur mu herkesde ? O.o


    Valla ingilizce de oluyorda türkçe de pek olmuyor biraz türkçe kitap oku(eğer türkçeyse kitap) Bilgisayar başında fazla durma
    Sakın bilgisayar başında eğlenmek için veya, film dizi izlemek, veya oyun oynamak için Fazla durmayın hayatta yaptığım en büyük hatalardan biri. Sadece işiniz icabı durun kod yazmak için bile fazla durmayın önce tasarım yapın sahte kod pseudeo bilmem ne kodu masa başında yapın.


    Bu arada Lise 1 den başladıysan iyi baya C/C++ öğrensen tamam zaten. ama gözlerin gider söylemedi deme :

    Algoritma soruları 2 günde yapabilirsin tasarımını. Bazıları zor gözükebilir değiller. :

    Bu arada lise yıllarında tavsiyedir spor(basketbol dövüş sanatları, müzik(saz, gitar neyse), kitap okumak, matematik, fizik, ingilizceyi adam gibi öğrenmek, yapacağın en iyi işlerdir. dil öğrenecem diye kendini heba etme C/C++ nesne yönelim sana fazlasıyla yeter.



    < Bu mesaj bu kişi tarafından değiştirildi fenerista -- 30 Ocak 2010; 11:41:27 >




  • C ile büyük uygulama yazarız falan demişler yazamazsın yazsan da bir işe yaramaz Açıkca söylim. Geliştririlebilir, bir şey ancak nesne yönelime sahip bir dille yazılır. Ne tdorğu düzgün test edebilirsin ne de tasarlarsın.
  • Arkadaşlar konu biraz sapmış ama yinede tüm yorumlarınız için teşekkürler kitapları dün almış bulunmaktayımm...3 tane kitap aldım şuanda faydalı olucak gibiler ancak yeni başlayacagım için biraz acemiyim...hazır konu sapmışken bir soru da ben sorayım printf ve scanf gibi komutlar c dilinde mi kullanılıyor yoksa c++ dilinde mi...arkadaşım c++ da print ve scanf gibi fonksiyonların bulunmadıgını söyledi....dogrusu nedir ben c++ kitabı aldım ancak orda ki örnekler de uzunca printf ve scanf gibi fonksiyonları kullanmışlar ancak diger kitapta bu fonksiyonlar hiç kullanılmamış.....yardım ederseniz sevinirim....bu arada son bir soru wisual studio ile devc++ arasında ne fark vardır hangisini kullanmalıyım şimdiden cevaplar için teşekkürler
  • quote:

    Orijinalden alıntı: amone

    quote:

    hazır konu sapmışken bir soru da ben sorayım printf ve scanf gibi komutlar c dilinde mi kullanılıyor yoksa c++ dilinde mi...arkadaşım c++ da print ve scanf gibi fonksiyonların bulunmadıgını söyledi.


    c++ ta c'deki print yerine cout, scanf yerine de cin kullanılır

    ancak bunları fonksiyon parantezleri ile değil de farklı operatörlerle ile kullanırsın

    int i=0; 

    cout<<"bir sayı giriniz";
    cin>>i;
    cout<<"girdiğiniz sayı : "<<i;



    Her iki dilde de gerekli kütüphaneleri yükleyerek prinf ve scanf kullanılabilir. C++ C, den türediği için daha doğrusu C ile yazılmış bir dilir C++. cout ve diğer fonsiyonları da yine aşırı yükleme gibi karamları ve diğer C fonksiyonları kullanarak yapıyorlar. Asemmbly de kullanılıyordur bazı fonsiyonlarda. C# ta da C++, yazabilirsiniz iç içeler.



    < Bu mesaj bu kişi tarafından değiştirildi fenerista -- 31 Ocak 2010; 14:00:27 >




  • En basit incelenecek açık kaynak program tipi nedir ? Text Editorler mi ? C++ için open source kaynak arıyorum headerları incelemek gerektiğini daha yeni anladım...
  • bu konuda ki verdiginiz bilgi için çok teşekkürler şuan acemiyim ancak bu işi profesyonel olarak yapıcam ve o zamanda inşallah ben sizlere bu konularda yardımcı olucam...tekrar teşekkürler
  • quote:

    Orijinalden alıntı: fenerista

    quote:

    Orijinalden alıntı: amone

    quote:

    hazır konu sapmışken bir soru da ben sorayım printf ve scanf gibi komutlar c dilinde mi kullanılıyor yoksa c++ dilinde mi...arkadaşım c++ da print ve scanf gibi fonksiyonların bulunmadıgını söyledi.


    c++ ta c'deki print yerine cout, scanf yerine de cin kullanılır

    ancak bunları fonksiyon parantezleri ile değil de farklı operatörlerle ile kullanırsın

    int i=0; 

    cout<<"bir sayı giriniz";
    cin>>i;
    cout<<"girdiğiniz sayı : "<<i;



    Her iki dilde de gerekli kütüphaneleri yükleyerek prinf ve scanf kullanılabilir. C++ C, den türediği için daha doğrusu C ile yazılmış bir dilir C++. cout ve diğer fonsiyonları da yine aşırı yükleme gibi karamları ve diğer C fonksiyonları kullanarak yapıyorlar. Asemmbly de kullanılıyordur bazı fonsiyonlarda. C# ta da C++, yazabilirsiniz iç içeler.





    çok teşekkürler yorumlarınız için gerçekten aydınlandım




  • quote:

    nesneye yönelimli programlamanın ardından da c++'ın geliştirilme sebebi bu olmuştur zaten.


    Burada biraz algılama sorunu var. Temel olarak C ile de gayet güzel nesneye yönelik programlama yapabilirsiniz. Nesneye yönelik programlama, yani OOP bir programlama dili pragmatiği değil, bir geliştirme yönelimidir. C++, C'ye bu OOP işlevi için "gerekli"
    quote:

    olanları eklemez. C++, C dili ile şablon gibi yapılabilecek olan ve bir sürü tekrar kod, makro kullanımı gerektiren olayları özetler. Böylece nesneye yönelik kodlama işini ciddi şekilde kolaylaştırır. Aslolarak C ile C++ arasında ciddi bir fark mevcut değildir. Diğer yandan bugün hemen hemen tüm C derleyicileri, C++ ile tanımlı olan inline, const vs. gibi özellikleri C ile de kullanmanıza imkan sağlamaktadır zaten.

    C demeyelim, temel programlam mantalitesini kavramış birisi için, C ile C++ arasında bir anlam farkı olmaz. Elbette bir şeyler farklıdır ve bu farklar gerçekten hayatı kolaylaştırmaktadır. Fakat bu daha ziyade detaya yönelik bir farktır.

    quote:

    diller sadece c ile geliştirilmezler, assembly de kullanılır, kullanılmak zorundadır, en kötü kendi derleyicinizi yazmak için assembly kullanmanız gerekir



    Düşünüyorum, düşünüyorum, dil yazmak için assembler kullanmak gerektiğine dair bir şey bulamıyorum. Derleyicinizide hiç assembler kullanmadan yazabilirsiniz hatta. Şimdi denecektir ki, iyide native kodu nasıl üreteceğiz o halde? İyide opcode'ları üretmek için gereken kodun assembler ile yazılması gibi bir gerek yok ki? Gerek okuduğunuz satır, gerek o satıra karşılık oluşturduğunuz mnemonicler, bir datadan ibarettir, bunun için assembly ile yazmak gereği yok. Hatta bana kalırsa, ben yılandan kaçar gibi kaçarım böyle bir şeyden. Bir derleyicinin gerekler listesinde taşınabilir olmak gibi hayati bir mevzu vardır ki, assembler'a bulaşmak o derleyiciyi sakat doğrumak için en kesin yoldur.

    quote:

    C ile büyük uygulama yazarız falan demişler yazamazsın yazsan da bir işe yaramaz Açıkca söylim. Geliştririlebilir, bir şey ancak nesne yönelime sahip bir dille yazılır. Ne tdorğu düzgün test edebilirsin ne de tasarlarsın.




    Bir şey nesneye yönelim ile yazılır diye bir gerek, abes bir gerek olur. Nesneye yönelim uygulama geliştirme sürecinde gayet mantıklı bir yöntemdir. Fakat, zorunlu değildir. Aynı işi nesneye yönelim kullanmadan da gayet güzel halledebilirsiniz. Bu nesneye yönelimin gereksiz veya yanlış olması demek değildir elbette. OOP yaklaşımının bilinen bazı sorunları vardır ki, bazen uygulamayı OOP olarak bilhassa yazmamayı gerektirir.

    Bu paragraftan, OOP'u sallayın, geçin, şöyledir ve böyledir gibi anlamayın. OOP, gerçekten hayatı kolaylaştıran bir tarzdır. Bu helvayı OOP ile mi, procedurla mı yapsak ayrımını yapabilecek birikime sahip olmakta bir hayli güçtür. O açıdan herkese ne yaptığınızı cidden bilmiyorsanız, o zaman uygulamayı OOP paradigması geliştirin derim, ısrarla. Ama şunuda gözden kaçırmayın. OOP bir yaklaşımdır, dillerin getirdiği bir özellik değildir. Assemblerde dahil, OOP yaklaşımı ile hemen her dilde kod yazabilirsiniz. Elbette çatal ile çorba içmek olayı olacaktır bu bir yerde. Adam gibi OOP desteği veren diller varken, bunları kullanmak elbette daha iyi netice verecektir.

    quote:

    hazır konu sapmışken bir soru da ben sorayım printf ve scanf gibi komutlar c dilinde mi kullanılıyor yoksa c++ dilinde mi...arkadaşım c++ da print ve fscanf gibi fonksiyonların bulunmadıgını söyledi.


    Ne C'de, nede C++'da böyle bir komut yok. Bunlar komut değil, fonksiyon. Bir fonksiyon olarakta C ve C++'da aynen mevcut. C'de bulunan herşey, C++'da mevcuttur. Tamam bunun bir kaç istisnası var. Örneğin, callback kullanımında C++ önemli bir eskiğe sahiptir, ama bunlar nispeten detay hususlardır.

    printf'in ne olduğunu gerçekten anladığınızda, o zaman ancak C'yi anlamış olursunuz. cin/cout nedir ki? bunlar alında ekrana yazın diye konmuş olan şeyler değil. Bunlar daha başka şeyler. Ve buradaki yaklaşımla:

    cout << "Hello, world!\n";

    Siz yeni öğrenen programcıyı refüze edersiniz, kafasını allak bullak edersiniz. O adam bununla giderken boşu boşuna posteki sayar, konunun özünü kavraması zorlaşır.

    Neden? Bakalım nedir "<<" ?

    quote:

    C++ Language Reference
    Shift Operators: >> and <<

    Grammar

    shift-expression :
    additive-expression
    shift-expression << additive-expression
    shift-expression >> additive-expression

    The bitwise shift operators are:

    * Right shift (>>)
    * Left shift (<<)

    These binary operators have left-to-right associativity.

    Both operands of the shift operators must be of integral types. Integral promotions are performed according to the rules described in Integral Promotions. The type of the result is the same as the type of the left operand. The value of a right-shift expression e1 >> e2 is e1 / 2e2, and the value of a left-shift expression e1 << e2 is e1 * 2e2.

    The results are undefined if the right operand of a shift expression is negative or if the right operand is greater than or equal to the number of bits in the (promoted) left operand.

    The left shift operator causes the bit pattern in the first operand to be shifted left the number of bits specified by the second operand. Bits vacated by the shift operation are zero-filled. This is a logical shift, as opposed to a shift-and-rotate operation.

    The right shift operator causes the bit pattern in the first operand to be shifted right the number of bits specified by the second operand. Bits vacated by the shift operation are zero-filled for unsigned quantities. For signed quantities, the sign bit is propagated into the vacated bit positions. The shift is a logical shift if the left operand is an unsigned quantity; otherwise, it is an arithmetic shift.

    Microsoft Specific

    The result of a right shift of a signed negative quantity is implementation dependent. Although Microsoft C++ propagates the most-significant bit to fill vacated bit positions, there is no guarantee that other implementations will do likewise.

    END Microsoft Specific


    Basitçe bitleri kaydırmak olan bu operatörün "cin << string;" deki anlamını kavramak nasıl olabilecek? cin denen şeyin in mi cinmi olduğunu nasıl izah edeceğiz? Pek çok C++ kitabı bununla başlar ve bir şeyleri kel bırakır. sonuçta kitabı hatmedip C++ veya C öğrendiğini sanan arkadaşlar da, muhsaebe programı gibi karmaşık bir şeyin C ile daha zor yazılacağını sanır. Çünkü emin olun ki bu yoldan C veya C++ öğrenilebilse de, anlaşılamaz, kavranamaz.

    C'Nin (C++) gücü, yalınlığından, çok kolay anlaşılmasından, basitliğinden gelir. Bu tarz, C'nin bu gücünü tarumar edip, içinden çıkılmaz, anlaşılmaz berbat bir heyula gibi öğrenilmesine yol açar. Bu yaklaşımdan kaçının.




  • quote:

    Orijinalden alıntı: skoylu



    quote:

    C ile büyük uygulama yazarız falan demişler yazamazsın yazsan da bir işe yaramaz Açıkca söylim. Geliştririlebilir, bir şey ancak nesne yönelime sahip bir dille yazılır. Ne tdorğu düzgün test edebilirsin ne de tasarlarsın.




    Bir şey nesneye yönelim ile yazılır diye bir gerek, abes bir gerek olur. Nesneye yönelim uygulama geliştirme sürecinde gayet mantıklı bir yöntemdir. Fakat, zorunlu değildir. Aynı işi nesneye yönelim kullanmadan da gayet güzel halledebilirsiniz. Bu nesneye yönelimin gereksiz veya yanlış olması demek değildir elbette. OOP yaklaşımının bilinen bazı sorunları vardır ki, bazen uygulamayı OOP olarak bilhassa yazmamayı gerektirir.

    Bu paragraftan, OOP'u sallayın, geçin, şöyledir ve böyledir gibi anlamayın. OOP, gerçekten hayatı kolaylaştıran bir tarzdır. Bu helvayı OOP ile mi, procedurla mı yapsak ayrımını yapabilecek birikime sahip olmakta bir hayli güçtür. O açıdan herkese ne yaptığınızı cidden bilmiyorsanız, o zaman uygulamayı OOP paradigması geliştirin derim, ısrarla. Ama şunuda gözden kaçırmayın. OOP bir yaklaşımdır, dillerin getirdiği bir özellik değildir. Assemblerde dahil, OOP yaklaşımı ile hemen her dilde kod yazabilirsiniz. Elbette çatal ile çorba içmek olayı olacaktır bu bir yerde. Adam gibi OOP desteği veren diller varken, bunları kullanmak elbette daha iyi netice verecektir.



    Aslında benzer şeyleri söylemişiz, burada yazılabilir tabiki C ile veya assembly(linux yazılmışken ) ile ama kimler yazabilir ?

    Buradaki basit C bilgisiyle yazamaz veya bilmediği yazılım kavramlarıyla yazamaz. C ile muhasebe programı mantıklı değil. ama daha ilk projende yazdığın asp.net bir web sitesi hazır toolları kullanarak gayet hızlı ve düzenli bir şekilde yazılabiliyor. Daha ben görmedim üniversite hayatım boyunca C ile yazılmış büyük bir program C++ bile yok.




  • quote:

    Buradaki basit C bilgisiyle yazamaz veya bilmediği yazılım kavramlarıyla yazamaz.


    İşte zaten o kavramları öğrenmek için burada "illa da C" diyoruz.

    quote:

    C ile muhasebe programı mantıklı değil. ama daha ilk projende yazdığın asp.net bir web sitesi hazır toolları kullanarak gayet hızlı ve düzenli bir şekilde yazılabiliyor.


    Pek çok dil ile çalışmış, bir kaç kez muhasebe programı, hem bildiğiniz muhasebe, hem devlet/belediye muhasebesi programı yazmış birisi olarak, muhasebe programı yazacak olan için C'nin gerçekten son derece ciddi bir alternatif olduğunu belirtmek isterim. Bir konu hep karıştırılır. Programlama iki ayrı ama ayrık olamayan süreçtir. Birisi, algoritma denen tasarım, diğeri ise kodlama. C dilinin gücü, yaptığınız tasarımı, yani algoritmayı tam olarak isizn istediğiniz şekilde uygulama özgürlüğü vermesidir. longjmp() gibi bir heyulanın bile standart fonksiyon olarak var olması işte bu sebepledir. Hoş, longjmp kullanan adamı tımarhaneye yollamak gibi fikirlerim bakidir ama, bu dilin nasıl "kardeşim, nasıl yapacağına karışmam, ne yapacağımı söyle" diyerek, koşulsuz, sadık ve kesin güçlü bir şey olduğunu gayet iyi gösterir.

    C ile muhasebe programı yazmanın avantaj olduğu nokta, sizin işinize gerçekten hakim olduğunuz noktadır.

    Daha ilk projende yazdığın asp.net toolları ile çıkardığın iş, genelde çuvallıyor. Sorunda burada. Ama dikkat çekmek istediğim nokta bu değil aslında. Şunu aklınızda tutun: C ve ardından (beraberinde değil, hemen ardında) C++ en geniş, en büyük, hemen her ihtiyacınıza cevap verecek kadar büyük bir tool desteğine sahiptir. Eğer işinize lazım olan bir bileşeni C için bulamıyorsanız, emin olun ki başka hiç bir şey bulamazsınız.

    Ve şu ayrıma iyice bir dikkatinizi çekmek isterim: Scripting ile programming. Bu iki ekol arasındaki farkı anlamak gerekir. MSSQL veya ORACLE scripti yazmakla, programlama farklı şeylerdir.




  • quote:

    Daha ben görmedim üniversite hayatım boyunca C ile yazılmış büyük bir program C++ bile yok.


    Bu biraz alakasız, bu nedenle ayrı bir cevap vermek lazım.

    Şu an aklına gelebilecek tüm büyük programlar C++ ile olmayabilir ama, C ile yazılmıştır, kesinlikle.

    Buyur, bir "büyük program" dediğin şeyleri sırala, bir araştrı bakalım hangi dille yazılmışlar?

    Ha, sen, mesela QUAKE gibi bir oyun, Photoshop gibi bir uygulama, MS-SQL veya ORACLE gibi başkaları, gökten zembille iniyor sanıyorsan, o asp.net'i çalıştıracak web sunucu, işletim sistemi filan çok gizli bir Z diliyle yazılıyor sanıyorsan, onu bilmiyorum.
  • nihai noktaya yaklasirken bir kac sey eklemek isterim:

    quote:

    Orijinalden alıntı: skoylu
    Pek çok dil ile çalışmış, bir kaç kez muhasebe programı, hem bildiğiniz muhasebe, hem devlet/belediye muhasebesi programı yazmış birisi olarak, muhasebe programı yazacak olan için C'nin gerçekten son derece ciddi bir alternatif olduğunu belirtmek isterim.


    dogru, C gercekten sistem kaynaklarini kullanmakta kod yazan kisiye inanlimaz destek veriyor olabilir. ancak uygulama gelistirme sureci sadece bir aracin gucu ile temsil edilebilecek bir surec degil. soyle ki: gelistirdiginiz uygulamanin (elbette toplam sahip olma maliyeti kapsaminda ekonomik basaridan bahsediyorum) basarisi sistem kaynaklarinin ya da kullandiginiz dilin gucunde nerede ise bagimsiz diyebilirim. bu ekonomik basari daha cok; bakim ve isletim maliyetlerine, egitim hizmeti maliyetlerine, platform bagimliligina, erisilebilirligine, performansa ve tasinabilirligine, her yuz fonksiyon veya yuz hata ihtimali icin barindirdigi hata miktarina, kodun olgunluguna baglidir diyebilirim.

    quote:

    Orijinalden alıntı: skoylu

    Bir konu hep karıştırılır. Programlama iki ayrı ama ayrık olamayan süreçtir. Birisi, algoritma denen tasarım, diğeri ise kodlama. C dilinin gücü, yaptığınız tasarımı, yani algoritmayı tam olarak isizn istediğiniz şekilde uygulama özgürlüğü vermesidir. longjmp() gibi bir heyulanın bile standart fonksiyon olarak var olması işte bu sebepledir. Hoş, longjmp kullanan adamı tımarhaneye yollamak gibi fikirlerim bakidir ama, bu dilin nasıl "kardeşim, nasıl yapacağına karışmam, ne yapacağımı söyle" diyerek, koşulsuz, sadık ve kesin güçlü bir şey olduğunu gayet iyi gösterir.



    bir cok metodoloji yazilim gelistirme surecini en az dort asamada (analiz, tasrim, gelistirme ve dogrulama) ele alir. bunlar metodolojiden metodolojiye birbirinin icine gecer ve ayrik veya dogrusal olur.

    quote:

    Orijinalden alıntı: skoylu
    C ile muhasebe programı yazmanın avantaj olduğu nokta, sizin işinize gerçekten hakim olduğunuz noktadır.


    dogru ama her zaman bir darbeli matkaba ihtiyac duymayiz, bazen bicak ile vida acariz, keseriz ve katta bir yerde delik te acariz. ustelik darbeli matkap kullanacak ustaliga da ihtiyac yoktur.

    quote:

    Orijinalden alıntı: skoylu
    Daha ilk projende yazdığın asp.net toolları ile çıkardığın iş, genelde çuvallıyor. Sorunda burada. Ama dikkat çekmek istediğim nokta bu değil aslında.


    "yazdigi_(n)" evet bu da dogru. bir cok .net developer in yazdiklari ilk projeler cuvallar. cunku .net egitimlerinin temeli olan egitimler ya alinmaz ya da ustun koru gecilir. bu atlanan egitimler ozellikle; analiz, tasarim ve dogrulama konularindadir.




  • quote:

    Orijinalden alıntı: skoylu

    Buyur, bir "büyük program" dediğin şeyleri sırala, bir araştrı bakalım hangi dille yazılmışlar?



    bunlarin nedeni o programlarin temelini olusturan kod parcaciklarinin gelistirme zamaninin bundan 15 - 20 yil oncesi olmasin. :) o zaman modern gorsel diller henuz piyasada yoktu. hala bir cok ticari program bundan 20 yil oncesinin kod parcaciklarini kullanir. cunku bunlarin yeniden gelistirmesi ve bugunku olgunluga gelmesinin bir maliyeti vardir. urun sorumlulari bu tercihi yapacak makul bir zemine henuz erismemislerdir.

    bir cok dijital telefon santrali, nukluer reaktor, kontrol istasyonlari, iletisim sistemleri bundan 40 -50 yil onceki dillerle yazilmis kodlara dayanmaktadir. bu kodlara hakim olan kod gelistiricilerin maaslari dolar bazinda 5 basamaklidir. ne zamaki bu urunlere ait patentler korumadan kurtulur veya kod gelistiricilerden ekonomik kriz nedeni ile istenen mali ozveri boyu gecer iste o zaman piyasa mecburen modern gorsel dillere yonelir diye dusunuyorum.




  • quote:

    basarisi sistem kaynaklarinin ya da kullandiginiz dilin gucunde nerede ise bagimsiz diyebilirim. bu ekonomik basari daha cok; bakim ve isletim maliyetlerine, egitim hizmeti maliyetlerine, platform bagimliligina, erisilebilirligine, performansa ve tasinabilirligine, her yuz fonksiyon veya yuz hata ihtimali icin barindirdigi hata miktarina, kodun olgunluguna baglidir diyebilirim.


    Hah, işte bunları en iyi sağlayan şey, C/C++ dilleridir.

    quote:

    dogru ama her zaman bir darbeli matkaba ihtiyac duymayiz, bazen bicak ile vida acariz, keseriz ve katta bir yerde delik te acariz. ustelik darbeli matkap kullanacak ustaliga da ihtiyac yoktur.


    Evet, işte o yüzden scripting ile programmingi karıştırmayın diyoruz.

    quote:

    bunlarin nedeni o programlarin temelini olusturan kod parcaciklarinin gelistirme zamaninin bundan 15 - 20 yil oncesi olmasin. :) o zaman modern gorsel diller henuz piyasada yoktu. hala bir cok ticari program bundan 20 yil oncesinin kod parcaciklarini kullanir. cunku bunlarin yeniden gelistirmesi ve bugunku olgunluga gelmesinin bir maliyeti vardir. urun sorumlulari bu tercihi yapacak makul bir zemine henuz erismemislerdir.




    Böyle bir sorun, sorun filan değildir. Basitçe, wrapper denilen bir kavram vardır. Bunun temeli şudur: C ile yazılmış bir kod, diğer tüm diller içinden çalıştırılabilir. Bundan emin olabilirsiniz. Örenğin, OpenGL temel olarak C kodudur. BU C kodunu çağıran C++ kodları, Python kodları, Java kodları vs. mevcuttur. Kısaca, eğer daha yeni bir dile geçiş, daha uyugn olacak olursa, yazdığınız kodları kolayca wrap edebilir, yeni dilden kullanabilirsiniz.

    Ve 20 yıldan beri ekmeğini program yazarak kazanan ben, henüz C/C++ için olduğu kadar geniş bir RAD toolseti görmedim. Bu açıdanda C'nin en önde olduğunu açıkca iddia edebilirim sanıyorum.

    Olayın teknik yapısını düşünmeden, bir tür geçmişten kalmışlık, alışkanlık, mahkumiyet vs. gibi olguları öne almaya çalışıyorsunuz. Fakat konu bu şekidle değil. Bugün, donanım ve yazılım sektörünün gelişmesi ile birlikte, eski pek çok gerekler yerinde kalırken, yeni pek çok gereksinimde ortaya çıktı. İşte bu yeni diller, aslolarak bu yeni gereksinimlerin bir sonucu. C gibi bir dil bu yeni gereklere uyum zorluğu yaşıyor mu? Asla. Fakat, işte o sizin ifadenizle "nice old days.." zamanında da pek çok şey vardı ki, C ile kodlama gereksizden öte, abes oluyordu. Konuya yabancı olanlar için biraz açalım. Web sayfası için forum yazacaksanız, size gereken scripting olayıdır. Zira, size host sağlayan yerin işletim sistemi ve donanımından bağımsız olmak büyük avantajdır. Ne olur? Birisi gider, C ile web serveri yazar. Yanında sizin scriptiniz için gereken blokları da birileri gene C ile yazar. Uygulamanız, sanki word veya excelin VBA makrosu gibi, bir script olarak o asıl program tarafından işlenir.

    Bu gibi ihtiyaçlar 22 yıl öncede vardı, Larry Wall tam olarak bu ihtiyaçlara binaen PERL'i yazmıştı. Ve o günden beri bir sürü öyle iş PERL ile kotarılıp gelmiştirde. Gene aynı yıllarda, gayet başarılı bir MS BASIC, Borland Pascal vs.de vardı.

    Bugün, ihtiyaçlar daha çeşitlensede nitelik ve nicelik olarak değişen çok şey yok. Basitçe, insanların ayaküstü işletecek bolca scriptinge ihtiyacı var. Bu ihtiyaç daha büyük değil. Ama hacim önemlidir. Eskiden bir bilgisayar varken, şimdi 1000 katı bilgisayar var. Değişen bu sadece. Bu yüzden aynı ihtyiaç ama daha fazla kişiden bu ihtyiça geliyor, sonuçta sanki scripting olayı ile programcılık yapılıyormuş gibi görülüyor.

    Piyasa, modern görsel dillere geçmez. Çünkü o modern görsel diller, programcılara C ile aldıkları gücü hiç bir şekilde sağlayamaz. IL'miş, .NET'miş, nesneymiş, bunlar hikayedir. Evet, C zordur, kod yazmakta zordur. Ama C zorluğunun hakkını verir. Peki nedne C'nin yerine öbürleri geçemez?

    Ne demiştik? Birinin yazdığı bir C kod bloğunu sizin scriptiniz çağırır. İşte bu mainstream uygulamalarda, o "birinin yazdığı" kısmı sizsiniz. O iş için hazır bir "building block" yok. Onu yazacak olan sizsiniz. Hazır bu olmayınca, neden gidip "modern diller" in kaprisleri ile kendinizi kasasınız ki?




  • quote:

    Orijinalden alıntı: skoylu

    quote:

    Daha ben görmedim üniversite hayatım boyunca C ile yazılmış büyük bir program C++ bile yok.


    Bu biraz alakasız, bu nedenle ayrı bir cevap vermek lazım.

    Şu an aklına gelebilecek tüm büyük programlar C++ ile olmayabilir ama, C ile yazılmıştır, kesinlikle.

    Buyur, bir "büyük program" dediğin şeyleri sırala, bir araştrı bakalım hangi dille yazılmışlar?

    Ha, sen, mesela QUAKE gibi bir oyun, Photoshop gibi bir uygulama, MS-SQL veya ORACLE gibi başkaları, gökten zembille iniyor sanıyorsan, o asp.net'i çalıştıracak web sunucu, işletim sistemi filan çok gizli bir Z diliyle yazılıyor sanıyorsan, onu bilmiyorum.




    Orada dediğim, "üniversitede kimse kullanmadı" anlamındaydı. En büyük örnek C için linuxtur zaten bir ara 1 ay linux un source kodlarını incelediğimden baya baya C koduyla iç içeydim :) ama C ile yazılmış diğer uygulamalar hakkında bir bilgim yok. Doğrudur.

    Nasıl yazıyorlar onu da merak ettim şimdi : C++ ile büyük oyunlar yazılıyor da salt C ile yazılanını bilmiyorum büyük oyunlardan. C ile ayrı frameworkler/eklentiler kullanıyorlardır herhalde.



    < Bu mesaj bu kişi tarafından değiştirildi fenerista -- 1 Şubat 2010; 20:02:50 >




  • Orijinalden alıntı: skoylu

    basarisi sistem kaynaklarinin ya da kullandiginiz dilin gucunde nerede ise bagimsiz diyebilirim. bu ekonomik basari daha cok; bakim ve isletim maliyetlerine, egitim hizmeti maliyetlerine, platform bagimliligina, erisilebilirligine, performansa ve tasinabilirligine, her yuz fonksiyon veya yuz hata ihtimali icin barindirdigi hata miktarina, kodun olgunluguna baglidir diyebilirim.

    Hah, işte bunları en iyi sağlayan şey, C/C++ dilleridir.



    :) bunu ispatlamaniz gerekir. C ile uygulama geliştirenlerin aylık maliyeti 5000 in ustunde ve haftada ortalama 2 fonksyion yazarken görsel dillerde yazan (fark etmez karalayan da diyebilirim) aylık 1500 e yazıyor ve hafta 10 fonksiyon geliştirebiliyor.


    Orijinalden alıntı: skoylu

    bunlarin nedeni o programlarin temelini olusturan kod parcaciklarinin gelistirme zamaninin bundan 15 - 20 yil oncesi olmasin. :) o zaman modern gorsel diller henuz piyasada yoktu. hala bir cok ticari program bundan 20 yil oncesinin kod parcaciklarini kullanir. cunku bunlarin yeniden gelistirmesi ve bugunku olgunluga gelmesinin bir maliyeti vardir. urun sorumlulari bu tercihi yapacak makul bir zemine henuz erismemislerdir.




    Böyle bir sorun, sorun filan değildir. Basitçe, wrapper denilen bir kavram vardır. Bunun temeli şudur: C ile yazılmış bir kod, diğer tüm diller içinden çalıştırılabilir. Bundan emin olabilirsiniz. Örenğin, OpenGL temel olarak C kodudur. BU C kodunu çağıran C++ kodları, Python kodları, Java kodları vs. mevcuttur. Kısaca, eğer daha yeni bir dile geçiş, daha uyugn olacak olursa, yazdığınız kodları kolayca wrap edebilir, yeni dilden kullanabilirsiniz.


    dikkatinizi cekerim eski kodlara destegi (application lifecycle) wrapper yazarak veremezsiniz. bu bir anlamda hayat dongusunu yamaya baglamak olur. kaldi her kod parcaciginin reusable olabilecegini kabul etmek te ayri bir varsayim.


    Orijinalden alıntı: skoylu


    Ve 20 yıldan beri ekmeğini program yazarak kazanan ben, henüz C/C++ için olduğu kadar geniş bir RAD toolseti görmedim. Bu açıdanda C'nin en önde olduğunu açıkca iddia edebilirim sanıyorum.


    dogru ama bununla nereye varmaya calisiyorsunuz? bir dilin derin ve guclu olmasini o dilin kullanildiginde iyi ticari is yapacagi anlamina getirmektesiniz?


    Orijinalden alıntı: skoylu

    Olayın teknik yapısını düşünmeden, bir tür geçmişten kalmışlık, alışkanlık, mahkumiyet vs. gibi olguları öne almaya çalışıyorsunuz. Fakat konu bu şekidle değil. Bugün, donanım ve yazılım sektörünün gelişmesi ile birlikte, eski pek çok gerekler yerinde kalırken, yeni pek çok gereksinimde ortaya çıktı. İşte bu yeni diller, aslolarak bu yeni gereksinimlerin bir sonucu. C gibi bir dil bu yeni gereklere uyum zorluğu yaşıyor mu? Asla. Fakat, işte o sizin ifadenizle "nice old days.." zamanında da pek çok şey vardı ki, C ile kodlama gereksizden öte, abes oluyordu. Konuya yabancı olanlar için biraz açalım. Web sayfası için forum yazacaksanız, size gereken scripting olayıdır. Zira, size host sağlayan yerin işletim sistemi ve donanımından bağımsız olmak büyük avantajdır. Ne olur? Birisi gider, C ile web serveri yazar. Yanında sizin scriptiniz için gereken blokları da birileri gene C ile yazar. Uygulamanız, sanki word veya excelin VBA makrosu gibi, bir script olarak o asıl program tarafından işlenir.

    Bu gibi ihtiyaçlar 22 yıl öncede vardı, Larry Wall tam olarak bu ihtiyaçlara binaen PERL'i yazmıştı. Ve o günden beri bir sürü öyle iş PERL ile kotarılıp gelmiştirde. Gene aynı yıllarda, gayet başarılı bir MS BASIC, Borland Pascal vs.de vardı.



    maalesef 12 yillik bir proje yoneticisi olarak, dil tercihinde developer maliyetine bakiyorum (butcelendirmede benim bilmedigim ve yekune en cok etki eden baska bir olcek varsa ogrenmek isterim). ve bu en onemli tercih mevzuu. perkande pazarda bulunan donanim gucu karsisinda dillerin birbirinde pek bir farki yok. ama maliyet tablosunda 200bin in ve zaman planında 4 ayin ciddi bir degeri var.

    Orijinalden alıntı: skoylu
    Bugün, ihtiyaçlar daha çeşitlensede nitelik ve nicelik olarak değişen çok şey yok. Basitçe, insanların ayaküstü işletecek bolca scriptinge ihtiyacı var. Bu ihtiyaç daha büyük değil. Ama hacim önemlidir. Eskiden bir bilgisayar varken, şimdi 1000 katı bilgisayar var. Değişen bu sadece. Bu yüzden aynı ihtyiaç ama daha fazla kişiden bu ihtyiça geliyor, sonuçta sanki scripting olayı ile programcılık yapılıyormuş gibi görülüyor.


    zannediyorum bunda 15 yil oncesine ait terimler kullaniyorsunuz. artik gorsel gelistiriciler icin scripting nerede basliyor, sql nerede bitiyor, bll nerede kimse bunu ayirt etmiyor. bunu maalesef korukle destekleyenler var. karsi degilim yoksa bugun uygulama yazilimlarinin en dusugunun ticari degeri bir kac pc bedeline esit olurdu. su an perakende de 30 milyon satiri 199 ile alabiliyorsaniz, bunu istemesenizde gorsel dillere borclusunuz.

    Orijinalden alıntı: skoylu
    Piyasa, modern görsel dillere geçmez. Çünkü o modern görsel diller, programcılara C ile aldıkları gücü hiç bir şekilde sağlayamaz. IL'miş, .NET'miş, nesneymiş, bunlar hikayedir. Evet, C zordur, kod yazmakta zordur. Ama C zorluğunun hakkını verir. Peki nedne C'nin yerine öbürleri geçemez?

    Ne demiştik? Birinin yazdığı bir C kod bloğunu sizin scriptiniz çağırır. İşte bu mainstream uygulamalarda, o "birinin yazdığı" kısmı sizsiniz. O iş için hazır bir "building block" yok. Onu yazacak olan sizsiniz. Hazır bu olmayınca, neden gidip "modern diller" in kaprisleri ile kendinizi kasasınız ki?


    yanlislik olmasin :) msdn





  • 
Sayfa: önceki 123
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.