Сохранен 502
https://2ch.hk/pr/res/473014.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Ламповый Go тред

 Аноним 04/05/15 Пнд 01:54:00 #1 №473014 
14306936402000.png
Добро пожаловать в тред посвященный системному языку программирования Go! ITT мы учим этот божественный язык, кстати говоря, лучший в области многозадачности и скорости компиляции (Go так быстро компилируется, что его можно использовать как интерпретируемый ЯП!), решаем насущные проблемы и вместе отправляем патчи в дерево разработки этого потрясающего проекта!

Q: Что за проблемы решает Go и нахуй он мне всрался?
A: Go решает большинство проблем C, от которого он изначально отталкивался. Ходят слухи, что инженеры в гугле просто заебались ждать компиляции своих приложений и написали Go, который сам полностью компилируется за 7 секунд. Килл-фичей Go является охуеннейший механизм многозадачности.

Q: ЯННП, так где я стану использовать это твое ебанное весло?
A: В принципе, Go можно использовать везде, где ты стал бы сегодня использовать С (за исключением разных I/O штуковин вроде драйверов) и на всяком хайлоаде. В аспекте производительности Go обсирает Ruby/Python/Node в качестве бэкенда для веб-приложений.

Q: Брат, а эта шняга убьет ебанную джаву?
A: Сложно сказать. Java это очень мощная технология, которая совершенствуется уже далеко не первый год, Go просто слишком молод, чтобы прямо тут и сейчас насрать на рожу Java. Но пройдет какое-то время, Go усовершенствует свой GC, поработает над разными оптимизациями... Впрочем, уже сейчас Go — это достойный соперник Java. Бенчмарки показывают, что оба языка идут достаточно плотно. Но одно можно сказать наверняка, Go не убьет джаву.

Q: Так, блять, я не понял, а классы то они когда прикрутят?
A: На самом деле, классы — это лишь синтаксический сахар поверх самой концепции ООП. Философия Go лежит в том, что ты работаешь с данными "не отходя от кассы" избегая лишней возни с горой типов и наследственной архитектуры (читай: Java). На самом деле, использовать техники императивного программирования (aka C-way) и работать с сырыми данными — охуеннее, чем может показаться на первый взгляд.

Q: Так, а он вообще много умеет, этот твой Go?
A: Не смотря на малый возраст этого ЯП, он обладает обширной стандартной библиотекой — http://golang.org/pkg/. Криптография, модули для работы с файловой системой, HTTP, JSON, базы данных, криптография, архивация и многое другое. За последние несколько лет сообщество сильно окрепло и появилась хуева туча 3rdparty модулей для Go. Как только ты разберешься с development workflow, то поймешь, что установка любого из них выполняется одной командой ;)

Q: Хорошо, а с чего начинать?
A: Трепетно разберись с разделами отсюда http://golang.org/doc/ и когда ты будешь готов писать Go код, то обратись к этому ресурсу: https://gobyexample.com/. Если у тебя будут возникать такие вопросы, в которых StackOverflow тебе не поможет, можешь смело обращаться к нам!

Viva la Go!
Аноним 04/05/15 Пнд 01:58:59 #2 №473018 
14306939392780.jpg
освятил
Аноним 04/05/15 Пнд 02:01:28 #3 №473019 
14306940889140.jpg
обоссал
Аноним 04/05/15 Пнд 02:04:54 #4 №473022 
14306942949370.png
>>473018
А у меня тоже такой есть, со стажировки привез!
Аноним 04/05/15 Пнд 02:07:55 #5 №473023 
> начиная с версии 1.4 поддержка платформы Android

Обясните, аноны - теперь на нем можно писать под Android вместо Java?
Аноним 04/05/15 Пнд 02:10:08 #6 №473026 
>>473022
Глаза тоже вываливаются?
Аноним 04/05/15 Пнд 02:12:55 #7 №473027 
>>473023
>Android native development added, albeit still "under heavy development"
Теоретически, запустить на андроиде helloworld ты сможешь, но до полноценного приложения Go еще очень далеко. Но я думаю, что Java так плотно заняла позиции, даже вытеснив NDK, что у Go мало потенциала в этом плане для бизнеса.

Хотя в любом случае, это будет охуенно. Будет, но не сейчас.
Аноним 04/05/15 Пнд 02:14:08 #8 №473029 
>>473026
Кстати, нет. Но ты сравнил! Там — огромный пупсан, а у меня мягкая игрушка. С ним кстати охуенно спать. Да, я сплю с мягкими игрушками.
Аноним 04/05/15 Пнд 02:23:58 #9 №473032 
>>473027
Ясно. Очень хотелось бы, чтобы жабу оттуда пидорнули. Буду надеяться.
sageАноним 04/05/15 Пнд 04:56:40 #10 №473069 
> нет обобщений
Аноним 04/05/15 Пнд 08:48:59 #11 №473100 
>>473029
>Да, я сплю с мягкими игрушками
Типичный гофер, лол.
Аноним 04/05/15 Пнд 09:24:39 #12 №473109 
>>473069
>обобщений
Это ты про generics? Чувак, эту тему триста пятьдесят раз обсуждали, это далеко не в приоритете.

>>473100
Будто что-то плохое!
sageАноним 04/05/15 Пнд 09:30:45 #13 №473113 
>>473014
Ходят слухи, что инженеры в гугле просто заебались ждать компиляции своих приложений и написали Go
@
Гугол не использует go в своих проектах
Аноним 04/05/15 Пнд 09:33:41 #14 №473114 
>>473109
Я тут фор фан пишу реализацию протокола bittorrent на го. Допилю минимальный функционал (скачивание однофайлового торрента) и выложу на гитхаб. Если получится - сегодня, если нет - на неделе.
Никто не желает присоединиться? Сразу предупреждаю, там дикое говнокодие.
Аноним 04/05/15 Пнд 09:40:16 #15 №473118 
>>473113
Пайк в каком-то интервью говорил, что цель была - создать язык, который даже гуглоиндусы поймут, лол. Хотя, в этом нет ничего плохого, на самом деле. Я гуманитарий, программирующий в качестве хобби, и для меня го оказался отличным выбором.
Аноним 04/05/15 Пнд 09:47:03 #16 №473120 
>>473113
Кстати говоря, используют. Но очень неторопливо. Не забывай, что это новая технология, а у них серьезный бизнес, к которому новая технология просто не может быть готова.

>>473114
Я могу устроить тебе code review и поискать какие-то явные баги, но времени очень мало, чтобы вплотную заниматься. Ты перед тем, как на гитхаб заливать, на всякий случай, прогони еще разок.
Аноним 04/05/15 Пнд 10:22:42 #17 №473129 
>>473120
>Ты перед тем, как на гитхаб заливать, на всякий случай, прогони еще разок.
Окей. Как все сделаю и выложу - отпишусь в этом итт. Надеюсь, он не заглохнет как предыдущие го-треды.
Аноним 04/05/15 Пнд 11:43:34 #18 №473147 
>>473114
Ну и зачем? Есть же десяток библиотек для этого уже.
Аноним 04/05/15 Пнд 11:50:40 #19 №473157 
>>473147
Пожри битого стекла, сука.
Аноним 04/05/15 Пнд 12:55:29 #20 №473189 
>>473109
> это далеко не в приоритете
В этом-то и проблема: убогая система типов, принуждающая писать костыли.
Аноним 04/05/15 Пнд 13:01:12 #21 №473191 
>>473189
Проблема в том, что generics — это хуета, которая убивает compile-time. Я знаю, что Go Team уже давно работает над решением проблемы и поверь, в Go 2 уже будет аналог к generics.

А костыли — да, приходится писать. Хотя я считаю, что проблема надумана.
Аноним 04/05/15 Пнд 13:28:39 #22 №473209 
>>473147
>Ну и зачем?
>фор фан
Аноним 04/05/15 Пнд 15:08:42 #23 №473255 
>>473014
О, таки воскресили тред. Ну лан.

Слышьте, хомяки, а расскажите мне про го-мобайл. Я знаю что пайк пидор не фанат мобилок и говорил что го вообще не под них, но вот уже давно начали пилить поддержку андроида. Давно. Хуле так давно, хуле так долго? Не могут запилить поддержку в собственную платформу? Когда я смогу делать крузисы на го для своего китаефона?

А еще меня бесит шо private/public решается по заглавной букве. hui - private, Hui - public. Это ОЧЕ не удобно.

Но в целом язык понравился.
Аноним 04/05/15 Пнд 15:16:57 #24 №473260 
>>473255
>private/public решается по заглавной букве
>нет шаблонов
Даже в тред не заходил, а уже проиграл. Такая-то параша.
Аноним 04/05/15 Пнд 15:18:44 #25 №473262 
>>473014
> На самом деле, использовать техники императивного программирования (aka C-way) и работать с сырыми данными — охуеннее, чем может показаться на первый взгляд
Аутотренинг
Аноним 04/05/15 Пнд 15:20:25 #26 №473264 
14307420258910.png
>>473255
Кстати доброшу годную книжку по которой сам учил - https://github.com/miekg/gobook

А еще гофер похоже на гопник
Аноним 04/05/15 Пнд 15:28:44 #27 №473268 
>Go решает большинство проблем C

С растом не путаешь?
Аноним 04/05/15 Пнд 15:47:03 #28 №473279 
>>473014
Зачем нужно го, когда есть скала?
Аноним 04/05/15 Пнд 15:50:44 #29 №473282 
>>473191
> пок пок нинужна
Что простите?
Аноним 04/05/15 Пнд 15:56:40 #30 №473289 
Создатели го - это такие долбоебы, которые не поняли принцип кисс.
Аноним 04/05/15 Пнд 16:35:41 #31 №473310 
>>473279
> скала
Это такая тормозная параша под JVM?
Аноним 04/05/15 Пнд 16:38:10 #32 №473314 
>>473279
Чтобы не требовалось 100500 терабайт оперативной памяти.
Аноним 04/05/15 Пнд 18:08:22 #33 №473361 
>>473014
>Q: Что за проблемы решает Go и нахуй он мне всрался?
>A: Go решает большинство проблем C, от которого он изначально отталкивался. Ходят слухи, что инженеры в гугле просто заебались ждать компиляции своих приложений и написали Go, который сам полностью компилируется за 7 секунд. Килл-фичей Go является охуеннейший механизм многозадачности.

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

>Q: ЯННП, так где я стану использовать это твое ебанное весло?
>A: В принципе, Go можно использовать везде, где ты стал бы сегодня использовать С (за исключением разных I/O штуковин вроде драйверов) и на всяком хайлоаде. В аспекте производительности Go обсирает Ruby/Python/Node в качестве бэкенда для веб-приложений.

>С (за исключением разных I/O штуковин вроде драйверов)

> С (за исключением всех случаев применения си)

Кулстори.
Аноним 04/05/15 Пнд 18:25:47 #34 №473370 
>>473361
> убийца жабы
> без женериков
> без обработки исключений
Прохладно.
Аноним 04/05/15 Пнд 18:45:57 #35 №473380 
>>473255
Это не требование, лол. Просто рекоммендация, которая на деле добавляет консистентности.
Аноним 04/05/15 Пнд 18:48:21 #36 №473386 
>>473262
Но ведь ты просто Java-петушок, который пришел в мир программирования в году эдак 2012. Ты не знаешь, какие есть приемущества у императивных языков (вроде Pascal) и не знаешь ничего о недостатках ООП.

Для тебя ООП — это религия, в которую ты свято веришь. Хотя тебя не ебет, что сотни типов (классов/интерфейсов/whatever) превращают любое приложение в абстрактное спагетти, не имеющего ничего общего с логикой.
Аноним 04/05/15 Пнд 18:51:17 #37 №473390 
>>473268
Нет. Rust, впрочем, тоже решает проблемы C/C++.

>>473289
KISS? Лол.

>>473370
Если будет выигрывать по производительности, то ок. И по большей части бенчмарков УЖЕ выигрывает!
sageАноним 04/05/15 Пнд 18:52:14 #38 №473393 
>>473370
> имплаинг в языке аджайльной разработки ентерпраиз-приложений джяватм есть нормальные дженерики
Аноним 04/05/15 Пнд 19:09:53 #39 №473397 
>>473390
Пиздец достижение выиграть по скорости у языка с JITом.


Аноним 04/05/15 Пнд 19:20:23 #40 №473398 
>>473380
http://pastebin.com/7yhgTNWM
Праааавда?

> In Go, a name is exported if it begins with a capital letter.
sageЛамповый Dno тред Аноним 04/05/15 Пнд 20:51:01 #41 №473451 
>>473014
>Go решает большинство проблем C, от которого он изначально отталкивался.
Каких проблем? Типы, структурки и обработка ошибок в го ровно такая же, как и в сишке. Ну разве что "void *" теперь "interface {}".
>Килл-фичей Go является охуеннейший механизм многозадачности.
От переименования тасков-корутин в горутины килерфичей они не стали.
>Бенчмарки показывают, что оба языка идут достаточно плотно.
Ну то есть go - веб скейл, прямо как монга?
>На самом деле, классы — это лишь синтаксический сахар кок кок НИНУЖНО.
Все что есть в го это лишь синтаксический сахар над восемью операторами из брейнфака и int 0x80.
Аноним 04/05/15 Пнд 21:05:24 #42 №473453 
>>473191
> аналог к generics.
это чо костыли для говна за сотню?

ну чо долбаёбы завезли вам эксэпшоны? генерики? как там может ваша сцанина в распределённость?
чо затихли сучары?
судя по багтрекеру го используют либо конченые кретины либо наследственные дибилы.
Аноним 04/05/15 Пнд 21:06:21 #43 №473455 
походу самые опушченцы в зк это годибилы, ешчё никого так дружно не обсцыкали
Аноним 04/05/15 Пнд 21:10:16 #44 №473458 
>>473455
Ruby. В их тред как не зайдешь так сразу ссаниной и говном несет.
Аноним 04/05/15 Пнд 21:12:22 #45 №473460 
>>473458
обгвидок плиз
Аноним 04/05/15 Пнд 21:53:20 #46 №473474 
>>473455
Надо как-то тред с опросом запилить, заодно и узнаем.
Аноним 04/05/15 Пнд 21:57:52 #47 №473475 
>>473453
Смотрите ка, жава-даун на связи.
Без эксершинов уже не представляешь жизни? Пральна, это ж так охуенно когда вместо адекватной обработки ошибки мы делаем throw Error и если не завернуть в трай тогда всё распидарасит.
Дженерики и го? Обсуждалось ещё мамонтами, вполне комфмортно писать и без них, просто нужно подключить мозг и подумать, но явадебилу это не дано.
Что не так с распрелелённостью? И при чем тут язык вообще? Или ты эрлангодрочер с килерфичей ПОООК ИСКАРОПКИ!
А то, что эрлангу надо фермы, там где справиться один сервер это НИВАЖНА!!
>>473455
Просто вы как гомофобы боитесь принять что-то новое. А тем временем Го продолжает свой путь по ИТ миру потихоньку создавая вакансии даже в СНГ.
sageАноним 04/05/15 Пнд 22:05:57 #48 №473477 
>>473475
> НИНУЖНО
Проиграл с оправданий годурачка.
Аноним 04/05/15 Пнд 22:09:58 #49 №473479 
>>473451
мамочка родная ты такой даун)
Аноним 04/05/15 Пнд 22:12:09 #50 №473480 
>>473475
Вот этого слушайте, мужик правильные вещи говорит. Go — это сборная солянка правильных паттернов для системного программирования. Впрочем, как и Rust. Но эти два языка несколько из разных опер.
Аноним 04/05/15 Пнд 22:22:47 #51 №473491 
>>473480
> правильных паттернов для системного программирования
пок пок так нильзя, надо так, потому что гугель умный. да пошел ты нахуй, гугель, сраный язык будет меня еще ограничивать считая за полного дауна.
sageАноним 04/05/15 Пнд 22:25:44 #52 №473498 
>>473475
> вполне комфмортно
Разработчики ссут дурачкам в лицо, а им и комфортно.
Аноним 04/05/15 Пнд 22:25:59 #53 №473499 
>>473491
>считая за полного дауна.
Будто бы он ошибается.
sageАноним 04/05/15 Пнд 22:27:09 #54 №473502 
>>473479
дауны используют го, так что я никак не могу быть дауном))
Аноним 04/05/15 Пнд 22:28:18 #55 №473505 
>>473499
На всех-то свои страхи не проецируй.
Аноним 04/05/15 Пнд 22:29:41 #56 №473506 
>>473475
я нимогу так смеятца пощиди чиловек-аникдот))
каждую ошибачку будеш заварачивать маня?

>вполне комфмортно писать и без них
ты хотел сказать копипастить, а потом проходить и заменять типы)))

>просто нужно подключить мозг
мозг из мастера тащить, лол

>Что не так с распрелелённостью?
иё нету)

> где справиться один сервер это НИВАЖНА!!
мда, кажетца ты долбаёб, а если сервер упадёт?

> правильных паттернов для системного программирования
правильный патер это типа ГЦ))) проиграл с дауна, иди уроки зделай системный програмист





Аноним 04/05/15 Пнд 22:32:49 #57 №473508 
>>473502
Прогуливал уроки логики в восьмом классе?
inb4 логика миня ограничивает нинужна гугель абассал
Аноним 04/05/15 Пнд 22:35:08 #58 №473512 
>>473475
>это ж так охуенно когда вместо адекватной обработки ошибки мы делаем throw Error и если не завернуть в трай тогда всё распидарасит
то ли дело вручную протаскивать все эксепшоны наверх с помощью if err != null { return err; } каждой второй строчкой. вот уж вершина софтваре дизайна. в жабе вон есть чекед эксепшоны, которые надо обязательно либо обработать либо передать наверх через throws YobaException, хорошо о них никто еще не отзывался. да что там, гобляди сами осознали ущербность концепта, сделали свой паник-рековер который строки бросает, прям как в гвидоне 1.5. глядишь скоро сделают класс Exception и дойдут до уровня 2.6!
>вполне комфмортно писать и без них
да, писать везде interface {} а потом делать рантайм-свитч по типам и в каждой ветке один и тот же код - невероятно комфортно. впрочем, что тебе комфортно уже яснопонятно, если для тебя ручная обработка ошибок верх удобства.
>Что не так с распрелелённостью?
что это обычное кооперативное говно, которое переименовали в "горутины", все и обосрались как будто это пиздец какое-то новшество. вам акторы показать, так наверное штаны от счастья обоссыте.
>Или ты эрлангодрочер с килерфичей ПОООК ИСКАРОПКИ!
это гобляди как раз так кукарекают.
>А тем временем Го продолжает свой путь по ИТ миру потихоньку создавая вакансии даже в СНГ.
больше хубр читай, там и не такой бред пишут.
Аноним 04/05/15 Пнд 22:37:38 #59 №473517 
>>473508
что не так с логикой?
(_:даун => _:использует го) => (я:не использую го => я:не даун)
или ты конструктивист ебучий, отрицаешь правило исключенного третьего? соси мой first-order predicate хуй тогда.
Аноним 04/05/15 Пнд 22:39:48 #60 №473521 
>>473506
Ну давай по-порядку. Во-первых, ты хуй. Во-вторых, давай пройдемся по твоему пустому пиздежу:

>ты хотел сказать копипастить, а потом проходить и заменять типы)))
За два года разработки веб-апплета на Go я только пару раз попал в такую передрягу и оба раза из-за своей же глупости в неправильной постройке архитектуры.

>мозг из мастера тащить, лол
Это смешная шутка про то, что некоторые 3rd-party пакеты порой ломаются из-за рукожопости мейнтейнеров?

>иё нету)
Не хочу тебя расстраивать, но distributed системы строят на Go уже не первый год и вроде как неплохо получается!

>мда, кажетца ты долбаёб, а если сервер упадёт?
А он и не говорил, что нужен только один сервер. Товарищ говорил, что там где справляются с задачей десять серверов на Erlang, хватает одного на Go.

>правильный патер это типа ГЦ))) проиграл с дауна, иди уроки зделай системный програмист
GC это достаточно рабочий паттерн, который хорошо cебя показал. Да, это оверхед над malloc'ами из С (которые ты, мой дорогой школопогромист не использовал в своей жизни ни разу, ведь родился в эпоху, когда есть такая вещь, как Node), но за все нужно платить. У Java тоже вот есть сборщик мусора, но ничего, язык живет-процветает.

Советую тебе пойти немного все-таки разобраться в индустрии, набраться опыта хотя бы лет 5-10, а потом возвращаться.
Аноним 04/05/15 Пнд 22:42:21 #61 №473523 
>>473517
Ты сказал, что дауны используют Go, но не сказал что все дауны используют Go. Твое следствие гласит, что ты не можешь быть дауном, ведь не используешь Go. Хочу отметить, что следствие неверно, ведь подкреплено неверным исходным высказыванием. То, что существуют дауны, которые используют Go, вовсе не гарантирует, что Go используют только дауны, а значит, твоя принадлежность к множеству даунов не определена.

Ты обосрался
Аноним 04/05/15 Пнд 22:43:16 #62 №473524 
>>473521
>За два года разработки веб-апплета на Go
коков даун, я за это время на джабе уже 3 проекта зделал.

>Это смешная шутка про то, что некоторые 3rd-party
ага)

