Question

Préambule

Pour créer des sites web dynamiques, nous devons maîtriser au moins quatre langues:

  • HTML pour la structure des pages web
  • CSS pour la mise en page et la conception
  • JavaScript pour l'interactivité
  • Une langue pour les règles métier ou des données dynamiques entraînées

En outre, il y a SQL pour le stockage permanent, Memcache pour les sessions et la mise en cache, les API pour les beaucoup différents systèmes de gestion de contenu. Nous devrions également envisager d'interagir avec Twitter, Facebook, Twitter, OpenSocial dans la construction d'une application web, pour qu'il soit intéressant.

Dans l'ensemble, il est un désordre absolu!

Si vous prenez en compte deux objectifs:

  • le développement web d'enseignement aux enfants
  • Rester productif en équipe

Question

Quels sont les systèmes de haut niveau existent qui unifient HTML + CSS + Javascript + ( Insérer haut niveau Langue ici , a préféré PHP)?


Historique

  1. Je suis un ingénieur logiciel avec plus de 15 années d'expérience en tant que chef de projet et développeur de technologies comme Broadvision, autonomie, Enterprise Java et Oracle.

Au cours de ces dernières années, je me suis concentré sur les sites communautaires en développement, en utilisant Drupal ou frameworks PHP tels que CakePHP. I comme développement web et profiter de la non-concordance d'impédance entre les technologies utilisées. Toujours la conclusion inévitable que je viens est il doit y avoir une meilleure façon .

  1. Je suis le père de deux fils (13 et 9), et alors que je ne veux pas devenir programmeurs je les aime à comprendre les ordinateurs comme plus que les machines de jeux. Je tiens à les motiver à bricoler un peu avec le développement web pour s'exprimer.

Chaque fois que je leur montre des morceaux, j'aimerais pour eux d'avoir un ensemble d'outils qui leur permet de créer des résultats « intéressants » dans une heure ou deux sur un dimanche après-midi.

Était-ce utile?

La solution

" Liens est un nouveau langage de programmation conçu pour rendre la programmation web plus facile.. . Liens facilite le problème de désadaptation d'impédance en fournissant un langage unique pour les trois niveaux le système génère un code pour chaque niveau;. par exemple, la traduction du code en Javascript pour le navigateur, certains dans un bytecode pour le serveur, et certains en SQL pour la base de données. "

Au début, je n'allais pas poster cela, car il est un projet de recherche, et non pas un système de production; mais toutes ces réponses en disant « voilà comment il est, face à elle » demanda un contre.

Autres conseils

GWT va someway vers être une boîte à outils de haut niveau, qui vous permet d'écrire Java pour produire Javascript.

Programmation Web est intrinsèquement métier multi-discipline.

La principale raison pour cela est dû à des préoccupations ... seperation la raison que HTML et CSS et JavaScript, SQL, etc, ne sont pas écrasa ensemble dans une langue est parce qu'ils ont chacun des objectifs distincts, mises en garde, les pièges, et points forts.

Pouvez-vous imaginer essayer de déboguer un site qui a SQL, CSS, JavaScript et du code PHP mélangés dans les mêmes fichiers source? Vous avez peut-être déjà eu le malheur de le faire. Malheureusement, il y a littéralement des milliers de sites écrits comme celui-ci, et il est un cauchemar d'essayer de débogage ou d'ajouter à ces fusions en désordre de la présentation, les données et la structure.

  

Dans l'ensemble, un désordre total! Comment est l'un   censé enseigner le développement web à   enfants?

Je pense que la chose la plus importante est d'enseigner les bases de la programmation et de les faire coller. Les variables, la logique, pointeurs , gestion de la mémoire, des algorithmes, des structures de données, etc.

Quand vous avez les bases de la programmation, il est facile de travailler dans les langues multipe, ramasser de nouvelles, et facile à changer avec le temps. C'est une compétence inestimable pour quelque chose d'aussi en constante évolution et tendanciel la programmation web.

Dans mon peuple d'opinion nouvelles à la programmation devrait être démarré à des langues de niveau inférieur, comme C par exemple. Les gens devraient être tought les intrinsèques, les concepts fondamentaux de la programmation et devraient prendre connaissance de ce qui se passe dans les coulisses avant même d'être montré un langage de haut niveau comme PHP ou Python.

