Мне просто интересно, кто знает, какие языки программирования Windows, Mac OS X и Linux составлены и какие языки используются для каждой части ОС (например, ядро, архитектура подключаемого модуля, компоненты GUI и т.д.). Я предполагаю, что для каждого языка есть несколько языков, и, очевидно, я знаю, что ядро Linux написано на C. Я полностью предполагаю, что Mac OS X содержит много кода Objective-C, поскольку это язык Apple, полученный из NeXT.
Windows, я слышал, содержит C, С++ и Intel Assembly. У Linux или Mac OS есть код сборки? Кроме того, существуют ли скриптовые языки, такие как Ruby, Python и т.д., используемые разработчиками ОС для создания скриптов в ОС? Какие части ОС будут записаны на каждом языке?
Brock Woolf 24 фев. 2009, в 02:43
Поделиться
phuclv 29 апр. 2018, в 15:07
Поделиться:
programming-languages
operating-system
12 ответов
Лучший ответ
- Windows: С++, ядро находится в C
- Mac: Objective C, ядро находится в C (подсистема IO PnP встроена в С++)
- Linux: большинство вещей находятся на C, многие приложения для пользователей находятся в Python, KDE — это все С++
Все ядра также будут использовать некоторый код сборки.
Какой язык программирования выбрать начинающим? (и первая практика кодирования — пишем бота)
Paul Betts 24 фев. 2009, в 03:31
Поделиться
Я должен добавить, что Gnome тоже в значительной степени C.
Nathan Osman 23 июль 2011, в 18:16
Гном также заигрывал с C # (моно).
Hristo Iliev 08 май 2012, в 08:30
Я думаю, гном также использует Вала; Однако, как Вала компилируется до C .
weberc2 02 нояб. 2012, в 16:10
Я считаю, что в ядре Linux есть ассемблер.
GL2014 06 авг. 2013, в 15:12
Правда, у каждого ядра будет хоть какой-то ассемблер
Paul Betts 07 авг. 2013, в 09:07
Для ясности — подсистема IOKit ядра Apple (для драйверов) использует (ограниченное подмножество) C ++. И на всех трех, то есть Windows, Mac и Linux, многие из наиболее важных пользовательских приложений написаны на C или C ++. Предположительно, например, MS пыталась переделать Office в .NET, но вернулась к C ++. И ядро Linux использует много идиом, подобных C ++, но готовится вручную в C, например, наследование в коде драйвера.
Erik Alapää 23 фев. 2015, в 13:14
rolls 07 фев. 2017, в 01:28
Erik Alapää 07 фев. 2017, в 10:32
Можете ли вы сказать мне, какой язык? используется для создания пользовательского интерфейса в Windows?
jasinth premkumar 15 март 2018, в 14:45
C ++ и XAML в Windows 10
Paul Betts 18 март 2018, в 20:51
Все благодаря основателю языка Си -> Деннису Ритчи . Он является основной причиной сегодняшней растущей ИТ-индустрии.
VirenPanchal 08 март 2019, в 22:17
Показать ещё 9 комментариев
Linux: C. Некоторые части сборки.
[. ] Это в основном на C, но большинство людей не будет называть то, что я пишу C. Он использует все мыслимые возможности 386, которые я мог найти, так как это было также проект, чтобы научить меня о 386. Как уже упоминалось, это использует MMU, как для пейджинга (не для диска), так и для сегментации. Это сегментация, которая делает ее ДЕЙСТВИТЕЛЬНО 386 зависимой (каждая задача имеет Сегмент 64 Мб для кода и данных — не более 64 задач в 4 ГБ. Любой, кто нуждается более 64 Мб/задача — жесткие файлы cookie). [. ] Некоторые из моих «C» файлов (в частности, mm.c) почти такие же ассемблеры, как C. [. ] В отличие от minix, я также случаюсь с LIKE прерываниями, поэтому обрабатываются прерывания не пытаясь скрыть причину позади них. (Источник)
САМЫЕ СЛОЖНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Mac OS X: Cocoa в основном в Objective-C. Ядро написано на C, некоторые части сборки.
Mac OS X на уровне ядра представляет собой в основном более старую бесплатную операционную систему под названием BSD (в частности, ее Darwin, своего рода гибрид BSD, Mach и некоторые другие вещи). почти полностью C, с небольшим количеством ассемблера. (Источник)
Большая часть Cocoa реализована в Objective-C, объектно-ориентированном языке, который скомпилирован для работы с невероятной скоростью, но использует действительно динамическое время выполнения, что делает его уникальным. Поскольку Objective-C является надмножеством C, легко смешивать C и даже С++ в ваших приложениях Cocoa. (Источник)
Windows: C, С++, С#. Некоторые части в ассемблере.
Мы используем почти полностью C, С++ и С# для Windows. Некоторые области кода ручной настройки/ручной письменной сборки. (Источник)
Unix: C. Некоторые детали в сборке. (Источник)
Источник: overcoder.net
Какой язык программирования лучше?
Если открыть любой программистский форум, самыми популярными будут темы в духе «Что лучше: Python или PHP?» Или «Какой язык учить сейчас, чтобы быть востребованным через 10 лет?» Вот наш ответ на этот вопрос:
❤️ Языки программирования — это инструменты. Не бывает хороших и плохих языков, бывает уместно и неуместно применённый инструмент.
Теперь немного раскроем.
Веб, приложения, железо или что-то ещё?
Есть три больших мира: веб-разработка, разработка приложений и программирование микроконтроллеров. Также есть направления, где программирование помогает, но не является самоцелью. Вот примерная карта того, чем чаще всего пользуются:
Языки и технологии для веба
Веб — это всё, что вы видите в интернете: сайты, приложения в браузере и бэкенд, который это обслуживает. Здесь используют:
- Язык разметки HTML — чтобы структурировать страницы в браузере.
- Язык оформления CSS — чтобы страница или интерфейс выглядели как надо.
- Язык препроцессоров CSS — когда нужно очень много CSS-кода, правил и стилей.
- Язык скриптов JavaScript — чтобы интерфейс или приложение вели себя на клиенте как надо.
- Язык и форматирование JS-фреймворков типа React и Angular — чтобы рисовать и программировать поведение сложных веб-приложений.
- Языки бэкенда: PHP, Python, Ruby (из популярных) — чтобы обслуживать приложения и хранить пользовательские данные.
- Языки бэкендовых фреймворков, например Django и Rails.
- Язык запросов в базу данных: чаще всего MySQL, но есть и другие.
Все эти инструменты нужны для разных задач. Нельзя сказать, что одни лучше других.
В отдельных вопросах есть спор типа «Что лучше: Python или PHP». Тут ответ такой: лучше то, чем вы будете пользоваться на работе. Например, если вы идёте обслуживать огромный океан сайтов на Вордпрессе, вам нужен PHP. Если вы будете обслуживать сайты и сервисы на Rails, вам нужно знать язык Ruby. Если сайты ваших клиентов или работодателей работают на Django, вам нужен Python.
Как понять, на чём будут работать ваши клиенты и работодатели? Никак. Сегодня есть вакансии на одни технологии, завтра на другие, послезавтра на третьи, всё быстро меняется. Хорошая новость в том, что если вы знаете какой-то один язык, вы сможете довольно быстро начать работать и на других языках.
Языки и технологии для приложений
Приложения — это всё, что выполняется внутри вашего компьютера или телефона на уровне операционной системы и делает что-то полезное для пользователя. Например, текстовый редактор, программа для презентаций, игра или калькулятор — это приложения.
Если вы самостоятельный разработчик, то выбор языка программирования приложений — вопрос личных предпочтений и выбранной операционной системы:
- Популярные мультиплатформенные языки — Java, C++.
- Для экосистемы Apple — Swift.
- Для Windows и игр на Unity — C#.
- Для Андроида — Kotlin.
- Для приложений, где нужен доступ на низкий уровень железа — C.
- Для настройки бухгалтерской программы «1С Предприятие» — язык программирования 1С.
Есть и другие языки, но эти — классика жанра. При желании можно найти что-то более быстрое или специализированное, специально под задачу, но на старте их более чем достаточно.
В языках для приложений всё точно так же, как и в языках для веба — нельзя сказать, что один язык лучше другого, всё зависит от ситуации. Есть, конечно, С и С++, на которых можно написать почти что угодно, от игры до приложения баз данных, но это уже перебор.
Главный плюс языков и технологий для приложений — стабильность. Каждая версия поддерживается много лет, новое появляется редко, поэтому код, написанный пять лет назад, мало отличается от написанного вчера. А ещё у этих языков огромная база справочников, форумов и готовых решений.
Языки программирования микроконтроллеров
Микроконтроллеры — это микросхемы или небольшие электронные платы, которые физически чем-то управляют. Например, микроконтроллер в аккумуляторе следит за тем, чтобы ток заряда соответствовал номинальному и батарея не перегрелась, а платы в станках управляют двигателями, резцами и скоростью движения детали.
В программировании микроконтроллеров всё зависит от конкретной модели микросхемы, которой нужно управлять. Вот пара примеров из этой области:
- Для программирования станков на заводе используют язык G-code, и для разных станков нужны разные команды.
- Универсальный язык программирования любых микросхем — Ассемблер. На нём можно писать код почти для любой платы, но нужно в совершенстве знать, как физически устроен каждый контроллер.
- Иногда микроконтроллеры программируют на C, когда позволяет объём встроенной памяти.
Чтобы писать программы для таких микроконтроллеров, нужна высокая квалификация, опыт и знание железа. Совсем новичку в этой области будет сложно, поэтому лучше начать с робототехники.
Дата-сайенс, машинное обучение и аналитика
Python — любимый инструмент для тех, кто занимается аналитикой, машин-лёрнингом и данными. Для этого в Python много готовых инструментов, библиотек, фреймворков, готовых решений и документации.
При этом огромные богатства кроются в языке формул и скриптования, который используется в Excel или Google Sheets. Можно очень ловко и бодро заниматься данными и аналитикой, если глубоко владеть этим инструментом.
Лучший язык для программиста — английский
Если вы знаете английский, вам доступна вся документация, все уроки, все онлайн-курсы и вся помощь мирового сообщества программистов. Зная английский и какой-то один язык программирования, вы легко освоите второй, третий и сколько угодно ещё.
Короче: не нужно сейчас ломать голову, какой один язык выучить. Освойте любой язык программирования и подтяните английский, чтобы потом осваивать любые языки по мере необходимости.
Рекламная интеграция
Сегодня в наш выпуск нативно интегрирован «Яндекс Практикум» — здесь обучают всему, что нужно в ИТ. В частности, из указанного в статье:
Источник: thecode.media
На чем пишут программы для windows
Какой выбрать язык программирования для создания программ?
Очень хочу научиться программировать. На каких языках мне лучше начинать?
JavaScript прекрасно решает свою задачу: быть скриптовым языком на вебе, но для обучения он слишком мутный. Его придумали в кратчайшие сроки (у создателей было 10 дней до презентации) прежде всего из маркетинговых соображений. Яваскрипт быстро развивается, но остается прежде всего прикладным инструментом для работы с вебом. Лучше оставьте Яваскрипт на потом, он никуда от вас не денется.
Python — один из лучших вариантов для начинающих. Питон вырос из языка ABC, который как раз создавался для обучения программированию. Питон придуман для того, чтобы быть первым языком. Питон все чаще используют при обучении в ВУЗах и школах. По Питону гораздо больше качественных фундаментальных учебных материалов, чем по другим языкам.
В общем профессиональные преподаватели все чаще выбирают Питон, чтобы именно учить программированию. Питон — язык программирования общего назначения. На нем можно писать программы для десктопов, делать сайты, игры, мобильные приложения, программировать квадрокоптеры, умные дома и черт знает что еще. Многие выбирают Питон за его простоту и ясность. И самое главное, Питон дисциплинирует и приучает писать понятный и структурированный код.
Программист прежде всего работает с алгоритмами, а язык — это инструмент. Для начинающих Питон — отличный инструмент. Начните с Питона, а когда освоите, то выбирайте язык под задачу. 3 4 · Хороший ответ
Какой язык программирования сейчас наиболее перспективен?
Важно направление, в которое вы собираетесь погрузиться. Если вам ближе мобильная разработка для iOS, перспективно изучать Swift. Если вы на Android – Kotlin. За обоими этими языками несомненное будущее, их на наших глазах развивают лучшие умы и за этим интересно наблюдать.
Они соревнуются между собой за благосклонность разработчиков, заимствуют друг у друга приёмы и поэтому становятся немного похожи. Мне очень нравится чистый и мощный синтаксис Swift, а также обилие обучающих материалов, но тема сама по себе разработки под Apple специфическая и требует серьёзного погружения, наличия Мака и английского языка.
Изучить синтаксис языка — очень малая часть того, что нужно для трудоустройства. Не изучайте Objective C, он больше не нужен. Если вам интереснее заниматься веб-приложениями, стоит начинать с JavaScript, а затем фреймворк React. Теперь это промышленный стандарт того, как работают фронтендеры в крупных банках.
Его конкурент – AngularJS, тоже популярный, но я слышал о нём плохие отзывы от фанатов Реакта. Если хотите быть бэкенд-разработчиком, без колебаний изучайте Go, хороших специалистов сейчас очень не хватает. Не изучайте PHP, это устаревший кучерявый шаблонизатор, программы на котором работают очень медленно и с трудом годятся для высоконагруженных систем. Оставьте PHP тем, кто хочет зарабатывать копейки на мучениях с WordPress и Битриксом.
Если вам интереснее программировать игры, обратите внимание на C# и изучите Unity 3D, он очень популярен. Также есть альтернатива в виде Unreal Engine и С++, хотя в последнем есть альтернатива кодингу в виде блюпринтов. Говоря о программировании для 3D движков, я предпочёл бы Unreal, поскольку он мне кажется более перспективным. Источник
10 лучших сред разработки на C++
Сред разработки на C++ очень много, и для каждой цели есть своя, особенная IDE. Здесь находятся 10 самых популярных сред разработки и редакторов исходного кода для C++.
Microsoft Visual Studio
- интеллектуальное автодополнение кода;
- дизайнер графических форм (GUI);
- простая в использовании навигационная система.
Вы можете использовать IDE для разработки компьютерных программ для Microsoft Windows, а также веб-сайтов, веб-приложений и веб-сервисов.
Xcode
Xcode – это не просто интегрированная среда разработки, а полный набор инструментов для разработки программного обеспечения, созданных Apple для разработки программного обеспечения для MacOS, iOS, WatchOS и tvOS.
Xcode – лучшая IDE для Mac хотя бы потому, что она создана разработчиками операционной системы. Поэтому, если вы являетесь разработчиками под платформы Apple, эта среда для вас.
- создание приложений под все Apple платформы;
- автодополнение кода;
- удобная работа с GUI.
NetBeans
Хотя NetBeans славится разработкой на Java, это также одна из лучших сред разработки на C++ как для Windows, так и для Mac с Linux.
У NetBeans также есть много готовых шаблонных проектов для C и C++, которые можно использовать в качестве основы для ваших приложений. NetBeans был написан с использованием Java, он также может быть использован для проектов PHP и HTML5. Идеально подходит для начинающих, но и опытные программисты часто используют его.
- это ПО о открытым исходным кодом;
- разработан и поддерживается компанией Oracle;
- мультиплатформенная поддержка;
- поддержка визуализированного создания GUI-имнтерфейсов;
- простота установки и использования;
- поддержка Qt Toolkit;
- поддержка удаленного развития;
- легкая файловая навигация.
Eclipse
Eclipse – еще одна простая в использовании и при этом мощная IDE для C и C++. Между Eclipse и NetBeans мало различий, но все же Eclipse является более быстрой средой разработки.
- простота установки и использования;
- бесплатный и открытый источник;
- поддержка нескольких платформ;
- мощный движок создания GUI-интерфейсов;
- удаленный системный проводник.
CodeLite
CodeLite – это еще одна бесплатная и быстрая IDE для программирования на C и C ++. CodeLite также поддерживает разработку на PHP и JavaScript.
- мультиплатформенная поддержка;
- встроенная поддержка GCC/clang/VC++;
- CodeLite обладает удивительно быстрым и мощным инструментом завершения кода из-за собственного анализатора;
- поддержка профилирования, рефакторинга;
- анализ статического кода и браузер классов.
Qt Creator
Qt Creator – самая известная среда разработки для создания графических приложений. Если вы собираетесь создать хорошее приложение с графическим интерфейсом, Qt Creator станет для вас идеальным выбором.
Проблема в том, она платная. Не беспокойтесь, есть версия с открытым исходным кодом, которая распространяется бесплатно. Если вы новичок, то вы вряд ли будете распространять ее за деньги, и тогда платная лицензия просто не нужна.
Некоторые из функций Qt Creator:
- простой и удобный конструктор GUI-форм;
- кроссплатформенность;
- поддержка отладки, компиляции, профилирования, автозаполнения кода и рефакторинга;
- поддержка анализа статического кода;
- быстрый компилятор Qt;
- визуализация данных Qt;
- Qt Quick 2D Renderer;
- Qt WebView;
- Qt Virtual Keyboard.
Code::Blocks
Codeblocks – это еще одна свободная и открытая среда IDE для C и C++, написанная с использованием GNU C++. Главный плюс – кроссплатформенность программы. CodeBlocks также можно использовать для языков c и Fortran.
Некоторые из функций CodeBlocks:
- простая и быстрая установка;
- наличие портативной версии;
- удобный конструктор GUI-форм;
- встроенная возможность создания блок-схем.
Dev-C++ – это бесплатная интегрированная среда разработки с открытым исходным кодом, написанная в Delphi для Windows. Это легкая IDE, которой требуется всего на пару минут для установки. Это – лучшая среда разработки для новичков, в ней можно установить плагин для создания GUI-интрефейсов методом перетаскивания элементов.
Некоторые из возможностей Dev-C++:
- малый вес;
- простая в использовании панель инструментов;
- автозавершение кода;
- горячие клавиши для компиляции и запуска, например F9 и F10;
- простая установка.
CLion
Это отличная среда разработки на C++, созданная известной компанией JetBrains. Она поставляется с некоторыми замечательными функциями, такими как “Smart Editor” , “Code Analysis”, “Embedded Termina”l.
CLion – платная программа, не имеющая бесплатной версии, однако вы можете получить пробную версию в течение 30 дней, чтобы проверить ее.
- удобное создание визуализированных интерфейсов;
- наличие инструментов для удобного создания код а и отладки;
- возможность установки плагинов;
- поиск ошибок в коде в Live-режиме.
Geany
Geany – легкая, быстрая, кроссплатформенная среда разработки не только на C++, но и на многих других языках. Да, тут нету множества инструментов, но функционала программы хватит для отладки и сборки даже большого проекта.
Некоторые функции Geany:
- простое управление проектами;
- сворачивание кода;
- автодополнение кода.
Заключение
В первую очередь выбор IDE зависит от уровня программирования. Для новичков лучшие среды разработки – это Dev-C++ и Code::Blocks. Для продвинутых же лучше всего подойдут Qt Creator и CLion. Также учитывайте вашу ОС: не все среды кроссплатформенны.
Большое спасибо за прочтение! Пожалуйста, поставьте лайк и подпишитесь на канал. Этим Вы очень поможете в развитии блога!
На чем лучше всего писать Windows приложение?
Есть задача, написать приложение для гос. нужд по Windows.
И думаю, на чем писать.
.NET всем хорош, но framework нужно будет заставлять устанавливать (не везде он стоит еще по дефолту, поверьте мне).
А вы бы на чем предложили написать небольшое отдельное приложение для мат. расчетов?
XXX: Если бы компьютер был стройкой, то на просьбу посоветовать инструмент для забивания гвоздя большинство окружающих посоветовали бы использовать различные модели пизженых со склада микроскопов, поливая говном микроскопы других производителей, и только пара человек молча протянули бы молоток.
YYY: Причем из этих двух молотков, один был бы самодельной киянкой!
XXX: Точно. А еще кто-нибудь заявил бы, что все ламеры, а вместо гвоздя нужно использовать шуруп.
YYY: И предложил бы свой вариант самореза с правой резьбой под шестигранную отвертку с логотипом Sun…
XXX: А потом кто-нибудь прийдет и скажет, что посадил все на суперклей и вроде стоит.
YYY: А кто то будет причитать про то, что раньше вообще без гвоздей строили и стояло века…
Вам шашечки или ехать? Если нужен «продвинутый» язык, то поинтересуйтесь, что сейчас в моде и пишите на каком-нибудь Ruby (ничего личного к пишущим на этом языке).
Delphi же вам может обеспечить скорость разработки и скорость вычислений без дополнительных примочек, устанавливаемых в систему.
Не знаю, что вы подразумеваете под кривостью библиотек… У BDE, которое не всем нравилось, давно есть альтернативы. Критических багов не наблюдается еще версии наверно с 7-й. Юникод уже причесали по всему VCL. С разными мелочами, которые кочуют из версии в версию для обратной совместимости, можно мириться. Ну и так далее.
Вот тут я задавал подобный вопрос — habrahabr.ru/qa/1894/
Остановился на C# + winforms, хоть и не имел опыта кодинга (только веб), разобрался довольно быстро. В инете куча документации, проблемы решаются быстро, и больше половины задуманных фич можно реализовать интуитивно.
Да, придётся заставлять установить фреймворк, это минус. Но в моем случае это не особо критично т.к. я сам являюсь сисадмином, и на нужные компы сам могу его установить.
Не говоряуж о том, что компилятор в Qt используется очень серьезный и мощный
В последнее время стало модно писать для Windows на Silverlight. Поставить плагин к браузеру всё-таки проще, чем целый фрэймворк, и исчезает проблема автоматического обновления приложения.
Начиная с 4- версии Silverlight позиционируется не только как веб-клиент, но и как Windows-приложение (про это много говорил товарищ Черномордиков).
Однако нужно учесть, что Silverlight-приложения по задумке должны общаться с внешним миром в основном через веб-сервисы (хотя есть возможность работать с файлами в личной папке и взаимодействовать с MS-Офисом и пр.).
Если приложение сложное, требуется прямой доступ к БД, требовательно к аппаратным ресурсам или должно получать доступ к системным файлам — тогда WPF.
Сам сейчас разрабатываю большую корпоративную систему документооборота, весь интерфейс на Silverlight. В 99% случаев для бизнес-задач этого достаточно.
22 октября, 2020
20 октября, 2020
22 октября, 2020
16 октября, 2020
19 октября, 2020
22 октября, 2020