Web için bir yüksek seviyeli dil var mı?

19 Cevap php

Preamble

Diçindeamik web siteleri oluşturmak içiçinde, en az dört dil master var:

  • Web sayfalarının yapısı içiçinde HTML
  • Düzeni ve tasarım içiçinde CSS
  • Etkileşim içiçinde JavaScript
  • Iş kuralları veya diçindeamik veri güdümlü içiçinde bir dil

Buna ek olarak, oturumlar ve önbelleğe alma içiçinde kalıcı depolama, Memcache içiçinde SQL, many, farklı içerik yönetim sistemleri içiçinde API'leri var. Ilgiçindeç olması içiçinde biz de, bir web uygulaması içindeşa OpenID, Facebook, Twitter, OpenSocial ile etkileşim düşünmelisiçindeiz.

Sonuçta, bu mutlak bir karmaşa!

Dikkate iki hedefi alırsak:

  • Çocuklar içiçinde web geliştirme Öğretim
  • Bir takım olarak üretken kalmak

Question

Ne üst düzey sistemler unify HTML + CSS + JavaScript + (Insert High Level Language here, PHP tercih) olduğunu var?


Background

  1. Ben BROADVISION, Özerklik, Kurumsal Java ve Oracle gibi teknolojiler ile proje kurşun ve geliştirici olarak deneyim 15 + yıl yazılım mühendisi değilim.

Son yıllarda, ben CakePHP gibi Drupal veya PHP çerçeveler kullanarak, gelişmekte olan topluluk siteleri odaklanmıştır. I like web geliştirme ve ilgili teknolojiler arasındaki empedans uyumsuzluğu tadını çıkarın. Hala gelmek kaçınılmaz sonuç there must be a better way.

  1. Ben iki oğlu (13 ve 9) babası ve ben onları programcılar olmak istemiyveyaum ederken ben oyun makiçindeeleri daha fazla olarak bilgisayarları anlamak içiçinde onları istiyveyaum. Ben kendileriçindei ifade web geliştirme ile biraz tamircilik onları motive etmek istiyveyaum.

Ben onlara bit ve parçaları göstermek zaman onları onları bir Pazar günü öğleden sonra bir saat ya da iki "ilgiçindeç" sonuçları oluşturmak içiçinde olanak sağlayan bir araç kümesi olması içiçinde, ben isterim.

19 Cevap

"Links ... Bağlantılar Tüm üç katmanda için tek bir dil sağlayarak empedans uyumsuzluğu sorunu kolaylaştırır web programlama kolaylaştırmak için tasarlanmış yeni bir programlama dilidir sistemi, her kademe için kod üretir;. Örneğin, çeviri sunucu için bir bayt koduna ve bazıları veritabanı için SQL içine tarayıcı için Javascript içine bazı kod. "

Bir araştırma projesi değil, bir üretim sistemi beri ilk başta ben, bu yazı için gidiş değildi; ama söyleyerek tüm bu cevaplar counterexample için yalvardı "o kadar, öyle uğraşmak".

GWT Javascript üretmek için Java yazmanızı sağlayarak, yüksek düzeyde bir araç olma yolunda someway gider.

Web programlama bir doğal multi-disiplin sanatıdır.

Her ayrı hedefleri, uyarılar, tuzaklar ve güçlü çünkü bunun başlıca nedeni kaygıları ayrılığı olduğunu ... HTML ve CSS ve JavaScript vb, SQL, tek bir dilde birlikte püre olmadığını nedenidir.

Aynı kaynak dosyalarında birlikte karışık SQL, CSS, JavaScript ve PHP kodu olan bir site hata ayıklamak için çalışıyor hayal edebiliyor musunuz? Zaten bunu yapmanın talihsizlik olmuş olabilir. Ne yazık ki, orada bu gibi yazılı sitelerin binlerce kelimenin tam anlamıyla, ve hata ayıklama veya sunum, veri ve yapısı gibi dağınık amalgamations eklemek için çalışırken tam bir kabus.

