Формируем наш мир - Конструктивный взгляд (gonchar) wrote,
Формируем наш мир - Конструктивный взгляд
gonchar

Вещь, которой в мире не хватает

Я считаю, не хватает некоего языка программирования.

Такого, чтобы он удовлетворял нескольким свойствам одновременно.

Сначала расскажу о требованиях, а потом объясню, зачем это надо, и почему это очень важно. :)


Требования


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

2. Языык НЕ должен иметь сложных конструкций, противоречащих пункту 1. Это - принципиальный момент. Человек, работающий на этом языке, должен быть уверен в том, что он полностью понимает любую программу, написанную на этом языке.

3. Пункты 1 и 2 противоречат современному пониманию программирования. Для снятия этого противоречия введу ограничение: вполне достаточно, если язык позволит писать программы длиной до нескольких тысяч строк. Не требуется средств коллективной разработки программ.

3. Язык должен иметь среду разработки - крайне простую, позволяющую человеку немедленно начать с ней работу и не оказываться в положении "непонятно, как это сделать". Возможности среды - второе дело. Вполне достаточно возможностей, схожих с возможностями старой-старой среды "Турбо-Си", больше не нужно.

4. Среда разработки должна включать в себя возможность комментирования не только текстом, но и прочими форматами информации, как минимум, графикой (возможно, вообще html). Но это не должно противоречить единству и простоте.

5. Язык должен включать в себя в качестве базы (возможно, библиотек): работу с файловыми системами, работу с реальным временем, работу с Интернетом, работу с прямой адресацией памяти в каналов ввода-вывода, работу с базами данных и работу с офисными документами.
:)))
Я - не идиот и не сумасшедший. :) Поясню. В языке должен быть некий минимум (!) каждого из перечисленных средств, но достаточный, чтобы "тупо" сделать всё, что угодно. Пусть неэффективно. Но не должно быть ситуации "я понимаю, что и с чем я хочу сделать, но совершенно не представляю, как".

6. Язык должен иметь средства (скорее всего, библиотеки) для взаимодействия с другими языками. С максимально возможным набором языков. Пусть для простого взаимодействия, аналогичного указанному в п.5.

7. Язык должен средства графики. ВОзможность создавать простые формы. Обязательно иметь простые компоненты для рисования штук вроде таблиц, графиков и т.п. Компоненты должны быть простыми - пусть с минимальными возможностями.

8. Язык должен быть ориентирован на простой выбор кодировки.

9. Язык и среда раззработки должны быть полностью кроссплатформенными.

Вот такие основные требования.


Зачем это надо и почему это важно

Надо это вот для чего.
Сегодня практически всё, созданное человеком, имеет программное управление. Из того, разумеется, что вообще имеет какое-то управление. Тенденция развития такова, что создать любой нетривиальный объект ПРОЩЕ, если сделать его программно управляемым.

Подчеркну - речь идёт не только о технических устройствах. Речь идёт также и об информации.

На сегодняшний день ситуация такова, что НЕпрограммист работать с такими объектами "напрямую" практически не в состоянии. Более того, программист также должен специализироваться в тех или иных объектах.
Простой пример. Мы разрабатываем технику в некой CAD-системе. Нам нужно извлекать из неё часть данных и использовать их в системе управления производством.
Так вот - у нас для этого дела были задействованы ТРИ человека: специалист по данной CAD-системе, специалист по базе данных и специалист по удалённому доступу, хорошо знающий программирование под Windows, Linux и Android. Это - реалии, не фантазии. Экспериментальный факт.
При этом все трое были весьма толковые ребята весьма высокой квалификации. Но оказалось выгоднее и проще организовать взаимодействие между ними, чем поручать всю задачу одному из них.

Что важно. Я, инженер и организатор (тут важно именно это), взялся бы объяснить общую задачу на простом человеческом языке за буквально 30 минут.
И взялся бы её алгоритмизировать за пару дней. Но чтобы НАПИСАТЬ программу, мне потребовалось бы знание кучи тонкостей, на изучение которых потребовались бы месяцы.

Таких задач ОЧЕНЬ много. Они встречаются в жизни практически каждого человека чуть ли не на каждом шагу.

Взять какую-то информацию из базы данных. Из бухгалтерской системы.
Сгенерировать автоматически письмо.
Организовать определённое прохождение документов по организации.
Рассчитать что-то.
Запрограммировать режимы стиральной машины.

И так далее.

Сегодня ВХОДНОЙ ПОРОГ для возможностей такого рода чрезвычайно высок.
Преодолевают его лишь немногие - и каждый в своей узкой области.
Например, наш главный разработчик электроники - очень умный молодой парень, физик, кандидат наук и т.п. - пользуется Матлабом и Си. Но ему становится плохо от конструкций С++ :)

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

Идея языка, о котором я говорю - снижение этого порога до вполне приемлемого (см. п.1).
Преодолев порог, человек способен СДЕЛАТЬ всё, что угодно. Пусть сто раз неэффективно, но гарантированно.

Такая штука, на мой взгля, реально бы поменяла мир. Больше, чем Тесла или ракета, кстати. :)
Тесла, ракета, гиперпоезд - частности. А такая штука - коренное изменение, как сейчас говорят, ПАРАДИГМЫ работы и жизни (!) большинства людей "с высшим образованием" (да и не только их).

Моё мнение - совершенно реальная задача. Взяться, да сделать.

100% даю, что куча народу со мной не согласится. :))
Tags: идея, личная_работа
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 68 comments