Исследование финских ученых-социологов показывает, что наследственность оказывает влияние на уровень заработка человека. По полученным результатам стало ясно, что для женщин генетические особенности определяют их доход на 40%, для мужчин — более чем на 50%.
Мне кажется, финские учёные социологи перепутали наследственность (из генетики) с наследованием (из юриспруденции).
1.1 What is a type system
A useful—though rough—distinction divides the world of programming languages into two parts:
Untyped — programs simply execute flat out; there is no attempt to check “consistency of shapes”
Typed — some attempt is made, either at compile time or at run-time, to check shape-consistency
Но это, в общем-то, частности. Я не понимаю вашей логики в целом. Если в Python нет типов, то как CPython отличает строку от числа? Что делает встроенная функция type?
Если в Python нет типов, значит, и классов там нет? Классы − это ведь частный случай типизации. Или если класс сконструирован в рантайме, то он не считается классом?
Ну давайте, давайте ссылаться на эту книгу. Я её раньше не читал, но теперь вот с удовольствием открыл. Но что-то не могу я в ней найти такого утверждения, что именно статический тайпчекер делает язык типизированным. Наоборот, типизированный язык определяется как
some attempt is made, either at compile time or at run-time, to check shape-consistency
У Python с этим всё в порядке:
>>> 1 + "a"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Как вообще это получается, по-вашему: ошибка типа есть, а типов нет? Где тут логика?
С каких это пор динамическая типизация − это «нет типов»? Нет типов в ассемблерах, в BCPL. Почитайте хотя бы вики для приличия: “Python uses duck typing and has typed objects but untyped variable names… Despite being dynamically typed, Python is strongly typed…”.
Windows лучше исключите из списка, не работает там Python по-нормальному. На этой платформе нет стандартного компилятора C, собрать сишный пакет для официального дистрибутива Python − то ещё приключение, поэтому чаще приходится подставлять костылики: либо «зверь-сиди» с своими суррогатами вместо нормальных PyPI и Virtualenv (Anaconda, ActivePython), либо оверхед в виде MinGW.
Конечно, Wheel-пакеты в своё время немного снизили накал страстей. Но, поскольку Microsoft ради Python за всю историю ни разу не пошевелил и пальцем (“Developers! Developers! Developers!”), для питонистов будет безопасней игнорировать эту платформу.
Ну, это уже отдельный вопрос. Хотя тоже имеет место быть.
Можно странный вопрос? Я знаю, что Раст популярный ЯП, но… зачем он нужен если есть Си/С++ на котором можно написать всё?
Это некая концептуальная проблема для меня, я ставил Раст, поигрался и бросил не найдя применения.
Можете привести примеры того, что легко-быстро-удобно делается на Расте и тяжело и громоздко на Си?
Уорд Каннингем написал такое эссе: Key Language Feature. Оно даёт ответы на вопросы, подобные вашему.
Кратко пробежимся по списку: higher order functions, lambda expressions, exception handling, resumable exceptions, closures, first-class types, causally reflective environment, introspection and reflection, modules, automatic type inference − это всё есть в Python искаропки, но в C и C++ нужно писать много кода, чтобы реализовать все эти фичи.
Мета-вопрос: почему вы этого не понимаете? Тоже есть ответ: Пол Грэм, Blub Paradox (по-русски).
Кароси − это не совсем то, но близко. Я где-то читал, что в японских университетах не бывает абсолютной успеваемости − только относительная. Оказываешься в хвосте списка по баллам − автоматически отчисляешься. Сейчас что-то не могу найти этому подтверждения. А то была бы полная аналогия.
Нормы труда определяются алгоритмом по средней производительности сотрудников.
Наиболее медленные сотрудники автоматически увольняются.
На их место принимаются новые сотрудники со, скажем так, случайной производительностью.
GOTO 1.
Таким образом, в коллективе остаётся всё больше «быстрых» сотрудников, вследствие чего нормы труда постоянно увеличиваются, пока не превратятся в гонку на выживание. И главное, каждое конкретное действие такого алгоритма можно представить как вполне обоснованное и справедливое. И никакого давления со стороны менеджмента: коллектив сам себе выбирает темп работы.
Я помню реакцию и лицо одного программиста, которому в качестве попытки уловить труднонаходимый «плавающий» дефект предложил воспользоваться профайлером встроенным в IDE: мне было указано, что это не собачье дело руководителя проекта советовать, какими средствами программист должен пользоваться в своей работе.
Профайлер, если что, предназначен для получения статистики по использованию программой памяти и процессорного времени. «Плавающий дефект» профайлером не вылечить. Или вы перепутали профайлер с отладчиком?
Ты можешь по запросу коллеги, тестировщицы, аналитика или заказчика за 3 минуты пропарсить пару сотен тысяч
Я очень сочувствую тем программистам, которые под вашим руководством превратились в мальчиков на побегушках, выполняющих «запросы» мимо таск-трекера, парсящих логи, фигачащих отчёты в Экселе. А с учётом того, что это для них −
рутинные операции, требующие многократного повторения в течение рабочего дня…
… то вы получаете ровно то, на что напрашиваетесь: наглость (потому что иначе с вами в одной команде не прожить) и некомпетентность (потому что хороший разработчик не будет терпеть такого к себе отношения).
Но за достаточно долгую уже карьеру я встречал не так много программистов, использующих комбинации КБД на клавиатуре для вызова тех или иных стандартных действий — большинство для этого используют более медленный манипулятор «мышь».
Ну, а советы типа «выучить шоткаты» и «освоить слепой десятипальцевый метод» меня с некоторых пор даже умиляют. Просто вишенка на торте. Понятно же, что скорость написания программы ограничивается только скоростью нажимания кнопок!
Женщина-оратор, по-видимому, ставила своей задачей вселить в нас бодрость, поднять наш ослабевший дух.
Мы вошли в зал, хмурясь. Сели по местам нахмуренные. А когда она заговорила, нахмурились еще больше. Вряд ли кто-нибудь слушал, что она там говорит. Женщина довольно прытко подвигалась вперед и вдруг неожиданно заявила:
– Наука говорит: когда мы улыбаемся, расходуется энергия двадцати семи мускулов лица, а когда хмуримся – почти вдвое больше: пятидесяти одного мускула. – Она сделала паузу: – Так зачем же нам хмуриться?
В этот момент Виктор Тоска открыл глаза и громко сказал:
– Чтобы делать побольше физических упражнений.
Раздался общий хохот, крики «браво!», аплодисменты, и кто-то добавил:
– Правильно! Надо как можно больше упражняться.
Ротный командир поднялся с места и заорал:
– Отставить!
И сразу все стихло.
– Кто это сострил? – спросил ротный.
Виктор Тоска хотел встать, но Доминик схватил его за плечи и толкнул обратно на стул.
Потом Доминик встал сам.
– Явитесь ко мне в канцелярию, – сказал ему ротный, и Доминик вышел из зала.
Он был оставлен на неделю без увольнения плюс наряды вне очереди каждые сутки.
Мне кажется, финские учёные социологи перепутали наследственность (из генетики) с наследованием (из юриспруденции).
Но это, в общем-то, частности. Я не понимаю вашей логики в целом. Если в Python нет типов, то как CPython отличает строку от числа? Что делает встроенная функция
type
?Если в Python нет типов, значит, и классов там нет? Классы − это ведь частный случай типизации. Или если класс сконструирован в рантайме, то он не считается классом?
У Python с этим всё в порядке:
Как вообще это получается, по-вашему: ошибка типа есть, а типов нет? Где тут логика?
Конечно, Wheel-пакеты в своё время немного снизили накал страстей. Но, поскольку Microsoft ради Python за всю историю ни разу не пошевелил и пальцем (“Developers! Developers! Developers!”), для питонистов будет безопасней игнорировать эту платформу.
Ответите?
Кратко пробежимся по списку: higher order functions, lambda expressions, exception handling, resumable exceptions, closures, first-class types, causally reflective environment, introspection and reflection, modules, automatic type inference − это всё есть в Python искаропки, но в C и C++ нужно писать много кода, чтобы реализовать все эти фичи.
Мета-вопрос: почему вы этого не понимаете? Тоже есть ответ: Пол Грэм, Blub Paradox (по-русски).
Таким образом, в коллективе остаётся всё больше «быстрых» сотрудников, вследствие чего нормы труда постоянно увеличиваются, пока не превратятся в гонку на выживание. И главное, каждое конкретное действие такого алгоритма можно представить как вполне обоснованное и справедливое. И никакого давления со стороны менеджмента: коллектив сам себе выбирает темп работы.
Я очень сочувствую тем программистам, которые под вашим руководством превратились в мальчиков на побегушках, выполняющих «запросы» мимо таск-трекера, парсящих логи, фигачащих отчёты в Экселе. А с учётом того, что это для них −
… то вы получаете ровно то, на что напрашиваетесь: наглость (потому что иначе с вами в одной команде не прожить) и некомпетентность (потому что хороший разработчик не будет терпеть такого к себе отношения).
Ну, а советы типа «выучить шоткаты» и «освоить слепой десятипальцевый метод» меня с некоторых пор даже умиляют. Просто вишенка на торте. Понятно же, что скорость написания программы ограничивается только скоростью нажимания кнопок!
(У. Сароян. «Приключения Весли Джексона»)
make && make install
:manpages.ubuntu.com/manpages/xenial/en/man8/checkinstall.8.html