Какой функциональный язык стоит изучать?
От: Аноним  
Дата: 02.03.07 18:09
Оценка:
Здравствуйте.
Хочу начать учить
функциональное программирование для общего развития.
Не хочется изучать что-то оторванное от реальности.
Пока думаю изучать Erlang.

Какой язык вы можете посоветовать?
Re: Какой функциональный язык стоит изучать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.03.07 18:34
Оценка: :))
Здравствуйте, <Аноним>, Вы писали:

А>Хочу начать учить

А>функциональное программирование для общего развития.
А>Не хочется изучать что-то оторванное от реальности.
А>Пока думаю изучать Erlang.

А>Какой язык вы можете посоветовать?


Без разницы. Тут как в сексе. Главное процесс. Изучай Erlang если хочется.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Какой функциональный язык стоит изучать?
От: Аноним  
Дата: 02.03.07 19:41
Оценка: -3
VD>Без разницы
хз, хз...
Напр. императивную концепцию я бы посоветовал изучать с Паскаля а не с С++
Re: Какой функциональный язык стоит изучать?
От: Аноним  
Дата: 02.03.07 20:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте.

А>Хочу начать учить
А>функциональное программирование для общего развития.
А>Не хочется изучать что-то оторванное от реальности.
А>Пока думаю изучать Erlang.

А>Какой язык вы можете посоветовать?


Так для общего развития или не оторванное от реальности?
Если для развития, то Scheme на основе SICP (это основы) и потом Haskell (после него, можно считать, знаешь все функциональные языки сразу), а если не отрываться от реальности, то лучше вообще забыть про это.
Re[2]: Какой функциональный язык стоит изучать?
От: Аноним  
Дата: 02.03.07 20:25
Оценка:
А>Так для общего развития или не оторванное от реальности?
А>Если для развития, то Scheme на основе SICP (это основы) и потом Haskell (после него, можно считать, знаешь все функциональные языки сразу), а если не отрываться от реальности, то лучше вообще забыть про это.

Спасибо за советы.

Объясню свою позицию.
Использовать в коммерческих целях (т.е. на работе
функциональное программирование я пока не собираюсь.
Но изучать язык на котором нельзя написать коммерческий проект как-то не интересно.
Т.е. я считаю что язык не должен быть вещью в себе и для себя.
Re: Какой функциональный язык стоит изучать?
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 02.03.07 21:32
Оценка: :)
Здравствуйте, <Аноним>, Вы писали:

А>Какой язык вы можете посоветовать?


Посоветую Scheme для начала. Из-за его простоты.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Какой функциональный язык стоит изучать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.03.07 22:40
Оценка: -3
Здравствуйте, <Аноним>, Вы писали:

VD>>Без разницы

А>хз, хз...
А>Напр. императивную концепцию я бы посоветовал изучать с Паскаля а не с С++

Это хорошо... что ты плоский и зеленый, тфу ты, анонимный и никому неизвестный. Ни то стройные ряды дубокодеров будут шириться до кончины рода человеческого.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Какой функциональный язык стоит изучать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.03.07 22:40
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>>Не хочется изучать что-то оторванное от реальности.

...
А>Если для развития, ... то Scheme ... Haskell

(задумчиво) А что... что-то в этом есть...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Какой функциональный язык стоит изучать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.03.07 22:40
Оценка:
Здравствуйте, lomeo, Вы писали:

L>Посоветую Scheme для начала. Из-за его простоты.


Логично, блин. car/cdr/cons/посфиксная запись/AST вместо синтаксиса... что может быть проще? Эрланг тут конечно отдыхат.

ЗЫ

Ничего не имею проив Схемы или даже Хаскеля, но мне интересно, это ФП так сильно травмирует восприятие мира, или просто люди с априори травмированным восприятием мира склоны к ФП? Ведь аргументация, ну, просто потрясающая.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Какой функциональный язык стоит изучать?
От: c-smile Канада http://terrainformatica.com
Дата: 03.03.07 00:43
Оценка: +8
Здравствуйте, VladD2, Вы писали:

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


Я бы тоже начинал программирование учить с Паскаля. А обществовединие с этикета общения.
Re[3]: Какой функциональный язык стоит изучать?
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 03.03.07 02:05
Оценка:
Здравствуйте, VladD2, Вы писали:

L>>Посоветую Scheme для начала. Из-за его простоты.


VD>Логично, блин. car/cdr/cons/посфиксная запись/AST вместо синтаксиса... что может быть проще? Эрланг тут конечно отдыхат.


VD>ЗЫ


VD>Ничего не имею проив Схемы или даже Хаскеля, но мне интересно, это ФП так сильно травмирует восприятие мира, или просто люди с априори травмированным восприятием мира склоны к ФП? Ведь аргументация, ну, просто потрясающая.


Во-первых, запись там не посфиксная, такой записи вообще не существует.
Во-вторых, я не понял, с чем именно ты не согласен — с тем, что неплохо начинать учить ФП со схемы, или с тем, что схема — простой язык? Или и с тем и с другим?

А то, что в MIT только те, у кого психика травмирована я в курсе, ага.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Какой функциональный язык стоит изучать?
От: Mirrorer  
Дата: 03.03.07 08:08
Оценка: +3
Здравствуйте, VladD2, Вы писали:

VD>car/cdr/

Так уж исторически сложилось..
Ну ок. Ну сделали бы они head/tail было бы значительно лучче ?
Да и caddr кстати короче писать чем head(tail(tail ))


VD>cons

construst-new-list или что-то вроде конечно понятнее.
Но имхо это как разница между Pow и Power или Exp и Exponent

VD>/посфиксная запись/

VD>AST вместо синтаксиса...

Префиксная ? Ну да она специфична.

А в случае с XML это не напрягает ?
Я же уже неоднократно приводил пример
<add>
  <x>
  <y>
</add>

(add x y)

Есть принципиальная разница в понимании этих кусков кода ?

Тем более что при программировании нетривиальных макросов придется работать с AST.
Для Немерле AST это отдельное измерение. А для Scheme это тот же язык.
Пример с синтаксическим дифференцированием в SICP меня просто поразил своей простотой и красотой. Без префиксной нотации оно было бы больше и не настолько элегантно.

Тем не менее я считаю что на практике лучше применять что-то другое. Scheme он отлично подходит для обучения ФП.

А по поводу Хаскеля. Он хорош для обученя ФП в том смысле что он pure(ну или что-то типа того ) Человек который его начинает изучать не сможет реализовать программу в императивном стиле. Ему придется плеваться на то что все не так, как он привык, и он на своей шкуре почувствует где ФП дает какой-то плюс, а где удобне было бы попользоваться старым добрым императивом. Обучение ФП на основе Хаскела это что-то типа обучения плаванию путем выбрасывания на середине озера. Злобно но эффективно.

Альтернативой может быть изучение ФП на основе не pure языков типа OCaml или Nemerle. Но человек с опытом императивного программирования будет поначалу все время думать по императивному. Поэтому путь до просветления и понимания обласит применимости ФП фишек в таком случае будет долше. ИМХО естественно.
"Если Вы отличаетесь от меня, то это ничуть мне не вредит — Вы делаете меня богаче". Экзюпери
Re[4]: Какой функциональный язык стоит изучать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.03.07 10:17
Оценка: -2
Здравствуйте, lomeo, Вы писали:

L>Во-первых, запись там не посфиксная,


Да, оговорился, сори. Хотел сказать префиксная.
В прочем, до слов можно было и не докапываться. Все же ясно о чем я хотел сказать.

L>такой записи вообще не существует.


На этот раз до орфографии докапывашся? Или считашь что постфиксной нотации не существует?

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

L>Во-вторых, я не понял, с чем именно ты не согласен — с тем, что неплохо начинать учить ФП со схемы, или с тем, что схема — простой язык? Или и с тем и с другим?


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

L>А то, что в MIT только те, у кого психика травмирована я в курсе, ага.


Давай теперь прикрываться громкими именами. Правильно сморозил глупость. Тут уже без демагогии и апелляции к авторитетам никак не обойтись. И фиг с ним, что тот же МИТ принял решение использовать для обучения программированию Питон. И что Лисп там используется для курса "Компьютерная наука".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Какой функциональный язык стоит изучать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.03.07 10:17
Оценка: 12 (1) +1 -1 :)
Здравствуйте, Mirrorer, Вы писали:

VD>>car/cdr/

M>Так уж исторически сложилось..

