И маркетинг Smalltalk

Я только что вернулся с конференции Smalltalks 2018 в Сальте, Аргентина, где выступил с основным докладом. Он был хорошо принят и вдохновил Ванса Кершнера, генерального директора и основателя LabWare, полностью профинансировать Соревнования по программированию в память о Джеймсе Робертсоне. Я очень доволен результатом.

Далее следует стенограмма.

Спасибо за такое любезное представление.

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

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

Но сначала давайте начнем с истории…

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

Мы скомпилировали исходный код и собрали приложение из командной строки. Даже с сегодняшними современными IDE мы косвенно все еще делаем это.

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

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

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

По иронии судьбы, это возможное будущее смотрело нам в глаза более 40 лет, но мы были слишком слепы, чтобы увидеть это.

Есть такая песня Питера Аллена:

Не выбрасывайте прошлое.
Оно может вам пригодиться в дождливый день
Мечты снова сбудутся
Когда все старое снова станет новым

Это наиболее применимо к Smalltalk.

У него большое историческое наследие. Это было доказано на практике бесчисленное количество раз. По словам Каперса Джонса из Namcook Analytics, ведущего авторитета в области показателей программного обеспечения, Smalltalk является наиболее продуктивным из всех основных языков программирования. Только такие языки, как MUMPS и Mathematica, более производительны, но кто действительно хочет использовать эти языки для общего программирования?

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

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

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

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

Когда BYTE опубликовал статью о Smalltalk в августе 1981 года, Smalltalk стал чем-то вроде сенсации в сообществе программистов. Он был настолько влиятельным, что такие языки, как Objective-C, Erlang и Common Lisp Object System, черпали из него свое вдохновение. Намного позже их примеру последовали Ruby, Python, Groovy, Scala, Dart и другие.

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

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

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

Брет Виктор назвал это представлением исходного кода в двухмерном пространственном виде. Нет исходных файлов. Ваш взгляд сосредоточен только на классах и методах. На презентации в среду Тудор Гирба показал нам следующую важную эволюцию этой идеи (Glamorous Toolkit).

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

Этот был настоящим хитом. Это самая просматриваемая фотография в моей коллекции.

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

В статье 2017 года Каперс Джонс ранжировал языки программирования по производительности. Вот некоторые из цифр:

К наименее продуктивным языкам относятся C и Fortran и, что самое интересное, JavaScript. JavaScript в настоящее время является очень популярным языком, но не таким продуктивным, как заявляют веб-разработчики.

Ruby довольно продуктивен. То же самое и с Objective-C. Но очень немногие из них столь же производительны, как Smalltalk.

Важно понимать, что исследование Namcook Analytics не говорит о том, что все эти языки являются продуктивными по всем направлениям. Excel наиболее продуктивен для приложений с электронными таблицами. MUMPS наиболее эффективен для применения в больницах и здравоохранении. Но самый производительный универсальный язык - это Smalltalk.

Несколько слов о явной кластеризации данных. Например, C ++, Java и Python имеют одинаковое количество рабочих часов. Как объясняет Каперс Джонс, эта таблица представляет собой синтез источников данных из многочисленных исследований клиентов, собранных за годы и «нормализованных», чтобы дать вам возможность кластеризации. Кластеризация - это побочный эффект статистических методов, применяемых к данным.

В 1990-х годах Smalltalk стал самым популярным объектно-ориентированным языком в мире после C ++. C ++ имел львиную долю, но Smalltalk получил приличные 15%, что намного выше остальных участников.

Вот страница из журнала "Computerworld" от 6 ноября 1995 г., на которой показаны решения Smalltalk и C ++.

Smalltalk был настолько хорош для использования в бизнесе, что IBM выбрала Smalltalk в качестве центрального элемента своей корпоративной инициативы VisualAge по замене COBOL. Очевидно, IBM не легкомысленно приняла это решение.

Итак, как вы продвигаете Smalltalk? Моя стратегия была проста. В течение многих лет люди написали множество технических статей и провели множество технических выступлений. Люди вносили свой вклад в различные проекты Smalltalk с открытым исходным кодом.

Однако философия «если построишь, они придут» не сработала. Обращение к людям на интеллектуальной основе не помогло. Smalltalk по-прежнему игнорировался. Я предположил, что нужно было обратиться к людям на эмоциональном уровне, как это делается в маркетинге и рекламе. Smalltalk нужно было продвигать себя так же, как Apple продвигает iPhone, а Илон Маск продвигает Tesla.

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

Я делал маркетинговые сообщения ясными, простыми и сфокусированными. И я повторял эти сообщения снова и снова.

В результате мои статьи достигли многих десятков тысяч людей по всему миру. Одно из них, озаглавленное «Как изучение Smalltalk может сделать вас лучшим разработчиком», собрало более 70 000 просмотров. В Code Project аналогичная статья набрала 12 000 просмотров.

На Quora я ответил на тысячи вопросов с рекомендациями по изучению программирования на Smalltalk. Эти ответы также прочитали десятки тысяч. Итак, в целом о Smalltalk известно намного больше людей. Я считаю, что развеял представление о кончине Smalltalk, но, возможно, это просто высокомерие.

Я попытался организовать соревнование по программированию на Smalltalk в моей родной стране, Канаде. К сожалению, мне не удалось получить финансирование. Однако мои усилия могут дать вам еще несколько маркетинговых идей.

Вот плакат, который я создал.

Вот сайт конкурса, который я создал ...

Вот промо-видео:

Вот несколько дизайнов футболок:

А также

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

Сделайте маркетинг Smalltalk своим приоритетом.

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

Развивать письменные навыки непросто. Это может прийти только на практике. Как и в программировании, чем больше вы напишете, тем лучше станете.

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

Расскажите людям свою историю. Почему вы выбрали Smalltalk? Почему ты остался с ним? Что делает вас счастливым, когда вы используете Smalltalk?

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

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

Smalltalk может в среднем удвоить мировую производительность разработки программного обеспечения. Это окажет огромное влияние на ИТ-отрасль, а также на нашу экономику.

Однако для меня самым большим преимуществом Smalltalk является то, что он возвращает удовольствие от программирования. Когнитивная нагрузка, которую создают Java, Python, JavaScript и C ++, никогда не доставляла мне удовольствия. С помощью Smalltalk я могу понять всю систему. Нет темных углов. Программирование на Smalltalk вызывает у меня улыбку.

И, в конце концов, это единственное, что действительно имеет значение. Большое спасибо.