Подтвердить что ты не робот

Есть ли язык высокого уровня для Интернета?

Преамбула

Для создания динамических веб-сайтов нам необходимо освоить не менее четырех языков:

  • HTML для структуры веб-страниц
  • CSS для макета и дизайна
  • JavaScript для интерактивности
  • Язык для бизнес-правил или динамических данных

Кроме того, существует SQL для постоянного хранения, Memcache для сеансов и кеширования, API для многих различных систем управления контентом. Мы также должны рассмотреть возможность взаимодействия с OpenID, Facebook, Twitter, OpenSocial в создании веб-приложения, чтобы это было интересно.

В общем, это полный беспорядок!

Если вы принимаете во внимание две цели:

  • Обучение веб-разработке детям
  • Пребывание в качестве команды

Вопрос

Какие существуют системы высокого уровня, которые унифицируют HTML + CSS + Javascript + (вставьте язык высокого уровня здесь, предпочитаемый PHP)?


Фон

  • Я инженер-программист с более чем 15-летним опытом работы в качестве руководителя проекта и разработчика с такими технологиями, как Broadvision, Autonomy, Enterprise Java и Oracle.

В последние годы я сосредоточился на сайтах развивающихся сообществ, используя фреймворки Drupal или PHP, такие как CakePHP. Мне нравится веб-разработка и несовпадение импеданса между задействованными технологиями. Тем не менее неизбежный вывод, к которому я пришел, должен быть лучшим способом.

  1. Я отец двух сыновей (13 и 9), и хотя я не хочу, чтобы они стали программистами, я бы хотел, чтобы они понимали компьютеры как больше, чем игровые автоматы. Мне нравится мотивировать их немного поглаживать веб-разработку, чтобы выразить себя.

Всякий раз, когда я показываю им кусочки и кусочки, я бы хотел, чтобы у них был набор инструментов, который позволяет им создавать "интересные" результаты через час или два в воскресенье днем.

4b9b3361

Ответ 1

" Links - это новый язык программирования, предназначенный для упрощения веб-программирования... Ссылки облегчают проблему несоответствия импеданса, предоставляя единый язык для всех трех уровней. Система генерирует код для каждого уровня, например, перевод некоторого кода в Javascript для браузера, некоторые - в байт-код для сервера, а некоторые - в SQL для базы данных.

Сначала я не собирался публиковать это, поскольку это исследовательский проект, а не производственная система; но все эти ответы, в которых говорилось, "что это так, справляйтесь с этим", просили контрпример.

Ответ 2

GWT идет каким-то образом к тому, чтобы быть набором инструментов высокого уровня, позволяя вам писать Java для создания Javascript.

Ответ 3

Как можно научить детей веб-разработке?

Армия детей в веб-разработке - вот что ухудшило нашу профессию, так как сейчас почти каждый называет себя программистом, в то время как для нас становится все труднее и труднее дистанцироваться от них и получать приличную оплату.

Много языков и технологий для освоения? Это хорошо. Пусть будет некоторый барьер входа, чтобы присоединиться к рядам разработчиков.

ДОБАВЛЕНО: Следуя комментариям, я вижу, что я не сделал себя совершенно ясным. Я ничего не говорю о возрасте, будь то 10, 30, 50 или 80. Все дело в отношении. Является ли человек пониманием и признает тот факт, что профессия гораздо важнее, чем перемещение элементов управления с помощью мыши в каком-то дизайнере или CMS. Существует много знаний, в том числе основы CS, алгоритмы, структуры данных, базы данных, архитектура, расширяемость, обслуживание, производительность, масштабируемость, удобство использования, маркетинг и многое другое, которые принадлежат мастерской профессионального разработчика программного обеспечения. Я человек не осведомлен об этих и не делает движения, чтобы обучать себя и стремиться стать все более и более опытными, они не принадлежат к профессии. И пусть это мнение будет предвзятым.

Ответ 4

Веб-программирование - это многоцелевое ремесло.

