Pregunta

Preámbulo

Para construir sitios web dinámicos, debemos dominar al menos cuatro idiomas:

  • HTML para la estructura de páginas web.
  • CSS para maquetación y diseño.
  • JavaScript para interactividad
  • Un lenguaje para reglas de negocio o datos dinámicos

Además, hay SQL para almacenamiento persistente, Memcache para sesiones y almacenamiento en caché, API para muchos Diferentes sistemas de gestión de contenidos.También deberíamos considerar interactuar con OpenID, Facebook, Twitter, OpenSocial al crear una aplicación web, para que sea interesante.

Considerándolo todo, ¡es un completo desastre!

Si tienes en cuenta dos objetivos:

  • Enseñar desarrollo web a niños
  • Mantenerse productivo como equipo

Pregunta

¿Qué sistemas de alto nivel existen que unifican HTML + CSS + Javascript + (Insertar lenguaje de alto nivel aquí, PHP preferido)?


Fondo

  1. Soy un ingeniero de software con más de 15 años de experiencia como líder de proyectos y desarrollador con tecnologías como Broadvision, Autonomy, Enterprise Java y Oracle.

Durante los últimos años me he centrado en el desarrollo de sitios web comunitarios, utilizando Drupal o frameworks PHP como CakePHP.I como desarrollo web y disfrutar del desajuste de impedancia entre las tecnologías involucradas.Aun así, la conclusión inevitable a la que llego es Debe haber una mejor manera.

  1. Soy padre de dos hijos (13 y 9 años), y aunque no quiero que se conviertan en programadores, sí me gustaría que entendieran las computadoras como algo más que máquinas de juego.Me gusta motivarlos a que jueguen un poco con el desarrollo web para que se expresen.

Cada vez que les muestro fragmentos, me encantaría que tuvieran un conjunto de herramientas que les permitiera crear resultados "interesantes" en una o dos horas un domingo por la tarde.

¿Fue útil?

Solución

Enlaces es un nuevo lenguaje de programación diseñado para hacer más fácil la programación web.. . Enlaces alivia el problema de impedancia desajuste proporcionando un único idioma para los tres niveles el sistema genera un código para cada nivel;. por ejemplo, la traducción de un código en Javascript para el navegador, un poco en un código de bytes para el servidor, y algunos en SQL para la base de datos ".

Al principio no iba a publicar esto, ya que es un proyecto de investigación, no un sistema de producción; pero todas estas respuestas diciendo "eso es lo que es, tratar con él" rogó por un contraejemplo.

Otros consejos

GWT va de alguna manera hacia ser un conjunto de herramientas de alto nivel, lo que le permite escribir en Java para producir Javascript.

Programación web es un arte multidisciplinar inherentemente.

La razón principal de esto es debido a la separación de las preocupaciones ... la razón por la que el HTML y CSS y JavaScript, SQL, etc., no se machacan en un solo idioma es porque cada uno tiene metas separadas, advertencias, trampas, y fortalezas.

¿Se imagina tratando de depurar un sitio que tiene SQL, CSS, JavaScript y código PHP mezclados en los mismos archivos de origen? Ya ha tenido la mala suerte de hacerlo. Por desgracia, hay literalmente miles de sitios escritos de este tipo, y es una pesadilla completa tratando de depurar o añadir a este tipo de fusiones desordenado de presentación, datos y estructura.

  

Con todo, un desastre total! ¿Cómo es una   supuesta para enseñar desarrollo web para   niños?

Creo que lo más importante es la enseñanza de los fundamentos de la programación y hacer que se peguen. Las variables, lógica, punteros , la gestión de memoria, algoritmos, estructuras de datos, etc.

Cuando usted tiene los fundamentos de la programación, es fácil trabajar en idiomas multipe, recoger a los nuevos, y fácil de cambiar con los tiempos. Esta es una habilidad invaluable para algo tan constante evolución y la tendencia de base como la programación web.

En mi opinión la gente nueva a la programación debe iniciarse con lenguas de menor nivel, como C, por ejemplo. La gente debería enseñar los conceptos intrínsecos fundamentales de la programación y deben tener conocimiento de lo que está pasando detrás de las escenas incluso antes de ser mostrado un lenguaje de alto nivel como PHP o Python.

