LINUX.ORG.RU

А есть ли замена Go в плане кросскомпиляции?

 ,


2

2

Вот смотрите, есть один говнокод. Ядро на си, расширения на питоне. Поскольку мы не профессиональные программисты, то кодим как умеем, иногда приходится под венды некоторые куски переписывать заново, gui и не только. Go может из одного кода под линуксом генерить elf, PE и mach-o. То есть очевидный профит. Но Go слишком молодой и непопулярный язык, отсюда мало батареек. Например, go-gtk никогда не закончат. Про питоновские scipy, numpy, nltk я вообще молчу.

P.S. Это не Go-тред, потому в тегах его не указывал, потому воздержитесь от срача. Спасибо за ответы :)


Го, конечно, прикольный, но с графикой у него не айс. Биндинги к тулкитам какие-то невнятные, были слухи, чтобы написать свою библиотеку, на OpenGL-е, но новостей не видать.

Кросс-платформа — стандартно, Qt. Графика, куча встроенных плюшек, QtCreator. Хорошая вещь, есть даже подвижки на мобильниках.

Есть еще mono, C# и Gtk#, но это не-мейнстрим еще похлеще Go.

anonymous
()

иногда приходится под венды некоторые куски переписывать заново, gui и не только. Go может из одного кода под линуксом генерить elf, PE и mach-o.

Как вообще связана кросс-компиляция с написанием кросс-платформенного кода?

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

Благодарствую. Я не очень искал, да и сам Go у меня не установлен пока :)

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

Никак. Просто на винду писалось под апи, а линукс - гтк. А теперь хотелось бы сделать кроссплатформенный кросскомпилируемый не только линь+вынь, но и макось.

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

в практически линуксе все реверсится или можно обойти

Почти не реверсится только бинарщина, RPC, шифрование, криптостойкие хэши

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

Есть куча шаровых декомпиляторов джавы и шарпа, про эрланг хз. Практически если затраты на реверс > стоимости, то никто не будет реверсить.

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

для го уже написали столько, что для задач «мынепрофессиональныхпрограммистов» хватит. И гуй и все остльное есть и уже можно юзать. У нас, например тестеры фигарят на gxui воплне годные вещи, которые работают и на офф и на он топике. Правда как оно в продакшене - не вкурсе. у нас только внутрях.

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

Спасибо, поржал. Шел бы ты отсюда, ....

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

А что сейчас есть чистые интерпретаторы? Оно компилируется, когда надо интерпретируется, также как жаба, примерно. А работает оно на VM

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

нахрена тебе нужна чистая компиляция? И то что в треде ты пистон упоминаешь, он что чисто компилируемый язык чтоли? Смысл те совсем понятен, тебе шашечки или ехать? JS позволяет писать кросплатформенный код вообще без какого-либо геммороя, то есть, вообще об этом думать не надо.

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

Ваш этот джаваскрипт годится только менюшки выпадающие делать в браузере, без обид :)

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

JS позволяет писать кросплатформенный код вообще без какого-либо геммороя

А круги на нем рисовать можно?

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

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

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

нахрена тебе нужна чистая компиляция?

Шоб було дохрена (денег (шутка)). Потому что не опенсорс.

И то что в треде ты пистон упоминаешь, он что чисто компилируемый язык чтоли?

Нет, пистон для расширений потому что просто и быстро.

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

нахрена тебе нужна чистая компиляция?

Не могу понять, толи ты тролль, толи ты правда такой глупый.

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

Нет ничего такого что нельзя на нем написать

Зачем ты пользуешься ядром операционки, которое написано на си? Напиши на джаваскрипте, а то как не хипстер.

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

Шоб було дохрена (денег (шутка)). Потому что не опенсорс.

Ну вот нод-вебкит(nw), генерит какие то экзешники. они не настоящие, видимо, но, для сельской местности пойдет. А так, ведь, любой скомпилированный код все равно можно декомпилировать.

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

И чем он лучше питона? Оба интерпретируемы, в питоне хоть батарейки есть и всякие nuitka, cython. А в эрланге что есть?

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

Go может из одного кода под линуксом генерить elf, PE и mach-o. То есть очевидный профит.

Можно подумать кросскомпиляцию в Go придумали.

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

Чем еще можно компилить под 3-4 платформы без танцев? Под макось Go, вроде, единственный кто может из линукса.

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

Erlang не предназначен для написания Desktop приложений, не слушай этого балбеса. Да, wxErlang есть, да, работает, но сам язык тебе даст просадку на математике сильнее, чем питон.

Пользуйтесь Qt. Ну или wxWidgets. И то, и то плюсы. Увы, больше GUI кросплатформенное ни на чём не сделаешь.

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

Сгенерить код под другую платформу не проблема. Тот же gcc замечательно генерит код для винды или какойнить ебедщины.
Но в каждом проекте находится мудак, который впендячивает зависимость от некросплатформенной библиотеки.
Посему воевать надо с мудаками, а не с компиляторами.