Je pense que cette attitude à l'égard des programmes d'enseignement aura pour effet de reproduction meilleurs développeurs web ainsi que de fournir une barrière d'entrée qui arracheront les gens qui n'ont pas l'intérêt ou l'intelligence. Je pense que le résultat de ce type d'attitude sera mieux développeurs, de meilleurs logiciels, et les langues en fin de compte plus puissants et des outils.

  

Comment est-on censé enseigner le développement Web pour les enfants?

Une armée d'enfants dans le développement web est ce qui a dégradé notre profession depuis maintenant à peu près tout le monde appelle lui-même un programmeur alors qu'il devient de plus en plus difficile pour nous de distancés d'eux et obtenir un salaire décent.

De nombreuses langues et technologies à maîtriser? C'est une bonne chose. Qu'il y ait une barrière à l'entrée pour rejoindre les rangs des développeurs.

AJOUTÉE: En suivant les commentaires, je vois que je ne l'ai pas fait moi-même tout à fait clair. Je ne dis rien sur l'âge, que ce soit 10, 30, 50 ou 80. Il est une question d'attitude. Si une personne comprend et accepte le fait qu'il ya beaucoup plus à la profession que les contrôles se déplaçant avec une souris dans un designer ou CMS. Il y a beaucoup de connaissances à acquérir, y compris bases de CS, des algorithmes, des structures de données, bases de données, l'architecture, l'extensibilité, la maintenance, la performance, l'évolutivité, la facilité d'utilisation, le marketing et bien plus encore qui appartiennent à l'atelier d'un développeur de logiciels professionnels. Je une personne ignore ceux-ci et ne fait pas un geste pour se former et nous nous efforçons de devenir de plus en plus compétents, ils ne font pas partie de la profession. Et que cet avis est biaisé.

Le plus proche, je pense que vous obtiendrez est .NET. Il existe de nombreux cadres pour de nombreuses langues, mais pas que je sache que tout gérer absolument. A côté de cela, vous ne devez pas essayer de convaincre les enfants que la programmation est une promenade dans le parc. Il est une carrière difficile, qui nécessite beaucoup d'études et de maintien de la place. Nous travaillons avec des technologies qui sont ici aujourd'hui et là demain.

Si vous pensez à ce sujet, la programmation est pas différente de la menuiserie ou l'aéronautique. Juste au sujet de toute profession que vous avez choisi vous demandera d'apprendre beaucoup de choses différentes pour être mieux à ce que vous faites.

Comment êtes-vous censé enseigner le développement web aux enfants? Wow, c'est une question épineuse. Comment peut-on aller à leur enseigner la chirurgie, ou droit de la propriété intellectuelle, ou le génie civil? Ou pour que la mécanique automobile, de la matière ou de plomberie, ou entrepreneur général?

Avez-vous pensé à sauter dans une bande de Sesame Street?

Elmo ne l'aime pas quand vous banalise sa profession.

L'industrie du logiciel souffre de personnes non qualifiées ne rien faire, mais la création de produits de mauvaise qualité et en même temps de distanciation cette profession de devenir une véritable discipline d'ingénierie. Ce n'est pas quelque chose à obtenir une certification sur. Pour l'amour de Dieu, ne « enseigner » quiconque le développement de logiciels. Expliquez-leur que faire de grands logiciels ne sort en raison d'années d'expérience et la richesse des connaissances des technologies actuelles et passées. Le pire que vous pouvez faire est encore un autre développeur introduire bancales créer du travail pour les autres qui travaillent avec eux. Dites-leur de vous instruire. Je sais que ce n'est pas la réponse que vous vouliez probablement entendre, mais je voulais que cela soit lu.

Je pense que le problème avec le développement web est qu'il n'a pas été conçu à l'origine pour ce qu'il est utilisé aujourd'hui. Nous construisons des applications client riche à l'intérieur d'un navigateur avec HTML + CSS + JavaScript ainsi que toute autre technologie Serverside génère. Oui, cela fonctionne, mais il est une douleur, surtout avec ces ennuyeux navigateur incompatibilités. L'existence de Flash et Silverlight prouve. Ils vous permettent de construire votre application avec une technologie unique, toujours à l'intérieur du navigateur. Les inconvénients d'avoir besoin d'un plugin pour votre contenu est évident cependant.

Les langues sont le moindre de vos soucis. C'est le domaine du problème qu'ils fonctionnent avec c'est complexe. L'utilisation des langues différentes rend réellement les choses plus faciles à gérer parce que a) Il rend les limites explicites et b) les langues peut être optimisé pour le domaine.

