Стив Йегг: Портрет нуба
От: enji  
Дата: 12.09.11 11:24
Оценка: 16 (2)
Может и баян, поиском не нашел.

Перевод статьи на хабре: http://habrahabr.ru/blogs/development/127635/

Там как бы две части. Первая — про комментарии в коде, а вот вторая, поинтереснее, про описание моделей и, в частности, про статическую типизацию:

Мы с вами знаем, что статические типы — это тоже метаданные. Они как специализированные комментарии к коду, предназначены для двух разновидностей читателей: для программистов и для компиляторов. Статические типы — это истории о вычислениях, помогают и тем и другим понять действия программы. Их тоже можно выбросить в рантайме, потому что они всего лишь комментарии, и ничего больше. Они как паспорт родословной у собаки — радует владельцев и заставляет гордиться. Но собаке все равно, есть ли у нее паспорт, или нет.

Если статические типы являются коментами, тогда мне кажется, что люди, которые уж очень сильно полагаются на статическую типизацию, люди, которые обожают процесс статического моделирования — нубы.

Ха-ха.

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

Re: Стив Йегг: Портрет нуба
От: hardcase Пират http://nemerle.org
Дата: 12.09.11 11:38
Оценка: 1 (1) +5
Здравствуйте, enji, Вы писали:

E>Перевод статьи на хабре: http://habrahabr.ru/blogs/development/127635/


E>Там как бы две части. Первая — про комментарии в коде, а вот вторая, поинтереснее, про описание моделей и, в частности, про статическую типизацию:


E>

E>Мы с вами знаем, что статические типы — это тоже метаданные. Они как специализированные комментарии к коду, предназначены для двух разновидностей читателей: для программистов и для компиляторов. Статические типы — это истории о вычислениях, помогают и тем и другим понять действия программы. Их тоже можно выбросить в рантайме, потому что они всего лишь комментарии, и ничего больше. Они как паспорт родословной у собаки — радует владельцев и заставляет гордиться. Но собаке все равно, есть ли у нее паспорт, или нет.

E>Если статические типы являются коментами, тогда мне кажется, что люди, которые уж очень сильно полагаются на статическую типизацию, люди, которые обожают процесс статического моделирования — нубы.

E>Ха-ха.

E>Ну, если посерьезнее, то я ничего не имею против статической типизации. Я против ее чрезмерного использования. Младшие программисты злоупотребляют статической типизацией точно так же, как они злоупотребляют коментами.


Автор за свои стопицот лет программизма так и не врубился в статическую типизацию
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Стив Йегг: Портрет нуба
От: deniok Россия  
Дата: 12.09.11 11:40
Оценка:
Здравствуйте, enji, Вы писали:


E>Если статические типы являются коментами, тогда мне кажется, что люди, которые уж очень сильно полагаются на статическую типизацию, люди, которые обожают процесс статического моделирования — нубы.


А в строго статически типизированном Хаскелле, например, все типы выводит компилятор. Неужели в Хаскелл-комьюнити нету нубов?!
Re[2]: Стив Йегг: Портрет нуба
От: avpavlov  
Дата: 12.09.11 11:42
Оценка: 1 (1) +1
H>Автор за свои стопицот лет программизма так и не врубился в статическую типизацию

Автор за стопицот лет так и остался нубом, только комментарии перестал писать

Несколько слов стоит посветить JUnit 4. Разработчики этого фреймворка, являя собой пример эталонного нуба, решили, что представленные в Java 5 аннотации — решение всех проблем человечества. Не знаю, смеятся или плакать, но они перенесли весь свой код из нормальных методов в тела аннотаций — самое абсурдное применение метаданных, что я когда-либо видел.

Re: Стив Йегг: Портрет нуба
От: Sinix  
Дата: 12.09.11 11:46
Оценка: 9 (5) +6 -1
Здравствуйте, enji, Вы писали:

E>Перевод статьи на хабре: http://habrahabr.ru/blogs/development/127635/


Чотоянепонял.
1. Охаиваем качественный олдскульный код (новички так не пишут, не обманывайтесь).
2. Хвастаемся "а я вот как могу"
3. Начинаем учить жизни.
4. ??????
5. А, собственно, где?

Что самое неприятное, все утверждения поданы в бескомпромиссном гуру-стиле и возразить получается только "отучаемся говорить за всех". Я специально прочитал текст дважды и не нашёл ни одного более-менее внятного тезиса, только "все вокруг — нубы, а я — д'Артатьян!". Что тут обсуждать —
Re: Стив Йегг: Портрет нуба
От: monax  
Дата: 12.09.11 12:08
Оценка: 62 (4) +1 :))
Здравствуйте, enji, Вы писали:

E>Может и баян, поиском не нашел.


E>Перевод статьи на хабре: http://habrahabr.ru/blogs/development/127635/



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


Метаданные и коменты — это не родословная, а история болезни. Пока собака будет здорова — история не нужна, и её можно потерять. Но если собака заболела, то без истории болезни можно нанести большой вред здоровью, потому что у собаки бешеная аллергия на какой-нибудь антибиотик.
Re: Стив Йегг: Портрет нуба
От: Son of Northern Darkness  
Дата: 12.09.11 12:16
Оценка: 1 (1) +2 :))) :))
Здравствуйте, enji, Вы писали:

Автора надо посадить поддерживать проект строк на 500000 написанный индусами на Lua без документации и комментариев.
Re[2]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.09.11 13:23
Оценка:
Здравствуйте, hardcase, Вы писали:

E>>Ну, если посерьезнее, то я ничего не имею против статической типизации. Я против ее чрезмерного использования. Младшие программисты злоупотребляют статической типизацией точно так же, как они злоупотребляют коментами.

E>>[/q]

H>Автор за свои стопицот лет программизма так и не врубился в статическую типизацию


Его код выдаёт в нём императивного программиста С т.з. психологии статья просто адская. А вот про метаданные и каменты как то подкачала, изложение сильно невнятное.
Re[2]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.09.11 13:29
Оценка:
Здравствуйте, Sinix, Вы писали:

S>1. Охаиваем качественный олдскульный код (новички так не пишут, не обманывайтесь).


Пишут. Не те, которые программирование осваивают, а новички которые только начали работать программистом. Собственно про это и говорит автор: "junior-программисты"

S>2. Хвастаемся "а я вот как могу"


Он сравнивает себя молодого с собой нынешним. Это не хвастовство, а просто хороший, удачный пример. Очень многим людям очень тяжело выдать адекватное сравнения себя с собой. Многим даже кажется что они всегда были вот такими крутыми программистами как сейчас

S>3. Начинаем учить жизни.


Не больше, чем местные евангелисты или другие хабровцы.

S>5. А, собственно, где?


Он выдал портрет нуба, сделал прогнозы по индустрии и предложил свои решения. Чего еще тебе надо ?
Если читать его статью как ИМХО, все очень просто,понятно и проблем не вызывает

S>Что самое неприятное, все утверждения поданы в бескомпромиссном гуру-стиле и возразить получается только "отучаемся говорить за всех".


Вещь про временное повествование это вообще шедевр. Это собственно одна из основных причин, почему новички пишут императивный код — они еще не дошли до концепции, что время непрерывно.
Евангелистам функциональщины нужно в обязательном порядке изучить этот вопрос.

S>Я специально прочитал текст дважды и не нашёл ни одного более-менее внятного тезиса, только "все вокруг — нубы, а я — д'Артатьян!". Что тут обсуждать —


Очевидно, автор текста сильно увлекается психологией, а ты сильно вряд ли. Потому тебе непонятно. А далее, как и все типичные программисты ты отрицаешь непонятное(особенно если автор ошибается в неключевых рассуждениях ). Следующая ступенька — ты начнёшь изобретать велосипед А потом обнаружишь, что изобретатель этого велосипеда Жан Пиаже, умер уже тридцать лет назад
Re: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.09.11 13:43
Оценка:
Здравствуйте, enji, Вы писали:

E>Может и баян, поиском не нашел.


E>Перевод статьи на хабре: http://habrahabr.ru/blogs/development/127635/


E>Там как бы две части. Первая — про комментарии в коде, а вот вторая, поинтереснее, про описание моделей и, в частности, про статическую типизацию:


Там три части.
Первая часть про психологию программиста.
Вторая — проявление этой психологии в языках и фреймворках.
Третья — проблемы, методы решения и прогнозы автора.
Re[3]: Стив Йегг: Портрет нуба
От: Sinix  
Дата: 12.09.11 13:52
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Пишут. Не те, которые программирование осваивают, а новички которые только начали работать программистом. Собственно про это и говорит автор: "junior-программисты"

Неа. Такой код пишут после того, как перестают бояться "а вдруг меня посчитают новичком" и начинают ценить время тех, кто будет сопровождать ваш код.

