Re[4]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 12.09.11 15:23
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

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

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

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

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

Вот нигадяй, написал всего лишь статью в блоге, а не монографию "Влияние психологических аспектов личности разработчика на ..."

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


Неужели абзац выше сложно прочесть ?

G>Более того становится очевидной бредовость рассуждений о статических типах если вспомнить что есть языки с автоматическим выводом типов.


Судя по баталиям в этом форуме, это такой очевидный вопрос, ага
Re[5]: Стив Йегг: Портрет нуба
От: Sinix  
Дата: 12.09.11 15:30
Оценка: 21 (2) -2
Здравствуйте, Ikemefula, Вы писали:


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

Вы снова переходите на личности. Зачем? Комментарии показывают, что код небезопасен для рефакторинга: count++ имеет побочные эффекты, на которые завязаны вызывающие функции. Кроме того, автор сам признаётся, что утрирует.

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

Опять, но на этот раз вы небрежно макнули самого Йогге Попробую сформулировать иначе: код с комментариями такого уровня пишут, когда не видят нужды в самоутверждении — человек уже доказал всё, что можно и себе, и окружающим.

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

А где я называл второй листинг эталоном? Он просто хуже читается и поддерживается, чем код в первом листинге.

I>Процитируй, где он хвастается или хамит ?

if u dont no wat a n00b iz, u r 1.
...
This is how junior programmers write code. ... you'll notice a striking similarity to the real-life 2-year-old Emily
...
programmers eventually have to go through a stupid-teenager phase
...
programmers with five to ten years of experience under their belts (still n00bs in their own way)
...
"5 to 10 years of experience" on a resume ... means "crazy invincible-feeling teenager with a 50/50 shot at writing a pile of crap
...
If you're a n00b, you'll look at experienced code and say it's impenetrable
...
people who really love the static modeling process, are n00bs
...
They're usually the logical modelers ... you'll doubtless also have noticed they're always getting in your way.

Ещё?

I> На РСДН, сравнивая с англоязычными вроде SO, SF и подобными, _очень_ _часто_ обливают помоями что бы доказать своё превосходтсво

Если не считать КСВ, где без забрала в принципе не ходят, я ничего подобного не наблюдаю. В любом случае, какое отношение это имеет к своеобразному стилю Йегге?

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

It depends. После постов Липперта, Синофски, Де Смета, да даже Спольски — Йегге унылый тролль.

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

См цитаты выше


I>

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

Это прогнозы? Хотя нет, закрывать глаза на тонны успешных мейнстрим-языков со статической типизацией — это важнейший принцип онолитега, так что всё ок.

I>

С моделированием связана еще одна очень актуальная проблема. Модели, которые получаются в результате этого процесса, часто оказываются “неправильными”.


С кодированием связана еще одна очень актуальная проблема. Код, который получается в результате этого процесса, часто оказывается “неправильным”.


С анализом требований связана еще одна очень актуальная проблема. Дизайн, который получается в результате этого процесса, часто оказывается “неправильным”.


Продолжать? Кривые результаты — это проблемы не инструмента, а его неправильного применения. Это я говорю как человек, как минимум лет 5 успешно применяющий моделирование в разработке.

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

Код вообще не имеет никакого отношения к модели, тем более к модели предметной области. Очень странно читать такие пёрлы от девелопера с 25 годами боевого опыта.

I>

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

Бекк/Амблер, вид сбоку. Это работает только для очень узкого набора сценариев и только при поставленном процессе разработки. Давать подобные советы без оговорок — моветонЪ


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

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

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

Спасибо, было приятно похоливарить, закругляемся.
Re[5]: Стив Йегг: Портрет нуба
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 12.09.11 16:07
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>

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


I>Неужели абзац выше сложно прочесть ?


Кто сказал что они являются комментами? Почему далее все рассуждения опираются на то что статические типы являются кооментами\метаданными?
Re: Стив Йегг: Портрет нуба
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.09.11 17:16
Оценка:
Здравствуйте, enji, Вы писали:

E>

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

E>Ха-ха.

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


Берд евангилиста динамической типизации. Причем чисто демагогический, так как аналогия с паспортом у собаки уже ни в какие ворота не лезет.

Злоупотребление типами тоже прикольный слоган. Это типа злоупотребления земным тяготением. Как это сделать я не понимаю.

Если язык статически типизированный, то говорить можно только об объеме аннотаций типов которые задает программист. Тут конечно может быть и злоупотребление (если язык позволят их не задавать), но даже если ты не укажешь ни одного типа в программе, но программа скомпилируется, то все равно все типы будут известны. Таким образом, как их не задавай их все равно будет 100%. Так что есть "злоупотреблением типами"?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Стив Йегг: Портрет нуба
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.09.11 17:19
Оценка:
Здравствуйте, avpavlov, Вы писали:

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


