Re[10]: MIT переходи со схемы на...
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 22.11.06 07:23
Оценка: +4
Женя,

Поскольку тема немного изменила курс (напомню, изначально она была про MIT, Адельсона и Питон), предлагаю выделить отдельную ветку начиная с твоего сообщения.

Тема в принципе интересна. Её можно озаглавить например так — "Скелеты в шкафу Немерле".

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

E> В истории развития языков программирования не было случая, когда бы новый ЯП или технология создавали такой выдающийся прорыв в производительности.


И этот (весьма спорный) тезис тоже.

Остальным участникам тоже предлагаю рассмотреть возможность повесить бомбочку.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[10]: MIT переходи со схемы на...
От: Зверёк Харьковский  
Дата: 22.11.06 07:32
Оценка:
Здравствуйте, eao197, Вы писали:

В целом все это хорошо и правильно.
Но есть тут один такой моментик....

E>У ДеМарко и Листера в Peopleware говорилось приблизительно следующее (по памяти, книги нет под рукой):

E>

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

E>И, что не удивительно, они до сих пор правы. В истории развития языков программирования не было случая, когда бы новый ЯП или технология создавали такой выдающийся прорыв в производительности. Причем не при первом применении, а при длительном.

Так вот я, что характерно, с этим в корне несогласен. Не в том смысле, что "уж я-то знаю такую технологию", я в принципе. Как и с тезисами вроде "для профессионала все языки программирования одинаковы" и т.п.

Я убежден, что легкий, мощный, "хорошо ложащийся в руку" инструмент (в совмещении, вестимо, со светлой головой) способен давать разницы в основных параметрах разработки (продуктивность, надежность, минималистичность, и т.п.) именно что на порядки.

Очень грубый пример: в общем случае, программист на Фортране будет существенно менее продуктивен, чем программист на C#, вне зависимости от их опыта (если у обоих он лежит в рамках "профессиональный прогарммист").

Тут интересная корреляция с понятием "мощности" языка (по-моему у Грэма где-то есть об этом, когда он Лисп воспевает): добавление в язык некоторых "фич" увеличивает лаконичность и выразительность кода действительно на порядки.




Другое дело, что (холивар! холивар!) я, честно говоря, не вижу, какие из возможностей Nemerle делают его на порядок круче других языков с поддержкой ОО и функционального программирования (примем, что синтаксические макросы — мощный, но не единственный инструмент контроля синтаксиса; а type inference увеличивает более надежность, нежели продуктивность).
FAQ — це мiй ай-кью!
Re[10]: MIT переходи со схемы на...
От: McSeem2 США http://www.antigrain.com
Дата: 22.11.06 07:51
Оценка: 156 (8) +4 :))) :))) :))) :)))
Здравствуйте, eao197, Вы писали:

E>Так вот навязчивая реклама Nemerle со стороны VladD2 и, например, WolfHound-а, как раз и напоминает что-то среднее между пропагандой очередной серебряной пули и рекламными отчетами о повышении эффективности при первом применении нового инструмента.


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

Вот сначала был MS-DOS и язык Си. И некоторые взвыли от оргазма — Ооо! Си — это круто! Ну в общем, можно согласиться, хотя был еще и турбо-паскаль.

Потом пошел Windows — и некоторые взвыли — Ооо! Windows — это круто! Хотя программирование в нем превратилось в длинный switch-case и большинство просто фигачило этот switch, совершенно не задумываясь об алгоритмической сущности. При этом слова типа "LPSTR" вместо "char*" считались признаками хорошего тона. А что такое "LP"? А это — сокращение от "long pointer". А что такое "long pointer" — кто-нибудь сейчас помнит? Вот то-то и оно.

Потом на горизонте майнстрима возник некий C++ и выдвинули MFC. И некоторые взвыли от оргазма — Ооо, MFC — круто, WinAPI — отсттой! A Borland OWL — это просто смешно. Лично я был в рядах этих некоторых.

Потом сделали OLE и OLE2 и некоторые взвыли от оргазма — Ооо, OLE — круто. А то что в MFС чисто для обертки OLE2 было нафигачено более 200000 строчек кода, так это фигня.

Потом некоторые осознали, что MFC это слишком тяжеловесно, а вот есть ATL — и они взвыли от оргазма, что нашлось применение шаблонам и множественному наследованию. Ооо! Круто

При этом им парили, что венгерская нотация это правильно и круто. И некоторые говорили, что если ты не используешь венгерскую нотацию, то ты неуч и дебил. А венгерская нотация — это Ооо, круто!

Потом сказали, что венгерская нотация — это неправильно и не круто. Выплюньте! И некоторые взвыли от оргазма — Ооо! Венгерская нотация маздай, а вот именование переменных по-человечески — рулез.

Потом им начали парить, что C++ это полный отстой, а вот C# — рулез форева. И некотоые взвыли от оргазма — Ооо, да! C# рулез. C++ маздай!

Ну а теперь кто-то вбросил девку по имени Nemerle в полк. Некоторые взвыли от оргазма. Девка рожать после этого сможет? Искренне надеюсь что сможет, поскольку концепции Nemerle мне симпатичны, а вот все это броуновское движение вокругт нее — не очень.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[9]: MIT переходи со схемы на...
От: FR  
Дата: 22.11.06 08:14
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:


АХ>Питон — неплохой выбор, но на мой взгляд возможно Руби был бы даже лучше, поскольку там ООП сделано ИМХО получше.


Зато питоновский ООП очень легко объяснить начинающим, там практически все прозрачно, так что тут скорее питон выигрывает.
Re[11]: MIT переходи со схемы на...
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.11.06 08:18
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Очень грубый пример: в общем случае, программист на Фортране будет существенно менее продуктивен, чем программист на C#, вне зависимости от их опыта (если у обоих он лежит в рамках "профессиональный прогарммист").


Не гарантировано, как говорится it depends

ЗХ>Тут интересная корреляция с понятием "мощности" языка (по-моему у Грэма где-то есть об этом, когда он Лисп воспевает): добавление в язык некоторых "фич" увеличивает лаконичность и выразительность кода действительно на порядки.


Тут тоже не всё так тривиально:
кроме самих этих "фич" нужно ещё чтобы программист мог ими пользоваться, а это уже сильно зависит от его опыта, класса и т.д.
А у eao197 речь, насколько я понимаю, речь идёт об "усреднённом" программисте, когда технология становится общеупотребительной, т.е. как раз с этими характеристиками девелопера могут возникнуть "неувязочки"
Re[11]: MIT переходи со схемы на...
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 22.11.06 08:37
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

E>> В истории развития языков программирования не было случая, когда бы новый ЯП или технология создавали такой выдающийся прорыв в производительности.


LCR>И этот (весьма спорный) тезис тоже.


Здесь да, погорячился. Достаточно вспомнить переход от машинных кодов к ассемблеру и от ассемблера к языкам высокого уровря (к Fortran, например). Или же появления Domain Specific языков (вроде SQL), которые проводили прорывы в своих областях.

Поэтому делаю оговорку: речь идет о языках высокого уровня общего назначения. И не на одной конкретной задаче, а на совокупрости разных задач. Например, Prolog даст фору C++ при распознавании образов, но сольет при написании текстового редактора.

Этот же комментарий относится и к замечанию Зверька Харьковского, но на два одинаковых возражения я решил ответить в одном письме.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: MIT переходи со схемы на...
От: Зверёк Харьковский  
Дата: 22.11.06 08:39
Оценка: +1
Здравствуйте, Курилка, Вы писали:

ЗХ>>Очень грубый пример: в общем случае, программист на Фортране будет существенно менее продуктивен, чем программист на C#, вне зависимости от их опыта (если у обоих он лежит в рамках "профессиональный прогарммист").


К>Не гарантировано, как говорится it depends


ЗХ>>Тут интересная корреляция с понятием "мощности" языка (по-моему у Грэма где-то есть об этом, когда он Лисп воспевает): добавление в язык некоторых "фич" увеличивает лаконичность и выразительность кода действительно на порядки.


К>Тут тоже не всё так тривиально:

