Domanda

Preambolo

Per costruire siti web dinamici, dobbiamo padroneggiare almeno quattro lingue:

  • HTML per la struttura delle pagine web
  • CSS per il layout e il design
  • JavaScript per l'interattività
  • Un linguaggio per le regole aziendali o dati dinamici

In aggiunta, c'è SQL per l'archiviazione persistente, Memcache per le sessioni e caching, API per molti i diversi sistemi di gestione dei contenuti. Dovremmo anche considerare l'interazione con OpenID, Facebook, Twitter, OpenSocial nella costruzione di un'applicazione web, per essere interessante.

Tutto sommato, è un disastro totale!

Se si prendono in considerazione due obiettivi:

  • L'insegnamento di sviluppo web per i bambini
  • in modo produttivo come una squadra

Domanda

Qual è il livello elevato esistono sistemi che unificano HTML + CSS + JavaScript + ( Inserisci High Level Language qui , PHP preferito)?


Sfondo

  1. Sono un ingegnere del software con oltre 15 anni di esperienza come responsabile del progetto e sviluppatore con tecnologie come Broadvision, Autonomia, Enterprise Java e Oracle.

Nel corso degli ultimi anni, mi sono concentrato sui siti web della comunità in via di sviluppo, utilizzando Drupal o framework PHP come CakePHP. I come di sviluppo web e godere del disadattamento di impedenza tra le tecnologie coinvolte. Ancora l'inevitabile conclusione è che vengo a ci deve essere un modo migliore .

  1. Io sono il padre di due figli (13 e 9), e mentre io non voglio che diventino programmatori vorrei loro di comprendere i computer come qualcosa di più macchine da gioco. Mi piace motivarli ad armeggiare un po 'con lo sviluppo del web di esprimersi.

Ogni volta che mostro loro pezzi e bocconi, mi piacerebbe per loro di avere un set di strumenti che permette loro di creare risultati "interessanti" in una o due ore in un pomeriggio di Domenica.

È stato utile?

Soluzione

" Link è un nuovo linguaggio di programmazione progettato per rendere più facile la programmazione web.. . Link facilita il problema di impedenza disallineamento fornendo un'unica lingua per tutti e tre i livelli il sistema genera codice per ogni livello;., per esempio, la traduzione del codice in javascript per il browser, un po 'in un bytecode per il server, e un po' in SQL per il database ".

In un primo momento non avevo intenzione di pubblicare questo articolo, in quanto si tratta di un progetto di ricerca, non un sistema di produzione; ma tutte queste risposte dicendo "che è così, trattare con essa" pregò per un controesempio.

Altri suggerimenti

GWT va in qualche modo verso l'essere un kit di strumenti di alto livello, che ti permette di scrivere Java per la produzione di Javascript.

di programmazione Web è un mestiere intrinsecamente multidisciplinare.

La ragione principale di questo è causa di separazione delle preoccupazioni ... la ragione per cui HTML e CSS e JavaScript, SQL, ecc, non sono schiacciate insieme in una lingua è perché ognuno ha obiettivi separati, avvertimenti, insidie, e punti di forza.

Si può immaginare cercando di eseguire il debug di un sito che ha SQL, CSS, Javascript e codice PHP mescolati insieme nelle stesse file di origine? Forse avete già avuto la sfortuna di farlo. Purtroppo, ci sono letteralmente migliaia di siti scritti in questo modo, ed è un incubo cercando di eseguire il debug o aggiungere a tali accorpamenti disordinati di presentazione, i dati, e la struttura.

  

Tutto sommato, un disastro totale! Come è uno   supposto per insegnare sviluppo web per   ragazzi?

Credo che la cosa più importante è insegnare i fondamenti della programmazione e rendendoli bastone. Le variabili, logica, puntatori , la gestione della memoria, algoritmi, strutture dati, ecc.

Quando si hanno i fondamenti della programmazione, è facile lavorare in lingue multipe, raccogliere nuovi, e facile da cambiare con i tempi. Questa è un'abilità inestimabile per qualcosa come in continua evoluzione e la tendenza a base di programmazione web.

A mio parere chi ancora non conosce la programmazione deve essere iniziato con lingue di livello inferiore, come per esempio C. La gente dovrebbe essere insegnato le intrinseche, concetti fondamentali della programmazione e dovrebbero acquisire la conoscenza di quello che sta succedendo dietro le quinte, prima ancora di essere mostrato un linguaggio di alto livello come PHP o Python.

