Pull to refresh
8
0
Optik@Optik

Scala developer

Send message
Вероятно надо развернуть мою мысль, потому что мою нападку на комментатора, восприняли как нападку на раст. С последним у меня нормальные отношения. И я вижу в нем как плюсы так и минусы. При этом компактность в рассмотрении вообще не участвует. Язык или дико вербозный или должно быть пофиг на его компактность, ибо есть вещи важнее. Когда постоянно высказываются за компактность кода, то свидетельствует только о том что сказать больше нечего. Я пользуюсь в некоторой степени растом, и у него есть проблемы, но не компактность.

О комментаторе же, подробнее:

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

`println` — это не картина мира о вводе выводе. Даже не картина о выводе. Потому что под капотом забит конкретный кейс вывода в стдаут (в любом языке).

Rust принуждает обрабатывать ошибки — если мы пишем качественный код, им придётся уделять внимание в любом случае, но с Rust — все ошибки явные и их обработка входит в привычку.
И вот всплывают действительные различия на уровне семантики языков, а комментатор бодро их игнорит в примере.
Коммуникация — часть процесса управления.
О чем это вообще? Вроде ни акторы ни каналы не присутствовали в контексте.
Ну и так далее. Конкретика попыталась появится, но комментатор не ухватил.
Много текста слабо связанного с приведенным кодом, который показывает примерно ничего.

Ну вот вам в довесок для рассуждений еще (на таком аналитическом примере можно разных языков притащить).
{-# LANGUAGE OverloadedStrings #-}
module Main where

import Data.Text hiding (length)
import Prelude hiding (words)

main = do
    putStrLn "Simple Haskell Word Count Program"

    let str1 = "Today is Holdiay Day"

    let wordCount = (length . words . strip) str1
    putStrLn ("Word count is = " ++ show wordCount)
Прошу прощения, пропустил часть деталей. Из-за рекламного характера читал по диагонали. Но как бы ваши априорные суждения ничуть не лучше. Чаты все были с внешними ссылками, спам был проблемой, по поведению можно было определить количество разных платформ спаммеров. Как минимум одна платформа точно следила за реакцией и пробовала менять поведение. Две разделяли спам по времени в разных каналах. Но тотально решить проблему скорее всего помогли еще действия самого телеграмма. Не знаю что именно помогло, но в то же самое время, в чатах где за порядком следили без автоматики проблема оставалась еще длительное время. Ну и, имхо, спаммерам по-прежнему хватает чатов (поэтому весь спам достаточно тупой в исполнении) где можно не заморачиваясь работать, поэтому из «трудных» каналов проще уйти, чтобы меньше привлекать внимание самого телеграмма.
Ваш бот ничем по логике не отличатеся от прочих. Ну разве что есть еще такой, что смотрит на содержимое (эвристика там или nlp не знаю). У всех этих ботов есть один жирный минус — они настолько ненавидят спам, что готовы линчевать обычного пользователя. И если пропущенный спам никого не удивит, то забаненный по ошибке пользователь это серьезная проблема.

В своей реализации прошел по тем же граблям. В итоге бот просто зовет админов, чтобы они приняли решение. По пользователям ведется статистика, чтобы реагировать на их первые N сообщений (дальше вероятность, что это спаммер стремится к нулю). Если упоминают человека, то линк ровно такой же как и у канала, но при этом это ложное срабатывание. Но это уже не привинчивал, потому что в тех каналах, где был бот, спаммеры почти перестали появляться и интерес продолжать пропал (после рестарта сервера забыл перезапустить и заметил только через 2 недели случайно, ну а так как проблема ушла то и оживлять не стал).
При отрицании тире не ставится.
Дабы разбавить «почти статью» хоть чем-то. Для новичков может быть неплохой отправной точкой по материалам изучения stackoverflow.com/tags/scala/info.
Это «отклики с большинства самых известных работных сайтов страны»? Выглядит крайне сомнительно что там такой трафик даже на серверах статики. Эти сайты продают вам трафик?

Зачем в этом кейсе exactly once? Как вы проектировали свое приложение для работы с exactly once?

Какие настройки пришлось менять? Как выбирали репликацию, ретеншн? Как настраивали размер сообщений (то о чем у вас указано в статье)? Какие проблемы были? Были ли проблемы с ребалансом?
Я не про тесты, а про промышленную эксплуатацию. Короткая синтетика совсем не то же самое, что постоянная работа.
Какой у вас реальный объем сообщений в топиках? И какие ресурсы под это дело и настройки кафки?
Фреймы обычно делают с перекрытием, потому что нужно уловить не только звуки но и переходы между ними. Длительность всего фрейма 25мс, перекрытие со следующим 15мс.
Your project resources sleep after 30 minutes of inactivity, and must sleep 18 hours in a 72 hour period.
Специфичненько.
В одном из предыдущих срачей топиков путем докапывания до котлин-адепта выяснилось, что интероп все же совсем не 100%. Также как и у других jvm языков.

Тем кто пишет core-либы смириться и жить на старых возможностях языка? Стоит забить на тех, кому нравится java?
При чем здесь вообще котлин? Все его фичи тоже уже были в других языках.
Это исправление известного бага. Сколько времени прошло с момента зарождения ошибки до её обнаружения неизвестно, и уж сильно вряд ли 5 минут. Исходная реплика была о том, что отсутствуют инструменты для превентивного поиска ошибок.
И где тут время отлова ошибки?
[mode=troll]Мат либу, реализованную без дженериков, поддерживать само собой не особо захочется. Конечно она застряла без развития.[/mode]

Как ни странно, но математика меняется. И алгоритмы и оптимизации, которые могут быть применены тоже. Не говоря уже про blas библиотеки, которые стоят у многих java либ под капотом. Поэтому про перформанс, который улучшается с годами как вино, не надо говорить.

Понимаю, что это пример был, но он неудачный (опыт собственно был с этим).
Не могу назвать опыт с «живым» софтом на коболе или java <=1.4 правильным. Это выливается в еще большие проблемы с поддержкой или миграцией, которые усугубляются с каждым годом. Имхо, принудительное стимулирование двигаться вперед полезно всем.

По поводу «крупные либы обновляются быстро» — Apache Samza только-только добавила поддержку 2.11.
Могу еще спарк привести в пример, но это не значит что это поголовная проблема.
Это не скальное предложение, как бы. В дотти новая система типов, что и без того сломает исходники. Но до неё дожить бы еще.
Это редко, когда создает проблему. Крупные либы обновляются быстро. Остальные, написанные одним человеком когда-то, в большинстве случаев лучше выкинуть. Зачем тащить труп, который не пересобирается под новую мажорную версию языка при том, что обычно даже код править не надо, только поправить одну строчку в сборке.

Проблемы есть с тем что множество социально-безответственных авторов из всего jvm мира любят прибивать гвоздями определенные версии и включать их в поставку. Типичная ситуация — вязанка netty, сериализатор древней версии и т.д.

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity