Previous Entry Share Next Entry
photo25

И еще раз про Go

Еще один гвоздь в крышку гроба, да.

Оригинал взят у thedeemon в Turing completeness
"A property of universal computation — Turing completeness — is that a computer program can write a computer program." - пишет Rob Pike на сайте golang.org, рассказывая об очередной прорывной инновации в тулчейне Go. Я раньше думал, они там лишь последние 30-40 лет пропустили, простите, был неправ.


  • 1
udpn December 23rd, 2014
Так он же пишет, что свойство. Необходимо, но не достаточно.

wizzard0 December 23rd, 2014
Вообще-то, для того, чтобы программа могла написать другую программу, ни ей, ни рантайму не нужно быть тьюринг-полными.

udpn December 23rd, 2014
Чтобы быть Тьюринг-полными, нужно иметь возможность писать программы. Или, иначе, Тьюринг-полнота позволяет писать программами программы.

Необходимость, не достаточность, я же говорил.

Edited at 2014-12-23 02:00 pm (UTC)

wizzard0 December 23rd, 2014
То, что ты имеешь в виду, переводится как "Property X implies that a computer program can...", а там "Property X is that a computer program can...".

udpn December 24th, 2014
Мне показалось, что там "is" это не "есть", а "в том, что". Сейчас пару раз перечитал, понял, что всё-таки "есть".

dmytrish December 23rd, 2014
Каким образом машина Тьюринга может написать программу? Есть лента данных, есть лента программы, доступа в ленту программы вроде нет?

udpn December 23rd, 2014
На машине Тьюринга можно виртуализировать другую машину Тьюринга, и делать с лентами виртуальной машины что угодно, хоть многомерную радужную ленту Мёбиуса из неё крутить.

wizzard0 December 23rd, 2014
Да это понятно, но там не это написано.

alamar December 23rd, 2014

wizzard0 December 23rd, 2014
Да-да-да.

gineer December 23rd, 2014
Knowing how to code is like knowing a foreign language. It doesn’t matter much if you have nothing to say. (С)

juan_gandhi December 23rd, 2014
Не скажите. Надо выбирать, как слушать. Или "ага", или "oh really", или "нээ" и "со-со".

gineer December 23rd, 2014
Вот чесно, неожиданно.
Не ожидал что на эту цитату у кого-то появятся аллюзии на "слушать"...

bvlb December 23rd, 2014
да хрен бы с ним. я интересовался какое-то время зачем вообще Го нужен, мое сердце успокоилось на кворовской дискуссии, где умные люди объясняли, что гугл не хотел создать новый хороший язык программирования (sic!), а типа отталкиваясь от уже имеющейся огромной коуд базы на плюсах и джаве, сделать "что-то" на что эта база будет легко портироваться, но чтобы сам язык был гораздо меньше, проще и хм спасал от каких-то классов багов. А что там nil есть я уже позже узнал. Куда ж без нила.

Что меня удивляет, так это зачем на нем пишут люди не из гугла. Реально же проекты всякие делают, стартапы.

Edited at 2014-12-23 03:10 pm (UTC)

wizzard0 December 23rd, 2014
Куда-то не туда оттолкнулись, имхо...

insanegigolo December 23rd, 2014
Гугл как майкрософт, для начала придумывает технологию, а потом её хоронит.

(Deleted comment)
wizzard0 December 23rd, 2014
по описанию подходит D

sorcerer_ December 24th, 2014
Дык главное: статическая компиляция без варианов.
Для клауд-херни это очень важно, ибо заманаешься зависимости менеджить.
Но конечно подход: статических экзешник бегущий прямо на железе (виртуальном) был бы еще лучше, но не осилили.

thedeemon December 24th, 2014
30 вряд ли. Там хелловорлд около мега получается. В силу обязательной статической линковки бинарники у Го обычно наоборот довольно большие.
http://stackoverflow.com/questions/24126398/why-does-go-produce-big-binary-files-for-small-programs

Дмитрий Васильев December 24th, 2014
А на чем сейчас следует писать маленький вебсокет сервер типа чата, строк на 500?

