Не виноват никто. Тогда, видимо, не было других вариантов: там, где могла работать LISP-машина, она работала.
Память была дорогая и ее было мало. Бейсик позволял урезать свой транслятор и запускать его на слабом железе.
С параллельными вычислениями все это слабо связано, как любительские радиостанции с системами обнаружения космических объектов. Это я к тому, что Бейсик был рассчитан на широкие массы энтузиастов, а не теоретиков компьютерной науки.
Другая аудитория, другие задачи.
FYI:
Все знают, что Бейсик до сих пор можно использовать на платформах Майкрософт (VBA для Office, VB.NET, VBScript, SmallBasic), а также то, что есть масса интерпретаторов и компиляторов под все основные платформы.
Вот еще несколько современных сфер применения:
— микроконтроллеры Basic Stamp от Parallax (пример starter kit)
— одноплатный микрокомпьютер Maximite (пост на Хабре)
— сервер веб-приложений RunBasic
— средство автоматизации Windows GUI — AutoIt
— среда разработки для Android — Basic4Andriod
— среда разработки для iOS/Android — NSBasic
— одноплатные компьютеры, работающие под DOS — JK Micro (сайт старый, не понятно, жив ли производитель)
Наверняка кто-то знает еще интересные проекты, использующие Бейсик в наши дни.
Кстати, истинный Бейсик от Кемени и Куртца сейчас тут — TrueBasic для Windows. (Я сам тру-бейсик не смотрел, другие его особо не хвалят, сайт же вызывает лишь грусть.)
Язык проектировадся грамотно создателями, но, вот, портировался на кучи 8-битных машинок, где он и получил наибольшее распространение, кем придется и как придется с учетом слабых аппаратных возможностей железа. Вся критика, однако, была исключительно в адрес создателей языка.
Старый анекдот:
— Так мне Паваротти не понравился, картавит, в ноты не попадает…
— Вы были на концерте Паваротти?
— Нет, мне Рабинович по телефону напел.
С другой стороны память лишней не бывает. Почему бы и не поставить 8Гб модуль хотя бы в старшую модель.
BT нужен… это тоже упущение, что его нет.
Сейчас все смартфоны его имеют, много акустических систем (мой случай), плюс клавиатуры всякие с мышами.
Реестр содержит семантически связанные и (в норме) однотипные объекты.
Справедливо.
связать два модуля через хорошо известный обоим контракт,
В общем модулей сильно больше двух. И каждый из них связан только со $STATE. $STATE не обязан быть массивом. В более сложных случаях это будет объект с кастомными сеттерами/геттерами.
Глобальная область видимости — это плохо. Это плохо именно потому, что у вас нарушается принцип единой ответственности.
Нарушать этот принцип вовсе не обязательно. Глобальная область это просто верхний уровень. Погружение внутрь хорошо для библиотек и т.п., но для основной программы это, по моему, лишнее.
Хорошо бы вы указали на эти мелочи, пока они остаются загадкой.
совершенно не понятно, зачем примененное, и от этого очень опасное
Этим грешат и паттерны, когда они не понятны.
В моем случае я тоже использую паттерн, только он вам не известен.
Использование $STATE направлено на снижение связности модулей программы и инкапсуляции их поведения и свойств.
В примере это можно заметить (убрав шоры с глаз) по отсутствию параметров у функций.
Когда изменится имплементация той или иной функции, ее сигнатура не изменится.
Каждая функция берет нужные ей входные данные в реестре и может помещать туда промежуточные данные или результат.
Применяется паттерн только в главное программе или в контроллере (при использовании MVC).
Кроме того, такой подход позволяет описывать главную программу (контроллер) декларативно. Из примера этого не видно, впрочем
(а) В фреймворках часто можно встретить объект $app. Оттого, что я назвал его $STATE не делает его «кривым». В этой переменной хранится состояние приложения. Информация связана — вся она относится к приложению.
(б) Чем, по-вашему, "$obj->property" остроконечников лучше чем "$obj[«property»] тупоконечников?
Мне просто нравится такой синтаксис. Но можно заменить тип $STATE с array на StdClass и обращаться к его свойствам, используя объектную нотацию.
(ц), (д) — тут прошу поподробнее. Чувствую ценность в вашем комментарии, но нужно больше деталей.
Посылать к поисковикам плохо еще и потому (и это мое личное мнение), что в нашу дискуссию, обмен мнениями, привлекается мнение каких-то посторонних личностей. И ладно, если это признанные авторитеты, но зачастую это не так.
Вы же понимаете, что когда вы меня ругаете: «криво», «ошибка», было бы полезно пояснить в чем именно кривизна…. Я-то этого не вижу, иначе бы так не сделал.
Либо же нет никакой кривизны, просто вы не понимаете мой код.
Надеюсь и мне поможет. Уже посмотрел 38 слайдов. Для демонстрации Dependancy Injection выбран хороший пример — класс «Пользователь» и хранение состояния в сессии.
Память была дорогая и ее было мало. Бейсик позволял урезать свой транслятор и запускать его на слабом железе.
С параллельными вычислениями все это слабо связано, как любительские радиостанции с системами обнаружения космических объектов. Это я к тому, что Бейсик был рассчитан на широкие массы энтузиастов, а не теоретиков компьютерной науки.
Другая аудитория, другие задачи.
Все знают, что Бейсик до сих пор можно использовать на платформах Майкрософт (VBA для Office, VB.NET, VBScript, SmallBasic), а также то, что есть масса интерпретаторов и компиляторов под все основные платформы.
Вот еще несколько современных сфер применения:
— микроконтроллеры Basic Stamp от Parallax (пример starter kit)
— одноплатный микрокомпьютер Maximite (пост на Хабре)
— сервер веб-приложений RunBasic
— средство автоматизации Windows GUI — AutoIt
— среда разработки для Android — Basic4Andriod
— среда разработки для iOS/Android — NSBasic
— одноплатные компьютеры, работающие под DOS — JK Micro (сайт старый, не понятно, жив ли производитель)
Наверняка кто-то знает еще интересные проекты, использующие Бейсик в наши дни.
Кстати, истинный Бейсик от Кемени и Куртца сейчас тут — TrueBasic для Windows. (Я сам тру-бейсик не смотрел, другие его особо не хвалят, сайт же вызывает лишь грусть.)
Создатели языка еще в 1985 году написали «оправдательную» книгу об истории создания и развития языка — www.amazon.com/Back-BASIC-History-Corruption-Language/dp/0201134330
Язык проектировадся грамотно создателями, но, вот, портировался на кучи 8-битных машинок, где он и получил наибольшее распространение, кем придется и как придется с учетом слабых аппаратных возможностей железа. Вся критика, однако, была исключительно в адрес создателей языка.
BT нужен… это тоже упущение, что его нет.
Сейчас все смартфоны его имеют, много акустических систем (мой случай), плюс клавиатуры всякие с мышами.
Windows как работает? Ставили?
Как быть с Bluetooth? Не заметил его в спецификации.
Вот это очень важно, что есть какие-то перспективы.
На самом деле, мне интересно, как писать под Win8 в «моем любимом редакторе».
Есть где-то простая и понятная инструкция (без лишних деталей) по сборке приложений?
Справедливо.
В общем модулей сильно больше двух. И каждый из них связан только со $STATE. $STATE не обязан быть массивом. В более сложных случаях это будет объект с кастомными сеттерами/геттерами.
Нарушать этот принцип вовсе не обязательно. Глобальная область это просто верхний уровень. Погружение внутрь хорошо для библиотек и т.п., но для основной программы это, по моему, лишнее.
В .Net возможно, но не в PHP.
Хорошо бы вы указали на эти мелочи, пока они остаются загадкой.
Этим грешат и паттерны, когда они не понятны.
В моем случае я тоже использую паттерн, только он вам не известен.
Использование $STATE направлено на снижение связности модулей программы и инкапсуляции их поведения и свойств.
В примере это можно заметить (убрав шоры с глаз) по отсутствию параметров у функций.
Когда изменится имплементация той или иной функции, ее сигнатура не изменится.
Каждая функция берет нужные ей входные данные в реестре и может помещать туда промежуточные данные или результат.
Применяется паттерн только в главное программе или в контроллере (при использовании MVC).
Кроме того, такой подход позволяет описывать главную программу (контроллер) декларативно. Из примера этого не видно, впрочем
(б) Чем, по-вашему, "$obj->property" остроконечников лучше чем "$obj[«property»] тупоконечников?
Мне просто нравится такой синтаксис. Но можно заменить тип $STATE с array на StdClass и обращаться к его свойствам, используя объектную нотацию.
(ц), (д) — тут прошу поподробнее. Чувствую ценность в вашем комментарии, но нужно больше деталей.
Что комментарии, в общем-то, и подтверждают.
Либо же нет никакой кривизны, просто вы не понимаете мой код.