Представьте, что вы сидите на скучнейшем уроке литературы: кто-то спит, кто-то рисует в тетради, кто-то чатится в ICQ, кто-то проходит очередной уровень Gravity Defied, а вы люто набираете на своём Sony Ericsson программу на Бейсике, которая случайным образом выводит имя одного из одноклассников и какой-нибудь слегка обидный неправдивый факт о нём. Наконец, последние строчки дописаны, вы запускаете программу и показываете её соседу по парте, потом телефон уходит на другой ряд и… к концу урока добрая половина класса уже потирает ладони, чтобы хорошенько отвесить вам подзатыльников за такие приколы. Но последствия не так важны, как эйфория от того, что путь мобильной разработки для вас только-только начинается.

Это был 2006 год. У многих из нас ещё не было ПК, зато были мобильные телефоны с небольшими экранами, ограниченный доступ в Интернет и много свободного времени, которое хотелось потратить на реализацию какой-нибудь идеи.

Mobile Basic

Отцом мобильной разработки можно считать Дэвида Фёрта — создателя Mobile Basic. Даже если это было не первое в мире приложение, которое позволяло программировать на мобильном телефоне, зато оно явно было широко распространено. Mobile Basic имел большой набор команд: арифметические и строковые операции, работа с датой и временем, чтение/запись из RMS (внутренняя память приложения), пользовательский ввод (как строки, так и нажатые клавиши), вывод форм, а также рисование в Canvas. Не всегда это работало как следует: формы иногда приводили сони эриксоны 5 поколения в ребут, а канвас мигал у всех.

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

Был у Mobile Basic ещё один недостаток:

Автор давал пользоваться приложением лишь 30 раз и за снятие ограничений требовал £20 (~$26), хотя потом снизил до £5, но возможности это оплатить у нас не было.

Конечно, ограничения легко обходились простой переустановкой программы, но это были излишние неудобства. Тогда народные умельцы (Bloodmage) нашли обход и прямо в переводе указали данные для успешной регистрации, добавив ко всему прочему ещё и ввод кириллицей.

На тот момент последней официальной версией был Mobile Basic 1.8. Сообщество пользователей мобильного бейсика росло, появлялись темы по нему на известных форумах. Иногда даже одной темы было мало и приходилось создавать отдельные: Вопросы по Mobile Basic, Игры и программы на Mobile Basic, и т.п. Также появился сайт MBTeam, собравший нескромную по тем меркам фанбазу. Проходили конкурсы по программированию и геймдеву, где игры на мобильном бейсике нередко утирали нос играм, созданным с помощью ПК на MIDlet Pascal или Java ME. Кто помнит шедевры от Keitaro и Vapigor — подтвердят.

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

Оставалась ещё проблема с ребутом на SE 5 поколения, которая заключалась в каком-то баге производителя с синхронизацией wait/notify в формах. Вот этот код, если вызывался при показе формы, приводил к ребуту:

synchronized(someObject) {
  someObject.notify();
}

Тут уже помогал я, правда не с исходников, а редактируя байткод.
Так Mobile Basic дорос до версии 1.8.6.2 и на долгое время на ней и остался.

MobilePascal

MobilePascal от CPU можно назвать первым мобильным языком программирования от разработчика с СНГ. Не стоит путать с MIDlet Pascal, то была программа для ПК. MP, как и MB, имел функции для работы с арифметикой, формами, графикой, имел даже системные функции и умел совершать звонки и отправлять SMS. К сожалению, критическим недостатком этой программы была его большая заточенность под API телефонов Siemens, вследствие чего приложение не запускалось на других телефонах даже после попыток его портировать. Тем не менее сименсы были у многих и аудитория у языка программирования тоже была. Я видел несколько хороших полезных программ, написанных на Mobile Pascal.

ClassEditor

Помимо программирования на телефоне мы ещё занимались и ковырянием байткода в class-файлах. По сути изучали Java совершенно не с той стороны, с которой её принято учить. ClassEditor от dzanis — HEX-редактор с упором на редактирование классов. Помимо стандартных для HEX-редакторов преобразования систем счисления и поиска по байтам/строкам

в ClassEditor был дизассемблер:

В большинстве случаев мы просто занимались переводом программ, изменяя строки в константном пуле. Иногда правили игры, добавляя туда бесконечные жизни или сразу открытые уровни. А ещё исправляли коды клавиш джойстика, чтобы игра, адаптированная для одной марки телефонов, нормально работала на другой. Дизассемблер очень помогал проверить всё ли правильно сделано, экономя время. Иначе пришлось бы с телефона закидывать отредактированный class в архив, переустанавливать программу и видеть ошибку приложения.

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

LM

Также были попытки сделать собственный язык программирования. Пожалуй, первым таким был LM (Language for Mobile phones) от В.Е.А.

Автор начинал разработку ещё тогда, когда Mobile Basic не имел ввода кириллицей, поэтому его язык программирования призван был исправить ситуацию. Но потом MB стал развиваться очень быстро и тогда В.Е.А. решил перепрофилировать LM в первый язык программирования для мобил с командами на русском языке.

Пример кода на LM (взято из документации от самого автора):

{
  цвет 100,100,255
  стиль жирный
  надпись "Привед медвед!",%1,%2
  нарисовать
}

TextCompiler

Были у нас и транспайлеры. TextCompiler от Counter является уникальным проектом, так как позволял преобразовать код в стиле улучшенного бейсика (несуществующей версии 1.8.7) в код для мобильного бейсика 1.8.6. При этом программа была написана на… Mobile Basic 1.8.6.

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

@inp:
INPUT "X=?",X%
IF X%<0 THEN GOTO @less
IF X%>0 THEN GOTO @greater
PRINT "X=0":END

@less:
IF X%=-100 THEN GOTO 100
PRINT "X<0, X<>-100"
END
100 PRINT "X=-100":END

@greater:
IF X%=100 THEN GOTO 100
PRINT "X>0, X<>100"
END
100 PRINT "X=100":END

Скорость работы программы была не очень высокой, к тому же при обращении к файловой системе приходилось подтверждать доступ к файлам, поэтому Counter добавил для удобства ещё и воспроизведение звука перед каждым таким запросом (это настраивалось).

Jasmin Java Assembler

Несмотря на популярность Mobile Basic, Бейсик считался плохим языком для начинающих, потому что не давал мыслить в ООП, а, привыкнув к GOTO, было тяжело потом переходить к современным языкам. Поэтому часть сообщества стремилась к Java.

Так Mumey портировал Jasmin и преверификатор из ProGuard и мы начали плотнее изучать байткод Java и пытались писать программы прямо на нём.

Пример
.class public Hello
.super javax/microedition/midlet/MIDlet

 ; конструктор основного класса
.method public <init>()V
   .limit stack 1
   .limit locals 1
   aload_0               
   invokespecial javax/microedition/midlet/MIDlet/<init>()V
   return                
.end method              

 ; точка входа в программу - метод startApp
.method public startApp()V
 ; сюда добавляем код, с которого и начинается программа
   .limit stack 2
   .limit locals 1
 ; Java-код: System.out.print("Hello, World!") на JASM займет три строчки
   getstatic java/lang/System/out Ljava/io/PrintStream;
   ldc "Hello, World!"
   invokevirtual java/io/PrintStream/print(Ljava/lang/String;)V
   return                
.end method              

 ; метод "паузы"
.method public pauseApp()V
   .limit stack 0
   .limit locals 1
   return                
.end method              

 ; метод "выхода"
.method  public destroyApp(Z)V
   .limit stack 0
   .limit locals 2
   return                
.end method 

Конечно, писали не с нуля, а брали готовые примеры или дизассемблеровали готовые class-файлы, благо Mumey почти сразу сделал и дизассемблер.

Online Java Compiler

Counter запомнился не только как автор TextCompiler, но ещё и как автор php веб-сервиса для компиляции и преверификации исходников — java2class. Можно было загрузить свои исходники с браузера, подождать 2–5 минут и получить скомпилированные и преверифицированные классы. А если скомпилировать не удавалось — увидеть список ошибок компилятора.

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

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

Janino

Mumey не остановился на Jasmin и вскоре портировал компилятор Janino. Невозможное оказалось возможным. Это был прорыв, так как теперь у нас было всё для того, чтобы на мобильниках программировать на Java ME.

Jcc

Jcc — язык программирования и виртуальная машина от J.Peter. Имел три версии: первые две больше похожие на C, а третья — на Java. Парсер был сгенерирован в JavaCC и адаптирован для Java ME. Редактор кода здесь был свой (и намного удобнее, в отличие от MB) с подсветкой синтаксиса — J.Peter развивал редактор Jane как отдельную программу, а сюда просто встроил наработки.

К третьей версии Jcc3 приобрёл хороший тулинг в виде генератора метаклассов (API для jcc) и отдельный рантайм, куда закидывался байткод программы и получалось собственное приложение.

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

J2ME SDK Mobile

Прогресс не стоял на месте, мобильные телефоны тоже становились мощнее, росли запросы пользователей, но то, что Mumey сделает IDE мы уж точно никак не ожидали. Тем не менее автор соединил редактор с подсветкой синтаксиса, компилятор, преверификатор и сборщик jar в одну программу и, чёрт возьми, это всё работало на мобильных телефонах с ОЗУ в ~1Мб и памятью ~32Мб!

Очень крутой фишкой приложения было использование MIDP 2.0 API автозапуска. Сначала ты открываешь файлы, редактируешь исходники, а когда нажимаешь Compile — программа сохраняет все параметры для компиляции, ставит сама себя на автозапуск на следующую минуту (для этого требовалось разрешение пользователя) и закрывается. Затем запускается по таймеру и начинается компиляция. Оперативная память при этом уже не занята редактором. После компиляции процесс повторяется: снова таймер, закрытие, автозапуск в режиме преверификации. Наконец, снова для сборки jar.

MobPascal

MIDlet Pascal на ПК к тому моменту уже приобрёл большую базу фанатов, библиотек и примеров, так что P@bloid попытался создать мобильный аналог, который повторял бы синтаксис и был бы совместим с библиотеками большого брата. Так появился MobPascal.

В нём был редактор из Jcc с подсветкой синтаксиса, компиляция в единый class файл, который затем следовало прогнать через Preverifier от Mumey. Успеху проекта помешали серьёзные баги с компиляцией: что-то сложнее небольшой демки могло скомпилироваться неправильно и либо преверификатор, либо уже сам телефон отказались бы работать со скомпилированной программой.

Вскоре P@bloid забросил разработку, выложил исходники и модификацию продолжили Vasiliy_LiGHT и vl@volk, добавив поддержку библиотек и исправив лишь незначительные баги.

Mobile Basic 1.9

Пока одни покоряли вершины Java ME с мобильного телефона, другие продолжали развивать Mobile Basic.

Дэвид Фёрт выпустил версию 1.9, добавил туда только одну функцию. При этом все проблемы программы, которые были в версии 1.8, остались. Но зато Фёрт открыл исходный код и тогда kiriman на основе этих исходников и декомпилированной версии 1.8.6.2 (Mumey не открывал исходный код своих версий) начал делать модификации. Позже к нему подключился и dzanis (да-да, тот самый). Вместе они оптимизировали скорость работы интерпретатора, убрали программную эмуляцию чисел с плавающей запятой (в спецификации CLDC1.1 float/double уже давно были) и переделали отрисовку, в результате чего исправили самую древнюю проблему бейсика — мерцание в играх.

Затем модификацию подхватили vl@volk и garfild63, добавив ещё больше команд и исправлений.

Mobile Eclipse JDT

Разработчик из Филиппин под ником Assembler портировал компилятор из Eclipse JDT на Java ME. Внешне программа напоминала Janino, только весила более 800кб и была не оптимизирована, в результате чего, ею можно было пользоваться только на мощных устройствах или компилировать совсем простые исходники. Так как всё русскоязычное сообщество привыкло к Janino и J2ME SDK Mobile, то эту программу использовали только для тестов или на крайний случай, вдруг скомпилирует то, что не смог Janino.

Примочки к Mobile Basic

Стоит отметить ещё несколько проектов, которые повлияли на прогресс мобильного программирования.

RMSBackup от grafmoto

До версии 1.8.3 в Mobile Basic не было сохранения в файловую систему телефона. Тогда придумали обходной путь: закидывали в jar нужной программы специальный класс, прописывали его как второй мидлет и при запуске можно было бэкапить сохранения из внутренней памяти приложения (RMS) в файл, затем, при необходимости, восстанавливать. Это была универсальная утилита и она широко применялась продвинутыми пользователями как в играх, так и в приложениях для бэкапа сохранений.

Hidden text
Скриншот страницы проекта из веб-архива
Скриншот страницы проекта из веб-архива

MB Refactor от kiriman

К версии MB 1.9.1 уже досконально изучили структуру бинарных BAS файлов Бейсика, так что эта небольшая утилита напрашивалась сама собой. Она умела переименовывать переменные, увеличивать шаги строк, форматировать исходник, а также обфусцировать. Последнее нужно было, чтобы банально не воровали исходники.

MB Compiler Online от HoldFast и vl@volk

Онлайн конвертер bas в lis и обратно, обфускатор и сборщик jar файлов, в том числе с добавлением ресурсов. Поддерживал версии 1.8.х и 1.9.1. Пользовались им не только с ПК, но ещё и со слабых телефонов, когда ОЗУ не хватало собрать игру с изображениями.

MB IDE

Вряд ли это уже относится к мобильному программированию на мобильниках, однако этот проект стоит упомянуть. MB IDE существовал в трёх редакциях:

  1. MB IDE .NET. Самая первая версия от JGDger

  2. MB IDE. Версия на Java SE от HoldFast. Подсвечивала синтаксис и строки с ошибкой, умела работать с версиями 1.8.х и 1.9.1, поддерживала сборку программ в jar и запуск в эмуляторе MicroEmulator. А позже была добавлена ещё и сборка под эмулятор Java ME на Android —J2ME Loader.

  3. Online MB IDE на php от HoldFast. Умела всё то же, что и Java SE версия, только без запусков в эмуляторах.

Особые благодарности

На самом деле не только авторы вышеуказанных приложений развивали мобильное программирование. Взять, например, архиватор. Без него невозможно было бы упаковать игру на Mobile Basic или добавить в неё картинки, нельзя было бы извлечь необходимые файлы из программ/игр для последующей модификации, а после добавить обратно. Благодарность:

  • kys за MiniCommander — файловый менеджер с отличным архиватором, который прекрасно работал на Nokia, Motorola, Samsung и прочих марках.

  • Malcolm за PowerGrasp — zip/gzip/tar архиватор. В основном им пользовались на Sony Ericsson. Да и вообще Malcolm был звездой форума Sony Ericsson клуба, помогал новичкам в программирования, в том числе и мне, за что ему личная благодарность.

  • Salat-Cx65. Он предложил вынести темы, посвященные программам для программирования, в отдельный раздел Java ME разработки на форуме клуба телефонов Siemens. Также он был модератором этого раздела, закидывал идеи и связывал нас в единую тусовку. А ещё был бета-тестером Janino.

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

  • MierivaL за скриншоты с реального мробильного телефона.

После заката

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

Комментарии (37)


  1. VaVM
    16.05.2024 13:27

    И в чём мораль этой душераздирающей истории?


    1. aNNiMON Автор
      16.05.2024 13:27
      +25

      А разве должна быть мораль в освещении 10-летней истории той или иной технологии?


  1. Yoti
    16.05.2024 13:27
    +3

    Хотел подколоть автора за слова о невозможности сворачивать (параллельно запускать) приложения, подкреплённые скриншотами с SE со средней кнопкой (а это платформа A2/A200, где такая возможность есть), но в конце наткнулся на благодарность за скриншоты другому человеку.

    В любом случае, спасибо за занятный рассказ! Из тех лет я был немного увлечён в стезю переводов J2ME, но операции выполнялись на ПК. Могу упомянуть BlackFan и wl из авторов использованного софта.

    Очень жаль, что SE в спешном порядке закрыли свой портал для разработчиков, не удалось скачать очень многое. Часть нашлась по крупицам в Интернете, а часть потеряна безвозвратно... Однако, к теме этой я так и не возвращался в последствии.


    1. aNNiMON Автор
      16.05.2024 13:27
      +2

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

      Из программ для перевода помню только InClassTranslator и MobiTrans, но ими только простые игры и программы удавалось переводить, где текст в class файлах лежит. Остальные прятали тексты в шифрованных бинарных файлах, а там уже без создания собственных утилит по кодированию/декодированию не обойтись.


  1. BigBeerman
    16.05.2024 13:27
    +33

    Ustin Скажите, есть ли нормальные интерпретаторы других языков программирования, сделанные под J2Mе? Проблема в том, что компьютера нет, уже давно (4 года), и похоже, надолго. А программировать на чем-то хочется. Есть Nokiа 2323c-2 (MIDP-2. 1, CLDC-1. 1, hеаp sizе 1024 KB). Пробовал Hеcl, но у него три фатальных недостатка — нет логарифма и экспоненты, нет перевода символа в его код и обратно, невозможно сохранить написанную программу. Я бы его доделал, но повторюсь, компьютера нет. Может кто-нибудь помочь?

    Mikhаil Устин, скорей всего нет и не будет. думаю, что проще купить (взять) компьютер.

    Ustin Михаил, где я вам в тюрьме возьму компьютер?

    © безвременно почивший Bash.org.ru


  1. Neikist
    16.05.2024 13:27
    +2

    Эх, первые попытки программирования пришлись на Jasmin или что то такое, скачанное с сименс клаба. На нокии 5300. Компа не было и не предвиделось ближайшие годы, а что то закодить хотелось после уроков информатики с qbasic. Попытки так и ограничились написанием html файлов в редакторе мобильной оперы 3.11 и вот на этом байткоде джавы что то на канвасе рисовать пытался. Следующие попытки писать код уже через лет 5 только пошли, с появлением у меня первого компа, когда уже в вуз поступил.

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


  1. mrDoctorWho
    16.05.2024 13:27
    +2

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

    Ещё интересная вещь была — Java комбайны, когда j2me приложения объединялись в одно с возможностью сворачивания. А ещё были крутые сайты-конструкторы ICQ клиентов.

    MiniCommander действительно классная штука была, Юрию Кудрину за него огромнейшая благодарность. Жаль только исходники не открыты.


  1. DieSlogan
    16.05.2024 13:27
    +3

    Писал мобильный интернет банкинг под J2ME SDK Mobile (J2ME MIDP 1.1). Поначалу вовлекли дописать имеющийся, когда передали исходники, там паренёк до меня на каждый класс делал интерфейс и всё такое, по всем канонам Java. Джависты, такие джависты, память же не бесконечная %) Приложения для J2ME специально обфусцировались, чтобы сократить кол-во символов даже в названии класса, всё для экономии памяти.

    Ко всему прочему приложение было как бы конструктором, оно запрашивало сервер, какой GUI ему рисовать, получало XML layout и динамически формировало интерфейс.

    Ну и шифрование, к тому же. Которое на J2ME было, мягко говоря, не очень.

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


    1. hssergey
      16.05.2024 13:27
      +1

      По поводу интерфейсов на каждый класс: помню, была какая-то экспериментальная сборка прогуарда, которая в процессе обфускации слепляла несколько классов в 1 и таким образом еще больше уменьшала размер мидлета (многие телефоны имели ограничения на размер jar-файла). Правда, зачастую после этого приложение отказывалось работать, и надо было экспериментировать - прописывать в исключения те классы, которые нельзя было смерживать...


      1. DieSlogan
        16.05.2024 13:27
        +2

        Да, там можно было наворотить. К тому же Java могла себя вести чуточку по-разному в зависимости от производителя. У нас было штук 10 самых популярных телефонов на рынке и всё равно прилетали багрепорты, где приходилось как-то обходить проблемы конкретного аппарата


  1. LeshaRB
    16.05.2024 13:27
    +1

    Полез гуглить кто такой Mumey
    Наткнулся на вашу переписку )
    https://annimon.com/forum/id237874-0#post238092


    1. aNNiMON Автор
      16.05.2024 13:27
      +1

      Mumey был на форуме сименс-клаба и потом на вапере, но оба ресурса почили и найти можно разве что частично в веб-архиве. Ещё в веб архиве есть страничка Mumey с веника, но там wap: https://habrastorage.org/webt/xy/wp/ql/xywpqlavkod8raf6vnemgucdpw0.png


  1. Ukrainskiy
    16.05.2024 13:27
    +1

    Для ОС Symbian существовали интерпретатор Python с поддержкой OpenGL ES и даже PHP с портом Apache. Это было в период расцвета популярности WAP-сайтов, и некоторые действительно писали код прямо с телефона, например, на задней парте в классе. Особенно помогали онлайн FTP-редакторы, заточенные под мобильные устройства.


    1. VasiliyLiGHT
      16.05.2024 13:27
      +3

      PHP с портом Apache

      Ооо, помню, PAMP называется. Тогда я думал, что мой смарт будет сервером, а это всего лишь для тестирования было :D


  1. Solexid
    16.05.2024 13:27
    +4

    Читаю, и от воспоминаний аж муражки по коже, все знакомые ники, в голове сразу вспыли все темы на forum.sc.ru(эхх, сколько же всего потеряно стало с переходом на вапос и его смертью), то как я изучал всё это и как написал свой первую программу на мобильном бейсике прямо со своего c75. Вспомнился даже легендарный флудер Gost<многоцифр> с сотней альтов (сейчас зашёл на форум мельника, а там даже в 13 году он умудрился отметится, во даёт зверь). И то как весь форум просто взорвался когда был выложен Janino и очем много было комментариев что это невозможно и бред. Помню когда появилась версия мобильного бейсика с упаковкой программ в самодостаточные версии (так то было из коробки, просто запаковывая bas в jar) прямо из приложения, тогда я впервые продал простейшую программу какому то форумчанину) Сидел я там под максимально прямолинейным ником alex1995/alex123 и даже не пытался тогда скрыть что я школьник, и все всё равно относились адекватно, да и в конфе сименсклаба сидел через BombusQD и там тоже было хорошо.Больше всего конечно я удивлён что для меня ВСЕ ники знакомые и я никого из легенд не забыл) . Даа, нормально так ностальгии накинуло, спасибо тебе друг)


    1. aNNiMON Автор
      16.05.2024 13:27
      +1

      Да, кстати этот легендарный флудер (gost6678, gost6679 и так далее) был модератором на MBTeam и чуть ли не одним из его основоположников. Так что тоже можно отдать ему должное, внёс и культурный вклад, и вклад в Mobile Basic.


    1. BoogieMan75
      16.05.2024 13:27

      Странно, сколько лет работал в компании владевшей доменом sc.ru, а про форум не в курсе...


      1. aNNiMON Автор
        16.05.2024 13:27

        Всё нормально, домен был s-c.ru


  1. micronull
    16.05.2024 13:27
    +1

    Где на хабре (вроде) читал в комментариях как чел попал в тюрьму и из-за огромной жажды программировал на кнопочном телефоне. Видимо одна из программ упомянутых в стаье и была тем самым ПО.

    Сейчас где-то эти музейные экспонаты скачать можно? Хотелось бы их как-то увековечить.


    1. VasiliyLiGHT
      16.05.2024 13:27
      +3

      @aNNiMON со своего форума сложил всё сюда https://drive.google.com/drive/folders/1fp5qV6s91xHM6k3xaBmjGqMGnXeV1QHP


  1. shares-caisson
    16.05.2024 13:27
    +2

    Это был 2006 год. У многих из нас ещё не было ПК, зато были мобильные телефоны

    Какая-то параллельная реальность :) А на упомянутых форумах общались тоже с этих мобильных телефонов?


    1. DieSlogan
      16.05.2024 13:27
      +1

      В 2006 почти все ходили с кнопочными. Но я тогда уже прикипел к WindiwsMobile и карманным ПК и как раз Asus выпустил коммуникатор P525, чтобы и КПК и телефон, два в одном.

      Впрочем, это уже другая история


    1. dizjis
      16.05.2024 13:27
      +2

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


    1. aNNiMON Автор
      16.05.2024 13:27
      +1

      Да, сидели с мобильных телефонов. В основном не со стандартного браузера, он был неудобным, а с Opera Mini, потому что она и трафик сжимала, и адаптировала большие сайты. А трафик был ограниченным.

      Если копнуть глубже, то там ещё и экономили на этом трафике. В обычном режиме опера мини открывала GPRS соединение, скачивала странички, а потом закрывала соединение. И вот, в момент закрытия соединения, оператор сотовой связи мог взимать плату за использованный трафик, округляя его до какого-то значения. Например, ты скачал 1300 байт (смехотворные числа, да?), а с тебя стянули 4кб. И чтоб обойти это, использовали программу, которая постоянно держала соединение открытым на фоне.


      1. Yoti
        16.05.2024 13:27
        +2

        Так у Opera Mini Mod была настройка поддерживать соединение. С какой версии -- не помню.


    1. Neikist
      16.05.2024 13:27

      А с чего еще? Конкретно в 2006 я к сожалению сидеть не мог ни с чего, была только моторолка L6, если не путаю, которая только wap позволяла, в gprs/edge не могла. А вот в 2007-2010 сидел на форумах сначала с nokia 5300, потом с каких то смартов на симбиан (поначалу на 7-8 версии, потом и на 9).

      Помню были еще хаки разные. У билайна которым пользовался была возможность посылать sms/mms на бесплатные номера, а в ответ получать mms с картинкой по ссылке, кажется как раз пользовался на L6 пресловутой, чтобы траффик сохранить, ибо стоило под 2 рубля за 10кб что ли.

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


  1. iShrimp
    16.05.2024 13:27
    +1

    К слову о ресурсах (графика, музыка), нельзя не упомянуть такие шедевры как Midedit (редактор MIDI, портированный ещё с сименсов) и ProPaintMobile - графический редактор от автора статьи, которому нет равных даже сейчас, в эпоху Андроида.


  1. Gas4057
    16.05.2024 13:27
    +3

    К сожалению не хватает "кармы" чтобы отжать ⬆️ потому будет комментарий. Спасибо за пост и труд! Волна ностальгии нахлынула по той эпохе.


  1. VasiliyLiGHT
    16.05.2024 13:27
    +1

    Вскоре P@bloid забросил разработку, выложил исходники и модификацию продолжили Vasiliy_LiGHT и vl@volk, добавив поддержку библиотек и исправив лишь незначительные баги.

    Эх, а планы то были наполеоновские! :D Жаль, тогда не шарил за компиляторы (да и сейчас не шарю, как их писать), можно было бы сделать как в J2ME SDK Mobile, почти автоматическую сборку и верификацию


  1. voted
    16.05.2024 13:27
    +1

    Какие всё таки этапы ностальгии, я вот помню патчи на сименс ещё ставил, модифицировал, учавствовал в обсуждении, а потом на WM перешёл (Qtek S110), и тема J2ME прошла мимо меня, хотя та же Opera Mini на WM тоже была Очень популярна по тем же причинам. Помню тоже какие то программы писал на .NET Compact Framework и тоже были варианты это прямо с "комуникатора" делать


  1. event1
    16.05.2024 13:27

    ужас какой. Хвала богам, мой первый и последний опыт программирования на телефоне был на питоне на Нокии N900


  1. Legasy_gavno
    16.05.2024 13:27

    я могу хвастатся что решаю математические задачи на 'pydroid 3' с его расширением 'jupyter'


  1. DrMetallius
    16.05.2024 13:27
    +3

    Ничего себе, статья не от кого иного, как от ветерана SEclub! Конечно, я тебя помню! Очень приятно, что ты так хорошо отзываешься о моём PowerGrasp. Статью прочитал прямо на одном дыхании. Я сам всегда программировал с компьютера, поэтому пристально не следил, чем именно люди пользуются, чтобы это же делать с мобильников, так что было очень познавательно.

    Если тебе интересно, я уже 14 лет как пишу под Android, так что да, программирование в моей жизни так и осталось и давно превратилось в профессию. Java ME, как известно, застопорилась на MIDP 3.0, который еле вышел, а на реальных аппаратах так и вообще не засветился. И телефонами Sony до сих пор пользуюсь. Прямо сейчас передо мной на столе Sony Xperia 1 V. Традиции - дело святое!


    1. aNNiMON Автор
      16.05.2024 13:27

      Ждал этого комментатора! Уж в ком-ком, но в тебе я точно не сомневался, что ты останешься в программировании. Хоть и немного удивлён, что всё это время ты остаёшься в Android-разработке.
      Я же успел разочароваться в Android-разработке и перешёл на бэкенд.
      А последним смартфоном Sony у меня был Xperia Z1, который с прошивками-перепрошивками дотянул до 2020 года и Android 11 (это при том, что изначально на нём был Android 4). Дальше у нас смартфоны от Sony не спешили продавать, вот я и перешёл на OnePlus.


      1. DrMetallius
        16.05.2024 13:27

        А почему это удивительно? Тут много чего нового всё время происходит, держит в тонусе. На сервере, как мне кажется, всё несколько статичнее. Правда, я серверной разработкой не очень много занимался, так что, может быть, у меня представление не такое глубокое.

        Z1 у меня тоже был, а как же! Очень хороший для своего времени аппарат, как помню.