AF ★★★
()

Тебе бинарники под ручу разных платформ нужны? Можно ocaml, можно rust(но там с библиотеками периодически ещё хуже чем в Go), можно упарываться хаскелем, но размеры бинарников будут ой-ёпт.

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

Ну мы так пока и живём, gcc+mingw. Просто умом-то понимаю что сишка не нужна мне, нету острой необходимости в низкоуровнивщине/оптимизации, «просто так повелось». Я хоть и сам матерю таких говнокодеров, но кому тормозит - купите нормальное железо. Мудака нас два, я и ещё один. Начнем воевать - просрём всё.

Просто я чё хочу - одна система, а компилять под все популярные.

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

Да, под 3 и опционально бсд. ocaml'ом как-то упрлся полтора года назад, практичнее хаскеля, мне понравился. Но опять же - библиотеки, как там вообще скомпилить для вынь и макоси? rust пусть подрастет, если выживет. Хаскель слишком сложен. Ну да, я тупой для него, лол. В общем, мне пофиг на тема_для_типичного_яп_срача, главное кроссплатформа и кросскомпиляция.

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

Тада C++ с постоянным статическим анализом и раздачей люлей говнокодерам. Я в общем-то даже не то что бы сильно троллирую. последний стандарт стал сильно дружелюбнее.

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

Так ты ядро собрался на Го переписать? Хочешь зафейлить проект и сбежать, да? Не дергайся лучше, оставь всё как есть.

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

Для жесктопа яву если и юзать, то уж точно не swing, а javafx. Swing вообще закопать надо.

cherry-pick
()
Ответ на: комментарий от jori

Просто на винду писалось под апи, а линукс - гтк. А теперь хотелось бы сделать кроссплатформенный не только линь+вынь, но и макось.

И при чём тут Go и кросскомпиляция? Тебе кроссплатформенный фреймворк нужен, а не кросскомпиляция (которую, кстати, и GCC умеет, а для Питона она не нужна в принципе).

korvin_ ★★★★★
()

Можно писать на крестах под wxWidgets и линковать сишное ядро.

Особенности wxWidgets в том, что он будет использовать родные для системы библиотеки: WinAPI в Windows, GTK+ в Linux и Cocoa в OS X.

Хорошим решением проблемы был бы Qt 4, но его, к сожалению, недавно депрекейтнули.

А Qt 5 до сих пор сырой: то они горячие клавиши в русской раскладке поломают, то в QMessageBox шрифты замылят, то fontconfig неправильно прочитают, то API/ABI сломают. А уж про прикол с глюком на их CI билд-ферме, который в течении трёх (sic!) лет автоматически линковал к QtCore 30МБ зависимостей от «левых» библиотек (речь идёт про виндовую сборку), наверное все слышали.

Когда у тебя приложение с одной кнопкой на Qt 5 начинало в винде весить ровненько 50МБ, хотелось забить тупым мудакам из Digia гвоздь в лоб. Ибо даже бандл полноценного приложения на JavaFX с JVM внутри весит меньше (!). Они кудахтали о модульности Qt 5, а в итоге стало только хуже, причём на всех системах разом. Это как у KDE с KF5 — тоже кудахтания о модульности, а в итоге что приложения на KF5, что на kdelibs4, как тянули 2/3 KDE, так и тянут.

Вот только недавно, в Qt 5.5.0, наконец-то юзеры Qt 5 (я был в их числе) дотрахали этих лентяев из Digia, которые наконец-то залезли на свой CI-сервер и вырубили нахер эти 30МБ библиотек. Ещё раз напомню, что такая херня продолжалась _три_ года, что красноречиво говорит о том, какой у Digia штат тестировщиков. До этого все плевались и пересобирали для винды Qt 5 из сорцов без опции icu. А Qt 5, особенно последний с двумя полноценными HTML-движками внутри (QWebEngine-blink и QWebKit), полностью собирается где-то около 8 часов (рабочий день) на бюджетном i5. Тебе такой геморрой нужен? Вот то-то и оно.

Так что у тебя три варианта: wxWidgets, Qt 4 и упомянутый выше JavaFX. Последний весьма вкусен. Кстати, можно делать бандлы для разных систем весом в 30 метров и не зависеть от того, установлен ли JVM в системе.

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

Я нас C++ пишу без проблем на все три платформы, я конечно не компилирую из линукса сразу под все платформы, но и в принципе зачем такое? Просто нужно правильно выбрать инструменты и фреймворки, и все будет как надо.

Int64 ★★★
()

Go может из одного кода под линуксом генерить elf, PE и mach-o.

Как будто это особенность Go O_O.

t184256 ★★★★★
()

А в чем проблема кросскомпилировать из одной Linux машины под остальные ОС?

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