Прежде всего — изменились задачи, решаемые на ЭВМ. Вначале это была просто математика, расчет баллистики — для ракет, для дальнобойных орудий, задачи по криптографии. По мере распространения ЭВМ было обнаружено, что и бухгалтерские расчеты на ЭВМ делать — одно удовольствие. Удовольствие в смысле, что кто-то напишет программу расчета, бухгалтер введет в программу исходные данные — и машина за секунду работы все высчитает, а потом несколько минут будет печатать уже готовый документ — какой-нибудь годовой или квартальный отчет, который иначе несколько человек считали бы на счетах несколько недель. А потом появились компьютерные игры, и им понадобилась графика.
С появлением новых задач, стали появляться новые языки — APL, PL/1, Snobol, Simula, Prolog, ML, Basic, каждый из которых решал маленький частный вопрос, позволяя легко программировать задачи в определенной области науки или техники.
Наконец, в начале 70-х годов появился язык С. Почему он С? Очень просто — для нужд системного программирования в компании AT&T был создан новый
А после этого на базе В в Bell Labs был разработан язык С, который стали активно использовать для разработки системы Unix.
Поскольку язык С до сих пор активно используется в программировании (к тому же сам С получил развитие в языках С++, С#, Java — тоже более чем активно используемые в программировании сегодня), про историю возникновения языка С появилось много легенд, например:
- Говорят, что он является первоапрельской шуткой, обернувшейся открытием.
- Говорят, что это попытка доказать правильность теории Никлауса Вирта (компилятор языка С написан тоже на С).Реклама
- Говорят, что системщики работали с языком В, но чувствовали, что он не настолько хорош, чтобы использовать его для разработки ОС, внесли в него изменения и решили измененный язык назвать С, т.к. он стал намного лучше, чем язык В, который послужил для него базой.
Что происходит с программированием в наше время? В наше время существует несколько направлений программирования.
Программирование встраиваемых систем. В прибор вставляется процессор с памятью, делается его подключение к интернету — и прибор можно программировать на выполнение его функций… хоть с другой стороны планеты.
Какой именно прибор? Тестирующее устройство для проверки качества работы каналов сети, или видеокамеру, или стиральную машину, пылесос, автомобиль.
Скажем, хозяин автомашины скоро выйдет из дома, чтобы поехать на работу. За несколько минут до выхода он дистанционно заводит машину и включает обогрев салона — чтобы выйти из дома и сразу поехать.
Или хозяйка загрузила стиральную машину и вышла на улицу по делам, зная, что когда все будет готово, машина ей сообщит, что все уже постирано — пора возвращаться домой и развешивать на просушку.
Или радар на судне. Его включение или выключение — сложный процесс, оператор дает команду «Включить» и понятия не имеет, в какой очередности включаются какие системы радара. А когда радар включен, то данные, которые он получает, передаются по локальной сети на компьютер, отвечающий за демонстрацию результатов на экране — и оператор радара видит картинку, свое местоположение и какие суда с какой стороны от него находятся.
Программирование баз данных. Каждая большая организация имеет архив, большая часть архивов уже оцифрованы, переведены в вид баз данных. Управлять этими базами, модифицировать их — весьма сложная и нужная работа. Например, базы ЖКХ распределены по районам, и центральное руководство использует специальную программу, извлекающую из районных баз данных для получения общей информации по городу.
Программирование для бухгалтерии. В России это система «1С Предприятие». Тут и базы данных, и особенности бухгалтерского учета. Опытные специалисты в этой области не только специалисты в программировании, им надо еще знать бухгалтерские стандарты и уметь их применять в своей работе.
Разработка игр. Мощная индустрия, в которой крутятся огромные деньги. Индивидуальные игры просто для компьютера, командные игры через локальную сеть или Интернет. Тут необходима и быстрая и точная обработка графики, и дизайн каких-нибудь пейзажей или доспехов героев. Группы программистов, занимающихся программированием игр, весьма многочисленны, в них входят и дизайнеры, и художники, и специалисты по компьютерной графике, и специалисты по базам данных, и системщики, и администраторы. Причем администраторы очень важны при поддержке продукта и при разработке очередной его версии.
Программирование приложений для компьютеров — это разработка всего ПО, которое мы постоянно используем при работе с компом. Когда вы тыкаете мышкой на ту или иную иконку, то запускаете кем-то написанное приложение. Будь то тот или иной редактор текстов, или программа обработки фотографий, или просто рисовалка.
Программирование сайтов и веб-приложений — индустрия и способ заработка. Многие фирмы хотят иметь свой сайт. А те, у кого свой сайт уже есть, хотят, чтобы он постоянно работал, был красив, привлекал клиентов и таким образом приносил фирме доход. И создание сайта, и его сопровождение — не очень дешевые работы.
Программирование мобильных приложений — на современных смартфонах стоят весьма продвинутые ОС, а их хозяева хотят то поиграть, то посмотреть фотки, то поговорить по бесплатному интернет-телефону. Это программирование очень похоже на простое программирование для компьютеров, но экраны у смартфонов намного меньше, что вызывает потребность как-то извернуться, чтобы на маленьком экране игра, или фото, или какие-то тексты были хорошо видны хозяину смарта.
Системное программирование — для программистов высшего уровня компетенции. Постоянно появляются новые устройства для компьютера — новые принтеры или сканеры, новые виды памяти. Для того чтобы они могли работать с компьютером, нужны драйверы. Эти драйверы нужно создать. Существующие операционные системы постоянно изменяются и совершенствуются — именно силами системных программистов.
Очень часто хорошие программисты, специализирующиеся в одной области программирования, почти совершенно не разбираются в другой. Скажем, великолепный специалист по бухгалтерии 1С скорее всего будет плавать, если надо сделать что-то из области системного программирования, при этом тот же системный программист вряд ли сможет что-то исправить в бухгалтерских программах 1С.
Так сколько сейчас существует языков программирования? Много. И никому из программистов не надо знать их все. Каждый программист специализируется в своей области и имеет приличный заработок и уважение.