LINUX.ORG.RU

Языки похожие на Go

 


0

3

В общем у Go есть такая особенность, что вместе с бинарником он тащит свой рантайм, те его авторы так заморочились, что многоие вещи, которые обычно реализуют системные библиотеки, они завелосипедили. Про минусы такого подхода всем ясно. Но про плючсы не часто говорят, а именно, что можно взять готовый бинарник под линукс и он запустится на любой версии ядра… а еще не требует sudo. Какие еще языки с батарейками именно компилируемые. Rust с его ублюдским синтаксисом не предлагать

Ответ на: комментарий от adn

я приведу пример: есть всякие nmap сишние для которых требуется root, а есть высеры на go, которые без рута порты сканят… не будем вдаваться в подробности откуда у меня куча серверов без рута и что я с ними делаю, но для меня принципиально нужно что-то независимое от хоста, желательно чтобы только ядро использовало как тот же go

tz4678_2
() автор топика
Ответ на: комментарий от tz4678_2

Для nmap рут не требуется, только для более тщательных вариантов анализа.

PolarFox ★★★★★
()

Мне Hare на первый, очень беглый взгляд понравился, выгляди как мой новый любимый язык.

urxvt ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

ты прикалываешься? на сишке даже простой запрос боль:

import requests
session=requests.session()
session.headers.setdefault('user-agent','fake-browser')
r=session.get('http://target')
print(r.text)

А если регулярочки захотим…

Си не подходит по ряду причин:

  1. нет сборки мусора;
  2. нет пакетного менеджера, который подсасывал бы автоматом пакеты с гитхаба;
  3. код сложен в понимании,сопровождении;
  4. где батарейки (богатая стандартная либа)?
tz4678_2
() автор топика
Ответ на: комментарий от tz4678_2

а без батареек. язык не может быть максимально независим от системы. даже срани какой-нить нету типа не знаю встроенной поддержки zlib. питон тоже плохой кандидат: многое упирается в сишные зависимости, а на голом питоне ест-но такие вещи не пишут по причне тормознутости последнего

tz4678_2
() автор топика
Ответ на: комментарий от tz4678_2

Ты основной тезис требуемый привёл как статическая сборка. Надо было всё это в шапку совать, а не только про статическую линковку.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от tz4678_2

а еще не требует sudo

я приведу пример: есть всякие nmap сишние для которых требуется root, а есть высеры на go, которые без рута порты сканят

Требования рута никак не связаны с языком. Например, сканировать порты можно по-разному, connect() что на C что на Go не будет требовать рута, а посылка скрафченого сырого SYN пакета потребует рута в любом же случае.

питон тоже плохой кандидат: многое упирается в сишные зависимости, а на голом питоне ест-но такие вещи не пишут по причне тормознутости последнего

Тормознутость есть проблема только когда в неё упираешься. Если тебе нужно несколько килобайт сжать да ещё и не в реальном времени, в чём проблема взять самую тормознутую pure-python имплементацию?

Итого ты не привёл причин чем тебе не подходит ни статически собранный C, ни go, ни python. Да и ни rust тоже, поскольку «ублюдский синтаксис» характеризует тебя, а не язык.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Требования рута никак не связаны с языком. Например, сканировать порты можно по-разному, connect() что на C что на Go не будет требовать рута, а посылка скрафченого сырого SYN пакета потребует рута в любом же случае.

+1.

@tz4678_2 Скорее всего у nmap какая-то оптимизация чтоб бандлом SYN пакеты посылать и получая пакет ответа не завершать хендшейк (как при нормальном коннекте), получив пакет SYN+ACK уже понятно что порт доступен. Кстати наверное такой незавершенной хендшейк мало того что быстрее выполняется, так еще может быть не залогирован на тестируемом хосте потому как коннект не состоялся.

Aber ★★★★★
()

Оберон, собственно по мотивам Оберона был сделан Go.

X512 ★★★★★
()

Правильный ответ состоит в том, что вопрос не имел смысла.

Partisan ★★★★★
()

а именно, что можно взять готовый бинарник под линукс и он запустится на любой версии ядра

что, и на версии 1.0 запустится?

seiken ★★★★★
()

что многоие вещи, которые обычно реализуют системные библиотеки, они завелосипедили

спасибо, ты делаешь мне смеятся )))

Про минусы такого подхода всем ясно

нет уж, изволь, расскажи. а то мне плюсы одни видятся.

а еще не требует sudo

есть ощущение, что стоит немного основы ОС почитать, для чего нужны программам привелегии суперпользователя.

ergo ★★★
()

nim предлагали?

sol13 ★★★★★
()