Основная причина этого - из-за разделения проблем... причина, по которой HTML и CSS, JavaScript, SQL и т.д. не размяты на одном языке, состоит в том, что каждый из них имеет отдельные цели, оговорки, подводные камни и сильные стороны.

Представляете ли вы попытку отладки сайта с SQL, CSS, JavaScript и PHP-кодом, смешанного в одном исходном файле? Возможно, у вас уже было несчастье сделать это. К сожалению, есть буквально тысячи сайтов, написанных таким образом, и это полный кошмар, пытающийся отлаживать или добавлять к таким беспорядочным смешениям представления, данных и структуры.

В общем, полный беспорядок! Как один должен научить веб-разработке дети?

Я думаю, что самое главное - научить основам программирования и заставить их придерживаться. Переменные, логика, указатели, управление памятью, алгоритмы, структуры данных и т.д.

Когда у вас есть основы программирования, легко работать на многоязычных языках, забирать новые и легко меняться со временем. Это бесценный навык для чего-то как постоянно развивающегося и основанного на трендах в качестве веб-программирования.

По-моему, люди, новые для программирования, должны запускаться на языках более низкого уровня, например C. Люди должны быть жесткими, фундаментальными концепциями программирования и должны получить знания о том, что происходит за кулисами, прежде чем даже показывать язык более высокого уровня, такой как PHP или Python.

Я думаю, что это отношение к обучению программированию будет способствовать размножению лучших веб-разработчиков, а также обеспечению барьера входа, который избавит людей от отсутствия интереса или интеллекта. Я думаю, что результатом такого отношения будут лучшие разработчики, лучшее программное обеспечение и, в конечном счете, более мощные языки и инструменты.

Ответ 5

Ближе всего я думаю, что вы получите это .NET. Существует много фреймворков для многих языков, но никто из них не знает об этом абсолютно. Кроме того, вы не должны пытаться убедить детей, что программирование - это прогулка в парке. Это сложная карьера, которая требует большого изучения и поддержания. Мы работаем с технологиями, которые есть здесь сегодня, и ушли завтра.

Если вы думаете об этом, программирование ничем не отличается от плотницких работ или аэронавтики. Почти любая профессия, которую вы выбрали, потребует от вас узнать много разных вещей, чтобы лучше делать то, что вы делаете.

Ответ 6

Как вы должны научить детей веб-разработке? Вау, это тернистый. Как вы учите их хирургии, или права на интеллектуальную собственность, или гражданское строительство? Или в этом случае автомеханика, или сантехника, или общий контракт?

Задумывались ли вы о появлении на ленте Sesame Street?

Elmo не нравится, когда вы trivialize его профессии.

Ответ 7

Промышленность программного обеспечения страдает от неквалифицированных людей, которые ничего не делают, кроме создания продуктов низкого качества и в то же время дистанцируют эту профессию от того, чтобы стать настоящей инженерной дисциплиной. Это не то, чтобы получить сертификацию. Для любви к Богу не "учите" разработку любого программного обеспечения. Объясните им, что создание отличного программного обеспечения происходит только благодаря многолетнему опыту и богатству знаний о прошлых и современных технологиях. Самое худшее, что вы можете сделать, это представить еще один полуобпеченный разработчик, создающий работу для других, работающих с ними. Скажите им, чтобы они получили образование. Я знаю, что это не тот ответ, который вы, вероятно, хотели услышать, но я хотел, чтобы это читалось.

Ответ 8

Я думаю, что проблема с веб-разработкой заключается в том, что она изначально не была разработана для того, что она используется сегодня. Мы создаем богатые клиентские приложения внутри браузера с HTML + CSS + JavaScript плюс любые серверные технологии, генерирующие его. Да, это работает, но это боль, особенно с теми раздражающими браузерами, которые несовместимы. Существование Flash и Silverlight доказывает это. Они позволяют вам создавать приложение с помощью одной технологии, все еще находящейся в браузере. Недостаток необходимости в плагине для вашего контента очевиден.

Ответ 9

Языки - это наименьшее из ваших забот. Это проблемная область, с которой они работают, сложна. Использование разных языков на самом деле делает вещи более управляемыми, потому что: a) он делает границы явными и b) языки могут быть оптимизированы для домена.

