PHP / Raylar / Django / ASP web siteleri C + + ile yazılmış olmalıdır?

8 Cevap

Bir SO üyenin açık kaynak projesi bakıyordu. Bu C + + ile yazılmış bir web çerçeve oldu.

Şimdi tüm C + + web sitelerini yapmak için korkunç bir dildir nasıl tepki muhtemelen hazır, ve bu web siteleri, darboğaz veritabanında.

Ama ... Ben bu yazıyı okuyun:

http://art-blog.no-ip.info/cppcms/blog/post/42

ve orada o Wikipedia gibi büyük bir sitede, veritabanı sunucuları sadece tüm sunucuların% 10 makyaj durumda yapar. Bu nedenle C + + PHP Python Ruby C # gibi dillerin daha iyi olurdu.

Onun puan geçerli mi?

8 Cevap

Bağlanmak makale ile sorun Yazar açıkça gerçekten o "darboğaz" nerede diye sorduğunda ne dediğini bilmiyor ki; Birisi veritabanı sunucuları daha fazla web sunucularını sahip olması "sorunun nerede veritabanı olamaz" anlamına gelmez. Genellikle "veritabanı darboğaz" demek ne hiç bir web uygulamasının çalışma zamanı profilleme yapar herkes tarafından öğrenilmiş oldu aynı şey.

Tam bir yanıt dönmek için yarım saniye sürer bir uygulama düşünün. Eğer oturup düşünelim ve profil, aşağıdaki gibi işlem süresi yarım saniye ayırır bulabilirsiniz:

  • 50ms: Gelen istek Ayrıştırma
  • Sorgulama veritabanı: 350ms
  • Cevap için HTML Rendering: 50ms
  • Dışarı geri yanıtı gönderme: 50ms

Eğer veritabanı sorguları uygulamasının fiili çalışma süresi 70% teşkil nerede, böyle bir arıza görseniz, haklı veritabanı darboğaz olduğu sonucuna ediyorum. Ve onlar do uygulamaları (ve genel olarak veritabanı yüzden tamamen işleme kalanı için dil seçimi herhangi bir fark kimse yapmaz işlem süresini hakim profile çoğu insan bulmak tam olarak ne ) göreceksiniz.

Ilgili veritabanı sunucularının sayısı çok fazla önemli değil çıkıyor; Burada ünlü alıntı bağlı olduğunuz yazının yazarı gibi insanlar bir bebek var ve birlikte çalışan dokuz kadın bir ay içinde yapabileceğini varsaymak için dokuz ay bir kadın alır duymak türleri olmasıdır. Veritabanı açıdan: belirli bir sorgu bunlardan herhangi biri herhangi bir hızlı olduğunu sorguyu yürütmek mümkün yapmak için gitmiyor fazla DB sunucular ekleyerek sonra, belirli bir DB üzerinde yürütmek için 100ms sürerse. Daha fazla veritabanı sunucuları eklemek için nedeni daha fazla eşzamanlı istekleri işlemek ve izole istekleri daha hızlı gitmek yapmak için değil, aşırı almak sizin DB tutmak mümkün olmaktır.

Ve oradan bir uygulama ölçekleme olağan dans gitmek: yanıtları veri alma veya işleme harcanan toplam süreyi azaltmak için önbelleğe alma, yük dengeleme size hizmet sharding ve daha gelişmiş veritabanı tasarım eşzamanlı istekleri sayısını artırmak için vs, vs yük altında bogging tutmak için düzenleri

Ama, bir kez daha, zaman harcanan tutar veya kaydedilmiş diğer faktörler tarafından fena halde kazandığı zaman miktarı daha ağır basar ya da "hızlı" bir kayıp, çünkü bunların hiçbiri kullanımı programlama dili ile yapmak için herhangi bir şey var, dikkat edeceğiz ya da "yavaş" dil (ve tabii ki, gerçekten böyle bir şey var, o kadar problem alanı ve sadece bir anlamlı genel bir karşılaştırma olamaz programcı beceri bağlıdır).

Her neyse, bu tür uzun ve başıboş oluyor, bu yüzden ben sadece genel bir kılavuz ile saracağım: Eğer "daha hızlı çalışır çünkü Dil X inşa etmeliyiz" savunarak birini görürseniz, o ölü bir hediye onlar don var 't gerçekten gerçek dünya performansı veya ölçekleme hakkında bir şey biliyor. Sadece "hızlı dilinde yazmak" için aşağı geldi eğer tüm sonra, onlar tavsiye ediyorum, çünkü biz tüm kullanım montaj :)

Sunucular birkaç bin bir kerelik sabit maliyet vardır. Programcı zaman bu çok daha fazla maliyeti. Tabii, C + + yazma siteleri donanım maliyetlerini azaltacak, ancak büyük ölçüde gelişimini yavaşlatmak olacaktır. Yani ekstra bir sunucu için ödediği Ruby yerine C + +, kullanarak geliştirme off zaman bir adam-ay tıraş eğer.

Daha iyi "hızlı" çok daha fazla anlamına gelir.

C + + gibi derlenen, statik yazdığınız dilde yazma, ve bu tüm gelişimini etkileyebilir zaman yüz daha çok sorun vardır. Ruby veya PHP gibi dilleri scripting temel nedenlerinden bazıları bize programcılar içeri çalışmak dil ve toolsets dışında daha fazla verim alabilirsiniz böylece icat edilmiş