Но про плючсы не часто говорят, а именно, что можно взять готовый бинарник под линукс и он запустится на любой версии ядра

правильно не говорят. Ядро - не ядро, но с libc он таки линкуется динамически. И если подсунуть ему неправильную версию glibc, или вообще musl в контейнере с альпайном, то - здравствуйте, я ваша тетя.

Статические бинарники там тоже можно делать, но в общем случае с какой-то матерью, и эта функциональность явно не просто так отключена по дефолту.

Lrrr ★★★★★
()
Ответ на: комментарий от Toxo2

И на любом ДОСе запускается. Прорывная технология!

rupert ★★★★★
()
Ответ на: комментарий от tz4678_2

нет пакетного менеджера, который подсасывал бы автоматом пакеты с гитхаба

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

А вообще все эти самопальные пакетные менеджеры - зло, в линуксе так уж точно. Они плодят блоатварь с кучей лефтпадов, паковать надо сразу для дистра. Тот же cmake позволяет собирать deb-пакеты, например.

Lrrr ★★★★★
()
Ответ на: комментарий от seiken

на 3,4 версии ядра запускается, что собрано под 5, там есть еще флаг CGO_ENABLED=0 чтобы сишный код не вызывался

tz4678_2
() автор топика

Haskell, OCaml, SML, Nim, Rust, Hare, Scala Native, Kotlin Native, PureScript Native.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от seiken

на 1.0 нет, но официально поддерживается 2.6.23 и выше (это последняя версия golang 1.18 с такими минимальными требованиями)

ergo ★★★
()
Последнее исправление: ergo (всего исправлений: 1)

В общем у Go есть такая особенность, что вместе с бинарником он тащит свой рантайм

Да все кому не лень сейчас так делают. Можно ткнуть в любое молодежное ненужно, не промахнешься. Только там будет сообщество из десяти скучающих гиков и столько же библиотек сомнительного качества. Выбирай не хочу.

bread
()
Ответ на: комментарий от bread

Ну libc статически мало кто вкомпиливает. Насчёт го я кстати тоже не уверен.

vbr ★★★★
()
Ответ на: комментарий от Oldboy

буду краток - Haskell, Zig. Haskell особенно похож.

Буду ещё кратче: пацталом.

Длиньше уже объяснял. Вопрос автора темы не имел смысла, поэтому и ответы бессмысленные.

Partisan ★★★★★
()
Ответ на: комментарий от Partisan

Вопрос автора темы не имел смысла, поэтому и ответы бессмысленные.

Как всегда на ЛОРе.

bread
()

вам шашечки или ехать ? просто приложите Go не к хелло-ворду или бложику

c Go всё-таки можно зарабатывать жратЪ во всякий data-science, agregation и representative (и прочие умные слова, см.топ продуктов Go - там тьма денег) :-)

компилируемый, с толстым рантайм, батарейками и корпоративной поддержкой.

MKuznetsov ★★★★★
()

V8!!

Я не шучу. Можно собрать статически собранный бинарник, переносимый на всех linux платформах, который одинаково везде будет работать и 95% кода будет написано на JavaScript, весить будет hello world около 8 Мб

EASY

menangen ★★★★★
()
Ответ на: комментарий от menangen

Интересно было бы тогда обезжирить Go или V

Так, чтобы рантайм весил ДО 1 Mb

чисто ради спортивного интереса, возможно было-бы интересно. Но в современном мире Mb уже давно не считают. Тем паче в (знакомых мне) областях применения Go где массовые/быстрые сервера, или большие данные, а обычно вместе.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

c Go всё-таки можно зарабатывать жратЪ во всякий data-science

какой тебе дата сасаенс? он весь на python и r, но это замануха для дебилов, которые хотят получать 300к/с

tz4678_2
() автор топика
Ответ на: комментарий от EXL

Haxe это ActionScript + C#, развивался во времена когда флеш умирал, но нужно было куда-то мигрировать

umren ★★★★★
()

Rust с его ублюдским синтаксисом не предлагать

Главное это инфраструктура, а синтаксис - дело наживное.

PS:изучаю RUST 🦀

fornlr ★★★★★
()
Ответ на: комментарий от umren

зачем тогда мне это говно предлагаюТ, я в резюме написал, чтобы эту парашу не предлагали

tz4678_2
() автор топика
Последнее исправление: tz4678_2 (всего исправлений: 1)
Ответ на: комментарий от tz4678_2

какой тебе дата сасаенс? он весь на python и r

на них нишевые нищеброды ;-) потому как халява-с

а про Go - посмотри на чём сервера делаются. И почём сделать мелкий плагин.

MKuznetsov ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

cython и nim как раз транслируются в сишку, то что надо для неосиляторов

InterVi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.