Ответ 10

Программирование (PHP/JS) и формат документа (HTML/CSS) - это две разные вещи. Обучение программированию на PHP и JS одновременно будет затруднено.

В начале вы должны сосредоточиться на HTML и JS на клиенте. Затем вы могли бы позволить им программировать javascript на сервере. Это сделает его только одним языком программирования и начнется с HTML-кода над CSS.

Как только они узнают основы JS и HTML, вы можете научить их более широко используемому языку программирования на стороне сервера (например, PHP, Ruby и т.д.) и CSS.

Ответ 11

Django может принять вас частью пути благодаря своей чистоте. Он ориентирован на производительность. Обучение не проще, чем любой другой язык/рамки, но посмотрите на это следующим образом: при обучении этому инструменту ваши ученики хорошо оснащены своими знаниями о том, насколько легко это должно быть. Они никогда не примут Java-сервисы или подобные кошмары после изучения Django.

Ответ 12

Проверьте Opa: http://opalang.org/

Это новейшая технология веб-разработки. Это выглядит довольно многообещающе. За последние пару лет я сделал много веб-разработок, и если мне нужно было предсказать, какие новые рамки/язык/технология станут основным способом создания веб-сайтов через ~ 5-10 лет, я бы сказал, что это будет Opa.

Документация отличная, сообщество великолепен, учебники и отзывчивость к вопросам, задаваемым командой, работающей над проектом, превосходны. В целом они, похоже, обращают внимание на детали в отношении разработки этой новой структуры, которая кажется непревзойденной.

Ответ 13

Многие технологии для освоения - это не очень хорошо. Нам нужен Visual Basic для Интернета, независимо от того, что говорят элитаристы.

Ответ 14

Вам нужны разные языки для разных целей. В большинстве веб-приложений на самом деле происходит совсем немного, поэтому вам нужны разные языки и решения.

Если цель состоит в объединении на одном языке, вы можете это сделать. Вы можете использовать Javascript на сервере, а затем создавать страницы с помощью document.createElement() и применять стили к ним непосредственно в свойстве styles. И на сервере сохраните свои данные непосредственно в файлах с помощью Javascript.

Очевидно, что это не получится. HTML не является совершенным, но есть причина, по которой он так вездесущ - он делает то, что делает это просто и хорошо. CSS является сложным и слишком упрощенным, но основная идея определения переопределяемых правил для выражения вашего дизайна звучит. И SQL иногда может быть больно понять, но выражение запросов к базе данных таким образом выразительно и на самом деле работает очень хорошо.

Говоря, я не говорю, что есть или должна быть одна архитектура. Не должно быть. Каждый проект должен использовать архитектуру в соответствии с ее требованиями.

В вашем следующем проекте попробуйте упростить: вам действительно нужна база данных? Можете ли вы объединить слои представления для упрощения, используя что-то вроде GWT, Applets, Flash или .NET? Вам действительно нужно обслуживать свой контент в браузере (который вводит сложности CSS, HTML и Javascript), или вы можете просто написать приложение?

Ответ 15

Я думаю, что ваш подход, возможно, потребуется переосмыслить. Возьмите это за то, что это, мое мнение, но я думаю, что этот порядок может работать лучше.

Верхние приоритеты: (нет конкретного порядка)

  • Разработка навыков решения проблем.
  • Быть продуктивным как команда.

Далее:

  • Основные навыки программирования (PHP, Python и т.д.)

После того, как они знают, как решать проблемы как отдельные лица и как команда, они могут перейти к особенностям, таким как:

  • Модель клиент/сервер
  • Разметка (HTML, XHTML, XML и т.д.)
  • Styling (CSS)
  • Клиентские скрипты (JavaScript/jQuery)
  • Серверные скрипты (PHP, Ruby и т.д.)

Создайте свои знания о том, что связано с куском, а не прыгает в глубокий конец с места в карьер - они будут быстро перегружены.

На этом этапе вы можете начать вводить такие вещи, как файлы ввода/вывода и базы данных.