К>кроме самих этих "фич" нужно ещё чтобы программист мог ими пользоваться, а это уже сильно зависит от его опыта, класса и т.д.
К>А у eao197 речь, насколько я понимаю, речь идёт об "усреднённом" программисте, когда технология становится общеупотребительной, т.е. как раз с этими характеристиками девелопера могут возникнуть "неувязочки"

По обоим пунктам сразу отвечаю.
Я упоминал "светлую голову"
Человек, не способный освоить новую идею, потому что "слишком тупой", или потому что ему "надо еще до обеда написать 1000 строчек", мне не очень интересен. Хотя и удобен для сведения любого обсуждения к флейму.
FAQ — це мiй ай-кью!
Re[11]: MIT переходи со схемы на...
От: DerBober США  
Дата: 22.11.06 08:40
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Вот сначала был MS-DOS и язык Си. И некоторые взвыли от оргазма — Ооо! Си — это круто! Ну в общем, можно согласиться, хотя был еще и турбо-паскаль.

[SKIP]

Это Вы свою историю рассказываете?


MS>Ну а теперь кто-то вбросил девку по имени Nemerle в полк. Некоторые взвыли от оргазма. Девка рожать после этого сможет? Искренне надеюсь что сможет, поскольку концепции Nemerle мне симпатичны, а вот все это броуновское движение вокругт нее — не очень.


Девка сможет рожать лишь до тех пор пока не бросят новую.
Re[12]: MIT переходи со схемы на...
От: Зверёк Харьковский  
Дата: 22.11.06 08:46
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Lazy Cjow Rhrr, Вы писали:


E>>> В истории развития языков программирования не было случая, когда бы новый ЯП или технология создавали такой выдающийся прорыв в производительности.


LCR>>И этот (весьма спорный) тезис тоже.


E>Здесь да, погорячился. Достаточно вспомнить переход от машинных кодов к ассемблеру и от ассемблера к языкам высокого уровря (к Fortran, например). Или же появления Domain Specific языков (вроде SQL), которые проводили прорывы в своих областях.


E>Поэтому делаю оговорку: речь идет о языках высокого уровня общего назначения. И не на одной конкретной задаче, а на совокупрости разных задач. Например, Prolog даст фору C++ при распознавании образов, но сольет при написании текстового редактора.


E>Этот же комментарий относится и к замечанию Зверька Харьковского, но на два одинаковых возражения я решил ответить в одном письме.


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

Я имел в виду именно языки общего назначения. Примеры:
* язык с функциями высшего порядка намного мощней языка без оных.
* язык, имеющий встроенные средства для работы с составными структурами данных (туплы, хеши; да хоть бы и строки, без которых в С++ мы знаем что творится с совместимостью библиотек), намного мощнее языка без оных.
* язык, позволяющий тем или иным способом создавать удобные in-language DSL.
* предположительно, язык со встроенными средствами конкурентного программирования будет тоже намного мощнее (хотя и не уверен, что на большом числе задач).

Это все примеры "фич, которые могут на порядок повысить выразительность и лаконичность". И с огромным трудом имитируются с помощью отдельных библиотек.

ИМХО, опять же.
FAQ — це мiй ай-кью!
Re[13]: MIT переходи со схемы на...
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.11.06 08:53
Оценка: +1
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>По обоим пунктам сразу отвечаю.

ЗХ>Я упоминал "светлую голову"
ЗХ>Человек, не способный освоить новую идею, потому что "слишком тупой", или потому что ему "надо еще до обеда написать 1000 строчек", мне не очень интересен. Хотя и удобен для сведения любого обсуждения к флейму.

Как раз eao197 упирал, насколько я вижу, именно на длительное и более широкое использование, а не просто круг "светлых голов":

Но суть в другом, в том, что сейчас для сторонников Scala/Nemerle "золотой век" -- их окружают не только единомышленники, но люди с аналогичными способностями и желанием изучать, и применять что-то новое. Поэтому и кажется, что все вокруг так замечательно и решения сложных задач совместными усилиями находится элементарно. Но на подходе мы, скептики и консерваторы. Для которых новый язык это всего лишь лишние заморочки по переходу на новый инструмент. И которым преимущества хвостовой рекурсии придется объяснять так же долго и муторно (и не один раз), как когда-то приходилось доказывать преимущества наследования и полиморфизма (а потом много бить по рукам за их доведенное до маразма использование). Так что готовтесь, господа, легкой жизни не будет.


"Светлые головы" — это хорошо, но реалии несколько иные бывают
Re[13]: MIT переходи со схемы на...
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 22.11.06 09:05
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Это все примеры "фич, которые могут на порядок повысить выразительность и лаконичность". И с огромным трудом имитируются с помощью отдельных библиотек.


Да, выразительность и лаконичность повысят. Но повышение выразительности не связано прямой зависимостью с повышением производительности. Как у Декарта:

Пишу длинно, поскольку нет времени писать коротко.


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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[14]: MIT переходи со схемы на...
От: Зверёк Харьковский  
Дата: 22.11.06 09:14
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Зверёк Харьковский, Вы писали:


ЗХ>>Это все примеры "фич, которые могут на порядок повысить выразительность и лаконичность". И с огромным трудом имитируются с помощью отдельных библиотек.


E>Да, выразительность и лаконичность повысят. Но повышение выразительности не связано прямой зависимостью с повышением производительности. Как у Декарта:

E>

E>Пишу длинно, поскольку нет времени писать коротко.


По мне, так связано. И Декарт это подтверждает

E>Кстати, я согласен с добавлениями Курилки -- пока языком занимаются только светлые головы (как сейчас происходит с Nemerle) -- все здорово. Но светлых голов не так уж и много.


Ну, обратно сводить все к диллеме "светлая голова"/"средний прогарммист" мне лень.
FAQ — це мiй ай-кью!
Re[14]: MIT переходи со схемы на...
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.11.06 09:20
Оценка: +2
Здравствуйте, eao197, Вы писали:

E>Кстати, я согласен с добавлениями Курилки -- пока языком занимаются только светлые головы (как сейчас происходит с Nemerle) -- все здорово. Но светлых голов не так уж и много.


Т.е. получаем по сути 2 пути развития софтостроения (в рамках одной конторы):
  • экстенсивный, за счёт набора большего числа сотрудников, возможно не высокого класса;
  • интенсивный — за счёт тщательного отбора высококлассных специалистов.
    И 2-й путь гораздо сложнее, т.к. и отобрать довольно сложно (среди общего числа программистов) + вероятность встретить (и ещё мотивировать) таких людей не очень велика, а за счёт небольшого числа сотрудников большие объёмы задач решать несколько проблемно. Из реальных примеров, о которых я знаю, только про яндекс можно сказать, что они идут по 2-му пути. Про софтверные корпорации уж точно такого сказать нельзя.
  • Re[15]: MIT переходи со схемы на...
    От: Курилка Россия http://kirya.narod.ru/
    Дата: 22.11.06 09:28
    Оценка:
    Здравствуйте, Зверёк Харьковский, Вы писали:

    ЗХ>Ну, обратно сводить все к диллеме "светлая голова"/"средний прогарммист" мне лень.


    Просто речь идёт о реальном применении в реальных, крупных проектах, а не теоретических изысканиях каких-нибудь гениальных аспирантов
    Ответь, если не трудно, на вопрос: в той компании, где ты работаешь (если она, конечно, не ограничивается парой человек), каждый программист является этой самой "светлой головой"?
    Если так — хочу работать в вашей конторе
    Re[15]: MIT переходи со схемы на...
    От: eao197 Беларусь http://eao197.blogspot.com
    Дата: 22.11.06 09:30
    Оценка: +2
    Здравствуйте, Зверёк Харьковский, Вы писали:

    E>>Да, выразительность и лаконичность повысят. Но повышение выразительности не связано прямой зависимостью с повышением производительности. Как у Декарта:

    E>>

    E>>Пишу длинно, поскольку нет времени писать коротко.


    ЗХ>По мне, так связано. И Декарт это подтверждает


    Счастливчик
    А по мне, так на написание функции из 5-ти строк нужно гораздо больше времени, чем на написание функции из 15-ти строк.

    E>>Кстати, я согласен с добавлениями Курилки -- пока языком занимаются только светлые головы (как сейчас происходит с Nemerle) -- все здорово. Но светлых голов не так уж и много.


    ЗХ>Ну, обратно сводить все к диллеме "светлая голова"/"средний прогарммист" мне лень.


    Поддерживаю. Более того, я сторонник того, чтобы проектами занимались небольшие команды хороших специалистов (как операционные бригады у Брукса).

    Но я о другом напомню:

    Но сражаясь за красоту
    Дурни подняли пыль

    (Крематорий, Винные мемуары).

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


    SObjectizer: <микро>Агентно-ориентированное программирование на C++.
    Re[15]: MIT переходи со схемы на...
    От: eao197 Беларусь http://eao197.blogspot.com
    Дата: 22.11.06 09:32
    Оценка:
    Здравствуйте, Курилка, Вы писали:

    К>Т.е. получаем по сути 2 пути развития софтостроения (в рамках одной конторы):

    К>
  • экстенсивный, за счёт набора большего числа сотрудников, возможно не высокого класса;
    К>
  • интенсивный — за счёт тщательного отбора высококлассных специалистов.

    Об этом уже давно говорят и ДеМарко с Листером, и Ларри Константин, и Брукс.

    К>Из реальных примеров, о которых я знаю, только про яндекс можно сказать, что они идут по 2-му пути. Про софтверные корпорации уж точно такого сказать нельзя.


    Ну мы еще стараемся по второму пути идти Хотя нам до софтверной копорации еще далеко


  • SObjectizer: <микро>Агентно-ориентированное программирование на C++.
    Re[16]: MIT переходи со схемы на...
    От: Зверёк Харьковский  
    Дата: 22.11.06 09:35
    Оценка: +1 :))
    Здравствуйте, Курилка, Вы писали:

    ЗХ>>Ну, обратно сводить все к диллеме "светлая голова"/"средний прогарммист" мне лень.


    К>Ответь, если не трудно, на вопрос: в той компании, где ты работаешь (если она, конечно, не ограничивается парой человек), каждый программист является этой самой "светлой головой"?


    Угу. Голова тут одна, но на светлость ее я не жалуюсь

    Тут, по сути, и проходит граница спора — в том, что я не подхожу к технологиям с меркой "а что если мне придется ее использовать в большом коллективе". Это чисто личное — я не переношу коллективов в принципе. Потому мне и интереснее обсуждать соотношения язык/личность, а не инструмент/толпа.
    FAQ — це мiй ай-кью!
    Re[16]: MIT переходи со схемы на...
    От: Зверёк Харьковский  
    Дата: 22.11.06 09:44
    Оценка:
    Здравствуйте, eao197, Вы писали:

    E>Здравствуйте, Зверёк Харьковский, Вы писали:


    E>>>Да, выразительность и лаконичность повысят. Но повышение выразительности не связано прямой зависимостью с повышением производительности. Как у Декарта:

    E>>>

    E>>>Пишу длинно, поскольку нет времени писать коротко.


    ЗХ>>По мне, так связано. И Декарт это подтверждает


    E>Счастливчик

    E>А по мне, так на написание функции из 5-ти строк нужно гораздо больше времени, чем на написание функции из 15-ти строк.

    Ну да Так будет всегда.
    Но вопрос в том, что именно будет в этих 5/15 строках — а это вопрос лаконичности (в 5 строках на Руби больше мудрости, чем в 5 строках на С).
    FAQ — це мiй ай-кью!
    Re[16]: MIT переходи со схемы на...
    От: Курилка Россия http://kirya.narod.ru/
    Дата: 22.11.06 09:45
    Оценка:
    Здравствуйте, eao197, Вы писали:

    E>Поддерживаю. Более того, я сторонник того, чтобы проектами занимались небольшие команды хороших специалистов (как операционные бригады у Брукса).


    Блин, хочу в такую команду
    Re[16]: MIT переходи со схемы на...
    От: Курилка Россия http://kirya.narod.ru/
    Дата: 22.11.06 09:54
    Оценка:
    Здравствуйте, eao197, Вы писали:

    E>Ну мы еще стараемся по второму пути идти Хотя нам до софтверной копорации еще далеко


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