Не "автоматически", а только при изучении определенной области математики, ответственной за правила логики и способности развить в себе навык применять её к реальному миру (что вообще не очевидная задача, потому что там все ОЧЕНЬ абстрактно).
Большинству учёных вообще не упёрлась никуда эта область математики.
Это прекрасно, но что такое счастье? :) Опять же, даже среди тех людей, которых я бы мог назвать счастливыми, или тех, кто себя сам называет счастливым, нет таких, кто был бы счастлив постоянно.
Жизнь, внезапно, оказалась чередой хороших и плохих эпизодов. Можно попробовать определить счастье, как "если хороших дней больше, чем плохих - ты счастлив", но на деле выясняется, что когда дни плохие - тебе пофигу, сколько их было там хороших до этого момента. Обратное тоже верно. И можно сколько угодно математически быть правым, но правда в том, что счастье мимолётно и субъективно.
Поэтому я нахожу эту позицию странной. Счастливее человека под героином вряд ли кого-то можно найти, но это не повод им ширяться.
Если выпадать не в пьянки и танчики, а в что-то тоже более-менее интеллектуальное, то нормально всё с головой будет.
Чёт нефига. За 6 прошедших с получения диплома лет почти всё из башки вылетело, хотя я работал всё это время пускай и не в самых наукоёмких в мире областях, но и не CRUD-ы клепал. Не помогло.
Для ненужных знаний места нет в голове. Я не представляю как мне сейчас вернуться в науку. Я бы может и хотел, т.к. все деньги, что хотел заработать, я заработал, но я просто не представляю как. Надо потратить ещё минимум 2-3 года только на то, чтобы вернуть "базу".
Последний месяц с женой смотрим Вавилон 5. До этого не видели. Сериал - моё почтение. Несмотря на все штампы прошедших лет, смотреть очень приятно. Глаз быстро привыкает к графике. Главное параллельно не смотреть фильмы Марвел, чтобы глаз не вспоминал как оно бывает :)
Пока что, все что вы написали лишь подтверждает то, что я говорю. Все ваши примеры сводятся к тому, что если вам надо что-то одноразовое наваять на коленке, то языки с динамической типизацией подойдут.
Я, если честно, могу расширить это утверждение ещё шире: абсолютно не важно на чем вы напишете write-only код.
Когда я защищал статическую типизацию, я прежде всего говорил о проектах, которые живут долго (от года и выше) и обновляются регулярно, и любые проекты над которыми работает больше трёх программистов.
P.S.
С аргументом про то, что уменьшается простота и понятность не согласен. Простота и понятность как раз-таки кратно возрастают, но да, за счёт того, что над кодом приходится немножечко больше думать, когда ты его пишешь.
Удивительно то, что я играл в неё в детстве, но не могу вспомнить в каком возрасте. Наверное что-то лет 9-10. Тогда я находил её невероятно уморительной. Не буду портить себе впечатление и пробовать перепроходить.
Понимаете, вы этими расставлениями аннотаций типов делаете из Питона какой-то недоML-недоХаскель.
Вы так говорите, как будто бы это что-то плохое. Статическая типизация - это хорошо, даже JS-ники это поняли и придумали TypeScript. Любой проект больше 2000 строк на динамически-типизированном - помойка из костылей и проблем.
а возможности динамически типизированных языков сильно урезаются
Моя бы воля, я бы их вообще запретил :) Может быть я мало на них писал, конечно, но на сегодняшний день я не понимаю в чём динамически-типизированные языки превосходят статически-типизированные. Ладно, я еще могу понять претензии к языкам вроде C++ или того же Haskell, где почти нет внятной рефлексии. В остальных случаях динамически-типизированные языки - это почти гарантированный бардак))
Если не нравится — попробуйте Хаскель или Идрис
Это как-то из крайности в крайность. Если еще Хаскель можно натянуть на ту же область, где используется Питон, то Идрис - это вообще не продакшн язык, служащий больше математикам для доказательства теорем. Людям попроще оно нафиг не упёрлось, формально верифицировать корректность программ.
Как бы если не нравится, наверное лучше-таки попробовать Go или там C#. Если хочется упороться, то можно и Scala / Rust / C++. Ну или тот же Haskell. Очень приятный язык, который, к сожалению, совершенно упоролся по чистоте функций и потому малоприменим в мире, где ничего не постоянно.
Польза типов простирается значительно шире просто автодополнения
Для большой мозг это понятно) А если ты Груг, то зачем тебе знать это всё? Для обычного программиста, который не может даже сказать что такое эта система типов, сама эта система типов выглядит как вещь, которая дает ровно два преимущества:
Есть автодополнение
Если попытаешься написать что-то, чего нет в автодополнении код тупо не скомпилируется
Всё остальное - от лукавого. Пусть большой мозг над этим думает.
Тоже вредная идея, выделение промежуточной абстракции потока позволяет сохранять ленивость и потом добавлять новые операции, не увеличивая константный множитель.
Груг не понимать. Гругу надо вызвать filter на списке и получить список. Груг хочет многоуровневые API. Одно просто и тупое, другое в котором можно думать о ленивости и добавлять новые операции. Груг думает слишком общие абстракции вредно, ибо повышает сложность. А сложность плохо.
Не обязательно же требование. Если требуется просто получать последовательности обладающие некоторыми статистическими свойствами, то соббсно пофигу на состояние и его предсказуемость.
Не очень я понял смысла этой великой модификации. Ну, то что переехать функция должна была в `namespace std` - это было понятно из контекста, а вот что даёт анонимный namespace чёт хоть убейте вдупить не могу)
Не "автоматически", а только при изучении определенной области математики, ответственной за правила логики и способности развить в себе навык применять её к реальному миру (что вообще не очевидная задача, потому что там все ОЧЕНЬ абстрактно).
Большинству учёных вообще не упёрлась никуда эта область математики.
Это прекрасно, но что такое счастье? :) Опять же, даже среди тех людей, которых я бы мог назвать счастливыми, или тех, кто себя сам называет счастливым, нет таких, кто был бы счастлив постоянно.
Жизнь, внезапно, оказалась чередой хороших и плохих эпизодов. Можно попробовать определить счастье, как "если хороших дней больше, чем плохих - ты счастлив", но на деле выясняется, что когда дни плохие - тебе пофигу, сколько их было там хороших до этого момента. Обратное тоже верно. И можно сколько угодно математически быть правым, но правда в том, что счастье мимолётно и субъективно.
Поэтому я нахожу эту позицию странной. Счастливее человека под героином вряд ли кого-то можно найти, но это не повод им ширяться.
*Не будет айфонов, которые они смогут продать. Что означает, что они просто перекочуют в другую область.
Чёт нефига. За 6 прошедших с получения диплома лет почти всё из башки вылетело, хотя я работал всё это время пускай и не в самых наукоёмких в мире областях, но и не CRUD-ы клепал. Не помогло.
Для ненужных знаний места нет в голове. Я не представляю как мне сейчас вернуться в науку. Я бы может и хотел, т.к. все деньги, что хотел заработать, я заработал, но я просто не представляю как. Надо потратить ещё минимум 2-3 года только на то, чтобы вернуть "базу".
Жаль под конец сильно сдал сериал, но первые 3-4 сезона я оторваться не мог
Последний месяц с женой смотрим Вавилон 5. До этого не видели. Сериал - моё почтение. Несмотря на все штампы прошедших лет, смотреть очень приятно. Глаз быстро привыкает к графике. Главное параллельно не смотреть фильмы Марвел, чтобы глаз не вспоминал как оно бывает :)
Пока что, все что вы написали лишь подтверждает то, что я говорю. Все ваши примеры сводятся к тому, что если вам надо что-то одноразовое наваять на коленке, то языки с динамической типизацией подойдут.
Я, если честно, могу расширить это утверждение ещё шире: абсолютно не важно на чем вы напишете write-only код.
Когда я защищал статическую типизацию, я прежде всего говорил о проектах, которые живут долго (от года и выше) и обновляются регулярно, и любые проекты над которыми работает больше трёх программистов.
P.S.
С аргументом про то, что уменьшается простота и понятность не согласен. Простота и понятность как раз-таки кратно возрастают, но да, за счёт того, что над кодом приходится немножечко больше думать, когда ты его пишешь.
Удивительно то, что я играл в неё в детстве, но не могу вспомнить в каком возрасте. Наверное что-то лет 9-10. Тогда я находил её невероятно уморительной. Не буду портить себе впечатление и пробовать перепроходить.
Вы так говорите, как будто бы это что-то плохое. Статическая типизация - это хорошо, даже JS-ники это поняли и придумали TypeScript. Любой проект больше 2000 строк на динамически-типизированном - помойка из костылей и проблем.
Моя бы воля, я бы их вообще запретил :) Может быть я мало на них писал, конечно, но на сегодняшний день я не понимаю в чём динамически-типизированные языки превосходят статически-типизированные. Ладно, я еще могу понять претензии к языкам вроде C++ или того же Haskell, где почти нет внятной рефлексии. В остальных случаях динамически-типизированные языки - это почти гарантированный бардак))
Это как-то из крайности в крайность. Если еще Хаскель можно натянуть на ту же область, где используется Питон, то Идрис - это вообще не продакшн язык, служащий больше математикам для доказательства теорем. Людям попроще оно нафиг не упёрлось, формально верифицировать корректность программ.
Как бы если не нравится, наверное лучше-таки попробовать Go или там C#. Если хочется упороться, то можно и Scala / Rust / C++. Ну или тот же Haskell. Очень приятный язык, который, к сожалению, совершенно упоролся по чистоте функций и потому малоприменим в мире, где ничего не постоянно.
Вполне, если мы, например, тестируем функцию, которая считает статистику.
Ровно в том месте, где этого не сделано, возникает точка "а теперь происходит всё что угодно". После этого непонятно становится ровным счётом нихрена.
Никто не хочет читать ВСЮ функцию, чтобы понять что ожидается на входе и что ожидается на выходе.
Для большой мозг это понятно) А если ты Груг, то зачем тебе знать это всё? Для обычного программиста, который не может даже сказать что такое эта система типов, сама эта система типов выглядит как вещь, которая дает ровно два преимущества:
Есть автодополнение
Если попытаешься написать что-то, чего нет в автодополнении код тупо не скомпилируется
Всё остальное - от лукавого. Пусть большой мозг над этим думает.
Груг не понимать. Гругу надо вызвать filter на списке и получить список. Груг хочет многоуровневые API. Одно просто и тупое, другое в котором можно думать о ленивости и добавлять новые операции. Груг думает слишком общие абстракции вредно, ибо повышает сложность. А сложность плохо.
Большой мозг никогда не понимать Груг. Это ничего, Груг все равно любить большой мозг
Как на счёт того, чтобы читатель кода не охреневал от догадок, что тут вообще происходит)
Не обязательно же требование. Если требуется просто получать последовательности обладающие некоторыми статистическими свойствами, то соббсно пофигу на состояние и его предсказуемость.
Мне лично интересно, что делать, если мне не только итерироваться надо, а ещё и по индексам обращаться иногда)
Модно, молодежно)
Не очень я понял смысла этой великой модификации. Ну, то что переехать функция должна была в `namespace std` - это было понятно из контекста, а вот что даёт анонимный namespace чёт хоть убейте вдупить не могу)
Потом может и не настать никогда.