Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Android

История языков программирования: 2000-е

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

Языки программирования сыграли важную роль в этих метаморфозах. Узнаем, какие из них появились в первом десятилетии XXI века и как способствовали прогрессу.

В начале 2000-х форм-фактор зачастую играл ключевую роль

Продолжение битвы

Начнем с того, на чем остановились в прошлой статье. Компания Microsoft в конце 90-х приступила к разработке C#, который должен был оспорить господство Java. Новый язык был представлен в 2000 году, но увидел свет только в 2002. Причина задержки заключалась не только в желании победить все «болячки» Java, но и в меняющихся тенденциях на рынке IT. Прежде в Microsoft ориентировались на создание десктопных приложений для Windows, но поняли, что это путь в никуда. Требовалась новая программная платформа, которая бы замкнула на себе множество языков, а также позволила работать с вебом, мобильными и стационарными устройствами. Так появилась .NET, представленная вместе с C# в 2000 году.

Этот шаг позволил в долгосрочной перспективе поднять интерес как к языку, так и ко всем продуктам Microsoft. Но компания уже допустила главный просчет. В конце 90-х ведущие производители мобильных устройств, среди которых — Nokia, Ericsson и Motorola, объявили о создании новой системы Symbian. Изначально она была закрытой, приложения писались на языках ассемблера и C, но долго игнорировать влияние Java было невозможно. Уже к началу 2000-х пользователи мобильных устройств могли устанавливать приложения на базе Java ME (ограниченной версии языка). Пока C# собирал аудиторию, Java уже работал на каждом втором смартфоне. Microsoft еще долго будет пытаться переломить эту ситуацию, но так и не преуспеет.

Зато у C# прекрасно пошли дела в игровой сфере. Как и сегодня, в 2000-х среди консольных приставок основная борьба разворачивалась между Sony PlayStation и Microsoft Xbox. Первая использовала в качестве базы C и язык ассемблера, потом перешла на собственный скриптовый язык. Фактически, Sony PlayStation была закрыта для сторонних разработчиков. Продукт компании Microsoft опирался на C++ и C# — в частности при работе с графическим движком Unity. Популярность C# возросла, но догнать Java так и не получилось: конкурент имел серьезное влияние на веб, а к концу десятилетия стал фундаментом системы Android.

Масла в огонь подливали и новообразованные языки. К примеру, Groove, работающий на базе JVM, подтягивал синтаксис Java к простоте Python, сохраняя функциональность — поэтому привлек внимание. Менее известные примеры: Whiley, AspectJ, Join Java, Tea. Свою нишу занял и появившийся в 90-х JavaScript.

Новый вектор обучения

Создание языков программирования для обучения — тенденция, берущая начало в 60-х годах. В первом десятилетии XXI века появился ведущий «детский» язык — Scratch. Разработанный в MIT, он позволял на основе простых графических блоков создавать анимацию. Первые 10 лет существования не принесли языку заслуженной славы. Дело в концепции, согласно которой программировать приходилось непосредственно в браузере. Из-за ограничений на трафик и скорость начинающие программисты со всего мира не могли себе позволить долго возиться с этим продуктом.

Виток функционального программирования

Функциональное программирование было актуальным решением в начале эпохи персональных компьютеров. Тогда сложные коды, привязанные к конкретным данным, было разумно замещать моделями, сокращая объем кода и увеличивая производительность. Новые языки и появление полноценного ООП заставили большинство разработчиков вернуться к императивному программированию, оставив за функциональным роль дополнения. Но в XXI веке все изменилось.

Частично этому способствовала новая волна маломощных машин (смартфонов). Высокие требования при скромной производительности вынуждали программистов мыслить функциями, а не привязываться к данным. Частично на популярность ФП повлиял новый язык — Clojure, диалект Lisp, работающий на основе виртуальной машины Java. Он будто связал десятилетия, позволив в новой эре применить известные принципы ФП. Чуть позже появился еще и ClojureScript для работы с JavaScript. Это был сигнал разработчикам языков: пора вводить возможности полноценного функционального программирования.

Big data

В 2008 году редактор журнала Nature Клиффорд Линч ввел понятие «большие данные». Этот термин он использовал при анализе растущего объема информации, поступающей в сервисы и социальные сети. Ведущие компании столкнулись с проблемой: необходимо было придумывать новые методы обработки и хранения данных, чтобы отвечать потребностям общества. Частично это решалось функциональным программированием, но требовались и новые специализированные языки.

Компания Google нашла выход в использовании нейронных сетей и языка для обработки данных — Go. Он должен был стать полноценной альтернативой C и C++, улучшив читаемость кода, документируемость, скорость сборки программ и множество других аспектов. Go так и не стал панацеей, но заслужил репутацию удобного и надежного инструмента для сложных разработок.

Гонка мобильных вооружений

Чтобы понять, насколько быстро менялись технологии в первом десятилетии XXI века, достаточно вспомнить события на рынке мобильных телефонов. Он стартовал с огромными черно-белыми «коммуникаторами» под управлением закрытых операционных систем. Им на смену пришли кнопочные «смартфоны» с Symbian. Уже к концу десятилетия все эти наработки устарели — на рынке сенсорных аппаратов бушевала битва iOS и Android.

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

В Apple избрали другой путь — использовать собственные наработки. Objective-C был создан в 80-х как одно из множества ответвлений языка С. Возможно, он так и канул бы в ХХ веке, если бы не приглянулся разработчикам компании NeXT и операционной системы NEXTSTEP. Компьютер NeXTcube собрал массу положительных отзывов, но не получил распространения из-за высокой стоимости проекта.

Главой NeXT был Стив Джобс. Он не только удержал компанию на плаву и выгодно продал ее Apple, но и внедрил все наработки в «яблочные» продукты. Надежность и быстродействие стали визитной карточкой Mac OS и iPhone OS.

В отличие от Android, который имеет открытый исходный код, системы Apple изначально были закрытыми для сторонних разработчиков. Компания выпускала средства разработки приложений после того, как оценивала заинтересованность в продуктах. Так случилось и с MacOS: Xcode была представлена спустя 2 года после платформы, — и с iOS: через год была обнародована SDK. Разумеется, исходные коды при этом не открывались и разработчики не получали полной свободы в персонализации. Родилось главное идеологическое противостояние в  IT 2010-х годов: анархическая свобода против бесконечных ограничений, массовость против качества, доступность против безопасности.

Поговорим об этом в следующей статье.

Пройти обучение

29 июн 18, 11:03
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

GeekBrains запустил мобильное приложение под Android

В середине марта мы анонсировали запуск нового мобильного приложения под iOS. Пока владельцы мобильных устройств от Apple радовались, поклонники Android спрашивали в комментариях, когда и им можно будет получить удобный доступ к GeekBrains.

Новое приложение ждёт вас в Google Play. И пока оно скачивается, давайте познакомимся с ним поближе.

 

Авторизоваться можно с помощью логина и пароля или через Вконтакте, Facebook, Twitter, Google, GitHub.

Сейчас в приложении доступны самые востребованные с мобильных устройств функции — «Вебинары», «Блог» и «Форум». На главной странице мы собираем самое интересное из каждого раздела.

 

Совершенствоваться в разработке помогут разделы «Вебинары» и «Форум». В первом собраны все бесплатные видеозанятия, которые проводили преподаватели GeekBrains и приглашённые спикеры. Теперь понравившийся вебинар можно пересмотреть в пробке или в метро.

С особенно сложными вопросами можно обратиться к более опытным коллегам на форуме. Все темы генерируются в две ленты: общую и с вашими запросами — это делает поиск удобнее.

 

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

 

Постепенно приложение получит все функции сайта, чтобы учиться и общаться стало ещё приятнее.

Пройти обучение

26 апр 18, 11:47
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Мобильные приложения: как оценить основную идею

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

Выбираем идею

Востребованное мобильное приложение соответствует трем принципам: people, tech, business.

Принцип People — приложение должно вызывать желание им пользоваться.

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

Громкий проект «шлем виртуальной реальности для программистов» потерпел фиаско. На первый взгляд идея — бомба. Программист надевает шлем и погружается внутрь кода. Его ничто не отвлекает, он полностью сосредоточен. Но на практике оказалось, что картинка получается недостаточно четкой для написания кода. Текст выглядит размытым.

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

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

Приложение должно решать четыре задачи:

  • Преследовать цели бизнеса.
  • Решать проблемы бизнеса: оптимизировать, упрощать, делать удобнее.
  • Решать проблемы пользователя.
  • Создавать дополнительную ценность для пользователя.

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

Отбираем функционал

Количество дополнительного функционала может быть ограничено только фантазией и финансированием создателей. Однако не все задуманные функции нужно реализовывать. Некоторые будут слишком затратны в разработке, другие — не востребованы пользователями. Чтобы создать только необходимый функционал, следует провести исследования.

«Ценность против рисков». Матрица используется для отбора функций для разработки и расставления приоритетов очередности. Необходимо каждую функцию оценить по типам риска:

  • просрочить дедлайн;
  • превысить финансирование;
  • не справиться с разработкой.

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

Buy a feature. Методика основана на принципе геймификации. Проводится среди потенциальных пользователей мобильного приложения. Все функции необходимо оценить по трем критериям:

  • время разработки;
  • сложность реализации;
  • необходимые ресурсы.

Затем для каждой функции назначаем цену. Всем участникам выдаем определенное количество денег в размере от ⅓ до ½ стоимости всех функций и предлагаем купить нужную. Поведение пользователей покажет, какой функционал важен и насколько.

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

I like it — I expect it — I am neutral — I dislike it but can accept it — I dislike it and can not accept it 

На основании ответов строится диаграмма, где:

  • attractive — то, что пользователи не ожидают увидеть и чем они восхищаются и готовы поделиться;
  • performance — то, что является конкурентным преимуществом;
  • must-be — то, что ожидают увидеть в приложении;
  • indifferent — то, что не вызывает эмоций у пользователей.

Оси координат обозначают: ось Х — функционал, ось Y — удовлетворенность.

