Портирование приложения Java для Движения - совет?

Мы хотим переписать бэкенд kodingen.com с Движением, которое в настоящее время является Java, работая как демон, использующий jsvc.

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

Однако задача довольно проста

  • считайте команды оболочки из mysql базы данных
  • очередь и выполняет их параллельно
  • сохраните каждый вывод оболочки к базе данных

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

Чему Вы советовали бы? C еще лучше?

7
задан Devrim 12 April 2010 в 14:43
поделиться

4 ответа

Мне очень нравится Go, и я внес свой вклад в этот проект. Однако я думаю, что вам следует рассмотреть несколько моментов, связанных с Go, прежде чем остановиться на нем окончательно.

  • Go - все еще нестабильный язык. Его синтаксис, возможности и пакеты могут быть изменены. Убедитесь, что вы готовы идти в ногу со временем, если решите его использовать.
  • Сборка мусора в Go все еще незрелая. Использование памяти должно быть лучше, чем 1,2 ГБ, но это, вероятно, не позволит вам приблизиться к уровню C.
  • В Go нет поддержки MySQL (или любой другой базы данных). Существует несколько неофициальных проектов пакетов MySQL. Самые последние обновленные из них. GoMySQL and Go-MySQL-Client-Library. Я ничего не знаю о том, насколько они полны или стабильны.

Что касается постановки в очередь и параллельного выполнения, я думаю, что это то, что Go сможет делать довольно хорошо. Вы, вероятно, будете использовать пакет exec для выполнения и распараллеливания с помощью goroutines.

3
ответ дан 7 December 2019 в 09:59
поделиться

Я думаю, что с недавним добавлением panic / recovery Go начинает становиться жизнеспособным вариантом для серверной части веб-сайтов. Я запускал пару простых приложений facebook, использующих Go, но мне неприятно, что все приложение отключается из-за чего-то вроде ошибки ключа карты или исключения нулевого указателя. С помощью паники / восстановления можно будет управлять сбоями.

По поводу ваших требований - это должно быть хорошо для команд mysql и оболочки. Но будьте готовы исправить некоторые библиотеки :)

1
ответ дан 7 December 2019 в 09:59
поделиться

Я согласен с @Chickencha

На данный момент у меня нет планов обновлять мой [1]: http://github.com/chbfiv/libmysqlgo "libmysqlgo " проект. Взносы приветствуются, но я слишком занят. Я бы рекомендовал использовать более активные проекты mysql go.

1
ответ дан 7 December 2019 в 09:59
поделиться

Из часто задаваемых вопросов по языку:

Проект Go был задуман, чтобы упростить написание серверов и другого программного обеспечения, которое Google использует для внутренних целей, но реализация еще не достаточно зрелая для крупномасштабного производственного использования.

Насколько я знаю, сборщик мусора и планировщик Go еще не готовы. И его компилятор все равно недостаточно оптимизирован, компилятор C улучшался уже 20 лет. Если вы хотите используйте его на производственном сайте, лучше подождать, пока Go станет достаточно зрелым.

Но это не значит, что Go - не лучший язык для изучения. На самом деле, я с радостью использую его для разработки некоторых полезных утилит.

РЕДАКТИРОВАТЬ: Перед тем, как переключиться на другой язык, как насчет того, чтобы поэкспериментировать с готовящимся к выпуску JDK 7. В сборку мусора внесены некоторые улучшения. Вы можете проверить, лучше ли в вашем случае управление памятью.

1
ответ дан 7 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: