Category Archives: *.JAR

Индусы покоряют Go

Меня не перестает изумлять способность индусов объяснить всему миру то, чего они сами не поняли.
https://golangbot.com/buffered-channels-worker-pools/
Великий исследователь придумал очень сложную concurrent задачу, которую иначе как Go не решить. Есть 100 трехзначных чисел. Для каждого нужно посчитать сумму цифр. Чтобы не было совсем скучно, каждая goroutine’а засыпает на две секунды. Если сумму цифр трехзначного числа можно посчитать за наносекунды, то секунда – это уже не один, а два порядка выше.
А теперь, внимание, фокус! Запускаем в два раза больше goroutine. Поскольку, все, что они делают 99.99% времени – это спят, конечно в два раза большее количество спящих недопотоков справилось с работой в два раза быстрей. С тем же успехом можно было бы создать их сразу сто, и получить десятикратный прирост performance’а. Вот где сила то!

Егорка и ORM

Как-то упустил в свое время этот высер Егорки про ORM:
http://www.yegor256.com/2014/12/01/orm-offensive-anti-pattern.html

Суть в том, что Егорка не любит ORM, и потому придумывает свой собственный, уникальный подход.
Впрочем, будучи неучем, ему невдомек, что его подход называется ActiveRecord, который он распилил напополам, и теперь пытается заставить хоть как-то работать.
Забавно, что как раз ActiveRecord из Ruby on Rails Егорка считает ORM’ом.

К счастью, даже среди ПэХэПэшников еще водятся разумные люди:
https://medium.com/@mantasd/orm-is-an-offensive-anti-pattern-really-42269673d54d

О Go и идиотах

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

Вот один пример:
https://www.goinggo.net/2013/07/object-oriented-programming-in-go.html
Мужик запихал процедурку в struct, и считает, что делает OOP. И ведь кто-то еще ходит на его курсы.

Люблю O’Reilly

До пятой редакции даже тигр был сильно офигевшей от всего того, что происходит в Java:

Dependency management в Go

Дремучие Cшники считают, что dependency management не нужен. Все, что нужно – пихаешь в проект. Чужой код или свой – какая разница?
Сначала все соглашались. Google ведь плохого не посоветует. И только когда vendor’ящиеся из всех щелей проекты раздулись, некоторые стали что-то подозревать.
При этом дремучие Cшники продолжали твердить, что раз в Google это работает, то это будет работать везде. Ведь у каждого есть десять индусов, чтобы следить за dependencies.
Некоторые китайцы и прочие демократы из Сан Франциско, которых в Google не взяли, решили все же пилить свой dependency management. Был godep, на который все дружно перешли. Затем был gom, на который все опять же дружно стали переписывать свои dependencies. Наконец кто-то додумался просто украсть идею у NodeJS, а не изобретать свой одноколесный велосипед. Так появился Glide. С Glide хотя бы можно работать. Не прошло и шести лет.

Вся суть хипстероты

“Я изучаю Go не очень долго, но даже за те две недели, что я потратил на его изучение, я успел сделать несколько проектов на нём” (с) аноним

Так и появляются эти десятки нерабочих библиотек на Go, делающих то, что язык должен был бы делать и сам по себе.

О StackOverflow

Оказывается есть вещи и похуже индусских “программистов” на StackOverflow. Это “программисты”-латиносы. Эти пишут свою код на каком-нибудь португальском. И пойди пойми, что такое negraLista.

Quasar

Для любителей пописать web на Go и прочих дурачков придумали Quasar. Теперь можно писать свои fiber’ы (goroutine’ы) и channel’ы. С channel’ами правда сильно промахнулись, поскольку Java и так всегда поддерживала channel’ы. Только назывались они BlockingQueue . Так что тут Rob Pike конечно в пролете.

О StackOverflow

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