All in all, an utter mess! How is one supposed to teach web development to kids?

Ben en önemli şey programlama temellerini öğretmek ve onlara sopa yapım olduğunu düşünüyorum. Vb değişkenler, mantık, pointers, bellek yönetimi, algoritmalar, veri yapıları,

Eğer programlama temellerini varsa, bu, multipe dilde çalışma yenilerini almak ve süreleri ile değiştirmek kolay kolay. Bu şey gibi sürekli gelişen ve web programlama gibi trend tabanlı için paha biçilmez bir beceridir.

Benim düşünceme göre programlamaya yeni insanlar, örneğin C gibi düşük seviyeli diller, başlanmalıdır. İnsanlar programlama içsel, temel kavramları öğretilmelidir edilmeli ve hatta PHP veya Python gibi yüksek bir seviyede dil vizyonda önce perde arkasında ne olup bittiğini bilgi sahibi olmalıdır.

Ben öğretim programlama doğru bu tutum daha iyi web geliştiricileri damızlık yanı sıra faiz veya zekaya sahip değilsiniz insanları ayıklamak olacak bir giriş bariyer sağlama etkisi olacağını düşünüyorum. Ben tutum bu tür sonucu iyi geliştiriciler, daha iyi yazılım, ve sonuçta daha güçlü dilleri ve araçları olacağını düşünüyorum.

Nasıl bir çocuk web gelişimini öğretmek gerekiyordu?

Web geliştirme çocuklar bir ordu bizi onlardan uzaklaşmış ve iyi ücret almak almak için daha da zor oluyor şimdi ise hemen herkes bir programcı kendini aramaları beri bizim meslek bozulmuş budur.

Birçok dil ve ana teknolojileri? Bu iyi bir şey. Geliştiriciler saflarına katılmak için bazı giriş engeli orada olalım.

EKLENDİ: yorumlarınıza izleyerek Kendimi tamamen açıkça değil görebilirsiniz. Ben yaşı hakkında hiçbir şey, 10, 30, 50 veya 80 olması demek. Tüm tutum hakkında. Bir kişi anlar ve bazı tasarımcı veya CMS bir fare ile hareket kontrolleri daha mesleğe çok daha fazla olduğu gerçeğini kabul edip. Profesyonel bir yazılım geliştirici atölye ait CS, algoritmalar, veri yapıları, veri tabanları, mimarlık, genişletilebilirlik, bakım, performans, ölçeklenebilirlik, kullanılabilirlik, pazarlama ve daha temelleri dahil, elde edilecek bilgi bir çok şey var. Ben bir kişi olanların cahil ve kendilerini eğitmek ve daha fazla yeterli olmak için çaba için bir hamle yapmaz, onlar mesleğe ait değil. Ve bu görüş önyargılı olsun.

Ben alırsınız düşünüyorum yakın. NET. Orada birçok dil için birçok çerçeveler vardır, ama biliyorum ki hiçbiri kesinlikle her şeyi idare. Bunun yanı sıra programlama parkta bir yürüyüş olduğunu çocukları ikna etmeye teşebbüs etmemelidir. Bu çalışma ve tutma-up bir sürü gerektirir, zor bir kariyer var. Biz burada bugün teknolojileri ile çalışmak, ve yarın gitti.

Bu konuda düşünüyorsanız, programlama herhangi marangozluk daha farklı, ya da havacılık değildir. Seçtiğin sadece ilgili herhangi bir meslek size ne de daha iyi olması için farklı bir çok şey öğrenmek gerekir.

Nasıl çocuklar için web geliştirme öğretmek gerekiyor? Wow, bu dikenli biri. Nasıl bir onlara ameliyat, ya da fikri mülkiyet hukuku, ya da inşaat mühendisliği öğretim hakkında gidiyor? Ya da bu konuda oto tamircileri, ya da sıhhi tesisat, ya da genel müteahhitlik için?

Bir Susam Sokağı bant haşhaş düşündünüz mü?

Eğer mesleğini değersizleştirmek zaman Elmo sevmez.

Yazılım sektöründe kalitesiz ürünler yaratmak ve aynı zamanda gerçek bir mühendislik disiplini haline gelen bu mesleği mesafe şey yapıyor ama niteliksiz bireylerden muzdarip. Bu fatura almak için bir şey değildir. Tanrı aşkına, herkes yazılım geliştirme 'öğretmek' yok. Büyük yazılım yapmak, sadece geçmiş ve mevcut teknolojilerin bilgi deneyim ve zenginlik yıllık bir sonucu olarak ortaya çıkıyor ki onlara açıklar. Yapabileceğiniz en kötü onlarla çalışan diğerleri için iş yaratmak başka bir yarı-pişmiş geliştirici tanıtmak olduğunu. Eğitim almak için söyle. Ben bu muhtemelen duymak istediği cevabı olmadığını biliyorum, ama ben bu okumak istedim.

Ben web geliştirme ile sorun aslında bugün kullanılan ne için tasarlanmış olmadığını düşünüyorum. Biz HTML + CSS + JavaScript artı ne serverside teknoloji bunu üreten bir tarayıcı içinde zengin istemci uygulamaları oluşturmak. Evet, çalışır, ama özellikle bu can sıkıcı tarayıcı uyumsuzluk ile, bir ağrı var. Flash ve Silverlight varlığı bu kanıtlıyor. Onlar hala tarayıcı içinde tek teknoloji ile uygulama yapalım. Içerik için bir eklenti ihtiyacı olumsuzlukları olsa da açıktır.

Dilleri üzüntülerin az vardır. Bu onlar karmaşık çalışmak problem alanı bulunuyor. A) sınırları açık hale getirir ve b) dilleri etki alanı için optimize edilebilir, çünkü farklı dilleri kullanarak aslında işler daha kolay yönetilebilir hale getirir.

Programming (PHP/JS) and document format (HTML/CSS) are 2 different things. Learning to program in PHP and JS at the same time will also be difficult.

Sen başında istemci üzerinde HTML ve JS odaklanmalıdır. Daha sonra da onları bir program javascript on the server izin verebilir. Bu, tek bir programlama dili yapmak ve başlamak için CSS üzerinde HTML üzerinde durulacak.

Onlar JS ve HTML temellerini öğrendim, onlara daha yaygın olarak kullanılan sunucu tarafı programlama (PHP, Ruby gibi, vb) dil ve CSS öğreteceğiz.

Django onun temizliğine aracılığıyla şekilde size katılabilir. Bu verimlilik etrafında odaklanmıştır. Öğretim başka bir dil / framework daha kolay değil, ama bunu bu şekilde bakmak: Bu aracı öğretti zaman, öğrenciler de o should olmak ne kadar kolay kendi bilgi ve donanıma sahiptir. Onlar Django öğrendikten sonra Java servelets veya benzer kabuslar asla kabul etmeyecektir.

Opa Çıkış: http://opalang.org/

Bu bir yukarı ve gelen web geliştirme teknolojisidir. Oldukça umut verici görünüyor. Ben son birkaç yıldır web geliştirme bir sürü yaptım ve ben yukarı ve yeni bir çerçeve / dil / teknoloji birincil yolu web siteleri olacak ~ 5-10 yıl içinde geliştirilen bir tahmin yapmak olsaydı bunu söyleyebilirim Opa olacaktır.

Dokümantasyon büyük, toplum büyük, proje üzerinde çalışan ekibin sorulan sorulara öğreticiler ve yanıt mükemmel. Genel olarak onlar eşsiz gibi görünüyor bu yeni çerçeve geliştirilmesi konusunda ayrıntılı bir dikkat var gibi.

