Hangi web geliştirme dili, bir C programcısı için en iyisidir?

12 Cevap php

Question

Ben düzenli olarak a * n * x ortamında C (ANSI C89/ISO C90) olarak programlamak. Bana bir web geliştirme dili öğrenmek için faydalı olacak bir konumda şimdi duyuyorum. Özellikle, hangi bir dil öğrenmek için arıyorum:

  1. ... Bir C programcısı olarak benim arka patlatır.
  2. ... Stackoverflow.com gibi bir web-sitesinin interactiveness düzeyini üretebilir.

PHP hakkında çok iyi şeyler duydum. Sizin başka bir öneriniz var mı?

Notes

  1. Ben aşinayım diğer dilleri: Java, Perl, Tcsh ve Şema.
  2. Ben istemci tarafında şeyler yapma yeteneğine sahip bir web-geliştirme dili öğrenme ilgileniyorum belirtmeyi unutmuşum. Bu belirsiz ise özür dilerim.
  3. (Elbette, çok farklı bir konsept ile) stackoverflow.com üslup benzer bir web sitesi geliştirmek için dil bilgimi kullanmayı planlıyor.

12 Cevap

Zaten C, Perl ve Java daha sonra tüm dürüstlük içinde zaten PHP biliyorum, sadece henüz bilmiyoruz. Mantıklı? Belki de değil. Ama bu kez onunla oynamaya başlar.

Sen neden bir Web geliştirme dili ya da ne için olduğunu öğreniyoruz söyleme. Bu böyle tavsiyenin her türlü sağlanmasında önemli bilgi bulunuyor. Bu tür bilgilerin yokluğunda çeşitli nedenlerle PHP öneririm:

  • Bu Web-merkezli değil;
  • Bu son derece popüler. Sorunlarına cevap bulmak çok kolaydır;
  • Cal Henderson toplantıda yaptığı konuşmada belirttiği gibi "Why I Hate Django" (DjangoCon 2008 az) "PHP ciddi bir dildir". Bu güçler internet (Wikipedia, Flickr, Facebook ve diğer bir ben unutmak en iyi 20 sitelerin 4;
  • Perl biraz ayırıcı yazarak sistemi ve düzenli ifadeler Perl daha birinci sınıf var, ancak Perl için çok farklı değil. Ayrıca PHP, birçok benzerlikler olduğunu her şeye rağmen $ _ operatörü var ama değil;
  • Dinamik bir komut dosyası dili olarak, size bir değişim ve yararlı bir deneyim biraz yapmalıdır kesinlikle yazılan kalıp, çıkmak yardımcı olacak;
  • PHP destekleyen nesneler C programcısı için daha tanıdık hale, çoğu PHP bir usul şekilde yazılır (I PHP is not object-oriented bu görünüme abone) rağmen;
  • Bu kütüphaneler inanılmaz zengin bir set vardır;
  • Sadece Apache gerektiren bir sonucu olarak, hosting Java veya ASP.NET hosting karşılaştırıldığında olağanüstü ucuz, son derece hafiftir ve; ve
  • Sadece metin dosyası kaydetme ve oldukça kurmak ve dağıtım aşamaları, ayrı derleme olan daha ne olacağını görmek için tarayıcınızda tekar tıklayarak ilgili tatmin edici bir şey var.

PHP'nin sözdizimi Ancak, (Ben biliyorum en azından, ki değil) işaretçiler ve belleği yönetmek değil, kendi farklılıkları vardır C'ye oldukça benzer. O da çok kolaydır.

PHP bir sunucu tarafı dilidir, böylece tarayıcılar onunla ilgisi yok. Hepsi aynı HTML / CSS bilgi almak ve farklı oldukları orada olacağım.

Bu web sitesi gibi interactiveness düzeyine sahip olmak istiyorsanız, bir Javascript bakmak (ve onun çerçeveler (yani almalıdır:. JQuery) Bu dil, web geliştirme istemci tarafında sorumludur.

Ben daha önce belirtilen tüm seçenekleri gibi. Sadece zaten PERL biliyorsanız, o zaman aklınıza gelebilecek tüm Web Siteleri üretmek için kullanabilirsiniz eklemek istiyorum.

Burada bir sürü insan, PHP hakkında bir şeyler söylüyor. NET, java, ne olursa olsun.

Ama ben yeni bir tartışma yapmak için gidiyorum:

Web için, sunucu tarafında hızlı sizin kriterlerinize (SO.COM ve interaktivite) düşünün, özellikle önemsiz hale gelmektedir. Sen 4 çekirdek teknolojileri öğrenmek istiyorum. Eğer bunları bilmek ya da çalışmanın olmadan onları anlamaya düşünüyorsanız, muhtemelen yanılıyorsunuz. Standartları çok uzun süre geliştiğini ve sadece ezbere öğrenmeye çalışın eğer "işler nasıl yapılması gerektiğini" bir bulutlu resim elde etmek için yol çok kolay.

1) Modern, STANDART (x) HTML. Neler olduğunu bilmek ve HTML / XHTML 4 ne DEĞİLDİR. Bunu bildiğinizi mi düşünüyorsunuz? Eğer bir blok düzeyi elemanı ve bir satır içi elemanı arasındaki farkı biliyor musunuz? Hangi diğer unsurlar izin hangi unsurlar biliyor musunuz?

2) CSS 2.1 veya daha büyük. Ben O'Reilly ": Definitive Guide CSS öneriyor". Içte ve dışta CSS seçicileri biliyorum. Sen Teknoloji # 4 için onlara ihtiyacımız olacak. Eğer sadece HTML etiketleri ton ile yapabileceğini düşündüm CSS, gerçekleştirilebilir ne de hayrete olacak.

