Сокращалки урлов должны умереть

В комментариях у меня спросили почему сокращалки урлов должны умереть. Отвечаю. Потому что они наносят кучу вреда при почти полном отсутствии пользы.

В-нулевых, чаще всего они просто не нужны. В том же «Твиттере», где из-за идиотских ограничений сокращалки расплодились сверх меры (надо было просто считать урл за один символ), я часто вижу ситуацию, когда и без сокращения ссылка прекрасно помещается. Доходит и до маразма — «сокращённая» ссылка становится длиннее исходной.

Во-первых, в интернете и так каждый год умирает туча ссылок, если посмотреть мои материалы десятилетней давности, то число мёртвых ссылок будет просто удручающим. Один умерший сокращатель ссылок унесёт с собой в могилу сотни тысяч ссылок. А они умирают и будут умирать, пока для них кто-нибудь не придумает модель окупаемости.

Во-вторых, я не вижу куда эта ссылка ведёт. Отсылает ли меня автор ссылки в поиск «Яндекса», в «Википедию», на «Хабр» или на какой-то мусорный сайт? По виду ссылки я иногда могу сказать хочется ли мне на неё нажимать. Не скрывается ли за ней PDF, которые я в принципе не люблю читать с экрана ноута, или EXE, который мне на «Маке» не запустить?

В-третьих, я не вижу посещал ли я уже эту ссылку. В браузерах для этого есть специальный механизм, а «сокращалка» его ломает.

В-четвёртых, (этот пункт мне прислали в комментарии) сокращатели снижают скорость загрузки, худшим из них нужно несколько секунд для редиректа.

40 комментариев

99 бутылок: Go

48. Go — язык программирования, придуманный в «Гугле». Я на нём программирую, время от времени, и довольно неплохо его уже знаю. Замечательный, на мой взгляд, язык. Этакий «Си с человеческим лицом». Особенно интересно добавлено туда ООП, да и параллельные вычисления сделаны хорошо. Единственно — не нравится реализация обработки ошибок через panic/defer.

Язык статический, строгой типизации, компилируемый. Кстати, одна из особенностей языка — исключительно быстрая компиляция.

Некоторые ребята считают, что он похож на «Паскаль». Думаю это из-за конструкции «:=», которая означает в Гоу «создать локальную переменную с типом присваемого результата», а эти ребята ничего кроме этой конструкции из «Паскаля» не помнят.

package main
import "strconv"

func main() {
    for i := 99; i>0; i-- {
        b := bottles(i) + " of beer"

        println(b + " on the wall, " + b + ".")
        println("Take one down and pass it around, " + bottles(i-1) + " of beer on the wall.\n")
    }

    println("No more bottles of beer on the wall, no more bottles of beer.")
    println("Go to the store and buy some more, 99 bottles of beer on the wall.")
}

func bottles(beer int) string {
    switch (beer) {
        case 0:
            return "no bottles"
        case 1:
            return "1 bottle"
    }

    return strconv.Itoa(beer) + " bottles"
}

Оставить комментарий