Farklı amaçlar için farklı dil gerekir. Çoğu web uygulamaları orada olacak biraz aslında, yani farklı dilleri ve çözümler gerekir.

Amaç tek bir dil üzerinde birleştirmek için ise, bunu yapabilirsiniz. Sen sunucuda Javascript kullanın ve ardından document.createElement() kullanarak sayfaları oluşturmak ve styles mülkiyet onlara doğrudan stilleri uygulayabilirsiniz. Ve sunucuda, Javascript dosyaları doğrudan veri depolamak.

Açıkçası bu işe o kadar iyi olmaz. HTML mükemmel değil, ama o kadar her yerde bir nedeni var - bu basit ve iyi ne yapar. CSS kıvrık ve çok basit hem de, ama tasarım ifade geçersiz kılınamaz kurallarını tanımlama yatan fikir sestir. Ve SQL zamanlarda anlamak için bir ağrı olabilir, ancak veritabanı sorguları bu şekilde ifade dışavurumudur ve aslında oldukça iyi çalışıyor.

Ben var ya da bir mimari olmalıdır demiyorum, söyleniyor. Olmamalıdır. Her proje kendi gereksinimleri doğrultusunda bir mimari kullanmalısınız.

Bir sonraki proje üzerinde kolaylaştırmak için deneyin: Eğer gerçekten bir veritabanı gerekiyor? Eğer görünüm katmanları basitleştirmek için birleştirmek, ya GWT, uygulamacıklara, Flash veya. NET gibi bir şey kullanıyor musun? Eğer gerçekten (CSS, HTML ve Javascript karmaşıklığı tanıtır olan) bir tarayıcıda içerik sunmak için, ya da sadece bir uygulama yazabilirsiniz ihtiyacınız var mı?

Ben sizin yaklaşım yeniden düşünülmesi gerekebilir düşünüyorum. Bu benim düşüncem ne için bu almak, ama ben bu siparişi daha iyi çalışabilir düşünürdüm.

Top Priorities: (özel sipariş)

  • Problem çözme becerilerini geliştirmek
  • Bir takım olarak üretken olun

Next:

  • Temel Programlama becerileri (PHP, Python, vb)

Birey olarak ve bir ekip olarak sorunları çözmek için nasıl öğrendikten sonra onlar gibi özellikleriyle üzerine taşıyabilirsiniz:

  • İstemci / Sunucu modeli
  • Biçimlendirme (HTML, XHTML, XML, vb)
  • Styling (CSS)
  • İstemci tarafı komut dosyası (JavaScript / jQuery)
  • Sunucu tarafı komut dosyası (PHP, Ruby, vb)

Parça yerine yarasa kapalı derin ucuna atlayarak dahil parça ne kendi bilginizi geliştirin - hızla bunalmış olacak.

Bu noktada I / O dosya gibi şeyler ve veritabanlarını tanıtmak başlayabilirsiniz.

Bu onlara oldukça kapsamlı bir beceri seti verecektir. Buradan gerçekten öğrenmeye başlayabilirsiniz.

Buna ek olarak, bir kalıcı depolama, oturumları ve önbelleğe alma için Memcache, ilginç bir şey inşa etmek içerik yönetim sistemleri, OpenID, Facebook, Twitter, OpenSocial vb API'ler için SQL ile uğraşmak zorunda kalabilirsiniz.

Bunlar kendi başına bir bütün konular, bir yığın tüm bunları ısırmak olamaz. 0'dan bu insanları alıyorsun özellikle eğer. Size ilginç bir şey inşa etmeden önce size sıradan bir şey inşa etmek için öğrenmek zorunda.

HTML5 muhtemelen yerine Flash veya Silverlight daha aradığınız ne ven daha olacak ama destek inşa ediyor olsa da ... oldukça henüz burada değil.

Bebek adımları, Olav - bu olsaydı The Matrix bir çekimde tüm bu bilgileri indirmek olabilir ama biz henüz orada değiliz ... ;-)

Şu an için, ve yakın gelecekte, web geliştirme birçok farklı teknolojiler ilginç bir kullanıcı deneyimi sunmak için birlikte çalışma sinerji olduğunu.

Evet, bu benim 2 sent

Web geliştirme çok disiplinli doğası bir takım ortamında, especially çalışmak için bir sevinç yapar şeylerden biridir.

Iyi bir ekip olarak çalışmak için, doğal olarak UI / grafik insanlardan DBA ve sys yöneticileri, aşağı uzmanlık bir dizi ile bir grup insan bir araya geldik. Hatta grup (örneğin arka uç programcılar) tek bir katman içinde her kişi, genellikle, farklı bir dizi uzmanlaşmış örneğin bazı insanlar verileri doğru, yukarı doğru UI diğerleri daha fazla deneyime aşağı olabilir.

Ben bazı katman uygulama üzerinde çalışan 10 java programcıları bir odada çalışmaya göre, her gün bu çeşitli alacaktı.

Master için pek çok teknoloji iyi bir şey değil. Biz ne olursa olsun elitist ne demek, web için bir Visual Basic gerekir.

Sadece dinamik web siteleri yazmak için onlara öğretmek istiyorsanız, w3schools.com üzerinde HTML öğretici geçiyor bunları ayarlamak ve onlar bitti kez, kendinizi onlar içeren ve PHP ile devam ayarlayabilirsiniz iyi bir seyir stil bulmak. Bu onları kalkmak ve bir hobi olarak çalışan ve daha fazla yapmak istiyorsanız, onlar CSS ve JavaScript gibi, birlikte ekstra bilgi ekleme başlayabilirsiniz edeceğiz.

, Ruby on Rails uzunca bir yol tüm bu birleştirici doğru gidiyor, ama (orada CSS eskimiş yapmak RoR için birkaç çerçeveler muhtemelen, ama sonra başka bir işaretleme dili, sanırım olsa) CSS için soğuk dışarı bırakır (sizin için Javascript bir sürü, ve tüm DB kod yazmak gerçi) ve hala Javascript gerekir.

Öte yandan, çocuklarınız hakkında: programlama programcılar içindir. Bir kaç saat içinde birlikte bir şeyler koymak için bir Pazar günü öğleden sonra, bir çerçeve bilmeniz gerekir, ve bazı eklentileri satın almak ve her şeyi almak ve çok iş olmadan hareket olacaktır. Onlar şablonları satmak Drupal veya Joomla gibi bir şey şeyler her türlü yapmak ve eklentileri (Joomla için size yüzlerce paketlerini satın alabilirsiniz). Bu başarısız olduğunda, çocuklar muhtemelen Odesk gitmek ve çerçevesi üzerinde yapılan bir şey almak için 100 $ damla nasıl bilmeli. Eğer bir programcı olmak istiyorsanız programlama Öğrenme iyidir. Aksi takdirde, iyi programcılar işe ya da iyi predone bileşenleri satın, ve bunu yapmak için nakit olması gerekenleri öğrenmek için en iyisidir.

Çocuklar hakkında son nokta: Onları video oyunları oynayalım. Bu da onların gelecekte bilgisayar tarafında deposunda tutar ne olursa olsun için alabileceğiniz en iyi eğitimdir. Video oyunları, oyun, araştırmak, izin ve bilgisayar ile rahatlayın. HTML öğrenmeye, CSS, Javascript ve bazı uygulama yığın pasta, aldığım gibi.

angularjs bir seçenek olabilir. o tek sayfa-uygulamalar ve nodejs-yığın üzerinde çalışır inteded ve bazı şablon-javascript "büyü" does.

example (template/code): It binds(via auto-generated-client-side-js) the value from the input-field to the the heading(h1). If you type something to the input field, the text in the heading gets updated. And you don't have to write the frontend-js.

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>