3) Javascript. Hayır, şaka yapmıyorum. Artık işe yaramayan bir şaka dil. Bu çalışıyor. Bu (Google Maps, SO.COM) etrafında, en duyarlı en interaktif ve ilginç siteler çalışıyor buydu.

4) JQuery. Ben bile konuşmak için kendimi mümkün değil bulmak o kadar şanlı bulunuyor. Belki Commenters o şanlı aura ile daha az üstesinden olacak ve adını nefes mümkün olacak.

Gerçekten etkileyici şeyler bütün, IMO, günümüzde istemci tarafında olduğundan, sunucu tarafı dil kadar anlamına gelmez. Ben seviyorum. NET'in LINQ sözdizimi. Ben ilk başta şüphe, ama ben bu gün galon tarafından Kool-Aid içiyorum. Ama PHP veya RoR veya Java veya ne olursa olsun, ince seçerseniz. Ama bu ikincil bir karar olmalıdır. Yukarıda ilk 4 teknolojileri öğrenin - olursa olsun sunucuda ne yapıyoruz onları gerekir.

Sen dili ve platformu hem de dikkate almak gerekir. C # ASP.NET MVC benim tavsiye olacaktır. Sözdizimi çok tanıdık gelecektir. MVC jQuery JavaScript için iyi bir çapraz tarayıcı desteği vererek, pişmiş desteği ile iyi bir kalıptır. MVC ayrıca oluşturulan oluyor HTML üzerinde çok daha fazla kontrol sağlar. Bu, aslında, SO dayanan bir platformdur.

Bu yapmak istediğiniz ne karmaşıklığına bağlıdır.

PHP, as mentioned by almost every poster, is just great for server side web development, the simple stuff is simple the complex is handled reasonably well. PHP syntax is C like and logically consistant -- you will hardly ever need to refer to the syntax section of the excellent documentation.

However php just serves up pages, you will need to learn HTML, CSS and probably some Javascript to put in those pages.

I personally made the mistake of thinking Javascript was just another basic scripting language and missed out on the power, elegance and possibilties that JavaScript can bring for several years. Almost all the interactive good stuff you see in sites like gmail and stackoverflow is down to Javascript.

Aynı şekilde bu sitelerde hemen hemen tüm "cool" görsel sunum aşağı CSS etmektir.