Creo que esta actitud hacia la programación docente tendrá el efecto de la selección de mejores desarrolladores web, así como proporcionar una barrera de entrada que va a eliminar a las personas que no tienen el interés o la inteligencia. Creo que el resultado de este tipo de actitud va a ser mejores desarrolladores de software, mejor, y en última instancia más potentes lenguajes y herramientas.

  

¿Cómo se supone que uno a enseñar a los niños el desarrollo web?

Un ejército de los niños en el desarrollo web es lo que se ha degradado nuestra profesión ya que ahora casi todo el mundo llama a sí mismo un programador, mientras que se está haciendo cada vez más difícil para nosotros para conseguir distanciada de ellos y obtener un salario digno.

Muchos lenguajes y tecnologías para dominar? Es algo bueno. Que no haya algún tipo de barrera de entrada para unirse a las filas de los desarrolladores.

AÑADIDO: Siguiendo los comentarios veo que no he hecho del todo claro. No digo nada acerca de la edad, ya sea 10, 30, 50 o 80. Es cuestión de actitud. Si una persona entiende y acepta el hecho de que hay mucho más a la profesión de mover los controles con un ratón en algún diseñador o CMS. Hay una gran cantidad de conocimientos que se adquirirán, incluyendo bases de la CS, algoritmos, estructuras de datos, bases de datos, la arquitectura, la extensibilidad, mantenimiento, rendimiento, escalabilidad, facilidad de uso, la comercialización y mucho más que pertenecen al taller de un desarrollador de software profesional. Yo una persona es ignorante de esos y no hacer un movimiento para que se eduquen y se esfuerzan por ser más y más competentes, que no pertenecen a la profesión. Y dejar estar sesgada esta opinión.

Lo más cerca que creo que se obtendrá es .NET. Hay muchos marcos para muchos idiomas, pero ninguno que yo sepa que manejar absolutamente todo. Además de que no se debe tratar de convencer a los niños que la programación es un paseo por el parque. Es una carrera difícil, que requiere mucho estudio y conservación de seguimiento. Trabajamos con tecnologías que hoy están aquí y mañana no.

Si se piensa en ello, la programación no es nada diferente de carpintería, o la aeronáutica. Casi cualquier profesión que eligió le exigirá que aprender un montón de cosas diferentes para ser mejor en lo que haces.

¿Cómo se supone que enseñar a los niños el desarrollo web? Wow, eso es un tema espinoso. ¿Cómo hace uno para enseñarles la cirugía, o la ley de propiedad intelectual, o de ingeniería civil? O para que la mecánica de automóviles, materia o sanitarias, o la contratación en general?

¿Ha pensado en hacer estallar en una cinta de Plaza Sésamo?

Elmo no le gusta cuando trivializar su profesión.

industria del software está sufriendo de personas no cualificadas hacer nada más que la creación de productos de mala calidad y, al mismo tiempo distanciándose esta profesión se convierta en una verdadera disciplina de ingeniería. Esto no es algo para obtener la certificación en. Por el amor de Dios, no 'enseñar' a nadie de desarrollo de software. Explíqueles que hacer un gran software sólo sale como resultado de años de experiencia y riqueza de conocimientos de las tecnologías anteriores y actuales. Lo peor que puede hacer es introducir otro desarrollador a medio cocer la creación de trabajo para otras personas que trabajan con ellos. Diles que obtener una educación. Sé que esto no es la respuesta que probablemente quería escuchar, pero quería que esto se lee.

Creo que el problema con el desarrollo web es que no fue diseñado originalmente para qué se utiliza hoy en día. Construimos aplicaciones de cliente dentro de un navegador con HTML + CSS + JavaScript más lo que la tecnología serverside lo genera. Sí, funciona, pero es un dolor, especialmente con esas incompatibilidades del navegador molestos. La existencia de Flash y Silverlight demuestra. Ellos le permiten construir su aplicación con una sola tecnología, todavía dentro del navegador. Las desventajas de necesitar un plugin para su contenido es evidente, sin embargo.

Las lenguas son el menor de sus preocupaciones. Es el dominio del problema que trabajan con esto es complejo. El uso de diferentes lenguas en realidad hace las cosas más manejable porque a) Hace que los límites explícitos y b) las lenguas puede ser optimizado para el dominio.

Programación (PHP / JS) y el formato de documento (HTML / CSS) son 2 cosas diferentes. Aprender a programar en PHP y JS, al mismo tiempo, también será difícil.

Usted debe centrarse en HTML y JS en el cliente en el arranque. A continuación, puede dejar que los programan javascript en el servidor también. Esto hará que sea sólo un lenguaje de programación, y se centran en HTML sobre CSS para empezar.

Una vez que han aprendido los conceptos básicos de la JS y HTML, se les puede enseñar a un servidor lenguaje utilizado más ampliamente la programación del lado (como PHP, Ruby, etc) y CSS.

Django que pueden tomar parte del camino a través de su limpieza. Se centra alrededor de la productividad. La enseñanza no es más fácil que cualquier otra lengua / marco, pero lo veo de esta manera: cuando se les enseña esta herramienta, los estudiantes están bien equipados en su conocimiento de lo fácil que debe ser. Ellos nunca aceptarán servelets Java o pesadillas similares después de haber aprendido de Django.

Salida Opa: http://opalang.org/

Esta es una tecnología de desarrollo web y que viene. Se ve bastante prometedor. He hecho un montón de desarrollo web durante los últimos dos años y si tuviera que hacer una predicción que hasta nuevo marco y / idioma / tecnología va a ser la forma principal de sitios web se desarrollan en ~ 5-10 años, diría que será Opa.

La documentación es grande, la comunidad es grande, los tutoriales y la capacidad de respuesta a las preguntas formuladas del equipo que trabaja en el proyecto es excelente. En general parece que tienen una atención al detalle en lo que respecta al desarrollo de este nuevo marco que parece ser igual.

Muchas de las tecnologías de maestro no es una buena cosa. Necesitamos un Visual Basic para la web, no importa lo que digan los elitistas.

Es necesario lenguas diferentes para diferentes propósitos. En la mayoría de las aplicaciones web en realidad hay un poco pasando, por lo que necesitan las diferentes lenguas y soluciones.

Si el objetivo es unificar en un solo idioma, se puede hacer eso. Puede usar Javascript en el servidor, y luego construir las páginas usando document.createElement() y aplicar estilos a ellos directamente a la propiedad styles. Y en el servidor, almacenar sus datos directamente en los archivos con Javascript.

Es evidente que esto no iba a funcionar tan bien. HTML no es perfecto, pero hay una razón que es tan ubiquitous-- que hace lo que hace simplemente y bien. CSS es a la vez complicado y demasiado simplista, pero la idea subyacente de la definición de reglas overrideable para expresar su diseño es el sonido. Y SQL puede ser un dolor de entender a veces, pero expresando consultas a la base de esta forma es expresiva y en realidad funciona bastante bien.

Una vez dicho esto, yo no estoy diciendo que es o debe ser una arquitectura. No debería ser. Cada proyecto debe utilizar una arquitectura acorde con sus necesidades.

En su próximo proyecto intenta simplificar: lo que realmente necesita una base de datos? Se puede combinar las capas visión para simplificar, ya sea usando algo como GWT, applets, Flash o .NET? Lo que realmente necesita para servir su contenido en un navegador (que introduce CSS, HTML y Javascript complejidades), o puede que acaba de escribir una aplicación?

Creo que podría tener que ser replanteado su enfoque. Tome esto como lo que es, mi opinión, pero yo creo que esta ordenación podría funcionar mejor.

principales prioridades: (sin ningún orden en particular)

  • Desarrollar habilidades para resolver problemas
  • Sea productivo en equipo

Siguiente:

  • habilidades básicas de programación (PHP, Python, etc)

Después de que saben cómo resolver problemas como individuos y como equipo pueden pasar a aspectos específicos tales como:

  • Cliente / Servidor modelo
  • de marcado (HTML, XHTML, XML, etc.)
  • Estilo (CSS)
  • script del lado del cliente (JavaScript / jQuery)
  • scripting
  • del lado del servidor (PHP, Ruby, etc)

Construir su conocimiento de lo que está involucrado pieza por pieza en lugar de saltar en la parte más profunda del palo -. Que van a ser rápidamente abrumado

En este punto se puede empezar a introducir cosas como archivo de E / S y las bases de datos.