thedeemon December 24th, 2014
На 500 сложно, вот на 50 maxim может показать как (на эрланге).

maxim December 24th, 2014
body() -> [ #panel{id=history}, #textbox{id=message}, #button{postback=chat}].

event(init) -> wf:reg(room);
event(chat) -> wf:send(room, {chat,wf:q(message)});
event({chat,Message}) -> wf:insert_bottom(history, #span{text=Message}).


Вот вебсокет чат сервер на 4 строчки.


Edited at 2014-12-24 08:25 am (UTC)

wizzard0 December 24th, 2014
Строго говоря, я бы сюда включил еще строчки для environment set-up ;-)

maxim December 24th, 2014
Ах да, совсем забыл:

mad app sample


Вот, 5 строчек.

bvlb December 24th, 2014
Эрланг, Эликсир, Хаскель, да мало ли на чем. Все будет меньше чем на 500 строк

wizzard0 December 24th, 2014
Да и на жс будет меньше 500 :)

kunaifusu December 24th, 2014
Всякую опердень писать - самое то. Клиенту соскочить - без шансов вообще, Там, говорят, есть замечательная фича с включением модулей прям из гита, благодоря которой исходники на другой машине даже и не скомпилируются. Да и найти других индусиков со знанием этого го - не очень просто.
А стартапам вообще без разницы на чем писать, им главное продать лавочку по-быстрее и по-дороже. Технология от гугла в этом деле, мне кажется, только в плюс - во-первых продать можно самому гуглу, ну а если гугл не купит, все равно солидно выглядит в глазах потенциальных лошковинвесторов.

wizzard0 December 24th, 2014
Всё так

109 December 25th, 2014
в смысле на другой машине, на которой доступ в гит не настроен? так и правильно, и нефиг.

kunaifusu December 25th, 2014
В смысле на другой машине, настроен там гит или нет без разницы потому что компилирует оно не из гита а из кэша, что скачала из гита первый раз, то и компилирует все время.

sober_space December 25th, 2014
Да из какого блин кэша? Из обычной, очевидной, всем видной, легко обнаружимой и т.п. локальной папкиииии. На другой машине или той же без разницы абсолютно. Как она туда попала, через go get или иначе тоже без разницы. Перейти на другую машину на деле проще чем в чём угодно другом.

Вот мифологи.

kunaifusu December 25th, 2014
>Да из какого блин кэша?

Вы, наверное, в Гугле работаете.

sober_space December 25th, 2014
>> Там, говорят, есть замечательная фича с включением модулей прям из гита, благодоря которой исходники на другой машине даже и не скомпилируются.

:D Легенды и мифы древней греции! Через год снобы об этом будут примерно говорить так: компилятор go проверяет можно ли сконнектиться с github и если нет то выдает ошибку!!!

kunaifusu December 25th, 2014
Я не понял, это вы возражаете так и утверждаете, что Го не импортирует библиотеки таким образом?

sober_space December 25th, 2014
Чтобы было понятно, кусок моего кода:
import (
	"crypto/sha256"
	"encoding/hex"
	"regexp"

	"github.com/robertkrimen/otto/ast"
	"github.com/robertkrimen/otto/parser"
)


Сегодня утром скомпилировал на виртуалке, не подключенной к интернету и без установленного гита. github.com/robertkrimen/otto/ это конечно всего-лишь путь к локальной папке.

kunaifusu December 25th, 2014
А, понял, кажется, ваш аргумент. "Я делаю так и из этого однозначно следует, что никаким другим образом эту фичу использовать нельзя".

sober_space December 25th, 2014
Неправильно! Аргумент значит

Я так делаю и из этого однозначно следует, что фраза 'исходники на другой машине даже и не скомпилируются' неверна

:D

sab123 December 23rd, 2014
Это похоже они выдумывают очередную вариацию на тему make. Ничего необычного, вон в Джаве уже есть как минимум две вариации, обе чрезвычайно корявые.

  • 1
?

Log in

No account? Create an account