>Товарищ говорил, что там где справляются с задачей десять серверов на Erlang, хватает одного на Go.
))))))))))))))))))))))))))))))))))))))))))))))))))))0000000000000000000

>GC это достаточно рабочий паттерн, который хорошо cебя показал.
>паттерн
джаваблядь не палитца

>это оверхед над malloc'ами из С
лол




>У Java тоже вот есть сборщик мусора, но ничего, язык живет-процветает.
ну так джаву же тут никто не записывал в системные языки

>Советую тебе пойти немного все-таки разобраться в индустрии, набраться опыта хотя бы лет 5-10, а потом возвращаться.
прикрати уже животик болит))




Аноним 04/05/15 Пнд 22:43:56 #63 №473525 
14307686362130.png
>>473521
> Товарищ говорил, что там где справляются с задачей десять серверов на Erlang, хватает одного на Go.
Аноним 04/05/15 Пнд 22:45:52 #64 №473528 
>>473521
divan0, ты?
Олсо как и предупреждал тред утонет в срачах и говне, прямо как треды о люмии в свое время в /app. Хотя энто тоже хорошо, значит на язык не пофиг как на D к примеру
sageАноним 04/05/15 Пнд 22:45:52 #65 №473529 
>>473512
> исключения
Джава-макаки не могут в монадическую обработку ошибок, и в понимание различий между ошибками и исключениями также не могут.
> акторы
Каналы появились позднее акторов.
Аноним 04/05/15 Пнд 22:48:20 #66 №473535 
>>473512
>то ли дело вручную протаскивать все эксепшоны наверх с помощью if err != null { return err; } каждой второй строчкой
Этого делать не надо. Хорошо спроектированная архитектура позволяет уменьшить число "протаскиваний" до двух.
>гобляди сами осознали ущербность концепта, сделали свой паник-рековер который строки бросает
Это действительно очень крутой концепт, но даже в доках написано, что использовать его надо только в UNEXPECTED случаех, когда что-то идет YOBA так непонятно, что пиздец. Например, когда ты заведомо даешь какой-то библиотеке неправильные данные. Panic-recover куда лучше справляется с этой проблемой, чем try-catch.
>что это обычное кооперативное говно, которое переименовали в "горутины"
Горутины сами по себе представляют самый удобный способ объявить concurrent задачу, среди всех языков программирования сегодня (особенно, если сравнивать с Java). Но настоящая сила Go проявяется тогда, когда ты начинаешь использовать горутины вместе с каналами и select-ами.
>больше хубр читай, там и не такой бред пишут.
Я тебе так скажу. Я скорее послушаю профильного специалиста с хабра, чем школьника с двача, который не разобравшись толком в сабже, не имея даже пяти лет опыта ни на одном стеке, уже кукарекает в Go-треде, что Go — нинужин :)
Аноним 04/05/15 Пнд 22:48:23 #67 №473536 
>>473529
>Джава-макаки не могут в монадическую обработку ошибок
так ты сегодня у мамки гоблядь или все-таки хаскелист?
>Каналы появились позднее акторов
"каналы" твои это обычные блокирующие очереди. им дохуиллион лет уже.
Аноним 04/05/15 Пнд 22:49:20 #68 №473537 
>>473529
>Джава-макаки не могут в монадическую обработку ошибок
ой сьебал бы уже со своими майби и прочим говном, прочитал рилворлд хрескель и рассажевался
Аноним 04/05/15 Пнд 22:53:04 #69 №473541 
>>473536
>"каналы" твои это обычные блокирующие очереди.
Ты у мамы совсем аутист?
sageАноним 04/05/15 Пнд 22:54:07 #70 №473542 
>>473536
> так ты сегодня у мамки гоблядь или все-таки хаскелист?
В этом треде есть не только ты и гобляди.
> "каналы" твои это обычные блокирующие очереди. им дохуиллион лет уже
А CSP появился в 78, его сочетание с каналами началось с http://en.wikipedia.org/wiki/Newsqueak

Го — хипстеризированный язык из 80-х.
Аноним 04/05/15 Пнд 22:55:48 #71 №473544 
>>473535
>Хорошо спроектированная архитектура позволяет уменьшить число "протаскиваний" до двух.
написать все в три функции и при этом понасоздавать структур с полем "lastError" которое все методы в самом начале проверяют это не хорошо спроектированная архитектура.
>Panic-recover куда лучше справляется с этой проблемой, чем try-catch.
это одно и то же, долбоебина. ну кроме того что panic ограничивает количество типов исключений до ровно одного. а defer это обычный finally.
>Горутины сами по себе представляют самый удобный способ объявить concurrent задачу
клоун, я тебе еще раз говорю, это обычные корутины. смотри, та же хуйня на гвидоне: http://ideone.com/UgvUeT
>Но настоящая сила Go проявяется тогда, когда ты начинаешь использовать горутины вместе с каналами
ого, ебать, каналы! вот это мощь! https://docs.python.org/3/library/asyncio-queue.html
>select-ами
ну нихуя себе, можно ждать на нескольких каналах одновременно! https://docs.python.org/3/library/asyncio-task.html#asyncio.wait
>Я скорее послушаю профильного специалиста с хабра
>специалиста
>с хабра
))))))))))))))))))))))000
Аноним 04/05/15 Пнд 22:59:51 #72 №473550 
>>473541
аутист тут ты. кубик спрятали, перекрасили, показали тебе - а ты и не понял, что это тот же самый. давай глянем на твои "каналы": https://gobyexample.com/channels ну-ка ну-ка... http://ideone.com/z3xjta ебать, то же самое!
Аноним 04/05/15 Пнд 23:00:20 #73 №473553 
ПИЗДУЙ

Как несложно догадаться по топику сегодня мы будем говорить о новом, модном, молодёжном говне языке go. Для начала факты:

1. Я не знаю чем думала копчёная индусская обезьяна которая называла язык "go". Очевидную проблему решили костылями - можно кое-как искать по "golang". Созададим трудности и героически их преодолеем.

2. У многих хороших девелоперов код на го вызывает стойкое отвращение. Меня вот например так тошнило только от перла. Индусня, ЧСХ, довольна. Это, ящетаю, заявка на победу.

3. Язык и все окружающие его либы находятся в статусе преальфа. Ну вот ошибки в стандартных либах класса "тихо игноируем хттп ошибку полученную от сервера", такое.

4. Хипстота на хипстоте и хипстотой погоняет. Ну вот например import "github.com/vlastelin/analpleasures". Да, только мастер, только хардкор. Из этого имеем простое следствие - если кто то достаточно туп что бы использовать это поделие в продакшне, то либы он будет импортить именно так. Это, очевидно, приводит к народным хипсторским забавам вида "8 часов судорожно ищем как именно был собран предыдущий билд который вроде как работал".

А теперь плохие новости - это вот говно было сделано гугелем что бы его тупая индусня высококвалифицированные сотрудники могли писать хоть какой то код в современных реалиях (ну - 100500 ядер на процессоре, всё вот это). Такой вот новый петон. Следовательно это говно будет расползаться везде и избежать встречи с ним вы не сможете.

Ну вот как то так.

http://theiced.livejournal.com/274714.html
sageАноним 04/05/15 Пнд 23:00:50 #74 №473556 
>>473544
Болезненный, объясни зачем ты кидаешь ссылки на батарейки питона и пытаешься доказать, что всё это было в жава и даже Алах?
Го != новые фичи
Го это удобная сборка из лучших практик из разных языков которок собрано вместе о оптимизировано для удобной работы тоже вместе.
Как говорится: тебе шашечки или ехать?
sageАноним 04/05/15 Пнд 23:01:24 #75 №473557 
>>473544
Ты бы мог постараться чуть лучше и вспомнить про http://www.stackless.com/
Аноним 04/05/15 Пнд 23:02:28 #76 №473558 
>>473550
>ебать, то же самое!
Дык то только для io. GIL и вся его жопа останется, не?

//мимо проходил
Аноним 04/05/15 Пнд 23:04:19 #77 №473559 
>>473556
>пытаешься доказать, что всё это было в жава
не поверишь, я тут не один.
>Го это удобная сборка из лучших практик из разных языков
>лучших практик
>обработка ошибок и система типов как в си
>иксепшоны как в гвидоне 1.5
ясно.
>>473557
и чем это лучше? вспомнил модную ссылку с хубра?
Аноним 04/05/15 Пнд 23:04:56 #78 №473560 
>>473558
не хочешь gil ставь pypy, в нем stm уже сделали.
Аноним 04/05/15 Пнд 23:08:32 #79 №473568 
>>473556
>Го это удобная сборка из лучших практик из разных языков
проиграл на всю вселенную
Аноним 04/05/15 Пнд 23:11:55 #80 №473574 
>>473553
>1. Я не знаю чем думала копчёная индусская обезьяна которая называла язык "go". Очевидную проблему решили костылями - можно кое-как искать по "golang". Созададим трудности и героически их преодолеем.
Пиздец, это конечно же фундаментальная ахилесова пята языка. Problem #1. Ужас!
>2. У многих хороших девелоперов код на го вызывает стойкое отвращение. Меня вот например так тошнило только от перла. Индусня, ЧСХ, довольна. Это, ящетаю, заявка на победу.
На заметку, "кококо ооп паттерны кококо архитектуры жаба жаба" это не хорошие девелоперы. Хорошие девелоперы с достойным стажем уважают императивные языки и видят их приемущества. Код на Go максимально минималистичен, построен вокруг логики и pure data.
>3. Язык и все окружающие его либы находятся в статусе преальфа. Ну вот ошибки в стандартных либах класса "тихо игноируем хттп ошибку полученную от сервера", такое.
Обвиняет технологию, которой на тот момент было три-четыре года в том, что стандартная библиотека содержит баги. Просто смешно. Джава первые десять лет вообще была падающим ежеминутно куском говна.
>4. Хипстота на хипстоте и хипстотой погоняет. Ну вот например import "github.com/vlastelin/analpleasures". Да, только мастер, только хардкор.
Мужик не слышал про то, что fetch'ить пакеты можно по тегам релизов ;)
>А теперь плохие новости - это вот говно было сделано гугелем что бы его тупая индусня высококвалифицированные сотрудники могли писать хоть какой то код в современных реалиях
Ну или чтобы строить производительные бэкенд-приложения с прозрачной логикой и нереально высокой скоростью компиляции.
Аноним 04/05/15 Пнд 23:25:50 #81 №473593 
14307711504430.jpg
Такс такс такс, что тут у нас.
Ахаха, да это же святой воен %НУЖНЫЙ_ЯЗЫК%. Ну наканецта.
Он вам втирает свою правду, ебучий софист. Кто ведется на это - ебучий дважды.
Правда, как известно давно, у каждого своя. Кукарекать на всю деревню, рвать на себе майку и доказывать, что его правда самая праведная - черта типичного анального раба какого-то языка.
Э, а ты любишь фастфуды? Какие-нибудь макдаки? Уверен, что любишь. Такие, как ты, все любят. Но почему же ты не кричишь на весь мир, что в еде сего производства очень много холестерина и мы все сдохнем раньше времени, если будем жрать это говно? Наверное не удобная тема, потому что ты уже заведомо знаешь, что всем похуй. На тебя и на холестерин. Все будут жрать, пока ты делаешь свои пок-пок. Поэтому ты сливаешься с ними, ты не можешь спорить и отстаивать свою точку зрения.
А тут ты пытаешься донести свои доводы. Нашел минус - вбросил. А другие смотрят на тебя и думают, мол, иксперт. Хуйня это все, я тебе скажу. Всем похуй на то, что ты тут написал. Всем похуй на то, что я сейчас пишу.
Если мы выбираем идеальный язык, то почему все пишут на чем-то ином, нежели на Tcl? Он идеален, здесь спору быть не может, но большинство пишет на бидоне, рубане и прочем.
Окстись, быдло прыщавое, Go - язык достойный. Чего достоин ты? По-моему ты софист обыкновенный. Пишешь какую-то абстрактную херню, заставляешь верить. Оставь свои приемчики для своих одноклассников, тут сидят многоуважаемые сеньеры и сеньериты.
Аноним 04/05/15 Пнд 23:31:05 #82 №473599 
>>473593
Э, на макдак не гони. Он многих программистов работой и едой обеспечил.
Аноним OP 04/05/15 Пнд 23:36:05 #83 №473604 
14307717651090.jpg
Я кажется понял, что происходит итт. В тред набежали жаба-питухи, которые не способны видеть императивный код, ввиду того, что не могут прожить без цепочки в двадцать восемь интерфейсов и двумя строчками логики приложения. Императивщину эти ребята не понимают, ну и хуй с ним!

Потом какой-то пацан начал доказывать нам, господам, что рутины/каналы были задолго до Go и вообще нам впаривают хуету. Пацана не волнует, что Go это первый язык, в котором это реализовано, как часть непосредственно синтаксиса, а не костыль вроде разношерстных ранлупов и моего любимого JThread.

Еще веселят питухи, которые не могут отличить unexpected ошибку (паника) от ожидаемой ошибки (которую вовсе не обязательно передавать вверх по стеку, а можно просто грамотно обработать in place).

Короче говоря, /pr/ во всей красе. С пеной во рту доказывать, что $langname лучше, чем Go, потому что в нем это реализуется проще или с костылем вроде класса для поддержки потока ;)
sageАноним 04/05/15 Пнд 23:42:41 #84 №473609 
>>473604
> Go это первый язык, в котором это реализовано, как часть непосредственно синтаксиса
Маня, пожалуйста.
http://en.wikipedia.org/wiki/Newsqueak
http://en.wikipedia.org/wiki/Limbo_%28programming_language%29
Аноним 04/05/15 Пнд 23:45:05 #85 №473613 
>>473609
Оба от тех же авторов что и Го.
Аноним 04/05/15 Пнд 23:46:35 #86 №473614 
>>473609
И тут ты окончательно обосрался
sageАноним 04/05/15 Пнд 23:51:45 #87 №473616 
>>473613
Да, и? От этого Go не становится ни первым языком с подобной семантикой, как и не становится языком с нормальной системой типов.

>>473614
Обосрался здесь только ты, маня.
Аноним 04/05/15 Пнд 23:57:35 #88 №473621 
>>473609
Ну прости, дорогуша, неправильно высказался. Первый язык, который кого-то ебет, кроме его создателей и пары их друзей.
Аноним 04/05/15 Пнд 23:59:47 #89 №473624 
>>473310
В каком месте жвм тормозная?
Аноним 05/05/15 Втр 00:01:48 #90 №473627 
>>473386
> Но ведь ты просто Java-петушок, который пришел в мир программирования в году эдак 2012. Ты не знаешь, какие есть приемущества у императивных языков (вроде Pascal) и не знаешь ничего о недостатках ООП.
Какие же есть преимущества у императивного говна из 70-ых?

> Для тебя ООП — это религия, в которую ты свято веришь. Хотя тебя не ебет, что сотни типов (классов/интерфейсов/whatever) превращают любое приложение в абстрактное спагетти, не имеющего ничего общего с логикой.
Тогда давай делать всё на ассемблере, абстракции не нужны.
Аноним 05/05/15 Втр 00:08:34 #91 №473630 
>>473604
> Императивщину эти ребята не понимают, ну и хуй с ним!
ты ешчё не родился когда я уже на фортране хуярил

>Пацана не волнует, что Go это первый язык, в котором это реализовано, как часть непосредственно синтаксиса, а не костыль вроде разношерстных ранлупов и моего любимого JThread.
сначала годаун пишет что это в эрланге встроено и часть языка и поэтому хуёва, тут пишет про го, и это круто. совпадение? не думаю. ты мудак за ноль тебе уже 10 примеров где показано суть горотутин лол.
тут ты ещё можеш расписать как работает планировшчик в го, и как это будет мапитца на реальные треды, так же не забудь добавить про работу с сетью, сериализации и вот это всё-всё-всё.

>Еще веселят питухи, которые не могут отличить unexpected ошибку (паника) от ожидаемой ошибки (которую вовсе не обязательно передавать вверх по стеку, а можно просто грамотно обработать in place).
ну и как ты её обработаешь, а мудачёк? пробросишь вверх? вернёшь -1? что там за костыль давай уже реальный код, от тебя только кукареканья пока слышны.

> С пеной во рту доказывать, что $langname лучше, чем Go,
сейчас реально не осталось промышленных языков которые хуже го. го это языковое дно.
Аноним 05/05/15 Втр 00:12:23 #92 №473634 
>>473630
> сейчас реально не осталось промышленных языков которые хуже го
PHP, javascript.
Аноним OP 05/05/15 Втр 00:14:02 #93 №473635 
>>473630
>ты ешчё не родился когда я уже на фортране хуярил
CAUTION! Oldfag in the thread!
>ты ещё можеш расписать как работает планировшчик в го, и как это будет мапитца на реальные треды
могу!
>пробросишь вверх? вернёшь -1?
Нет, я просто выстраиваю приложения так, что если где-то и ожидается ашипка, то она тут же отрабатывается и не приводит к завершению работы программы.
>го это языковое дно
Точно ниже Go лежат такие языки, как JavaScript, Ruby, PHP и мой любимый D :3
Аноним 05/05/15 Втр 00:16:33 #94 №473638 
>>473635
>могу!
ну так давай хуле ты

>Нет, я просто выстраиваю приложения так, что если где-то и ожидается ашипка, то она тут же отрабатывается и не приводит к завершению работы программы.
код давай полуёбок

>Точно ниже Go лежат такие языки, как JavaScript, Ruby, PHP и мой любимый D :3
ага, в твоём манямирке.
Аноним 05/05/15 Втр 00:19:53 #95 №473642 
>>473635
> я просто передаю вверх по стеку -1 как в сишке, рожая тонны ненужного кода или обсираясь, забыв освободить ресурсы
Починил.
> мой любимый D
Вот грусть-то, в D непопердолить как даун по два года над одной хуйней, ведь там есть обработка исключений. А еще он работает слишком в 1.5 раза быстрее.
Аноним 05/05/15 Втр 00:22:24 #96 №473644 
>>473638
Давай завтра, я уже спать потопал.
>>473642
>> я просто передаю вверх по стеку -1 как в сишке, рожая тонны ненужного кода или обсираясь, забыв освободить ресурсы
У Go есть божественный GC, а defer выполняется даже после паники :)
>2015
>D
>TOP KEK
Аноним 05/05/15 Втр 00:23:01 #97 №473646 
>>473644
слился паскуда
Аноним 05/05/15 Втр 00:30:58 #98 №473652 
>>473644
> божественный GC
> stop-the-world non-generational говнище как и в D
okay.jpg
> defer выполняется даже после паники
Ладно, но -1 то ты все равно пасуешь как даун туда сюда? Код давай, вангую пиздец.
> 2015
> D
> TOP KEK
Что сказать-то хотел, м?
Аноним 05/05/15 Втр 09:06:27 #99 №473741 
>>473512
>что это обычное кооперативное говно, которое переименовали в "горутины"
В обычном говне нет N-M шедулера, даун ебаный.
sageАноним 05/05/15 Втр 09:36:32 #100 №473747 
>>473014
>Язык для системного программирования
>GC

Маня, плииииз
Аноним 05/05/15 Втр 11:33:41 #101 №473787 
>>473741
> N-M шедулера
Пиздец, в го любую элементарную хуйню называют умными словами, чтобы покруче звучало и ньюфаги охуевали? Инновации, блять, в сисярпе tpl уже лет 5 как есть. Я молчу, про то, что ваши уебские channels тормозят как пиздец, в отличие от простейших разворачивающихся в стейт-машину yield в сисярпе, а божественных async/await фьчеров лучше которых пока ничего не придумали так вообще нет и не будет.
Аноним 05/05/15 Втр 14:07:46 #102 №473855 
>>473787
Sooqa, сейчас Go 1.5 выйдет со своим новым охуенным concurrent GC и жаба начнет сосать еще сильнее. Что ты хочешь от языка, которому пять лет? Работает отлично, решения интересные и рабочие, все ок. Тупое ты животное, ну и что, что в С# есть yield? Кстати, пидарок, с какого хуя channels тормозят и кто сказал, что async-фьючеры — это the way to go. Петух, у тебя будут адекватные претензии непосредственно к языку?
sageАноним 05/05/15 Втр 14:10:30 #103 №473859 
>>473855
на самом деле манька просто обосрался со своим сисярпом и жабой, не может смириться с фактом, что в го писать многопоточные приложения проще и стильнее, не обращай на него внимания
Аноним 05/05/15 Втр 14:10:51 #104 №473860 
>>473787
>>473855
Нормально вы тут раскукарекались. Продолжайте, я почитаю.
Аноним 05/05/15 Втр 14:12:01 #105 №473861 
>>473855
>Что ты хочешь от языка, которому пять лет?
На самом деле да, взлет за пять лет от рождения охуенный. Мне кажется никто быстрее не взлетал.
Аноним 05/05/15 Втр 14:13:27 #106 №473863 
>>473861
>node.js
Аноним 05/05/15 Втр 14:15:18 #107 №473865 
>>473863
Не совсем корректно. Нода это платформа, а язык ее оче старый.
sageАноним 05/05/15 Втр 14:15:41 #108 №473866 
>>473863
>implying, что node.js — это успех
>top kek
Понимаешь, нода — это не язык.
Аноним 05/05/15 Втр 14:16:39 #109 №473867 
К тому же нода сама по себе — это обосранный рантайм. Вся моща нодны кроется за V8 и ее предшественником JSC. Поверь, что первый, что тем более, последний, разрабатывались кудаааа дольше пяти лет.
sageАноним 05/05/15 Втр 14:21:35 #110 №473873 
>>473855
> с какого хуя channels тормозят
Потому что они тормозят.
https://groups.google.com/forum/#!topic/golang-nuts/ec9G0MGjn48
> кто сказал, что async-фьючеры — это the way to go.
Потому что их делают даже годауны, только в виде паттернов.
http://www.golangpatterns.info/concurrency/futures
И конечно же, отсутствие женериков не очень-то помогает писать такие костыли.
https://gist.github.com/kachayev/21e7fe149bc5ae0bd878
> выйдет
> будет
> ну и что
> интересные решения
> стильно
> за 5 лет!
Ясно. Если бы это дерьмо не пропихивал гуголь, оно бы умерло в зачаточном состоянии. Хотя погодите, у гугля дохуя дибильных языков и все какие-то мертвые.