S>>2. Хвастаемся "а я вот как могу"

I>Он сравнивает себя молодого с собой нынешним.
Я бы не сказал, что нынешний код мне нравится больше. Особенно в сочетании с переливающимся через край самомнением.

I>Это не хвастовство, а просто хороший, удачный пример.

Да, это не хвастовство, это хамство. За редкими исключениями (обойдёмся без личностей) даже на рсдн очень редко доказывают своё превосходство обливанием помоями. Не тем меряться надо.

I>Не больше, чем местные евангелисты или другие хабровцы.

Это перевод, а автор как бы не хабрашкольник а "солидный" разработчик с 25 годами стажа.

I>Он выдал портрет нуба, сделал прогнозы по индустрии и предложил свои решения.

Судя по портрету, нубы — все, кроме него. Прогнозы и решения в студию, плиз.


S>>Что самое неприятное, все утверждения поданы в бескомпромиссном гуру-стиле и возразить получается только "отучаемся говорить за всех".

I>Вещь про временное повествование это вообще шедевр. Это собственно одна из основных причин, почему новички пишут императивный код — они еще не дошли до концепции, что время непрерывно.
Плиз, перечитайте абзац выше и ваш ответ, это шикарно Да-да-да, отучаемся говорить за всех


I>Очевидно, автор текста сильно увлекается психологией, а ты сильно вряд ли.

А теперь вы додумываете ещё и за автора. Увлечение психологией — не повод к самолюбованию, переходу на личности и к оплёвыванию всех, с кем вы не согласны. Не надо.
Re: Стив Йегг: Портрет нуба
От: Sorc17 Россия  
Дата: 12.09.11 14:01
Оценка: 1 (1) +1
Здравствуйте, enji, Вы писали:

E>Перевод статьи на хабре: http://habrahabr.ru/blogs/development/127635/


Смешно читать "профессионала", который кого-то называет "нубом". Можно сразу отложить в сторону этот в***р и пойти заняться чем-то полезным. Настоящий профессионал да и просто взрослый воспитанный человек никого не назовёт нубом. У настоящего профессионала на каждую запятую в коде будет филосовско-техническое обоснование на двух листах её здесь появления. Ну и так далее. Как я себе это представляю.
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re: Стив Йегг: Портрет нуба
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 12.09.11 14:17
Оценка: +2
Здравствуйте, enji, Вы писали:

E>Может и баян, поиском не нашел.


E>Перевод статьи на хабре: http://habrahabr.ru/blogs/development/127635/


E>Там как бы две части. Первая — про комментарии в коде, а вот вторая, поинтереснее, про описание моделей и, в частности, про статическую типизацию:


E>

E>Мы с вами знаем, что статические типы — это тоже метаданные. Они как специализированные комментарии к коду, предназначены для двух разновидностей читателей: для программистов и для компиляторов. Статические типы — это истории о вычислениях, помогают и тем и другим понять действия программы. Их тоже можно выбросить в рантайме, потому что они всего лишь комментарии, и ничего больше. Они как паспорт родословной у собаки — радует владельцев и заставляет гордиться. Но собаке все равно, есть ли у нее паспорт, или нет.

E>Если статические типы являются коментами, тогда мне кажется, что люди, которые уж очень сильно полагаются на статическую типизацию, люди, которые обожают процесс статического моделирования — нубы.

E>Ха-ха.

E>Ну, если посерьезнее, то я ничего не имею против статической типизации. Я против ее чрезмерного использования. Младшие программисты злоупотребляют статической типизацией точно так же, как они злоупотребляют коментами.


Вкратце:
Комментарии не нужны, комментарии — частный случай метаданных (подмножество), следовательно любые метаданные не нужны.

С точки зрения булевой логики это некорректное выражение.
Re[4]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.09.11 14:36
Оценка:
Здравствуйте, Sinix, Вы писали:

I>>Пишут. Не те, которые программирование осваивают, а новички которые только начали работать программистом. Собственно про это и говорит автор: "junior-программисты"

S>Неа. Такой код пишут после того, как перестают бояться "а вдруг меня посчитают новичком" и начинают ценить время тех, кто будет сопровождать ваш код.

Ты уверен, что они вообще нужны ? Что полезного ты нашел в его коментах ? И даже тот, что counter++ инкрементит ?

Просьба ответить на три вопроса, а не только на первый прочитаный.

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

Я совсем недавно выкосил тонны подобных каментов, как то незаметил, что они облегчают код. Если бы был какой то инструмент, который позволяет держать каменты в согласовании с кодом и дела это автоматически — было бы очень круто. Но такого инструмента нет, потому простыни камментов отвлевают тех, кто уже перерос данную стадию развития — коментировать каждую строчку.

I>>Он сравнивает себя молодого с собой нынешним.

S>Я бы не сказал, что нынешний код мне нравится больше. Особенно в сочетании с переливающимся через край самомнением.

А он и не приводт свой код как эталон. Он приводит его как пример изменений в его собственном случае.

I>>Это не хвастовство, а просто хороший, удачный пример.

S>Да, это не хвастовство, это хамство. За редкими исключениями (обойдёмся без личностей) даже на рсдн очень редко доказывают своё превосходство обливанием помоями. Не тем меряться надо.

Процитируй, где он хвастается или хамит ? На РСДН, сравнивая с англоязычными вроде SO, SF и подобными, _очень_ _часто_ обливают помоями что бы доказать своё превосходтсво Я бы сказал, что это норма на РСДН.

I>>Не больше, чем местные евангелисты или другие хабровцы.

S>Это перевод, а автор как бы не хабрашкольник а "солидный" разработчик с 25 годами стажа.

Я не сразу заметил, что статья переводная, но это абслютно неважно. Его изложение, по моему, разумению очень нейтральное и сравнивая с хаброй ничем не выделяется на общем фоне.

I>>Он выдал портрет нуба, сделал прогнозы по индустрии и предложил свои решения.

S>Судя по портрету, нубы — все, кроме него.

Процитируй, где ты увидел "нубы все, крмое него" ?

>Прогнозы и решения в студию, плиз.


Прогнозы и проблемы в разделе "Ползучая бюрократия ", решения "Решения и соглашения"
Например:

"Эти языки никогда-никогда-никогда не добьются никакого коммерческого успеха, точно так же как его не добился концепт “семантического веба”. Вы не можете заставить людей создавать метаданные для всего, с чем они хотят работать. Они будут ненавидеть вас за это. "


"С моделированием связана еще одна очень актуальная проблема. Модели, которые получаются в результате этого процесса, часто оказываются “неправильными”. Наверное, это сложно понять с самого начала — как может модель быть неправильной? Код (или данные), живут в этой модели и подгоняются под ее правила и ограничения, поэтому и код и данные корректны с точки зрения модели. Однако, модель “неправильная” тогда, когда с ее помощью нельзя отразить реальные вещи из какой-нибудь области, под которую эта модель создавалась. Взять ту же java — всегда, когда вы хотите использовать множественное наследование или примеси, вам нужно изменять представление вещей у себя в голове, чтобы они подошли под ограничения и правила мира java. Вы портите естественный дизайн, поэтому java — “неправильная”.
"



"При моделировании следует придерживаться тех же правил, что и при комментировании кода: не пытайтесь смоделировать все на свете! Оставьте код в покое — пусть он сам за себя говорит.
"


"думаю, общим ответом на такой вопрос было бы вот что: если сомневаетесь — не моделируйте. Просто пишите код, продвигайтесь вперед. Не позволяйте себе увязнуть в деталях моделирования вспомогательного класса, который сам по себе не несет никакой ценности.
"



S>>>Что самое неприятное, все утверждения поданы в бескомпромиссном гуру-стиле и возразить получается только "отучаемся говорить за всех".

I>>Вещь про временное повествование это вообще шедевр. Это собственно одна из основных причин, почему новички пишут императивный код — они еще не дошли до концепции, что время непрерывно.
S>Плиз, перечитайте абзац выше и ваш ответ, это шикарно Да-да-да, отучаемся говорить за всех

Ты можешь отрицать такой феномен как временное повествования, но это твои личное дело. Автор просто указывает связь между количеством и качеством каментов и этим самым феноменом. Если ты расскажешь, как можно говорить про психологию в любом виде и что бы это не подходило под "говорить за всех" то наверняка получишь нобелевскую премию
Re[2]: Стив Йегг: Портрет нуба
От: enji  
Дата: 12.09.11 14:43
Оценка:
Здравствуйте, Sorc17, Вы писали:

S>Смешно читать "профессионала", который кого-то называет "нубом". Можно сразу отложить в сторону этот в***р и пойти заняться чем-то полезным. Настоящий профессионал да и просто взрослый воспитанный человек никого не назовёт нубом.


