Pull to refresh
-6
0

Пользователь

Send message
Глупое предположение. Как можно апеллировать к авторитету в интернете? Ключевое слово «промышленный».
Такой софт живет десятки лет и переживает смену многих программистов. Для такого софта тотальная огороженность и упрощенность Go очень подходит.
Смысл фразы во второй части предложения, а не в возрасте.
Повзрослел человек, сменились ценности. Вместо интереса процесса стал важнее простой и надежный результат.
Я по возрасту ближе к Пайку и занимаюсь промышленным программированием более тридцати лет, поэтому разделяю его подход к разработке языка. И я не считаю неопытных программистов быдлокодерами.
Когда нормальная работа подсистемы невозможна, то она должна быть отключена. Для этого нужно ее соответствующим образом запрограммировать (в виде процесса или потока). А исключительные ситуации удобны для разработки библиотек, а в обычном коде ошибки надо обрабатывать, а не перебрасывать их «вышестоящему коду».
В вышеприведенном коде нет обработки ошибок, только их переброс наверх. Подход Go подталкивает к обработке ошибок, а не на отсылку их выше в надежде, что кто-нибудь разберется.
Тернарный оператор в Lua и не нужен. (cond? true_val: false_val) в Lua выглядит так: (cond and true_val or false_val)
Я не утверждаю, что исключения — это зло, которое должно быть искоренено. Я просто говорю, что и без исключений можно жить, поэтому неправильно делать вывод о том, что язык такой-то — это мусор, потому что в нем нет исключений.
Потому что я не согласен с тем, что Go — это мусор из-за отсутствия поддержки исключительных ситуаций. Полезность исключительных ситуаций вообще спорна.
google.github.io/styleguide/cppguide.html#Exceptions
llvm.org/docs/CodingStandards.html#do-not-use-rtti-or-exceptions
Довольно спорный вывод. В Go panic используется для сигнала об ошибке программиста, а не работы программы (кроме самых простых случаев, напр. panic(«command line argument error...»)). То есть обычно panic используется для эмуляции assert. Пришельцы из языков с поддержкой исключительных ситуаций пытаются использовать panic/recover для эмуляции исключительных ситуаций, но это не приветствуется.
Два раза сталкивался с подобной ситуацией. Провайдер менял мой ip на достаточно удаленный от обычного (я в Калуге, ip менялся на Пермский). Первый раз в панике менял все пароли везде где только можно, во второй раз посмотрел, какой у меня текущий ip-адрес, и понял суть проблемы.
Вот вполне развернутое объяснение целей Go: https://talks.golang.org/2012/splash.slide
Вкратце: он разрабатывался для написания сложного ПО большими группами программистов. В общем, это скучный энтерпрейз-грейд язык, не особо веселый и дружественный.
Ввиду наличия в Го встроенных динамических массивов, ассоциативных массивов и каналов, отсутствие генериков не сильно напрягает.
Как-то не очень понятно получилось. strings.Count() считает количество вхождений разделителя в строке. Если разделитель пустой, то считается что разделитель есть между каждой руной, а так же в начале и конце строки, таким образом получается количество рун плюс один.
Это только для пустого разделителя: [-]1[-]2[-]

Information

Rating
Does not participate
Registered
Activity