Programmation (PHP / JS) et le format de document (HTML / CSS) sont 2 choses différentes. Apprendre à programmer en PHP et JS en même temps sera également difficile.

Vous devez vous concentrer sur HTML et JS sur le client au démarrage. Vous pouvez ensuite laisser programmer javascript sur le serveur ainsi. Cela rendra seulement un langage de programmation, et se concentrer sur HTML sur CSS pour commencer.

Une fois qu'ils ont appris les rudiments de la JS et HTML, vous pouvez leur apprendre un langage de programmation côté serveur utilisé plus largement (comme PHP, Ruby, etc.) et CSS.

Django peut vous faire une partie du chemin par sa propreté. Il se concentre autour de la productivité. L'enseignement n'est pas plus facile que toute autre langue / cadre, mais regardez cette façon: quand elle est enseignée à cet outil, vos élèves sont bien équipés dans leur connaissance de la facilité avec laquelle devrait être. Ils ne l'accepteront jamais Java servelets ou des cauchemars similaires après avoir appris Django.

Consultez Opa: http://opalang.org/

Ceci est une technologie de développement web et à venir. Il semble tout à fait prometteur. Je l'ai fait beaucoup de développement web au cours des deux dernières années et si je devais faire une prédiction qui et nouveau cadre / langue / technologie va être les sites principal moyen sont développés dans ~ 5-10 ans, je dirais que ce sera Opa.

La documentation est grande, la communauté est grande, les tutoriels et la réactivité aux questions posées à l'équipe travaillant sur le projet est excellent. Dans l'ensemble, ils semblent avoir une attention aux détails en ce qui concerne l'élaboration de ce nouveau cadre qui semble être inégalée.

De nombreuses technologies à maîtriser est pas une bonne chose. Nous avons besoin d'un Visual Basic pour le web, peu importe ce que disent les élitistes.

Vous avez besoin des langues différentes à des fins différentes. Dans la plupart des applications web, il y a en fait assez un peu en cours, vous avez donc besoin des langues différentes et des solutions.

Si l'objectif est d'unifier sur une seule langue, vous pouvez le faire. Vous pouvez utiliser Javascript est désactivé sur le serveur, puis construire les pages en utilisant document.createElement() et appliquer des styles pour les directement à la propriété styles. Et sur le serveur, stocker vos données directement dans les fichiers avec Javascript.

Il est évident que cela ne marcherait pas bien. HTML est pas parfait, mais il y a une raison pour laquelle il est si ubiquitous-- il fait ce qu'il fait simplement et bien. CSS est à la fois compliqué et trop simpliste, mais l'idée sous-jacente de la définition des règles d'exprimer votre dérogation possible est la conception sonore. Et SQL peut être une douleur à comprendre parfois, mais exprimant des requêtes de base de données de cette manière est expressive et fonctionne en fait assez bien.

Cela étant dit, je ne dis pas qu'il est ou devrait être une architecture. Il ne devrait pas être. Chaque projet doit utiliser une architecture conforme à ses exigences.

Sur votre prochain projet essayez de simplifier: avez-vous vraiment besoin d'une base de données? Pouvez-vous combiner les couches de vue pour simplifier, que ce soit en utilisant quelque chose comme GWT, Applets, Flash ou .NET? Avez-vous vraiment besoin de servir votre contenu dans un navigateur (qui introduit CSS, HTML et Javascript complexité), ou vous pouvez simplement écrire une application?

Je pense que votre approche pourrait devoir être repensés. Prenez ce pour ce qu'il est, mon avis, mais je pense cet ordre pourrait mieux fonctionner.

Top priorités: (sans ordre particulier)

  • Développer les compétences de résolution de problèmes
  • Soyez productif en équipe

suivant:

  • Les compétences de base de programmation (PHP, Python, etc.)

Une fois qu'ils savent comment résoudre les problèmes en tant qu'individu et en tant qu'équipe, ils peuvent se déplacer sur des détails tels que:

  • Modèle client / serveur
  • Markup (HTML, XHTML, XML, etc.)
  • Styling (CSS)
  • script côté client (JavaScript / JQuery)
  • scripts côté serveur (PHP, Ruby, etc)

Construire leur connaissance de ce qui est impliqué par pièce morceau plutôt que de sauter dans le grand bain de la chauve-souris -. Ils seront rapidement débordés

À ce stade, vous pouvez commencer à introduire des choses comme fichier E / S et des bases de données.