For extremly complex back end stuff (especially if you need to keep state between pages) you may be better off with Java and assorted frameworks (Tomcat or Jetty, plus Spring with Freemarker templates, and IBATIS is my personal winning combo!). The problem here is there is a steep learning curve to this and you only want to go there if you really need the power of a Java back end.

Eğer, istemci tarafında çalışmak istiyorsanız o zaman Javascript toplayıp bir zorunluluktur. Biliyorsunuz tüm büyük tarayıcılar tarafından desteklenen ve (jQuery, dojo, ASP.net) mevcuttur zengin çerçeveler çeşitli söz konusudur. Bazıları hala Java uygulamaları kullanıyorsanız, ancak genel uygulamalar oldukça can çekişmekte.

Eğer PHP yerleşmek varsa, aklı bir iyilik yapmak ve iyi bir çerçeve kullanın. Ben çok CakePHP'ye tavsiye, ama herhangi bir kutsal savaşları başlatmak istemiyorum.

Gerçi Java deneyimi söz - neden geçerli değildir? Ya da, bir C programcısı olarak, ne kadar C # ve. NET hakkında?

Dünya sizin yumuşakça, arkadaşım.

Perl ve C kökenli PHP kolay gelip gidiyor düşünürdüm. Çerçeveler ve şeyler bu tür hakkında bilgi.

Oldukça sıkı bir C programcısı yaşıyorum. Ben dar bir kapsamı var ya da sadece dil benim iş talepleri diğer dilleri, korku onun değil. Ben ne çoğunu geri vb sanallaştırma, cloud computing, için son otomasyonu

Bazen, her şeyi birlikte kravat birlikte web ön uç çeşit koymak zorunda. Bunu yaparken, gerçekten PHP kullanmak ister. Aslında, güçlü bir arka plan C, PHP ile çoğu insan çok üretken ve yaratıcı olabilir bulmak.

Bu PHP gibi neden olduğunu ve neden C iyi bilen PHP gelen serin:

PHP kitaplıkları çok zengin bir dizi ile geliyor olsa PHP is very easy to extend., sık sık bunu doğal olarak diğer bazı kütüphane ile çalışmaya ihtiyaç olduğunu (en azından ben) bulabilirsiniz. Bu iyi bir örnek libvirt olurdu. Aksine kabuk çatal bir demet arama ve kazıma yerine, sadece PHP fonksiyonları içine libvirt gereken işlevleri açabilirsiniz.

Diğerleri söylediler PHP Doesn't push OO concepts on you, PHP bir nesne yönelimli bir dil yok oldukça sıra. Ancak, sözdizimi sana değil push OO yaklaşım yok. Diğer bir deyişle, sizin kod procedurally bir OO dil kullanarak birisi gibi görünmüyor. Bu C gibi oldukça fazla okuyacak

PHP explains itself sen, php.net üzerinde geniş belgelerinde bir işlev başvurusu ve örnek bulmak PHP kaynak kapmak ve kendiniz için bakmak mümkün değil. Zend çekirdek oldukça şifreli olduğunu, ancak uzantıları okumak zor değildir.

Eğer bir çöp toplayıcısı ile bir dinamik yazdığınız dili alışmak kadar bir emniyet kemeri olmadan sürüş konum gibi Kısacası, .. hissedeceksiniz. Ancak, hızlı bir şekilde almak ve verimlilik ile memnun hissediyorum düşünüyorum.

İyi bir C programcısı iseniz, neden sadece C kod devam? Orada farklı bir programlama dili kullanmak için geçerli nedenleri vardır, ancak web için kodlama olacak sırf bunlardan biri değildir. Web geliştirme için C kullanmak için iki popüler yolu vardır:

  • Veri ortamında ve komut satırına geçirilen (F) CGI,
  • Kendi mini-websunucu yazın o port 80 veya bazı yüksek liman ve kullanım mod_proxy veya nginx ya görüşmeler

Bu zamana kadar, ben C # tavsiye ederim. Bunun OOP şaşırtıcı olduğunu ve kolayca iyi Design Patterns çalışabilirsiniz. Bu OOP olmak için sıfırdan inşa edilmiştir. Ayrıca {} dildir.