Pergunta

Preâmbulo

Para criar dinâmicas de web-sites, nós temos que dominar, pelo menos, quatro línguas:

  • HTML para a estrutura de páginas web
  • CSS para layout e design
  • O JavaScript para interatividade
  • Uma linguagem de regras de negócio ou dinâmico de dados orientados

Além disso, há SQL para armazenamento persistente, Memcache para sessões e cache, APIs para o muitos diferentes sistemas de gerenciamento de conteúdo.Também devemos considerar a interação com OpenID, Facebook, Twitter, OpenSocial na construção de uma aplicação web, para que ele seja interessante.

Tudo em tudo, é uma completa bagunça!

Se você levar em conta dois objectivos:

  • Ensino, desenvolvimento web para crianças
  • Ficar produtiva como uma equipe

Pergunta

O que de alto nível, existem sistemas que unificar HTML + CSS + Javascript + (Inserir Linguagem de Alto Nível aqui, PHP, de preferência)?


Fundo

  1. Eu sou um engenheiro de software, com 15 anos de experiência como líder de projeto e do desenvolvedor com tecnologias como Broadvision, a Autonomia, a Enterprise Java e Oracle.

Durante os últimos anos, tenho focado na comunidade o desenvolvimento de sites, usando o Drupal ou PHP frameworks como o CakePHP.Eu como desenvolvimento web e desfrutar o descasamento de impedância entre as tecnologias envolvidas.Ainda a inevitável conclusão de que eu venha a é deve haver uma maneira melhor.

  1. Eu sou pai de dois filhos (13 e 9), e enquanto eu não queria que eles se tornassem os programadores que eu gostaria de compreender computadores como mais do que de máquinas de jogos.Eu gostaria de motivá-los a mexer um pouco com o desenvolvimento da web para se expressar.

Sempre que eu mostrar-lhes pedaços, eu adoraria que eles têm um conjunto de ferramentas que lhes permite criar "interessante" resultados em uma ou duas horas em uma tarde de domingo.

Foi útil?

Solução

"Links é uma nova linguagem de programação projetada para facilitar a programação da Web. . . Os links facilitam o problema de incompatibilidade de impedância, fornecendo um único idioma para as três camadas. O sistema gera código para cada camada; Por exemplo, traduzindo algum código em JavaScript para o navegador, alguns em um bytecode para o servidor e outros no SQL para o banco de dados. "

No começo, eu não ia postar isso, pois é um projeto de pesquisa, não um sistema de produção; Mas todas essas respostas dizendo "é assim, lidar com isso" implorou por um contra -exemplo.

Outras dicas

Gwt de alguma maneira é um kit de ferramentas de alto nível, permitindo que você escreva Java para produzir JavaScript.

Programação para a Web é um inerentemente multi-disciplinar de artesanato.

A principal razão para isso é por causa da separação de preocupações...o motivo que o HTML e o CSS e o JavaScript, SQL, etc, não estão purê juntos em um idioma, é porque eles têm, cada um separado gols, advertências, armadilhas e pontos fortes.

Você pode imaginar tentando depurar um site que tem o SQL, CSS, JavaScript e PHP código misturados no mesmo arquivos de origem?Você pode já ter tido a infelicidade de fazer isso.Infelizmente, existem literalmente milhares de sites por escrito, e ele é um completo pesadelo tentando depurar ou adicionar para tal bagunçado amálgama de apresentação, dados e estrutura.

Tudo em tudo, uma completa bagunça!Como é um deveria ensinar o desenvolvimento web para crianças?

Eu acho que a coisa mais importante é ensinar os conceitos básicos de programação e tornando-pau.Variáveis, lógica, ponteiros, gerenciamento de memória, algoritmos, estruturas de dados, etc.

Quando você tem os fundamentos de programação, é fácil trabalhar em multipe línguas, pegar novos, e é fácil mudar com os tempos.Esta é uma valiosa habilidade para algo em constante evolução e tendência baseados em programação web.

Na minha opinião as pessoas novas para a programação deve ser iniciada no menor nível de linguagens, como C, por exemplo.As pessoas devem ser tought intrínseca, conceitos fundamentais de programação e deve ganhar conhecimento do que está acontecendo nos bastidores, antes mesmo de ser apresentado um maior nível de linguagem como PHP ou Python.