Ага. И не стоит при этом называть язык простым. Многим просто запомнить эти "слова" тяжело.

M>Ну ок. Ну сделали бы они head/tail было бы значительно лучче ?


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

M>Да и caddr кстати короче писать чем head(tail(tail ))


Да, ды, несомнено короче. Ну, куда уж там каким нибудь:
x : y : t



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

M>Префиксная ?


Да.

M>Ну да она специфична.


Она в первю очередь непривычна, а значит мешает обучению.

M>А в случае с XML это не напрягает ?


А XML стал ЯП и его предлагаю как первый язык?

M>Тем более что при программировании нетривиальных макросов придется работать с AST.


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

M>Тем не менее я считаю что на практике лучше применять что-то другое. Scheme он отлично подходит для обучения ФП.


Да, да. Без знания caddr мир останется тусклым и безликим. Ты меня убедил. Ничто кроме простого и нтуитивно-понтяного мега-на-фиг-в-реальной-жизни-не-упавшего-языка не подходит. Признаю, был не прав.

M>А по поводу Хаскеля. Он хорош для обученя ФП в том смысле что он pure


Да, не. Ты меня убедил. Схема лучше всего. Ведь мир ФП не даром считается миром сумашедших ученых и извращенцев. Нельзя разочаровывать людей. В прочем Хаскель действително имеет некоторые приемущества. Так у него офигительные введения. Они мега-круты, так как могут отбить желание иметь дело с ФП почти у любого.

M>(ну или что-то типа того ) Человек который его начинает изучать не сможет реализовать программу в императивном стиле.


Ой ли? Берем IO-монаду и захриначиваем мега-императивный код.
И что характерно его можно захреначить на любом ЯП. Ведь императивный стиль не может не поддерживаться языком пригодным для написания программ для современного компьютера.

M> Ему придется плеваться на то что все не так, как он привык, и он на своей шкуре почувствует где ФП дает какой-то плюс, а где удобне было бы попользоваться старым добрым императивом. Обучение ФП на основе Хаскела это что-то типа обучения плаванию путем выбрасывания на середине озера. Злобно но эффективно.


Хороший подход в обучении. Сам научился так плавать (упав с лодки).

M>Альтернативой может быть изучение ФП на основе не pure языков типа OCaml или Nemerle. Но человек с опытом императивного программирования будет поначалу все время думать по императивному. Поэтому путь до просветления и понимания обласит применимости ФП фишек в таком случае будет долше. ИМХО естественно.


Ну, вот мы и дошли до действительно интересного момента.
Я начал работать над проектом Интеграции Немерла с VS 2005 в гордом одиночестве (кстати, твое сообщение украло у меня 15 минут от работы над ней, хорошо, что я пареллельно поел ). Потом ко мне начали подключаться другие программисты. Не все из них много сделали для проекта, но у них у всех была одна интересная особенность! Они все были "императивными программистами" (преимущественно с C++/C#-прошлым).

Так вот, я имел возможность наблюдать, как многие из них постигали ФП на практике. Обычно, мелких подсказок, а то и просто чтение нашей (с Туленцывым) статьи, хватало, чтобы они постепенно изменяли свой подход в кодировании. Сначала это был чисто императивный стиль. Постепенно в нем появлялись те или иные приемы из ФП. И что самое приятное и забавное одновременно большинство из них ссали кипятком, когда открывали для себя те или иные аспекты (т.е. это не было нудным обучением, это были приятные мелкие открытия). Происходило это потому, что ФП давал им не какой-то там идеологический булшит как это принято в мире ФП, а практически сокращал и упрощал их код! Вместо цикла преобразующего список в строку они постепенно перешли к вызову пары функций. Вместо тонны if-ов к использованию сопоставления с образцом. В местах, где ООП давал не лучший результат, стали использовать варианты (алгебраические типы данных) и сопоставление с образцом. Со временем они освоили "другой" полиморфизм (отличный от виртуальных функций и наследования) и другие аспекты ФП.

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

Так что конечно Nemerle (не могу сказать за OCaml, так как серьезных проектов на нем не вел, но по идее и он тоже) это ужасный язык с точки зрения настоящих функциональщиков. Он можно сказать вероломный.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Какой функциональный язык стоит изучать?
От: Gaperton http://gaperton.livejournal.com
Дата: 03.03.07 11:36
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте.

А>Хочу начать учить
А>функциональное программирование для общего развития.
А>Не хочется изучать что-то оторванное от реальности.
А>Пока думаю изучать Erlang.

А>Какой язык вы можете посоветовать?


Erlang — правильный выбор.
Во-первых, самый простой — он проще схемы и прочего, он вообще один из самых простых в мире языков. На полное изучение языка уходит неделя.
Во-вторых, это, к сожалению, пока единственный ФЯ, на котором не только говорят, но и делают промышленный софт. Это единственный неакадемический ФЯ. Он изначально создан для индустриальных применений.
Re[5]: Какой функциональный язык стоит изучать?
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.03.07 12:58
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Я бы тоже начинал программирование учить с Паскаля. А обществовединие с этикета общения.


Паскаль еще ладно. Но С++ — это уже перебор.

Да и какой Паскаль? Виртовский? Еги реализацию и найти то уже не просто. А Дельфи будет мало чем отличаться от Явы/C# скажем.

Тогда уж имеет смысл говорить об Обероне . А что? Это более совершенный нежели Паскаль язык. Да и проще он. Вот только не практичный.

В общем, это вы проецируте свой опыт на данный вопрос.

Лично я вообще начинал с С. Но почему-то мне не хочется советовать так же поступать сегодняшним начинающим.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Какой функциональный язык стоит изучать?
От: Mirrorer  
Дата: 03.03.07 13:08
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>>>car/cdr/

VD>Многим просто запомнить эти "слова" тяжело.
Не могу не согласится. Люди они разные.
Лично я их запомнил через 10 минут игры со списками в интерпретаторе.

M>>Да и caddr кстати короче писать чем head(tail(tail ))

VD>Да, ды, несомнено короче. Ну, куда уж там каким нибудь:
VD>
VD>x : y : t
VD>

VD>
list comprehensions конечно удобнее для работы со списками чем функции.
+1

VD>Она в первю очередь непривычна, а значит мешает обучению.

M>>А в случае с XML это не напрягает ?
VD>А на XML стал ЯП и его предлагаю как первый язык?
Никак нет, не стал. Речь исключитлеьно об нотации. Ведь у ХМЛ тоже префиксная нотация. Или лучше скзатаь префиксно-постфиксная. Неужели много людей жалуется что она непонятна?
Ну да ладно. Люди бывают разные и восприятие у них тоже. По этому поводу спорить толку нет.

VD>Да, да, притягивание за ужи разной муры типа макросов — это главное когда речь идет о первом ЯП для обучения ФП.

Макросы — мура ? Позволю себе не согласится сударь
Попробую еще раз объяснить почему именно Scheme.
Синтаксис языка пределно прост. Можно даже сказать что он отсутсвует.
Достоинство это или недостаток каждый решает для себя. Я считаю что для обучения это больше плюс, чем минус. Сущностей которыми приходится оперировать очень мало. Есть список он же и функция. Есть литералы. Но тем не менее на этом простом базисе можно объяснить многие вещи. В том числе и макросы. И есть доступные и понятные статьи, и даже книги по этому делу.
Поэтому ИМХО как язык для обучения Scheme очень хорош. Но применять его на практике скорее всего не придется. О чем я честно и сказал.

VD> В прочем Хаскель действително имеет некоторые приемущества. Так у него офигительные введения. Они мега-круты, так как могут отбить желание иметь дело с ФП почти у любого.

+1

VD>Ой ли? Берем IO-монаду и захриначиваем мега-императивный код.

Как ты думаешь сколько нужно времени человеку чтобы разобраться как работать с монадами ?
Пока человек доберется до монад ему придется пользоваться pure functional вещами. Так что монады это что-то типа спасательного круга до которого в принципе можно доплыть, но для того чтобы до него доплыть уже нужно хоть как-то плавать (продолжая аналогию с лодкой).
И обычно те, кто доплывают до монад не тащат императивные идеи. Но такой способ обучения может завершится летальным исходом.

Хотя для человека задавшего превоначальный вопрос это обсуждение врядли имеет смыл.
Haskell и Scheme ИМХО в промышленности имеют не очень большую область применения.
Имеется ввиду что для большинства задач затраты на реализацию при помощи Haskell\Scheme будут такими же, а то и больше(переход на другие технологии задаром не дается).


VD>Я начал работать над проектом Интеграции Немерла с VS 2005 в гордом одиночестве (кстати, твое сообщение украло у меня 15 минут от работы над ней, хорошо, что я пареллельно поел ).

[Offtopic]
Если бы для интеграции не нужно было качать 100 метровый СДК каждый месяц, то одним разработчиком интеграции стало бы больше
[/Offtopic]

VD> [Кусок нагло вырезан] Со временем они освоили ... и другие аспекты ФП.

Аналогично, шеф (с)
И теперь я плююсь оттого что мне приходится работать на c# 2.0 на .Net CF.
Когда понимаешь что многие вещи можно делать значительно проще и естественнее, то использовать старые подходы настолько противно....


VD>Это конечно плохо для тех кто пытается воять лагеть непримиримых функциональщиков

Неужели я со стороны похож на непримиримого функциональщика ?

VD>готвых забрасывать функциональные озера трупами бедных ни в чем не повинных императивщиков.



VD>Так что конечно изучение Немерле (не могу сказать за ОКамл, так как серьезных проектов на нем не вел, но по идее и он тоже) это ужасный язык с точки зрения функциональщиков. Он можно сказать вероломный.

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

У него очень слабо с документацией. Те же Хаскелл и Scheme имеют кучу документации, статей туториалов, даже видеолекций. В случае с Немерле ситуация выглядит очень печально.
Я бы сам не против написать пару статей про применение N. допустим в сравнении с C# 3.0 Но меня сдерживает отсутсвие нормального описания языка. То что оно где-то существует в голове разработчиков или людей которые с ними общаются это здорово конечно. Но хотелось бы увидеть его собранном в одном месте.

З.Ы. предлагаю тему Haskell/Scheme дальше не развивать.
"Если Вы отличаетесь от меня, то это ничуть мне не вредит — Вы делаете меня богаче". Экзюпери
Re[3]: Какой функциональный язык стоит изучать?
От: CrazyClown  
Дата: 03.03.07 14:13
Оценка: :)
Здравствуйте, VladD2, Вы писали:

L>>Посоветую Scheme для начала. Из-за его простоты.


VD>Логично, блин. car/cdr/cons/посфиксная запись/AST вместо синтаксиса... что может быть проще?


Где там постфиксная запись?!?

Что может быть проще ЕДИНСТВЕННОЙ структуры данных (cons)? Что может быть проще композабельных car/cdr?
Что может быть проще отсутствия синтаксиса (который, соответственно, не надо изучать)?

Вообще, сложность — это понятие объективное. Измеряемое. Вычислимое. Чье либо частное мнение тут вообще не котируется никогда и никак. И как раз объективная сложность у Схемы очень маленькая. Правда, у brainfuck и unlambda она еще меньше, да.
Re[5]: Какой функциональный язык стоит изучать?
От: CrazyClown  
Дата: 03.03.07 14:15
Оценка: +1 -1
Здравствуйте, VladD2, Вы писали:

VD>Как я уже сказал, по фигу какой язык учить. Тут важнее качество учебника/учителя.


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

VD>Но то что Схема — это простой язык конечно бред.


Обоснвоаний конечно же не будет, так?

L>>А то, что в MIT только те, у кого психика травмирована я в курсе, ага.


VD> И фиг с ним, что тот же МИТ принял решение использовать для обучения программированию Питон.


Ага, для паяльников. Всем остальным — Схема. И, кстати, MIT не один — еще и Беркли, и Стенфорд, и CMU.
Re[5]: Какой функциональный язык стоит изучать?
От: CrazyClown  
Дата: 03.03.07 14:27
Оценка: :)
Здравствуйте, VladD2, Вы писали:

VD>Ага. И не стоит при этом называть язык простым. Многим просто запомнить эти "слова" тяжело.


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

VD>Ага. К тому же в современных ФЯ для работы со списками исползуется удобный синтаксический сахар и использовать ключевые слова не нужно.


Синтаксический сахар = сложность. Для той же Схемы полно реализаций сколь угодно навороченного pattern matching, в моем коде на Схеме вообще не найти ни одного car/cdr или их производных. Кое что есть даже в минимальном R5RS (в макрах). Но это уже не есть минимальный, простейший язык. Несовместимы понятия "простой язык" и "синтаксический сахар".

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