OberonCore https://forum.oberoncore.ru/ |
|
Системный язык Go от Google https://forum.oberoncore.ru/viewtopic.php?f=26&t=2036 |
Страница 6 из 6 |
Автор: | Пётр Кушнир [ Вторник, 18 Июль, 2017 14:30 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Не надо забывать, что это ведь сишники делают, ещё недавно компилятор был на Си, да и рантайм тоже, частично. Стало быть у них сишный взгляд на мир. И развиваться они будут известно куда. Они вообще обещали не развиваться в сторону ещё одного языка (go 2) но в итоге вот что получилось. |
Автор: | Rifat [ Вторник, 18 Июль, 2017 14:44 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Вспоминается статья Спольски "Огонь и движение" http://russian.joelonsoftware.com/Articles/FireAndMotion.html |
Автор: | Илья Ермаков [ Вторник, 18 Июль, 2017 15:30 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
viewtopic.php?f=31&t=6085 |
Автор: | Илья Ермаков [ Вторник, 18 Июль, 2017 16:29 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Info21 писал(а): Го выглядит как продукт безмозглого энтузиазма. Мартышки-вредители из Гугла. Да я бы не сказал. Каких-то грубых ошибок они не накорячили. Достаточно аккуратный, для современного ИТ вообще беспрецедентно аккуратный проект. Раздувания фичами избежали. По сути, просто использовали мейнстрим-внешний вид "под Цы", чтобы не переть против ветра. В этом плане Borland когда-то с извращениями Паскаля пёрло гораздо худшим образом. |
Автор: | Info21 [ Вторник, 18 Июль, 2017 16:47 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Но Оберон-то уже сколько лет есть? |
Автор: | Илья Ермаков [ Вторник, 18 Июль, 2017 18:36 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Ну дык рынок. Они не хотят на рынке играть с Обероном. В том числе на "внутреннем рынке" разработок компании Google. Для этого надо совершенно дистанциироваться от мейнстрима, что требует доминирования небанановой мотивации. А эти наоборот - берут Оберон и адаптируют к бананодобывательству... Хотя... это и есть мартышко-вредительство, в итоге. |
Автор: | Илья Ермаков [ Вторник, 18 Июль, 2017 18:38 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Вредительство по отношению к "эталонному пути" ну и к Оберонам с Виртом (по сути, попользоваться плодами лет труда, подгадив под планку рынка). И достаточно позитивное воздействие на отрасль, потому что всё же сильный сдвиг в нужную сторону в подходах. |
Автор: | Info21 [ Вторник, 18 Июль, 2017 20:28 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Речь о том, что они обращаются с Обероном как мартышки -- схватили и испортили. Испортили не столько фигурными скобочками, сколько вот этим всем -- отсутствием ассетров, фигней с корутинами и проч. |
Автор: | prospero78 [ Четверг, 20 Июль, 2017 13:44 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
1) Нет яиц ,как сказал бы крокодил по имени "Данди" 2) Хватило мозгов хотя бы не объявлять о поломке совместимости. Видимо, пример python оказался наглядным 3) введение алиасов радует. Ещё не всё стырили из Оберона)) 4) ждём версию 3, где начнётся выкидывание всякого ненужного, и динамической кодогенерации. Нельзя же вот так нагло взять и скопировать. Оберон же Паскаль!! Не камильфо!)) |
Автор: | PSV100 [ Вторник, 25 Июль, 2017 19:42 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Илья Ермаков писал(а): ... Каких-то грубых ошибок они не накорячили. Достаточно аккуратный, для современного ИТ вообще беспрецедентно аккуратный проект. ... Тем не менее, "оттенки" имеются: https://habrahabr.ru/company/mailru/blog/314804/ |
Автор: | Илья Ермаков [ Среда, 26 Июль, 2017 10:39 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Ну и хорошо. Язык им теперь изменить - не поле перейти. Вляпались таки в кучу мелкой дряни, на фоне которой Обероны опять несравнимо чище (и особенно для образования). |
Автор: | Comdiv [ Среда, 26 Июль, 2017 11:48 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Мелкой дряни там хватает, но в этом списке часть проблем - не проблемы. Я не смотрел все 50, но, к примеру, в 1-й 10-ке только 2-е являются таковыми. А вот, оцените проблему "11. Строки не могут быть nil" Они и для Оберона составили бы отличный список. |
Автор: | prospero78 [ Среда, 26 Июль, 2017 12:04 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Почитал статью. Ужаснулся. Почитал комментарии. Содрогнулся. Итог статьи можно процитировать комментарием (обратите внимание на количество плюсов): Цитата: gkraser 9 ноября 2016 в 18:47 +11 Мда… Собирался на выходных поизучать этот язык… Прочитал про особенности и коментарии и понял, что это не тот язык, на котором мне хотелось бы писать… Даже если 2 проблемы из 10 реально проблемы, то... Нет. |
Автор: | Comdiv [ Среда, 26 Июль, 2017 15:22 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
1. В Обероне больше 2-х проблем. 2. Если программировать на Go в стиле Oberon, то в 1-й десятке нет проблем. |
Автор: | Илья Ермаков [ Среда, 26 Июль, 2017 18:37 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Не, ну я просмотрел внимательно. Часть там действительно не проблемы. Но есть какие-то дурные навороты с объявлением переменных (когда, вроде, разумно хотели что-то сделать - а в итоге хрень опять какая-то, путаница, просто VAR-секция тупо и без проблем). С массивами полный П. При изначальной заявке на решение вопроса. Либо просто не работали с научным софтом, что не понимают, как их нормально готовить. С многопоточностью, что уже обсудили. |
Автор: | Rifat [ Среда, 26 Июль, 2017 18:57 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Самое главное они не остановятся в добавлении фич, после go 2, будет go 3, go 4, go 5 (сам Бог велел, так как по японски go - это 5) и т.д. Соответственно, и от старых фич не будут избавляться, чтобы не поломать совместимость, и новые будут добавлять "по просьбам трудящихся". |
Автор: | PSV100 [ Четверг, 27 Июль, 2017 20:46 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Любопытны дискуссии по поводу возможной реализации generic-ов. Напр.: https://github.com/golang/go/issues/15292 Там много комментов, но основные результаты компактно собраны здесь (полезно, кстати): https://docs.google.com/document/d/1vrA ... X4N4/edit# Здесь основные "proposal" (в конце страницы ссылки): https://github.com/golang/proposal/blob ... enerics.md И пожалуй ещё: https://github.com/golang/proposal/blob ... nctions.md Опять же, очевидно, что над проблематикой изначально особо не парились. Отсюда и последствия для синтаксиса. К примеру, если generic объявлять так "type [T] Vector []T" (якобы один из самых приемлемых вариантов), но используется он как "Vector[int]" (т.е. теперь скобки совсем в другом месте). Но синтаксис ..., это такое дело..., второстепенное... (хотя лично я не в восторге, что основатели решили ломать глаза аля IllegalIndirection (исходя из потребности именования с большой буквы для pub)). А generic-и, скорее всего, ввести придётся, поскольку некоторые встроенные имеются, а для остального предлагается аля: https://appliedgo.net/generics/ И такая "дифференциация" в целом общество не устраивает. А если тема "покатится", то раскроется новый косяк. Поскольку обобщения и абстракции выйдут на новый качественный уровень, особенно среди поставщиков библиотечных программных продуктов, и тогда потребуется явно заботиться о "const" для объектов, чтоб функции их не ломали когда не нужно. |
Автор: | PSV100 [ Четверг, 27 Июль, 2017 20:55 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Кстати, если в язык не ввели бы ограниченные встроенные generic-и, то вероятно выкручивались бы традиционно для С-мира -- через какие-то макросы. Видимо, желание быть поближе к скриптовым языкам аля Питон сыграло роль. А "С-шники" обычно не в курсе "Pascal"-мучений без generic-ов. В своё время была оригинальная библиотека AntiDOT для реализации "STL": https://sourceforge.net/projects/adot/ Код примерно в стиле: Код: var n : TTInteger; ... n := TTInteger.create(TCVector); n.add([1,2,3,7,6,5]); ... Контейнеры как-то сбоку, основная работа через "данные". Для каждого встроенного типа вводится абстракция -- тип-поле контейнера (обычный тип -- некое значение, абстракция выше -- совокупность значений, управляемая неким образом). На примере выше используется вектор. Так используем список (list): Код: var n : TTInteger; m : TTDouble; ... n := TTInteger.create(TCList, [TTDouble]); m := n.fields[1] as TTDouble; n.AddRecord([1, 0.999]); ... В create указываем тип контейнера и возможный список (типов) дополнительных полей (в данном случае одно поле). Так работаем с map: Код: var n : TTDouble; s : TTString; ... n := TTDouble.create(TCMultimap, [TTString]); s := n.Fields[1] as TTString; n.Map[3.14] := 'Pi'; n.Map[2.72] := 'E'; s[n.Add(1.618)] := 'Golden Ration'; s[n.Add(1.618)] := 'Golden'; ... Все алгоритмы (включая универсальные, т.е. сортировки, поиски и т.д.) через методы "данных", а не контейнеров. Не обычно, но практично. Контроль типобезопасности, нет оверхеда в виде использования каких-то универсальных широких типов аля variant. Нет проседаний скорости, т.к. отсутствуют механизмы косвенного обращения через указатели в каком-то виде (данные хранятся "напрямую" в контейнере, при доступе нет промежуточного обращения через какие-то аля "интерфейсы". Когда необходимо, сами "прикладные" данные могут быть как явный какой-то pointer). Как для языка "скриптового" уровня даже удобненько, особенно когда структура объектов заранее не известна. В общем, по-своему качественная концепция, расширяемая для разнообразного применения без усложнений в языке. |
Автор: | Илья Ермаков [ Воскресенье, 23 Декабрь, 2018 17:19 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
"Если вы подумываете начать писать на Go, то вот что вам следует знать.." https://habr.com/post/421259/ |
Автор: | prospero78 [ Воскресенье, 23 Декабрь, 2018 21:09 ] |
Заголовок сообщения: | Re: Системный язык Go от Google |
Дженерики -- это специфичная весь именно для С++. Уже больше 20 лет шкодю, и пока от их отсутствия не страдаю (и применял 1,5 раза). Вот что действительно ломает (вот прям сейчас): в питоне нельзя перегрузить "присвоить" (который соответствует математическому "равно"). Типизация динамическая, а на практике -- только и успеваю прикручивать модуль typing ко в ему, что можно и нельзя. Иначе просто каша. Меня совершенно не устраивают искусственно введённые типы в язык, и, неизбежно сбоку прикрученные специфические методы работы с ними. Меня просто бесят умники, которые пишут вот так: color, deep = process(lambda x: process2(x)) for i in map(seek(pool) not iter) Я удивляюсь, как в мире питона вообще что-то работает. В топку такие конструкции. Оберон наше всё. |
Страница 6 из 6 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |