<= Перейти на шахтинский форум
Граждане компьютерщики, помогите советом
16+
9 марта (вторник) 2021
Юра
А может Ясон соавтор, мы ж не знаем какие там дела крутятся. Если условия хорошие я тоже свою тему могу продать
> Автор темы 8237 - не Ясон, а коренной шахтинец.

А может Ясон соавтор, мы ж не знаем какие там дела крутятся. Если условия хорошие я тоже свою тему могу продать.
41057 просмотров
9 марта (вт) 2021
Василий Степанович
Из этого сетования не сильно понятно - что крутят этим колесом граждане компьютерщики. Но если крутят они им браузерные страницы
9 марта 2021 в 16:36 Юра в теме 5819 пишет:
Ю> Палец устал крутить колесо

Из этого сетования не сильно понятно - что крутят этим колесом граждане компьютерщики. Но если крутят они им браузерные страницы, то удобно и быстро это можно делать клавиатурным пробелом. Стоит только попробовать хотя бы раз - и палец больше никогда не будет крутить страницы колесом. Удобно же! Не так ли?
41098 просмотров
9 марта (вт) 2021
Юра
Так то когда знаешь, что читать много, крутишь не колесом, а когда думаешь, что букав немного, кажется что вот разок-два крутнёшь колесом и оно закончится. А потом руку от мыши уже оторвать не можешь. Особенно когда клавиатура у тебя не на поверхности стола, а на выдвижной полочке, а её выдвигаешь, пузо мешает, надо втягивать, чтобы достать оттуда клавиатуру. Тут целые проблемы. Чай не в хоромах живём.
41088 просмотров
9 марта (вт) 2021
16 марта (вторник) 2021
Maya Posch, 25 февраля
А увлекались ли граждане компьютерщики в детстве Бейсиком?

BASIC. Кроссплатформенное ПО тогда и сейчас



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

Истоки языка

Еще не так давно BASIC был общепринятым языком домашних компьютерных систем. Причем это не всегда был один и тот же BASIC. Его команды и синтаксис отличались в зависимости от модели ПК, которой он оснащался, будь то Commodore, Atari, Texas Instruments, Sinclair или другие. К счастью, большая часть диалектов проистекала из наиболее популярной реализации, а именно Microsoft BASIC.

Корнями BASIC уходит в академическую сферу, где он изначально создавался как язык, который был бы удобен как для профильных студентов, так и для тех, кто обучался вне традиционных областей STEM (Науки, Технологии, Инженерии и Математики). Унаследовав ряд свойств от популярных языков 60-х годов, таких как FORTRAN и ALGOL, он получил широкое распространение в школьных системах разделения времени. Даже IBM приняли участие в его развитии, выпустив в 1973 году более совершенную версию VS-BASIC. Когда в 70-х годах начали появляться микрокомпьютеры, которые были невелики и одновременно доступны по цене, то вполне естественным для них стало использование именно BASIC.

Преимущество интеграции этого языка в подобные системы было очевидным и заключалось не только в том, что он уже был знаком многим потенциальным покупателям компьютеров, но также и в его возможности выполнять программы без предварительной компиляции. Это было большим плюсом, потому что компиляция требует приличного объема ОЗУ и хранилища, а этими характеристиками микрокомпьютеры тех лет похвастаться явно не могли. Вместо компилирования исходного кода интерпретаторы BASIC преобразовывали и выполняли код построчно, теряя таким образом скорость в угоду гибкости и пониженному потреблению ресурсов.

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

Но это было тогда, а что сейчас? Используют ли этот язык сегодня?

BASIC + джойстик = веселуха

Для начала предлагаю получше рассмотреть принцип действия этого языка. В качестве очень простого, но в то же время забавного, примера его использования мы разберем приложение для Commodore 64, которое перемещает по экрану стрелку, выводя при этом на дисплей ее координаты. В качестве устройства ввода используется джойстик, подключенный ко второму порту. В качестве ПО выступает Commodore BASIC 2.0, являющийся диалектом Microsoft BASIC.

