1

Зачем нам знать, что такое программное обеспечение?

Зачем нам знать, что такое программное обеспечение? Софт, Программирование, Интересное, Длиннопост, Жизнь, Ликбез

Всем привет, меня зовут Максим, эта статья попытка объяснить, что такое программирование и программное обеспечение простыми словами.

Для большинства людей процесс разработки программного обеспечения непонятен, неизвестен, и честно говоря, неинтересен — главное, чтобы программа работала.

Под программным обеспечением (ПО, программы, приложения, софт) в данной статье подразумевается ПО, имеющие пользовательский интерфейс.

Насколько важны и нужны для нас программы?

Давайте для начала посчитаем сколько программ мы используем в течение дня!

Утром мы просыпаемся - от (1) будильника на смартфоне.

Зачем нам знать, что такое программное обеспечение? Софт, Программирование, Интересное, Длиннопост, Жизнь, Ликбез

Смартфон вообще “ящик пандоры” с программами (приложениями): запишем минимум: (2) операционная система (Android, IOS), (3) магазин приложений, (4) веб-браузер, (5) соцсеть, (6) мессенджер, (7) камера, (8) голосовой помощник (Google, Siri, Алиса), (9) файловый менеджер, (10) приложение для видеоконференций.

Даже контакты, звонки, сообщения, клавиатура, калькулятор — это отдельные программы!!!

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

Завтракаем в тишине и спокойствии, — ладно включим что-нибудь для фона, если у вас не радиоточка, то телевизор, они в основном (11) смарт ТВ — т.е. тоже с программами.

Внимание: статья написана в апреле-мае 2020 в Беларуси, где не было карантина и можно свободно передвигаться — наконец то, мы самая свободная страна Европы!

Перед тем одеться проверим (12) прогноз погоды (в смартфоне точный прогноз расписан по часам и конкретно для нашего местоположения) — пора бы уже прекращать показывать прогнозы по телевизору.

Если едем на работу на машине включаем (13) навигатор и (14) любимую музыку или подкаст, книгу.

Если на общественном транспорте — (14) музыка, (15) игры, (16) видео, вебсерфинг – а ведь каждый сайт в интернете — это тоже отдельная программа. Что мы смотрим в интернете? — пару новостных сайтов (17-20).

Если сидим/работаем дома - тот же обряд утреннего пробуждения, только навигатор не нужен.

Зачем нам знать, что такое программное обеспечение? Софт, Программирование, Интересное, Длиннопост, Жизнь, Ликбез

На работе у нас есть компьютер, а в нем: (21) операционная система (Windows, MacOS), (22) интернет браузер, (23) мессенджер, (24) ПО веб конференции, (25-27) пакет офисных программ (текст, таблицы, презентации), (28-30) профессиональные программы (мало кто работает в одной).

Что делаем после работы? — ведем здоровую и интересную жизнь, без гаджетов! А в этом нам помогают приложения — кто-нибудь бегает без смартфона?

(31) Спорт, (32) обучение, (34) хобби, (35) увлечения — для всего есть приложения и сайты.

А для этого у нас еще есть фитнес-браслеты и смарт-часы и на них есть своя (36) операционная система и могут быть свои приложения.

У вас есть дети? — для них тоже есть приложения, программы и сайты — (37) развитие, (38) обучение, (39) развлечения.

Книга перед сном? — (40) электронная.

Мы с вами посчитали только программы с интерфейсами, а сколько еще системных программ, программ в оборудовании.


Вывод — разнообразие используемых программ в жизни человека превышает другие продукты!!! Мы едим куда меньше продуктов и используем куда меньше вещей, приборов, чем используем программ.


Хотел написать почему важно понимать как вообще устроен мир и объекты, которые нас окружают. Что-то типа того, что булочки не растут на деревьях, но понял, что в целом это нормально не знать — как сделать булочку, холодильник, смартфон, построить дом.

Все-таки, в эпоху урбанизации, если вы знаете, как добывают полезные ископаемые, производятся сельскохозяйственные работы, функционирует производство, проводят строительство — вы эрудированный человек, даже если вы это смотрели на National Geographic.

Ведь на самом деле мало кому нужны все эти подробные знания о том, как это устроено, в эпоху информационной перегрузки. Польза от таких знаний нужна только героям Таинственного острова и Марсианина, это факт.

Что-такое программное обеспечение?

Если по сложному — программное обеспечение — это программа или множество программ, используемых для управления компьютером, такое определение дано в Википедии, а оно взято из международного стандарта ISO.

Если совсем по-простому, то программное обеспечение — это инструкция, в которой написано, что делать компьютеру (смартфону, иному оборудованию). Эта инструкция называется программным кодом. Программный код бывает исходный и исполняемый.

Исходный код — это код, который пишет программист на каком-нибудь языке программирования — Java, Python, С, PHP и др., это так называемые высокоуровневые языки программирования, которые близки к натуральным языкам (английский и др.).

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