Credo che questo atteggiamento verso la programmazione didattico avrà l'effetto di allevamento migliori sviluppatori web, oltre a fornire una barriera di ingresso che estirpare le persone che non hanno l'interesse o intelligenza. Penso che il risultato di questo tipo di atteggiamento sarà sviluppatori migliori, un software migliore, e le lingue in ultima analisi, più potenti e strumenti.

  

Come è un dovuto insegnare sviluppo web per i bambini?

Un esercito di bambini in sviluppo web è quello che ha degradato la nostra professione in quanto ora più o meno tutti si definisce un programmatore mentre è sempre più difficile per noi per ottenere le distanze da loro e ottenere paga decente.

Molti linguaggi e tecnologie a padroneggiare? È una buona cosa. Ci sia una certa barriera all'ingresso per entrare nelle fila di sviluppatori.

AGGIUNTO: Seguendo i commenti che posso vedere non ho fatto io stesso del tutto chiaro. Non dico niente circa l'età, che si tratti di 10, 30, 50 o 80. E 'tutta una questione di atteggiamento. Se una persona comprende e accetta il fatto che c'è molto di più alla professione di trasferirsi controlli con un mouse in qualche progettista o CMS. C'è un sacco di conoscenze da guadagnare, tra cui basi di CS, algoritmi, strutture dati, banche dati, l'architettura, l'estensibilità, la manutenzione, le prestazioni, la scalabilità, usabilità, marketing e molto altro ancora che appartengono alla bottega di uno sviluppatore di software professionale. Ho una persona è ignorante di quelli e non fa una mossa per educare se stessi e si sforzano di diventare sempre più abile, non appartengono alla professione. E lasciate che questo parere essere di parte.

Il più vicino penso che otterrete è .NET. Ci sono molti quadri per molte lingue, ma nessuno che io sappia che gestire assolutamente tutto. Accanto a che non si deve tentare di convincere i bambini che la programmazione è una passeggiata nel parco. Si tratta di una carriera difficile, che richiede un sacco di studio e conservazione-up. Lavoriamo con tecnologie che sono qui oggi, e domani.

Se ci pensate, la programmazione non è affatto diverso da carpenteria, o l'aeronautica. Quasi qualsiasi professione si è scelto richiederà di imparare un sacco di cose diverse per essere meglio in quello che fai.

Come si fa a insegnare a sviluppo web per i bambini? Wow, questo è uno spinoso. Come si fa a insegnare loro un intervento chirurgico, o diritto di proprietà intellettuale o di ingegneria civile? O per quella meccanica importa auto, o idraulico, o general contracting?

Hai pensato a popping in un nastro Sesame Street?

Elmo non piace quando si banalizzare la sua professione.

Industria del software è affetto da individui incompetenti non fare nulla ma la creazione di prodotti di scarsa qualità e, allo stesso tempo le distanze da questa professione diventare una vera e propria disciplina di ingegneria. Questo non è qualcosa per ottenere la certificazione su. Per l'amor di Dio, non 'insegnare' a nessuno di sviluppo del software. Spiegare loro che, per rendere grande software esce solo come risultato di anni di esperienza e la ricchezza della conoscenza delle tecnologie passate e attuali. La cosa peggiore che puoi fare è introdurre ancora un altro sviluppatore cotto a metà la creazione di lavoro per gli altri che lavorano con loro. Dite loro di ottenere istruiti. So che questa non è la risposta che probabilmente voleva sentire, ma ho voluto questo da leggere.

Credo che il problema con lo sviluppo del web è che non è stato originariamente progettato per che cosa serve oggi. Costruiamo applicazioni rich client all'interno di un browser con HTML + CSS + JavaScript più qualunque tecnologia lato server genera. Sì, funziona, ma è un dolore, in particolare con quelle incompatibilità del browser fastidiosi. L'esistenza di Flash e Silverlight dimostra. Essi consentono di costruire la vostra applicazione con una sola tecnologia, ancora all'interno del browser. Gli svantaggi di aver bisogno di un plugin per il vostro contenuto è ovvio però.

Le lingue sono l'ultima delle vostre preoccupazioni. E 'il dominio del problema che lavorano con questo è complessa. Utilizzando diverse lingue rende di fatto le cose più gestibile perché a) Rende i confini esplicito e b) le lingue può essere ottimizzata per il dominio.