Аноним 05/05/15 Втр 14:25:04 #111 №473877 
>>473255
Ответьте мне про андроид, хомяки ебаные, хомячих ваших ебал.
>Когда я смогу делать крузисы на го для своего китаефона?
sageАноним 05/05/15 Втр 14:28:06 #112 №473880 
>>473855
> новым охуенным concurrent GC и жаба начнет сосать еще сильнее.
Мань, ты в курсе сколько даже у обоссанной жабы реализаций GC?

Да и вообще, GC и системное программирование это просто лол. Не дауны используют RC/ARC.

> жаба начнет сосать еще сильнее.
Блять, ну я даже не знаю.
https://github.com/logicchains/LPATHBench/blob/master/writeup.md
Ocaml 2281
Lisp 2430
Java 2681
OracleJava 2717
Scala 2812
Fortran_2003 2839
Julia 2946
CRYSTAL 3408
GCCGo 3542
Go 3599
sageАноним 05/05/15 Втр 14:29:27 #113 №473882 
>>473877
> Когда я смогу делать крузисы на го для своего китаефона?
Никогда, потому что нахуя это гуглю? Он лучше нассыт тебе в ротешник.
Аноним 05/05/15 Втр 14:32:49 #114 №473883 
>>473873
>https://groups.google.com/forum/#!topic/golang-nuts/ec9G0MGjn48
Тебя не смущает, что этому треду уже 4 ебанных года и с тех пор язык вырос в семь раз?
>Потому что их делают даже годауны
Кто-то делает так и что? Мне по этому поводу теперь всраться?
>Если бы это дерьмо не пропихивал гуголь, оно бы умерло в зачаточном состоянии
implying что жабу никто не проталкивал, ой лол
Аноним 05/05/15 Втр 14:35:07 #115 №473884 
>>473880
>дает сылку на сферический бенчмарк в вакууме, который сходится с реальностью чуть менее, чем никак
Блять, ну я даже не знаю.

Ты, мудак, собрался на окамле или лиспе писать? Или может на этом дерме, которое если бы не пропихивал оракл, оно бы умрело еще в зачаточном состоянии?
Аноним 05/05/15 Втр 14:35:58 #116 №473886 
>>473882
>Он лучше нассыт тебе в ротешник
implying что гугл — корпорация зла :DDD
Аноним 05/05/15 Втр 14:39:18 #117 №473889 
>>473886
>implying что нет
Аноним 05/05/15 Втр 14:40:51 #118 №473890 
>>473889
>implying что любая корпорация — зло и нельзя делить их на свои-чужие
>implying что стратегия гугла не в том, чтобы ссать тебе в ротешник, а чтобы делать твою жизнь лучше и впаривать тебе рекламу
sageАноним 05/05/15 Втр 14:42:01 #119 №473892 
>>473883
> язык вырос в семь раз?
На дерьмовом фундаменте ничего нормального вырасти не может. Можно сколько угодно усираться с GC, каналами, interface{}, оно все равно работать не будет. GC исследуют 50 лет и он до сих пор говно. Со скоростью работы js сколько ебутся?

sageАноним 05/05/15 Втр 14:43:55 #120 №473895 
>>473884
Ты по ссылке-то прошел, мудень? Там выше тащемта кресты, раст, д и прочее.

> этом дерме, которое если бы не пропихивал оракл, оно бы умрело еще в зачаточном состоянии?
Кто пропихивает д, м? Тем не менее даже он не такое дерьмище как го и на гитхабе у него всего в 1.5 раза меньше кода.
Аноним 05/05/15 Втр 14:44:03 #121 №473896 
>>473892
>На дерьмовом фундаменте ничего нормального вырасти не может
>JavaScript, 10 days
И теперь оно ВЕЗДЕ.
Аноним 05/05/15 Втр 14:45:58 #122 №473898 
14308263588460.jpg
>>473895
>у D всего в 1.5 раза меньше кода
http://githut.info/
Аноним 05/05/15 Втр 14:46:47 #123 №473900 
>>473895
Да, я переходил по ссылке. Это просто очередной бенчмарк, расслабься.

>Кто пропихивает д, м?
Никто, именно поэтому они нахуй никому не всрались.

>на гитхабе у него всего в 1.5 раза меньше кода
>implying что объем кода хоть как-то отражает качество непосредственно языка :)
sageАноним 05/05/15 Втр 14:47:22 #124 №473901 
>>473898
http://langpop.corger.nl/
sageАноним 05/05/15 Втр 14:50:19 #125 №473902 
>>473901
В 2 раза, тащемта.
sageАноним 05/05/15 Втр 14:53:05 #126 №473903 
>>473900
> просто очередной бенчмарк, расслабься
Маняоправдания, как обычно.
> implying что объем кода хоть как-то отражает качество непосредственно языка :)
Что-то не вижу melbolge в списке.
Аноним 05/05/15 Втр 14:54:35 #127 №473905 
>>473903
Тоесть ты серьезно считаешь, что бенчмарки отражают эффективность языков in-the-wild? И ты настолько ебанутый мальчик-максималист, что твой контр-аргумент — это ебанный Melbolge?
sageАноним 05/05/15 Втр 14:59:39 #128 №473909 
>>473905
>in-the-wild
Давай, в чем отличие твоего модного словечка от нормально составленного бенчмарка? Я слушаю.
>мальчик-максималист
Кто из нас максималист, тот кто считает что на популярность языка влияют в том числе его удобство и скорость работы, или всё-таки даун, которому рекламой проссали уши?
Аноним 05/05/15 Втр 15:19:57 #129 №473917 
>>473909
Ты такого высокого о себе мнения, петушок :)
Аноним 05/05/15 Втр 15:21:11 #130 №473918 
А тред то и правда ламповым получился.
Аноним 05/05/15 Втр 15:25:47 #131 №473921 
14308287472190.jpg
>>473917
смайлофаг слился
Аноним 05/05/15 Втр 19:12:43 #132 №474007 
Хороший тред, есть что почитать. Впрочем, как и говорил в FAQ-треде, у всех жабаобезьян будет бомбить по-полной.
Аноним 05/05/15 Втр 21:59:44 #133 №474114 
>>473921
о, петух снова кукарекает!
Аноним 06/05/15 Срд 18:46:39 #134 №474518 
>>473014
Язык для аутистов, неспособных в абстракции, пиздец, я после C++, Java и Scala что в каменный век попал, где были поклонники этого языка последние 15 лет?
Аноним 06/05/15 Срд 18:51:34 #135 №474521 
>>474518
Писали на паскале.
Аноним 06/05/15 Срд 19:08:29 #136 №474530 
>>474521
О да, это про нас.
мимо студентота которая пишет велосипеды на паскале
Аноним 06/05/15 Срд 19:33:37 #137 №474538 
>>474530
Почитай вот эти книги:
http://www.amazon.com/How-Design-Programs-Introduction-Programming/dp/0262062186
http://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262510871
http://www.amazon.com/Design-Patterns-Object-Oriented-Professional-Computing/dp/0201634988

И тебе резко захочется обоссать ебальник всех калек, восхваляющих Go.
sageАноним 06/05/15 Срд 20:07:46 #138 №474550 
>>474538
Очередной питух, который думает, что ООП — панацея и единственно верный путь писать софт. Ну-ну...
sageАноним 06/05/15 Срд 20:11:58 #139 №474552 
>>474518
Ты чтобы написать этот комментарий уже успел создать новый класс и парочку public static void методов?
Аноним 06/05/15 Срд 20:47:51 #140 №474570 
>>474550
Есть АОП, функциональное программирование, метапрограммирование, DSL и прочие абстракции, разработанные за последние 40 лет развития CS, которые позволяют решать задачи, а не ебаться с байтиками.

Первые 2 книги не про ООП, клоун.

>>474552
Я умею использовать инструменты по назначению.
Аноним 06/05/15 Срд 20:51:17 #141 №474573 
14309346774800.png
вкотился и обосцал всех годаунов, которые кукарекают на ооп, и они такие типа тру-императившчики, лел. тру императившчина это фортран, где пацаны живут гоуту и глобальным стэйтом, а не где есть структурочки, которые первый шаг к ооп, а то что там нету класов\объектов говорит лишь о том что создатели языка дауны)))) как и те кто его использует.
могу вам это в лицо сказать полуёбы)
Аноним 06/05/15 Срд 20:52:58 #142 №474575 
>>474573
Это Пайк штоле? Хрена он постарел.
Аноним 07/05/15 Чтв 00:37:06 #143 №474700 
>>474575
Молод и полон сил! Господин Пайк... великий человек. Создатель богоподобного Go.. подумать только!
Аноним 07/05/15 Чтв 00:46:20 #144 №474705 
14309487803950.jpg
>>474700
А ещё маскот го - это его портрет.
Аноним 07/05/15 Чтв 01:09:45 #145 №474709 
>>473268
rust решает проблемы c++
Аноним 07/05/15 Чтв 08:50:07 #146 №474765 
>>474573
http://habrahabr.ru/post/243593/
Шо ж вы такие тупые
Аноним 07/05/15 Чтв 10:16:18 #147 №474784 
>>474765
Это структуры с функциями, которые были в том же Си с незапамятных времен, и никоим образом это дело к ООП отношения не имеет, как бы не маневрировали на эту тему отдельные одаренные личности.
Аноним 07/05/15 Чтв 14:27:14 #148 №474932 
>>474784
> и никоим образом это дело к ООП отношения не имеет
Как и вещи вроде Java или C++:
> Actually I made up the term "object-oriented", and I can tell you I did not have C++ in mind.

В любом случае, ООП всё равно мёртв: http://loup-vaillant.fr/articles/deaths-of-oop
Аноним 07/05/15 Чтв 16:01:37 #149 №474971 
>>474932
Ну, раз какой-то маня высрал статейку мол ООП мертво, то так оно и есть.
Могу тебе скинуть недавнюю новость о том, что интернет умрёт через 8 лет, она кстати авторитетнее, потому что от имени универа крупного.
Аноним 07/05/15 Чтв 16:02:53 #150 №474973 
>>474971
Вполне возможно кстати, все в ойтупи!
Аноним 07/05/15 Чтв 16:49:26 #151 №474991 
>>474932
>I can tell you I did not have C++ in mind
Ага, потому что он имел в виду Smalltalk, что не делает C++ / Java / Scala менее ООП: у нас есть объекты, которые описываются классами, хранящие свое состояние и взаимодействующие с другими объектами при помощи "сообщений" - методов.

ООП не умирает, а видоизменяется, именно этот процесс описывается по твоей ссылке.
Аноним 07/05/15 Чтв 16:57:47 #152 №474998 
>>474765
> Или вот еще — когда для каких-то особых случаев людям советуют использовать reflect или interface{} с кастингом — они начинают рассказывать про «это медленно» и вообще, мы > хоть это за zero costs получить. Блин, конечно медленно — а в в других языках, generics, думаете бесплатно получается?

Топкек, и это - язык системного программирования? Криво, так давайте еще и медленно, лел.
Аноним 07/05/15 Чтв 17:07:13 #153 №475000 
>>474991
> ООП не умирает, а видоизменяется
Причём настолько, что само понятие ООП теряет какой-либо смысл, ага.
Аноним 07/05/15 Чтв 17:11:51 #154 №475005 
>>475000
Само понятие ООП описано мной в сообщении, на которое ты ответил, клоун.
Аноним 07/05/15 Чтв 17:18:11 #155 №475010 
>>475000
Я не знаю в каком манямирке живешь ты и автор той статьи, но на этом вашем наследовании, не пытаясь совать его туда, где надо использовать композицию, построены просто охуительные тонны хорошо задизайненного простого и понятного кода. В вашей говей гоебле с рефлект и интерфасе я честно говоря не разбирался, потому что ее тупо читать невозможно, но ко-ко-ко классы-наследование-полиморфизм умирло это пиздец тупо.
Аноним 07/05/15 Чтв 17:20:06 #156 №475014 
>>475005
Ну давай разберём тобой написанное:
> у нас есть объекты данные, которые описываются классамитипами, хранящие свое состояние и взаимодействующие с другими объектамиданными при помощи "сообщений" - методоввызовов функций.
Да, фортран это ОО-язык.
Аноним 07/05/15 Чтв 17:34:39 #157 №475024 
>>475014
Нет, лол, ты не понимаешь ООП совсем.
Аноним 07/05/15 Чтв 17:45:04 #158 №475031 
>>475024
Ну разъясни тогда суть ООП.
inb4: умершая передача сообщений и умирающий полиморфизм подтипов
Аноним 07/05/15 Чтв 17:47:09 #159 №475032 
>>475031
>объекты, которые описываются классами, хранящие свое состояние и взаимодействующие с другими объектами при помощи "сообщений" - методов
Что тебе непонятно здесь?
ОП 07/05/15 Чтв 17:53:07 #160 №475038 
Я мимо проходил и хочу сказать только 2 вещи:

— на практике модель из Ява/си++ оказалась очень практичной и позволила решить проблемы роста сложности кода
— абстракция «объекты посылают сообщения» на практике не нужна (сообщения нужны там где есть асинхронность или параллельности. Блокирующий однопоточный вызов метода это пародия на передачу сообщения)
— набор типов + функций для работы с ними это не ООП и приведет к тем проблемам с которыми ООП борется: превращение кода в кашу из кучи функций. разработчики Го хотят казаться модными и оригинальными но они делают шаг назад, а не вперед. Аналогично кстати мне не нравится отказ от исключений в расте так как он просто возвращает нам назад проблемы которые побеждаются исключениями и которые мы видели в 80-х.



Аноним 07/05/15 Чтв 17:53:20 #161 №475039 
>>475032
Чем объекты отличаются от прочих данных? подсказка: ничем
Чем классы отличаются от типов? ничем
Чем методы отличаются от функций? ничсинтаксисом
Аноним 07/05/15 Чтв 17:56:23 #162 №475042 
>>475038

Кто не верит мне, посмотрите на яваскрипт. Хипстеры из 90-х тоже не любили ООП из явы, решили проявить оригинальность и отказаться от классов. Как итог, мы умеем почти в каждой библиотеке или фреймворке имитацию классов и их же имеем в ES6. Это же надо быть такими упоротыми хейтерами ООП.
Аноним 07/05/15 Чтв 17:58:22 #163 №475045 
>>475039

Объект объединяет (инкапусулирует) данные и методы для работы с ними.

> Чем классы отличаются от типов?
Класс это более солидная вещь чем обычный тип языка вроде Си так как там ест методы, интерфейсы, наследование и тд, а у типа нету. Тип это просто «гпупая» структура с данными.

> Чем методы отличаются от функций?
Тем что вызываются на объекте очевидно.

Вообще ответить можно было короче: инкапсуляция, полиморфизм, наследование.
Аноним 07/05/15 Чтв 17:59:42 #164 №475049 
>>475039

Ну и это вопрос уровня студента первого курса, чем ООП отличается от не-ООП. Как я написал выше, это 3 ключевых слова.
Аноним 07/05/15 Чтв 18:03:32 #165 №475050 
Питушки, друзья-двачеры, такое дело. Вы заблуждаетесь, в Go есть самое настоящее ООП. Просто ООП, которое используется в Go несколько более гибкое, чем привычная для С++ хуита с vtable и тонны классов. Для джаводауна может и привычно делать для элементарной логики (10 строчек кода) два-три класса, но это превращает код в посмешище...
Аноним 07/05/15 Чтв 18:07:31 #166 №475051 
>>475045
> Объект объединяет (инкапусулирует) данные и методы для работы с ними.
Это вопрос синтаксиса, а не принципиальных отличий. Можно инкапсулировать на уровне класса, можно — на уровне неймспейса или модуля.
> Класс это более солидная вещь чем обычный тип языка вроде Си так как там ест методы, интерфейсы интерфейсы
Можно обобщить для любого типа.
> наследование
Наконец-то что-то по существу! Но
> inb4: умирающий полиморфизм подтипов
> Тем что вызываются на объекте очевидно.
Опять же, чисто синтаксическое различие. Единственное «но» — таблица виртуальных методов, которая встречается в двух случаях: при полиморфизме подтипов (который, опять же, умирает), или у интерфейсов или типажей (которые применимы к любому типу).
Аноним 07/05/15 Чтв 18:10:43 #167 №475054 
>>475050
> несколько более гибкое
Обосрался просто. Гибкое, блять.
Вот тут вся суть годрисни на одной странице что-то мне это напоминает, ммм даже не знаю
http://blog.denevell.org/golang-interface-type-assertions-switch.html
Аноним 07/05/15 Чтв 18:12:33 #168 №475055 
>>475039
Объект - сложный тип данных, позволяющий абстрагироваться от байтиков и работать с состоянием.

Классы описывают как состояния, которые в которых может находиться объект, так и его поведение.

Методы характеризуют поведение объекта, в ООП коде у тебя взаимодействуют между собой при помощи сообщений абстракции, а в твоем процедурном непотребстве просто отрабатывают функции.
Аноним 07/05/15 Чтв 18:15:19 #169 №475058 
> What kind of language idiomatically involves casting to the top type? That would be like if Java idiomatically involved casting to Object, or C++ idiomatically involved casting to void*, just to get any sort of genericism. Look at almost any big Go project; the abundance of {}interface typed variables is alarming

Оно еще и небось в рантайме падает, если низя кастануть интерфейс в то, что надо. Охуительная система типов, просто охуительная.
Аноним 07/05/15 Чтв 18:18:35 #170 №475059 
>>475054
> что-то мне это напоминает, ммм даже не знаю
Отсутствие генериков это напоминает. Ну и класс Object.
Аноним 07/05/15 Чтв 18:19:52 #171 №475060 
>>475059
Отсутствие полиморфизма это напоминает.
Аноним 07/05/15 Чтв 18:20:03 #172 №475061 
>>475051

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

> Можно инкапсулировать на уровне класса, можно — на уровне неймспейса или модуля.
Можно но это будет уже другое. Модули дают инкапсуляцию, но без наследования или полиморфизма как я понимаю.

>> Класс это более солидная вещь чем обычный тип языка вроде Си так как там ест методы, интерфейсы интерфейсы
> Можно обобщить для любого типа.
Не понял. У типов в Си нет того же, что есть у классов в Яве значит это разные вещи.

> таблица виртуальных методов
Ты скатываешься к деталям реализации, это не важно как оно реализовано внутри.

> или у интерфейсов
У интерфейсов нет виртуальных методов, как я понимаю, они нужны только на этапе компиляции для проверки правильности кода.

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

> умирающий полиморфизм подтипов
у нас есть еще полиморфизм на интерфейсах и по моему вместе с подтипами они покрывают все встречающиеся на практике ситуации. По крайней мере по моим ощущениям.
Аноним 07/05/15 Чтв 18:22:51 #173 №475062 
>>475055

состояние это все же лишняя асбтракция. Вот допустим у тебя внутри одного класса есть объект другого класса:

class A {
int a1 = 0;
public B;
}

Поля класса B это часть состояния класса A или нет? А если один объект класса B входит в несколько разных объектов класса A то это что? разделяемое состояние?

Мне кажется эти состояние/поведение это лишняя абстракция не добавляющая ценности и лучше просто говорить поля/методы.

Аноним 07/05/15 Чтв 18:24:36 #174 №475063 
>>475058

Как я понимаю кастование к void/Object нужно в языках где нет генериков и нельзя написать например Collection<SomeClass>. Там где можно кастовать к Object нет необходимости и все проверяется при компиляции. Поправьте кто лучше меня знает.
Аноним 07/05/15 Чтв 18:28:16 #175 №475065 
>>475054

Вообще эта утиная типизация с проверкой на имена полей/функций мне не нравится. То что в каком-то объекте есть поля например a и b (пусть даже подходящего типа) еще не значит что он подходит этой функции. Интерфейсы из Java все же содержат в себе больше смысловой нагрузки. Ну и плюс в Яве мы можем делать интерфейсы без методов просто для обозначения какой-то способности/характеристики.
Аноним 07/05/15 Чтв 18:31:42 #176 №475068 
>>475062
Состояние - совокупность признаков (полей) объекта, не лишняя.

>то это что?
Это когда тебе исламисты отрубят голову, то без сына останется мама и без сына останется папа, состояния у них такие будут.