10 S=2: X=150: Y=150: V=53248: GOTO 100
15 J=PEEK(56320): IF J=127 THEN 15
20 IF J=111 THEN POKE 56322,255:END
25 IF J=123 THEN X=X-S
30 IF J=119 THEN X=X+S
35 IF J=125 THEN Y=Y+S
40 IF J=126 THEN Y=Y-S
45 IF J=122 THEN Y=Y-S
50 IF J=118 THEN Y=Y-S
55 IF J=117 THEN Y=Y-S
60 IF J=121 THEN Y=Y-S
65 IF X=>252 THEN X=10
70 IF X=<10 THEN X=252 75 IF Y>254 THEN Y=44
80 IF Y<44 THEN Y=254
85 PRINT CHR$(147);CHR$(158);CHR$(17);"X-POS:";X;" Y-POS";Y
90 POKE V,X:POKE V+1,Y: GOTO 15
100 FOR Z=832 TO 853 : POKE Z,0: NEXT Z
105 FOR Z=832 TO 853 STEP 3: READ J: POKE Z,J: NEXT Z
110 POKE V+21,1: POKE V+39,7: POKE V+33,0: POKE V+29,1
115 POKE 56322,224: POKE 2040,13: GOTO 85
120 DATA 240, 224, 224, 144, 8, 4, 2, 1

Каждая строка вводится как есть, включая ее номер. Завершив написание кода, переходим на следующую строку, вводим RUN и жмем “Return” (или “Enter”, зависит от клавиатуры). При условии, что все было введено верно, код будет выполнен, и на экране мы увидим:


В этой "игре" мы перемещаем стрелку по экрану с помощью джойстика

Так что же в реальности делает код? Как и в любой программе BASIC, он начинает выполнение с первой строки, в данном случае 10. Здесь определяется несколько переменных, после чего с помощью команды GOTO происходит переход к строке 100. В цикле FOR мы выполняем POKE (то есть производим запись в аппаратный регистр) и повторяем это еще в нескольких адресах, обновляя тем самым дисплей на его изначальную конфигурацию. Здесь команда READ используется для считывания констант, определяемых DATA.

Многие из этих адресов памяти напрямую обращаются к видео адаптеру (в C64 это VIC-II). Когда мы используем PEEK на строке 15, происходит считывание содержимого адреса памяти 56322, который соответствует текущим входным значениям на втором порту джойстика. После этого мы проверяем состояние каждого входа с помощью этих значений битов и нужным образом подстраиваем стрелку (строка 90) вместе с ее координатами (строка 85).

Посвященная этой программе страница C64 Wiki включает побитовую версию сравнения. Она должна выполняться чуть быстрее ввиду меньшего количества строк кода. Однако по перемещению стрелки на экране заметить это будет сложно.

Здесь важно подчеркнуть, что реализации BASIC на различных микрокомпьютерах подразумевали бы выполнение POKE и PEEK для разных адресов памяти, в связи с отличиями в конфигурации системы каждого компьютера. Некоторые реализации также предоставляли команды, привязанные к конкретной системе ПК, что стало более актуальным по мере роста их графических и аудио возможностей.

Интерпретация против компиляции


Знакомая многим картинка: QuickBasic IDE

Интерпретируемая природа BASIC на большинстве компьютеров была как преимуществом, так и недостатком одновременно. С одной стороны, он был очень гибок и позволял просто запускать программы, а также быстро их изменять, не требуя длительных циклов компиляции (как минимум на процессоре Z80 или 6502 с частотой < 10МГц). С другой стороны, ошибки в коде оставались незамеченными вплоть до момента выполнения программы интерпретатором. А это вело к такому же веселью при разработке, что и современные скрипты JS и Python, где код будет отлично выполняться, пока интерпретатор внезапно не выдаст сообщение об ошибке (это если повезет).

В случае BASIC данный казус обычно проявлялся в виде “ Syntax error on line <....>”. При этом прогон того же кода через компилятор все эти ошибки бы выявил. Такая особенность интерпретируемых программ означала, что эффективность легкого распространения кода в виде листингов в компьютерных журналах и справочных руководствах определялась качеством печати и навыками самого вводящего этот код программиста. К счастью, на C64 и аналогичных системах исправление ошибочно введенных строк реализовывалось очень легко. Достаточно было ввести ее повторно, нажать “Return”, и интерпретатор производил обновление.

BASIC сегодня

Хотелось бы сказать, что все отлично, но сегодня уже никто не достает из кладовых тот старый C64, чтобы на досуге написать программу BASIC. За исключением, конечно, увлеченных любителей винтажных систем. И все же стоит заметить, что жизнь BASIC не закончилась с эпохой Commodore и Atari, и позже в Microsoft были разработаны его обновленные версии Visual Basic, Visual Basic for Applications (VBA) и VB.NET. На последнем можно писать VB-код для среды выполнения .NET.