Programmazione (PHP / JS) e formato di documento (HTML / CSS) sono 2 cose diverse. Imparare a programmare in PHP e JS, allo stesso tempo sarà anche difficile.

Si dovrebbe concentrarsi su HTML e JS sul client all'avvio. Si potrebbe poi lasciarli programmare javascript sul server pure. In questo modo sarà solo un linguaggio di programmazione, e concentrarsi su HTML su CSS per cominciare.

Una volta che hanno imparato le basi di JS e HTML, è possibile insegnare loro un server linguaggio di programmazione lato più diffuso (come PHP, Ruby, ecc) e CSS.

Django si può prendere un pezzo di strada attraverso la sua pulizia. Essa si concentra intorno produttività. L'insegnamento non è più facile rispetto a qualsiasi altra lingua / quadro, ma guarda in questo modo: quando insegnato questo strumento, gli studenti sono ben attrezzate nella loro conoscenza di come sia facile dovrebbe essere. Essi non accetteranno mai servelets Java o incubi simili dopo aver appreso Django.

Partenza Opa: http://opalang.org/

Si tratta di una tecnologia di sviluppo web e venire. Sembra abbastanza promettente. Ho fatto un sacco di sviluppo web nel corso degli ultimi due anni e se dovessi fare una previsione, che e nuovo quadro / lingua / la tecnologia sta per essere il modo principale siti web sono sviluppati in ~ 5-10 anni direi che è sarà Opa.

La documentazione è grande, la comunità è grande, i tutorial e le capacità di risposta ai quesiti del team di lavoro è eccellente. Nel complesso sembra che abbiano un'attenzione al dettaglio per quanto riguarda lo sviluppo di questo nuovo quadro che sembra essere senza precedenti.

Molte tecnologie di master non è una buona cosa. Abbiamo bisogno di un Visual Basic per il web, non importa quello che dicono gli elitisti.

È necessario lingue diverse per scopi diversi. Nella maggior parte delle applicazioni web c'è in realtà un bel po 'in corso, quindi è necessario le diverse lingue e soluzioni.

Se l'obiettivo è quello di unificare in una sola lingua, si può fare questo. È possibile utilizzare JavaScript sul server, e poi costruire le pagine utilizzando document.createElement() e applicare stili ad esse direttamente alla struttura styles. E sul server, memorizzare i dati direttamente in file JavaScript.

Ovviamente questo non avrebbe funzionato bene. HTML non è perfetto, ma c'è un motivo per cui è così ubiquitous-- fa quello che fa in modo semplice e bene. CSS è sia contorto e troppo semplicistico, ma l'idea di fondo di definire regole ignorabile per esprimere il tuo disegno è il suono. E SQL può essere un dolore per capire a volte, ma che esprimono le query di database in questo modo è espressivo e in realtà funziona abbastanza bene.

Detto questo, non sto dicendo che non v'è o dovrebbe essere un'architettura. Non ci dovrebbe essere. Ogni progetto deve utilizzare un'architettura in linea con le sue esigenze.

Sul vostro prossimo progetto tenta di semplificare: non si ha realmente bisogno di un database? Si può combinare i livelli di visualizzazione per semplificare, sia utilizzando qualcosa come GWT, applet, Flash o .NET? Avete veramente bisogno di servire il vostro contenuto in un browser (che introduce CSS, HTML e Javascript complessità), o si può semplicemente scrivere un'applicazione?

Credo che il tuo approccio potrebbe aver bisogno di essere ripensato. Prendete questo per quello che è, la mia opinione, ma vorrei che questo ordinamento potrebbe funzionare meglio.

Top Priorità: (nessun ordine particolare)

  • Sviluppare capacità di problem solving
  • Essere produttivi come una squadra

Avanti:

  • competenze di programmazione di base (PHP, Python, ecc)

Dopo che sanno come risolvere i problemi come individui e come una squadra si può spostare su specifiche come ad esempio:

  • Client / Server modello
  • Markup (HTML, XHTML, XML, etc)
  • Styling (CSS)
  • scripting lato client (JavaScript / jQuery)
  • scripting
  • lato server (PHP, Ruby, etc)

costruire la loro conoscenza di ciò che è coinvolto pezzo per pezzo, piuttosto che saltare nella fine profonda fuori del blocco -. Saranno rapidamente sopraffatti