Eu acho que esta atitude para com o ensino de programação terá o efeito de reprodução melhores desenvolvedores web, bem como proporcionando uma barreira de entrada que irá eliminar as pessoas que não têm o interesse ou a inteligência.Eu acho que o resultado desse tipo de atitude vai ser melhor desenvolvedores de softwares melhores, e, em última instância mais poderoso de linguagens e ferramentas.

Como se deve ensinar desenvolvimento na web para crianças?

Um exército de crianças no desenvolvimento da web é o que degradou nossa profissão, já que agora alguém se chama programador enquanto está ficando cada vez mais difícil para nós nos distanciarmos e receber salários decentes.

Muitos idiomas e tecnologias para dominar? É uma coisa boa. Que haja alguma barreira de entrada para ingressar nas fileiras dos desenvolvedores.

Adicionado: Ao seguir os comentários, posso ver que não me deixei totalmente claro. Não digo nada sobre a idade, seja 10, 30, 50 ou 80. É tudo sobre atitude. Se uma pessoa entende e aceita o fato de que há muito mais na profissão do que mover controles com um mouse em algum designer ou CMS. Há muito conhecimento a ser adquirido, incluindo básicos de CS, algoritmos, estruturas de dados, bancos de dados, arquitetura, extensibilidade, manutenção, desempenho, escalabilidade, usabilidade, marketing e muito mais que pertencem ao workshop de um desenvolvedor de software profissional. Eu uma pessoa ignora isso e não faz uma mudança para se educar e se esforçar para se tornar cada vez mais proficiente, ela não pertence à profissão. E que essa opinião seja tendenciosa.

O mais próximo que acho que você ficará é .NET. Existem muitas estruturas para muitos idiomas, mas nenhuma que eu conheço disso lida com absolutamente tudo. Além disso, você não deve tentar convencer as crianças de que a programação é uma caminhada no parque. É uma carreira difícil, que requer muito estudo e manutenção. Trabalhamos com tecnologias que estão aqui hoje e se foram amanhã.

Se você pensar bem, a programação não é diferente de carpintaria ou aeronáutica. Quase qualquer profissão que você escolher exigirá que você aprenda muitas coisas diferentes para melhorar o que faz.

Como você deve ensinar desenvolvimento na web para crianças? Uau, isso é espinhoso. Como alguém lhes ensina cirurgia, ou direito de propriedade intelectual ou engenharia civil? Ou, nesse caso, mecânica automática, ou encanamento, ou contratação geral?

Você já pensou em aparecer em uma fita de rua gergelim?

Elmo não gosta quando você banaliza sua profissão.

A indústria de software está sofrendo de indivíduos não qualificados, não fazendo nada além de criar produtos de baixa qualidade e, ao mesmo tempo, distanciar essa profissão de se tornarem uma verdadeira disciplina de engenharia. Isso não é algo para se certificar. Para o amor de Deus, não ensine 'o desenvolvimento de software de ninguém. Explique a eles que a criação de ótimos softwares só sai como resultado de anos de experiência e riqueza de conhecimento das tecnologias passadas e atuais. O pior que você pode fazer é introduzir mais um desenvolvedor semi-assado, criando um trabalho para outras pessoas que trabalham com eles. Diga a eles para serem educados. Eu sei que essa não é a resposta que você provavelmente queria ouvir, mas eu queria que isso fosse lido.

Eu acho que o problema com o desenvolvimento da web é que ele não foi originalmente projetado para o que é usado hoje. Construímos aplicativos ricos em clientes dentro de um navegador com HTML+CSS+JavaScript, além de qualquer que a tecnologia do servidor o gera. Sim, funciona, mas é uma dor, especialmente com aqueles irritantes incompatibilitas do navegador. A existência de Flash e Silverlight prova isso. Eles permitem que você construa seu aplicativo com uma única tecnologia, ainda dentro do navegador. As desvantagens de precisar de um plug -in para o seu conteúdo são óbvias.

As línguas são a menor das suas preocupações.É o domínio do problema que eles funcionam com o que é complexo.O uso de diferentes línguas, na verdade, torna as coisas mais gerenciável, pois Isso faz com que os limites explícitos e b) as línguas podem ser otimizados para o domínio.

