Я искренне офигеваю от наглой тупости го. Это язык, где тупость и очевидность ценится, возводится на пьедестал и является объектом поклонения (если вы думали что это питон, то го превосходит его на десятичный порядок как минимум).
Ну то есть, для начала:
1) Там нет generics. Но есть указатели (со сборкой мусора, не волнуйтесь), и есть возможность, соответственно, передавать by value (c копированием) и by reference (что позволяет не выделять место на куче для каждой фигни — крайне нетривиальный вопрос в джаве).
2) Очень тупое ООП, напоминающее таковое в раннем перле (если кто застал). Ссылка на this передаётся первым аргументом в функции (выделяется отдельными скобками, чтоб никто не перепутал).
3) Нет и не будет map, reduce и filter. Роб Пайк сказал, что они не нужны. Вася, не выпендривайся и слушай песню про валенки циклом for, как в прошлом веке. Чтобы ни у кого не было соблазна написать их самому (что несложно), Роб превентивно сделал это сам, выложил на гитхаб и сказал, что использование вот такого функционального гейства discouraged. Мужик!
4) Да, кстати, ровно два вида коллекций в стандартной библиотеке — массив с неизменным размером (и немного синтаксического сахара для копирования данных в новый массив, если прежний стал слишком мал), и map. Should be enough for everyone, не так ли? Впрочем, Lua вообще обходится одной коллекцией, ничо, живут.
5) Иммутабельности тоже, разумеется, нет. Кто-то таки сделал персистентные структуры данных и выложил их на гитхаб. Правда, не вполне понятно зачем они нужны в отсутствие простейших функциональных примитивов. Разве что тренироваться в рекурсии, почитывая SICP. При этом нельзя сказать, что это быдлоязык навроде PHP (хотя с первого взгляда может так показаться). В быдлоязыках (это не только PHP, хотя не будем показывать пальцем) помимо простоты хуже воровства существует ещё множество неочевидных corner cases, про которые нужно знать и обходить стороной. Тут такого нет — всё брутально просто и вырублено топором, оставлено только самое нужное (concurrency-примитивы входят в число самого нужного). Это внушает уважение. Вообще, Роб Пайк дал нам целый Plan9, и быдлокодером его считать нельзя.
В общем, рекомендую, особенно для душевного отдыха и зализывания ран после скалы.
Хорошо. Тогда почему на него переезжают мейлы, дропбоксы, вкшки. Что же нашли они, тупицы, в этом варварском и примитивном языке? Ладно, в таком случае расскажи, чем сам занимаешься, порекомендуешь что-нибудь?
>>812572 >Что же нашли они, тупицы, в этом варварском и примитивном языке? Скорость. Это же обёртка над ассемблером со сборкой мусора! А мне го нравится.
>>812565 Swift. А если из 2 предложенных, то возможности для трудоустройства примерно одинаковые (сейчас, по-моему, Скала более востребованная, но у Го ещё всё впереди), лучше выбирать исходя из каких-то других критериев, учитывая, что общего у этих языков чуть больше чем ничего.
>>812480 (OP) В 95% случаев этот язык используется там, где это не-нуж-но, а просто из-за хайпа и нежелания юных дарований учить ООП, ORM и прочие сложные вещи. Зачем это, когда можно накатать процедурную говнопростыню? Ну какой нахуй толк от скорости Go, когда боттлнеком является база и сеть? Даже тормознутые интерпретируемые языки в состоянии перекинуть пару килобайт из базы в сокет за пару десятков микросекунд. А пару сотен миллисекунд (если не больше) сожрет база. В любом случае, если код бэкэнда является супертонкой прокладкой, то времени цпу он забирает очень мало на любом языке.
А те, кто реально пишут backends со сложной логикой, когда на инстансе в RAM висит несколько гигабайтов данных, а на рдбмс опора идет лишь как на persistance storage (привет разработчики ммошек, рекламных сетей и прочих хайлоадов) - там разрабатывают чуваки, которые и на c++/c#/java спокойно это накатают (не хочу дискриминировать другие языки, просто пример). Повторюсь, все дело в хайпе.
>>814291 >В любом случае, если код бэкэнда является супертонкой прокладкой, то времени цпу он забирает очень мало на любом языке. Забыл дополнить это тезисом, что толстую прокладку на Go из-за его сишной скупой примитивности написать вряд ли получится.
Написал визиточку на Go, прошёл собеседование на go кодера. Расписание дня такое: Рабочий день с 12:00 до 19:00 12:00-14:00 Брейншторм 14:00-15:00 Латте-брейк 15:00-17:00 Тимбилдинг 17:00-18:00 Смуззи-брейк 18:00-19:00 Коворкинг Зарабатываю 3.000 евро + бонусы. Мне 17.
>>814404 >>814406 Вы ещё не знаете чем занимаются в моей фирме специалисты по биг дата. Им по 12 лет, и они уже зарабатывают более 10.000 евро. Половина которых уходит ювенальным прокурорам как откат, чтобы не закрыли за детский труд.
Интересно сравнить go и cython. По скорости должны быть сравнимы. У го должна быть безупречная параллельность. У cython вся мощь питона/скорость сишки в зависимости от нужд.
>>812480 (OP) >тупость и очевидность ценится, возводится на пьедестал и является объектом поклонения Суть в том, что из go выкинуто всёлишнее, что только можно. Сделано это, насколько я понимаю, по двум причинам: для простоты разработки компилятора, что, в конечном итоге, выливается в быстродействие программ, а также низкому порогу входа и быстрому переобучению на го бывших языкнейм-макак. Может это и не хорошо, однако является данностью. И заставлять тебя принимать эту данность никто не собирается - либо используй и смиряйся, либо выбирай другой инструмент.
>>816074 >что, в конечном итоге, выливается в быстродействие программ Вообще никак не взаимосвязано. Оптимизатор у го кстати довольно посредственный в виду кустарности.
>>816582 экзотика. вообще вот сейчас выбираю новый язык для изучения и для собственных проектовя сам вебслесарь + пишу на скале и даже не знаю какую альтернативу ГО взять. Что-то он меня слишком смущает свою базовостью что ле
>>816586 Я скалу использую на работе, в пет проектах пока что ноду. Вот и хочу для пет проектов что-то новое, чтобы мозги размять. Смотрел на го, но смущает его базовость ( повторюсь ). Даже не знаю что еще можно придумать. На ноде пишу быстро и эффективно, хотелось бы добиться такого от нового языка. Следовательно нужен такой, на котором уже есть готовые решения ( ну вроде аутентификации, много либ ). Поэтому ГО как вероятный кандидат. Короче я что-то слишком дохуя хочу
>>816595 >Как он вообще подходит для написания веб сервисов/серверов? Он для этого и сделан. >Эликсир стоит изучать без знания основ эрланга? Вообще можно, но знания Erlang как платформы пригодились бы.
>>816589 Go подходит, если тебе интересны нестандартные решения. Elixir я бы вообще не советовал от слова совсем. Erlang от слова совсем не предназначен для web приложение. В один прекрасный момент ты здорово удивишься, от чего это у тебя все такое неспешное. В общем лучший вариант из функциональщины - Ocaml + ocsigen для вебсервера. Но тут порог входы очень высокий. Из классического подхода - golang. Вначале покажется простым, но в какой-то момент ты можешь начать плеваться с непривычки. Не жди каких-нибудь продвинутых orm типа hibernate/sqlalchemy. Тут есть очень серьёзно развит сетевой стек и этого достаточно.
>>817084 проиграл с этого диванного >Elixir я бы вообще не советовал от слова совсем. Erlang от слова совсем не предназначен для web приложение. мань, Phoenix - последнее слово в области веб бекендов >В один прекрасный момент ты здорово удивишься, от чего это у тебя все такое неспешное. просто в голосяндру, начё что Elixir/Phoenix спокойно держит 2 ляма одновременных соединений на одной тачке вообще без тормозов? > Ocaml + ocsigen для вебсервера. Одноядерный кусок верблюжего говна, с попоулярностью ниже цацкеля, многопоточности нет, нормального ГЦ нет, библиотек меньше чем в хаскеле, инфраструктуры нет, комьюнити нет, охуенный язык просто.
>>817098 >мань, Phoenix - последнее слово в мань, что за слово то такое? >2 ляма одновременных соединений на одной тачке вообще без тормозов ох уж эти запускатели миллионных соединений. Ты уж определись, как это без тормозов - а то у тебя прям и latency околонулевая и throughput высокий.
>>812480 (OP) >1) Там нет generics. Не нужно. Нужно нормальное метапрограммирование. >2) Очень тупое ООП Ровно такое ООП, какое требуется. Без наследования и с интерфейсами по типу тайп-классов. Без жабо-сисярпоговна. >4) Да, кстати, ровно два вида коллекций в стандартной библиотеке Не пизди https://golang.org/pkg/container/ >5) Иммутабельности тоже, разумеется, нет Она нахуй не нужна в языке такого типа.
>>817135 >Нужно нормальное метапрограммирование. Как раз таки оно далеко не всегда нужно в отличие от такой универсальной хуёвины. >жабо-сисярпоговна. Других ОО-языков ты явно не видел. >не пизди Хуя, уже целых 4 контейнера в языке! >Она нахуй не нужна в языке такого типа. Это какого? Для паральеьного программирования это очень удобная концепция.
>>817135 >Не нужно. Это вообще лозунг го. Дженерики не нужны, нормальный синтаксис не нужен, тулинг не нужен, нихуя не нужно. Не понятно вообще зачем сам го тогда нужен.
>>817162 Если к тебя под системными утилитами хуитки вроде докера – хоть на раби их пиши. Тут ключевое слово >простое а второй го нахер никому не упал.
>>817098 >многопоточности нет Есть асинхронность. Есть и версия под многоядерные системы https://github.com/ocamllabs/ocaml-multicore Обоснуй чем плох текущий окэмловский gc, да, есть некоторые архитектурные изъяны, но их(недостатков) не лишены сборщики мусора многих других языков. Сообщество годное, состоящее из адекватных людей. Впрочем, лучше используй дальше свои технологии пожалуйста, не трогай уютный ocaml. >>817098 >что Elixir/Phoenix спокойно держит 2 ляма одновременных соединений Как-то странно видеть такие утверждения без каких-нибудь источников, подтверждающих подобное.
>>817138 >Как раз таки оно далеко не всегда нужно Оно нужно всегда. Так же, как и компилятор в рантайме. >Других ОО-языков ты явно не видел Никакое ООП не нужно. ООП вообще вредно. >Хуя, уже целых 4 контейнера в языке! Остальные можно добрать библиотеками. Для основного функционала все есть. >Для паральеьного программирования это очень удобная концепция Только в языках с перемещающим сборщиком.
>>817187 >Хуя взаимосвязь Только в языках с перемещающим сборщиком можно без потери производительности создавать кучами иммутабельные объекты, и сразу их убивать, когда они станут не нужны.
>>817184 > Так же, как и компилятор в рантайме. > ООП не нужно What the fuck am I reading? > Только в языках с перемещающим сборщиком. Наркоман? Током ебнуть? Rust
Вообще, какие - то жиденькие евангелисты пошли. Максимум что умеют - метнуть какашку в другие технологии. Аргументированно и технически грамотно пояснять за свою - не могуть.
>>817098 >Одноядерный кусок верблюжего говна, с попоулярностью ниже цацкеля, многопоточности нет, нормального ГЦ нет, библиотек меньше чем в хаскеле, инфраструктуры нет, комьюнити нет, охуенный язык просто. Ну так потому и сказано, что порог входа высокий. Зато работа в таких спартанских условиях закаляет дух.
Go - это язык от корпорации для корпораций. Которым важно не допустить появление единственного васяна, который разбирается в системе, потому что нахуевертил какого-то говна на акторах, а желательно вообще, чтобы думал тимлид, а не кодер.
>>817502 А за васяна думает тимлид – концепция из явы.
И модель акторов – самая понятная и красивая абстракция над многопоточностью, если её понимать будет только 1 васян – остальных надо на мороз выкинуть нахуй.
>>817545 Это мечта аутиста-хаскеллиста, как он весь из себя такой приходит, всех макак выгоняют, а ему платят всю их зарплату. Только вот то, что корпорациям нахуй не надо воспитывать охуевших аутистов, ты похоже, не понимаешь.
А мне норм, ребята. Сел посмотреть что за язык, написал парсер по доскам этих ваших двачей, по 10к постов за секунду тащит, чистит от мусора и готовит к сейву. Думаю было бы ещё быстрее, но, по всей видимости, из-за спам защиты после n-досок начинается всякая муть. А потом достает все эти посты и считает всякий юзлес треш типа количество постов, слов, картинок, банов, саж, выстраевает топ по словам и разбивает посты по 24 часа таймлайну - 350к постов за 7 секунд. И всё это рутины, вызывающие рутины, вызывающие рутины. Круто же.
>>817848 Я в последнее время совсем ахуеваю в какую помойку скатился зк. При чем тут вообще хаскель и всё остальное? Яваиндус считает что модель акторов – кококо фп при том что это чистейшее ооп и нихуя непонятна, сложнаа? Ну хэловорлд-то распаралелить без них может и проще.
А если программист не хочет думать головой – да, ему в этой профессии делать нехуй.
>>817882 >и нихуя непонятна, сложнаа Это тебе нихуя не понятно, что я написал. Корпорациям нужны винтики, а не одиночки. Поэтому им нужен Go, а не Scala (которую я упоминал в контексте хаскеля, так как на хаскеле все равно работы нет). Вот и все.
>>817895 Кому он нужен? Кто нибудь написал на нем что-то серьёзнее микросервиса (да даже сам гуглом)? Нет. Кто нибудь написал что-то серьёзное на скале? Да дохуя банков и твитеры-хуитеры.
И да – я понимаю что ты баран которому что об стену горох что-то объяснять, но всё же скажу – акторы с горутинами, которые косвенно сравниваются тут — абсолютно разные концепции которые сравнивать некорректно.
>>817902 >И да – я понимаю что ты баран Это ты баран, тупой. Выдумал какое-то косвенное сравнение акторов с горутинами и начал с выдуманным собеседником спорить. Причем оскорбляя зачем-то меня.
>>817902 Докер, iris. А так не имеет смысл искать на неём какие-то приложения. Go идеально подходит для написания логики взаимодействия каких-нибудь сетевых узлов на уровне udp/tcp.
>>818014 >iris Это тот самый фреймворк, автор которого спалил половину задниц реддита отклоняя чужие коммиты и комитя их от себя? Найс пример типичного го-дпуна, лол. >Докер Набор скриптиков, который не пострадал бы даже если переписать его на Питон.
>>818174 Макаку обучить говну проще, чем д или гей-языку. Поэтому го выстрелит в области сетевых технологий. Микросервисы там писать и пр. Т.е. в говне есть все возможности нормальных языков, но обучить этому языку макаку проще, чем нормальные языки. Вот и всё. А потребность в макаках будет только расти, особенно с "интернетом вещей".
>>818277 На говне в том то и дело, что только МИКРО и можно писать, потому что на этом БЭЙСИКЕ, что-то крупнее разрабатывать просто невозможно. Лично знаю два продукта в долине, которые повелись на хайп и начинали разработку на го, но потому переписывали всё на скалу.
>>>818277 >в говне есть все возможности нормальных языков Охуительные истории пошли.
>обучить этому языку макаку проще Уже есть пайтон.
> Вот и всё. А потребность в макаках будет только расти ДЖЯВА в своё время тоже сделала ставку на простоту и макак, но во-первых, у неё тогда не было конкурентов, во-вторых, масштабный форс ООП, в-третьих - зиллионы долларов вбуханых в макетинг, в-четвёртых, рынок программистов не был особо населён и жява давала возможность любом таксисту вкатиться с нуля. В результате джава хоть и оказалась везде, но её ненавидит каждый, кто когда-то работал с ней. И постоянное появление альтернативных ЯП под JVM, показывает, что люди не хотят писать на этой параше. Так как у гоувна нет всех тех выгодных начальных условий, которые были у ДЖЯВА, то писать на нём никто не хочет прямо сразу, после написания первой тысячи строк кода. Да и макак из 90х уже не осталось, сейчас на рынке куча программистов со стажем (которые уже знают 1 и более языков) и компании берут их, а нюфаги нахуй не нужны, они самые немаржинальные (часто даже отрицательные). Поэтому шкальники которые сейчас учат гоувно, могут только уповать на удачу, что они встретят заказчика-лошка, повёвшегося на гуглохайп, но это и не значит что их не пидорнут уже через 3 месяца разработки, а проект не перепишут на какую нибудь скалу.
>>818315 >повелись на хайп и начинали разработку на го, но потому переписывали всё на скалу. Ну сами виноваты, не умеют выбирать продукты под свои задачи, раз scala оказалась в более выигрышном положении.
>>818703 >Которой в десятки раз медленнее. Вот тут адепты Go топят за микросервисы, но юмор в том, что как раз для микросервисов быстродействие нафиг не нужно. Микросервис не справляется? - просто запусти парралельно ещё десяток его инстансов.
>>818315 >Джава сделала ставку на простоту и выстрелила >Go сделал ставку на еще большую простоту и не выстрелит Логика. >>818752 >Микросервис не справляется? - просто запусти парралельно ещё десяток его инстансов. Ну и еще пошли сказки про то, что железо дешевле рабочего времени программиста. Хотя разработка на Go не медленнее разработки на пайтоне за счет статической типизации, а эффективность в разы выше.
>>819191 > на Go не медленнее разработки на пайтоне за счет статической типизации Как раз медленнее. >железо дешевле рабочего времени программиста Да, так и есть.
>>819191 >пошли сказки про то, что железо дешевле рабочего времени программиста Если ты такой умный, то почему такой бедный? Почему копрорации, которые живут по девизу "железо дешевле программистов", имеют много денег, а ты нет?
Наговнокодил тысячу строк, прочитал пару книг и что лично мне не понравилось в Go: 1. Абсолютные импорты (github.com/vasyan666/go-yoba) 2. Хуёвая и функциональная и ООП-парадигма, могли бы с Раста взять пример в этом плане. 3. В 2016 не очень интересно на таком писать в т.ч. из-за п.2 -ни фана, ни челленджа, ни сахарка. 4. Свич-кейс рефлексии заместо дженериков. 5. Отсутствие макросов, но это на любителя.
На хабре как-то сказали, что Go - dsl для сетевых демонов, так в общем-то и стоит его воспринимать. Хотя работы много, работа появляется, так что, может, и попробую как-нибудь устроиться.
>>819594 >Наследование не часть ооп. Эти сектанты даже между собой не могут договориться, что у них там часть чего, как правильно и кто с кем. А потом они утверждают, что ооп - это просто, хорошо и правильно.
>>819680 Ой ли? За структурным программированием стоит статья от Дейкстры. За функциональным программированием огромная фундаментальная теория. И только оопешники так и не могут определиться, влияет ли инкапсуляция на ориентацию, и стоит ли наследовать машину от колеса.
>>819777 >За структурным программированием стоит статья от Дейкстры. О структурном программировании говорить сейчас бессмысленно, так как языков, которые его не поддерживают, нет (кстати, а раньше были? догадываюсь, что возможность никогда не использовать goto и использовать вместо него циклы, подпрограммы и т. д. была ещё в Фортране 50-х). Поэтому невозможно представить спор вида "язык X является структурным, потому что в нём есть Y! - нет, не является, потому что в нём нет Z!" >За функциональным программированием огромная фундаментальная теория. Это лямбда-исчисление? Если считать наличие ФВП и анонимных функций признаком ФП, то почти любой язык сейчас относится к функциональной парадигме. Так что опять же это понятие является практически бессмысленным. Если же брать другие особенности, присущие современным ФЯ (например, pattern matching), то вдруг оказывается, что их нет в Лиспе. Как же так, оказывается, Лисп, прародитель ФП, сам не функциональный? Причём тренд на добавление функциональных фич в императивные и ОО-языки размывает понятие функционального программирования всё сильнее и сильнее.
Лол. Год прошел как захожил в треды буйствующего гоблядка, как его там не помню. С тех пор перекатился на яву и уже сеньор помидор. А годауны все так спорят о том что го нужен. Идите лучше jvm языки учите лалки
>>816453 Чому это не связано? Либо ты пишешь "компилятор" калькулятора, который умеет только складывать и вычитать целые числа до 1000, либо калькулятора, который поддерживает кучи типов с автоматическим приведением, хуетиричные системы счисления, функции и переопределения операторов. Угадай что работает быстрее. Утрированно, но суть понятна. Сомневаюсь, что кто-то стал бы писать новый gcc с поддержкой многотомного стандарта итд итп
>>812480 (OP) В чем смысл проекта Go? Есть ли у него будущее (не будущее в манямирке школьника, а то как сейчас он себя за бугром чувствует, где и живет весь ИТ)?
Я слышал шаблонное мнение - что им легко научить, но это все хуйня. ИТ это стек технологий и знаний, в которых просто так сразу не вкатишься, а рост либ и количество внесенных знаний привезенных с ними, будет так же со временем велико, поэтому можно перекатить макаку-питонщика, но в реале он так легко не вкатиться. Поэтому этот вариант отпадает.
Вторая мысль проекта - го, отжать часть веб рынка, и по большей части микросервисов. Но тут даже кривая жаба с spring boot догнала по простоте развертывания - онных, да еще корявые js ноды.
В общем в чем реальная суть этого проекта? С одной стороны заложены интересные идеи, с другой стороны странный дизайн, отсутствие за 6-7 лет нормального тулинга (ide, отладка, рефакторинг и прочие). Такое ощущение что проект как бы задумывался с хорошей идеей и на века, но его провалили.
PS а еще этот суслик в качестве талисмана, это какой-то скрытый стёп над уровнем знаний разработчиков, типа легко вкатится и вкатятся такие вот лемминги? Или что?
>>820657 Гоу изначально - простой язык для простых задач. Что-то, что может выучить любой девопс, при этом компилируемое и легко встраиваемое. Никого никуда вытеснять он не будет - это язык-клей для инфраструктуры, помесь упрощённой сишки и пайтона. В принципе, можно было оставить пайтон, но у гоу есть какая-никакая конкурентная модель, которой у пихтоне нет, плюс куда быстрее работает.
>>820237 Смешно, но даже тут провал, потому что в реальном мире калькулятор с хуетиричными системами в итоге работал быстрее. А, может быть, и сейчас работает. Поставь haxe и поиграйся. Только помни, что он делает всё то, что гошный компилятор не делает.
>>820657 Go изначально никто блядь не задумывал делать для сраных web сервисов. Это отличный статический язык для быстрой разработки всяких прокси, udp/smtp сервером etc, по скорости вполне позволительно уступающий C.
>>812480 (OP) > Чтобы ни у кого не было соблазна написать их самому (что несложно), Роб превентивно сделал это сам, выложил на гитхаб и сказал, что использование вот такого функционального гейства discouraged. Мужик!
Помічаю в собі риси персонажів улюблених серіалів. Від "Доктора Хауса" маю цинізм. Від героя англійського серіалу "Доктор Хто" – моделі сприйняття життя. Будете дивитися "Доктора Хто" – раджу з п'ятого сезону.
Ідеальна дівчина має бути сама собою і здатна на нешаблонні вчинки, приміром, зважитися на банджиджампінг чи стрибок із парашутом. Важливо, щоб вона була хоч у чомусь розвинена. В науці якійсь – біології чи історії.
Слухаю Arctic Monkeys. Думав, краще Nirvana нічого бути не може. А таки може.
>>821037 Закончил хорошо. Поступил на кибернетику в КНУ.
>>821065 Ну это давно было, щас-то я слушаю скепту. Алекс Тернер из обезьянок — скатился, слушать их нет смысла. ГРАЙМ — НАШЕ ВСЕ. Доктор, кстати, охуенный сериал, очень классный как для детей и взрослых.
Кстати не забывай, что половину того, что я говорил на интервью, я на самом деле не говорил — это же журналисты.
Ну нахуя, ну нахуя в говланге нагородили такую ебаную кашу с массивами? Просто чем им не угодили питоньи массивы, например? Нахуя такой бред с этими слайсами?
>>822050 Сейчас уже наверное нет, хотя идея у Вирта с очень простым языком, средой разработки и ОС (в которую заложено много интересных идей, взятых Plan9 и Inferno) довольно интересна. Пары обзорный статей про ОС хватит наверное, чтобы и про язык почитать.
>>822056 Кстати двачую про компонентую ОС на обероне. Туда Виртом вложены очень интересные идеи, интересно было ознакомиться. Хотя с одной стороны и хорошо, что среди быдлокодеров и не взлетело.
>>823078 На сервере например, когда нужно обрабатывать запросы множества клиентов одновременно, или при длительных вычислениях, чтобы их ускорить. Только вот в Джаве параллельность делается легко, а в Си - немного посложнее. Чем Го лучше их?
>>817502 Так наоборот же, когда пишешь на примитивном невыразительном говне, и закодить нужно что-то сложнее очередного инфраструктурного клея на 100 строчек - приходится городить невменяемое говно из велосипедов, вместо использования всем понятных обобщённых абстракций.
>>823081 > Только вот в Джаве параллельность делается легко Там она делается точно так же железными валенками как в си, только без указателей. Го в области конкурентности на голову выше обоих. Ты просто пишешь простой код не задумываясь над паралельностью, датарейсами, блокировками и прочим.
>>823104 Я их ни разу не использовал, лол, просто знаю, что они есть, что они используют особые конструкции/функции, и в них параллельно программировать несколько проще, чем в голом Си с pthreads.
>>812480 (OP) Невротики безустанно пытаются оправдать свой выбор марки автомобиля, сигарет, смартфона или парадигмы программирования перед окружающими.
>>823094 >Ты просто пишешь простой код не задумываясь над паралельностью, датарейсами, блокировками и прочим. Как и в любом языке, где есть async/await. Вот в Java завезут - и будет всем счастье.
>>823516 Оно уже есть в Пайтоне, который обладает никак не меньшим распространением, чем .net, и скоро будет в Жабаскрипте. Это как минимум. Отчего же гениальная концепция горутин не распространяется с таким же успехом?
>>823573 >Отчего же гениальная концепция горутин не распространяется с таким же успехом? Акторы в эрланге самое близкое. Но говнокодерам такое не нужно
>>823573 >Оно уже есть в Пайтоне, который обладает никак не меньшим распространением, чем .net, и скоро будет в Жабаскрипте. А там и в C++: https://habrahabr.ru/post/278267/
Акторы, горутины и т.д.Аноним20/08/16 Суб 04:25:18#214№823651
>>823651 В гугле и доках к языкам/либам, где блять ещё. >>823419 Не сравнивай хуй с пальцем. async/await - хуитка для написания неблокирующегося гуя без анальной ебли, не больше. Рантайм Говна делает за тебя вообще всё, при этом ещё и предоставляет экосистему для всего этого. >>823618 Ты похоже забыл что их послали нахуй и в лучшем случае они там будут к 2020 году (если вообще будут, модули уже который стандарт мусолят). >>823221 Ты вопрос-то так и не задал. Что сказать тебе про "Параллельность, многопоточность"? Ну в списке "пхп, питон и руби" первый и третий не обладают такими фичами от слова совсем, второй вполне себе, но смотря какая именно модель многопоточности нужна.
>>823790 >Ты вопрос-то так и не задал. Что сказать тебе про "Параллельность, многопоточность"? Ну в списке "пхп, питон и руби" первый и третий не обладают такими фичами от слова совсем, второй вполне себе, но смотря какая именно модель многопоточности нужна. Но есть же всякие апликейшн-сервера и мидлвари (Phusion Passenger, Puma, Raptor, Thin, Unicorn, EventMachine, Tornado), которые... Или я путаю с асинхронностью?
>>823819 /0 Это не часть языка, а всё такое же низкоуровенное говно, ради того чтобы реализовать банальную хуитку из 5 строк в языке с нормальными средствами потребуется 50, а потом ещё наслаждение невозможностью отладки этого говна. Да, спасибо, хорошо работают. >>823814 Ну тебе никто и не мешает написать обёртку над системным апи и создавать сколько влезет потоков. Вопрос в том, сколько для этого потребуется костылей, а тка же в том, что сам язык со своей инфраструктурой для этого не предназначен.
>>823790 >Не сравнивай хуй с пальцем. async/await - хуитка для написания неблокирующегося гуя без анальной ебли, не больше. Рантайм Говна делает за тебя вообще всё, при этом ещё и предоставляет экосистему для всего этого. Это не хуй с пальцем, это действительно 2 механизма, по-разному реализующие одно и то же.
>>823825 >Ну тебе никто и не мешает написать обёртку над системным апи и создавать сколько влезет потоков. Вопрос в том, сколько для этого потребуется костылей, а тка же в том, что сам язык со своей инфраструктурой для этого не предназначен. Ну и какая разница, где это реализовано - в самом языке или отдельным компонентом??? Объясните!!!1
Я искренне офигеваю от наглой тупости го. Это язык, где тупость и очевидность ценится, возводится на пьедестал и является объектом поклонения (если вы думали что это питон, то го превосходит его на десятичный порядок как минимум).
Ну то есть, для начала:
1) Там нет generics. Но есть указатели (со сборкой мусора, не волнуйтесь), и есть возможность, соответственно, передавать by value (c копированием) и by reference (что позволяет не выделять место на куче для каждой фигни — крайне нетривиальный вопрос в джаве).
2) Очень тупое ООП, напоминающее таковое в раннем перле (если кто застал). Ссылка на this передаётся первым аргументом в функции (выделяется отдельными скобками, чтоб никто не перепутал).
3) Нет и не будет map, reduce и filter. Роб Пайк сказал, что они не нужны. Вася, не выпендривайся и слушай песню про валенки циклом for, как в прошлом веке. Чтобы ни у кого не было соблазна написать их самому (что несложно), Роб превентивно сделал это сам, выложил на гитхаб и сказал, что использование вот такого функционального гейства discouraged. Мужик!
4) Да, кстати, ровно два вида коллекций в стандартной библиотеке — массив с неизменным размером (и немного синтаксического сахара для копирования данных в новый массив, если прежний стал слишком мал), и map. Should be enough for everyone, не так ли? Впрочем, Lua вообще обходится одной коллекцией, ничо, живут.
5) Иммутабельности тоже, разумеется, нет. Кто-то таки сделал персистентные структуры данных и выложил их на гитхаб. Правда, не вполне понятно зачем они нужны в отсутствие простейших функциональных примитивов. Разве что тренироваться в рекурсии, почитывая SICP.
При этом нельзя сказать, что это быдлоязык навроде PHP (хотя с первого взгляда может так показаться). В быдлоязыках (это не только PHP, хотя не будем показывать пальцем) помимо простоты хуже воровства существует ещё множество неочевидных corner cases, про которые нужно знать и обходить стороной. Тут такого нет — всё брутально просто и вырублено топором, оставлено только самое нужное (concurrency-примитивы входят в число самого нужного). Это внушает уважение. Вообще, Роб Пайк дал нам целый Plan9, и быдлокодером его считать нельзя.
В общем, рекомендую, особенно для душевного отдыха и зализывания ран после скалы.