>кажется
Перекрестись.
Аноним 07/05/15 Чтв 18:34:48 #177 №475069 
>>475061
> Модули дают инкапсуляцию, но без наследования или полиморфизма как я понимаю.
Есть несколько типов наследования: специальный полиморфизм (интерфейсы, типажи, примеси, etc), полиморфизм подтипов aka наследование, и параметрический полиморфизм aka дженерики. Из них только полиморфизм подтипов завязан на классы.
> Не понял. У типов в Си нет того же, что есть у классов в Яве значит это разные вещи.
Забавный факт: есть языки кроме С или джавы. Например, в расте типажи можно реализовывать для любого типа, аналогично с классами типов в хаскеле.
> Ты скатываешься к деталям реализации, это не важно как оно реализовано внутри.
Вообще-то, это довольно важная деталь реализации
> У интерфейсов нет виртуальных методов, как я понимаю, они нужны только на этапе компиляции для проверки правильности кода.
Есть. Без параметризации компилятор не знает, какой именно тип скрывается за интерфейсом, и для динамической диспетчеризации используется таблица виртуальных методов. В расте это сделано несколько более явным: http://huonw.github.io/blog/2015/01/peeking-inside-trait-objects/
> у нас есть еще полиморфизм на интерфейсах и по моему вместе с подтипами они покрывают все встречающиеся на практике ситуации
Есть тенденция использовать типажи/примеси вместо наследования. А «ООП без наследования» по своей сути ничем не отличается от «не-ООП» с развитой системой типов.
Аноним 07/05/15 Чтв 18:37:59 #178 №475071 
Вообще что спорить об абстрактных вещах? у меня тут под рукой есть пример веб-приложения на Go, работающего с базой данных, по меркам веб-приложений оно крошечное, но как пример мне кажется подойдет:

https://github.com/kabukky/journey
сурс https://news.ycombinator.com/item?id=9439041

На нем как раз можно увидеть что получается когда мы берем го и пишем приложение.

По моим ощущения выглядит как обычная процедурщина. Я не вижу там никакой инкапсуляции.

Вот пример показывающий как код загрязняется ифами при остутствии исключений: https://github.com/kabukky/journey/blob/master/database/deletion.go
Аноним 07/05/15 Чтв 18:41:20 #179 №475078 
>>475071
Я последний раз if в своем коде лет 5 назад видел. И эти люди кукарекают про гибкость с элегантностью, тьфу, варвары.
Аноним 07/05/15 Чтв 18:42:03 #180 №475079 
>>475071
> код загрязняется ифами
А с исключениями код загрязняется try/catch. Единственный профит исключений это более чистые сигнатуры функций.
Аноним 07/05/15 Чтв 18:47:45 #181 №475082 
>>475071
>загрязняется ифами
А по-моему, наоборот, лучше, чем гадать где поймал-непоймал и оборачивать вызовы в try-catch. Panic-defer-recovery так вообще гениальный концепт, но это мое мнение.
Аноним 07/05/15 Чтв 18:49:24 #182 №475083 
>>475071
> Я не вижу там никакой инкапсуляции.
Забавный код. Приватные функции — вижу. Приватные поля в структурах — не вижу.
> Вот пример показывающий как код загрязняется ифами при остутствии исключений
Ну так макросы не завезли, развитую систему типов — тоже. Вот и пердолятся с if'ами.

>>475079
> Единственный профит исключений это более чистые сигнатуры функций.
Это не преимущество, а недостаток. Возвращаемый тип как раз и должен показывать, может ли функция вернуть ошибку или нет.
Аноним 07/05/15 Чтв 18:52:42 #183 №475085 
>>475083
>Возвращаемый тип как раз и должен показывать, может ли функция вернуть ошибку или нет.
Возвращаемый тип должен показывать возвращаемое значение, а про ошибки - это throws (ну либо на месте лови).
Аноним 07/05/15 Чтв 18:53:21 #184 №475086 
>>475069

> Есть несколько типов наследования:
Полиморфизма может?

> Из них только полиморфизм подтипов завязан на классы.
Интерфейсы по моему тоже. Класс может реализовывать интерфейс, а обычный глупый тип в Си не может.

> Забавный факт: есть языки кроме С или джавы.
Да, но в других языках может не быть еще чего-то. Например в хаскелле нет возможности менять значения переменных и писать императивный код, потому просто так взять и использовать его замечательную (хотя и малопонятную мне) систему типов для написания приложения не получится.

Ну если тип может содержать методы, реализовывать интерфейсы, может правильнее начать уже называть его классом?

Я привел эти языки как наиболее известные и понятные и только для иллюстрации.

> Вообще-то, это довольно важная деталь реализации
Нет, не важная. Важно что мы можем переопределить метод в наследнике, а как это реализовано ниже не имеет значения, лишь бы соблюдались все нужные гарантии. Например компилятор может обойтись и без виртуальной таблицы методов если удастся выоптимизировать полиморфный вызов на этапе компиляции или JIT.

> Без параметризации компилятор не знает, какой именно тип скрывается за интерфейсом,
Мы по моему о разных вещах говорим. Я имею в виду Ява-интерфейсы которые представляют собой просто набор требований к классу. Все что нужно для их проверки в рантайме это знать какого класса у тебя объект и какие интерфейсы этот класс реализует. Для проверки на этапе компиляции достаточно сравнить список методов в классе и интерфейсе.

> какой именно тип скрывается за интерфейсом,
За ява-интерфейсом ничего не скрывается, это просто набор требований к классу.

Трейты в расте хоть и похожи на интерфейсы в Яве, но как минимум одно различие видно сразу. В Яве класс явно говорит какие интерфейсы он реализует:

class A implements Bable, Cable, Dable

В расте это неизвестно, не знаю, хорошо это или плохо.

> Есть тенденция использовать типажи/примеси вместо наследования.
Тебе лучше бы приводить примеры языков. Я не очень понимаю как можно примесь использовать вместо наследования. Вот допустим мы наследуем Танк от ТранспортногоСредства. Это логично и понятно. Как ты это заменишь примесью и какая от этого выгода?
Аноним 07/05/15 Чтв 18:58:17 #185 №475088 
>>475079

Я даже не знаю, не дать ли тебе урок по исключениям из php треда где это объясняется. try/catch как раз избавляются от загрязнения.

Без исключений, допустим у нас есть дерево вызовов в приложении:

обработатьHTTPЗапрос
показатьСтраницуБлога
получитьПостыСГлавной
прочитатьПостыИзБазы
прочитатьБайтыИзСокета

каждый вызов мы оборачиваем в ифы. С исключениями мы делаем так:

try {
ответ = обработатьHTTPЗапрос;
} catch (e) {
ответ = сгенерироватьСтраницуОшибки
}

послать ответ;

У нас один try/catch на все приложение вместо кучи ифов (потому что исключения это исключительные ситуации и обычно их не происходит потому и куча try не нужна). Если ты так не любишь исключения разберись для начала что это такое, а потом спорь.
Аноним 07/05/15 Чтв 19:08:23 #186 №475092 
Еще мысль. Исключения нужны для обработки с минимумом строчек кода исключительных ситуаций вроде сетевых ошибок, таймаутов, ошибок файловой системы, неправильно переданных параметров (из-за неправильно написанного кода). Хипстеры думают что если убрать из языка исключения то исключительные ситуации перестанут происходить или их можно будет не обрабатывать?

Это же не хаскелл-функция вычисления чисел Фибоначчи, а реальное приложение без проверки корректности на этапе компиляции, работающее на реальном железе и написанное реальными программистами.

>>475083

> Ну так макросы не завезли, развитую систему типов — тоже. Вот и пердолятся с if'ами.

Я видел в расте try!() иначе чем ugly as a fuck это не воспринимается.
Аноним 07/05/15 Чтв 19:10:22 #187 №475093 
>>475088
>потому что исключения это исключительные ситуации и обычно их не происходит потому и куча try не нужна
В Go это понимают и именно поэтому, вместо исключений, сделали божественные panic-recover. Является ли ошибка при парсинге пользовательской строки чем-то "исключительным"? Я не думаю. И именно поэтому там используется "scope-based error checking", которые позволяют решать проблемы по мере их поступления и на месте.

Еще одно ошибочное заблуждение состоит в том, что новички убеждены в том, что error в Go — это строка. На самом деле, это не так.
Аноним 07/05/15 Чтв 19:14:15 #188 №475096 
>>475093

panic/recover это то же самое что try/catch? Если да то название странное. Не выкидывать исключения и возвращать ошибку можно и в Яве.

> новички убеждены в том, что error в Go — это строка. На самом деле, это не так.
Я чувствую скоро разработчики Go узнают что бывают классы исключений и можно фильтровать их в catch.

> И именно поэтому там используется "scope-based error checking", которые позволяют решать проблемы по мере их поступления и на месте.
http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=go+scope+based+error+checking

Гугл ничего не выдает по этим словам кроме каких-то жутких примеров из майкрософта.
Аноним 07/05/15 Чтв 19:22:09 #189 №475102 
>>475096
>panic/recover это то же самое что try/catch?
Нет, throw, например, в Java, экстренно обрывает выполнение функции и передает экспешн по стэку, где кто-то его ловит. Panic в Go завершает выполнение функции и выполняет все defer вызовы определенные внутри. Внутри defer вызова может быть вызов recover() ф-и, которая вернет ошибку, переданную в panic. Этот механизм позволяет решать проблемы сразу и на месте, не создавая сомнительных исключений. Тут стоит задаться вопросом: ты всегда знаешь, где что может выбросить экспешн? Если да, то почему каждая вторая программа на Java время от времени крашится от того, что кто-то где-то этот экспешн не поймал. Recover, в принципе, можно использовать, как try-catch везде (в контексте defer вызова), но это нарушает идеологию.

>Гугл ничего не выдает по этим словам
Потому что таким образом я криво сформулировал суть кратко. Scope-based error handing это, по-сути, обработка ошибок в пределах scope их возникновения, т.е. прямо на месте.
Аноним 07/05/15 Чтв 19:24:27 #190 №475105 
>>475102

Если panic/recover работает только внутри одной функции это значит что ты все равно должен передавать ошибку наверх, только вручную. Не вижу выгоды.

> Этот механизм позволяет решать проблемы сразу и на месте, не создавая сомнительных исключений
try/catch тоже можно ставить на тех уровнях где ты заинтереснован в обработке. На практике это обычно самый верхний уровень: если ты не можешь соединиться с Бд или прочесть файл в прилождении блога, то незачем продолжать выполнение.
Аноним 07/05/15 Чтв 19:25:20 #191 №475106 
>>475086
> Полиморфизма может?
Да, полиморфизма.
> а обычный глупый тип в Си не может
Это проблемы Си. Вот пример: http://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html
Типаж PartialEq реализован для самого что ни на есть примитивного типа i32.
> Я имею в виду Ява-интерфейсы которые представляют собой просто набор требований к классу.
Пусть функция принимает `*‹InterfaceName›` как аргумент. Как ей вызвать методы данного интерфейса?
Есть два варианта: статическая диспетчеризация или динамическая диспетчеризация. В первом случае мы параметризуем метод типом, который реализует данный интерфейс, и методы действительно используются напрямую. Во втором случае они используются косвенно, через таблицу виртуальных методов.
У этих подходов есть свои достоинства и недостатки: статическая диспетчеризация быстрее, но генерирует много кода в итоговом бинарнике (за счёт специализации), динамическая диспетчеризация медленнее, но гибче и кода не генерирует.
Вот подробнее про всё это:
http://doc.rust-lang.org/1.0.0-beta/book/static-and-dynamic-dispatch.html
http://smallcultfollowing.com/babysteps/blog/2014/11/26/purging-proc/ (старая статья про замыкания)
> Вот допустим мы наследуем Танк от ТранспортногоСредства. Это логично и понятно.
Да, только чаще нам интересно, что тип может делать, а не его родословная. К примеру, строки можно: заимствовать, создать из итератора, преобразовать в итератор, расширить, сравнить, отобразить, хешировать, сложить, индексировать, и так далее. И на всё это есть свои типажи.
Причем типажи, в отличие от интерфейсов, могут содержать реализация по умолчанию.
Аноним 07/05/15 Чтв 19:31:09 #192 №475111 
>>475092
> Исключения нужны для обработки с минимумом строчек кода исключительных ситуаций вроде сетевых ошибок, таймаутов, ошибок файловой системы, неправильно переданных параметров (из-за неправильно написанного кода).
Только вот есть проблемы:
- Типовая ошибка — такой же результат, что и возвращаемое значение. И их следовало бы отличать от тех ошибок, когда происходит что-то неприемлемое. Подробнее см. https://wiki.haskell.org/Error_vs._Exception
- Монадический механизм обработки ошибок может быть не менее удобен, чем try-catch. Но он требует поддержку HKT в языке.
> Я видел в расте try!() иначе чем ugly as a fuck это не воспринимается.
Да, с HKT было бы лучше всё это.
Аноним 07/05/15 Чтв 19:33:28 #193 №475114 
>>475106

> Как ей вызвать методы данного интерфейса?
Реализация не важна. Например первое что приходит в голову это сделать в во всех объектах ссылку на хеш-таблицу вида (имя метода -> адрес). Это может быть очень неэффективно, но тем не менее работает. Потому реализация не важна когда мы говорим об особенностях ООП. Какие там байты что хранят никак не влияет на наличие инкапсуляции или полиморфизма.

> Да, только чаще нам интересно, что тип может делать
Тут нужен интерфейс.

> . К примеру, строки можно: заимствовать, создать из итератора, преобразовать в итератор, расширить, сравнить, отобразить, хешировать, сложить, индексировать, и так далее. И на всё это есть свои типажи.
Это интересный подход, но сказать что он лучше или хуже традиционного ООП я не могу. По моему это вообще к ООП имеет отдаленное отношение.

> Причем типажи, в отличие от интерфейсов, могут содержать реализация по умолчанию.
Это как? Функция которая работает с данными любого типа?
Аноним 07/05/15 Чтв 19:35:38 #194 №475119 
>>475105
>panic/recover работает только внутри одной функции
Нет, паника передается вверх по стэку, как ошибка. Если ее никто нигде не ловит, то она завершает выполнение приложения.
>ты все равно должен передавать ошибку наверх, только вручную
На деле это примерно так и выглядит. В моем рабочем проекте стэк вызовов для построения странички зачастую доходит до пяти-шести. И да, ты передаешь error как второй параметр вверх по стэку, если что-то пошло не так. В этом нет ничего зазорного и это часть концепции идиоматического Go кода.
Аноним 07/05/15 Чтв 19:45:30 #195 №475123 
>>475105
Кстати, можешь прочесть вот это, может поймешь тонкости проблемы экспешнов: http://blogs.msdn.com/b/oldnewthing/archive/2004/04/22/118161.aspx

>Не вижу выгоды.
У тебя манованием руки пропадают ЛЮБЫЕ uncaught exceptions на ЛЮБОМ уровне исполнения.
Аноним 07/05/15 Чтв 19:46:31 #196 №475124 
>>475114
> Реализация не важна.
Трудно говорить о разновидностях полиморфизма, никак не затрагивая реализацию.
> Это как? Функция которая работает с данными любого типа?
С данными типа, реализующими данный типаж. Вот простой пример: http://doc.rust-lang.org/nightly/src/core/cmp.rs.html#46-55
Есть два метода, `==` и `!=`. И второй из них естественно определить как `!self.eq(other)`.
Аноним 07/05/15 Чтв 19:53:27 #197 №475125 
>>475123
> http://blogs.msdn.com/b/oldnewthing/archive/2004/04/22/118161.aspx
Автор не слышал про finally? Пиздец.
Аноним 07/05/15 Чтв 20:42:57 #198 №475142 
>>475125

finally в другой функции и вряд ли поможет.

Пример там не очень удачный. Автор пишет, что если индекс не создался. А почему такое может быть? Мне в голову приходят варианты:

1) неправильный SQl код - ошибка автора программы, ничего не поделать
2) ошибка соединения, например прервалось соединение или упал сервер Бд — опять же, в этом случае мы не можем даже исправить проблему если у нас есть код для этого

То есть как раз подход с исключением тут хорош: выводим сообщение и пользователь знает что у него может быть есть кусок недосозданной базы данных.

Надо просто дописать код чтобы при повторном запуске программа не создавала новую БД а использовала или дропала старую.


Аноним 07/05/15 Чтв 20:46:00 #199 №475143 
>>475123

Я все равно не понимаю:

— исключительные ситуации происходят независимо от языка. Ну например ошибки ФС или ошибки деления на ноль (в яваскрипте не происходят но это скорее

— в любом случае мы должны будет выйти из функции наверх, желательно передав информацию об ошибке

try/catch позволяет решить эти проблемы меньшим количеством кода.

> У тебя манованием руки пропадают ЛЮБЫЕ uncaught exceptions
Пропадают исключения или перестают происходить исключительные ситуации? Я бы был заинтересован во втором, а не в первом с необходимостью ставить везде ифы или их аналоги.
Аноним 07/05/15 Чтв 20:54:05 #200 №475146 
>>475142
> finally в другой функции и вряд ли поможет.
А надо засунуть внутрь той, где происходит получение ресурса и перевыбросить соответствующее исключение в кече, которое замечательно пойдет вверх по стеку.

Для упрощения этого паттерна в сисярпе придумали using {} который вызовет Dispose что бы ни произошло в любой строчке кода в блоке.

В D для этого же используется scope(exit), что позволяет строить еще более сложные конструкции с уверенностью, что оно выполнится в любом случае на выходе.

В крестах - деструкторы.

Все давно делают RAII, нет блять, годауны придумают какое-нибудь свое уебанство, назовут как-нибудь хитровыебанно и будут орать на каждом углу, что все дибилы кроме них.
Аноним 07/05/15 Чтв 20:59:18 #201 №475147 
>>475146
> перевыбросить соответствующее исключение в кече
Пизжу, можно просто try { } finally { }.
А вообще вот тут нормально:
http://dlang.org/exception-safe.html

Код с этими вашими panic-recover в студию.
Аноним 07/05/15 Чтв 21:01:32 #202 №475149 
>>475143
Опять же, есть исключительные ситуации (нехватка памяти, деление на нуль, etc), а есть ошибки (ошибки чтения, например).
Аноним 07/05/15 Чтв 21:10:14 #203 №475152 
>>475149

Ошибка чтения файла это исключительная ситуация. В нормально работающей системе очевидно все нужные файлы должны быть на месте и проще поддерживать порядок чем писать для каждой операции чтения код обработки ошибки чтения.

На мой взгляд ошибка это например неправильно заполненная форма регистрации. Ну так никто и не предлагает для ошибок в форме регистрации использовать исключения, if и возврат ошибки тут работают хорошо:

ошибки = проверитьФорму;
если (ошибки есть) {
....
} иначе {
...
}
sageАноним 07/05/15 Чтв 21:16:02 #204 №475155 
>>475152
>проще поддерживать порядок
ясн.
Аноним 07/05/15 Чтв 21:45:20 #205 №475162 
>>475152
Вот пример обработки ошибок без исключений, не требующий сотен if'ов: http://danielwestheide.com/blog/2012/12/26/the-neophytes-guide-to-scala-part-6-error-handling-with-try.html
Аноним 07/05/15 Чтв 21:51:25 #206 №475165 
>>475102
>Panic в Go завершает выполнение функции и выполняет все defer вызовы определенные внутри. Внутри defer вызова может быть вызов recover()
То есть да, это то же самое что и try-except-finally, только содержимое except-ов пишется внутри finally.
>Тут стоит задаться вопросом: ты всегда знаешь, где что может выбросить экспешн?
Все может выбросить эксепшон, точно так же как и все что в го возвращает значение-ошибку может вернуть ее абсолютно любую. Только вот эксепшон хотя бы гарантированно прервет выполнение программы, а в го если ты после кучи своих проверок на разные ошибки забыл дописать catch-all (else if err != nil { return err; } или вроде того), и в новой версии либы появится новый вариант ошибки, то твоя программа на го эту ошибку тупо игнорирует и волшебным образом превращается в программу на пхп.
>почему каждая вторая программа на Java время от времени крашится от того, что кто-то где-то этот экспешн не поймал
Что характерно, крашатся они в основном от знаменитого NullPointerException. Как видишь иксепшоны проверить легко, а вот возвращаемое значение ифом проверить у кодеров руки отваливаются. Чем твое if err != nil { return err; } лучше жабоблядского if (yoba == null) { return null; }?
>>475105
>Если panic/recover работает только внутри одной функции
Нет, recover можно делать где угодно выше по стеку. Вон примеры есть: http://blog.golang.org/defer-panic-and-recover
>>475123
>У тебя манованием руки пропадают ЛЮБЫЕ uncaught exceptions на ЛЮБОМ уровне исполнения.
От того что ты их переименовал в unchecked error types суть не поменялась. Не поймал исключение, не проверил err на одно из возможных значений, какая разница?
Аноним 07/05/15 Чтв 22:00:07 #207 №475167 
>>475162

Как я понимаю, чтобы это работало, все функции/конструкции языка должны поддерживать завернутые внутрь Try значения, либо же тебе придется каждый раз распаковывать/запаковать это значение для обработки? Нет ли риска тогда что код будет загрязнен кучей match? И если функция поддерживает завернутое в Try значение, сможет ли она работать с незавернутым?



Аноним 07/05/15 Чтв 22:04:58 #208 №475170 
>>475167
Читай внимательнее же. Есть функции и синтаксис чтобы применять обычные функции к завёрнутым.
В этом вся суть монад: можно создавать цепочки из функций, которые берут обычные значения и возвращают завёрнутые, и можно применить обычную функцию к завёрнутым данным. А уже потом сделать match на конечном результате.
Аноним 07/05/15 Чтв 22:06:40 #209 №475171 
>>475102

> Этот механизм позволяет решать проблемы сразу и на месте,
Суть исключений в том что их нельзя решить на месте. Функция отправила запрос в базу данных, но ей пришла ошибка (запрос неправильно составлен или попытка вставить 40 символную строку в колонку с ограничением на 20 символов) со стороны сервера. Или она начала получать данные но в процессе чтения превышен таймаут или разорвалось соединение.

Потому они и называются исключения

> то почему каждая вторая программа на Java время от времени крашится от того, что кто-то где-то этот экспешн не поймал.
Потому что программисты которые их пишут делают ошибки, а сами программы сложны и сложно предусмотреть все возможные ситуации. Один программист создал в БД колонку на 20 символов, другой пытается записать в нее 40. Если есть какие-то средства предотвращать такие ошибки до запуска — это отлично. Если нет то никакие переименования catch в recover или монады не помогут.

> Recover, в принципе, можно использовать, как try-catch везде (в контексте defer вызова), но это нарушает идеологию.
Тогда я не понимаю. Исключительные ситуации происходят, информацию о них надо передавать наверх. если не через try/catch то как?

> Scope-based error handing это, по-сути, обработка ошибок в пределах scope их возникновения, т.е. прямо на месте.
Исключения придуманы для проброса информации об ошибке через стек вызовов. Следовательно, если ты обрабатываешь ошибку в той же функции что она возникла ты должен использовать if а не исключения. Первый раз сегодня я услышал что if теперь называют «Scope-based error handing».


Аноним 07/05/15 Чтв 22:16:47 #210 №475172 
>>475170

Ну если я правильно понимаю, то код с монадой (?) выглядит так:

parseURL("garbage").map(_.getProtocol)

в то время как код с исключениями так:

parseUrl("garbage").getProtocol()

то есть использование Try принуждает нас писать все вызовы функций и методов немного по-другому с использованием map и аналогичных методов либо заворачивая их в Try(..)?

Там еще есть второй пример:

def getURLContent(url: String): Try[Iterator[String]] =
for {
url <- parseURL(url)
connection <- Try(url.openConnection())
is <- Try(connection.getInputStream)

Но я не очень понял, такой странный способ записи нужен только ради Try или и с исключениями получилось то же самое?

Аноним 07/05/15 Чтв 22:17:36 #211 №475173 
>>475170

> А уже потом сделать match на конечном результате.
А что если начинающий кодер вместо match сделает просто println(result.get()) ? Старое доброе исключение?
Аноним 07/05/15 Чтв 22:20:33 #212 №475175 
>>475173
Именно так. Потому, что использование `get()` означает «здесь не должно быть ошибки».
Аноним 07/05/15 Чтв 22:25:59 #213 №475180 
>>475175

Такие вещи наверно лучше гарантировать на уровне языка, например давая доступ к значению только внутри ветки match Success. Иначе люди будут писать get потому что это короче.

Аноним 07/05/15 Чтв 22:32:27 #214 №475186 
>>475180
Не надо. Использование `get()` бывает оправданным, тем более, что оно вполне явно.
Аноним 07/05/15 Чтв 22:53:38 #215 №475196 
>>475165
>ты после кучи своих проверок на разные ошибки забыл дописать catch-all (else if err != nil { return err; } или вроде того)
Такое почти невозможно, потому что все люди по идиоматике делают проверку if err != nil и уже внутри проверяют на вид ошибки.
>Как видишь иксепшоны проверить легко, а вот возвращаемое значение ифом проверить у кодеров руки отваливаются.
Ты упускаешь один факт — когда в сигнатуре функции в Go есть error, то становится ясно, что надо принимать ошибку. Сигнатура функции в Java ни о чем таком не говорит и ты можешь узнать о том, что она может выбросить эксепшн только из документации.

К тому же, у тебя несколько некорректное сравнение. Когда ты пишешь код:

status, err := module.StatusFor(thing)

То очень сложно забыть после этого проверить err на содержание ошибки. В жабе же проебать эксепшн — святое дело (это я тебе говорю человек, который работал в кучке жабопроектов на протяжении лет пяти).
Аноним 07/05/15 Чтв 22:56:17 #216 №475198 
>>475171
>Первый раз сегодня я услышал что if теперь называют «Scope-based error handing».
Во-первых, не if так называют, а подход при обработке ожидаемой ошибки. И во-вторых, его так называю только я, чтобы пояснить всю суть божественной обработки ошибки "тут и сейчас", без пробрасывания говна сквозь стэк.
sageАноним 07/05/15 Чтв 23:10:19 #217 №475207 
>>475196
>В жабе же проебать эксепшн — святое дело
Как, как блять можно проебать эксепшн в языке, где достаточно поставить try {} catch на main?? Пиздец.

> Сигнатура функции в Java ни о чем таком не говорит
Поэтому изобрели божественный nothrow
Аноним 07/05/15 Чтв 23:16:29 #218 №475210 
>>475207
>Как, как блять можно проебать эксепшн в языке, где достаточно поставить try {} catch на main?? Пиздец.
Умоляю, скажи мне, что ты знаешь, почему это bad practice!

>Поэтому изобрели божественный nothrow
Да, я тоже пишу на плюсах и знаю, что там есть nothrow. Кстати, я ОП треда доминирования крестогоспод ^_^
sageАноним 07/05/15 Чтв 23:24:16 #219 №475215 
>>475210
> Умоляю, скажи мне, что ты знаешь, почему это bad practice!
Откуда вы лезете, мамкины максималисты? Лучше у тебя приложение/модуль/любое место крашнется в продакшне без лога, потому что ты такой весь из себя охуительный и точно уверен что выдрочил во всех местах все возможные ошибки?

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

Если ты софт к АЭС пишешь, то ни го ни другое императивное говно по надежности не подходит.
Аноним 07/05/15 Чтв 23:29:32 #220 №475216 
>>475215
>в продакшне
Нет, в продакшне конечно надо ЛЮБОЙ краш отлавливать, но при непосредственной разработке ты должен быть уверен, что все, что может бросить эксепшн у тебя завернуто в try и ты правильно реагируешь на эту нештатную ситуацию. Это очевидная, неписанная истина.

>Если ты софт к АЭС пишешь, то ни го ни другое императивное говно по надежности не подходит.
Спорный вопрос. Я думаю, что для софта на АЭС подойдет практически любая технология, только тщательно оттестированная всевозможными тестами.
sageАноним 07/05/15 Чтв 23:31:12 #221 №475217 
>>475198
>божественной обработки ошибки "тут и сейчас"
>божественной
Перестань нести хуйню, долбоеб. На деле схожие ошибки обрабатываются одинаково и код в итоге состоит повторяющейся лапши чуть более чем полностью. В противном случае ты передаешь ошибку вверх для более общей обработки. Охуеть, блядь, "божественная".
Аноним 07/05/15 Чтв 23:34:10 #222 №475219 
>>473477
>>473498
>>473502
Мочератор, не пора ли начать раздавать баны? Это же не /b
Аноним 07/05/15 Чтв 23:35:16 #223 №475220 
>>475219
Моча тут только треды закрывать умеет.
Аноним 07/05/15 Чтв 23:37:32 #224 №475221 
>>475217
Не знаю, божественная ли, но точно лучше, чем надеяться на то, что у тебя все поймает main и на продакшне тебе за это ничего не будет.
Аноним 07/05/15 Чтв 23:38:31 #225 №475224 
>>475217
> и код в итоге состоит повторяющейся лапши чуть более чем полностью
В Scala не состоит.
sageАноним 07/05/15 Чтв 23:40:36 #226 №475226 
>>475216
> при непосредственной разработке ты должен быть уверен, что все, что может бросить эксепшн у тебя завернуто в try и ты правильно реагируешь на эту нештатную ситуацию. Это очевидная, неписанная истина.

Это хуйня на постном масле, придуманная максималистами вроде тебя или садистского создателя го. Что, если я пишу прототип чего-то? Скрипт под одну задачу? Хороший язык предоставляет мне выбор - если я хочу положить болт и словить неочевидные ошибки постфактум - я могу это сделать. У го же в сути - заставить тебя сделать так, а не иначе, как будто ты априори криворукий абсолютно уебан и не можешь даже стиль выдержать. И что самое интересное - это не поможет - все равно будет хуевый падающий
код с логическими ошибками, если тебе нужно писать его быстро - так же как и везде. Потому что без верификации это все бессмысленно.
sageАноним 07/05/15 Чтв 23:41:42 #227 №475228 
>>475219
>ну мааам, чего они меня обоссывают, я же го-илита, ну скажи им что го рулит и ваще это язык будущиго!
Аноним 07/05/15 Чтв 23:43:54 #228 №475232 
>>475226
Мартышка, никто тебя не заставляет в го ничего ловить, можно просто принять ошибку на /dev/null и ничего тебе за это не будет. Но зачем нарушать идиоматику в таком очевидном месте? Это же очевидный выстрел в ногу!
Аноним 07/05/15 Чтв 23:48:32 #229 №475234 
собственно, все программы на го можно сразу отправлять в /dev/null и тебе тоже за это ничего не будет, только спасибо скажут
Аноним 07/05/15 Чтв 23:52:51 #230 №475238 
>>475216

Мне кажется в вебе с этим проще:

while (true) {
try {
ответ = обработать запрос
послать ответ;
} catch(e) {
залоггировать e;
}
}

Достаточно одно try в простом случае.
Аноним 07/05/15 Чтв 23:56:05 #231 №475241 
>>475234
Ты же понимаешь, как жалко выглядят хейтеры того или иного ЯП?
Аноним 07/05/15 Чтв 23:58:35 #232 №475244 
>>475241
Да, примерно так же, как и программисты на го.
Аноним 07/05/15 Чтв 23:59:46 #233 №475245 
>>475244
Хорошо.
sageАноним 08/05/15 Птн 00:00:04 #234 №475246 
>>475232
> Но зачем нарушать идиоматику в таком очевидном месте?

Чтобы не плодить как даун лапшу из ифов может быть? Нахуя вообще учить язык, который навязывает какую-то мягко говоря спорную высосанную кем-то из пальца идиоматику? Что, вот ты, даунёнок, сел писать на го и у тебя сразу получаются более безопасные программы? Или более понятные? Лол.

> выстрел в ногу
Выстрел в ногу в императивной параше бывает только один. Коррапт памяти. Остальное - полная хуйня.
Аноним 08/05/15 Птн 00:07:58 #235 №475250 
>>475241
Да причём тут хейт, мне что нехуй делать, сидеть ненавидеть то или иное поделие. Мне скорее припекает от форсеров объективно хуёвого, и главное, бесполезного языка. Максимум оно заменит предыдущее хипстоговно вроде ноджс, не более.
Аноним 08/05/15 Птн 00:21:45 #236 №475255 
14310337053930.jpg
Признайтесь честно, сученки, вам печет не столько от того, что го - говно, а столько из-за форса этого говна.
Аноним 08/05/15 Птн 00:36:01 #237 №475260 
Годрочеры, покажите нормальные бенчмарки, на которых go выигрывает у джавы. Что-то мне подсказывает, что и gc, и jit у go все такие же хуевые.

Мимо-jmh-царь
Аноним 08/05/15 Птн 00:49:38 #238 №475261 
Вообще, конечно, мне кажется в го-треде надо обсуждать изучение этого языка, а мы как-то недружелюбно себя ведем, пришли в тред, обругали всех и ушли. Но с другой стороны, я зашел только потому что тут ругали ООП и исключения. Это может быть старые и не очень модные среди молодежи технологии, но это не повод от них отказываться. Придумайте сначала что-то получше, подумайте какие они проблемы решают и как это сделать лучше, а не отбрасывайте просто потому что они старые. Возвращаться к цепочке ифов назад в 80-е это явно не решение.
Аноним 08/05/15 Птн 00:51:25 #239 №475262 
Вообще не понимаю, что за петушиные бои тут происходят.
мимо cl-боярин
Аноним 08/05/15 Птн 00:52:52 #240 №475263 
>>475261
Я выше книжку вкинул, >>473264 поспособствовав изучению. Дальше можно и поугарать.
sageАноним 08/05/15 Птн 00:55:44 #241 №475265 
>>475255
Да, мне печёт, что хороших, годных языков нету так не форсят, как эту гуглопарашу.
Аноним 08/05/15 Птн 01:04:08 #242 №475266 
>>475261
> Придумайте сначала что-то получше, подумайте какие они проблемы решают и как это сделать лучше,
Так придумали ведь уже давно. Только вот в го всего этого нет.
Аноним 08/05/15 Птн 01:06:03 #243 №475267 
>>475265
1. Становись модным петухом, чтобы люди делали тоже, что и ты.
2. Внезапно перейди на <годный язык нейм>
3. Засри в твиттор какой <годный язык нейм> охуенный
4. ???
5. Профит
Аноним 08/05/15 Птн 01:10:22 #244 №475268 
Нинужно, когда есть эрланг.
Аноним 08/05/15 Птн 07:53:35 #245 №475305 
>>475250
> Да причём тут хейт, мне что нехуй делать, сидеть ненавидеть то или иное поделие.
Так ты этим и занимаешься тут. Вас мама случайно не через анал родила? С логикой то не порядок.
Аноним 08/05/15 Птн 09:24:46 #246 №475327 
>>475255
Мне лично печет от ОПпика. Верх даунизма же.
Аноним 08/05/15 Птн 13:04:28 #247 №475402 
>>475327
От бобрика ему печет, ну охуеть просто. Тебе нужно было там модную машинку нарисовать? Микросхему? Жопу твоей ЕОТ?
Аноним 08/05/15 Птн 13:05:11 #248 №475403 
>>475402
Это хомяк.
Аноним 08/05/15 Птн 13:07:24 #249 №475406 
>>475403
Нет, это бобрик.
Аноним 08/05/15 Птн 13:26:45 #250 №475416 
14310808051540.png
>>475327
оппик следующего треда
Аноним 08/05/15 Птн 14:42:33 #251 №475429 
>>475406
Нет, это http://en.wikipedia.org/wiki/Gopher
sageАноним 08/05/15 Птн 14:49:19 #252 №475432 
>>475196
>Сигнатура функции в Java ни о чем таком не говорит
В жабе есть checked exceptions, которые надо объявлять через throws и обязательно где-то ловить, иначе конпелятор ругаться будет. Они работают настолько хорошо, что в сраном акторе IOException нельзя выкинуть несмотря на то, что глобальный обработчик его бы все равно поймал, и в результате приходится устраивать ебаный цирк чтобы наебать эту статически типизированную парашу. В го все что компилятор проверит - это что ты где-то ошибку сохранил, а дальше ему похуй.
>То очень сложно забыть после этого проверить err на содержание ошибки.
Только чтобы реализовать что-то отличное от return err; (что эксепшоны делают по умолчанию) придется все равно открыть документацию и проверить, а какие же все-таки ошибки могут быть. В результате получаем то же самое, только кода больше.
Аноним 08/05/15 Птн 15:28:25 #253 №475441 
14310881051010.jpg
>>475327
Кролик тобой недоволен.
Аноним 08/05/15 Птн 22:54:13 #254 №475672 
>>473014
Погодите, так в этом говне ни ООП, ни нормальной системы типов? Как на этой параше писать тогда? Т.е. это и не ОО-ЯП, и не ФЯ, и даже метапрограммирования тоже нет. Это низкоуровневый язык штоле?
Аноним 08/05/15 Птн 23:59:18 #255 №475680 
>>475672
> низкоуровневый язык
> GC
sageАноним 09/05/15 Суб 00:06:27 #256 №475681 
>>475672
очевидно что го это препроцессор для крестоговна
Аноним 09/05/15 Суб 00:35:42 #257 №475691 
14311209422900.jpg
>>475672
> Как на этой параше писать тогда?
Ну на питоне же люди пишут.
Аноним 09/05/15 Суб 03:20:30 #258 №475729 
>>475672
ну эт кароч как на си тольк не на си а на го ну тип ну гк виртуалочка там ллвм ну зато меньше чем джава ест ну раст же нештабильный ну риальныя компиляция никак у скриптов тип ну хуй знает короч
Аноним 09/05/15 Суб 07:54:15 #259 №475741 
>>475729
>джава ест
Память ест не Java, память едят программисты, создающие по 100 коллекций избыточных типов на пустом месте.
Аноним 09/05/15 Суб 09:47:01 #260 №475759 
Разработчик ядра docker в треде. AMA!
sageАноним 09/05/15 Суб 10:11:50 #261 №475767 
>>473014
· Go doesn't really do anything new.
· Go isn't well-designed from the ground up.
· Go is a regression from other modern programming languages.
http://yager.io/programming/go.html
Аноним 09/05/15 Суб 10:19:26 #262 №475769 
>>473014
>лучший в области многозадачности
В голосину.

мимо-Erlang-господин
Аноним 09/05/15 Суб 10:42:56 #263 №475772 
>>475767
О, сколько раз разношерстные питухи давали мне ссылку на эту статью... Настало время разобрать все по частям:

>Generic Programming
В этом разделе автор кукарекает про то, что так как в Go нету generics, а только даункастинг от interface{}, после неосторожного программирования ты рискуешь быть обосранным, добавляя в один и тот же самый список переменные разного типа. В принципе, он прав насчет этого. Тут мало что можно возражать. Generics просто не являются частью языка, идиоматика пострена вокруг interface{}. Может быть, до Go 2 еще дожить надо, и generics появятся. Пока в них чтобы уж так сильно никто не нуждается.
>Language Extensibility
>Go does not support operator overloading or keyword extensibility.
И это очень правильное решение! Автор питух в этом разделе говорит лишь о том, что в Go нету костылей вроде __add__ из питона или operator из С++, которые лишь вносят непонятки в код. Идиоматика Go построена вокруг работы с pure data, а такая вещь, как сложение двух струкутр — это бред. Короче говоря, тут автор тупо обосрался, потому что в Go нету сахарка (сомнительного, причем).
>Base Cases and Failure Conditions
Это вообще стыд. Сначала он критикует язык за то, что в нем нулевой указатель называется nil, а не null, как в других языках (и что?). Потом он говорит, что nil-указатель это небезопасная конструкция (ЛОЛ) и что вообще это неверно, хотя его не ебет, что все современные языки используют именно эту концепцию. Короче говоря, какая-то хуета.
Взамен работающей концепции errors-as-values, он предлагает (внимание) алгербраические типы и типобезопасные режимы ошибок. Тут все ясно.
>Type Inference
Наводим какой-то пример из хаскеля, а потом говорим, что хоть в Go и есть хорошее решение (:=), но это все равно не круто, потому что "можно тип rhand-выражения самому вывести". Самый несостоятельный из пунктов статьи. Пример на жабе, ввиду своей опущенности, был опущен намеренно (какая игра слов!).
>Immutability
Сомнительная хуета, на самом деле. Если ты не хочешь, чтобы какая-то переменная менялась, то просто не меняй ее. Это очень просто и понятно. С другой стороны, immutable declarations — приятная вещь и может быть, когда-то в Go ее добавят.
>Control Flow Structures
Смешно. Говорит, что Rust очень хороший потому что там есть pattern matching, а потом говорит, что Go, несмотря на то, что имеет "does have some nice control flow primitives for certain things, like select for parallelism", все равно хуйня, потому что нету его любимого паттерн-матчинга :)
>Embedded Programming
Это не проблема Go и даже автор делает на этом акцент. Не понимаю, зачем он вообще добавил этот раздел в статью:
"Go relies heavily on the usage of dynamic allocation. There is no practical way to constrain Go code to use only stack memory. This is not a problem with Go. This is perfectly fine within Go's intended area of usage."

>TL;DR
Ну и напоследок автор решил сделать несколько замечательных выводов:
>Go doesn't really do anything new.
будто кому-то должен. go сделал многие вещи (например, потоки) проще и понятнее
>Go isn't well-designed from the ground up.
кто-то говорил, что он разработан для "ground up"?
>Go is a regression from other modern programming languages.
implying, что все современные ЯП в его понимании, это ООП (Объектно Ориентированная Пораша). Go в этом плане отличается и избавляет разработчика от хуеты вроде виртуальных деструкторов.

Короче говоря, спасибо, Кэп.
Аноним 09/05/15 Суб 10:44:36 #264 №475773 
>>475772
А, блять, я неправиль понял пункт, лол.
>Go isn't well-designed from the ground up.
Чистой воды скептицизм. Такое можно сказать про любой ЯП.
Аноним 09/05/15 Суб 11:57:35 #265 №475789 
>>473264
Бля, за эти шрифты хочется нассать автору на ебало.
Аноним 09/05/15 Суб 11:59:23 #266 №475791 
>>475789
Пересобери с другими, ТеХ же. Чо как маленький.
Аноним 09/05/15 Суб 12:29:40 #267 №475809 
В соседнем треде есть вопрос >>475205
И ответ http://pastebin.com/DX55aYFe

Ну что, хомяки, выкатывайте свои простыни процедур из 70-х, сравним, посмеемся.

Java они закопать решили, клоуны, блядь.
Аноним 09/05/15 Суб 14:39:02 #268 №475920 
>>475772
> Generics просто не являются частью языка, идиоматика пострена вокруг interface{}. Может быть, до Go 2 еще дожить надо, и generics появятся. Пока в них чтобы уж так сильно никто не нуждается.
НИНУЖНО
> Потом он говорит, что nil-указатель это небезопасная конструкция (ЛОЛ) и что вообще это неверно, хотя его не ебет, что все современные языки используют именно эту концепцию.
> все современные языки
Это действительно небезопасная конструкция, и современные языки (например, Rust, а не говно мамонта вроде Java, где даже лямбды лишь недавно завезли) её не используют.
> Взамен работающей концепции errors-as-values, он предлагает (внимание) алгербраические типы и типобезопасные режимы ошибок.
Действительно, зачем нам какие-то алгебраические типы, это же так сложно, гоблядям не осилить.
> Сомнительная хуета, на самом деле. Если ты не хочешь, чтобы какая-то переменная менялась, то просто не меняй ее.
В самом деле, зачем нужна проверка типов.
> Говорит, что Rust очень хороший потому что там есть pattern matching, а потом говорит, что Go, несмотря на то, что имеет "does have some nice control flow primitives for certain things, like select for parallelism", все равно хуйня, потому что нету его любимого паттерн-матчинга :)
Надо всё же отметить, что сопоставление с образцом не очень полезно без алгебраических типов (которые гобляди не осилили).
sageАноним 09/05/15 Суб 14:51:26 #269 №475923 
>>475772
Адепт 80 уровня
sageАноним 09/05/15 Суб 15:18:06 #270 №475939 
Go is imposing all the pain of static typing with pretty much none of the benefits.

http://jozefg.bitbucket.org/posts/2013-08-23-leaving-go.html
Аноним 09/05/15 Суб 15:32:13 #271 №475942 
>>475691
Ну в пистоне есть ООП, куча либ и биндингов, плюс он куда удобнее, особенно для написания небольших программок. А в гопараше даже лист-компрехеншенсов и генераторов нет. Вместо этого какая-то дрочь с фильтами-слайсами (не-ФП) и использование каналов в таком вот ко-ко-ко стиле http://blog.carlsensei.com/post/72359081647 и куча жалких отмазок, типа just use for loops))))) https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/mobilebasic?pli=1
Аноним 09/05/15 Суб 15:36:18 #272 №475944 
>>475942
В Го есть инкремент, в питоне нет. Обгвидки соснули у ГОбогов.
Аноним 09/05/15 Суб 15:38:03 #273 №475945 
короче го это такая усовершенствованная сишка, но только для лоу-левел программирования не подходит((
Аноним 09/05/15 Суб 15:38:39 #274 №475946 
>>475942
> ООП
Ну ок, лол.
> куча либ и биндингов
Как и в го теперь.
> лист-компрехеншенсов и генераторов
Сахарок-сахарочек.
Аноним 09/05/15 Суб 15:41:23 #275 №475948 
>короче го это такая инвалидная коляска, но только для инвалидов не подходит((
Аноним 09/05/15 Суб 17:09:28 #276 №475974 
>>475741
Когда ты minreq последний раз видел? Для запуска с EE либами сейчас нужно минимум 256мб, и это без сервера приложений.
Аноним 09/05/15 Суб 20:07:50 #277 №476028 
>>475741
К сожалению, ты неправ, с памятью действительно есть проблемы. Из-за автоматического боксинга+выравнивания на 8+заголовков объектов+прочее говно (типа энтрисета в мапе) оверхэд у коллекции на одну запись просто неебический. new int[1kk] это 10 мегабайт, а new HashSet<Integer>(1kk) это 130+ мегабайт, да еще и хуй пойми как разбросанных по памяти. Даже последовательное чтение из ебучего arralist нихуя не кэшфрендли. За пруфами ставь jol.

На самом деле ситуацию спасает кодогенерация всякими trove и openhft-коллекциями, но это костыли, за которые мы тут гнобим гоблядей. Может, value-типы в десятке спасут положение


Мимо-дрочу-на-лейтенси-джавист
Аноним 09/05/15 Суб 20:09:00 #278 №476029 
>>475974
Поссал на EE и контейнеры, ты блять в 2015 году или в 2005 живешь?

>>475741 - кун
Аноним 09/05/15 Суб 20:10:38 #279 №476030 
>>476028

>>475741 - кун
быстрофикс
Аноним 09/05/15 Суб 20:10:50 #280 №476031 
>>476029
Ну так-то для лабораторок ее и контейнеры не нужны, да.
Аноним 09/05/15 Суб 20:19:23 #281 №476033 
>>476031
Tell me moar
Аноним 09/05/15 Суб 21:04:06 #282 №476048 
>>476033
Ну расскажи мне, что ты можешь написать на джаве без javax неймспейса.
Может быть, ты подключаешь Spring или Hibernate, и думаешь, что там нет EE?
Может быть, ты пишешь чатик с RMI, и не знаешь, что такое CORBA?
Может быть, ты рисуешь в эклипсе формочки, и думаешь, что AWT и Swing живут сами по себе?
Может быть, ты качаешь Guava или Apache Commons, и думаешь, что там не используются подпространства Net и Nio из стандартной библиотеки?

Java без спецификаций API и огромного количества библиотек их имплементирующих - кусок говна без задач.
Аноним 09/05/15 Суб 22:10:31 #283 №476082 
>>476048
У тебя спецификации память жрут, ебанько?
Аноним 09/05/15 Суб 22:17:57 #284 №476087 
>>476082
Хули ты с темы соскакиваешь, уебок. Только что писал, что ЕЕ и контейнеры не нужны, типа все без них можно, а теперь снова про память кукарекаешь.
И, да, жрут, только не спецификации, а имплементирующие их библиотеки и зависимости. Или ты еще и не знаешь как класслоадер работает?
Аноним 09/05/15 Суб 23:18:26 #285 №476117 
>>476087
Это не я тебе отвечал
(>>476033, >>476028, >>476029 кун)

Никак я не пишу без javax.;
Большая часть популярных библиотек действительно использует javax аннотации (или не только аннотации), но все они не дрочат только на этот пакет и в этом их плюс (и минус, как например джетти, которая вообще в своих релизах кладет хуй на обратную совместимость).

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

Корба уже мертва, а к чему ты про nio и swing заговорил я вообще не ебу, еще бы про коллекции сказал.

Да, EE+контейнеры имеют место быть и активно живут, но это не повод их любить и использовать их всегда, когда тебе нужен ioc/транзакции/
another part of standard*, потому что в 90% случаев их минусы не окупают их плюсов. Такие дела.
Аноним 09/05/15 Суб 23:19:47 #286 №476118 
>>476117
Блять, забыл, что звездочки в разметке шрифт на курсив меняют, так что извиняй за форматирование
Аноним 10/05/15 Вск 00:56:14 #287 №476159 
>>476087
Уебка в зеркале увидишь. Я не писал, что
>ЕЕ и контейнеры не нужны, типа все без них можно
но это верно. Ни один из продуктов нашей компании не использует EE контейнер.
>а имплементирующие их библиотеки и зависимости
Т.е. в плюсах аль шарпах это не так?
Очнись, Вася, ты обосрался.
Аноним 10/05/15 Вск 00:59:14 #288 №476161 
>Для запуска с EE либами сейчас нужно минимум 256мб, и это без сервера приложений.
Пруфы по этому пункту будут? Если я проведу эксперимент и там будет меньше 256мб, то ты пиздабол.
inb4 запускать со всеми реализациями всех спек EE.
Аноним 10/05/15 Вск 04:05:00 #289 №476208 
>>476159
>>476117
Примеры того, что можно написать без ЕЕ либ, или либ, использующих ЕЕ либы, решающее реальные задачи будут? Ну кроме андроеда и батчей.

>>476161
System Requirements

Java EE 7 SDK Update 1 distributions require JDK 7 Update 65 or above or JDK 8 Update 20 or above. Ensure that the required JDK software is installed on your system and that the JAVA_HOME environment variable points to the JDK installation directory, not the Java Runtime Environment (JRE) software.

The minimum and recommended memory and disk space requirements are as follows:

Minimum memory: 1 GB
Recommended memory: 2 GB for Windows platforms, 1 GB for non-Windows platforms
Minimum disk space: 250 MB
Recommended disk space: 500 MB

Аноним 10/05/15 Вск 05:07:57 #290 №476212 
>>476208
Ты как-то выборочно читаешь ответы, видимо.
Я же вроде сказал, что без самого пакета javax не написать, только вот в качестве имплементации не надо использовать контейнеры и привязываться только к javax (как это и делают все нормальные фреймворки)
Аноним 10/05/15 Вск 11:51:13 #291 №476252 
>>476208
>Примеры того, что можно написать без ЕЕ либ
У меня проект, где используется Hibernate, но не JPA. И что вообще за тупой вопрос. Жил библиотека, а потом реализовала EE спеку шоб было - и что теперь - зашквар? Ты хуйню несешь какую-то.
Аноним 10/05/15 Вск 17:11:50 #292 №476336 
14312671101220.jpg
>>476252
Аноним 10/05/15 Вск 19:55:32 #293 №476420 
>>475923
У вас давно секс та был. Похоже на сублимацию сексуальной неудовлетворенности. Поди лицо все в прыщах.
Аноним 10/05/15 Вск 20:03:06 #294 №476423 
>>475772
>>Go isn't well-designed from the ground up.
>кто-то говорил, что он разработан для "ground up"?
В голосянду. Что ты там комментируешь, если настолько не знаешь английский?
> Чистой воды скептицизм. Такое можно сказать про любой ЯП.
Не про любой. Есть много языков с хорошим дизайном from the ground up. Но это не про гопарашу, естественно.
Аноним 11/05/15 Пнд 02:48:10 #295 №476665 
>>476664
> в запарке неправильно прочитал и неверно понял
Пиздец у тебя оправдания, настолько неправильно прочитать может только человек, который язык только в школе учил. Я гарантирую, ты полтекста неверно понял, даун.
Аноним 11/05/15 Пнд 02:49:17 #296 №476666 
>>476664
> Нету языков с хорошим дизайном from the ground up, доебаться можно ко всем.
Очевидный Lisp и ты идёшь нахуй.
Аноним 11/05/15 Пнд 02:52:37 #297 №476667 
>>476666
( . ( , Ну окей ) )
Аноним 14/05/15 Чтв 00:20:26 #298 №478063 
Go сейчас плотно занимает одну нишу - всевозможные системные тулы и тулы для devops-а: docker, etcd, бэкэнды для grafan-ы и flappjack-а, куски опенстека уже перписываются на нём, Хаши, разработчик vagrant, тоже свои последние тулы пишет на го. Скорее всего такая популярность у инструментальщиков связана с компиляцией го в один единственный бинарь, что существенно упрощает деплой и пакетирование, избавляя от кучи ненужных зависимостей. Ибо ради какого-нить мониторинга или агрегации логов тащить на прод руби, или упаси господи jvm, рантайм - нехуй делать.
Аноним 14/05/15 Чтв 00:40:00 #299 №478070 
>>478063
>>478064
Годаун опять семенит, но какой смысл смешивать ГОвно с говном по второму кругу?
Аноним 14/05/15 Чтв 00:50:49 #300 №478077 
14315538497590.jpg
>>478064
>pattern matching (это что вообще за штука, switch уже не в моде?
толсто
Аноним 14/05/15 Чтв 13:54:36 #301 №478171 
>>478123
В ракете есть, в млях, включая F#, да блядь даже в прологе есть.
Аноним 14/05/15 Чтв 14:09:29 #302 №478175 
>>478123
В 7 шарпе обещают.
По ходу F# в итоге сдохнет, потому что будет нахуй никому не нужен, т.к. все фичи будут в С# вместе с привычным синтаксисом.
Аноним 14/05/15 Чтв 14:31:57 #303 №478190 
>>478175
> все фичи будут в С# вместе с привычным синтаксисом
Да ну, уебский там синтаксис будет, как обычно. Фадиез лаконичнее раза в 2 же для функционалодрисни.
Аноним 14/05/15 Чтв 14:36:47 #304 №478194 
>>475772
>Пока в них чтобы уж так сильно никто не нуждается.
Ну пиздец. Без дженериков можно жить, но сложнее. Либо у тебя нетипобезопасный код, либо у тебя адов бойлерплейт для каждого такого случая.
>operator из С++, которые лишь вносят непонятки в код
Ну нихуя себе. Вот решил я написать библиотеку для работы с матрицами. В говняшной или шарпе я могу легко сделать так, чтобы можно было делать result = matrix1 + matrix2, что полностью соответствует предметной области. Как это будет выглядеть в Го? matrix1.Add(matrix2)? Говно же.
>Взамен работающей концепции errors-as-values
Говно уровня говняшной.
>Immutability
>Сомнительная хуета, на самом деле. Если ты не хочешь, чтобы какая-то переменная менялась, то просто не меняй ее.
Да ты говноед просто. А если ты библиотеку на сторону отдал? А если криворукий еблан с php перелез и устроился к тебе в отдел? Мутабельность иногда позволяет экономить память, но она вообще должна быть скорее исключением, чем правилом. То, что в Го нет иммутабельности — это просто шаг назад. Хотя казалось бы не такая уж и сложнореализуемая фича.

>implying, что все современные ЯП в его понимании, это ООП (Объектно Ориентированная Пораша).
Автор всю статью сравнивает Го с функциональщиной. И тут ты делаешь вывод про ООП. Ты вообще статью читал?
Аноним 14/05/15 Чтв 14:37:47 #305 №478195 
>>478190
Ты забыл про решарпер.
Аноним 14/05/15 Чтв 15:29:43 #306 №478211 
>>478195
> решарпер
Вонючий кусок говнища твой пидоршарпер. Нравится только полным даунам.
Аноним 14/05/15 Чтв 15:46:14 #307 №478216 
>>478194
>библиотеку для работы с матрицами
>диез
Не взлетит. Во-первых нету женерик операторов, для double и float надо дублировать код, во-вторых ты не сможешь сделать продвинутые оптимизации вроде http://eigen.tuxfamily.org/dox/TopicInsideEigenExample.html и оно будет пиздец как тормозить. Про кривой инлайн я даже молчу.
Аноним 14/05/15 Чтв 18:43:18 #308 №478324 
>>478216
>Во-первых нету женерик операторов, для double и float надо дублировать код
Ты забыл про dynamic.
>во-вторых ты не сможешь сделать продвинутые оптимизации вроде
Так это крестоболезни какие-то.
Аноним 14/05/15 Чтв 19:20:04 #309 №478345 
>>478324
> dynamic
Пиздец, нахуй кому нужны матрицы от такого петушка как ты? Ждать обучения нейросетки джва года?
Аноним 14/05/15 Чтв 19:22:26 #310 №478346 
>>478123
> к тому же ололо сомнительных
> раст
Да ты охуел.
> и каким-то хуем оказалась
Всё очень просто: в раст завезли алгебраические типы, и чтобы работать с ними без костылей — сопоставление с образцом. Впрочем, годебилы вроде тебя и про алгебраические типы кукарекнут «НИНУЖНА!!1».

Аноним 14/05/15 Чтв 19:23:11 #311 №478347 
>>478327
> мутабельность добавят как только GC научится с ней охуенно работать, там какие-то загвоздки есть.
> GC научится
Еще один незамутненный ньюфажек. Про write barriers слышал? Конечно же нет, зачем это знать годауну.
Аноним 14/05/15 Чтв 19:27:13 #312 №478349 
>>478322
Как будто го кому-то всрался
Аноним 14/05/15 Чтв 19:29:21 #313 №478353 
>>478348
> ко-ко-ко куд-кудах
Как и предсказывалось.
Аноним 14/05/15 Чтв 19:31:14 #314 №478355 
>>478352
Мантры годебила
Аноним 14/05/15 Чтв 19:31:43 #315 №478357 
>>478351
В отличие от восторженных даунов вроде тебя, гоняющихся за пропиаренным говнищем, я читаю статьи про используемые мной инструменты.

>>478352
>Большая поддержка сообществом, тысячи пакетов на гитхабе
Миллионы мух не могут ошибаться.
Аноним 14/05/15 Чтв 19:39:14 #316 №478364 
>>478361
Haskell — самая быстрорастущая технология среди новых ЯП. Большая поддержка сообществом, тысячи пакетов на гитхабе. Да, он всрался, и всрался он хуевой туче людей, но в это множество не входят уебки с сосача, вроде тебя.
Аноним 14/05/15 Чтв 19:42:11 #317 №478366 
> Килл-фичей Go является охуеннейший механизм многозадачности.
http://yosefk.com/blog/parallelism-and-concurrency-need-different-tools.html
Аноним 14/05/15 Чтв 19:42:51 #318 №478367 

https://www.youtube.com/watch?v=bAQ9ShmXYLY
>JP Robinson, a senior software engineer at The New York Times, walks through how his team has come to adopt Go for almost all back end development.

Тем временем вне сосача.
Аноним 14/05/15 Чтв 19:45:04 #319 №478368 
Пацаны, так чем Go лучше Java?
Тред не читал.
Аноним 14/05/15 Чтв 19:49:27 #320 №478371 
>>478367
>>478369
Семён-семёныч, ну что вы?

>>478368
Нет бобов абстрактных фабрик.
Аноним 14/05/15 Чтв 19:50:08 #321 №478372 
>>478369
Подожди, а если нет генериков, то как делается параметрический полиморфизм?
Аноним 14/05/15 Чтв 19:51:13 #322 №478374 
>>478371
Про семёна ниугадал. Просто в почту упало. Решил вам принести, раз вы такой срач разводите. Сам не пишу на Го.
Аноним 14/05/15 Чтв 19:51:31 #323 №478375 
>>478368
> чем Go лучше Java
Его пиарит гугл. Гугл >> оракл.

>>478367
>>478369
Прекращай семенить уже.
Аноним 14/05/15 Чтв 19:52:10 #324 №478376 
Бля пиздец, это как джава до того, как добавили генерики
пиздец
говно
блядь
Аноним 14/05/15 Чтв 19:52:45 #325 №478377 
>>478372
Кастом в аналог Object и свич обратно же.
Аноним 14/05/15 Чтв 19:53:38 #326 №478379 
>>478377
охуенно
sageАноним 14/05/15 Чтв 20:11:45 #327 №478396 
>>473014
обоссал
Аноним 14/05/15 Чтв 21:13:26 #328 №478440 
>GO
Как замена php норм?
Аноним 14/05/15 Чтв 21:15:54 #329 №478442 
>>478345
>implying оно будет быстрее работать на го
sageАноним 14/05/15 Чтв 21:20:30 #330 №478446 
>>478396
Разве что себя.
Аноним 14/05/15 Чтв 21:24:59 #331 №478452 
>>478442
Конечно будет, хоть го и обоссанное дерьмо. Там на порядок разницы же.

> Static C#: 13ms
> Dynamic C#: 249ms

Но так-то все пользуют либы линейной алгебры на крестах. Просто нужен язык в котором можно нормально метапрограммить. Я начинал кодить такой же реврайт кода как и в eigen на D, получил примерно ту же скорость.
sageАноним 14/05/15 Чтв 21:44:12 #332 №478466 
>>478446
нет, обоссал недоязык в котором ничего нет
Аноним 14/05/15 Чтв 21:53:54 #333 №478474 
>>478466
Зато у него стильный маскот же.
Аноним 14/05/15 Чтв 21:54:44 #334 №478476 
>>478474
Говно с ручками.
Аноним 14/05/15 Чтв 21:59:19 #335 №478479 
>>478478
Но я уже другой анон, и даже не хейтер. Но маскот - говно с ручками.

чини детектор, маня
Аноним 14/05/15 Чтв 22:00:25 #336 №478480 
>>478479
Или даже не с ручками, а с маленькими пенисами.
Аноним 14/05/15 Чтв 22:05:18 #337 №478485 
>>478483
>замечательного доброжелательного маскота
У меня лично он вызывает ассоциации с Happy Three Friends
Аноним 14/05/15 Чтв 22:08:16 #338 №478488 
>>478483
Ладно-ладно, плюсанул тебе в карму. Лучше расскажи, что там с андроидом? Когда Го завезут?

ГОВНО!
Аноним 14/05/15 Чтв 22:14:57 #339 №478491 
>>478376
Java 1.4 такая-то ламповая была, почти как няшная сишка. Ничего лишнего, строго необходимый минимум.
Аноним 14/05/15 Чтв 22:15:17 #340 №478492 
>>478376
Java 1.4 такая-то ламповая была, почти как няшная сишка. Ничего лишнего, строго необходимый минимум.
Аноним 14/05/15 Чтв 22:19:02 #341 №478494 
>>478491
Ага, как раз оттуда эти зашкварные фабрики и полезли. Вместо того, чтобы написать Factory<Item> они пишут ItemFactory, сука пиздец
Аноним 14/05/15 Чтв 22:20:53 #342 №478495 
>>478490
Кого нас то? Кого нас? Я тут один, блять. Не устроил. Я бы и прямщас Го для андроида юзал, лишь бы ебучую жабу больше не видеть. Но ладно, так уж и быть, ГЦ вещь нужная, пусть оптимизируют. Stop-the-world параша никуда не годится.
lisp in go Аноним 16/05/15 Суб 01:09:59 #343 №479050 
http://www.oki-osk.jp/esc/golang/lisp2.html
Аноним 16/05/15 Суб 01:13:52 #344 №479054 
>>479050
Вся страница в лиспе.
Аноним 16/05/15 Суб 16:48:57 #345 №479286 
>>479151
Ты ошибаешься, братан. Го настолько не нужен, что даже лисперам на него похуй.
Аноним 16/05/15 Суб 16:58:11 #346 №479289 
>>479286
Тащемта лисперам на всё похуй. И вообще, интерпретатор лиспа способен запилить даже полный криворукий даун вроде меня на любом языке.
Аноним 16/05/15 Суб 17:08:35 #347 №479301 
>>479289
Что во внеочередной раз доказывает, что го соснул.
> интерпретатор лиспа способен запилить даже полный криворукий даун
Не совсем так. Если только какой-то очень-очень примитивный диалект лиспа. Даун даже r5rs запилить не сможет, не говоря уж об общелиспе
Аноним 16/05/15 Суб 17:08:39 #348 №479302 
>>479289
ну запили прямо сейчас на хтмл+ксс
Аноним 16/05/15 Суб 17:09:13 #349 №479303 
>>479302
язык программирования, а не разметки
Аноним 16/05/15 Суб 17:14:27 #350 №479309 
>>479301
> очень-очень примитивный диалект лиспа
Ну так суть лиспа-то будет. Там семь операторов всего надо что ли и дальше можно на этом строить что хочешь, разве нет? Я пилил такой примитивный из SICP, разве что с tail call оптимизацией даже.
Аноним 16/05/15 Суб 17:20:08 #351 №479316 
>>479309
>Ну так суть лиспа-то будет.
Нет. Суть лиспа в гомоиконности, а не примитивности.
>семь операторов всего надо что ли и дальше можно на этом строить что хочешь
Ну попробуй хотя бы часть cl построить на семи "операторах" функции тащемто, в лиспах нет операторов
Аноним 16/05/15 Суб 17:23:03 #352 №479317 
>>479286
>лисперам на него похуй
>>479289
>лисперам на всё похуй
Лисперам настолько похуй, что они кастуются в любой тред упоминанием лиспа и пытаются доказать, что лисп, не смотря на свою охуенность, никому, кроме двух калек не нужен.
Аноним 16/05/15 Суб 17:23:47 #353 №479320 
>>479316
Блять, начинается. Семь функций и у тебя есть твое совпадение структур кода и данных, макросы и т.д. Хули тебе еще надо, ёпт?
Аноним 16/05/15 Суб 18:15:36 #354 №479337 
>>479320
Ну что за хуйню ты пишешь? Можно было бы с натяжкой согласиться, если бы ты сказал, что достаточно read и eval. Но с большой натяжкой.
Рантайм старых лиспов, не говоря уж о современных, в разы сложнее семи функций. Ты можешь в этом убедиться сам, прочитав lisp in small pieces или поизучав clhs
Аноним 16/05/15 Суб 20:15:43 #355 №479376 
>>479337
>Рантайм старых лиспов, не говоря уж о современных, в разы сложнее семи функций.
Сложнее для того чтобы что? М?
Аноним 16/05/15 Суб 21:41:02 #356 №479422 
>>478396
АНАЛИТИКА!
Аноним 16/05/15 Суб 22:01:19 #357 №479430 
>>479317
Все хейтеры могут сразу пойти под струю.
Аноним 16/05/15 Суб 22:02:09 #358 №479431 
>>479430
Бля, не хотел никому отвечать, просто в тред хотел написать.
Аноним 17/05/15 Вск 18:46:03 #359 №479801 
>>478064
>начинаешь думать о том, как правильно обрабатывать ошибки, а не тупо поднимать их вверх по стэку
Запускаешь ты свою лабу, а с блоке чтения файла настроек среды у тебя скоррапченный файл, который существует, но не читается. Твои действия, обрабатывающий?
Аноним 17/05/15 Вск 20:48:35 #360 №479868 
- Одну минуту, - громко произнес Пайк, - прежде чем продемонстрировать вам способ распития портвешка, о котором все вы, как
будто, позабыли, я должен опорожнить свой кишечник.
Вот каким образом главпетух приступил к омерзительной операции. Его окружили четверо годибилов: один держал наготове большой ночной горшок, второй взял зажженную свечу и подставил ее поближе к анусу, чтобы было лучше видно происходящее, третий сосал ему член, четвертый, перекинув через руку белоснежное полотенце, целовал Пайка в губы. Тот, опершись еще на двоих
педерастов, поднатужился, и как только появилось невероятное количество дерьма, которое обыкновенно и регулярно выдавал хозяин параши, учитывая страшное количество поглощаемой им пищи, тот петух, что держал горшок, принялся восхвалять экскременты. «Какое прекрасное дерьмо! — восклицал он. — Ах, господин мой, какое превосходное говно! Как красиво вы испражняетесь».
Когда дифирамбы закончились, педераст, вооруженный салфеткой, языком очистил преддверие ануса, а горшечник подставил содержимое горшка под нос Пайку и опять громогласно восхвалял его. После этого мощная струя мочи ударила в рот сосателю, который тут же проглотил всю жидкость, полотенце завершило то, что не мог сделать язык, и четверо годибилов, оставшись без дела, долго сосали
поочередно язык, фаллос и задний проход распутника.
Аноним 18/05/15 Пнд 00:45:39 #361 №479994 
>>479868
проиграл с первых слов
мимоолдфаг, жюстину не читал
sageАноним 18/05/15 Пнд 00:47:03 #362 №479995 
Байтослесарь допил портвешок и тяжело отставил пустую бутылку к батарее ее же собратьев, молчаливо поблескивающих в углу убогой комнаты, где кроме этих бутылок, задроченого спектрума, найденого на помойке и затертого томика "Hacker's Delight" не было ничего. Байтоеб лег на прожженый и мятый матрац и забылся в хмельном сне.
Вот он стоит в свитере с оленями и ветер играет его немытой бороденкой. Чуть поотдаль стоят несколько карет, бентли и майбахов. Рядом громоздится сцена с кучей аппаратуры, где играют три человека. "Ого! Это же Нойзия! Та, у которой более 400 слоев баса!" - думает байтоеб, и слово по волшебству, один из людей на сцене оглядывается на него с раздражением. Чуть дальше видно несколько вертолетов. Рядом обильно уставленный банкетный стол - чего только на нем нет: лобстеры, устрицы, мясо по-мексикански, экзотические фрукты, и несколько сосудов с алкоголем. "Наверное портвешок" - радостно пронеслось в голове у слесаря, и он двинулся к столу с яствами. Подойдя чуть ближе, он увидел несколько человек во фраках и цилиндрах. Монокли поблескивали в свете нежного утреннего солнца, трости сияли начищенными золотыми набалдашниками. Лица этих людей характеризовала мудрость, строгость и бесстрастность. Лицо академика, ученого, первооткрывателя... Люди негромко и учтиво переговаривались между собою. Байтослесарь подошел ближе и, к своему разочарованию, заметил что сосуды на столе - бутыли с каким-то редким вином и дорогим коньяком. Портвейна там не было. Байтоеб испустил вздох разочарования. Люди в цилиндрах обернулись к нему. В одном он узнал Дона Сайма, в другом - Пола Грэма, в третьем - одного из воротил финансового мира, лица остальных тоже показались ему знакомыми. Люди, по всей видимости, играли в гольф, так как у многих из них, вместо трости, в руках были специальные клюшки - паттеры. "Элита!" - в панике подумал слесарь. Он развернулся чтобы убежать, но удар паттера настиг его с сокрушающей силой. Байтоеб упал на траву. В лицо его брызнуло что-то желтое и соленое. Последним, что помнил байтослесарь, был хохот элитариев, мочившихся неподалеку...
sageАноним 18/05/15 Пнд 00:55:00 #363 №480000 
А потом борщеед проснулся и пошёл доедать завтрашнее оливье
sageАноним 18/05/15 Пнд 00:56:44 #364 №480003 
>>480000
це гєт
Аноним 18/05/15 Пнд 01:41:39 #365 №480022 
>>479997
>В чем проблема?
В том, что ты дебил.
Впрочем, это уже твоя проблема.
Аноним 18/05/15 Пнд 12:43:13 #366 №480137 
>>480022
хорошо
Аноним 18/05/15 Пнд 17:00:45 #367 №480277 
Ребзя, такой вопрос, а как быстро работает reflect в Go?
Аноним 20/05/15 Срд 22:11:15 #368 №481854 
В этом ITT треде байтослесари сознаются, что с самого рождения опускаются на дно чана с говном и не покидают его до конца жизни. Любые формализмы, логические системы, концепции, идеи, правила проектирования, да и просто хорошего тона, чувство вкуса — все это для байтослесаря чуждо, он пытается убедить себя, что всего этого не существует в реальном мире.

Лаба1, обертки над обертками, вот я жизнь повидал, у нас в армейке/на зоне и не такое было, а ты теоретик лаборант говна не нюхавший, в реальной жизни все иначе, вот у меня на заводе кудах-тах-тах! — кричит он, наворачивая очередной черпак дерьма, жадно причмокивая.
Аноним 22/05/15 Птн 14:09:22 #369 №482803 
>>473014
>StackOverflow тебе не поможет
>обращаться к нам
пиздец серенькнул
Аноним 23/05/15 Суб 17:10:51 #370 №483407 
Go - это такой питон, только с простенькими типами (в питоне их вообще нет),
конкурентной моделью (хуёвой, использовать ссаные каналы с переключением контекста, когда вся индустрия давно уже акторами или STM'ом долбится, - вершина долбоебизма)
и компиляцией в натив (весьма толстый бинарь на выходе). Язык откровенно говоря примитивный: нет классов, нет иксепшнов, нихуя нет.
В конкурентных задачах сосёт у нормальных конкурентно-ориентированных ФП-языков вроде Erlang и Clojure.
Главное преимущество Go - его максимальная простота, так что любой обгвидок или ноджеесовец может выучить его за вечер и начать использовать для своей перделки,
на это создатели и ставили. В общем-то для больших задач, как и кложа не годится, но быстро прототипировать на нём норм, будешь модным.
Аноним 23/05/15 Суб 17:47:20 #371 №483427 
>>483407
> быстро прототипировать
Но зачем, когда есть диез/жаба?
Аноним 23/05/15 Суб 18:02:53 #372 №483434 
>>483427
>статически типизированная многословная ёба-ООП тырпрайз хуерга для Top-down программирования.
>быстро прототипировать

ROFL xDD))) Ладно если б ещё какой-нибудь лишп или пистон привёл, но это, просто ОМГ ВАЩЕ ФЕЙСПАЛМ
Аноним 23/05/15 Суб 18:32:40 #373 №483464 
>>483434
Не знаю о чем ты, мань, я на диезе с VS спрототипирую что угодно кроме математики в 2.5 раза быстрее, чем ты будешь дрочить свой лишп или пестон, и у меня будет оче простой и понятный ООПе кот.
Аноним 23/05/15 Суб 18:38:48 #374 №483475 
>>483434
Да и вообще, каким лютым уебком надо быть, чтобы чем-то мешала статическая типизация? Пиздец.
sageАноним 23/05/15 Суб 18:42:48 #375 №483480 
>>483464
> мань
> 2015
ясно
понятно
так и запишем
Аноним 23/05/15 Суб 18:44:23 #376 №483482 
>>483464
>>483475
>эти фантазии штудента

ясно, не продолжай
sageАноним 23/05/15 Суб 18:47:21 #377 №483488 
>>483482
это не один и тот же человек, даун.
Аноним 23/05/15 Суб 19:01:28 #378 №483501 
>>483482
>эти фантазии штудента
Это студентики, вроде тебя, как раз любят прототипировать лабу2 на пестоне. Нормальные люди поигрались на первом курсе и обходят всю эту парашу стороной.
Аноним 24/05/15 Вск 15:04:11 #379 №483892 
Антоны, как думаете, Google переведёт разарботку под Android сугубо на Go или это вообще не о том опера? Просто, я совсем не понимаю для чего, кроме web создавался этот язык?
Аноним 24/05/15 Вск 15:31:30 #380 №483903 
>>483892
Обычный попил. Бабло освоили, проект прикрыли. Какие-то фрики в нем колупаются.
Аноним 24/05/15 Вск 15:35:31 #381 №483904 
>>483892
Docker запилили.
Аноним 24/05/15 Вск 15:37:36 #382 №483907 
>>483903
Ты дурак чтоли ? у меня уже 4 заказ за 1.5 месяца проектов на Golang. С бюджетами около 300 тыс за проект.
Аноним 24/05/15 Вск 16:18:14 #383 №483921 
>>483907
Не возьмешь джуном? Буду подай/принеси/метод напиши.
Аноним 24/05/15 Вск 22:17:09 #384 №484183 
>>483907
>4 заказа
>1.5 месяца
>300 за проект
Только в твоем манямирке
sageАноним 25/05/15 Пнд 11:22:06 #385 №484399 
>>483892
>для чего, кроме web создавался этот язык?
Позволю самому создателю го пояснить нам, зачем он нужен:
>The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.
>>483464
>простой и понятный
>ООПе
Почини свою абстрактную фабрику траленка, а то она какую-то толстоту производит.
>>483407
>Go - это такой питон, только [дохуя причин, по которым он на питон вообще не похож]
А Java - это такой Haskell.
Аноним 25/05/15 Пнд 13:06:07 #386 №484443 
>>484399
>Почини свою абстрактную фабрику траленка, а то она какую-то толстоту производит.
Я не виноват, что у зкдаунов-теоретиков вроде тебя ООП ассоциируется только с абстрактными фабриками и прочим GoFодрочем. Почти всё делается на наследовании и интерфейсах, иногда на композиции и на правильном декоплинге, но среди вас же софтвар архитектов чуть менее чем нихуя, откуда вам знать-то это. Дауны, блять.
Аноним 25/05/15 Пнд 13:07:05 #387 №484444 
>>484399
Почитайте для начала сурс диез-фреймворка что ли, может научит чему.
Аноним 25/05/15 Пнд 14:25:48 #388 №484471 
>>484399
> They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python
Все встало на свои места, типичный годаун, которому надо, чтобы язык пиздил его по пальцам.
Аноним 26/05/15 Втр 04:20:35 #389 №484838 
>>484471
Сказал любитель строгой статической типизации.
Аноним 26/05/15 Втр 11:31:22 #390 №484966 
https://github.com/mholt/caddy
Я вам покушать принёс, братцы.
Работает шустренько, но это не самое важное. Главное что один бинарник и всё красиво.
Особенно радует структура (исходники) всё красиво и лаконично
Аноним 26/05/15 Втр 11:38:58 #391 №484972 
>>484966
> один бинарник
Лол
> 2015
> один бинарник
> ничоси!

> красиво и лаконично
> //15 lines of comments
> if err != nil {
> ...
> //15 lines of comments
> if err1 != nil {
> ...
> //15 lines of comments
> if err2 != nil {
Аноним 26/05/15 Втр 11:43:02 #392 №484976 
Я тут в вебаче пилю брутфорсер для IP-камер. Сначала just for fun начал на плюсах пилить, потом охуел и сбежал пробовать Go. Понравилось.

Отрейтьте мой код, а то я третий-четвертый день вообще знаю Go, это моя первая программа, и ничего, кроме документации, я по нему еще не читал.

https://github.com/superhacker777/hikka
Аноним 26/05/15 Втр 11:45:36 #393 №484980 
>>484838
Будто что-то плохое, право слово!
Аноним 26/05/15 Втр 12:55:34 #394 №485020 
>>485012
> Чего плохого в том, что язык достаточно примитивный и что говорится, verbose, если он позволяет за три месяца готовить полностью функционального кодера, который идеально вписывается в workflow?

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

Не зря есть предел числа программистов на любом проекте, не случайно lines of code - одна из основных метрик качества кода и не случайно в сегодняшнем софте столько проблем. Меньшее число более опытных программистов, пишуших меньше кода и больше тестов на более экспрессивных языках - это более сложно-реализуемый, но гораздо более правильный подход, чем то, что делает гугл с его рабской системой.
Аноним 26/05/15 Втр 13:04:17 #395 №485027 
>>485008
> tipycal
Опечатка.

Ну а в целом, нашел, конечно, до чего доебаться.
Аноним 26/05/15 Втр 13:18:20 #396 №485035 
>>485029
>>485029
Разве Гугл не берет на работу лучших программистов в мире?

Три года? Если человек более-менее прилично не научился писать на джаве за любую половину этого времени - вон из профессии!

У тебя все с ног на голову, честно. Один и тот же человек, с одним и тем же уровнем знаний. Но с точки зрения джавы он макака, а с точки зрения Го - эффективный и качественный программист. Охуеть теперь, давайте на бейсике начнем писать.

Go безобразен не тем, что простые вещи в нем делаются просто, это-то как раз хорошо. Но он не позволяет сделать сложно, даже если тебе это реально надо и так будет лучше.
Аноним 26/05/15 Втр 13:22:48 #397 №485040 
>>485029
У тебя какой-то логический фейл сплошной в твоем псте. Получение работы в %companyname% как и languagename сам по себе не может сделать из макаки программиста. Программист должен понимать принципы программирования и всю хуйню, иначе думать и решать проблемы всё равно придётся хорошему 35-летнему программисту и тимлиду Васе.

Гуглу хорошо, у него есть некоторое количество Вась, а вот у тебя-то их нету. И когда схлынет первый хайп - "о, я могу погромировать, это же так ПРОСТ" и попрут проблемы, Васи не будет рядом, а ты так ничему и не научился, тебе язык не дал ничего.

И ты будешь смотреть на зарплату Васи и думать, где же ты проебался всё-таки?

Как говорится,
complex problems do not have simple solutions. Мы это уже проходили с С же, ну.

Аноним 26/05/15 Втр 13:28:25 #398 №485047 
>>485035
> Разве Гугл не берет на работу лучших программистов в мире?
Common misconception. Такие конторы берут вообще всех подряд же, не зря же они кучу студентов стажируют. Лучших программистов чуть менее чем вообще нихуя. Хороших-то хрен найдешь.
Аноним 26/05/15 Втр 13:30:27 #399 №485048 
>>485029
> как хайлоад, где работают совершенно другие законы и "ололо проектирование" уходит на второй план
Ты наркоман штоле, сука?
Аноним 26/05/15 Втр 13:32:17 #400 №485049 
>>485029
> ололо
Илюш, ты чтоль?
Аноним 26/05/15 Втр 14:27:56 #401 №485080 
>>473553
Сад бат тру.
sageАноним 26/05/15 Втр 14:29:08 #402 №485081 
>>485029
Это, наверное, самый тупой пост, который я когда-либо читал в /зк.
sageАноним 26/05/15 Втр 14:39:48 #403 №485088 
>>485081
а как же >>485081?
Аноним 26/05/15 Втр 15:09:28 #404 №485097 
>>485081
Это потому что афтару 16 лет, стиль илюшки легко узнаваем. Предлагаю сделать это имя нарицательным для долбоебов в зк.
Аноним 28/05/15 Чтв 12:38:42 #405 №486457 
Гошники, объясните вот что. Многие говорят, что Go хорош для web/highload, многие ждут реализации 1.5, который позволит писать под Android NDK и даже под iOS. А вот как системный язык Go стоит рассматривать? Вроде как Роб Пайк сказал, стиле Страуструпа: "Си больше не нужен! Есть Го!", а это, в принципе, может означать, что Go и как системный язык катит? Что думаете? Поясните в чём не прав.
Аноним 28/05/15 Чтв 12:40:29 #406 №486458 
[code]
test
[/code]
Аноним 28/05/15 Чтв 12:44:43 #407 №486459 
>>485097
что за илюшка?
Аноним 28/05/15 Чтв 12:48:32 #408 №486461 
>В аспекте производительности Go обсирает Ruby/Python/Node в качестве бэкенда для веб-приложений.
Уже соснул у http://crystal-lang.org/
http://kokizzu.blogspot.ru/2015/04/crystal-internal-benchmark.html
Аноним 28/05/15 Чтв 13:06:52 #409 №486473 
>>486461
Вот только кристал все еще в альфа версии, а го уже вовсю используется в продакшоне.
Аноним 28/05/15 Чтв 13:11:45 #410 №486476 
>>486473
В альфа, а уже дает посасывать production-ready го.
Аноним 28/05/15 Чтв 13:18:10 #411 №486482 
>>486476
Он начнет давать посасывать когда на нем хоть что-нибудь рабочее напишут. К релизу результаты бенчмарков еще 10 раз поменяются.
Аноним 28/05/15 Чтв 13:27:35 #412 №486491 
>>486457
> системный язык
> сборщик мусора
Ну ты понел.
Аноним 28/05/15 Чтв 13:38:39 #413 №486500 
>>486491
>2015
>вручную пердолиться с памятью
Ну ты понел. Пусть этим занимаются байтонегры и аутисты.
Аноним 28/05/15 Чтв 14:55:02 #414 №486542 
>>486500
Годауны не слышали о других схемах автоматического управления памятью. Но что с них взять?
Аноним 28/05/15 Чтв 14:55:57 #415 №486544 
>>486500
> байтонегры
> implying го не квинтэссенция байтоебли
Аноним 28/05/15 Чтв 15:10:06 #416 №486552 
Так сосёт Go у D или нет?
Мне тут риалтайм сайтик писать, а всё никак не определиться.
[sаge] Аноним 28/05/15 Чтв 15:15:36 #417 №486556 
>>486552
посасывает
Аноним 28/05/15 Чтв 15:21:26 #418 №486562 
>>486552
> риалтайм сайтик
> риалтайм
> сайтик
> риалтайм
Пиши на го, тебе подходит.
Аноним 28/05/15 Чтв 15:28:37 #419 №486568 
>>486562
Да ладно тебе.
Аноним 28/05/15 Чтв 15:28:41 #420 №486569 
>>486482
Я тоже этого боюсь, но пока сосёт го :3
Аноним 28/05/15 Чтв 15:31:22 #421 №486571 
>>486569
А что на кристале пишут? Я не тралль, правда интересно.
Аноним 28/05/15 Чтв 15:32:35 #422 №486575 
>>486571
Ничего. Язык для красноглазых онли.
Аноним 28/05/15 Чтв 16:09:57 #423 №486594 
>>486571
Пока ничего, но лично я предполагаю, что все рубиновые богатства постепенно на него переедут.
Аноним 28/05/15 Чтв 16:34:23 #424 №486606 
14328200638360.jpg
>>486594
>все рубиновые богатства постепенно на него переедут
Вместе с вакансиями?
Аноним 28/05/15 Чтв 16:43:59 #425 №486613 
>>486606
Почему бы и нет, если это одни и те же яйца.
Аноним 28/05/15 Чтв 20:21:43 #426 №486727 
>>486461
http://crystal-lang.org/2013/12/05/garbage-collector.html

> added Boehm GC
> we might consider adding some scheme of ARC for the future
> I think ARC could be combined with garbage collection as well

Взлольнул чёт.
Аноним 28/05/15 Чтв 21:58:26 #427 №486844 
>>486457
Пайк так-то много хуйни несет, его слушать не надо. Подсветка синтаксиса по его мнению тоже не нужна, например.
Аноним 28/05/15 Чтв 22:52:37 #428 №486891 
>>486844
> Подсветка синтаксиса не нужна
> охуительные портянки процедурного кода лучших традиций
Он там у вас совсем ёбнутый что ли?
Аноним 28/05/15 Чтв 22:57:14 #429 №486896 
>>486891
> Подсветка синтаксиса не нужна
Наследие Plan 9. Ты ACME видел?
> охуительные портянки процедурного кода лучших традиций
Наследие С.
Аноним 28/05/15 Чтв 22:59:02 #430 №486901 
>>486891
А то. Зацени как он пытался осилить функциональщину. https://github.com/robpike/filter
Аноним 28/05/15 Чтв 23:00:35 #431 №486905 
>>486896
>Наследие Plan 9.
Скорее наследие злой учительницы по математике. https://groups.google.com/forum/#!msg/golang-nuts/hJHCAaiL0so/kG3BHV6QFfIJ
Аноним 28/05/15 Чтв 23:23:12 #432 №486938 
>>486896
Теперь увидел. Лучше бы я этого не видел. У меня странное ощущение от всего этого, особенно когда смотришь в другом окне какой-нибудь build 2015.
Аноним 28/05/15 Чтв 23:33:26 #433 №486947 
>>486901
Пиздец какой-то. В D это за 3 строчки пишется же, и принимает и конечные слайсы и любые итераторы. А у него +-1 пиздец
> var ins [1]reflect.Value // Outside the loop to avoid one allocation.
И еще хуйни вагон.
> Special case for strings, very common.
Аноним 28/05/15 Чтв 23:43:23 #434 №486953 
>>486947
Ты не то читаешь. Самое главное это вывод.
>I just use "for" loops. You shouldn't use it either.
Все, поцоны, сворачиваем лавку. Божество сказало, что функциональщина не нужна.
Аноним 29/05/15 Птн 01:33:55 #435 №487009 
Мне так и не ответили в соседнем треде.

А может ли го загрузить несколько ядер, вот прямо из коробки, без изменения кода? Или нужно как обычно import threading, mutex, queue и прочее?
Аноним 29/05/15 Птн 01:46:53 #436 №487013 
>>487009
Может. Только нужно в переменных окружения при конпиляции указать GOMAXPROCS или уже в самой программе серез runtime задать
http://golang.org/pkg/runtime/#NumCPU
http://golang.org/pkg/runtime/#GOMAXPROCS
В 1.5 сделали по дефолту установку на максимальное колво доступных ядер
Аноним 29/05/15 Птн 01:58:58 #437 №487015 
>>487009
>без изменения кода
Так только хаскиль может. В языках смертных без изменения однопоточный код никто тебе автоматически не распараллелит.
Аноним 29/05/15 Птн 02:00:55 #438 №487016 
>>487009
>нужно как обычно import threading, mutex, queue
Чуть лучше. Корутины и каналы же.
Аноним 29/05/15 Птн 12:37:22 #439 №487217 
>>487017
Вообще-то он серьезно не принимает посветку синтаксиса и не любит моноширинные шревты. Вон выше про акме написано, в нем подсветки нет как раз потому что пайк посчитал, что не нужна.
Аноним 29/05/15 Птн 12:47:11 #440 №487223 
>>487017
> И он как никогда прав.
Функциональщина может и не нужна, но, что бы там всякие Пайки и Гвиды не говорили, map, reduce, where и прочий чейнинг охуительно улучшает читаемость кода, если применять его где надо запросы к данным сложнее sum и min и не сувать вместо всего.
Аноним 29/05/15 Птн 14:30:18 #441 №487322 
А как в go хранить 300 миллионов объектов?
Аноним 29/05/15 Птн 15:39:28 #442 №487400 
>>487383
> 300000000
В нормальных языках это пишется 300_000_000. Но даже тут го обосрался.
Аноним 29/05/15 Птн 15:54:24 #443 №487412 
>>487406
То, что 3e8 как триста миллионов читается в разы хуже, даун.
Аноним 29/05/15 Птн 15:56:03 #444 №487413 
14329041635590.jpg
>>487406

> Go тут дает на ротан остальным

экспоненциальная нотация есть во всех мейнстримовых языках, Мань
Аноним 29/05/15 Птн 15:58:16 #445 №487414 
>>487413
Только в нормальных языках она вещественного типа и это логично. Я надеюсь в го есть разница между целым и вещественным типом?
Аноним 29/05/15 Птн 16:15:46 #446 №487428 
>>487421
> Спецификация Go полностью читается
поссал на читателя спецификаций
уёбуй, скучный мудила
Аноним 29/05/15 Птн 16:19:34 #447 №487434 
А чего это го-петушки такие буйные?
Аноним 29/05/15 Птн 16:27:16 #448 №487443 
>>487421
> физика
> программирование
Ты полный даун, не иначе.

Аноним 29/05/15 Птн 16:37:26 #449 №487449 
>>487430
> фундаментальные знания
> задрачивание спецификаций
зачем нужен плоский зад, если есть светлый ум?
Аноним 29/05/15 Птн 16:45:19 #450 №487454 
>>487444
Ты русские буковки читать-то умеешь? Похоже не очень. Я сказал читается быстрее, даун.
Аноним 29/05/15 Птн 16:47:08 #451 №487456 
>>487451
прочтение спеки = задрачивание
не задрачивание - это чтение мануала или другого пособия.
Аноним 29/05/15 Птн 16:47:48 #452 №487458 
>>487451
> во многих тонкостях языка
Но в нормальных языках нет ебанутых тонкостей, сделанных ебанутым на всю голову только чтобы выебнуться, как с план9.
Аноним 29/05/15 Птн 16:51:23 #453 №487460 
>>487455
Ты тупорылый? При чтении кода - быстрее == лучше. Медленнее == хуже. Хотя кому я объясняю, годауны без проблеска логики в атрофированном мозге пишут 3e8 вместо триста_миллионов потому что короче, зато .map().reduce() - это нет, это от сатаны. Пиздец.
Аноним 29/05/15 Птн 17:03:34 #454 №487471 
>>487466
> 3e8 — это стильно
Вся суть годаунов, просто вся суть. Стильно, блять. Сука.

мимо-выпусник-фопфа
Аноним 29/05/15 Птн 17:05:05 #455 №487475 
>>487470
> КОДИТЬ, а не заниматься хуепроектированием и "паттернами"
Вот из-за таких же дегенератов как ты, вместо нормального подхода к программированию мы имеем тонны говна с хартблидами.
Аноним 29/05/15 Птн 17:05:49 #456 №487476 
>>473014
>Криптография, модули для работы с файловой системой, HTTP, JSON, базы данных, криптография

А криптография то есть?
Аноним 29/05/15 Птн 17:06:45 #457 №487478 
>>487476
Самый используемый модуль же, куда без неё-то.
Аноним 29/05/15 Птн 17:07:47 #458 №487480 
>>487470
Семён семёныч, ну что же вы.
Аноним 29/05/15 Птн 17:38:06 #459 №487503 
>>487485
>который потом смогу расширять и по мере потребности
Маняфантазии диванного теоретика ИТТ. Если ты не работаешь, то хоть всякие failure story почитай про свой MVP что ли.

> целочисленный литерал
Схуяли целочисленный? В физике, например, он не целочисленный.
Аноним 29/05/15 Птн 17:39:28 #460 №487505 
>>487487
Псст. Не говорите ему о 0x.
Аноним 29/05/15 Птн 17:45:48 #461 №487516 
>>487466
Опытному специалисту достаточно stackoverflow чтобы написать то, что от него требуется и не читать спецификацию
Аноним 29/05/15 Птн 18:01:17 #462 №487532 
>>487516
Опытному специалисту достаточно stackoverflow чтобы скопипастить то, что от него требуется и не читать спецификацию
Аноним 29/05/15 Птн 18:12:39 #463 №487545 
>>487506
Понятия не имею, физику приплёл ты.
Аноним 03/06/15 Срд 00:25:52 #464 №490218 
Моча совсем обезумела? Нахуя второй тред выпилил?
Аноним 03/06/15 Срд 00:45:56 #465 №490232 
>>490218
Этот же не в бамплимите, хули ты хочешь
Аноним 03/06/15 Срд 01:18:36 #466 №490247 
>>490218
В прошлом треде похоже модера коллективно обоссали. Он оскорбился.
sageАноним 03/06/15 Срд 02:06:21 #467 №490271 
>>490218
Я бы и этот выпилил. Всё равно все перекатились в чятек и обсирают го там.
sageАноним 03/06/15 Срд 07:22:25 #468 №490327 
>>490218
его сам автор выпилил даун
>>490247
эти манямечты
Аноним 03/06/15 Срд 07:59:54 #469 №490335 
>>490247
Он же вроде не Говноед?
Аноним 03/06/15 Срд 13:54:29 #470 №490449 
>>490327
>его сам автор выпилил даун
ОПу бомбануло? От чего интересно, лел.
Аноним 03/06/15 Срд 14:40:36 #471 №490469 
>>490327
А что оп может выпиливать тред?
Аноним 03/06/15 Срд 15:01:21 #472 №490481 
>>490469
Да, если он мочератор.
Аноним 03/06/15 Срд 17:23:16 #473 №490539 
Друзья... !!!ОБЪЯСНИТЕ МНЕ!!!

Я тут посмотрел на данные по скорости языка Go... Так вот, он медленнее Java, оказывается. Я то думал, что разрабатывали Go как замену C++, а он работает медленнее Java.

Объясните, может, я чё-то не то посмотрел? Почему Google хочет сменить, например, в Android NDK С++ на Go? Это вообще полный бред, что Go задуман как системный язык? Или он для web?

И тогда, если он только для web, то нахуй он нужен, если есть Python? Я совсем нихуя не понимаю.

PS Если у вас начало вдруг бомбить, знайте - это сообщение не для того, чтобы оскорбить, я ХОЧУ разобраться в вопросе.
Аноним 03/06/15 Срд 17:46:09 #474 №490549 
>>490539
>если он только для web, то нахуй он нужен, если есть Python
Быстрее примерно в 30 раз.
Аноним 03/06/15 Срд 17:48:42 #475 №490552 
>>490549
Сишка быстрее в 30 раз, а го медленнее жабы. Тем более что скорость числодробления в вебе не так важна.
Аноним 03/06/15 Срд 17:49:19 #476 №490555 
14333429590330.png
>>490539
Предлагаю разобрать по частям все тобою написанное:

>Я то думал, что разрабатывали Go как замену C++, а он работает медленнее Java.
Go разрабатывается, как безопасная замена C и не должен работать быстрее Java.

>Почему Google хочет сменить, например, в Android NDK С++ на Go?
Потому что NDK позволяет строить максимально производительные С++ приложения для андроида, Go похвастаться таким не может.

>И тогда, если он только для web, то нахуй он нужен, если есть Python?
Ты смотришь на вещи, как маленький мальчик. Go действительно можно использовать для веба, потому что он:

а) быстрый;
б) очень мало жрет;
в) легко скалится (представляешь, как запускают приложения на кластерах или целых dedicated data centers?);

>Python
Пайтон, в свою очередь, работает в 20-30 раз медленне Go и много жрет. Скалится питон не то, чтобы плохо, но не так хорошо, как хотелось бы.

>я ХОЧУ разобраться в вопросе.
Это очень похвально!
Аноним 03/06/15 Срд 17:53:22 #477 №490558 
>>490555
>замена C
>не должен работать быстрее Java.
Проиграл конечно. Не хейтер ни разу, если чо.
Аноним 03/06/15 Срд 17:54:27 #478 №490560 
>>490555
Максимальная благодарность тебе за развернутый ответ. Но, получается, что Go годен только для web? Например, в Android NDK лучше и не стоит ждать его?
Аноним 03/06/15 Срд 17:59:51 #479 №490565 
>>490558
Ну, он не должен работать быстрее Java хотя бы потому что он существует всего-навсего пять лет и реально разрабатывается маленькой командой из десяти человек (тем более, не на фултайме), не считая рандомные патчи от мимопроходящих. Теоретически, Go упирается исключительно в GC. Как только GC в Go будет такой же быстрый, как и в Java — попляшем!

>>490560
>Но, получается, что Go годен только для web?
Нет, на нем еще прикольно писать разные server-side утилиты прочий DevOps.
>Например, в Android NDK лучше и не стоит ждать его?
NDK лучше хотя бы потому что NDK построен на самом надежном и проверенном временем ЯП в мире — С++. Я думаю, что к году эдак 2017-2018, когда скорее всего таки выйдет Go 2, перспектива использования Go на андроиде выйдет на новый уровень.
Аноним 03/06/15 Срд 18:07:43 #480 №490575 
>>490565
> самом надежном и проверенном временем ЯП в мире — С++.
От этого проиграл даже больше, чем тут
>>490558
Аноним 03/06/15 Срд 18:14:18 #481 №490585 
>>490575
Ну и что тебя не устраивает в вышесказнном предложении?
Аноним 03/06/15 Срд 18:23:36 #482 №490595 
>>490585
Надежность и проверенность С++
Аноним 03/06/15 Срд 20:09:44 #483 №490663 
14333513845680.jpg
В Go 1.5 очень скоро появится дохуя всего замечательного (http://talks.golang.org/2015/state-of-go-may), а в частности:

— Всю кодбазу компилятора перевели на Go
Параллельный GC (уменьшили задержки до 10 мс и обещают давать непосредственно исполняемому коду как минимум 4/5 рантайма), просто ОХУЕННО
— Улучшили scalability, эффективность на многоядерной архитектуре значительно возросла
— Производительность почти по всем бенчмаркам в среднем возросла на 10-15%, в редких случаях — до 30%
— Теперь Go можно собирать под iOS и новые устройства Apple (вроде iWatch), а также под linux/arm64 и openbsd/arm.
— Теперь из Go-програм можно собирать shared libraries и собственно линковать их (скажите привет проприетарным библиотекам)
— При ручной инитилизации словаря можно не писать каждый раз тип ключа
— Утилиту go doc сделали еще более охуенной
— Гугловский трейсер (https://github.com/google/trace-viewer) теперь могет анализировать рантайм Go приложений
Go запустили на айфоне!
— Добавлена утилита gomobile которая кагбэ намекает в каком русле продолжается разработка мобильной ветки

Что я вам скажу, друзья... Это просто ебанный, мать его, WIN!
Аноним 03/06/15 Срд 20:36:29 #484 №490676 
>>490663
>4/5 рантайма
G1 ссыт вам на лицо
>Производительность почти по всем бенчмаркам в среднем возросла на 10-15%, в редких случаях — до 30%
Это, прости, JIT запилили или опять цифры с потолка взяли?
sageАноним 03/06/15 Срд 21:14:19 #485 №490705 
>>490663
> Теперь из Go-програм можно собирать shared libraries и собственно линковать их
> скажите привет проприетарным библиотекам
Что ты несёшь вообще?
Аноним 03/06/15 Срд 21:19:20 #486 №490709 
>>490663
> Параллельный GC
> ОХУЕННО
In particular the mutators will have to monitor whether the mark phase is active and if so perform some write barrier work when mutating pointers. Furthermore each mutator will occasionally be asked to suspend and scan its stack. Similar to what we do today, mutator allocation may require the mutator doing sweep work on behalf of the GC.
> write barrier
> suspend and scan its stack.
Пиздец. Просто пиздец.
Аноним 04/06/15 Чтв 13:54:59 #487 №490927 
>>490705
Видел, как nvidia дрова для линукса распространяет?

>>490709
Молодой человек, вам что-то не нравится?
Аноним 04/06/15 Чтв 13:57:03 #488 №490928 
>>490676
>G1 ссыт вам на лицо
>implying, что Go vs Java это честный факт.

>Это, прости, JIT запилили или опять цифры с потолка взяли?
Нет, просто по-улучшали сборщик мусора, стандартную библиотеку и это все.
Аноним 04/06/15 Чтв 20:23:14 #489 №491212 
>>490928
А вы теперь к бенчмаркам примешиваете время сборки мусора, серьезно?
Аноним 04/06/15 Чтв 20:26:00 #490 №491216 
>>491212
Если бенчмарк имеет цель замерить производительность языка в типичных приложениях - да, конечно. Было бы странно не примешивать.
Аноним 04/06/15 Чтв 21:25:12 #491 №491244 
>>490927
> Молодой человек
Илюша, плз, смешно же
Аноним 04/06/15 Чтв 21:48:49 #492 №491253 
>>491216
ORLY?
Ты понимаешь, что гц это очень специфичная штука, которая использует внутри себя тысячи эвристик и делает, что душа пожелает?
И когда ты сравниваешь что-то, к чему примешан гц, то ты фактически сравниваешь хуйню, яблоки с самолетами, блять.
У тебя один режим на эоконмию памяти, один на latency и один на throughput, а рантайм адаптивно между ними переключается.
Ты сравниваешь уже не код, а то, как всё вокруг чего ты сравниваешь плодит ебучий мусор или переполняет свои локальные буферы аллокации или еще хуй пойми что.

Покажи бенчмарки с 10-15% пожалуйста.
Аноним 04/06/15 Чтв 22:04:39 #493 №491260 
>>491253
Вот они и сравнивают, насколько адекватно в среднем ведет себя рантайм, стандартная библиотека, и т.д. - платформа в целом, в общем. Потому что только это и имеет смысл сравнивать - сферический код без платформы ты никогда нигде не увидишь.

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

>Покажи бенчмарки с 10-15% пожалуйста
Да я вообще мимопроходил, ни разу кода на го не видел.
Аноним 04/06/15 Чтв 23:34:17 #494 №491345 
>>491253
> гц это очень специфичная штука, которая использует внутри себя тысячи эвристик и делает, что душа пожелает?
Проигрываю просто в голос уже, хватит.
Аноним 05/06/15 Птн 00:38:23 #495 №491404 
Не похуй ли как сборщик работает, тут же не джява, где алокация на каждый чих. Особенно если учитывать, что от сегментных стеков они избавились.
Аноним 10/06/15 Срд 18:04:33 #496 №494642 
sageАноним 10/06/15 Срд 19:33:25 #497 №494699 
>>494642
Илюш, мы уже выяснили, что ГОвно никому нахуй не сдалось, потому что есть >>493722
Аноним 17/06/15 Срд 19:05:01 #498 №498645 
Пацаны, а какого хуя еще никто не додумался написать для Go какой-то препроцессор или вообще к хуям форкнуть Go и сделать свой Go с блэкджеком и генериками?
Аноним 17/06/15 Срд 20:15:05 #499 №498676 
Почему Go обречён на успех (обновлено) — http://habrahabr.ru/post/260223/

Почему Go превосходит посредственность — http://habrahabr.ru/post/260451/
Аноним 17/06/15 Срд 20:43:00 #500 №498697 
>>498645
Но зачем, если есть нормальные, экспрессивные языки?
sageАноним 17/06/15 Срд 23:32:02 #501 №498799 
>>473014
>В принципе, Go можно использовать везде, где ты стал бы сегодня использовать С (за исключением разных I/O штуковин вроде драйверов)
>garbage collector
>использовать вместо Си
Такая жирнота уже в ОП-посте
comments powered by Disqus