A>

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


И еще он не понял, того что в большинстве случаев просто нельзя написать код настолько близким к описанию проблемы, чтобы избавиться от комментарией. Точнее может и можно, но для этого язык должен позволят вводить другой язык — язык предметной области (DSL).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Стив Йегг: Портрет нуба
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.09.11 17:21
Оценка:
Здравствуйте, deniok, Вы писали:

D>А в строго статически типизированном Хаскелле, например, все типы выводит компилятор. Неужели в Хаскелл-комьюнити нету нубов?!


Есть. И они не указывают типы во всей программе. Те же кто по опытнее указывают типы для экспортируемых сущностей.

Так что вопрос о ньюбстве автора остается открытым. Точнее для меня он закрыт.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Стив Йегг: Портрет нуба
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.09.11 17:25
Оценка: 22 (1) +1
Здравствуйте, enji, Вы писали:

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


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

Но потом "гуру" осознает, что то что он писал в комментариях — это высокоуровневая спецификация задачи. И используемые им язык просто неспособен выразить это так же внятно. Тогда он снова начинает писать комментарии сетуя на то, что его язык недостаточно хорош.

Далее, гуру, осознавший, что он снова стал ньюбом начинает искть выход. И тут, вдруг, сама собой, появляется сакраментальная мысль... А причем тут немерле?

Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Стив Йегг: Портрет нуба
От: avpavlov  
Дата: 12.09.11 17:35
Оценка: :))) :))) :))) :))) :)
VD>немерле?

Три сообщения сдерживался, а потом махнул рукой?
Re: Стив Йегг: Портрет нуба
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.09.11 19:22
Оценка: +1
Здравствуйте, enji, Вы писали:

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


Прочел целиком, а не только отквоченное у нас...

Снение несколько изменилось. Основная суть мысль статьи — перегибы это плохо. С ней нельзя не согласиться.

В прочем, сам автор перегибает палку, но в другую сторону.

ЗЫ

Интересно, а кто-нибудь оценил юмор автора? В одном месте он был очень самокритичным и ироничным. Вот оно:

Постскриптум

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


Это хорошо! Это шедёвръ!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Стив Йегг: Портрет нуба
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.09.11 19:58
Оценка:
Просьба сократить оверквотинг цитирования
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Стив Йегг: Портрет нуба
От: SV.  
Дата: 13.09.11 01:13
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Злоупотребление типами тоже прикольный слоган. Это типа злоупотребления земным тяготением. Как это сделать я не понимаю.


VD>Если язык статически типизированный, то говорить можно только об объеме аннотаций типов которые задает программист. Тут конечно может быть и злоупотребление (если язык позволят их не задавать), но даже если ты не укажешь ни одного типа в программе, но программа скомпилируется, то все равно все типы будут известны. Таким образом, как их не задавай их все равно будет 100%. Так что есть "злоупотреблением типами"?


http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.html

For instance, as just one random illustrative example, you might need to return 2 values from a function in Java (a language with no direct support for multiple return values). Should you model it as a MyFunctionCallResult class with named ValueOne and ValueTwo fields (presumably with actual names appropriate to the problem at hand)? Or should you just return a 2-element array (possibly of mixed types) and have the caller unpack it?


Это пример автора. От себя другой пример:


// Где-то внутри OM, не API.

void Foo(bool rakom, bool bokom, bool sNaskoku) {}
...
Foo(false, true, true); // Плохо, ничего не понятно.

void Foo(Rakom rakom, Bokom bokom, Naskok sNaskoku) {}
Foo(Rakom.NeRakom, Bokom.Bokom, Naskok.SNaskoku);
// Часто рекомендуется, требует новых типов для, по сути, вызова одного лишь метода.

void Foo(bool rakom, bool bokom, bool sNaskoku) {}
...
Foo(rakom:false, bokom:true, sNaskoku:true); // Все понятно, новые типы не нужны.
Re: Стив Йегг: Портрет нуба
От: alexeiz  
Дата: 13.09.11 03:54
Оценка: +5
Здравствуйте, enji, Вы писали:

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


E>Перевод статьи на хабре: http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.html


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

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

Плотный код, кстати, обычно наблюдается у начинающих. Совсем не тот, что он привел, — с обширными комментариями ни о чем, — а именно простыни плотнейшего кода без малейших комментариев и какой либо структуры — удел всех тех, у кого еще мало опыта.
Re[6]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.09.11 07:27
Оценка: :))
Здравствуйте, Sinix, Вы писали:

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

S>Вы снова переходите на личности. Зачем?

Здесь нет перехода на личности, здесь просто вопросы

>Комментарии показывают, что код небезопасен для рефакторинга: count++ имеет побочные эффекты, на которые завязаны вызывающие функции. Кроме того, автор сам признаётся, что утрирует.


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

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

S>Опять, но на этот раз вы небрежно макнули самого Йогге Попробую сформулировать иначе: код с комментариями такого уровня пишут, когда не видят нужды в самоутверждении — человек уже доказал всё, что можно и себе, и окружающим.

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

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

S>А где я называл второй листинг эталоном?

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

>Он просто хуже читается и поддерживается, чем код в первом листинге.


Конечно хуже. Во первых, благодаря Лиспу, во вторых, в первом листинге комментариев примерно в двадцать раз больше чем кода.
Посему вопрос — ты и вправду считаешь, что пример из лиспа будет проще поддерживать, если насовать в него каментов 20 к 1 относительно строк кода ?


I>>Процитируй, где он хвастается или хамит ?

S>

S>Ещё?

Мне кажется, ты не смог отделить форму от содержания Примеры что ты процитировал это просто форма подачи.

I>> На РСДН, сравнивая с англоязычными вроде SO, SF и подобными, _очень_ _часто_ обливают помоями что бы доказать своё превосходтсво

S>Если не считать КСВ, где без забрала в принципе не ходят, я ничего подобного не наблюдаю.

Не только КСВ, но и Философия, Декларативное, Архитектура, Управление, Немерле

>В любом случае, какое отношение это имеет к своеобразному стилю Йегге?


И там и там нужно отделять форму от содержания

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

S>It depends. После постов Липперта, Синофски, Де Смета, да даже Спольски — Йегге унылый тролль.

Йегге между тем внятно объясняет, почему нубы пишут вот такой код. Он даже больше сделал — он показал почему люди пишут императивщину. Так что кто унылый троль это еще бабушка надвое сказала.

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

S>См цитаты выше

Это просто троллинг на который ты повёлся.

I>>

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

S>Это прогнозы? Хотя нет, закрывать глаза на тонны успешных мейнстрим-языков со статической типизацией — это важнейший принцип онолитега, так что всё ок.

Перечисли не тонну, а хотя бы десяток успешных мейнстрим-языков со статической типизацией при чем коммерчески успешных. Я знаю где то три таких — C# Java C++. Delphi вот уже нельзя назвать коммерчески успешным.

I>>

S>С моделированием связана еще одна очень актуальная проблема. Модели, которые получаются в результате этого процесса, часто оказываются “неправильными”.


И что тебя смущает ? Это ж очевидная вещь Чуть иначе это формулируют ту проблему в Аджиле.

S>Продолжать? Кривые результаты — это проблемы не инструмента, а его неправильного применения. Это я говорю как человек, как минимум лет 5 успешно применяющий моделирование в разработке.


И вероятно все твои модели были правильны на любое количество времени вперёд ? Я не поверю. Как только сменились цели(а стало быть требования и задачи), твоя модель внезапно становится неправильно. Вроде и ежу понятно, что эта часть меняется крайне часто и это норма для ПО.

S>Код вообще не имеет никакого отношения к модели, тем более к модели предметной области. Очень странно читать такие пёрлы от девелопера с 25 годами боевого опыта.


Код имеет непосредственное отношение к модели решения. ООП, ФП, АОП — это разные способы моделирования решения задачи.
Еще раз — не задачи, а её решения.

I>>Ты можешь отрицать такой феномен как временное повествования, но это твои личное дело.

S>Сорри, но здесь у меня терпение лопнуло. Продолжать наезжать после повторного намёка "не додумываем за окружающих" — это редкостная степень одарённости, я так не могу.

Вмест церемониальных расшаркиваний лучше говорить напрямик, оно эффективнее. Есть определенные факты и их легко установить из твоей писанины.
Re[6]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.09.11 07:39
Оценка:
Здравствуйте, gandjustas, Вы писали:

I>>

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


I>>Неужели абзац выше сложно прочесть ?

G>Кто сказал что они являются комментами? Почему далее все рассуждения опираются на то что статические типы являются кооментами\метаданными?
Хорошо, давай начнём с меньшего : "Если статические типы являются коментами, тогда мне кажется,"

lookup :: (Monad m, Ord k) => k -> Map k a -> m a