Programação (PHP/JS) e formato de documento (HTML/CSS) são 2 coisas diferentes. Aprender a programar em PHP e JS ao mesmo tempo também será difícil.

Você deve se concentrar no HTML e JS no cliente no início. Você poderia deixá -los programar JavaScript no servidor também. Isso fará com que seja apenas uma linguagem de programação e se concentrará no HTML sobre o CSS para começar.

Depois de aprender o básico do JS e HTML, você pode ensinar a eles uma linguagem de programação lateral do servidor mais usada (como PHP, Ruby, etc.) e CSS.

Django pode fazer parte do caminho pela limpeza. É focado na produtividade. O ensino não é mais fácil do que qualquer outro idioma/estrutura, mas veja da seguinte maneira: quando ensinou essa ferramenta, seus alunos estão bem equipados em seu conhecimento de quão fácil isso deve ser. Eles nunca aceitarão o Java Servelets ou pesadelos semelhantes depois de terem aprendido Django.

Confira OPA: http://opalang.org/

Esta é uma tecnologia de desenvolvimento da Web em sigilo. Parece bastante promissor. Eu fiz muito desenvolvimento na web nos últimos dois anos e se eu tivesse que fazer uma previsão que up e nova estrutura/idioma/tecnologia será a principal maneira de os sites são desenvolvidos em ~ 5-10 anos, eu diria será OPA.

A documentação é ótima, a comunidade é ótima, os tutoriais e a capacidade de resposta às perguntas feitas à equipe que trabalham no projeto são excelentes. No geral, eles parecem ter atenção aos detalhes em relação ao desenvolvimento dessa nova estrutura que parece ser incomparável.

Muitas tecnologias para dominar não é uma coisa boa. Precisamos de um visual básico para a Web, não importa o que os elitistas dizem.

Você precisa de idiomas diferentes para fins diferentes. Na maioria dos aplicativos da Web, realmente está acontecendo bastante, então você precisa dos diferentes idiomas e soluções.

Se o objetivo é unificar em um único idioma, você pode fazer isso. Você pode usar JavaScript no servidor e depois criar as páginas usando document.createElement() e aplicar estilos diretamente ao styles propriedade. E no servidor, armazene seus dados diretamente em arquivos com JavaScript.

Obviamente, isso não funcionaria tão bem. O HTML não é perfeito, mas há uma razão pela qual é tão onipresente- faz o que faz de maneira simples e bem. O CSS é complicado e simplista demais, mas a idéia subjacente de definir regras de excesso para expressar seu design é sólida. E o SQL pode ser uma dor de entender às vezes, mas expressar consultas de banco de dados dessa maneira é expressivo e realmente funciona muito bem.

Dito isto, não estou dizendo que existe ou deve haver uma arquitetura. Não deveria haver. Cada projeto deve usar uma arquitetura de acordo com seus requisitos.

No seu próximo projeto, tente simplificar: você realmente precisa de um banco de dados? Você pode combinar as camadas de visualização para simplificar, usando algo como GWT, Applets, Flash ou .Net? Você realmente precisa servir seu conteúdo em um navegador (que apresenta complexidades CSS, HTML e JavaScript) ou você pode apenas escrever um aplicativo?

Eu acho que sua abordagem pode precisar ser repensada. Pegue isso para o que é, minha opinião, mas acho que essa ordem pode funcionar melhor.

Prioridades principais: (sem ordem específica)

  • Desenvolva habilidades de resolução de problemas
  • Ser produtivo como uma equipe

Próximo:

  • Habilidades básicas de programação (PHP, Python, etc)

Depois que eles sabem como resolver problemas como indivíduos e como equipe, eles podem passar para detalhes como:

  • Modelo de cliente/servidor
  • Markup (html, xhtml, xml, etc)
  • Estilo (CSS)
  • Script do lado do cliente (JavaScript / JQuery)
  • Scripts do lado do servidor (PHP, Ruby, etc)

Construa seu conhecimento sobre o que está envolvido peça por peça, em vez de pular na ponta profunda do bastão - eles ficarão rapidamente sobrecarregados.

Nesse ponto, você pode começar a apresentar coisas como E/S de arquivo e bancos de dados.

Isso lhes dará um conjunto de habilidades bastante abrangente. A partir daqui, eles podem realmente começar a aprender.

Além disso, pode -se ter que lidar com o SQL para armazenamento persistente, memcache para sessões e cache, APIs de sistemas de gerenciamento de conteúdo, OpenID, Facebook, Twitter, OpenSocial etc. para construir qualquer coisa interessante.

Estes são tópicos inteiros para si mesmos, você não pode mordê -los em um pedaço. Especialmente se você estiver levando essas pessoas de 0. Antes de poder construir algo interessante, precisa aprender a construir algo mundano.

Html5 Provavelmente estará mais na veia do que você está procurando em vez de flash ou Silverlight, mas ainda não está aqui ... embora o apoio esteja construindo.

Passos de bebê, Olav - se isso fosse O Matrix Você pode baixar todas essas informações de uma só vez, mas não estamos lá ... ainda ;-)

No momento, e no futuro próximo, o desenvolvimento da Web é a sinergia de muitas tecnologias diferentes trabalhando juntas para oferecer uma experiência interessante do usuário.

Bem, esse é o meu 2 centavos

A natureza multi -disciplinar do desenvolvimento da web é uma das coisas que torna uma alegria trabalhar, especialmente em um ambiente de equipe.

Para trabalhar bem como uma equipe, você naturalmente se reúne com um grupo de pessoas com uma variedade de conhecimentos, desde as pessoas da interface do usuário/gráficos até os Admins de DBAs e SYS. Mesmo dentro de uma única camada do grupo (por exemplo, programadores de back -end), cada pessoa geralmente é especializada em um conjunto diferente, por exemplo, algumas pessoas podem ter mais experiência na interface do usuário, outras para os dados.

Eu levaria essa variedade a qualquer dia, em comparação com o trabalho em uma sala de 10 programadores Java, todos trabalhando em algum aplicativo de middleware.

Se você simplesmente deseja ensiná -los a escrever sites dinâmicos, defina -os através do tutorial HTML no W3schools.com e, depois de terminar, encontre -se uma folha de estilo decente que eles possam incluí -los e defini -los com o PHP. Isso os colocará em funcionamento como um hobby e, se quiserem fazer mais, poderão começar a reunir conhecimentos extras, como CSS e JavaScript.

Ruby on Rails vai para unificar tudo isso, mas para o CSS isso deixa você de fora no frio (embora provavelmente haja algumas estruturas para o ROR que tornam o CSS obsoleto, mas então você tem outra linguagem de marcação, eu acho), E você ainda precisa do JavaScript (embora ele escreva muito JavaScript para você e todo o código do banco de dados).

Por outro lado, sobre seus filhos: a programação é para programadores. Em uma tarde de domingo para montar algo em poucas horas, você precisaria conhecer uma estrutura e comprar alguns plugins e aumentar tudo e se mover sem muito trabalho. Algo como Drupal ou Joomla, onde eles vendem modelos (para Joomla, você pode comprar pacotes de centenas) e plugins para fazer todos os tipos de coisas. E quando isso falhar, seus filhos provavelmente devem saber como ir ao Odesk e perder US $ 100 para fazer algo em sua estrutura. Aprender a programar é bom se você quiser ser um programador. Caso contrário, é melhor aprender o que você precisa para contratar bons programadores ou comprar bons componentes dena e ter dinheiro para fazê -lo.

Último ponto sobre as crianças: deixe -as jogar videogames. Esse é o melhor treinamento que eles podem obter para o que o futuro mantém na loja do lado do computador. Os videogames permitem investigar, jogar e relaxar com o computador. Depois de ter isso, aprender HTML, CSS, JavaScript e alguma pilha de aplicativos é bolo.

AngularJS pode ser uma opção. Ele é intencionado para aplicações de página única e é executada em uma pilha de nodejs e faz algum modelo de Javascript "Magic".

Exemplo (Modelo/Código): Ele liga (via lado de cliente-cliente gerado automaticamente) o valor do campo de entrada ao cabeçalho (H1). Se você digitar algo para o campo de entrada, o texto no cabeçalho será atualizado. E você não precisa escrever o Frontend-Js.

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top