LINUX.ORG.RU

Гвидо Ван Россум уходит на пенсию

 


2

3

Создатель языка Python, последние шесть с половиной лет работавший в компании Dropbox, уходит на пенсию.

Эти 6,5 лет Гвидо работал над Python и развивал культуру разработки Dropbox, которая переживала стадию перехода от стартапа в крупную компанию: был ментором, наставлял разработчиков писать понятный код и покрывать его хорошими тестами. Он также составил план перевода кодовой базы на python3 и начал воплощать его в жизнь.

Также занимался развитием mypy — статического анализатора Python-кода, который был изначально разработан другим сотрудником Dropbox, нанятым Гвидо.

Помимо этого был активным участником движения за привлечение женщин в IT.

>>> Подробности

anonymous

Проверено: a1batross ()
Последнее исправление: Deleted (всего исправлений: 5)

Ответ на: комментарий от anonymous

Тесты это сложно, тут думать надо. А так расставил примитивнейшие констрейнты: int, string, foo, bar и спокоен.

Расставить типы тоже не всегда легко. Вон, выше по треду: Screeps — это отличный способ проверить свои убеждения буквально за день.

Какой из подходов принесёт тебе удовольствие и позволит достигнуть цели?

Ты веришь, что динамика рулит? Попробуй! Если ты прав — твой код будет быстрым и компактным, а твои крипы захватят мир! Если убеждения ошибочны — будешь ловить эксепшны в рантайме, и твоя колония сдохнет.

Ты веришь, что статика рулит? Тогда попробуй сыграть на статике! Подойдёт TypeScript, или любой язык, который транслируется в JS или WebAsm, даже С++. Если ты прав, то писать код будет легко и приятно, а твои крипы захватят мир! Если убеждения ошибочны, то каждый новый уровень — это будет боль и компромиссы в борьбе с синтаксисом, а каждая доработка кода — унылое брожение среди кучи копипаста. Причём, работать оно будет, но надоест так, что к концу дня ты всё бросишь.

anonymous
()
Ответ на: комментарий от anonymous

Какой из подходов принесёт тебе удовольствие и позволит достигнуть цели?

Ахах. Выбирай стиль боевого js и вперед!

А моем майнкрафте оно прибъет гадких крипов?

Сидит там как сыч в игрушки свои играет. Лучше бы линфану помог :)

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Linfan

я наверное не точно выразился, говоря о разработчиках графики (хотел избежать использования названия Х-сервер, и перемудрил) - я имел ввиду разработчиков Х-сервера :-)

argin ★★★★★
()
Ответ на: комментарий от Deleted

Так любое программирование это игра. Если у тебя не так, то ты унылый клерк. Могу только посоветовать административную карьеру: там ты сможешь зарабатывать больше делая по сути все то же: просиживать штаны перед экраном и получать периодически звездюлей от начальства.

anonymous
()
Ответ на: комментарий от anonymous

Ну так поиграй в доработку опенсорсного проекта

Deleted
()
Ответ на: комментарий от Deleted

Сидит там как сыч в игрушки свои играет. Лучше бы линфану помог :)

Хех. Я в этом не шарю. sK1 же ориентирован на печать, а я векторный редактор открываю только порисовать что-то, например, для openshot-а. И в основном это Inkscape (потому что интегрирован в openshot, и есть в репах).

К тому же, если и помогать, надо же выяснить как писать: со статической типизацией или динамической.

На мелких простых задачах понятно, что динамика проще. А если задача посложнее? Как проверить? Переписать sk1 на С++ или Inkskape на javascript? Это долго, скучно, и не понятно как оценить результат.

А Screeps — это отличный тест, можно написать так, написать иначе, и посмотреть где дальше продвинешься. Причём проверять быстро, весело, и наглядно.

И это хороший симулятор — заливка на сервер эквивалентна релизу в продакшн. А расстроенный клиент — дохлой колонии. То есть подход из screeps переносится и на другие проекты. Надо только найти хороший подход к разработке.

А вот с этим у меня и плохо. Динамика (т.е. JS) ­— это было весело и интересно, но отлов эксепшнов в рантайме бесит. Статика — это куча лишнего кода, и куча времени на изменение архитектуры вместо работы над самим решением. В целом на статике получилось продвинуться дальше, но достало — жуть, даже возвращаться к тому коду не хочется.