С чем ты не согласен ?
Re[2]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.09.11 07:40
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Но потом "гуру" осознает, что то что он писал в комментариях — это высокоуровневая спецификация задачи. И используемые им язык просто неспособен выразить это так же внятно. Тогда он снова начинает писать комментарии сетуя на то, что его язык недостаточно хорош.


В большинстве проектов язык не является узким местом. 90% времени/бюджета не на код.
Re[2]: Стив Йегг: Портрет нуба
От: jazzer Россия Skype: enerjazzer
Дата: 13.09.11 08:25
Оценка:
Здравствуйте, deniok, Вы писали:

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



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


D>А в строго статически типизированном Хаскелле, например, все типы выводит компилятор. Неужели в Хаскелл-комьюнити нету нубов?!

Ну как же, а компилятор?!
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Стив Йегг: Портрет нуба
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 13.09.11 09:44
Оценка: 8 (3)
Здравствуйте, alexeiz, Вы писали:

A>Кстати, пример, который он привел не является плотным кодом. Это видно по тому, что на одной строке всего по одному выражению, параметры разбиты на несколько строк, и структура просматривается легко.


A>Плотный код, кстати, обычно наблюдается у начинающих. Совсем не тот, что он привел, — с обширными комментариями ни о чем, — а именно простыни плотнейшего кода без малейших комментариев и какой либо структуры — удел всех тех, у кого еще мало опыта.


Простыни плотного кода без признаков структуры это признак совсем неопытного программиста или программиста, которому нужна только ЗП

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

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

Cамое интересное — в это же время он начал изъясняться намного более сложными фразами. Т.е. это значит что произошли качественные изменения в мышлении.
Re[7]: Стив Йегг: Портрет нуба
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.09.11 14:06
Оценка:
Здравствуйте, Ikemefula, Вы писали:

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


I>>>

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


I>>>Неужели абзац выше сложно прочесть ?

G>>Кто сказал что они являются комментами? Почему далее все рассуждения опираются на то что статические типы являются кооментами\метаданными?
I>Хорошо, давай начнём с меньшего : "Если статические типы являются коментами, тогда мне кажется,"
Давай, теперь надо доказать что статические типы являются комментариями, иначе все следующие рассуждения не имеют смысла.

I>
I>lookup :: (Monad m, Ord k) => k -> Map k a -> m a
I>

Это к чему?

I>С чем ты не согласен ?

Я не согласен с некорректными, с точки зрения булевой логики, утверждениями.
Re[3]: Стив Йегг: Портрет нуба
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.09.11 14:13
Оценка: +2
Здравствуйте, SV., Вы писали:

SV.>http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.html


SV.>

SV.>For instance, as just one random illustrative example, you might need to return 2 values from a function in Java (a language with no direct support for multiple return values). Should you model it as a MyFunctionCallResult class with named ValueOne and ValueTwo fields (presumably with actual names appropriate to the problem at hand)? Or should you just return a 2-element array (possibly of mixed types) and have the caller unpack it?


SV.>Это пример автора.


Нормальным решением этой проблемы было бы введение типа Tuple, или смена языка на язык поддерживающий кортежи.

SV.>От себя другой пример:


SV.>
SV.>// Где-то внутри OM, не API.

SV.>void Foo(bool rakom, bool bokom, bool sNaskoku) {}
SV.>...
SV.>Foo(false, true, true); // Плохо, ничего не понятно.

SV.>void Foo(Rakom rakom, Bokom bokom, Naskok sNaskoku) {}
SV.>Foo(Rakom.NeRakom, Bokom.Bokom, Naskok.SNaskoku);
SV.>// Часто рекомендуется, требует новых типов для, по сути, вызова одного лишь метода.

SV.>void Foo(bool rakom, bool bokom, bool sNaskoku) {}
SV.>...
SV.>Foo(rakom:false, bokom:true, sNaskoku:true); // Все понятно, новые типы не нужны.
SV.>


Я бы выбрал четвертый вариант — оставил бы у функции один параметр и сделал бы его битовой маской описанной перечислением.

ЗЫ

Названия параметров порадовали.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Стив Йегг: Портрет нуба
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.09.11 14:16
Оценка: +1 -1
Здравствуйте, Ikemefula, Вы писали:

VD>>Но потом "гуру" осознает, что то что он писал в комментариях — это высокоуровневая спецификация задачи. И используемые им язык просто неспособен выразить это так же внятно. Тогда он снова начинает писать комментарии сетуя на то, что его язык недостаточно хорош.


I>В большинстве проектов язык не является узким местом. 90% времени/бюджета не на код.


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