Какие приложения написаны на c
Когда в 1973 году вышел С, это было круто — можно было писать почти любые системные программы на языке высокого уровня без всякого ассемблера. И первое время его хватало всем.
Но потом один разработчик захотел использовать всю мощь ООП, но язык это напрямую не поддерживал. Тогда он нашёл выход — написал свою версию языка C с поддержкой объектов, классов и методов, которую изначально называли «Си с классами».
Вначале это была как бы просто надстройка над стандартным С, и даже был компилятор, который переводил этот код в обычный код на С. Но со временем язык усложнялся, всё больше отходил от концепции привычного С, и в 1983 он стал отдельным полноценным языком со своими возможностями и особенностями. Тогда же у него появилось название C++ .
В чём сила C++
С++ унаследовал от C все его сильные стороны и добавил новые:
- полноценное ООП-программирование;
- перегрузку операторов (в умелых руках это очень мощная штука);
- полноценную обработку исключений (это когда вы заранее продумываете, что может пойти не так, и успеваете сами предусмотреть поведение программы при ошибках);
- некоторую автоматизацию при работе с памятью.
Недостатки C++
Может показаться, что по сравнению с C у C++ больше недостатков, но это не так — они просто другие и возникли по другим причинам. Вот некоторые из них:
- Допустить ошибку, которая приведёт к неправильной работе программы или к её падению, стало ещё проще.
- Неправильное использование механизмов ссылок, указателей и перегрузок сложно отловить на этапе поиска ошибок.
- Встроенные способы обхода ограничений компилятора дают непредсказуемые результаты (хотя, опять же, иногда это бывает полезно).
- ООП-реализация может на несколько процентов снизить быстродействие кода. Иногда это критично.
- Сложно писать кроссплатформенный код, чтобы он легко портировался на другие платформы.
- Для полного раскрытия потенциала C++ нужно знать язык действительно хорошо, иначе не будет выигрыша в скорости или эффективности.
Что сейчас пишут на C++
На C++ пишут то же, что и на C — системные приложения, драйверы, операционные системы и софт для встраиваемых систем. Но благодаря ООП область применения C++ получилась немного шире, чем у С. Вот что написано на C++ :
- почти все продукты Adobe (Photoshop, Illustrator, inDesign, Acrobat и так далее);
- почти все главные продукты Microsoft (Windows, Office, IE, Visual Studio, SQL);
- большая часть MacOS (включая интерфейс Finder);
- интерфейс iPod;
- приложения Autodesk для проектировщиков;
- высоконагруженные компоненты платформы Facebook;
- поиск Google, движок Chromium;
- Havoc — реалистичный физический движок, который используется в играх;
- софт для бортовых компьютеров самолётов Lockheed (Стелс, например);
- прошивки для двигателей MAN — тягачей;
- большая часть медицинского софта компании Siemens.
А вот часть игр, которая тоже написана на C++ (или на C++ написаны движки для этих игр):
- Doom III engine;
- Football Pro;
- Kings Quest;
- Antara;
- SWAT;
- StarCraft;
- Diablo II: Lord of Destruction;
- Warcraft III;
- World of Warcraft.
Меня спрашивают: «Какой язык программирования лучше всех?» Считаю, что тот, на котором написан самый важный софт.
А они написаны на C++, который разработан Бьерном Стаустрапом в Bell Labs.
Применяется лидерами ИТ-индустрии. В их числе Google, Microsoft и IBM. Кроссплатформенный, объектно-ориентированный, гибкий. При правильной оптимизации приложения, написанные на нем, работают быстро.
На нем пишут операционные системы, приложения и инструменты электронного бизнеса. В том числе, а не исключительно, разумеется.
Его использовали для создания программных продуктов, без которых пользователи не могут обходиться. Зачастую ни дня, хотя альтеративы есть.
Microsoft Office
Исходно писали на ассемблере, перешли на C, после — на C++.
Фотошоп
Профессиональный графический редактор, который разрабатывает Adobe. Большая часть кода написана на C++, как и другие продукты компании.
В их числе ImageReady. Предназначен для создания анимированных «гифок», которыми пользователи радуют друг друга в соцсетах и мессенджерах.
С помощью Illustrator редактируют векторную графику. С Premiere — видео. Инструмент After Effect известен каждому, кто работает с анимацией и визуальными эффектами. InDesign применяют в издательских макетах.
Преимущественно на нем написали ОС Windows. Зачем и как часто ее используют — не нужно уточнять.
Вернусь в прошлое и вспомню, что он — язык кода операционной системы Blackberry. Эпоха кнопочных смартфонов в прошлом, но именно эти устройства подготовили почву для того, чтобы умные телефоны стали полезными устройствами.
WinRAR — архиватор, который используют до сих пор. Дизайн далек от актуального в 2021, но пользователям нравится. Когда-то был едва ли не единственным мощным средством создания и распаковки архивов. В те времена, когда интернет был медленным, без него было бы трудно.
Один из языков, который использовался при разработке всех популярных браузеров. И Internet Explorer и Safari и Chrome и Firefox.
Использовался при создании большинства игровых движков, поскольку дает возможность более тонкого контроля над оборудованием. Выделю:
Я заканчиваю в университете базовый курс по С и задался вопросом:
Насколько серьезные программы были написаны на С? И в чем из этого можно попытаться разобраться, для совершенствования собственных навыков. Хочется знать реальные возможности этого языка.
- Вопрос задан более трёх лет назад
- 9783 просмотра
Оценить 2 комментария
Базовый курс по Си, это еще не значит что надо сразу идти в прогеры на си, есть еще много языков и технологий, на которые стоит хотя бы посмотреть Само собой. Просто пока есть время, хочется узнать больше о возможностях языка.- Операционные системы
- Системы управления базами данных
- Компиляторы и интерпретаторы
- Драйвера
- Микроконтроллеры
veZuk: Многие элементы Си потенциально опасны, а последствия неправильного использования этих элементов зачастую непредсказуемы. Керниган говорит: «Си — инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво».Дело в том, что я эту книгу ( и некоторые другие) прочитал. Теперь хочется применить знания на практическом уровне. Выйти за пределы консольных приложений.
SARS: Quake тому пример ))
Мде. Хардкор.
А я на сях вообще все пишу - мне эти вашы пхытоны с пыхпыхами 100 лет не втарахтелись: и GUI на сях (motif, gtk), и веб на сях (CGI), и числодробилки (в т.ч. с CUDA).
Пхытон - слишком примитивный язычок.
Сейчас я вообще склоняюсь к тому, что нечего извращаться с GUI: GTK скатился в GTK3, GTK2 уже практически объявили deprecated — в общем, лучше делать веб-морды для всего, что требует GUI, это даже сократит время разработки.
Практически весь софт, который используется каждый день, имеет в своей основе код на языке Си.
1. Операционные системы
Язык Си был разработан специально для написания операционной системы Unix. Первые версии Unix были написаны на ассемблере. Язык Си был разработан именно как высокоуровневый язык для разработки больших программных систем. В 1972 году Деннис Ритчи создал язык Си и Unix была переписана на этом языке.
В 1985 году появилась операционная система Windows. Она также была написана на Си.
Компьютеры Apple работают на операционной системе macOS. Ядро этой операционной было написано на Си.
В 1991 на Си была написано ОС Linux. Около 97 процентов из 500 самых мощных суперкомпьютеров мира используют ядро Linux.
То есть язык Си лежит в основе работы всего программного обеспечения от мобильных телефонов до суперкомпьютеров.
2. Программы с открытым исходным кодом
Индекс Черной утки
3. Драйверы устройств
4. Языки программирования
Так компиляторы языка Си есть для всех типов компьютеров и при этом язык Си максимально универсален, то когда создается новый язык программирования, то обычно он пишется на языке Си.
На языке Си написаны:
Многие языки не только написаны на Си, но также используют элементы языка практически без изменений.
5. Базы данных
Самые популярные в мире базы данных, в том числе Oracle Database, MySQL, SQLite, MS SQL Server и PostgreSQL , написаны на языке Си. Это связано с тем, что базы данных должны иметь максимальную производительность и надежность.
6. Графические библиотеки
При работе с графикой необходимо максимальное быстродействие, поэтому графические библиотеки традиционно пишутся на Си, а в особо ответственных местах делаются вставки на языке ассемблера.
На Си написаны такие библиотеки как Cairo, OpenGL, SDL.
7. Встроенные системы
Сейчас нас окружают встроенные устройства. Вы купили кофе в торговом автомате. Это автомат запрограммирован на Си.
Оплачиваете на кассе покупки в супермаркете. Кассовый аппарат также запрограммирован на Cи.
Оплачиваете парковку. Парковочный автомат также запрограммирован на Си.
В вашем автомобиле много функций, также запрограммированных на Си. В числе них:
- автоматическая коробка передач
- системы определения давления в шинах
- датчики (кислород, температура, уровень масла и т. д.)
- память для сидений и настройки зеркал.
- дисплей приборной панели
- антиблокировочная система тормозов
- автоматический контроль устойчивости
- круиз-контроль
- контроль климата
- детские замки
8. Космос и авиация
Для авиакосмических приложений необходима максимальная надежность. Поэтому традиционно выбирается язык Си. На языке Си была написано программное обеспечение проекта высадки на Луну.
Читайте также: