28 июл 2022 · 11:20    
{"document": [{"text": [{"type": "string", "attributes": {}, "string": "Carbon, новейший язык программирования, созданный в Google, был представлен на днях в качестве экспериментального преемника C++."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/png", "filename": "scale_2400.png", "filesize": 496613, "height": 627, "pic_id": 109710, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/28/scale_2400.jpeg", "width": 1200}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "За годы своего существования Google создал несколько языков программирования, некоторые из которых стали более популярными и известными, чем другие. Например, Golang (или просто Go) был создан с целью улучшения разработки серверов и распределенных систем и с тех пор был тепло принят общественностью. Между тем, язык программирования Dart, изначально задуманный как альтернатива JavaScript, достиг популярности только после выхода Flutter."}], "attributes": []}, {"text": [{"type": "string", "attributes": {"italic": true}, "string": "19 июля на конференции Cpp North в Торонто,"}, {"type": "string", "attributes": {"href": "https://twitter.com/code_report/status/1549383435642445824", "italic": true}, "string": " "}, {"type": "string", "attributes": {"bold": true, "href": "https://twitter.com/code_report/status/1549383435642445824"}, "string": "как рассказал Конор Хоэкстра"}, {"type": "string", "attributes": {"italic": true}, "string": ", который присутствовал на мероприятии и документировал слайды, гуглер Чендлер Каррут поделился видением нового языка программирования под названием Carbon. В качестве предисловия Каррут показал, что многие из наиболее популярных сегодня языков программирования имеют преемников, которые позволяют разработчикам быстро стать продуктивными и использовать преимущества современного дизайна языка."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Разработчики Android хорошо знают, что Kotlin является преемником Java, также как разработчики iOS знают, что Swift является преемником Objective-C. TypeScript от Microsoft значительно улучшил JavaScript, оставаясь при этом удобным в использовании и способным «транслироваться» обратно в JavaScript. C++, который широко используется в Google, также является своего рода преемником оригинального языка программирования C."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/png", "filename": "scale_2400 (1).png", "filesize": 56332, "height": 720, "pic_id": 109711, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/28/scale_2400_1.jpeg", "width": 921}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Хотя некоторые могут предположить, что Rust, первоначально проект Mozilla, который с тех пор обрел значительную общественную популярность, является преемником C++, Каррут задается вопросом, насколько уместна такая аналогия. Хотя Rust, несомненно, является отличным языком для начала нового проекта, он не обладает такой «двунаправленной совместимостью», как Java и Kotlin, что затрудняет его устойчивый переход."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Если Rust работает для вас сегодня, наверно, вам стоит использовать его. Но перевести экосистему C++ на Rust очень сложно."}], "attributes": ["quote"]}, {"text": [{"type": "string", "attributes": {}, "string": "В связи с этим, хотя Carbon преследует те же цели, что и Rust, например, помощь разработчикам в создании «критически важного по производительности программного обеспечения», Carbon также предназначен для полной совместимости с существующим кодом на C++. Кроме того, цель состоит в том, чтобы сделать переход с C++ на Carbon как можно более простым, при желании."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Что касается того, почему разработчик C++ может захотеть внедрить Carbon в свою кодовую базу, Каррут рассказал о некоторых особенностях языка:"}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Вводные ключевые слова и простая грамматика"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Входные параметры функций являются значениями, доступными только для чтения"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Указатели обеспечивают косвенный доступ и мутацию"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Использование выражений для именования типов"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Пакет является корневым пространством имен"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Импортируйте API через имя пакета"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Явный параметр объекта объявляет метод"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Единичное наследование; классы по умолчанию конечны"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Мощные дженерики с проверкой определений"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Типы явно реализуют интерфейсы"}], "attributes": ["bulletList", "bullet"]}, {"text": [{"type": "string", "attributes": {}, "string": "Помимо особенностей самого языка, команда Carbon обратила внимание на процесс разработки, который определит будущее Carbon. Код проекта "}, {"type": "string", "attributes": {"bold": true, "href": "https://github.com/carbon-language/carbon-lang"}, "string": "публично размещен на GitHub"}, {"type": "string", "attributes": {}, "string": " и открыт для pull request'ов, а культура Carbon нацелена на то, чтобы быть доступной и инклюзивной как для сотрудников компаний, так и для частных лиц."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Тем не менее, один из аспектов языка программирования Carbon, который не очень хорошо раскрыт, - это участие Google. Хотя на сегодняшней презентации выступал один из сотрудников Google, а текущие руководители проекта Carbon состоят в основном, но не полностью, из сотрудников Google, в остальном нет никаких упоминаний о том, что Carbon - это проект Google."}], "attributes": []}, {"text": [{"type": "attachment", "attributes": {"presentation": "gallery"}, "attachment": {"caption": "", "contentType": "image/png", "filename": "scale_2400 (2).png", "filesize": 581069, "height": 750, "pic_id": 109712, "url": "https://storage.yandexcloud.net/pabliko.files/article_cloud_image/2022/07/28/scale_2400_2.jpeg", "width": 1128}}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "На самом деле это намеренное решение, поскольку, хотя Carbon и зародился в Google, команда делится им в Интернете и понимает, что для будущего успеха Carbon должен быть «независимым и управляемым сообществом проектом», а не только тем, который используется Google. В том же комментарии Каррут подчеркивает, что в настоящее время Carbon - это всего лишь эксперимент, хотя некоторые компании уже проявили к нему интерес."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": "Если вы хотите начать работу с Carbon, вы можете "}, {"type": "string", "attributes": {"bold": true, "href": "https://github.com/carbon-language/carbon-lang#getting-started"}, "string": "загрузить исходный код"}, {"type": "string", "attributes": {}, "string": " и поэкспериментировать с ним на своем устройстве. Кроме того, вы можете познакомиться с языком программирования Carbon прямо в браузере благодаря интеграции с бесплатным веб-приложением Compiler Explorer."}], "attributes": []}, {"text": [{"type": "string", "attributes": {}, "string": ""}], "attributes": []}], "selectedRange": [3632, 3632]}
Комментарии 0