Onlar C gibi bir dilde yazılmıştır + + olsaydı Evet, web sitelerinin daha hızlı olacaktır. Evet, daha fazla insana hizmet daha ölçeklenebilir ve daha verimli olabilir. Ama dil bize vermek yorumlanır tüm faydaları üzerinde kaybetmek için bu yeterli bir neden? Programcı mutluluk, geliştirme süresi, kullanım kolaylığı, taşınabilirlik, ve ben söz edilemez daha çok.

Doğru iş için, ve C + +, web sitesi geliştirme için doğru araç bunlardan biri değildir.

Ben sunucuları binlerce bazı maliyet yüzlerce beri birkaç bin dolar bir zaman maliyeti ve ben milyonlarca söylemek girişim olacağını söylemek için isteksiz olacaktır. Kaynaklardan bir dizi IT sektöründe en büyük maliyetli donanım değil, insan gücü olduğunu önerecektir. Ama dillerin karşılaştırılmasına için biz donanım, değil onları karşılaştırmak gerekir.

Ruby, Python, PHP, ve Groovy gibi dillerin ardındaki fikir, aslında Hızlı Uygulama Geliştirme (RAD) 'dir. Çerçeveler, Ruby on Rails, Django, CakePHP, ve Grails daha iyi RAD kolaylaştırmak için vardır. Dil kullanımı ve etkinleştirmek geliştiriciler kurulum ve az maliyet ve ilgili zaman çizelgesi diğer dillere veya kurulumları göre azalır ile geliştirmek kolaydır.

Doğru ya da yanlış mı? Tüm kişisel görüşüm ama sonunda projenin ihtiyaçları araç seti en uygun olan tanımlayacaktır. Uygulama düşük trafik vardır ve bunu geliştirdik ve birkaç ay içinde yaşamak istiyorsanız o zaman önce bahsedilen dil ve / veya çerçeve birini kullanmak için ideal olacaktır.

Ama C + +,. Net ve J2EE hakkında? Her şey için bir yer var. Bu mimar, proje, kurulum geliştirme ortamı için zaman ve enerji ile ilgili ön maliyetleri yüksek olan ve asıl gelişimini yapmak eğilimindedir. Fakat onlardan inşa dilleri ve çerçeveler yoğun trafik veya hesaplamaları karşılamak için ölçeklenebilirlik için daha uygundur.

Örnek olarak Facebook bak. Özgün site prototyped ve bir PHP uygulama olarak dağıtılan ve kullanıcı tabanı nispeten küçük oldu. Site bugün olarak biliyorum canavara dönüştü onlar gibi ön ucu için mevcut PHP komut dosyası kullanırken arka ucunda J2EE'yi uygulayarak kendi uygulama ölçekli.

J2EE geliştirme ve Python / PHP deneyimi olan birisi olarak avantaj ve dezavantajları çok belirgin bir set var. Ben genel erişime hazır bir kaç gün içinde PHP ile bir blog oluşturmak ama J2EE aynı proje çok daha uzun sürebilir.

Benim terminoloji affet ama Kurumsal dilleri (J2EE,. Net) yapılandırma ve dağıtım çabalarının önemli miktarda gerektirir. Ruby, PHP, Python ve yok, sadece Not Defteri'ni açın, kod yazmak ve doğru uzantısı ile kaydedin ve yüklemek için hazırsınız.

Bu yardımcı olur mu?

Programcı mutluluk, geliştirme süresi, kullanım kolaylığı, taşınabilirlik, ve çok daha fazla ben söz edemez

Aslında ... o right araçları verilmiştir, çok korkunç ve C + + geliştirmek için yavaş bir süreç değildir.

Wiki bu proje çalışır yazılı ve yukarı birkaç gün içinde (ve evet, C + +) ... Fena değil korkunç C + + dili için ;-) olduğunu

Bir göz atın:

Ben bu tür wiki oluşturmak için akşamları çalışmak için yavaş bir süreç değildir düşünüyorum: http://art-blog.no-ip.info/wikipp/en/page/main

Hayır, onun puanları geçerli değildir. O biri diğerinden daha iyi olduğunu, ancak akılda C + + 'ın sorunları ile dizayn edilmiştir sadece daha gelişmiş modern languages ​​konum, örneğin C # ve java almak değildir.

Eğer zorunda değilsiniz eğer çöp toplama gibi şeyler ile rahatsız için herhangi bir anlam ifade etmiyor. Ayrıca çeşitli web framework dil zaten, sen her yerde, diğer dillerde mevcut jantlar yeniden icat olacağını, diğer geliştiriciler tarafından kendileri için yazılmış, aksi takdirde çok sayıda bileşeni, kontrolleri, modülleri, ve birçok diğer parçaları, açık kaynak ya da var.

Ben her zaman C + + için kalbimde bir yere sahip olacak, ancak C + + daki daha iyi yazma siteleri önermek tür aptalca veya trol-layık.

(EDIT: Belki C + + sadece siz biliyorsunuz, ya da web için C + + ile kendi kendini yetiştirmiş bileşenleri bir şey var dil, ama öğrenmek için oldukça kolay web geliştirme için bir C + + soyundan dil öğrenme kapalı muhtemelen hala daha iyi olup olmadığını Eğer C + + / C) öğrendikten sonra

Onun noktaları web uygulamaları% 99 için geçerli DEĞİLDİR. Web uygulamaları daha iyi PHP, Python ve Ruby gibi diller ile elde edilir, her ikisi de hızlı yineleme ve dostu arayüzleri yarar. Eğer iyi ya da çok kullanılan bir hizmet geliştirmek için şanslı iseniz, biraz sorun o ölçekli mühendislik olacaktır.

Geçen php, Ruby ve Python tüm bu sayılmaz C yazılır, kontrol edildi mi?