Здравствуйте!
Хотелось бы знать, как народ отнесся бы к появлению проекта по созданию Руccкой
ОС. Причём не только русской, но и всего русскоговорящего населения?
Присоеденились бы вы к такому проекту?
Прошу не относить к флейму. Речь идёт о уже существующем проекте.
С уважением,
VICH
Всего в теме 5452 сообщения
Отслеживать это обсуждение
№ 2522 02-09-2007 05:32 | |
Ответ на »сообщение 2518« (Сергей Прохоренко)
___________________________
Ответ на »сообщение 2516« (Руслан Богатырев)
___________________________
Сразу на ум приходит легенда о плачевных результатах строительства вавилонской башни.
Между тем, на практике наблюдается явный отход от позиции "одна парадигма программирования - один язык":
Оберон - две парадигмы (императивная, объектно-ориентированная)
Питон - три парадигмы (функциональная, императивная, объектно-ориентированная)
(Ну, вавилонская башня - это скорее попытка создания единого универсального и великого на все времена...)
По поводу парадигм - нельзя смешивать на одном уровне императив, функционал и ООП. Это явления разного порядка.
В самом общем плане можно выделять только императивную и функционально-декларативную (м.б. и ещё какую-то - но уж точно не из разряда ООП). Это как в физике "корпускулярно-волновой дуализм", так и тут: императивно-функциональный. Одно и то же можно представлять как последовательность смены состояний, и как побочный эффект этого - полезные вычисления; либо - как описание требуемых вычислений, и неявно и автоматически организуемую для этого смену состояний. Т.е. на первом плане либо управление, либо преобразования.
ООП в "эталонном виде" - это Smalltalk, который императивен.
ООП в широком смысле - это набор механизмов (полиморфизм, расширение типа, в немодульных языках приплетаемая сюда инкапсуляция) и приёмов (ОО-проектирование и паттерны), что не никак не тянет на парадигму верхнего уровня. И, как показывает опыт, успешно "режется" на отдельные составляющие (например, вместо пронизывания всего языка остаётся только составляющей системы типизации).
№ 2521 02-09-2007 05:01 | |
Ответ на »сообщение 2519« (Сергей Прохоренко)
___________________________
Питон реализует все три парадигмы программирования. Возникает подозрение, что выбор языков был обусловлен не парадигмой программирования, а какими-то другими соображениями. Может быть, языки различной "строгости" - для разных целей. Или разного синтаксиса - для приверженцев того или другого? Или разного объема - для узких и широких применений? Или понравились те или иные свойства, которые есть в разных языках? Или там хорошие библиотеки? Или нужно привлечь почитателей разных языков? В общем, туман.
Не туман, а нехитрый расчет. Будем понемногу раскрывать карты. Схема достаточно проста:
0. Norebo-0 (читай Modula-2 с доп. низкоуровневыми средствами а-ля Си и прозрачной генерацией в Си). Он будет лежать в самом низу и являться основой реализации всех ран-таймов.
Поверх него идет тройка (ИП-ФП-СП):
1. Norebo-1 (читай Оберон, который имеет под ногами Norebo-0, а, значит, может целиком сосредоточиться на алгоритмической стороне дела)
2. Haskell (несмотря на линию ФП совмещает в себе разные подходы)
3. Python (несмотря на линию сценарного программирования тоже совмещает в себе разные подходы)
И, наконец, поверх всей этой четверки идет Norebo-2 -- этот архитектурный язык кластеров осуществляет композицию ключевых сущностей всех перечисленных выше языков. Если в этих языках не будет общих сущностей, создать интеграцию будет затруднительно. Поэтому их избыточность в плане подходов не является серьезным минусом.
Разумеется, в выборе основных (привилегированных) языков не последнюю роль играют перспективы языков (с прицелом на 5-7 лет), нынешняя популярность этих языков, наличие понятных спецификаций и открытых реализаций). Куда же без компромиссов?
Я уже в шутку говорил, что "Роса" -- это будущий кровопивец с милым и ласковым названием. Он присосется к армии Си и UNIX-разработчиков (к Linux), к Haskell-сообществу, к Python-сообществу. Подтянет их к себе (новое -- это всегда интересно и приковывает внимание). При этом даст им в руки действительно новый инструмент. Весьма и весьма полезный. Технологичный, открытый, бесплатный, без ограничений на коммерческое использование.
Для каждого из этих миров (Си, Haskell, Python) появится масштабируемая перенацеливаемая ОС (встроенная ОС, офисная ОС, Web-ОС, серверная ОС), которая фактически предложит солидную, продуманную подпорку их ран-таймов. Чуть позже сюда добавится и Java (в пару к Си -- для непривилегированных языков). Через них пойдут на общих основаниях и остальные языки.
Попутно будет заметно улучшен BlackBox (поскольку станет основой для макетирования ОС и трамплином для запуска Norebo-семейства). Т.е. его модернизация будет практически востребована масштабным проектом.
Norebo (название, конечно, изменим) как наследник Паскаль-традиций позволит заполучить Паскаль-сообществу, работающему преимущественно в тихо угасающем Delphi (что будет с ним через 5-7 лет, даже думать страшно), мощный инструмент, где будет востребован их потенциал (особенно, с появлением востребованности переработки старых систем и уникальным статусом новой ОС у нас в стране).
Открытая разработка в течение длительного времени (на глазах у Паскаль-сообщества и при его активном участии) позволит создать хорошие подъездные пути к новой ОС и подготовить будущих разработчиков приложений для "Росы" к такому переходу.
Для привилегированных языков будет создан инструментарий нового поколения, более сильный, нежели существующие (включая Eclipse). С возможностями использования приложениями "бортовых" микро-ОС (как в случае BlackBox).
UNIX-программисты заполучат уникальные средства мультипрограммирования и компонентного программирования, которые они до этого не имели. А Си плавно будет перетекать в Norebo-0.
Как известно, всё познается в сравнении. И новое -- особенно. Выделенные в мэйнстриме технологические зоны прорыва (UNIX, Си, Haskell, Python) помогут встать новой ОС и ее инструментарию на ноги. А потом -- путем мягкой миграции (совмещения старого и нового) -- заполучить много новой крови для своего развития.
№ 2520 02-09-2007 02:53 | |
Ответ на »сообщение 2284« (Сергей Прохоренко)
___________________________
НЛП - это либо бред (если апологет в это верит) или мошенничество (если он не верит). Так что вряд ли удастся найти человека (не инвалида) с приоритетом нюхательного интерфейса. Зрительные образы являются ведущими при конструировании сложных моделей действительности.
Сергей, Вы (здесь и в другом месте) такой горячий и категоричный, что ... не могу этого оставить без ответа :-)
Что в НЛП отношение наукообразия к сабстэнсу великовато, спорить не буду.
Но сформулированная "основа" НЛП -- скорее, гипотеза, а не бред. Все органы чувств перечислены для полноты (и в этом смысле вполне корректно, и Вы недооценили аккуратность трех авторов) -- каждому из органов чувств в мозгу соответствует область-"процессор", который, теоретически говоря, мог бы быть задействован в мышлении (все они уже были в наличии на момент начала эволюции хомо).
Нюхательный и вкусовой -- это, конечно, перебор.
Но я тоже по молодости думал, что "картинка всем поможет", пока некий опытный препод поделился таким наблюдением (похоже, правильным): есть небольшой процент (<10%) студентов, для которых иллюстрирующая картинка не срабатывает. Им нужна, скорее, выкладка -- текст. С такими людьми "визуалу" довольно трудно, кстати, общаться (например, учиться или учить).
Можно среди успешных математиков найти таких (условно говоря, "алгебраистов") -- с их нагромождениями формул "визуалу" обычно трудно разбираться. Но есть и ярко выраженные "визуалы" (хороший пример -- В.И.Арнольд, в учебниках которого масса простеньких иллюстраций).
Так что жизнь сложнее, чем кажется по молодости лет... (Просто факт.)
№ 2519 02-09-2007 02:44 | |
Ответ на »сообщение 2518« (Сергей Прохоренко)
___________________________
Питон реализует все три парадигмы программирования. Возникает подозрение, что выбор языков был обусловлен не парадигмой программирования, а какими-то другими соображениями. Может быть, языки различной "строгости" - для разных целей. Или разного синтаксиса - для приверженцев того или другого? Или разного объема - для узких и широких применений? Или понравились те или иные свойства, которые есть в разных языках? Или там хорошие библиотеки? Или нужно привлечь почитателей разных языков? В общем, туман.
№ 2518 02-09-2007 02:19 | |
Ответ на »сообщение 2516« (Руслан Богатырев)
___________________________
Ответ на »сообщение 2514« (Сергей Прохоренко)
___________________________
Язык должен быть ориентирован на человека, а большинство людей не полиглоты, и плохо воспринимают перескоки с одного языка на другой с кардинальной сменой синтаксиса, не обусловленной потребностями семантики. Да еще с необходимостью состыковывать куски кода, написанные на разных языках.
Какие проблемы писать только на Norebo (Обероне), только на Хаскеле, только на Питоне? А другим, кто хотел бы не просто решать задачу тем, что знаешь, а решать эффективно, и дается выбор из сбалансированных ортогональных языков.
Вот-вот! Чтобы решать задачу эффективно (а кто хочет решать неэффективно?), предлагается изучить ТРИ языка. Не забудем также необходимость знать SQL, HTML, XML и ассемблер для решения специфических задач во многих крупных проектах. Сразу на ум приходит легенда о плачевных результатах строительства вавилонской башни.
Между тем, на практике наблюдается явный отход от позиции "одна парадигма программирования - один язык":
Оберон - две парадигмы (императивная, объектно-ориентированная)
Питон - три парадигмы (функциональная, императивная, объектно-ориентированная)
То есть, защитники позиции "одна парадигма программирования - один язык" неявным образом признают её уязвимость. Неверная позиция приведет к неверным решениям.
См. http://ru.wikipedia.org/wiki/%D0%9C%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%B0%D1%80%D0%B0%D0%B4%D0%B8%D0%B3%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
"Мультипарадигменный язык программирования поддерживает больше чем одну парадигму программирования. Цель разработки таких языков состоит в том, чтобы позволить программистам использовать лучший инструмент для работы, признавая, что никакая парадигма не решает все проблемы самым лёгким или самым эффективным способом."
№ 2517 01-09-2007 17:00 | |
Ответ на »сообщение 2512« (Geniepro)
___________________________
Что-то я не слышал о популярности PL/I...
Достаточно популярный язык. "Тяжелое наследие прошлого", как и Кобол. :)
По рейтингу TIOBE (по числу упоминания в Интернете) -- на 39-м месте, сразу после Smalltalk, Forth, Haskell и перед VBScript, OCaml и Erlang.
№ 2516 01-09-2007 16:49 | |
Ответ на »сообщение 2514« (Сергей Прохоренко)
___________________________
Язык должен быть ориентирован на человека, а большинство людей не полиглоты, и плохо воспринимают перескоки с одного языка на другой с кардинальной сменой синтаксиса, не обусловленной потребностями семантики. Да еще с необходимостью состыковывать куски кода, написанные на разных языках.
Какие проблемы писать только на Norebo (Обероне), только на Хаскеле, только на Питоне? А другим, кто хотел бы не просто решать задачу тем, что знаешь, а решать эффективно, и дается выбор из сбалансированных ортогональных языков.
Состыковка делается максимально органичной, на то они и сбалансированы.
А что можно сказать о питоне? Он что, заметно лучше других? Многие ли вспомнят о нем через 20 лет? Можно ли будет сравнивать его на равных с другими языками через 20 лет, как PL/I сейчас?
В классе сценарных -- один из лучших. Нужно пояснять, чем сценарные языки отличаются от ИЯ и ФЯ? И зачем они вообще нужны? Если не нужно, то про Python скажу коротко: создан в 1991 г. (16 лет -- вполне достаточный период для зрелости языка), опирается на модульный подход (Modula-2, Modula-3), весьма популярен: по известному рейтингу TIOBE на 8-м месте среди всех языков (на 3-м среди сценарных, после PHP и Perl): http://www.tiobe.com/tpci.htm
Для информации выдержка из моей статьи по сценарным языкам (ссылку ранее приводил):
Язык Python задумывался для обеспечения удобного доступа к системным средствам экспериментальной операционной системы Amoeba. Его автор Гвидо ван Россум под влиянием синтаксиса языка ABC и механизмов языков Modula-2+ и Modula-3, разработанных в исследовательском центре Systems Research Center корпорации Digital, к 1991 г. создал объектно-ориентированный язык сценарного характера. Его особенностями стали механизм лямбда-вычислений, заимствованный из языков функционального программирования, и расширенная обработка строк. Интерпретатор Python позднее получил версию компилятора в Java-код (JPython), а затем и компилятор в MSIL-код для платформы Microsoft .NET.
Две недели назад вышел отчет Forrester Research ("The Forrester Wave: Dynamic Programming Languages), где Python назван универсальным лидером в области динамических (сценарных) языков. Сравнение велось по 90 критериям среди следующих языков: ECMAScript (Microsoft and Mozilla), Perl (The Perl Foundation), PHP (Zend Technologies and Oracle), Python (Python Software Foundation), and Ruby (Sun Microsystems).
См. выдержку из отчета: http://www.forrester.com/Research/Document/Excerpt/0,7211,41386,00.html
А также недельной давности комментарий по отчету: http://reddevnews.com/blogs/weblog.aspx?blog=1177
Вспомнят ли Python через 20 лет? Кто знает? Думаю, C++ не забудут никогда :) Так уж устроена человеческая натура, что плохое помнят дольше.
№ 2515 01-09-2007 16:26 | |
Ответ на »сообщение 2513« (Сергей Перовский)
___________________________
Этот подход и вызывает сомнения. Я много раз убеждался, что механизмы защиты и безопасности, реализованные в отдельном блоке, можно легко "отключить или изъять" прямо в процессе работы.
Блок находится в ядре. Изъять его может тот, кто имеет возможность пересобирать (реконфигурировать) ядро.
Только монолитное включение механизмов безопасности в ядро системы на уровне принципов его работы, позволяет создать сколь-нибудь безопасные системы.
Что значит "монолитное включение" для модульной системы? Размазанное так, чтобы никто концов не сыскал? Или залитое эпоксидкой так, чтобы отодрать было нельзя, разве что с мясом?
№ 2514 01-09-2007 16:21 | |
Ответ на »сообщение 2512« (Geniepro)
___________________________
Ответ на »сообщение 2495« (Сергей Прохоренко)
___________________________
Кстати, я не заметил в PL/I вкраплений функциональной или скриптовой парадигмы. И почитателей у него гораздо больше, чем у всех оберонов, хаскелей и питонов вместе взятых (обероны мне тоже нравятся, но однобокость в них сильно чувствуется).
Что-то я не слышал о популярности PL/I... Насчёт питонов не могу согласиться - питон сейчас весьма и весьма популярен...
Вижуалбейсик гораздо популярнее (это так, к слову, он мне не нравится).
Я изучал PL/I более 20 лет назад. Для того времени это был замечательный язык. Да, он не работает на PC, и в нем не реализовано ООП. В остальном он превосходит многие современные языки, и довольно легок как в изучении, так и в применении (что бы ни говорили некоторые поклонники микроязыков). Он на голову превосходил другие языки тех лет, позволяя реализовывать всё, что угодно, оставаясь в рамках одного языка.
Время покажет, что это верный подход, который не случайно стал мейнстримом. То, что C++ превратился в свалку, вовсе не результат такого подхода, а результат требований совместимости (в т.ч. с привычками программистов) и безответственного дублирования, неортогональности различных средств. Плюс оберонов не в том, что из них удалено всё, что можно, и что нельзя, а в том, что язык многократно переписывался без какой-либо оглядки на совместимость, и первостепенное внимание уделялось ортогональности средств (отсутствию избыточности). (ну, и конечно, легкий для восприятия неэкономный и близкий к естественному языку паскалевский синтаксис)
Язык должен быть ориентирован на человека, а большинство людей не полиглоты, и плохо воспринимают перескоки с одного языка на другой с кардинальной сменой синтаксиса, не обусловленной потребностями семантики. Да еще с необходимостью состыковывать куски кода, написанные на разных языках.
А что можно сказать о питоне? Он что, заметно лучше других? Многие ли вспомнят о нем через 20 лет? Можно ли будет сравнивать его на равных с другими языками через 20 лет, как PL/I сейчас?
№ 2513 01-09-2007 15:43 | |
Ответ на »сообщение 2511« (Руслан Богатырев)
___________________________
При перенацеливании ОС избыточный контроль можно отключить, либо вообще этот блок с контрольными функциями изъять ("вынуть"). Система и должна обеспечивать возможности отключения, изъятия, функциональной и ресурсной деградации (и наоборот) для конкретных задач.
Этот подход и вызывает сомнения. Я много раз убеждался, что механизмы защиты и безопасности, реализованные в отдельном блоке, можно легко "отключить или изъять" прямо в процессе работы. Только монолитное включение механизмов безопасности в ядро системы на уровне принципов его работы, позволяет создать сколь-нибудь безопасные системы.
Отслеживать это обсуждение
Дополнительная навигация: |
|