OberonCore
https://forum.oberoncore.ru/

Системный язык Go от Google
https://forum.oberoncore.ru/viewtopic.php?f=26&t=2036
Страница 2 из 6

Автор:  Валерий Лаптев [ Суббота, 14 Ноябрь, 2009 11:48 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Ага... Учитывая, что параметры в процедуре записываются через запятую... :)

Автор:  Сергей Прохоренко [ Суббота, 14 Ноябрь, 2009 15:31 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Info21 писал(а):
albobin писал(а):
if a := rwc.RemoteAddr(); a != nil {
c.RemoteAddr = a.String()
Что здесь плохого?
А что хорошего в таком трюкаческом запутывании синтаксиса? Обосновывать нужно усложнение.


У авторов борются противоречивые желания:
1. Отделить объявления переменных от применения переменных
2. Сделать объявление переменной как можно ближе к первому применению

Как ни сделаешь - всё получается плохо. Ну не впихнуть сложные вещи в простой текст, чтобы было и красиво, и удобно, и безопасно, и читабельно, и ничего не загромождалось. А перейти от простого текста к графике, таблицам, гиперссылкам кишка тонка.

Автор:  Geniepro [ Суббота, 14 Ноябрь, 2009 18:50 ]
Заголовок сообщения:  Re: Системный язык Go от Google

albobin писал(а):
if a := rwc.RemoteAddr(); a != nil {
c.RemoteAddr = a.String()
}
...
Что здесь плохого?

a объявляется в теле условия цикла, а доступно в блоке ветки then. Чего тут хорошего...

Автор:  Trurl [ Суббота, 14 Ноябрь, 2009 19:14 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Вполне можно было бы обойтись лишней парой скобок.
Код:
{
   a := rwc.RemoteAddr();
   if a != nil {
      c.RemoteAddr = a.String()
    }
}

Автор:  Info21 [ Суббота, 14 Ноябрь, 2009 19:54 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Бывший мой спецкурсовец прислал ссылочку:

http://scienceblogs.com/goodmath/2009/1 ... age_go.php

Оберон многократно вспоминается, а Пайк в энергичных выражениях обвинен в плагиате.
----
где-то еще попалось выражение "Wirth's revenge" -- месть Вирта :))

Автор:  Иван Кузьмицкий [ Суббота, 14 Ноябрь, 2009 20:14 ]
Заголовок сообщения:  Re: Системный язык Go от Google

прошёл по ссылке и обнаружил:

Цитата:
Why can't people just use Oberon and move on with life? I'll tell you why -- because it was designed by Niklaus Wirth. People HATE Wirth. He's the anti-Christ. He's an abomination. Nobody loves him, and neither should you. He's communist, fascist, and a capitalist pig all at the same time. And, get this folks!, he writes his languages using all-caps keywords! OH NOES!!


Смеялся :)

Автор:  Info21 [ Воскресенье, 15 Ноябрь, 2009 19:47 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Вот отзыв известного оберонщика:

From: Josef Templ
To: BLACKBOX@LISTS.OBERON.CH
Subject: Re: [BLACKBOX] Go
Time: 2009-11-13 at 11:53
Message

Hi Everybody!

I have just scanned the Go language spec and it looks a lot like a mix from Oberon/CP and C with some interesting syntactical ideas borrowed from functional languages, I guess, but nothing really new.

Regarding OO features it seems weak to me.
It has type bound procedures but no inheritance.
It doesn't even have type extension for records as the original Oberon introduced.
(Please correct me if I missed something in the spec.)

All it has is an interface type with structural equivalence rules.
An interface is a purely abstract type that only specifies a set of
method signatures.
It is compatible with any type that has the appropriate set of type bound procedures, which is checked by the compiler.

I guess it would be very hard to program something like the Oberon system with its many extensible message records in Go.
The message records would have to be expressed by interfaces with setter and getter functions for accessing the record fields. And there is no subclassing for
creating extended message types.
It would also be very hard to program in a Java/C++-OO-style with tons of methods inherited by subclasses.
These would have to be replicated by the programmer.
May be they envision a new OO-programminig style that I am not aware of.

This is at least my understanding from the language spec.

A questionable point, in my oppinion, is the way exports are marked.
Go uses the convention that a name starting with a capital letter is public.
So when you decide to export a previously private name later on,
you have to change that name.

For me, the funniest part of the language spec is the name for threads in Go.
They are called 'goroutines'.

- JT

Автор:  Info21 [ Воскресенье, 15 Ноябрь, 2009 20:18 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Иван Кузьмицкий писал(а):
прошёл по ссылке и обнаружил:
Цитата:
Why can't people just use Oberon and move on with life? ...
Смеялся :)
Вот тут переведено несколько фрагментов:

http://www.inr.ac.ru/~info21/go.htm

Автор:  Geniepro [ Понедельник, 16 Ноябрь, 2009 07:36 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Josef Templ писал(а):
I have just scanned the Go language spec and it looks a lot like a mix from Oberon/CP and C with some interesting syntactical ideas borrowed from functional languages, I guess, but nothing really new.

Другие утверждают, что Go -- перекрашенный Limbo, кто-то сравнивает с Алголом-68 с неутешительным выводом, что за 41 год ничего нового в разработке языков программирования, а Go -- просто регресс... :lol:

Автор:  Info21 [ Понедельник, 16 Ноябрь, 2009 07:51 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Geniepro писал(а):
кто-то сравнивает с Алголом-68
Сравнивать и с пяткой можно, да толку.

Автор:  Peter Almazov [ Понедельник, 16 Ноябрь, 2009 09:10 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Выход языка Go - это большой вклад в проект Информатика-21.
Поздравляю, коллеги!

Автор:  Валерий Лаптев [ Понедельник, 16 Ноябрь, 2009 09:58 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Вообще для сравнения обязательно надо студиозам изучить два направления: Додиез и КП, Дотнет и ББ.
Только вот, чтобы их убедить в преимуществе ББ, надо, чтоб среда собирала сведения о многих вещах. Например, количество ошибочных действий в малознакомой ситуации. Или количество запусков с неправильными результатами...
Такие сборы - обязательное условие обучающей среды... А не только черепашки и роботы...

Автор:  Валерий Лаптев [ Понедельник, 16 Ноябрь, 2009 10:03 ]
Заголовок сообщения:  Re: Системный язык Go от Google

И вообще, нужно считать уровень обученности. И показать, что при работе в ББ такой уровень повышается значительно быстрее... Только вот как чистоту экспериментов обеспечить? Люди ж все разные...Может быть, взять две группы, одну учить на додиезе в дотнет, а вторую - на КП в ББ. А потом поменять и как самостоятельную работу заставить учить второй язык и среду?

Автор:  Евгений Темиргалеев [ Понедельник, 16 Ноябрь, 2009 10:32 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Валерий Лаптев писал(а):
И вообще, нужно считать уровень обученности...Может быть, взять две группы, одну учить на додиезе в дотнет, а вторую - на КП в ББ. А потом поменять и как самостоятельную работу заставить учить второй язык и среду?
Цель не средам/языкам научить, а культуру привить (viewtopic.php?p=28335#p28335). Среда/язык - инструмент.

Автор:  Валерий Лаптев [ Понедельник, 16 Ноябрь, 2009 10:43 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Евгений Темиргалеев писал(а):
Валерий Лаптев писал(а):
И вообще, нужно считать уровень обученности...Может быть, взять две группы, одну учить на додиезе в дотнет, а вторую - на КП в ББ. А потом поменять и как самостоятельную работу заставить учить второй язык и среду?
Цель не средам/языкам научить, а культуру привить (viewtopic.php?p=28335#p28335). Среда/язык - инструмент.

Это да! Но учатся водить машину на конкретной же машине...
Машину люди видят с детства, поэтому знают, что у всех есть руль, 4 колеса, тормоз и газ.
А с языками программирования и средами сталкиваются только при специальном обучении. И уяснить, что в принципе одинаково, можно только рассмотрев две конкретных среды и два конкретных языка... А то так и будут думать, что додиез или КП - уникальны...

Автор:  Info21 [ Понедельник, 16 Ноябрь, 2009 11:06 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Валерий Лаптев писал(а):
Такие сборы - обязательное условие обучающей среды... А не только черепашки и роботы...
Обязательное? Хм.
Впрочем, делайте, раз нужно :)

Автор:  Info21 [ Понедельник, 16 Ноябрь, 2009 11:07 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Peter Almazov писал(а):
Выход языка Go - это большой вклад в проект Информатика-21.
Поздравляю, коллеги!
Спасибо.
Только вход в проект издателя -- вклад еще больший :)

Автор:  Евгений Темиргалеев [ Понедельник, 16 Ноябрь, 2009 11:09 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Валерий Лаптев писал(а):
Это да! Но учатся водить машину на конкретной же машине...
Машину люди видят с детства, поэтому знают, что у всех есть руль, 4 колеса, тормоз и газ.
А с языками программирования и средами сталкиваются только при специальном обучении. И уяснить, что в принципе одинаково, можно только рассмотрев две конкретных среды и два конкретных языка... А то так и будут думать, что додиез или КП - уникальны...
Брать одну концепцию и показывать различия в её воплощении. Т.е. что у одной машины руль квадратный, а у другой круглый.

Например, SET КП - целое, биты которого - значения характеристической функции множества от номера бита. Отображаются напрямую на побитовые операции. И эффективная реализация понятия множество, и побитовые операции, если надо.

В .net насчет этого - вспоминаю - была статья, где некто ругался на безграмотность молодого поколения .net программистов, которые основ архит-ры не знают. Как пример приводилась работа с битами целого, для которой примеялось что-то типа коллекций/векторов/foreach-и... И то, что можно было записать одной побитовой операцией оказывалось настоящим циклом.

Автор:  Валерий Лаптев [ Понедельник, 16 Ноябрь, 2009 11:21 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Брать концепцию и показывать разные воплощения - это не для начинающих. Это уже ближе к философии и обобщению. Такое можно делать потом, для установления общего взгляда на конкретные вещи. А первый язык выучивается как иностранный - наизусть. Выучив английский и французский, можно понять, что они относятся к одной группе. А вот арабский (лисп) - из другой группы.
Поэтому сначала - конкретика, а потом обобщение. Не получается новичков учить сразу обобщению-концепции.

Автор:  Валерий Лаптев [ Понедельник, 16 Ноябрь, 2009 11:27 ]
Заголовок сообщения:  Re: Системный язык Go от Google

Info21 писал(а):
Валерий Лаптев писал(а):
Такие сборы - обязательное условие обучающей среды... А не только черепашки и роботы...
Обязательное? Хм.
Впрочем, делайте, раз нужно :)

А как иначе мамочек останавливать?! Только конкретикой: а вот ваш сынуля какую лабуду пишет! И система на основании собранных действий студента рекомендации преподу выдает: добавить по такой теме заданий и контроль! Или вообще сама добавляет. Для этого и надо все собирать и считать...

Страница 2 из 6 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/