нуб — всего-навсего "новичек", негативного окраса вроде бы нет. Или я не прав?
Re[3]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.09.11 14:48
Оценка:
Здравствуйте, enji, Вы писали:

S>>Смешно читать "профессионала", который кого-то называет "нубом". Можно сразу отложить в сторону этот в***р и пойти заняться чем-то полезным. Настоящий профессионал да и просто взрослый воспитанный человек никого не назовёт нубом.


E>нуб — всего-навсего "новичек", негативного окраса вроде бы нет. Или я не прав?


Многим мыслителям очень неприятно вспоминать, что когда то они были детьми, ходили в детский сад, писяли и какали в штанишки, не могли подтереть себе задницу. Стив Йегг умело троллит на эту тему и заставляет вспомнить и заново натянуть на себя эти ассоциации
Потому мыслители всегда стараются дистанцироваться от нубов любыми легальными и нелегальными способами.

P.S. Это я потроллил, а Стив Йегг очень сильный психолог
Re[2]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.09.11 14:54
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Вкратце:

G>Комментарии не нужны, комментарии — частный случай метаданных (подмножество), следовательно любые метаданные не нужны.

G>С точки зрения булевой логики это некорректное выражение.


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

"consider adding some extra static types to clarify it (for you and for your compiler). Just keep in mind that it's a trade-off: you're introducing clarifying metadata at the cost of maintenance, upkeep, flexibility, testability and extensibility. Don't go too wild with it."


То есть, он говорит, 1 за метаданные нужно платить 2 нужен баланс.
Re: Стив Йегг: Портрет нуба
От: SV.  
Дата: 12.09.11 14:54
Оценка:
Здравствуйте, enji, Вы писали:

Трудно не согласиться со всем изложенным. Вопрос, какие делать выводы. По 20 лет программированием занимаются или кармакИ, или мудаки. И третьи Думы я что-то не часто вижу, так что, выбор невелик. Поэтому нубство программистов неизбежно и нубы, подчас, делают важнейшую часть проекта. Если им проще с избыточностью комментариев, типов и прочих метаданных, то и хрен с ними. Далее, а вы видели нубский код БЕЗ комментариев? Я видел. Без комментариев.

А суть передана удивительно точно. Сколько раз за собой замечал, что когда на работу не стоИт, начинаю заниматься всякой херней: раскладываю по полочкам, пишу тексты вокруг да около и так далее. Усиленно мастумоделирую, короче.
Re[3]: Стив Йегг: Портрет нуба
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 12.09.11 15:01
Оценка: +2
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


G>>Вкратце:

G>>Комментарии не нужны, комментарии — частный случай метаданных (подмножество), следовательно любые метаданные не нужны.

G>>С точки зрения булевой логики это некорректное выражение.


I>Если прочесть только процитированое в первом сообщении, то так и будет В статье, особенно англоязычной, нет никакого намёка на "любые метаданные не нужны", более того, есть совсем другое

I>

I>"consider adding some extra static types to clarify it (for you and for your compiler). Just keep in mind that it's a trade-off: you're introducing clarifying metadata at the cost of maintenance, upkeep, flexibility, testability and extensibility. Don't go too wild with it."


I>То есть, он говорит, 1 за метаданные нужно платить 2 нужен баланс.


А в чем смысл процитированного утверждения? Если мы добавляем статической типизации, то мы теряем поддерживаемость, гибкость и тестируемость кода? Ну бред же.

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

Например в статье активно рассматриваются комментарии и атрибуты, но потом утверждается что те же утверждения верны и для статических типов.

Более того становится очевидной бредовость рассуждений о статических типах если вспомнить что есть языки с автоматическим выводом типов.
Re: Стив Йегг: Портрет нуба
От: IT Россия linq2db.com
Дата: 12.09.11 15:20
Оценка: +1
Здравствуйте, enji, Вы писали:

Чувак явно путает понятие метаданные. Вот определение dictionary.com:

metadata

noun
data about data; "a library catalog is metadata because it describes publications"


Автор думает, что метаданные в этом примере — это data about data..., но на самом деле метаданные — это noun.

Ну а дальше из этой ошибки он делает далекоидущие выводы.

Если определять по аналогии с его разделением его возрастную категорию, то похоже у него сейчас жесточайший кризис среднего возраста. А в этом случае ещё и не такого бреда понапишешь.
Если нам не помогут, то мы тоже никого не пощадим.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.