Почему нет on-line компиляторов?
Здесь не будет ответа на вопрос. Просто пояснения вопроса.
Находясь под влиянием темы Программа на JavaScript позволяет проигрывать MP3 прямо в браузере и без Flash, я задумался, о том, что, в принципе, компиляторы, тоже можно реализовать на клиенткой технологии. Конечно, это полный бред, однако у этой мысли есть и иное продолжение. Например, для кросплатформенной разработки, было бы удобно иметь сервис компиляции и тестирования кода на различных системах. Причем взаимодействовать с сервисом можно было бы через веб.
Зашли на сайтик. Запостили в форму код, ключи к компилятору, набор тестов. Выбрали нужную систему, архитектуру, какие-то параметры. Submit! Через какое-то время получили бинарник и результаты тестов.
Насколько мне известно, нечто подобное используется для олимпиад по программированию, но, естественно, никаких ключей и выбора там нет.
На самом деле, было бы удобно иметь такой сервис, в том числе и не бесплатно. Иметь кучу машин с разными параметрами и системами --- не каждая контора сможет себе это позволить.
Держать зоопарк виртуалок:
1) Qemu --- ну для начала, надо самому все настроить и поднять, а потом они сожрут слишком много ресурсов. Муторно, вообщем.
2) VirtualBox --- ограниченный набор параметров. У меня только x86_64, а люди, например, просят чтобы работало на Spark и Alpha.
Кроме того, поведение виртуалки не всегда совпадает с поведением реальной машины.
Такого до сих пор не встречал.
Комментарии
w495
20 августа, 2011 - 03:46
Создать такой сервис может только очень крупная компания, это я понимаю. Как минимум по тому, что придется держать разношерстную ферму с зоопарком систем. Но, имхо, есть те, кто смог бы это реализовать, если уже не реализовали.
sash-kan
20 августа, 2011 - 15:56
всё украдено до нас·
obs aka open build service aka opensuse build service
w495
20 августа, 2011 - 19:11
Ну там не совсем так. Меня что-то загружать заставляют.
pomodor
20 августа, 2011 - 03:01
Ну, только из таких "бредовых" идей рождаются идеи гениальные. Отличный пост с идеей внутри! Правда, я не вижу как можно сделать компиляцию на стороне клиента платной. Если это JS, то его всегда можно сохранить, модифицировать и использовать бесплатно.
Но предлагаю идею другого платного сервиса: юзер присылает дистрибутив какой-либо программы, он обрабатывается на серверной стороне под нужную платформу (прикручивается Wine или что-то вроде этого) и юзер получает обратно готовый дистрибутив под выбранную ОС почти в реальном времени. Например, захотел гражданин поиграть в CS под Линуксом, тыкнул ссылку, получил ссылку на скачивание готового deb, rpm и т.д.
w495
20 августа, 2011 - 03:44
#!/usr/bin/env Ниже много букв
Относилось исключительно к браузерным компиляторам. Я сам сторонник интерпретируемых языков. Да и писать надо так, чтобы работало везде одинаково. Но это хорошо, пока не полез в системной программирование. Там уже не до удобств.
Даже если мы напишем компилятор (под какую-то платформу) на JS, и получим бинарник, то чтобы его протестить, нам придется переписать и систему на JS. Это совсем жесть, ибо сложно, хотя попытки были. + Мы опять возвращаемся к виртуалкам.
Кодеки на JS --- идея, согласен, что классная, а главное ничего стороннего не надо.
Говорила мне мама, не писать посты в 4 утра ...
Ну тут, согласен. Никак. Пытался сказать, что сама компиляция должна быть на стороне сервера. Через браузер взаимодействовать с человеком.
Если провести хорошую обфускацию, то разработать свое и с нуля будет проще.
Но если бы я как-то был причастен к разработке такой системы, я бы выступал за открытость сервиса (открытость, а не бесплатность): публиковать, улучшать, алгоритмы и принципы работы всегда хорошо. Плата должна взиматься за использование мощностей, ну и за готовую инфраструктуру --- проще говоря, за сам факт компиляции, тестирования, но никак не за исходники самого сервиса. Мне кажется там из исходников будет только схема соединения фермы и конфиги сетевых плат. Ну разве что, еще строка с вызовом gcc.
Согласен. А то я задрался ставить Word 2007 под wine.
Но в данном случае:
1) Копирасты поднимут вой.
2) Требуется индивидуальный подход, к каждому приложению, ибо есть элементы реверс-инженерствования. (Кто же знал, что для того, чтобы ворд поднялся, надо качать и ставить dll именно из венды, и иметь несколько копий его в подкаталогах wine_prefix? --- Заранее такого не предскажешь.)
Комментировать