По мере преобразования (компиляции и интерпретации) исходный код преобразуется сначала в объектный код, байт-код, машинный код, микрокод.

Когда нибудь я напишу по этому вопросу подробнее,  — но это не точно.


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

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

Программа, а следовательно компьютер или смартфон не смогут сами этого сделать - так появляются баги, - мы делаем с программой, то что мы можем, а она не может.


Чтобы понять разницу между инструкцией человеку и инструкцией для компьютера давайте рассмотрим одну задачу — сделать медицинскую маску.

Одну инструкцию напишем для человека, а другую для 3D принтера.


Инструкция для человека

Шаг 1. Найти видео-инструкцию как сделать маску.

Шаг 2. Посмотреть видео как сделать маску.

Шаг 3. Найти подходящие материалы или их аналоги.

Шаг 4. Сделать маску.

4 строки и 99% людей смогут сделать маску по этой инструкциию

Например, здесь несколько инструкций от 2 до 10 шагов

Зачем нам знать, что такое программное обеспечение? Софт, Программирование, Интересное, Длиннопост, Жизнь, Ликбез

Инструкция для 3D принтера

Это файл в формате x3d, который содержит описание трехмерное описание маски, в данном случае в XML. XML это язык разметки, применяемый для передачи различных данных в виде файла. XML как язык примечателен тем, что считается и человеко-читаемым и машино-читаемым.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' profile='Full' version='3.0' xsd:noNamespaceSchemaLocation='http://www.web3d.org/specifications/x3d-3.0.xsd'>
<Scene>
<NavigationInfo avatarSize='0.25 1.75 0.75' type='"EXAMINE" "ANY"'/>
<Background DEF='WO_World' groundColor='1 1 1' skyColor='1 1 1'/>
<Transform DEF='_16215-0_TRANSFORM' rotation='0 0.707107 0.707107 3.14159'>
<Transform DEF='_16215-0_ifs_TRANSFORM'>
<Group DEF='group_ME_16215-0'>
<Shape>
<Appearance>
<Material DEF='MA_NIH_blue2' ambientIntensity='0.333' diffuseColor='0.2 0.38 0.6' shininess='0.098' specularColor='0.401 0.401 0.401'/>
</Appearance>
<IndexedFaceSet coordIndex='
0 1 2 -1 3 4 5 -1 6 7 8 -1 8 7 9 -1 10 11
...
Здесь пропущено 12 000 строк кода
...
27.7798 -18.6887 31.3858 31.06 -18.6887 31.3858 27.7798'/>
</IndexedFaceSet>
</Shape>
</Group>
</Transform>
</Transform>
<Transform DEF='Camera_TRANSFORM' rotation='-0.098233 -0.968789 -0.227591 2.34949' translation='-151.698 109.585 -144.697'/>
<Viewpoint DEF='AOPT_CAM' centerOfRotation='0.163052 0.0671387 2.98624' position='0.163052 0.0671387 194.108'/>
</Scene>
</X3D>

Итого более 12 000 !!!!!!!!! строк.

Зачем нам знать, что такое программное обеспечение? Софт, Программирование, Интересное, Длиннопост, Жизнь, Ликбез

Инструкции для компьютера должны быть очень-очень подробные, в этом и есть сложность программ и программирования. После этого сравнения, возможно кто-нибудь захочет сравнить программистов с писателями. Можно, но ненужно — программирование, это самостоятельная сфера, которая не похожа ни на одну другую, давайте это поймем, примем и запомним, пожалуйста.


Давайте подведем итоги.

1. Программное обеспечение - это самый популярные и используемые продукты (товары) в нашей жизни и их будет становиться все больше и больше.

2. Программное обеспечение (ПО, программа, приложение, софт) - это очень подробная инструкция, которая описывает все варианты поведения программного обеспечения.

3. Программирование - это самостоятельная сфера, которая не похожа ни на одну другую!


P.S. Это статья попытка объяснить про программирование “сверху-вниз” от пользователя, если вы хотите разобраться в программировании с целью “Войти в IT”, то вам нужен другой подход “снизу-вверх” от информатики к программам и системам, например — Гарвардский курс “CS50. Основы программирования”.

P.S. С 25 по 27 минуты про основы программирования рассказывают Билл Гейтс и Марк Цукерберг.

0
Автор поста оценил этот комментарий
Иллюстрация к комментарию
0
Автор поста оценил этот комментарий
Всем привет, меня зовут Максим, эта статья попытка объяснить, что такое программирование и программное обеспечение простыми словами.

Про туалетную бумагу лучше расскажи. Доступно-простыми словами.

0
Автор поста оценил этот комментарий
Зачем нам знать, что такое программное обеспечение?

А где ответ на вопрос в заголовке?


Программирование - это самостоятельная сфера, которая не похожа ни на одну другую!

Радиотехника, например.

0
Автор поста оценил этот комментарий

А как обстоит дело с электричеством?