|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
Язык программирования Go от Goooooogle11.11.2009, 14:30. Показов 18346. Ответов 44
Спросив любого программиста, работающего с несколькими языками программирования, о преимуществах того или иного языка, можно услышать длинную лекцию о том, чем плохи какие-то конкретные языки и что лично он изменил бы в их работе. Одним не по душе синтаксис, другие имеют претензии к скорости работы кода, третьим не нравятся отладчики и компиляторы.
Отчасти именно поэтому многие крупные разработчики программного обеспечения уже лет 15 как озаботились проблемой создания собственных языков программирования. Подключив в этой проблеме свои финансовые и человеческие ресурсы, компании взялись за это дело засучив рукава. В результате этих усилий были в свое время созданы Java, Perl, языки семейства .Net и другие. Тем не менее все эти разработки объединяет одно - они никак не могут отойти от наследства основополагающих языков программирования С и C++. Отчасти сделать это удалось языкам вроде Haskell или Erlang, однако в силу других причин эти языки пребывают ныне в забвении. Сегодня свою лепту в дело создания языков программирования вложила и Google, анонсировавшая новый язык программирования Go. Новая разработка, как заверяют в Google, должна быть удобна для современных авторов программного обеспечения. При первом же просмотре кодов, написанных на Go, можно понять, что от наследия С++ избавиться не удалось и Google, тем не менее, Go имеет несколько занятных новшеств и изюминок, отличающих его от других языков. Как рассказали в Google, Go имеет новую систему типов и переменных, быструю компиляцию, хорошую производительность, а также встроенные средства, облегчающие написание кодов. Язык был в разработке внутри компании около двух лет. Вначале им занималась инициативная группа программистов, позже эти работы были выделены в свое направление. Сейчас язык и его спецификации опубликованы под лицензией BSD, допускающей свободное использование, а также создание на базе Go новых дочерних языков более узкой специализации. По словам Роберта Пайка, инженера Google, нынешняя реализация Go уже достаточно зрелая, хотя экосистема проектов и людей вокруг Go только создается. Пока для данного языка нет своей среды разработки, да и комплект библиотек для него невелик, тем не менее готовые образцы кодов уже есть. Пайк уверен, что зрелости Go уже достаточно для создания важных приложений, с которыми работают многие пользователи. Сейчас с Go поставляются два типа компилаторов - 6g и 8g для 64-битных платформ и общей архитектуры x86 соответственно. Оба компилятора, как заверяют в Google, работают очень быстро. Есть альтернативный компилятор Gccgo, базирующийся на знакомой всем пользователям Linux системе компиляторов GNU GCC. Последний компилятор не так быстр, но он может создавать более эффективный код. Все компиляторы полагаются полностью на собственный код. Создаваемый код не является управляемым, то есть для его работы не нужна виртуальная машина. По словам Пайка, получаемый после компиляции байт-код совершенно автономен. Внешне код Go представляет собой занятный симбиоз старого-доброго C++ и нового языка Python, используемого в интернете. В наследство от С новый язык получил систему типов и объектно-ориентированную концепцию программирования с возможностью наследования. Программисты сами могут определять типы и создавать методы для управления ими. Еще одной изюминкой языка является параллелизм. Go изначально поддерживает конкурентные потоки, более того Google здесь добавила механизм каналов, в каждом из которых может выполняться свой поток внутри программы. Сайт проекта http://golang.org/ взято с cybersecurity.ru
8
|
|
| 11.11.2009, 14:30 | |
|
Ответы с готовыми решениями:
44
Язык программирования Яр Язык программирования РС/Б Новый язык программирования |
|
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
|
|
| 31.03.2017, 21:24 | |
|
Занимательная переводная хабростатья Что я изменил бы в Go.
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||||||||||||||||||||||||||||||
| 01.04.2017, 00:06 | ||||||||||||||||||||||||||||||||
|
По пунктам:
Go — стабильный язык с относительно большим количеством сторонних библиотек и примеров «real-world»-применения, а что с Rust'ом? Даже авторы (Mozilla) до сих пор не используют его полноценно (Servo всё ещё в стадии разработки).
Про обработку ошибок тоже, в целом согласен, но
По поводу дженериков авторы Go давно написали ответ в FAQ. Мне самому при использовании Go иногда их не хватало, и я понимаю всю их пользу, особенно для библиотечного кода, но я никогда не занимался разработкой и реализацией ЯП и компиляторов, поэтому судить авторов Go за их решение в данном случае не стал бы. Кроме того, нередко злоупотребление дженериками приводит просто к адовому коду. =)
1) в части случаев вместо кортежа лучше всё-таки создать отдельный тип структуры с «говорящими» именами полей; 2) иногда можно использовать анонимные структуры, хотя это менее удобно.
Довольно странная придирка. Я бы ещё понял, если бы он написал, что неплохо бы, чтобы range был хотя бы встроенным типом, как chan, и его можно было бы создавать и возвращать как результат работы процедуры, например. В общем, был бы first-class citizen.
([]Stringer) и (Show a => [a]) — это сильно разные вещи.
2
|
||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 11.10.2018
Сообщений: 2
|
|
| 11.10.2018, 19:15 | |
|
вот по чему вы должны учиться Go Programming language
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||||||||||||||
| 11.10.2018, 22:32 | |||||||||||||||
И как из этого следует утверждение «Golang is quite fast»?
![]()
2) Таких языков полно и в Go далеко не самая строгая типизация, рекомендую ознакомиться с зависимыми типами, например по http://www.cse.chalmers.se/~bengt/papers/hlcs.pdf
geekyvicky, если ты написал эту статью, то лучше удали её, не позорься. Если не ты, то никогда больше не пости ссылку на неё. Если ты просто бот, то убей своего хозяина.
1
|
|||||||||||||||
| 11.10.2018, 22:32 | |
|
Символьный язык программирования Язык программирования Pike Язык программирования GRASS Что за язык программирования? Icon язык программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|