globuzer: изучать на мой взгляд следует протоколы(скажем перечисленные) потому, что они надолго. А за прогрессом инструментов не угнаться. Необходимо знать основные подходы(скажем MapReduce, шардинг и репликация данных. MessagePassing и RemoteProcedureCall кода. ОчередиРабот и диспетчирование этих очередей. LoadBalancing). Если все же говорить об инструментах, то знать зачем нужны и как работают memcached, Apache Hadoop, Apache ZooKeeper - это пожалуй необходимый минимум в области.
angrishenko: You are welcome. Если веб, то я бы сказал 1) PHP - там нечего учить и море заказов 2) vanilla Javascript - все меряются фреймворками, но мало кто знает javascript 3) golang - это язык, которым я зарабатываю деньги(server backend) Язык быстрый, удобный, простой и элегантный. Он в тренде, но специалистов еще мало, а контракты на odesk уже есть(есть теги на habrahabr, toster, fl.ru)
Верно. Язык дает мне Мапу в которой из коробки реализовано бинарное дерево с хэшированием. А что быстрее академически? В принципе же не трудно написать сортировку и сложение руками. И еще, в Go Мапа никак не упорядочена для циклического доступа и извлекать из нее по старшинству счетчика я не смогу. Поэтому мне нужно будет перелить в массив и все равно сортировать по счетчику. А какая Мапа в java- syntax или stdlib, hash func или memory layout, 'for range Map' упорядочено или случайно?
maagames.ru: Идея с хэшем интересна. Подскажите легкую функцию для текста 10000 слов, словаря 500 слов, слова 10 юникод рун и я отмечу ответ решением.))))
Кажется хэширование не бесплатно, разве что фильтр Блума подешевле. Но это все не overingeneering вы считаете? Можно оценить на каком размере текста и словаря это окупается? Ссылки на оценку будет достаточно для меня.
Именно. "Наматываться" здесь умаляет общность - пусть "рассеиваться". В моей частной задаче задан еще размер прямоугольного холста, но пусть на бесконечном холсте.
wing_pin: Rust проектировался командой mozilla с задачей переписать firefox, Go под крылом google для решения задач google - быстрая разработка сетевых сервисов, в частности он уже сейчас используется в инфраструктуре youtube/vitess dl.google.com Этим во многом обусловлено концептуальное различие в приоритетах разработчиков и предметной области двух прагматичных языков. Go - сервер/облако, Rust - например 3d игра на рабочей станции.
Тут из меня плохой советчик, я к стыду своему пользуюсь fmt.Println(error.Error()). Из общих соображений log в stdlib потому, что stdlib и glog потому, что его пользуют в google
В общем случае error.Error() string - это все, что обязательно спецификацией языка. Большинство логгеров извлекают это сами, достаточно им передать error. Есть еще сообщения runtime и OS в системной консоли и coredump, но это в случае крушений.
С этим проблем не возникнет. "A template may be executed safely in parallel" В приведенной вами ссылке автор собирает несколько templates в ассоциативный массив (map) и потом замками (mutex) защищает этот map для конкурентного использования. На мой взгляд это overingeniring. Вполне достаточно var templates = template.Must(template.ParseFiles("something.html", "somethingelse.html","someanother.html")) в main, и потом err := templates.ExecuteTemplate(w, someyouwant+".html", p) в handler или middleware