Не, не совсем так. Я уже пробил данный вопрос ) . Go программу можно собрать без сорцов пакетов, только с .a файлами, но простого способа для этого не существует. Нужен небольшой хак. Можете поискать тему на stackowerflow я там задавал этот вопрос.
Вобщем если вы хотите передать кому то свой пакет в собранном виде myLib.a, чтобы не показывать свои исходники, то простого способа сделать этого нет.
Еще можно с помощью gccgo собрать .so (динамическая либа). Но так как в go нет динамической линковки, то использовать ее не получится. Только если на C/C++
Вы утверждаете, что время разработки на Go выше чем на node.js... очень странное заявление. Многие кто только выбирает язык и пробует Go не зная до этого node.js, говорят потом что порог вхождения в Go ниже. Я же считаю что эти языки одинаково легко освоить и писать на них.
Затем вы утверждаете что писать на node.js "распределенные приложения" (пожалуйста поясните что же это такое!) плохо потому что нет потоков... Это тоже мягко говоря странное заявление :)
Так же вы говорите что я не буду писать на Go простенький push сервер... Это вообще обсурдное заявление. Посмотрите пожалуйста как выглядит простой сервер на GO и Node.js.
Вот сервер на Go:
package main
import (
"io"
"net/http"
"log"
)
// hello world, the web server
func HelloServer(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "hello, world!\n")
}
Это копипаст с сайта golang. Правда... охренеть какой сложный код.
Аналогично работа с postgresql, mongodb, redis и т.д так же проста как и на node.js только синтаксис разный.
Вобщем для заказчика вообще пофиг на чем писаться будет, сроки будут одни и теже. Так как реализовать fullREST сервер с бд и кешированием, сокетами и т.д элементарно как на node так и на go.
Я согласен, что node.js не может заменить go, но вот сам go (мое мнение) может заменить node.js (я программирую на ноде уже 2 года). То есть еще раз повторюсь - node.js не может заменить go, а go может заменить node.js.
К стати, а что такое "распределенные веб приложения" и почему их нельзя писать на node.js? Если вы про колбеки то есть куча способов это решить, хотябы таже либа async.js, если вы о динамической типизации то тогда нужно сказать что и ruby, python, objective c и так далее не годятся для написания этих самых "распределенных приложений" :)
Да и еще, для ноды можно писать C\C++ расширения, то есть либы. Это может решить некоторые проблемы.
Конкретно можете сказать чем эти технологии так различны, что go не может заменить node.js??? (только и слышу от таких умников как вы, различные технологии, заменой нет, а почему никто сказать не может. Только один абстрактный кал)
Спасибо! На всякий случай приведу полный пример: g++ mac.cpp lib/mylib.so -L ~/Documents/projects/lib/mylib.so Теперь если пересобрать mylib.so не нужно пересобирать всю программу.
Спасибо! +1
Все работает (только вместо gcc я использовал g++). Одно замечание, чтобы заработало ваше приложение после компиляции необходимо добавить переменную окружения export LD_LIBRARY_PATH=/usr/local/lib
А если у меня 15 вариантов запросов? Делать 15 if или case? Возможно это дело вкуса, но мне больше нравится определять маршруты. Например /somethings/take={take}&skip={skip} и система маршрутизации сама все разрулит. Просто не нашел как это сделать в express.js
Не, не нужен рут скоп, чтобы получить данные в шаблоне с помощью сервиса. Только если сервис использовать нужно учесть, что он один один раз создается, по дефолу, то есть данные в разделяемых переменных нужно как то чистить.
Вобщем если вы хотите передать кому то свой пакет в собранном виде myLib.a, чтобы не показывать свои исходники, то простого способа сделать этого нет.
Еще можно с помощью gccgo собрать .so (динамическая либа). Но так как в go нет динамической линковки, то использовать ее не получится. Только если на C/C++