Автор Тема: QBasic во имя справедливости  (Прочитано 8273 раз)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
QBasic во имя справедливости
« : Июнь 28, 2014, 02:56:42 pm »
Цитата: bigfatbrowncat
Я начинал с бейсика. С того самого Quick Basic. Потом был паскаль года до 1997, затем — Delphi, долго собирался с силами, чтобы выучить C — уж очень его синтаксис казался замудрёным после паскалевского. Пересел на C/C++ уже в институте, освоил C# потому, что он показался мне близким и похожим на Delphi. Сейчас занимаюсь Java и Android.

И вот, что я вам скажу. Наблюдая сегодняшнее состояние индустрии, в особенности ее отношение к новичкам, я не перестаю радоваться, как же мне повезло родиться на заре IBM PC.

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

Вопрос считаю не риторическим (во всяком случае, надеюсь, что ответ существует, хотя я его еще не нашел). И где вы сейчас найдете:

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

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

В каком-то приближении годился бы C# и VS Express, но, вспоминая, сколько всего мне пришлось изучить, чтобы разобраться в Delphi (а ведь я уже в тот момент умел что-то кодить), я понимаю, что он сгодится только как второй шаг, но никак не первый.

В QBasic была даже валидация вводимого кода при его наборе (!) немыслимая по крутизне в те времена фича. Если не помните — валидный оператор превращался в Caps (print -> PRINT), а невалидный оставался как есть, намекая на ошибку.

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

Цитата: TimeCoder
Ого, меня сначала прошиб холодный пот: словно это я написал комментарий и забыл про это. Прошел в точности такой же путь, даже годы совпадают! Кроме Java в итоге.

Вот и у меня мурашки.

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

QBasic - это пример гениального ПО.

ps Я все сказал и мне не стыдно.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: QBasic во имя справедливости
« Ответ #1 : Июнь 28, 2014, 03:04:25 pm »
Ах да, ссылка: GOTO BASIC

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: QBasic во имя справедливости
« Ответ #2 : Июнь 28, 2014, 07:28:38 pm »
Синдром утенка как есть, ага. Я вначале пробовал Basic на ZX Spectrum'e - оказалась какая-то фигня, не впечатлился, и программировать не начал. Потом щупал этот самый Quick Basic - аналогично. Недоубно, криво, и программировать после общения с этой средой совсем не хотелось. Хотя книжки по бейсику я читал, да. Язык вызывал некое отторжение. Да и подходы и среда...

А на самом деле я начал программировать когда наткнулся на книжку по С++/Game SDK (DirectX тогда так звался, первая версия). И вот тогда то и пошло-о :-) То есть С++/Win32 API/DirectX/MSVS 4.0. Удобно, прикольно. А главное - получается сделать то, что хочется сделать! И нет волшебных гномиков - всегда можно докопаться до сути. И шикарный хелп-MSDN!

На контрасте - программирование под MFC у меня тогда вызывало рвотный рефлекс. Уже тогда я не любил любые фреймворки :-) Слишком много наслоений, диктующих правила игры.

Так что я тот самый человек, у которого первым ЯП был С++ :-)

PS. А всякие автокомплиты и прочие интеллисенсы появились только в MSVS 6.0 - на этом я уже практически не писал.

PPS. А поскольку DirectX, то львиная доля приложения не подлежала пошаговой отладке - ведь в момент работы оно захватывало видеокарту, и студия просто не могла что-либо вывести на экран - помогала в такой ситуации только перезагрузка компьютера :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: QBasic во имя справедливости
« Ответ #3 : Июнь 28, 2014, 07:33:49 pm »
Не могу согласиться. IDE для турбопаскаля 7 всё-таки поудобнее была.
Помнится, в последние годы, когда я ещё в ДОСе работал, в качестве IDE я использовал ДОС Навигатор -- многооконный редактор с вертикальным выделением -- ваще супер было для тех времён ))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: QBasic во имя справедливости
« Ответ #4 : Июнь 28, 2014, 07:36:55 pm »
Не могу согласиться. IDE для турбопаскаля 7 всё-таки поудобнее была.
Помнится, в последние годы, когда я ещё в ДОСе работал, в качестве IDE я использовал ДОС Навигатор -- многооконный редактор с вертикальным выделением -- ваще супер было для тех времён ))

О! Хорошо что напомнил - надо его будет поднять, и попользовать. Он же до сих пор жив и есть под все платформы. Возможно в плане IDE он сможет стать для меня тем, чем не смог стать FAR.
Y = λf.(λx.f (x x)) (λx.f (x x))

Romiras

  • Sr. Member
  • ****
  • Сообщений: 264
    • Просмотр профиля
    • Romiras Dev Lab
Re: QBasic во имя справедливости
« Ответ #5 : Июнь 29, 2014, 11:26:58 am »
Не могу согласиться. IDE для турбопаскаля 7 всё-таки поудобнее была.
Помнится, в последние годы, когда я ещё в ДОСе работал, в качестве IDE я использовал ДОС Навигатор -- многооконный редактор с вертикальным выделением -- ваще супер было для тех времён ))

О! Хорошо что напомнил - надо его будет поднять, и попользовать. Он же до сих пор жив и есть под все платформы. Возможно в плане IDE он сможет стать для меня тем, чем не смог стать FAR.
Интерфейс ДОС Навигатора (DN) был крут в те времена отчасти потому что существовал такой фреймворк как Turbo Vision. В своё время я мог создать на нём разные интерфейсы (в Turbo Pascal 7.0) довольно быстро и результат был очень хороший. Поддерживались события мыши, клавиатурные сокращения, валидация полей, опции окон/диалогов и прочее - весьма круто для тех времён.
А ещё мне в руки как-то попала программа, кажется она называлась App Editor (ae.exe) - позволяла "рисовать" интерфейс прямо как в Дельфи, перетаскивая элементы на форму и настраивать обработчики событий. Формы сохранялись в ресурсные файлы, которые подгружались во время работы программы.

Исходники DN находятся в репозитории https://github.com/romiras/turbo-pascal-archive/tree/master/Files/Dos%20Navigator

Хотя, надо отметить, с Turbo Vision требовалось работать весьма осторожно. Помню, как опробовав Delphi 3 после TV, почувствовал как с плеч свалился огромный груз -  о многих вещах уже не требовалось заботиться, за тебя их выполнял Delphi.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: QBasic во имя справедливости
« Ответ #6 : Июнь 29, 2014, 02:56:54 pm »
Синдром утенка как есть, ага. Я вначале пробовал Basic на ZX Spectrum'e - оказалась какая-то фигня, не впечатлился, и программировать не начал. Потом щупал этот самый Quick Basic - аналогично. Недоубно, криво, и программировать после общения с этой средой совсем не хотелось. Хотя книжки по бейсику я читал, да. Язык вызывал некое отторжение. Да и подходы и среда...

Странно. QBasic - это первая программа, с которой я работал на компьютере. Что-куда я довольно быстро разобрался (буквально за час) вбил код и запустил. При этом никто ничего не показывал и не объяснял. Книжек тоже не было (но до этого я читал книгу по GW-BASIC). Среда и язык осваивались не отходя от кассы. Автокапс и замечательная справка позволяли быстро двигаться вперед не отвлекаясь и не теряя контекста. Т.е. реально не нужно было ничего кроме твоих мозгов, клавиатуры и среды QBasic. Все было здесь и сейчас.
Вот это низкий порог вхождения. Все было просто и интуитивно понятно. При этом в QBasic достаточно возможностей для новичка (даже перебор типа PEEK POKE)

2 Geniepro:
TP да, из той же оперы. Но я бы таки его на второе место поставил. Все таки там среда посерьезней и без посторонней помощи сложнее разобраться.

ps Ах да. Думаю, что еще сыграло то, что среда QBasic была на русском.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: QBasic во имя справедливости
« Ответ #7 : Июнь 29, 2014, 03:32:21 pm »
Синдром утенка как есть, ага. Я вначале пробовал Basic на ZX Spectrum'e - оказалась какая-то фигня, не впечатлился, и программировать не начал. Потом щупал этот самый Quick Basic - аналогично. Недоубно, криво, и программировать после общения с этой средой совсем не хотелось. Хотя книжки по бейсику я читал, да. Язык вызывал некое отторжение. Да и подходы и среда...

Странно. QBasic - это первая программа, с которой я работал на компьютере. Что-куда я довольно быстро разобрался (буквально за час) вбил код и запустил. При этом никто ничего не показывал и не объяснял. Книжек тоже не было (но до этого я читал книгу по GW-BASIC). Среда и язык осваивались не отходя от кассы. Автокапс и замечательная справка позволяли быстро двигаться вперед не отвлекаясь и не теряя контекста. Т.е. реально не нужно было ничего кроме твоих мозгов, клавиатуры и среды QBasic. Все было здесь и сейчас.
Вот это низкий порог вхождения. Все было просто и интуитивно понятно. При этом в QBasic достаточно возможностей для новичка (даже перебор типа PEEK POKE)

Ничего странного - это лишь следствие того, что у каждого свой путь :-)
Книжки по бейсику у меня были. Книжек по С++ наоборот - не было. Была только книжка про Game SDK (DirectX 1). QBasic (или Quick Basic? не помню) был на русском, студия (MSVS 4.0) была естественно на английском, равно как и MSDN (если кто помнит - тогда MSDN был не на html).

Basic в разных формах (в том числе и Quick) был мне доступен сильно раньше чем С++, но этот самый бейсик никак не способствовал желанию программировать :-) Вплоть до того, что даже в школе (где таки у нас уже было программирование, в старших классах, и программировали именно на Quic Basic'e) я договорился с учителем, что буду все писать на С++ :-) И таки писал.

Да, а паскаля у меня вообще ни в какой форме нигде не было :-) Ни в школе, ни в институте (в институте был С++ и фортран).
Y = λf.(λx.f (x x)) (λx.f (x x))

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: QBasic во имя справедливости
« Ответ #8 : Июль 01, 2014, 05:11:44 pm »
И у меня тоже первым языком-средой был QBasic (9 класс, когда комп появился).
Нравилось.

Потом через год брат пробовал подсадить на VC6 + MFC. Наркота ))

И пересел я на TP7, а потом и на Delphi 5...
Но два года поработал на Borland C++ Builder. Шаблоны воротил по 10 параметров и по 5 параметризаций глубиной... Тоже наркота ))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: QBasic во имя справедливости
« Ответ #9 : Июль 01, 2014, 05:32:33 pm »
И у меня тоже первым языком-средой был QBasic (9 класс, когда комп появился).
Нравилось.

Потом через год брат пробовал подсадить на VC6 + MFC. Наркота ))

И пересел я на TP7, а потом и на Delphi 5...
Но два года поработал на Borland C++ Builder. Шаблоны воротил по 10 параметров и по 5 параметризаций глубиной... Тоже наркота ))

MFC - это та еще унылая невнятная фигня. Абсолютно противопоказана новичку, по моим впечатлениям. Делфи и Билдер мне никогда не нравились - слишком много волшебных гномиков. А вот С++ + Win32API + DirectX -- это да. Это ясно откуда что берется, и если что-то не так, то сам дурак.
Y = λf.(λx.f (x x)) (λx.f (x x))