Esto les dará un conjunto de habilidades bastante completa. De aquí que realmente puede comenzar el aprendizaje.

  

Además, uno puede tener que lidiar con SQL para el almacenamiento persistente, Memcache para las sesiones y almacenamiento en caché, las API de sistemas de gestión de contenidos, OpenID, Facebook, Twitter, etc. OpenSocial para construir algo interesante.

Estos son los temas enteros en sí mismos, no se puede morder a retirarse todo en un solo trozo. Especialmente si usted está tomando estas personas desde 0. Antes de poder construir algo interesante que tiene que aprender a construir algo rutinario.

HTML5 es probable que haya más en la onda de lo que estás buscando lugar de Flash o Silverlight, pero no es bastante aquí todavía ... aunque el apoyo está construyendo.

Los pasos del bebé, Olav - si esto fuera The Matrix usted podría descargar toda esa información en una sola toma, pero no estamos allí todavía ...; -)

Por el momento, y el futuro próximo, el desarrollo web es la sinergia de muchas tecnologías diferentes que trabajan juntos para ofrecer una experiencia de usuario interesante.

Bueno, esa es mi 2 centavos

La naturaleza multidisciplinar del desarrollo web es una de las cosas que hace que sea una alegría para trabajar en, sobre todo en un ambiente de equipo.

Para trabajar bien como equipo, que, naturalmente, se reúnen con un grupo de personas con una gama de conocimientos, desde IU / gente gráficos abajo a los DBA y administradores de sistemas. Incluso dentro de una sola capa de grupo (por ejemplo, volver programadores finales) cada persona se especializa en general en un conjunto diferente, por ejemplo, algunas personas pueden tener más experiencia hacia la interfaz de usuario, otros hacia abajo, hacia los datos.

Me gustaría tener esta variedad cualquier día, en comparación con los que trabaja en una sala de 10 programadores Java Todos los que trabajan en alguna aplicación middleware.

Si simplemente quiere enseñar a escribir páginas web dinámicas, ponerlos de pasar por el tutorial HTML en w3schools.com y una vez que haya terminado, encontrará una hoja de estilo aspecto decente que pueden incluir y los puso a ir con PHP. Que ponerlas a ellas en funcionamiento como un hobby, y si ellos quieren hacer más, pueden empezar a juntar las piezas juntas conocimiento adicional, como CSS y JavaScript.

Ruby on Rails va bastante lejos hacia la unificación de todos ellos, pero para CSS que te deja en el frío (aunque es probable que haya un par de marcos para RoR que hacen CSS obsoleta, pero entonces usted tiene otro lenguaje de marcado, me piensa), y todavía se necesita Javascript (aunque no escribir una gran cantidad de Javascript para ti, y todo el código DB).

Por otro lado, acerca de sus hijos: la programación es para los programadores. En un domingo por la tarde para poner algo juntos en unas pocas horas, lo que se necesita saber un marco, y comprar algunos plugins, y obtener todo lo que se mueve hacia arriba y sin mucho trabajo. Algo así como Drupal o Joomla, donde venden plantillas (para Joomla se pueden comprar paquetes de cientos) y plugins para hacer todo tipo de cosas. Y cuando eso falla, sus hijos probablemente tendrán que saber cómo continuar ODesk y soltar $ 100 para obtener algo que se hace en su marco. El aprendizaje de la programación es buena si quieres ser un programador. De lo contrario, lo mejor es aprender lo que necesita contratar a buenos programadores o comprar buenos componentes predone, y tienen el dinero para hacerlo.

El último punto sobre los niños: dejarlos jugar juegos de video. Esa es la mejor formación que puedan conseguir para lo que el futuro tiene en el lado del ordenador. Los videojuegos permiten investigar, jugar y relajarse con el ordenador. Una vez que tenga que aprender HTML, CSS, Javascript, y un poco de pila de aplicaciones es la torta.

AngularJS podría ser una opción. se inteded de páginas a las aplicaciones individuales y se ejecuta en un nodejs-pila y hace alguna plantilla-javascript "mágica".

ejemplo (plantilla / código): Se une (a través de auto-generado-client-side-js) el valor del campo de entrada para la el encabezado (h1). Si escribe algo en el campo de entrada, el texto en el encabezamiento se actualiza. Y usted no tiene que escribir el frontend-js.

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top