Cela leur donnera un ensemble de compétences assez complet. De là, ils peuvent vraiment commencer à apprendre.

  

En outre, on peut avoir à traiter avec SQL pour le stockage permanent, Memcache pour les sessions et la mise en cache, les API des systèmes de gestion de contenu, OpenID, Facebook, Twitter, etc. OpenSocial pour construire quelque chose d'intéressant.

Ce sont des sujets entiers à eux-mêmes, vous ne pouvez pas les mordre en un seul morceau. Surtout si vous prenez ces gens de 0. Avant de pouvoir construire quelque chose d'intéressant, vous devez apprendre à construire quelque chose de banal.

HTML5 sera probablement plus dans la veine de ce que vous êtes à la recherche plutôt que Flash ou Silverlight, mais il est pas tout à fait encore là ... Même si le soutien est la construction.

pas de bébé, Olav - si cela était The Matrix vous pouvez télécharger toutes ces informations en un seul coup, mais nous ne sommes pas là ... encore; -)

Pour le moment, et un proche avenir, le développement web est la synergie de nombreuses technologies différentes qui travaillent ensemble pour offrir une expérience utilisateur intéressante.

Eh bien, voilà mes 2 cents

La nature multidisciplinaire de développement web est l'une des choses qui fait une joie de travailler, en particulier dans un environnement d'équipe.

Pour bien travailler en équipe, vous venez naturellement avec un groupe de personnes avec une gamme d'expertise, de personnes UI / graphiques vers le bas à CBM et admins sys. Même au sein d'une seule couche du groupe (par exemple retour des programmeurs finaux) chacun se spécialise généralement dans un ensemble différent, par exemple, certaines personnes peuvent avoir plus d'expérience en direction de l'interface utilisateur, d'autres vers le bas vers les données.

Je prendrais cette variété un jour, par rapport au travail dans une salle de 10 programmeurs Java travaillant tous sur une application middleware.

Si vous voulez simplement leur apprendre à écrire des sites Web dynamiques, les mettre en passant par le didacticiel HTML sur w3schools.com et une fois qu'ils sont faits, vous trouverez une feuille de style décent à la recherche qu'ils peuvent inclure et les mettre en mouvement avec PHP. Ça va les lever et courir comme un passe-temps, et s'ils veulent faire plus, ils peuvent commencer à reconstituer les connaissances ensemble supplémentaires, comme CSS et JavaScript.

Ruby on Rails va tout à fait un chemin vers l'unification de tous ceux-ci, mais pour le CSS, il vous laisse dans le froid (mais il y a probablement quelques cadres pour RoR qui rendent CSS obsolète, mais vous avez un autre langage de balisage, je pensez), et il vous reste Javascript (bien qu'il n'écrire beaucoup de Javascript pour vous, et tout le code DB).

D'autre part, au sujet de vos enfants: la programmation est pour les programmeurs. Dimanche après-midi pour mettre quelque chose ensemble en quelques heures, vous devez savoir un cadre, et acheter des plug-ins, et obtenir tout et se déplacer sans beaucoup de travail. Quelque chose comme Drupal ou Joomla, où ils vendent des modèles (pour Joomla, vous pouvez acheter des packs de centaines) et des plugins pour faire toutes sortes de choses. Et quand cela échoue, vos enfants devraient probablement savoir comment continuer oDesk et déposer 100 $ pour faire quelque chose sur votre cadre. Apprendre à la programmation est bonne si vous voulez être un programmeur. Dans le cas contraire, il est préférable d'apprendre ce que vous avez besoin d'embaucher de bons programmeurs ou acheter des composants de bonne predone, et ont l'argent pour le faire.

Le dernier point sur les enfants: laissez-les jouer à des jeux vidéo. C'est la meilleure formation qu'ils peuvent obtenir pour ce que l'avenir nous réserve sur le côté de l'ordinateur. Jeux vidéo vous permettent de mener des enquêtes, jouer et se détendre avec l'ordinateur. Une fois que vous avez, apprendre le langage HTML, CSS, Javascript, et une pile d'applications est le gâteau.

AngularJS pourrait être une option. il est pour mono-BUT page-applications et fonctionne sur une nodejs pile et fait un certain modèle-javascript « magique ».

Exemple (modèle / code): Il se lie (par auto-généré-client-side-js) la valeur du champ d'entrée à la position du (h1). Si vous tapez quelque chose dans le champ d'entrée, le texte de la rubrique est mise à jour. Et vous n'avez pas à écrire le frontend-js.

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top