Также каждой функции пользователи присваивают приоритет от 1 до 9 баллов, где 1 - совсем не важно, 9 - очень важно. Кроме этого, каждый вариант ответа имеет свой показатель в баллах:

  • I like it — 4;
  • I expect it — 2;
  • I am neutral — 0;
  • I dislike it but can accept it — (-1);
  • I dislike it and can not accept it — (-2).

Подсчитываем ответы и получаем точки в системе координат, по которым строится модель.

Оцениваем стоимость

Широта функционала мобильного приложения напрямую влияет на стоимость его разработки. Для предварительной оценки создателям нужно знать две переменные: количество часов, необходимых для разработки конкретного функционала, и стоимость часа разработки. Таким образом, получим предварительную стоимость каждого реализованного решения. Сумма решений будет общими затратами на разработку приложения.

Существуют специальные интернет-проекты, которые позволяют выяснить ориентировочную стоимость разработки приложения. Они работают как калькуляторы: отвечаете на вопросы, получаете цену разработки. Популярные проекты:

Разработка MVP (minimum viable product) занимает примерно от двух недель до четырех месяцев. По оценке портала AppTractor, стоимость разработки MVP в 2017 г. составляет 150-250 тысяч руб. на одну платформу или 350-450 тысяч руб. на обе платформы и серверную часть.

По данным компании Aspirity, стоимость разработки мобильных и веб-продуктов зависит от типа подрядчиков. Самый экономный вариант — договор напрямую с программистом и оплата в «черную».

Разработчик

Цена за час, руб.

Лендинг

(50 ч)

MVP (150 ч)

Мобильное приложение на 1 платформу  (300 ч)

Программист, оплата в конверте

550

27 500

82 500

165 000

Программист, оплата через ИП

600

30 000

90 000

180 000

Фрилансер

850

42 500

127 500

255 000

Программист в штате

850

42 500

127 500

255 000

Веб-студия

1300

65 000

195 000

390 000

Тестируем гипотезу

Каждая придуманная идея — гипотеза, которая должна быть подтверждена или опровергнута. Существует ряд методик и тестов. Самый элементарный — «коридорный тест». Основатели рисуют на бумаге макет будущего приложения и выходят с опросом «в коридор», т. е. опрашивают друзей и знакомых, насколько им нравится идея и будут ли они пользоваться таким продуктом. На коридорной стадии отсеиваются самые нежизнеспособные варианты.

Другие способы тестирования предполагают наличие MVP — минимально жизнеспособного продукта. Его создание не должно занимать много времени, но реализация должна включать главные функции приложения. Две основные задачи стоят перед MVP. Первая - дать возможность потребителю оценить продукт. Вторая - собрать информацию для подтверждения или опровержения гипотезы.

MVP для предзаказа. Основная идея тестирования — найти потенциальных покупателей или инвесторов. Создатели могут сделать прототип проекта или разработать сайт, чтобы рассказать о приложении, показать, для чего оно будет создано и какие проблемы решит. После этого попытаться найти желающих купить будущий продукт. Это может быть соглашение о намерениях или предзаказы на краудфандинговых платформах Kickstarter или Planeta.ru. В любом случае создатели ждут от потенциальных покупателей денежных обязательств, а не просто контактных данных в виде имени и телефона.

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

MVP «Волшебник страны Оз». В этом варианте создатели вручную делают то, что программа должна делать автоматически. На одной стороне — потребитель, который использует приложение в соответствии с заявленным функционалом, а на другой стороне — разработчики, которые вручную выполняют заявленный функционал, потому что приложение еще не готово. Они создают «волшебство» для пользователя вручную. Такое тестирование позволяет собрать информацию о поведении целевой аудитории и о готовности клиентов платить. Применяют этот тип тестирования в следующих случаях:

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

MVP «Консьерж». Тестирование похоже на «Волшебника страны Оз», но в этом варианте пользователь знает, что с ним работают лично и индивидуально. Здесь разработчики выступают в роли высококвалифицированного консьержа, готового выполнить запросы клиента. «Консьерж» применяют, когда успех приложения зависит от каждого пользователя (например, приложение для работы внутри компании), или основные потребители находятся оффлайн, или невозможно заранее оценить операционные расходы и логистику выполнения услуги. Тестирование позволяет собрать информацию о целевой аудитории и оценить возможности монетизации.

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

Заключение

По данным AppAnnie, количество новых приложений растет в геометрической прогрессии. За октябрь 2017 г. в Google Play было добавлено 150 тысяч новых приложений, в App Store — 50 тысяч. Всего на конец октября 2017 г. суммарное количество мобильных приложений в Google Play и App Store составляет 5,5 млн. В таких условиях добиться успеха новому приложению не просто. Чтобы создать востребованный продукт:

  1. Выбирайте идею, опираясь на принципы people, tech, business.  
  2. Проводите исследования целевой аудитории до разработки.
  3. Включайте в приложение только востребованный функционал.
  4. Тестируйте гипотезу с помощью MVP.
Пройти обучение

29 мар 18, 19:23
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 11 по 13 | всего: 13

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru