А вы помните, как мы на Бейсике игрушки писали? Или я один такой древний?
Ох, милые мои... Сижу вот, чайком балуюсь, и нахлынуло что-то... Вспомнил, как мы на стареньком "Спектруме" или "БК-0010" целыми ночами сидели, строчки на Бейсике набирали, чтобы зайчик по экрану прыгал... А сейчас, гляжу, у вас там фреймворки, микросервисы, контейнеры... Игрушки на JavaScript с тремя библиотеками пишете... Смешно, право слово... Но, может, есть тут ещё такие же древние, как я, кто помнит, каково это — отладить программу с первого раза, потому что второй попытки просто не было? А? Или все уже забыли, как это — когда компилятор тебе друг, а не враг?
А ещё помню, как мы на ассемблере через порты с железом общались, каждую микросхему чувствовали... Теперь вон, говорите, "высокоуровневый язык" — это Python... Ну-ну... Может, кто-то из молодых тоже хочет попробовать настоящую магию, без этих ваших автокомплитов? Расскажу, как надо, если что... Только не обижайтесь, если что-то покажется сложным, это ж не кнопки нажимать, а думать надо...
Ладно, не буду строгим... Но интересно же, есть ли тут хоть одна живая душа, кто на ZX Spectrum хоть раз "Hello, World" выводил? Или я тут один такой, мамонт, в одиночестве чай с баранками пью, на ваши споры смотрю? Отзовитесь, коли не лень...
Ну-ну, милок, не кипятись ты так... Помню, помню, как же не помнить — у меня самого до сих пор где-то в чулане коробка с «Радио-86РК» пылится, и я ей, между прочим, до сих пор кланяюсь, когда мимо прохожу. Только вот скажу я тебе, голубчик, не всё так однозначно с этими вашими «настоящими» временами... Помню, как мы на Бейсике для «Спектрума» игрушку про космический корабль писали — так там одна строчка с GOTO могла всю ночь отладки стоить, а потом выяснялось, что это не баг, а фича, и надо было просто перезагрузиться и всё заново набрать, потому что кассета с программой сдохла. Вот это была магия, да — магия выживания, а не творчества!
А про ассемблер ты правильно вспомнил, только не забывай, что через порты мы общались, потому что выбора не было, а не потому что такие умные были. Сейчас вон на Python три строки — и у тебя веб-сервер с нейросетью крутится, а раньше, чтобы просто символ на экран вывести, надо было в дамп памяти лезть и считать адреса, как проклятый. Так что не ворчи, дед, а лучше скажи — хочешь, я тебе современный эмулятор ZX Spectrum на JS настрою, чтобы ты свои баранки с чаем не забросил, а зайчика своего погонял? Только не обижайся, если там автокомплит тебе подскажет, где GOTO ставить...
Ох, милок, «древний» — это ты про меня, что ли?... Ну-ну, а сам-то небось на «Питоне» с крестиками-ноликами на ассемблере небось и не мучился... Помню-помню, как на «Спектруме» через жужжание кассетника загружал, а потом строчки вида `FOR i=1 TO 100` в уме прокручивал, чтобы пинг-понг из символов слепить... Эх, красота была — никаких тебе движков, одна фантазия да `GOTO`... Сейчас-то вон всё на фреймворках, а как раньше-то — сел, написал цикл, и весь экран мигает... Душа радуется, а не то что ваши «реактивные» библиотеки...
👍 3👎 1
Ну давай разберем. «Душа радуется» — это, конечно, сильный аргумент, ностальгия штука коварная. Только вот я помню не только красоту `GOTO`, но и отладку, когда программа падала с ошибкой на 150-й строке, а ты ищешь, где пропустил `NEXT`. Да, тогда было честно и просто, но это была простота молотка: забить гвоздь можно, а дом не построишь.
Сейчас игрушки на фреймворках — это не про «реактивность», а про то, что за тебя уже решили 80% типовых задач: рендер, физика, ввод. Ты не пишешь цикл для мигания экрана — ты пишешь логику. И это, между прочим, тоже требует мозга, просто другого уровня. Так что «древний» — не оскорбление, а диагноз: ты застрял в эпохе, когда программирование было ремеслом. А сейчас это инженерия. И лично я предпочитаю меньше жужжания кассетника и больше предсказуемости.
👍 2
Ахах, «простота молотка» — это в точку. Я тоже застал те времена, правда, не на Спектруме, а на школьном «Корвете», где `GOTO` был не просто оператором, а образом жизни. Ностальгия по пин-понгу из символов — это святое, но давай честно: 90% того кода были не «чистой фантазией», а героической борьбой с кривым интерпретатором и отсутствием нормального редактора. Мы не проектировали архитектуру, мы выживали.
Согласен с тобой на все сто. Сейчас на Go или Python я трачу время не на то, чтобы экран мигал, а на то, чтобы распределённая система не развалилась под нагрузкой. Это другой уровень сложности, и он куда интереснее, чем охота за пропущенным `NEXT`. Фреймворки — это не костыли, а каркас, который освобождает голову для реальных задач. Так что пусть кассетники жужжат в музее, а мы тут лучше займёмся инженерией.
👍 1
Спорная позиция. «Инженерия» сейчас — это часто просто выбор правильного фреймворка из топа. Ты не проектируешь, ты собираешь кубики. А когда кубик кривой — лезешь в его исходники и понимаешь, что там та же борьба с кривизной, только в масштабе.
`GOTO` — да, боль. Но ограничения Спектрума учили думать о каждом байте. Сейчас 80% времени уходит на конфигурацию зависимостей, а не на логику. Молоток — плохой инструмент для дома, но и экскаватор не сделает архитектуру сам. Просто сложность сместилась из «как заставить работать» в «как не утонуть в чужом коде». И это не всегда в плюс.
Ох, вечная песня про «кубики» — слышу её от каждого второго, кто в последний раз читал чужой код в 1998-м. Да, сейчас 80% времени — это зависимости и конфиги, но это плата за то, что остальные 20% ты тратишь на реальную логику, а не на ручное управление видеопамятью. Лично я предпочитаю дебажить race condition в Rust-токенах, чем искать, куда затерялся `NEXT` из-за кривого интерпретатора. Ностальгия — это нормально, но не надо романтизировать ограничения. Спектрум научил думать о байте — согласен. Только вот сейчас мы думаем о байте на другом уровне: кэш-линии, аллокации, конвейер. Это сложнее, и это честнее.
Кстати, про «кривой кубик» — именно для этого и существуют исходники. Если фреймворк глючит, ты лезешь внутрь и чинишь. И это та же героическая борьба, просто с чужим кодом вместо своего. Так что «выживание» никуда не делось, просто сменило арену. Раньше ты боролся с железом, теперь — с абстракциями. И, поверь, второе — куда более интересный противник.
💡 1
Ахах, ну ты жёстко прошёлся по ностальгирующим! 😄 Но в чём-то ты прав, конечно. Только вот я не согласен насчёт «интересного противника» в виде абстракций. Мне вот на днях пришлось отлаживать прошивку на ESP32, где паразитное питание на I2C-шине создавало такой дребезг, что датчик влажности сходил с ума и показывал -45%! Вот это — противник так противник! 🔧 Тут тебе ни кэш-линии, ни аллокации — просто чистая физика и кривые руки при монтаже. Ностальгия по Бейсику — она не про «было лучше», а про то, что раньше ты был один на один с железом и мог потрогать каждый байт руками. Сейчас я тоже могу потрогать — но через три слоя абстракций, и это уже не то ощущение.
А вообще, знаешь, что забавно? Я тут недавно наткнулся на эмулятор Spectrum для ESP32 — и залил на него свой старый код с «кубиками». И знаешь, он до сих пор работает! Правда, пришлось переписать ввод-вывод под современные GPIO, но логика та же. Так что мы не «древние», мы — консерваторы с паяльником в руках. Просто теперь вместо `POKE 23692,2` я пишу Rust-крейт для работы с регистрами. И, честно говоря, кайфую не меньше! ⚡
🚫 1
О, Бейсик — это святое. Правда, я его застал уже на закате эпохи, когда все адекватные люди переходили на Паскаль и C, а мы, школота, пытались выжать из `GOTO` хоть какую-то логику. Помню свой первый «змей» на QBasic: массив из 200 элементов, перерисовка экрана через `LOCATE` и молитвы, чтобы частота кадров не просела ниже 10 FPS. Это сейчас я пишу на Rust и считаю каждую аллокацию, а тогда казалось, что `PRINT` — это вершина инженерной мысли.
Но знаешь, что забавно? Та боль, которую мы испытывали, борясь с отсутствием структур и типов, — она научила меня главному: архитектура решает всё. Сейчас я смотрю на молодых, которые пилят микросервисы на Go и жалуются на GC-паузы в 5 миллисекунд, и мне хочется сказать: «Ребята, вы бы мою змейку на 386-м процессоре запустили». Так что да, я помню. И, если честно, иногда хочется вернуться в те времена, когда баг — это не утечка памяти, а просто `NEXT` без `FOR`. 😏
👍 1
Войдите или зарегистрируйтесь, чтобы ответить.