kmp news

      

JavaScript

 

 

 

Почему JavaScript?

Много плюсов:

  • программы на JavaScript – обычный текст и не требуют специальной подготовки

  • не требует компиляции (весь код базируется на тексте)

  • все основные браузеры имеют интерпретатор JavaScript, тестирут и выполняют скрипты прямо на странице

  • очень востребован в эпоху HTML5 (что даже вызвало массовую переориентацию на JavaScript).

  • позволяет сделать всё нужное учителю (преподавателю) языка!

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

  • позволяет создавать приложения гораздо быстрее, чем Java или C# (но создаёт проблемы с пониманием у программистов, привыкших к определённости строго типизированых языков) объединяя объектно-ориентированный и функциональный подходы, структурное программирование и др.

  • позволяет менять код где угодно и когда угодно, использовать чужой код (полная свобода требует высокой внутренней культуры и ответственности!)

  • позволяет создавать программы с высоким уровнем стабильности (за счет молчаливой обработки ошибок — если программа может продолжаться — она с большой вероятностью продолжится).

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

  • обладает динамической типизацией (позволяя создавать нужные типы классов вручную.

  • обладает высоким уровнем интроспекции (позволяет подстраивать язык под себя в широких пределах).

  • имеет множество библиотек с наборами многократно используемых объектов и функций: jQuery, AngularJS, Ember.js, Adobe Spry, Dojo Toolkit, Extjs, , Mootools, Prototype, Qooxdoo, Underscore и др...

Один минус JavaScript:

  • профессиональное программирование на JavaScript  во многих аспектах сложнее, чем на Java или C#, требует высокого уровня концентрации и хорошего понимания архитектуры.
    Если в строго типизированных языках очевидны хотя бы типы аргументов, принимаемых в функцию, то в JavaScript нужно все эти данные держать в голове. Порой нельзя быть уверенным даже в том, какие методы имеет тот или иной объект. Но кто готовит о профессиональном программировании?

 

 

 

Современная разработка на JavaScript

 

Мир JavaScript в 2021 году


5 JavaScript Tools to Look Out For in 2021

2020 JavaScript Rising Stars

Список инструментов разработчика JavaScript 2019

 

 

 

 

JavaScript

JavaScript  - разработан в 1995 Бренданом Айком (Brendan Eich).

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

Чтобы они были исполнены, JavaScript должен поддерживаться браузером.

Подробнее: https://ru.wikipedia.org/wiki/JavaScript

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

Другой распространённой средой исполнения JavaScript является веб-сервер.

 

 

 

Brendan Eich - создатель JavaScript

Брендан Айк - скромный герой ИТ-индустрии.

  • Брендан Айк родился 4 июля 1961 года в Питтсбурге (штат Пенсильвания). В 1986 году он окончил Иллинойский университет...

  • в 1995 Брендан Айк начал работать в Netscape над задачей внедрения языка программирования в браузер Netscape Navigator.

  • Брендан Айк разработал скриптовый язык LiveScript для реализации интерактивности в HTML-документах, которые прежде были статичными.

  • в декабре 1995 года специфицирован JavaScript 1.0. Авторство и концепция JavaScript принадлежат Брендану Айку, но он сам рассказывает, что был только участником команды.

  • с 1998 года Брендан Айк работает в Mozilla Organization (Mozilla Foundation), в т.ч. генеральным дирекотором.

  • в 2014 г. гендиректор Mozilla Брендан Айк объявил об отставке, из-за того, что в 2008 году выделил из личных средств $1000 в поддержку «Предложения 8» в калифорнийское законодательство, которое определяло брак как «союз между мужчиной и женщиной». Поправка была принята, однако в 2013 году её отменил Верховный суд США. Сам Брендан женат на женщине по имени Элеанор. У них есть совместные дети.

    • Политика Mozilla в области найма: никаких католиков, протестантов, православных,  мусульман, иудеев... — считающих, что брак это союз мужчины и женщины.

    • см. Месть геев

В январе 2016 года Брендан Айк (CEO Brave Software, $7 млн. инвестиций) запустил новый open source браузер Brave , блокирующий рекламу и защищающий приватность пользователей.

  • Brave основана на движке Chromium и Node.js.

  • Brave позволяет совершать микроплатежи (BitGo и Coinbase). В браузере по умолчанию отключено осуществление платежей в пользу сайтов., которые полагаются на создаваемый пользователями контент, например, YouTube и Twitter.

  • Брендан Айк

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

  • бизнес-модель Brave вызвала недовольство NYT, WP и WSJ, усмотревших в этом угрозу своим интересам.

Брендан Айка ("How to fix the web" 10 нояб. 2016 г.): https://youtu.be/zlcnOr81lPc

 

 

 

 

JavaScript среди других языков

 

http://www.tiobe.com/tiobe-index/
JavaScript Is Everywhere [Infographic]

 

 

 

Структура JavaScript

Структура JavaScript:

  • ядро (ECMAScript).

  • объектная модель браузера (Browser Object Model).

  • объектная модель документа (Document Object Model или DOM).

Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения, не ограничивая авторов производных языков в расширении их новыми составляющими.

Объектная модель браузера — прослойка между ECMAScript DOM, обеспечивающая:

  • управление окнами браузера 

  • управление фреймами,

  • системные диалоги,

  • поддержку работы с HTTP cookie и др.

Объектная модель документа (DOM) -  представление  документа (веб-страницы)  в виде дерева объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции.

 

 

 

Первый скрипт

JavaScript-код на странице помещается в контейнер <script></script> (желательно внутри контейнера <head></head>).

Контейнеров <script></script> в одном документе может быть сколько угодно.
 

Скрипт, выводящий модальное окно с  надписью «Привет, Орлова Ева Адамовна!»:

<script type="application/javascript">
alert('Hello, World!');
</script>

Пример страницы с данным скриптом (см. код).

 

 

 

ТECT

 

Какой язык программирования подойдет вам лучше всего?

 

 

 

 

Изучаем JavaScript

 

После изучения основ JavaScript стоит начать обращать внимание и на другие языки программирования.

Можно посмотреть на Java. 

Затем стоит изучить алгоритмы и структуры данны.

 

 

 

О книгах по программированию

 

Андрей Янковский (JS-тимлид CSSSR):

  • Года четыре назад (в 2013-ом)  я очень увлекался книгами по программированию, но сейчас считаю, что есть куча более быстрых и удобных способов получить знания. Если всё-таки говорить про книги, которые я бы посоветовал прочесть, то это:

  • После их прочтения, или хотя бы знакомства с ними, начинаешь понимать, как все на самом деле работает.

  • Есть книги по отдельным технологиям, по тому же JavaScript, но они вообще не нужны.
    Обычно это написанная своими словами стандартная документация языка
    .

 

 

 

 

TrumpScript

 

В университете Райса (Rice University) в рамках хакатона был создан за 24 часа язык программирования TrumpScript, основанного на Python, который имитирует поведение Дональда Трампа интересными особенностями:

  • Если вы допустите ошибку в коде, то интерпретатор не признает её, вместо этого выдав одну из цитат Дональда.

  • Язык не воспринимает числа меньше миллиона.

  • При установке нельзя выбирать страну «Китай» или «Мексика».

  • Вместо True и False есть Fact и Lie.

  • Все программы должны заканчиваться словами «America is great».

Исходники TrumpScript доступны для всех на GitHub.

Сообщество программистов на GitHub уже начало предлагать свои идеи по развитию языка.

 

 

 

 

Почему не Java?

 

В сравнении с JavaScript программирование на Java сложнее (как и сам язык), строже (обязательно объявлять классы и реализовывать их методы), требует освоения и обязательного использования сложного инструментария.

 

William Peppard Ross
Master Java In 3 Months? (почитатйте!), там:

  • I spent four years working as a Java programmer and I was not close to being the best Java programmer on my team. There is simply no way somebody can become the best-globally-ranked-Java-programmer with three months of boot camp experience.

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

 

Оплата профессионального программирования на Java, в целом, выше, однако:

 

Filip Spiridonov:

  • Закончил институт, имею 3 года опыта работы Java Developer-ом. 

  • Передо мной встала проблема выбора:
    1. Идти работать как уже умею, на Java
    2. Переквалифицироваться в «разработчика переднего конца» (JavaScript)

  • С Java все понятно: зарплаты большие, спрос есть.

  • Но JavaScript, как мне кажется, является очень перспективным, хотя это еще не все осознали.
    1. Для серверной части, помимо Java, есть много альтернатив (Python, Ruby, PHP, и т.д.). На клиенте, все сводится к JavaScript
    2. Идея Single Page Applications — очень хороша и архитектурно более правильная. Зачем каждый раз передавать один и тот же HTML с сервера на клиент? Обмениваться нужно только данными. С развитием фреймворков (Angular, Ember, и др.), писать SPA станет проще и их станет больше.

  • Пока, я более склоняюсь к переходу на JavaScript. Что посоветуете?

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


А если всё же Java?

Можно попробовать JavaRush — онлайн-курс обучения программированию на Java

Обучение на  JavaRush в два этапа.
Первый этап - это курс
Java Core + шаблоны проектирования, работа с XML, HTML, JavaScript, JSON, фреймворки Jsoup, Jackson, Tomcat :)

 

 

 

 

 

Языки поверх JavaScript

 

Разработаны языки, которые позволяют кодить «поверх» JavaScript, а для запуска в браузере – при помощи специальных инструментов (переводчиков, трансляторов) превращают код на этих языках в обычный JavaScript-код.

Примеры:

  • CoffeeScript – «синтаксический сахар» поверх JavaScript для большей ясности и краткости кода.

  • TypeScript сосредоточен на добавлении строгой типизации данных. Он предназначен для упрощения разработки и поддержки больших систем. Разрабатывается Microsoft.

  • Dart не только транслируется в JavaScript, как и другие языки, но и имеет свою независимую среду выполнения, которая даёт ему ряд возможностей и доступна для встраивания в приложения (вне браузера). Разрабатывается Google.

 

 

 

 

Как не надо идти в IT
 

The Story Of The Fraudulent Coder

 

kmp