A questo punto si può iniziare a presentare le cose come file di I / O e le banche dati.

Questo darà loro un insieme di abilità abbastanza completo. Da qui si può davvero iniziare ad imparare.

  

In aggiunta, si può avere a che fare con SQL per l'archiviazione persistente, Memcache per le sessioni e caching, API di sistemi di content management, OpenID, Facebook, Twitter, ecc OpenSocial per costruire qualcosa di interessante.

Questi sono argomenti interi a se stessi, non si possono mordere tutto in un unico pezzo. Soprattutto se si sta prendendo queste persone da 0. Prima di poter costruire qualcosa di interessante si deve imparare a costruire qualcosa di banale.

HTML5 sarà probabilmente più in vena di quello che stai cercando, piuttosto che Flash o Silverlight, ma non è del tutto ancora qui ... Anche se il supporto sta costruendo.

Piccoli passi, Olav - se questo fosse The Matrix è possibile scaricare tutte queste informazioni in un solo colpo, ma non siamo lì ... ancora; -)

Per il momento, e prossimo futuro, lo sviluppo del web è la sinergia di diverse tecnologie che lavorano insieme per offrire un'esperienza utente interessante.

Bene, questo è il mio 2 centesimi

La natura multidisciplinare dello sviluppo web è una delle cose che lo rende una gioia di lavorare in, specialmente in un ambiente della squadra.

Per lavorare bene come una squadra, si arriva naturalmente insieme ad un gruppo di persone con una gamma di competenze, da UI / grafica gente giù a DBA e amministratori di sistema. Anche all'interno di un singolo strato di gruppo (ad esempio di nuovo i programmatori end) ogni persona specializzata in generale in un set diverso, ad esempio alcune persone possono avere più esperienza verso UI, altri verso il basso in direzione dei dati.

Vorrei prendere questa varietà ogni giorno, rispetto al lavoro in una stanza di 10 programmatori Java tutti lavorano su alcune applicazioni middleware.

Se si vuole semplicemente insegnare loro a scrivere siti web dinamici, impostarle passare attraverso il tutorial HTML w3schools.com e una volta che hanno finito, trovare se stessi guardando un foglio di stile decente che possono includere e li andare con PHP. Che sarà farli installato e funzionante come un hobby, e se vogliono fare di più, si può iniziare mettendo insieme conoscenza in più, come CSS e JavaScript.

Ruby on Rails va piuttosto un modo verso l'unificazione di tutti coloro, ma per i CSS ti lascia fuori al freddo (anche se probabilmente ci sono un paio di quadri per RoR che fanno CSS obsoleto, ma poi hai un altro linguaggio di markup, ho pensi), ed è ancora necessario Javascript (anche se non scrivere un sacco di Javascript per te, e tutto il codice DB).

D'altra parte, i vostri bambini: la programmazione è per i programmatori. In un pomeriggio di Domenica a mettere insieme qualcosa in poche ore, si avrebbe bisogno di conoscere un quadro, e acquistare alcuni plugin, e ottenere tutto e in movimento senza molto lavoro. Qualcosa come Drupal o Joomla, dove vendono i modelli (per Joomla è possibile acquistare confezioni di centinaia) e plugin per fare ogni genere di cose. E quando questo fallisce, i tuoi figli dovrebbero probabilmente sapere come andare avanti oDesk e rilasciare $ 100 per ottenere qualcosa fatto sul vostro quadro. Imparare a programmazione è buono se si vuole essere un programmatore. In caso contrario, è meglio imparare che cosa avete bisogno di assumere buoni programmatori o comprare buoni componenti predone, e hanno i soldi per farlo.

Ultimo punto circa i bambini: farli giocare videogiochi. Questa è la migliore formazione che si può ottenere per qualsiasi riserva il futuro in serbo sul lato del computer. I videogiochi consentono di indagare, giocare e rilassarsi con il computer. Una volta che avete, l'apprendimento HTML, CSS, Javascript, e alcuni stack applicativo è la torta.

angularjs potrebbe essere un'opzione. è in questione, destinate-page-applicazioni singole e viene eseguito su un nodejs-stack e fa qualche modello-javascript "magico".

esempio (modello / codice): Si lega (tramite auto-generata-client-side-js) il valore da input-campo al l'intestazione (H1). Se si digita qualcosa al campo di inserimento, il testo nel titolo viene aggiornato. E non c'è bisogno di scrivere il frontend-js.

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top