Надо ещё подход с тестами попробовать, придумать бы только, как тестить такой код... И найти бы язык, который проверяет полноту покрытия кода тестами.

anonymous
()
Ответ на: комментарий от anonymous

Надо ещё подход с тестами попробовать, придумать бы только, как тестить такой код… И найти бы язык, который проверяет полноту покрытия кода тестами.

Тебе для этого не нужен другой язык. Гугли test coverage tools для своего языка.

anonymous
()
Ответ на: комментарий от anonymous

придумать бы только, как тестить такой код

Надо ещё подход с тестами попробовать, придумать бы только, как тестить такой код... И найти бы язык, который проверяет полноту покрытия кода тестами.

почитай на adacore.com/books > EmbeddedSPARKandAda-web.pdf про тетрис на SPARK, может натолкнёт на какие-то мысли

anonymous
()
Ответ на: комментарий от anonymous

Тебе для этого не нужен другой язык. Гугли test coverage tools для своего языка.

Будто это так просто...

Мы в питонотеме, возьмём пример на питоне:

f = lambda x: 1 if x else garbage
g = lambda x: x or garbage

# tests
assert f(5) == 1
assert g(2) == 2

Переменная garbage нигде не объявлена, то есть вызов f(0) или g(0) упадёт, но тесты этот вариант не проверяют.

Посоветуй утилиту, которая покажет, что такие тесты не покрывают на 100% эти две функции.

Или переведи этот пример на свой любимый язык и найди утилиту для него.

anonymous
()
Ответ на: комментарий от anonymous

Так любое программирование это игра. Если у тебя не так, то ты унылый клерк

Я тензорфлоу выучил бы только за то,

Что на нем делают прон с Эммой Вотсон

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от anonymous

Test coverage меряется строками, бранчами и функциями. Тут покрыто 100% строк и 50% бранчей, все утилиты это показывают.

anonymous
()
Ответ на: комментарий от anonymous

Тут покрыто 100% строк и 50% бранчей, все утилиты это показывают.

«Все» — это, например, какие? «Имя, сестра!»

anonymous
()
Ответ на: комментарий от Deleted

Ну всмысле переменные вместо function.

var f = function(arg) {...}
var f = (arg) => {...}
//vs
function f() {}

? Хз, привык так.

Запутывает

Не вижу принципиальной разницы.

Кому-то же потом это читать.

Под код который читать, вообще не должно быть такого, да и для жс распарсить объявление функции это - меньшая из проблем. Должен быть объект, где как минимум будет описание, типы аргументов, тип возврата, тесты, всё это будет проверяться и генерироваться в документацию.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

js

это - меньшая из проблем. Должен быть объект, где как минимум будет описание, типы аргументов, тип возврата,

Кажется, этот пациент начинает прозревать.

anonymous
()
Ответ на: комментарий от anonymous

Кажется, этот пациент начинает прозревать.

Да, конечно, никто ничего не понимает, так, как понимаешь это ты. Оказывается типы-то нужны! Кто бы мог подумать?

crutch_master ★★★★★
()
Ответ на: комментарий от anonymous

Хотя мне тут какие-то пистонщики еще давно доказывали, что правильно передать аргументы - задача того, кто вызывает. Вызывающий передал херово - и вообще не твои проблемы чем всё это закончится.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Хотя мне тут какие-то пистонщики еще давно доказывали, что правильно передать аргументы - задача того, кто вызывает. Вызывающий передал херово - и вообще не твои проблемы чем всё это закончится.

Собираются инвалиды и рассказывают друг другу, что конечности не так уж и необходимы, с костылями норм живётся; сделать пандусы в подъездах и лифты в метро — задача того, кто ездит на коляске — и вообще не твои проблемы, чем это закончится.

anonymous
()
Ответ на: комментарий от crutch_master

правильно передать аргументы - задача того, кто вызывает

Вообще-то да

Deleted
()
Ответ на: комментарий от anonymous

Правильно сделаные пандусы и лифты это часть контракта государства с обществом. Задача инвалидов суметь ими воспользоваться

В скриптухе зачастую за каждым пандусом закрепляется человечек, проверяющий каждого инвалида на умение ездить на коляске

Deleted
()
Ответ на: комментарий от Deleted

Правильно сделаные пандусы и лифты это часть контракта государства с обществом.

Что-то в упор этого не вижу. Может у тебя другой контракт? Ссылку бы кинул, а?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.