PureBasic Visual Designer

Помимо этого, в 2008 году Microsoft выпустили Small Basic, нацеленный на начинающих программистов, например студентов, ранее использовавших визуальный язык программирования вроде Scratch. Причем его не стоит путать со SmallBasic, являющимся открытым (под стандартной общественной лицензией) диалектом BASIC с сопутствующими интерпретаторами для современных платформ.

Диалекты BASIC также можно встретить во многих графических и программируемых калькуляторах от Yi, HP, Casio и других производителей, хотя многие из этих диалектов не совместимы напрямую с изначальным стандартом BASIC (ISO/IEC 10279:1991). В процессе своего развития этот язык перешел от обязательной нумерации строк к перемещению по коду с помощью меток, а также обрел новые техники программирования. Эти изменения были введены в его обновленную версию QuickBasic в 1985 году и остаются актуальными по сей день.

Среди других реализаций можно выделить коммерческий PureBasic от Fantaisie Software, который предоставляет IDE и компилятор для ряда целевых платформ. TrueBasic, в свою очередь, является современным пакетом инструментов, включающим IDE, чей синтаксис больше приближен к FORTRAN. Разработан же он был самими создателями оригинального языка – Darthmouth BASIC.

Что касается современных открытых интерпретаторов и компиляторов BASIC, то к ним относится Chipmunk Basic, восходящий еще ко времени Apple Macintosh, а также GW-BASIC от Microsoft, чей код был раскрыт не так давно. Кроме того, вокруг этого языка сформирована здоровая OSS-экосистема. Если же ничто из этого вас не тронет, то еще есть Tiny BASIC, использующий синтаксис в форме Бэкуса-Наура, как описано в первом выпуске “Dr. Dobb’s journal” 1976 года. Несколько лет назад один из авторов Hackaday, Том Нарди, описал свой опыт переноса своего старого QuickBasic-проекта 90-х годов в современный формат с помощью QB64.

Подходящее применение

Становится очевидным, что BASIC не просто жив, но еще и повседневно используется в коммерческих формах, бесчисленных открытых проектах и деятельном сообществе увлекающихся ретро-компьютерами людей. Это конечно спорное заявление, но он по-прежнему годится в качестве языка для освоения программирования. Кроме того, благодаря более низким системным требованиям BASIC отлично подходит для создания встраиваемых приложений, что обычно делается на MicroPython и подобных языках. К примеру, несколько лет назад мы писали о микроконтроллере ARM, который поставлялся с интерпретатором BASIC на борту.

На GitHub также можно найти проекты, подобные UBASIC PLUS, который предназначен для STM32F0 и требует всего 8Кб ОЗУ и 64Кб флэш-памяти. Еще один проект для ARM и PIC32 (а также для DOS и Windows) – это MMBasic, требующий 94Кб флэш и минимум 16Кб ОЗУ.

BASIC развивался в эпоху, когда у домашних ПК было меньше памяти и хранилища, чем у сегодняшних микроконтроллеров за $5. В связи с этим он оказывается прекрасным нетребовательным к ресурсам языком для случаев, когда нужно использовать интерпретируемые скрипты, а не скомпилированные двоичные файлы, и избавляет от необходимости приобретать микроконтроллер с большим объемом ОЗУ и флэш-памяти.

Maya Posch, 25 февраля
41250 просмотров
16 марта (вт) 2021
бригадир дежурных электриков
Во. Порекомендую мышку с "инерционным" колесиком. А лучше с переключаемым режимом колесика
9 марта 2021 в 16:36 Юра в теме 5819 пишет:
Ю> Палец устал крутить колесо

Во. Порекомендую мышку с "инерционным" колесиком. А лучше с переключаемым режимом колесика.
Не то, что щелкнул на колесико и появилась пиктограммка, тянешь мышку вверх-вниз / регулируешь скорость.
Нет! Это, я бы сказал, "софтовая" прокрутка. Прокрутка экрана все равно выполняется движением мышки.

А это настоящее типа "инерционное" колесико. Крутнул колесико (один раз!) и страница поползла вниз (или вверх), куда тебе надо. Постепенно замедляясь. Коснулся - остановилась.
Прокрутка экрана выполняется именно вращением колесика.
По ощущениям чем-то напоминает инерционный механизм в детских игрушечных автомобилях.
Классная штука.
Настолько я помню, только в моделях Logitech.