Это даст им достаточно полный набор навыков. Отсюда они действительно могут начать учиться.

Кроме того, возможно, придется иметь дело с SQL для постоянного хранения, Memcache для сеансов и кеширования, API-интерфейсами систем управления контентом, OpenID, Facebook, Twitter, OpenSocial и т.д., чтобы создать что-нибудь интересное.

Это целые темы для себя, вы не можете откусить их всех в одном куске. Особенно, если вы забираете этих людей из 0. Прежде чем вы сможете создать что-то интересное, вам нужно научиться строить что-то мирское.

HTML5, вероятно, будет больше в духе того, что вы ищете, а не Flash или Silverlight, но он еще не совсем здесь... Хотя поддержка строится.

Детские шаги, Олав - если бы это была "Матрица", вы могли бы загрузить всю эту информацию одним выстрелом, но нас там нет... -)

На данный момент и в ближайшем будущем веб-разработка представляет собой синергию многих разных технологий, работающих вместе, чтобы обеспечить интересный пользовательский интерфейс.

Хорошо, что мои 2 цента

Ответ 16

Многодисциплинарный характер веб-разработки - это одна из тех вещей, ради которой приятно работать, особенно в командной среде.

Чтобы хорошо работать как команда, вы, естественно, собираетесь вместе с группой людей с большим опытом, от пользователей UI/графики до администраторов баз данных и системных администраторов. Даже в пределах одного уровня группы (например, программисты на заднем плане) каждый человек обычно специализируется на другом наборе, например, некоторые люди могут иметь больше опыта в отношении пользовательского интерфейса, а другие - к данным.

Я бы принял это разнообразие в любой день, по сравнению с работой в комнате из 10 программистов java, работающих над некоторым программным обеспечением промежуточного программного обеспечения.

Ответ 17

Если вы просто хотите научить их писать динамические веб-сайты, задайте их, пройдя через учебник по HTML на w3schools.com, и как только они закончатся, найдите себе достойную стильную таблицу стилей, которую они могут включить и настроить для PHP. Это запустит их и запустит как хобби, и если они захотят сделать больше, они могут начать собирать дополнительные знания, такие как CSS и JavaScript.

Ответ 18

Ruby on Rails - это путь к объединению всех этих, но для CSS он оставляет вас на холоде (хотя, вероятно, есть несколько фреймворков для RoR, которые делают CSS устаревшим, но тогда у вас есть другой язык разметки, я подумайте), и вам все еще нужен Javascript (хотя он пишет много Javascript для вас и весь код DB).

С другой стороны, о ваших детях: программирование для программистов. В воскресенье днем, чтобы собрать что-то вместе через несколько часов, вам нужно будет знать структуру и купить плагины, и все будет двигаться и работать без особых усилий. Что-то вроде Drupal или Joomla, где они продают шаблоны (для Joomla вы можете купить сотни сотен) и плагинов, чтобы делать всевозможные вещи. И когда это не удается, ваши дети должны, вероятно, знать, как пойти на ODesk и сбросить 100 долларов, чтобы что-то сделать на вашем фреймворке. Обучение программированию является хорошим, если вы хотите быть программистом. В противном случае, лучше всего узнать, что вам нужно, чтобы нанять хороших программистов или купить хорошие компоненты-предки, и иметь наличные деньги для этого.

Последний вопрос о детях: пусть они играют в видеоигры. Это лучший тренинг, который они могут получить за то, что ждет в будущем на компьютере. Видеоигры позволяют исследовать, играть и отдыхать с компьютером. Как только вы это сделаете, изучение HTML, CSS, Javascript и некоторых стеков приложений - это торт.

Ответ 19

angularjs может быть вариантом. он предназначен для одностраничных приложений и запускается в узле nodejs-стека и выполняет некоторые магии шаблона javascript.

example (template/code): Он связывает (через auto-generated-client-side-js) значение из поля ввода с заголовком (h1). Если вы введете что-то в поле ввода, текст в заголовке будет обновлен. И вам не нужно писать frontend-js.

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