|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
Язык программирования Go от Goooooogle11.11.2009, 14:30. Показов 18366. Ответов 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 язык программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|