Ну или сейчас выпускают мыши с сенсорной полоской вместо колесика. Мыши Microsoft, может еще кто выпускает..

Можно сравнить прокрутку таким колесом с прокруткой свайпом на тактильном (тач) экране смартфона. Здесь тоже сначала толкаешь прокрутку, затем она с замедлением продолжает выполняться и в нужно месте повторным касанием тактильного экрана или колеса легко останавливаешь прокрутку. Если последний шаг не наловчиться делать, то естественно можно получить негативный опыт и покажется что управляемость прокруткой стала хуже.
Но если привык так крутить страницы на смартфоне, то наловчиться с мышкой легко, неважно, инерционное колесико или сенсорная полоска.
41177 просмотров
16 марта (вт) 2021
Петруша
Таки на любой мышке придавив колесико до щелчка микрика и появится пиктограмка. не трогая колесико свободно двигая мышку "прокручиваешь" станицу. Еще нажал на колесико и все в "первобытное состояние - Нагульнов"
41175 просмотров
16 марта (вт) 2021
Петруша
И чем хуже "нажал"? Скорость так же регулируешь и останавливаешь и снова двигаешь. пака колесико не шевельнешь. "Особенно когда клавиатура у тебя не на поверхности стола, а на выдвижной полочке, а её выдвигаешь, пузо мешает, надо втягивать, чтобы достать оттуда клавиатуру. Тут целые проблемы. Чай не в хоромах живём." Ну как сказал бы кролик, к которому Винипух ходил - Кто то слишком много ест!
41210 просмотров
16 марта (вт) 2021
Василий Степанович
Это напоминает клубы любителей ретро или клубы любителей всяких таких штук, которые нужны-то не очень сильно
25 февраля 2021 в 16:01 Maya Posch пишет:

ВС> Становится очевидным, что BASIC не просто жив, но
ВС> еще и повседневно используется в коммерческих
ВС> формах, бесчисленных открытых проектах и
ВС> деятельном сообществе увлекающихся
ВС> ретро-компьютерами людей.

Это напоминает клубы любителей ретро или клубы любителей всяких таких штук, которые нужны-то не очень сильно, но у людей просто есть увлечения:

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

ВС> Это конечно спорное
ВС> заявление, но он по-прежнему годится в качестве
ВС> языка для освоения программирования.

Для освоения программирования этот язык наверно годится. Понятно, что потом умные преподаватели начинают говорить, что, мол, изучили Бейсик, да и ладно, а теперь переходим к серьёзным языкам програмирования. И потом, когда юные программисты постепенно переходят в класс программистов матёрых, они всё-равно понимают, что при необходимости они наваяют программы и на Бейсике - ну если понадобится. Ну это как научился человек в детстве кататься на велосипеде. А через много лет после этого ездит на автомобиле. Это неплохо. Но если когда-нибудь ему понадобится быстро куда-то добраться и единственным ускорителем его перемещения в пространстве окажется только велосипед, то ничто не помешает нормальному человеку такое простое транспортное средство, как велосипед (а нормальному программисту - язык Бейсик) для достижения нужных целей применить.
41267 просмотров
16 марта (вт) 2021
Петруша
"Для освоения программирования этот язык наверно годится. Понятно, что потом умные преподаватели начинают говорить, что, мол, изучили Бейсик, да и ладно, а теперь переходим к серьёзным языкам програмирования." Ну не так давно начинали с ознакомления с "азами" Фортрана и Алгола.
41268 просмотров
16 марта (вт) 2021
Василий Степанович
Раньше, лет 20 назад, в эпоху разгула систем, очень сильно приветствовавших использование мыши там
16 марта 2021 в 22:54 бригадир дежурных электриков пишет:
бдэ> 9 марта 2021 в 16:36 Юра в теме 5819 пишет:
бдэ> Ю> Палец устал крутить колесо
бдэ> Во. Порекомендую мышку с "инерционным" колесиком.

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

Может быть такие облегчени страданий для любителей мыши существуют и по ныне, но я просто не любитель применять мышь не по назначению, поэтому подробностей работы мышей у их современных любителей ничего не знаю.
41319 просмотров
16 марта (вт) 2021