Покровы сорваны!
May. 20th, 2016 02:44 pmГруппа ученых под руководством Дэниела Лебреро из Лаборатории Торговых Программных Интерфейсов британской компании IG Markets Ltd провела статистическое исследование о связи числа баг-репортов и языков программирования на базе информации об открытых проектах на сайте "Центр деятельности мерзавцев" (GitHub.com, организация разрешена в России, за исключением некоторых периодов, когда она запрещена). Выяснилось, что наличие статической типизации и продвинутой системы типов не помогает в уменьшении ошибок, а порой даже вредит, в то время как меньше всего ошибок получается в программах на максимально простых языках.
Плотность багов у проектов с 10 звездами и более:

Теперь научно доказано, что
theiced был прав: типы не нужны, а писать надо на Кложури. А также Эрланге и Го. Адептам сложных языков и развитых систем типов надлежит раскаяться, одуматься и перестать уже своими надуманными неработающими идеями отвлекать благородных донов, занятых TDD.
Плотность багов у проектов с 10 звездами и более:

Теперь научно доказано, что
no subject
Date: 2016-05-20 07:58 am (UTC)no subject
Date: 2016-05-23 03:02 pm (UTC)Мой опыт говорит о некоем пороге (в районе 300-1000 строк), выше которого лучше использовать типы. Поэтому если в репозитории лежит 10 не связанных библиотек по 100 строк, то плотность ошибок в любом языке будет одинакова.
(no subject)
From:(no subject)
From:no subject
Date: 2016-05-20 08:00 am (UTC)Плотность ошибок внезапно может оказаться связанной со сложностью проекта, а не с количеством звёзд на небе. :)
no subject
Date: 2016-05-20 08:09 am (UTC)Но у меня есть теория ещё проще. Я лично ввел бы понятие "сложность программиста". Чем больше внутренняя сложность у программиста, тем больше 10* проектов он пишет (это внешняя сложность) и тем больше народа ищет там ошибки.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-05-20 08:08 am (UTC)no subject
Date: 2016-05-20 06:12 pm (UTC)Не вернуть Паскаль, а поставить вместо него Петон!
ТакЪ победимЪ!
no subject
Date: 2016-05-20 08:08 am (UTC)>меньше всего ошибок получается
Гм. Им еще не объяснили, в чем они неправы?
no subject
Date: 2016-05-20 08:15 am (UTC)no subject
Date: 2016-05-20 08:16 am (UTC)no subject
Date: 2016-05-20 08:25 am (UTC)"charts that compare the number of issues labelled "bug" versus the number of repositories in GitHub for different languages"
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-05-20 08:35 am (UTC)no subject
Date: 2016-05-20 08:54 am (UTC)(no subject)
From:no subject
Date: 2016-05-20 08:35 am (UTC)no subject
Date: 2016-05-20 08:37 am (UTC)За C++ скажу, что строгая типизация в нем ( по сравнению с простым Си) предотвращает появление трудноуловимых ошибок еще на этапе написания кода и компиляци - что не мешает насажать ещё кучу багов другими способами.
no subject
Date: 2016-05-20 08:50 am (UTC)no subject
Date: 2016-05-20 09:26 am (UTC)no subject
Date: 2016-05-20 12:57 pm (UTC)no subject
Date: 2016-05-20 09:53 am (UTC)Ну и С++ как обычно стоит особняком, поскольку его используют для низкоуровневых вычислений с памятью, недоступных в других перечисленных языках. Ясное дело, что там багов больше
no subject
Date: 2016-05-20 12:01 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-05-20 10:18 am (UTC)no subject
Date: 2016-05-20 10:30 am (UTC)no subject
Date: 2016-05-20 11:23 am (UTC)не ну в Скале-то точно.
это ж вам не Руби)
no subject
Date: 2016-05-20 12:05 pm (UTC)(no subject)
From:no subject
Date: 2016-05-20 11:50 am (UTC)no subject
Date: 2016-05-20 11:59 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-05-20 12:01 pm (UTC)no subject
Date: 2016-05-20 12:08 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2016-05-20 12:41 pm (UTC)no subject
Date: 2016-05-20 12:49 pm (UTC)no subject
Date: 2016-05-20 01:37 pm (UTC)то есть на программы с определенными языками программирования юзеры даже не пытаются репортать баги: безнадёжно и неинтересно
лучше сразу выкинуть и взять аналоги
корреляция может иметь и другую каузацию: на кложуре-йерланге пишут синьоры, которые вообще всё пишут хорошо
вот какой основной ЯП у джунов?
ещё одна каузация: задачи, которые решаются определёнными ЯП, имеют разную степень специфицированности, часть ишью может быть фича реквестами
КСТАТИ
а как вообще они различали в ишьюсах баги от фича реквестов и дурных хотелок юзера "я так вижу, у вас всё неправильно и кошка у вас дура!"
no subject
Date: 2016-05-20 01:57 pm (UTC)Там можно тегировать issue меткой bug
(no subject)
From:(no subject)
From:no subject
Date: 2016-05-20 03:20 pm (UTC)1. 10 звёзд - это очень мало. У моих проектов с 0 пользователей - по 40 звёзд.
2. Чарт отражает любовь авторов к бюрократии. Эрлангисты с рубистами просто бюрократию не любят, а джависты скрупулёзно малейшие бажики репортят.
У меня в одном закрытом проекте 500 ишшуёв, в том числе и дефекты. Кто-то может посчитать это демотивирующей бюрократией и не заниматься такой детализацией.
3. По поводу С++ - так и должно быть. Вокруг С++ много мифов, видимо распространяемых людьми, не работавшими в крестовых шопах и надрачивающими на опенсорс.
У меня в проекте за 15 лет было 2 (два) бага с повреждением памяти, и то в самом начале, пока низкоуровневые вещи писал. 0 утечек. Продвинутые фичи языка (за которые его часто ругают - шаблонное метапрограммирование, запутанное разрешение имён) - не используются. В результате от джавы отличается, внимание, только тем, что надо помнить про RAII и чтобы локальную переменную по ссылке не вернуть.
no subject
Date: 2016-05-20 06:56 pm (UTC)STL, unique_ptr, вывод типов auto, move-перегрузки тоже в топку?
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2016-05-20 06:16 pm (UTC)no subject
Date: 2016-05-21 07:53 am (UTC)(no subject)
From:no subject
Date: 2016-05-22 03:10 am (UTC)no subject
Date: 2016-05-22 04:37 am (UTC)dynamic vs static
Date: 2016-05-22 02:21 pm (UTC)no subject
Date: 2016-05-25 09:08 pm (UTC)сравнивались наравне с каким-нибудь жавовским хибернейтом в полтора миллиона строк?
вот уж действительно время писать на кложури
no subject
Date: 2016-05-26 03:47 am (UTC)PS: понял, вопрос снимаю