The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"OpenNews: Сколько языков программирования нужно выучить"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"OpenNews: Сколько языков программирования нужно выучить"  +/
Сообщение от opennews on 20-Мрт-08, 14:25 
Кристофер Диггинс (Christopher Diggins), автор известной книги "C++ Cookbook" и создатель языка программирования Cat (http://www.cat-language.com/),  в своем блоге Programming Languages (http://dobbscodetalk.com/index.php?option=com_myblog&categor...), советует — учите столько языков программирования, сколько сможете выучить. Ведь, если гипотеза Сапир-Ворфа (http://en.wikipedia.org/wiki/Sapir-Whorf_hypothesis) распространяется и на компьютерные языки, то их изучение позволит вам расширить свое мышление и глубже понять само программирование. «Предполагая, что вы, скорее всего, используете C++ или Java, я рекомендую изучить следующие языки, в следующем порядке и как можно быстрее:», - пишет Диггинс.


-
<strong>Ruby</strong>. Разработчики Ruby проделали огромную работу, демонстрирующую каким мощным может быть динамический язык программирования. Ruby заимствует лучшие идеи Smalltalk, Perl и Lisp;
</li>
-
<strong>Scheme</strong>. Доволь...

URL: http://dobbscodetalk.com/index.php?option=com_myblog&show=Le...
Новость: https://www.opennet.ru/opennews/art.shtml?num=14848

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Сколько языков программирования нужно выучить"  +/
Сообщение от cBoJIo4b on 20-Мрт-08, 14:25 
Ассемблер забыл упомянуть. Если уж какой язык и нужно выучить чтоб быть хорошим программистом дак этов первую очередь его. А после него между остальным языками особой разницы нет. И изучение нового языка для написания простейших приложений на нем происходит за максимум за неделю.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Сколько языков программирования нужно выучить"  +/
Сообщение от bsdemon on 20-Мрт-08, 17:01 
Ассемблер тут совершенно не причём, с точки зрения решения задач программирования. А вот функциональные языки это сила - вот посмотрите через несколько лет - всё будет написано на них.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

20. "Сколько языков программирования нужно выучить"  +/
Сообщение от AsphyX (??) on 20-Мрт-08, 17:47 
Так говорят с момента их появления :)
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

22. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 20-Мрт-08, 17:57 
> Ассемблер тут совершенно не причём, с точки зрения решения задач программирования.

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

> А вот функциональные языки это сила - вот посмотрите через несколько лет - всё будет написано на них.

С математической точки зрения "несколько" это больше одного. В этом я согласен полностью. Хотя понятие "несколько" все-таки предполагает конечное количество. Вот с этим не соглашусь :)  Хочу заметить, что функциональные языки никогда не смогут получить широкого распространения. Слишком они сложны для изучения и совсем сложны в приминении. Я скорее поверю, что в обозримом будущем большенство софта будет написано на языках семейства .NET. Хотя узкий круг специализированных задач, особенно инженерных, функциональные языки скорее всего отстоят.

А еще хочу выразить искреннее сожаление, что большенство модных ООязыков не поддерживают множественного наследования. Похоже, что С++ ждет участь функциональных языков. В смысле никто не будет их учить ибо сложно. И они останутся только как примеры "как еще можно вывернуть мозг наизнанку". А все будет писаться на компонентных языках. В смысле "берем ярлычек и тащим его сюда, потом программируем свойства: один, два, тру!".

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

29. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 20-Мрт-08, 18:32 
>Хочу заметить, что функциональные языки никогда не
>смогут получить широкого распространения. Слишком они сложны для изучения и совсем
>сложны в приминении.

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

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

А причина по которой широкий интерес к функциональным языкам просыпается именно в наше время лежит на поверхности - доросли мощности. Подавляющее большинство современных языков в той или иной степени поддерживают функциональную парадигму - от того же С++ с его stl/boost/т.п. до ruby/python/java/c#.

>А еще хочу выразить искреннее сожаление, что большенство модных ООязыков не поддерживают
>множественного наследования. Похоже, что С++ ждет участь функциональных языков. В смысле
>никто не будет их учить ибо сложно.

Ну, С++ разве так сложен. А вот участь функциональных языков (процветание) ему не разделить, да. Просто слишком много проблем у него (не буду провоцировать флейм, начиная перечислять), которые никому не нужны при наличии альтернативы. Что до множественно наследования, так оно просто коряво в нем реализовано. В том же хаскелле - намного изящней.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

33. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 20-Мрт-08, 19:01 
>Насчет сложности в применении - это как-то можно обосновать?

Пожалуйста. Для приминения функциональных языков требуется функциональное мышление. Т.е. глубого технический склад ума. В подавляющем большенстве случаев программисты обладают оным, бесспорно. Теперь берем модель реального мира и смотрим на типичного заказчика софта. Как правило, это человек имеющий деньги и представляющий как работает то, что он хочет автоматизировать. ТЗ, выставляемое заказчиком выглядит потоком сознания. После некоторых преобразований можно разделить предметную область на материальные объекты реального мира. Это совсем не сложно, по сравнению с остальным.
После разделения на объекты реального мира можно, отбросив не важное, перейти к сферическим коням в вакууме, которые уже будут отрожать то, что необходимо написать. Оно все еще объектное. Оно все еще представляет собой набор данных и требуемые действия по преобразованию данных. А вот выполнить переход от преобразования данных к функциям выполнения, основанным на этих данных очень не просто. Самый просто подход в этом случае -- процедурный. Более легкий в сопровождении -- объектный. И ООП как раз ближе к реальному миру, чем к железу.

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

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

Хе, широко распространенное в узких кругах. ФЯ короче, пока на них пишутся алгоритмы функционального поведения. Это скорее синтетические алгоритмы, мир на много сложнее.

>А причина по которой широкий интерес к функциональным языкам просыпается именно в
>наше время лежит на поверхности - доросли мощности.

Чушь, простите. ООП кушает больше, чем ФОП.

> Подавляющее большинство современных
>языков в той или иной степени поддерживают функциональную парадигму - от
>того же С++ с его stl/boost/т.п. до ruby/python/java/c#.

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

>Ну, С++ разве так сложен.

Да. Очень. Даже очень-очень.

> Просто слишком много проблем у него [C++] (не буду
>провоцировать флейм, начиная перечислять), которые никому не нужны при наличии альтернативы.

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

>Что до множественно наследования, так оно просто коряво в нем реализовано.

Это как раз про "Очень-очень сложный язык". МН реализовано не коряво, а изящно :) Просто это сложно понять.

>В том же хаскелле - намного изящней.

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

37. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 20-Мрт-08, 19:33 
>Пожалуйста. Для приминения функциональных языков требуется функциональное мышление. Т.е. глубого технический склад ума.

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

>Самый просто подход в этом случае -- процедурный.

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

>Более легкий в сопровождении -- объектный. И ООП как раз ближе к
>реальному миру, чем к железу.

Только не нужно ООП противопоставлять функциональному подходу, Вы это напрямую не сделали, конечно, но косвенно так получилось.

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

Почему??? Вот уж где сплошная декларативность, при минимуме алгоритмов.

>Хе, широко распространенное в узких кругах. ФЯ короче, пока на них пишутся
>алгоритмы функционального поведения. Это скорее синтетические алгоритмы, мир на много сложнее.

Ну нет, программы на ФЯ короче практически всегда. Возьмите вон xmonad - оконный менеджер на Хаскелле, 500 строк. Ну или контрпример приведите, по возможности общего характера, где ФЯ были бы менее эффективны чем ИЯ (допускаю что приведете, но уверен что не сходу..)

>Чушь, простите. ООП кушает больше, чем ФОП.

Во-первых, опять же - не надо противопоставлять ООП и ФОП. Во-вторых, почему больше? Обоснуйте. ФОП со своими списками да рекурсиями естественно жрет больше (памяти).

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

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

>Проблем у С++ крайне не много. Одна из них -- наследственность. От
>С достались функции и макросы, от которых следовало бы отказаться, но
>в целях совместимости они сохранены.

Отказаться от функций?

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

>Вторая проблема (за что многие критикуют С++) это отсутствие асинхронных вызовов в
>самом языке.
>Треться проблема, которая в целом является родителем второй, но почему-то выделяется как
>правило в отдельную -- это проблема невозможности прозрачно средствами языка создавать
>многопоточные и распределенные системы.

Вот уж за что мне не пришло бы в голову критиковать С++)

>И над последними двумя наши люди (ну, вы понимаете) уже работают :)

Что тут скажешь.. верной дорогой идете, товарищи)
Да, кстати, ФЯ и параллелятся лучше (ну, вы понимаете)

>Это как раз про "Очень-очень сложный язык". МН реализовано не коряво, а
>изящно :) Просто это сложно понять.

Практически невозможно) То-то оно и используется повсеместно.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

47. "Сколько языков программирования нужно выучить"  +/
Сообщение от WhiteWind (??) on 20-Мрт-08, 21:03 
> Ну или контрпример приведите, по
>возможности общего характера, где ФЯ были бы менее эффективны чем ИЯ
>(допускаю что приведете, но уверен что не сходу..)

Драйвера, прошивки, задачи реального/квазиреального времени (к последним я отношу, допустим, компьютерные игры.
С играми, кстати, вообще плохо получается, т.к. там повсюду состояния - именно то, от чего стремится избавиться функциональная парадигма.

И обобщая  и так краткий пост, можно сказать, что везде, где есть процесс, ФЯ неприменимы.

З.Ы. И как последний аргумент против тотальной победы ФЯ скажу, что без императивного подхода нельзя реализовать машину Тьюринга, которая исполняет любые алгоритмы.


Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

48. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 20-Мрт-08, 21:19 
>Драйвера, прошивки, задачи реального/квазиреального времени (к последним я отношу, допустим, компьютерные игры.

Драйвера и прошивки - в связи со спецификой не языка, а платформ.

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

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

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

>И обобщая  и так краткий пост, можно сказать, что везде, где
>есть процесс, ФЯ неприменимы.

Этого не понял.

>З.Ы. И как последний аргумент против тотальной победы ФЯ скажу, что без
>императивного подхода нельзя реализовать машину Тьюринга, которая исполняет любые алгоритмы.

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

Про машину Тьюринга - неверно, см. в частности уже упоминавшийся принцип Черча. Еще раз - функциональная парадигма (основанная на лямбда-исчислении Черча), машина Тьюринга и нормальные алгоритмы Маркова эквивалентны в плане класса решаемых задач.

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

62. "Сколько языков программирования нужно выучить"  +/
Сообщение от fresco (??) on 21-Мрт-08, 09:57 
Ну вы академики, блин :)
Понимаю, где не правы, а сформулировать -- образования походу не хватает.
Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

74. "Сколько языков программирования нужно выучить"  +/
Сообщение от jtootf on 21-Мрт-08, 18:15 
В играх ФЯ используются на ура - смотри проект Frag, смотри Yampa и FRP вообще. Игровые абстракции без явного описания состояний выражаются куда как лаконичней - так же как и циклы с явным описанием итератора против рекурсии. Касательно состояний и драйверов - смотри House, ОС на Haskell с использованием пи-логики; смотри seL4 и L4.verified в которых Haskell используется для формальной верификации ядра ОС. А если говорить про области применения в общем, то тут в выразительности выигрывают языки, позволяющие легко реализовывать eDSL для каждого модуля с использованием паттерна Layers в полной мере (как единственный вменяемый контрподход для UN*X-way программирования, при котором эти модули связываются уже в виде бинариев с помощью скриптинга) - а это как раз и есть парафия либо ФЯ, либо метаязыков вроде LISP и Tcl (в которых метапрограммирование является базовой парадигмой). Есть что возразить по существу ?
Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

82. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 23-Мрт-08, 04:57 
> Есть что возразить по существу ?

Есть. Если коротко, то Windows, MS-Office, Unix, Oracle. Я могу удлинить список. И если продолжать меряться (с)писками, то мой получиться длинее. И явно известнее. Я вот например впервые услышал о House и seL4. Про игры я не скажу, я ваще не фанат. Но почему Вы решили, что ФЯ лучше подходят для реализации чего-то вцелом (о, боже, даже оси!), чем процедурные или объектные языки привидя пример чего-то малоизвестного и очень похожего на сферического коня в вакууме?
То, что с помощью ФЯ можно реализовать что угодно тут уже доказали. И что-то мне подсказывает, что если сравнить результаты, которые получились у ФЯ и ПЯ, то мы увидим перевес в сторону ПЯ по простоте сопровождения, функциональности и быстродействию. Ну, по крайней мере мне так кажется, я сравнивал xmonad с metacity. По двум параметрам, правда, но мне этого хватило. Первый это как изменить внешний вид и второй а сколько оно проработает без явных глюков. Метасити победил с явным отрывом.

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


Ответить | Правка | ^ к родителю #74 | Наверх | Cообщить модератору

102. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 04-Дек-16, 05:16 
> ...я сравнивал xmonad с metacity. По двум параметрам, правда, но мне этого хватило. Первый это как изменить внешний вид и второй а сколько оно проработает без явных глюков. Метасити победил с явным отрывом.

Уважаемый вы выдаете желаемое за действительное. Если с функциональным программированием проблемы, тогда да, заточить xmonad под себя весьма сложно, но по поводу работы без глюков... Я использую xmonad уже больше 3-х лет, настроил под себя и просто не нарадуюсь, как быстро и беспроблемно все работает.
Повторю - БЕСПРОБЛЕМНО!!!

Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

66. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 21-Мрт-08, 15:38 
> Декларативное мышление во многом ближе к
>повседневному человеческому мышлению, чем алгоритмическое.

Было бы оно ближе, появилось бы раньше :) На самом деле не ближе. Человеку свойственно создавать алгоритмы. И было свойственно еще до появления математики в современном понимании. Пример? Кулинарные рецепты, религиозные обряды. Сделай то и то, и получишь вот это. Это алгоритмическое мышление.

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

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

>>Более легкий в сопровождении -- объектный. И ООП как раз ближе к
>>реальному миру, чем к железу.
>Только не нужно ООП противопоставлять функциональному подходу, Вы это напрямую не сделали,
>конечно, но косвенно так получилось.

Секундочку. Я не противопоставляю. Я говорю, что для решения задач, связанных с моделированием нестрогих процессов реального мира больше подходит ООП. Для моделирования строгих процессов (расчет деформации при ударе, например) больше подойдет ФЯ.

>>А смоделировать работу предприятия торговли, например, на функциональных
>>языках -- врагу не пожелаешь.
>Почему??? Вот уж где сплошная декларативность, при минимуме алгоритмов.

Где? О_О Там столько возможных вариантов ветвления, что памяти, основанной на состоянии атомов всей вселенной не хватит для реализации требуемых вычислений :) При этом некоторые параметры как правило не определены или могут меняться в широких пределах.

>>Хе, широко распространенное в узких кругах. ФЯ короче, пока на них пишутся
>>алгоритмы функционального поведения. Это скорее синтетические алгоритмы, мир на много сложнее.
>Ну нет, программы на ФЯ короче практически всегда. Возьмите вон xmonad -
>оконный менеджер на Хаскелле, 500 строк. Ну или контрпример приведите, по
>возможности общего характера, где ФЯ были бы менее эффективны чем ИЯ
>(допускаю что приведете, но уверен что не сходу..)

xmonad -- это один из самых неудачных примеров программирования на ФЯ. Кроме того, оконный менеджер это скорее синтетический алгоритм. В смысле узко определенный круг задач. Да еще и возможности несколько недотягивают до современного уровня. Или не слабо дописать xmonad до полноценной замены компизу? ;) Шутка. Сходу, Вы правы, не приведу пример. Не потому, что лень думать, а потому, что не использовал ФЯ в реальных задачах. У меня небыло такой необходимости. Хотя функциональную парадигму в обработке реакций пользователя в интерфейсах я использую. Там она хорошо ложится.

>>Чушь, простите. ООП кушает больше, чем ФОП.
>Во-первых, опять же - не надо противопоставлять ООП и ФОП. Во-вторых, почему
>больше? Обоснуйте. ФОП со своими списками да рекурсиями естественно жрет больше
>(памяти).

В ФОП совсем не обязательно использовать списки. Это кажется начинание лиспа было. И, по большому счету, является протезом для решения более широкого круга задач. Рекурсия используется, но при правильном подходе ее глубина не сильно важна. По сравнению с этим виртуальные функции, шаблоны, рефлекшены и исключения поглатят больше. Хотя, если на ФЯ писать базы данных, то скорее всего в битве у кого длинее стек победят функционалы :)

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

Уверен. Императивная парадигма там тоже есть. И особо удивляться не надо. Их там две :)
Когда мы меняем регистры -- это императивно. Когда мы обращаемся к внешнему оборудованию -- это функционально. Ибо внешнее оборудование никак не влияет на состояние АЛУ.

>>Проблем у С++ крайне не много. [...]
>>от С достались функции и макросы, от которых следовало бы отказаться [...]
>Отказаться от функций?

Что так удивляет? В Java нет функций. Есть методы. И в их пользу надо бы отказатиься. Ну, это конечно только чтобы добиться более строгого соблюдения принципов ООП.

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

Это далего не бесспорный минус. Я бы сказал, что это скорее плюс.

>>[...] отсутствие асинхронных вызовов в самом языке. [...]
>>[...] невозможности прозрачно средствами языка создавать
>>многопоточные и распределенные системы.
>Вот уж за что мне не пришло бы в голову критиковать С++)

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

>>И над последними двумя наши люди (ну, вы понимаете) уже работают :)
>Что тут скажешь.. верной дорогой идете, товарищи)
>Да, кстати, ФЯ и параллелятся лучше (ну, вы понимаете)

Ещебы, паралеллизм у ФОП в крови.

>>Это как раз про "Очень-очень сложный язык". МН реализовано не коряво, а
>>изящно :) Просто это сложно понять.
>Практически невозможно) То-то оно и используется повсеместно.

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

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

73. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 21-Мрт-08, 18:04 
>Было бы оно ближе, появилось бы раньше :)

А я ошибусь, если скажу что lisp - старейший из "живых" языков программирования? (точно не уверен, но сдается мне так оно и есть)

>Секундочку. Я не противопоставляю. Я говорю, что для решения задач, связанных с
>моделированием нестрогих процессов реального мира больше подходит ООП. Для моделирования строгих
>процессов (расчет деформации при ударе, например) больше подойдет ФЯ.

Я имел в виду, что функциональную парадигму можно противопоставлять императивной, но не ООП. На функциональных языках можно писать объектно-ориентированно. На тех где нельзя писать классически объектно-ориентированно - есть свои способы создания объектных абстракций.

>Где? О_О Там столько возможных вариантов ветвления, что памяти, основанной на состоянии
>атомов всей вселенной не хватит для реализации требуемых вычислений :) При
>этом некоторые параметры как правило не определены или могут меняться в
>широких пределах.

Не понял, почему для ИЯ хватит а для ФЯ нет, если к тому же ниже утверждается, что ИЯ жрет больше. Причем тут ветвление? замените ветвление на сопоставление с образцом, и получите декларацию.

Вот встречный вопрос - где там алгоритмы. Сплошные данные и декларации.

>В ФОП совсем не обязательно использовать списки. Это кажется начинание лиспа было.
>И, по большому счету, является протезом для решения более широкого круга
>задач. Рекурсия используется, но при правильном подходе ее глубина не сильно
>важна. По сравнению с этим виртуальные функции, шаблоны, рефлекшены и исключения
>поглатят больше.

Алгебра списков - протез? Ну и ну. А что тогда STL?) И - все-таки, для ФЯ это основной тип данных.
А вот упомянутые шаблоны - да, протез, причем на редкость кривой) да и то как они что-то поглотят, они ж компайл-тайм. Да и остальное тоже сомнительно.

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

>Уверен. Императивная парадигма там тоже есть. И особо удивляться не надо. Их
>там две :)
>Когда мы меняем регистры -- это императивно. Когда мы обращаемся к внешнему
>оборудованию -- это функционально. Ибо внешнее оборудование никак не влияет на
>состояние АЛУ.

Хм, нет. Это все императивно, это строго определенная последовательность действий с передачей управления от одного к другому. Никакой функциональной парадигмы там и в помине нет. Сохранение состояния тут роли не играет.

>Что так удивляет? В Java нет функций. Есть методы. И в их
>пользу надо бы отказатиься. Ну, это конечно только чтобы добиться более
>строгого соблюдения принципов ООП.

А С++ - не полностью ООП-ориентированный язык, он, как тут справедливо писали, претендует на универсальность. Поэтому там подобное неуместно. Зачем делать из него яву? А то пусть там все типы данных, включая примитивные, объектными будут, как в smalltalk. Почему б нет. Для более строгого соблюдения.

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

Так в ту фразу очевидный сарказм был заложен) Потому и не используется, что кривизна. И видимо совсем уж полная кривизна, потому что страсть зеалотов С++ к использованию кривых инструментов для создания головоломок - притча во языцех)

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

Ответить | Правка | ^ к родителю #66 | Наверх | Cообщить модератору

76. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 21-Мрт-08, 20:06 
>>Было бы оно ближе, появилось бы раньше :)
>
>А я ошибусь, если скажу что lisp - старейший из "живых" языков
>программирования? (точно не уверен, но сдается мне так оно и есть)

http://people.ku.edu/~nkinners/LangList/Extras/famous.htm
Я в истории не силен, но судя по всему, все-таки фортран старее.
Живость его можно подтвердить в любом отечественном НИИ.


[.. Проскипано без возражений ..]

>>Где? О_О Там столько возможных вариантов ветвления, что памяти, основанной на состоянии
>>атомов всей вселенной не хватит для реализации требуемых вычислений :) При
>>этом некоторые параметры как правило не определены или могут меняться в
>>широких пределах.
>
>Не понял, почему для ИЯ хватит а для ФЯ нет, если к
>тому же ниже утверждается, что ИЯ жрет больше. Причем тут ветвление?
>замените ветвление на сопоставление с образцом, и получите декларацию.

Во! Я кажется начинаю понимать суть проблемы :) Вы пытаетесь применить ФОП ко всему подряд. Это и вызывает утверждение, что ФЯ потребляет больше ресурсов. Да, на определенном классе задач, для которых ФЯ не предназначены, ресурсы будут потребляться сильно. Зато на своем поле им нет равных (ИИ, например, проще всего реализовывать на ФЯ)

>Вот встречный вопрос - где там алгоритмы. Сплошные данные и декларации.

Алгоритмы? Хм.. Ну что-нибудь алгебраическое... Алгоритм расчета продажной цены товара исходя из себестоимости, затрат на логистику, комиссии менеджеру, супсидирования рекламных компаний, колебаний курса валюты и репутации партнера. А теперь нужна вилка "от" и "до" при известной себестоимости. И еще хочу, чтобы любой из этих параметров можно было по отдельности задавать или не задавать. А еще чтобы вилка вычислялась с учетом прошлых продаж человека, который сейчас заполняет заявку. А еще хочу, чтобы опционально учитывалась или не учитывалась динамика роста каждого из этих параметров.
Это из жизни. Было реализовано. Было не просто, особенно с удовлетворением постоянно растущих "хочу".
Просто на ФЯ каждое дополнительное "хочу" прибавляет расход памяти, не сопоставимый с решаемой задачей. Кроме того, потребуется несопоставимо больше переделывать с каждым "хочу" (хотя здесь могу ошибаться, не силен). И уж точно последнее "хочу график динамики продаж в реальном времени" убивает всю идею использования ФЯ, ибо циклы не предусмотренны парадигмой. А бесконечный цикл, реализованный рекурсией, как не сложно догадаться убивает машину, на которой запускается.

>Алгебра списков - протез? Ну и ну. А что тогда STL?)

Именно протез. Переход из одномерного пространства в n-мерное. Это как комплексные числа. Вроде они есть, но это существо виртуальное.
А STL -- плод весьма больного воображения наших соотечественников. Причем, не первый, который оказался весьма удачным. Вообще, идеалогия шаблонов в принципе это попытка уйти от строгой типизации данных, сохранив ее. Мне кажется, удачная попытка для первого раза.

> И - все-таки, для ФЯ это основной тип данных.

Бесспорно. Иначе на них не решить нематематических задач. И математические не все.

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

Они компил-тайм в текущей реализации. Стандарт не накладывает никаких ограничений на этот счет. Стандарт вообще не заставляет компилировать код на С++ в бинарный. Стандарт определяет только поведение написанной программы.
Если бездумно пользоваться шаблонами, то минимальный код превращается в кучу бинарного мусора, делающего одно и то же со смежными типами данных. Так что шаблон шаблону рознь.

Ну и раз уж зашла речь о кривизне, можно поинтересоваться, а что Вы посоветуете использовать вместо шаблонов? И вообще, для начала давайте определимся, понимаете ли Вы всю широту решаемых с помощью шаблонов задач? Вы знаете, что шаблоны могут быть рекурсивными? Вы знаете, что с помощью шаблонов можно вычислить факториал, например (это из книжки про шаблоны)? Я не хочу Вас обидеть, просто у меня складывается ощущение, что мы разговариваем об одном и том же, но стоя с разных сторон одной планеты (- Это вы там ходите вверх ногами! - Нет! У нас небо сверху, а вы ходите ногами к нашим ногам, значит у вас небо снизу!).
Просто я не считаю себя гуру функционального программирования. Я его изучал как хобби. Основные мысли мне ясны, я ими проникся и примитивные вещи иногда использую в практической работе. Зато С++ мой родной язык, о котором я думал много плохого, пока его изучал, но когда привык к мышлению в стиле ООП стало легко и просто. И многих вещей из С++ мне сейчас нехватает, ибо занимаюсь другими вещами.

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

Будем считать, что как защитник ФОП Вы сморозили глупость :) Ибо как защитник Вы должны отстаивать идеалы ФОП, а не перекладывать на компилятор более оптимальную реализацию на процедурном языке.
Если все-таки это нетак, так чего бы сразу не написать цикл и не ломать голову?

>Хм, нет. Это все императивно, это строго определенная последовательность действий с передачей
>управления от одного к другому. Никакой функциональной парадигмы там и в
>помине нет. Сохранение состояния тут роли не играет.

Нету там передачи управления, но спорить не буду. В моем понимании основные принципы функциональности -- 1. Невмешательство в аргументы (выполнение функции не влияет на аргументы и не меняет состояние глобальных объектов, которых вообще нет). 2. Законченность действий (функция, будучи вызванной всегда вернет результат, причем этот результат будет зависить только от параметров самой функции, т.е. при одинаковых аргументах результат будет одинаковым).
Вот, пожалуй, две основные вещи, которые отличают процедурный подход к программированию от функционального. Сразу, чтобы небыло флейма, это не все, а только основные. И это не парадигмы, а формальные отличия.


>А С++ - не полностью ООП-ориентированный язык, он, как тут справедливо писали,
>претендует на универсальность. Поэтому там подобное неуместно.

А вот и зря. Ему было бы легче.

> Зачем делать из него
>яву? А то пусть там все типы данных, включая примитивные, объектными
>будут, как в smalltalk. Почему б нет. Для более строгого соблюдения.

Я вот не пойму, это сарказм? Если да, то напрасно. Вы не поверите, но во многих библиотеках (больших и толстых) определены классы для всех типов данных, включая примитивные. Но это не для строгого соблюдения, а для удобства. Я понимаю, что для человека, который не участвовал в больших проектах, написанных на С++ или другом ООЯ это тяжело понят, но поверьте мне на слово (или спросите у знающих людей, которым Вы доверяете), оно правда бывает очень нужно. Особенно с числовыми типами.

>[оверквотинг удален]
>>родственнеки, но все же разные вещи. Я вот так сходу, даже
>>подумав, не могу вспомнить ни одну широко известную библиотеку для С++,
>>которая бы использовала множественное наследование.
>Так в ту фразу очевидный сарказм был заложен) Потому и не используется,
>что кривизна. И видимо совсем уж полная кривизна, потому что страсть
>зеалотов С++ к использованию кривых инструментов для создания головоломок - притча
>во языцех)
>
>В отличие от множественного наследования интерфейсов, да. Удобный механизм, и применяется в
>разных языках без особых проблем.

:) Можно я вместо ответа на эту часть личный вопрос задам? Можете не отвечать, но мне просто интересно. Вы ведь не участвовали в крупных коммерческих проектах на С++. Причем именно на С++, это важно. Соответственно Вы не могли использовать множественное наследование в полную силу на протяжении долгого времени и посмотреть на чужой код, в котором реализовано это множественное наследование. Исходя из этого, и того, что Вы утверждаете, что МН и шаблоны в С++ реализованы криво (я верю, что это только из-за недостатка опыта) и так хорошо ориентируетесь в ФЯ и ФОП в частности могу предположить два варианта: либо Вы научный работник (аспирант, например), либо инженер AutoCAD. Я прав?

Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

77. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 22-Мрт-08, 00:40 
>Я в истории не силен, но судя по всему, все-таки фортран старее.

Возможно, я не был уверен)

>Во! Я кажется начинаю понимать суть проблемы :) Вы пытаетесь применить ФОП
>ко всему подряд. Это и вызывает утверждение, что ФЯ потребляет больше
>ресурсов.

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

>Алгоритмы? Хм.. Ну что-нибудь алгебраическое...

Алгебраическое - это формулы) Для них ФЯ - естественный выбор.

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

И то и другие - непонятно, почему.

>И уж точно последнее "хочу
>график динамики продаж в реальном времени" убивает всю идею использования ФЯ,
>ибо циклы не предусмотренны парадигмой. А бесконечный цикл, реализованный рекурсией, как
>не сложно догадаться убивает машину, на которой запускается.

Так рекурсия разворачивается в цикл, см. ниже..

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

Я не понял, Вы STL тут похвалили или нет? Что касается строгой типизации данных, то модель типизации Хиндли-Милнера, безусловно, удачнее. Да и старее)

>Они компил-тайм в текущей реализации.

Так а мы о потреблении памяти в какой реализации говорили, будущей? Впрочем, это несущественный момент.

>Ну и раз уж зашла речь о кривизне, можно поинтересоваться, а что
>Вы посоветуете использовать вместо шаблонов?

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

>И вообще, для начала давайте определимся,
>понимаете ли Вы всю широту решаемых с помощью шаблонов задач? Вы
>знаете, что шаблоны могут быть рекурсивными? Вы знаете, что с помощью
>шаблонов можно вычислить факториал, например (это из книжки про шаблоны)?

Да, да, читал я Ваши "книжки про шаблоны", честно. Я помню каким культурным шоком было для меня чтение Мейерса, Александреску, копание в исходниках boost и loki. Я действительно считал С++ великим языком. А потом было просветление, когда оказалось, что на свете есть языки программирования, которые могут то же самое, но без этих evil mind tricks. Более того, оказалось что теперь, с новым знанием, эти трюки оказались возможны да почти на любом языке программирования, я для тренировки даже реализовал синтаксически-естественные лямбда-функции, list comprehensions и определения функций через сопоставления с образцом на, прошу прощения, Delphi, без всяких шаблонов (правда, признаю, и без сохранения компайл-тайм типизации). Я не призываю Вас следовать за мной по этому пути, но давайте не будем считать шаблонные извращения чем-то эзотерическим и массовому пониманию недоступным.

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

Я не оспариваю мощь ООП, но причем тут С++? кроме множественного наследования, все остальное реализовано в каждом втором языке, а каких-то вещей в С++ не хватает (сходу вспоминаются метаклассы и виртуальные конструкторы, может если подумать еще что-то можно вспомнить, но не суть). Ну а что нравится язык - так и хорошо, всегда приятней писать на языке который по душе.

>Будем считать, что как защитник ФОП Вы сморозили глупость :) Ибо как
>защитник Вы должны отстаивать идеалы ФОП, а не перекладывать на компилятор
>более оптимальную реализацию на процедурном языке.

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

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

>Если все-таки это нетак, так чего бы сразу не написать цикл и
>не ломать голову?

Да вспомните классический пример - реализацию быстрой сортировки в одну-две строки на любом ФЯ.. Разве это не убедительный аргумент в пользу того чтоб не ломать голову циклами?)

>Я вот не пойму, это сарказм? Если да, то напрасно. Вы не
>поверите, но во многих библиотеках (больших и толстых) определены классы для
>всех типов данных, включая примитивные. Но это не для строгого соблюдения,
>а для удобства.

Сарказм, да. И, кстати, С++ в этом не одинок. Таких больших библиотек куча для большинства императивных нединамических языков, которые думают, что они ООП. По каждому поводу и без повода - пытаются все обобщить, будь то сериализация, RPC, RTTI, etc.. С разной степенью успешности. И каждый язык использует для этого свои козыри, свою мощь.. С++ - шаблоны, Delphi - RTTI..

>:) Можно я вместо ответа на эту часть личный вопрос задам? Можете
>не отвечать, но мне просто интересно. Вы ведь не участвовали в
>крупных коммерческих проектах на С++.

В коммерческих на С++ - да, в относительно крупных - да, в крупных коммерческих на С++ - нет.

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

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

>либо Вы научный
>работник (аспирант, например), либо инженер AutoCAD. Я прав?

Не прав.. Да и в ФЯ не особо хорошо ориентируюсь, вон jtootf написал комментарии - видно что ориентируется, а я так, учусь.

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

Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

79. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 23-Мрт-08, 04:23 
Славный был холивор :) Но я таки в одной фразе резюмирую свое мнение.

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

Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

55. "Сколько языков программирования нужно выучить"  +/
Сообщение от serg1224 (ok) on 20-Мрт-08, 23:48 
>Именно ассемблер
>позволяет понять как сделать алгоритм более быстрым и менее требовательным.

Часто от ПРИКЛАДНОГО (НЕмашинного) языка требуется другое. Например, свести к минимуму ошибки кодировщика, повысить читабельность текста, уменьшить время изучения, приблизить язык к предметной области. Не надо забывать и о смене поколений программеров и групповой разработке, когда приходиться иметь дело с чужим кодом.

Перед учеными, коммерсантами, военными, медиками и производителями железа стоят ОЧЕНЬ разные задачи и решают их с помощью РАЗНЫХ языков программирования. Иначе бы мы до сих пор дырочки в перфокартах сверлили :-)

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

23. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 20-Мрт-08, 18:00 
Ну - ну ... "через 10 лет театров не будет!"(С) ~1963
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

43. "Сколько языков программирования нужно выучить"  +/
Сообщение от bsdemon on 20-Мрт-08, 20:46 
Да хватит - императивные языки щас "моде" потому что компьютер считает последовательно - то есть "моду" диктует архитектура выч.машины. Но как видно уже сейчас начали появляться многоядерные настольные машины. В науке уже давно используются машины с количеством нодов более 1000. На них ФП уже есть куда развернуться - но конечно надо больше)
При приближении количества нодов к 10^9 я думаю от ФП будет никому не убежать

А взять хотя бы Linux ядро - сколько там проверок на race-condition? сколько ошибок допустили программисты драйверов из-за этого? В ФП этого просто нет)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

53. "Сколько языков программирования нужно выучить"  +/
Сообщение от nowinter email on 20-Мрт-08, 23:06 
>[оверквотинг удален]
>- то есть "моду" диктует архитектура выч.машины. Но как видно уже
>сейчас начали появляться многоядерные настольные машины. В науке уже давно используются
>машины с количеством нодов более 1000. На них ФП уже есть
>куда развернуться - но конечно надо больше)
>При приближении количества нодов к 10^9 я думаю от ФП будет никому
>не убежать
>
>А взять хотя бы Linux ядро - сколько там проверок на race-condition?
>сколько ошибок допустили программисты драйверов из-за этого? В ФП этого просто
>нет)

+1
и насчет понимания все именно так - так привыкли. начнут в школах на информатике Эрланг учить - и прекрасно всё будет пониматься. И, кстати, про ассемблер - та же тема. Он нужен, очень нужен, но он ограничивает. Тормозит прогресс :)

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

61. "Сколько языков программирования нужно выучить"  +/
Сообщение от Константин (??) on 21-Мрт-08, 07:13 
asm? Самому не смешно?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

64. "Сколько языков программирования нужно выучить"  +/
Сообщение от demimurych email on 21-Мрт-08, 12:14 
Речь шла о наращивании в голове конструкций для решения задач. Именно такие конструкции и предлагают высокоуровневые языки. Ассемблер таких конструкция почти не дает.

Инчае говоря у каждого языка программирования есть своя четкая идеология. То как решается та или иная задача. Грубо говоря каждый высокоуровневый язык программирования это - либо отвертка, либо разводной ключ, либо шуруповерт, либо плоскогубцы. Ассемблер же это набор железа из котого ты можешь себе собрать и то и другой и третье. Но он никак не поможет тебе научиться пользоваться шуруповертом или отверткой.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

65. "Сколько языков программирования нужно выучить"  +/
Сообщение от Оммм on 21-Мрт-08, 13:46 
>Речь шла о наращивании в голове конструкций для решения задач. Именно такие
>конструкции и предлагают высокоуровневые языки. Ассемблер таких конструкция почти не дает.
>
>
>Инчае говоря у каждого языка программирования есть своя четкая идеология. То как
>решается та или иная задача. Грубо говоря каждый высокоуровневый язык программирования
>это - либо отвертка, либо разводной ключ, либо шуруповерт, либо плоскогубцы.
>Ассемблер же это набор железа из котого ты можешь себе собрать
>и то и другой и третье. Но он никак не поможет
>тебе научиться пользоваться шуруповертом или отверткой.

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

P.S. по вашему посту могу предположить что с асмом вы серьйозно не работали

Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

85. "Сколько языков программирования нужно выучить"  +/
Сообщение от nuclight email(ok) on 25-Мрт-08, 09:50 
>[оверквотинг удален]
>>это - либо отвертка, либо разводной ключ, либо шуруповерт, либо плоскогубцы.
>>Ассемблер же это набор железа из котого ты можешь себе собрать
>>и то и другой и третье. Но он никак не поможет
>>тебе научиться пользоваться шуруповертом или отверткой.
>
>есть свои моменты, не скажу что не согласен с вашими мыслями, но...
>иногда дополнительная прослойка ввиде абстрацкций (неких инструментов или отверток) реально заслоняет
>собой прямой путь решения... зачем мне пользоватся стремянкой и лезть с
>отверткой к вооон тому шурупу, когда у меня прокачен телекинез ?
>;D

Это сравнение как раз в тему раличных приемов и конструкций в высокоуровневых языках. Телекинез - абстракция высокого уровня :)

>P.S. по вашему посту могу предположить что с асмом вы серьйозно не
>работали

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

Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

2. "Сколько языков программирования нужно выучить"  +/
Сообщение от теория on 20-Мрт-08, 14:27 
Мера любой истины в индивидуальности человека Профокл 3 век до н эры,
лучше знать один, но знать , так что сам создатель подпрыгнет -  чем много, но
плохо,,,,,
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Сколько языков программирования нужно выучить"  +/
Сообщение от kwas on 20-Мрт-08, 14:32 
Не так. "Лучше знать много и хорошо, чем только один, но лучше всех". Кругозор называется, ага. Тоже часть индивидуальности, кстати.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

10. "Сколько языков программирования нужно выучить"  +/
Сообщение от Kage on 20-Мрт-08, 15:34 
Почему вместо того чтобы высказать своё мнение, ага. Ты когото поправляеш, кстати?
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

3. "Сколько языков программирования нужно выучить"  +/
Сообщение от Оммм on 20-Мрт-08, 14:28 
true, asm - 100% гарантия прыгнуть сразу в дзен, необременя себя сомнительными техниками по "расширению сознания" ;)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Сколько языков программирования нужно выучить"  +/
Сообщение от pavlinux email(ok) on 20-Мрт-08, 14:55 
Лучше знать все, и написать свой, потому как все остальные кажутся полное Г-но.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Сколько языков программирования нужно выучить"  +/
Сообщение от толя on 20-Мрт-08, 15:06 
интересно, а linux язык есть или будет такой? думаю не за горами - кто-то уже пишет его или ред хат или новелл :-)))))))))))), вроде по динамике слова линукс - должен быть и язык,,,
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Сколько языков программирования нужно выучить"  +/
Сообщение от Kage on 20-Мрт-08, 15:38 
Вы помойму в своём нике после "т", "р" пропустили.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

24. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 20-Мрт-08, 18:03 
Есть, конечно. Даже несколько. Какой больше нравиться: C, bash, perl? :)
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

7. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 20-Мрт-08, 15:16 
ссылку на гипотезу Сепира — Уорфа можна было дать и на русскую википедию
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Сколько языков программирования нужно выучить"  +/
Сообщение от pavlinux email(ok) on 20-Мрт-08, 15:21 
Для защиты от мутации и деградации нашего населения, янки пущай дибилизируют....

Приведу, доказанное утверждение.
(что Кристофер Диггинс шпиён, ЦыРыУшник, и всё такое)
   Гипотеза Сапира-Ворфа утверждает, что индивидуум, использующий некоторый язык, в состоянии вообразить или придумать нечто, не могущее быть переведенным или даже понятым индивидуумами из другой языковой среды. Такое происходит, если в языке второго индивидуума нет эквивалентных слов и отсутствуют концепции или категории для идей, вовлеченных в рассматриваемую мысль.
  И есть такой Принцип Ч╦рча, которое утверждает что, "Любое вычисление, для которого существует эффективная процедура, может быть реализовано на машине Тьюринга."
  Если мы признаем принцип Ч╦рча, то любой язык, на котором можно смоделировать машину Тьюринга, является достаточно мощным, чтобы осуществить любой реализуемый алгоритм.
   Для решения проблемы "мощности языка" надо построить машину Тьюринга, которая выдаст желаемый результат, согласно принципу Ч╦рча такая машина должна существовать для каждого алгоритма. Затем остается только смоделировать машину Тьюринга на вашем любимом языке программирования. Тем самым споры об относительной мощности языков программирования - если под мощностью мы понимаем способность решать любую задачу.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Сколько языков программирования нужно выучить"  +/
Сообщение от drioptr (ok) on 20-Мрт-08, 16:08 
>  Если мы признаем принцип Ч╦рча, то любой язык, на котором
>можно смоделировать машину Тьюринга, является достаточно мощным, чтобы осуществить любой реализуемый
>алгоритм.

А кто такой этот Ч╦рч?

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

15. "Сколько языков программирования нужно выучить"  +/
Сообщение от pavlinux email(ok) on 20-Мрт-08, 16:52 
http://ru.wikipedia.org/w/index.php?&oldid=7953623
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

13. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 20-Мрт-08, 16:10 
по поводу эквивалентности языков программирования в плане класса решаемых задач замечание совершенно верное, но:

>  если под мощностью мы понимаем способность решать любую задачу.

под мощностью ЯП понимают не способность решать любую задачу, а (по-русски говоря) легкость, эффективность и выразительность решения данного класса задач. Например, Perl - мощнее чем C для задач обработки строк, а lisp - для символьных вычислений, и т.п.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

14. "Сколько языков программирования нужно выучить"  +/
Сообщение от pavlinux email(ok) on 20-Мрт-08, 16:42 
Ну так выучи Ruby Scheme PostScript Prolog ML Haskell Erlang LISP C Perl - и выходи на пенсию.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

19. "Сколько языков программирования нужно выучить"  +/
Сообщение от Анон on 20-Мрт-08, 17:37 
> а lisp - для символьных вычислений, и т.п.

DSL? так для этого есть scheme. А для чего тогда common lisp? Разве не для всего остального.
Некоторые, например, сайты делают на lisp'е и вместо xml юзают sexp'ы, другие музыку пишут.
Но маркетинг двигает пыхпых, жабу, дохнет и хмель...
Интересно, насколько хватит ажиотажа вокруг haskell?

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

21. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 20-Мрт-08, 17:53 
>> а lisp - для символьных вычислений, и т.п.
>
>DSL? так для этого есть scheme. А для чего тогда common lisp?

DSL и символьные вычисления совсем разные вещи, но неважно. а scheme есть, да, и что) С тем что lisp язык универсальный - никто не будет спорить. даже слишком универсальный - по мне это достоинство переходящее в недостаток, но в данном контексте неважно.

>Интересно, насколько хватит ажиотажа вокруг haskell?

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


Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

26. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 20-Мрт-08, 18:18 
> Например, Perl - мощнее чем C для задач обработки строк

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

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

Хотя общая идея правильная. Каждому ЯП свой фронт работ, не смотря на их широту, мощность и универсальность.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

31. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 20-Мрт-08, 18:50 
>> Например, Perl - мощнее чем C для задач обработки строк
>
>имхо неудачный пример. libpcre, boost и еще многое, чего я даже не
>видел может нивелировать разницу в трудоемкости с увеличением разницы в производительности.

Так мощность языка - одно, мощность библиотек - другое..

>Вообще с С/С++ неудачно сравнивать любые языки программирования. В конечном итоге библиотеки
>(в смысле скомпилированные) все равно либо написаны на С, либо совместимы
>с ним по вызовам, либо есть такие аналоги. Соответственно можно обратиться
>к нужной и выполнить нужные действия.

Ну и что? pavlinux уже справедливо указал выше на эквивалентность ЯП. Так можно и вообще спор свернуть)

>А по эффективности С/С++ уступают
>очень не многим языкам. И уж точно не уступают интерпретируемым.

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

>С/С++ вообще привилегированные языки с конца 60-х годов прошлого века. Причем они
>успели обрасти атавизмами и рудиментами, но привилегии остались.

Так и атавизмы с рудиментами тоже никуда не делись.. Впрочем, будущее С не кажется особо облачным. А вот С++ да, пора на свалку истории)

>Хотя общая идея правильная. Каждому ЯП свой фронт работ, не смотря на
>их широту, мощность и универсальность.

Консенсус)

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

38. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 20-Мрт-08, 19:50 
>Так и атавизмы с рудиментами тоже никуда не делись.. Впрочем, будущее С
>не кажется особо облачным. А вот С++ да, пора на свалку
>истории)

Глупости. Если говорить коротко, то С++ будучи не "самым-самым" в каждой отдельной номинации, является _оптимальным_ из языков _общего назначения_.

Бурное развитие простых скриптовых языков обусловлено стоимостью разработки: для их изучения требуется мало времени, следовательно много программёров и они дёшево стоят. Поэтому мы видим огромное количество проектов написанных на этих языках. На самом деле история повторяется: достаточно вспомнить Basic. Уж сколько народу его изучало, сколько программ было написано, ну и где он сейчас? ;-)

Ещё хороший пример: Python в версии 3.0 будет полностью изменён. Это говорит о несостоятельности его как ЯП. Если понадобилось всё менять, значит языковые конструкции были неудачными. С++ существуя вдвое больше времени, а дорабатывается совсем чуть-чуть. Имею в виду новый стандарт '09. А это потому, что нет в нём каких-то принципиально неудачных решений.

Согласен, есть языки, в которых те или иные вещи можно реализовать проще, изящнее, удобнее, эффективнее. Но если выбирать ЯП как универсальный инструмент разработки для _любой_ программы, тогда полноценной альтернативы С++ просто нет.

>>Хотя общая идея правильная. Каждому ЯП свой фронт работ, не смотря на
>>их широту, мощность и универсальность.

Узкая специализация нужна очень редко. Как правило в условиях жёстких ограничений. 99% случаев перекрывается выбором между ассемблером и С/С++.
Кстати, программы на С являются таковыми и на С++. Вас никто не заставляет применять везде ООП. В этом и прелесть С++ как _универсального_ языка.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

40. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 20-Мрт-08, 20:22 
>Бурное развитие простых скриптовых языков обусловлено стоимостью разработки: для их изучения требуется
>мало времени, следовательно много программёров и они дёшево стоят. Поэтому мы
>видим огромное количество проектов написанных на этих языках.

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

>Ещё хороший пример: Python в версии 3.0 будет полностью изменён. Это говорит
>о несостоятельности его как ЯП. Если понадобилось всё менять, значит языковые
>конструкции были неудачными.

Вы changelog видели? Там минимум изменений, нарушающих обратную совместимость. Вряд ли это можно назвать "все менять".

>С++ существуя вдвое больше времени, а дорабатывается совсем
>чуть-чуть. Имею в виду новый стандарт '09. А это потому, что
>нет в нём каких-то принципиально неудачных решений.

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

>Согласен, есть языки, в которых те или иные вещи можно реализовать проще,
>изящнее, удобнее, эффективнее. Но если выбирать ЯП как универсальный инструмент разработки
>для _любой_ программы, тогда полноценной альтернативы С++ просто нет.

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

>Как правило в условиях жёстких ограничений. 99%
>случаев перекрывается выбором между ассемблером и С/С++.

Чтоб далеко не ходить, сайты на чем писать рекомендуете, на С++ или на ассемблере? Если Вы имели в виду какой-то четко очерченный класс задач, то зря забыли об этом упомянуть.

>Кстати, программы на С являются таковыми и на С++. Вас никто не
>заставляет применять везде ООП. В этом и прелесть С++ как _универсального_
>языка.

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

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

49. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 20-Мрт-08, 21:20 
>[оверквотинг удален]
>прямолинейный, он предоставляет разработчику ровно один удобный способ выполнить какое-либо действие
>(ну если макросами не злоупотреблять). Написание программ на С представляет собой
>по сути взаимно-однозначный перевод выбранного алгоритма в язык программирования. Это хороший
>язык для ограниченного, но все же весьма широкого класса задач. С++
>- это язык с богатыми возможностями, реализация большинства из которых весьма
>неестественна. Это своего рода костыли для С, призванные расширить класс задач
>и методов их решения. Это инвалид, написание на котором хорошо читабельного
>и поддерживаемого кода возможно только с соблюдением огромного числа самоограничений, что
>для действительно хорошего языка - неприемлемо. Какое счастье, что сейчас полно
>альтернатив.

Например, Pascal. По этим критериям:
>С - язык очень
>прямолинейный, он предоставляет разработчику ровно один удобный способ выполнить какое-либо действие
>(ну если макросами не злоупотреблять). Написание программ на С представляет собой
>по сути взаимно-однозначный перевод

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

он подходит на все 100 - бритва Оккама - наше всё).
Плюс к этому в нём есть почти всё, что есть в С++, только без излишеств.

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

70. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 21-Мрт-08, 16:23 
>>Как правило в условиях жёстких ограничений. 99%
>>случаев перекрывается выбором между ассемблером и С/С++.
>
>Чтоб далеко не ходить, сайты на чем писать рекомендуете, на С++ или
>на ассемблере? Если Вы имели в виду какой-то четко очерченный класс
>задач, то зря забыли об этом упомянуть.

Смешно, наверно. НО!
Сейчас много сайтов пишется на С# и Java. Принцип их работы совсем отличается от работы сайтов на Perl/PHP и других а-ля CGI языков. Так вот, в свете последних тенденций, я решительно не вижу никакой разницы в написании сайтов на C# и на C++. Честно. Под С++ достаточно библиотек, которые можно использовать для не менее удобного написания сайтов, чем на C#. Правда есть одна проблема. Сайты нужно будет компилировать на сервере.

ЗЫ: Не поверите, в настоящий момент я в качестве исследовательской работы занимаюсь созданием CMS на C++. Правда времени на это мало :(

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

50. "Сколько языков программирования нужно выучить"  +/
Сообщение от Осторожный on 20-Мрт-08, 21:26 
>Кстати, программы на С являются таковыми и на С++. Вас никто не
>заставляет применять везде ООП. В этом и прелесть С++ как _универсального_
>языка.

Наглая ложь !
Не все программы на C являются программами на С++ !
Это знает любой, кто хоть чуть-чуть изучал C++

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

68. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 21-Мрт-08, 16:08 
Педантично, но справедливо.
Хотя я все же отмечу, что для приведение программ написанных на С в соответствие со спецификациями С++ нужно крайне мало усилий. В частности (уж простите, наболело) для перевода с РНР4 на РНР5 требуется больше усилий.
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

60. "Сколько языков программирования нужно выучить"  +/
Сообщение от Денис email(??) on 21-Мрт-08, 07:13 
>Ещё хороший пример: Python в версии 3.0 будет полностью изменён. Это говорит
>о несостоятельности его как ЯП. Если понадобилось всё менять, значит языковые
>конструкции были неудачными. С++ существуя вдвое больше времени, а дорабатывается совсем
>чуть-чуть. Имею в виду новый стандарт '09. А это потому, что
>нет в нём каких-то принципиально неудачных решений.

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

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

69. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 21-Мрт-08, 16:17 
>>> Например, Perl - мощнее чем C для задач обработки строк
>Так мощность языка - одно, мощность библиотек - другое..

Не другое, а дополнительное. И вообще, ЯП должен уметь переменные, условные переходы и арифметические действия, остальное библиотеки. Вот например тот же С без библиотеки даже Hellow world! не напишет. И что? Это значит, что он ни на что не способен? На нем юникс написали...

>Ну и что? pavlinux уже справедливо указал выше на эквивалентность ЯП. Так
>можно и вообще спор свернуть)

+1

>>А по эффективности С/С++ уступают
>>очень не многим языкам. И уж точно не уступают интерпретируемым.
>А что тут имеется в виду под эффективностью? эффективность разработки или эффективность
>(скорость) исполнения? Если я правильно понял, что второе,

разумеется второе, моя вина, что непонятно сказал.

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

А вот это проблема человека, пишущего программу и никак к языку не относится :P

>А вот С++ да, пора на свалку
>истории)

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

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

72. "Сколько языков программирования нужно выучить"  +/
Сообщение от serg1224 (ok) on 21-Мрт-08, 16:49 
>ЯП должен уметь переменные, условные переходы
>и арифметические действия, остальное библиотеки.

Извините, но "арифметические действия" - это тоже функции, которые могут быть в библиотеках. См. LISP, например.

>Вот например тот же С без
>библиотеки даже Hellow world! не напишет. И что? Это значит, что
>он ни на что не способен? На нем юникс написали...

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

>>А вот С++ да, пора на свалку
>>истории)
>
>К сожалению да. Пора. Перевелись люди, которые способны им эффективно пользоваться. Ну,
>почти перевелись.

Рановато еще. Нет-нет да проскакиваю новости о том, что такой-то проект перевел свою кодовую базу с C на C++
Видать когда проект становится большим и сложным, то его неудобно сопровождать без ООП.

Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

86. "Сколько языков программирования нужно выучить"  +/
Сообщение от nuclight email(ok) on 25-Мрт-08, 09:58 
>> Например, Perl - мощнее чем C для задач обработки строк
>
>имхо неудачный пример. libpcre, boost и еще многое, чего я даже не
>видел может нивелировать разницу в трудоемкости с увеличением разницы в производительности.

Иногда, на частных задачах. В случае проекта целиком выигрыш во времени написания будет существенен. Зачем мне писать час программу, которая будет работать 10 минут , если я могу за 5 минут набросать скрипт, который сделает это за полчаса?.. В подобных разовых задачах Перл незаменим.

>Вообще с С/С++ неудачно сравнивать любые языки программирования. В конечном итоге библиотеки
>(в смысле скомпилированные) все равно либо написаны на С, либо совместимы

Неверно. Существуют языки, написанные сами на себе, а не на Си. Например, среди компиляторов Лиспа таких хватает, cmucl к примеру. Более того, один из критериев состоятельности языка общего назначения - как раз способность написать на нем компилятор его же самого.

>с ним по вызовам, либо есть такие аналоги. Соответственно можно обратиться
>к нужной и выполнить нужные действия. А по эффективности С/С++ уступают
>очень не многим языкам. И уж точно не уступают интерпретируемым. С/С++
>вообще привилегированные языки с конца 60-х годов прошлого века. Причем они
>успели обрасти атавизмами и рудиментами, но привилегии остались.

"Интерпретируемый" Лисп при использовании вышеупомянутого cmucl на некоторых задачах может опережать по скорости Си++. Потому что может быть дана команда на компиляцию. А в остальное время имеем преимущетсва интерпретируемых языков. С Си++ такой фокус не прокатит.

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

39. "Сколько языков программирования нужно выучить"  +/
Сообщение от northbear (??) on 20-Мрт-08, 20:18 
Замечательно! Я говорю совершенно искренне. Сам я все это уже основательно подзабыл. Увы... :(

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

А на счет возможности на Lisp'e решать задачи численных методов мало кто сомневается. Только таких чудиков лучше держать в зоопарках... :))

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

18. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 20-Мрт-08, 17:11 
Мне нравится СП Gambas. Просто и удобно.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "OpenNews: Сколько языков программирования нужно выучить"  +/
Сообщение от Dmitry (??) on 20-Мрт-08, 18:12 
А работать когда?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

28. "OpenNews: Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 20-Мрт-08, 18:22 
А работать всегда :) Менделеев, вот, даже во сне работал. И кажется был более эффективен именно во сне...
Изучение синтаксиса языка не займет много времени (ну хорошо, уже после третьего языка). А вот понять философию языка это другое дело. Но понимание чужой философии только поможет в работе, избавив мозг от стереотипов. Так что останестя время изучить и еще что-нибудь.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

27. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 20-Мрт-08, 18:21 
Для начала высшую математику и электронику+физику надо выучить, а потом уже программирование. Тогда уж точно с алгоритмами и техникой будете общаться только на ты.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 20-Мрт-08, 18:38 
>Для начала высшую математику и электронику+физику надо выучить, а потом уже программирование.

Интересно, как мне поможет знание физики при написании спеллчекера для санскрита?
Да и вышка тут особо не поможет.

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

34. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 20-Мрт-08, 19:05 
>Интересно, как мне поможет знание физики при написании спеллчекера для санскрита?

Да и вышка тут особо не поможет.

А зачем тогда ассемблер, если ты основы работ процессора незнаешь. Кстати программируют не только быдло-спелчекеры, но и прошивки, драйвера и всякий сис. софт.

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

36. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 20-Мрт-08, 19:12 
>А зачем тогда ассемблер, если ты основы работ процессора незнаешь. Кстати программируют
>не только быдло-спелчекеры, но и прошивки, драйвера и всякий сис. софт.

Не поверишь, но совсем не обязательно знать как распространяется электрическое поле в КМОП, чтобы понять, что перемещение данных из регистра в регистр (чем бы эта штука ни являлась) происходит быстрее, чем перемещение из памяти в память. И в целом, пофигу почему.
Кстати, "прошивки, драйвера и всякий сис. софт." сами по себе не решают задач реального мира.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

84. "Сколько языков программирования нужно выучить"  +/
Сообщение от ws email(??) on 23-Мрт-08, 14:51 
>Не поверишь, но совсем не обязательно знать как распространяется электрическое поле в
>КМОП, чтобы понять, что перемещение данных из регистра в регистр (чем
>бы эта штука ни являлась) происходит быстрее, чем перемещение из памяти
>в память. И в целом, пофигу почему.

На знание языка это действительно не влияет - это чистая лингвистика. А вот на понимание работы алгоритмов и их применение в конкретной задаче еще как влияет!

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

41. "Сколько языков программирования нужно выучить"  +/
Сообщение от pavlinux email(ok) on 20-Мрт-08, 20:34 
Теорию Графов и очень с ними связанные алгоритмы сортировки, в пЫТЫу или как там сейчас ,КАЛеджах, изучають?
А может вы знаете не только математический, но и физический смысл преобразований Фурье?
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

91. "Сколько языков программирования нужно выучить"  +/
Сообщение от sudo_rm on 04-Апр-08, 18:34 
>Теорию Графов и очень с ними связанные алгоритмы сортировки, в пЫТЫу или
>как там сейчас ,КАЛеджах, изучають?
>А может вы знаете не только математический, но и физический смысл преобразований
>Фурье?

теорию графов изучают, а что не изучают с тем можно и самому разобраться, ВСЁ нигде не разжуют и в рот не положат

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

87. "Сколько языков программирования нужно выучить"  +/
Сообщение от nuclight email(ok) on 25-Мрт-08, 10:00 
>>Для начала высшую математику и электронику+физику надо выучить, а потом уже программирование.
>
>Интересно, как мне поможет знание физики при написании спеллчекера для санскрита?
>Да и вышка тут особо не поможет.

Акустика, произношение -> типичные ошибки. Математика позволит просчитать статистику для предложения наиболее вероятных исправлений.

:)

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

32. "Сколько языков программирования нужно выучить"  +/
Сообщение от guest (??) on 20-Мрт-08, 18:58 
Интересно, а сколько не императивных языков знает (хорошо знает) средний автор вышестоящих сообщений. Если около 0, то гипотезу Сапира-Ворфа можно считать доказанной.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

35. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 20-Мрт-08, 19:08 
думаю, что цифра больше нуля, но до единицы не дотягивает. Про себя могу сказать, что _хорошо_ я не знаю ни один язык. Из глубоких познаний обладаю только императивными. Из практического применения ими же. В качестве хобби был пролог и хаскель. Но реальных применений ни тому, ни другому не нашлось. Основная причина -- невозможность создания коммерческих приложений из-за отсутствия средств разработки человеческих интерфейсов пользователя. Хотя пролог мне понравился.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

45. "Сколько языков программирования нужно выучить"  +/
Сообщение от Анон on 20-Мрт-08, 20:49 
> невозможность создания коммерческих приложений из-за отсутствия средств разработки человеческих интерфейсов пользователя.

а gtk2hs тогда что? почти у каждой gui-библиотеки есть биндинги на пачку разных языков. Но почему-то популярен только python.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

67. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 21-Мрт-08, 15:53 
Читаем еще раз внимательно. Не отсутствие библиотек, а отсутствие средств разработки, РАДов. gtk2hs не видел, честно скажу. Но чета мне кажется, что с объектной библиотекой, написаной на процедурном языке работать из функциональной среды будет не сильно удобно.
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

75. "Сколько языков программирования нужно выучить"  +/
Сообщение от jtootf on 21-Мрт-08, 18:23 
>Читаем еще раз внимательно. Не отсутствие библиотек, а отсутствие средств разработки, РАДов.
>gtk2hs не видел, честно скажу. Но чета мне кажется, что с
>объектной библиотекой, написаной на процедурном языке работать из функциональной среды будет
>не сильно удобно.

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

Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

80. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 23-Мрт-08, 04:27 
>А ты сначала попробуй, а потом высказывай мнение. Большего идиотизма чем процедурная
>библиотека для GUI представить вообще сложно. Разве что ОО-библиотека, пожалуй

А то я не пробовал. :)
Кстати, а давайте вообще признаем GUI идиотизмом и на этом закончим?

Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

88. "Сколько языков программирования нужно выучить"  +/
Сообщение от nuclight email(ok) on 25-Мрт-08, 10:01 
>>А ты сначала попробуй, а потом высказывай мнение. Большего идиотизма чем процедурная
>>библиотека для GUI представить вообще сложно. Разве что ОО-библиотека, пожалуй
>
>А то я не пробовал. :)
>Кстати, а давайте вообще признаем GUI идиотизмом и на этом закончим?

Типичный современный распространенный? Согласен.

Вообще? Не согласен, некоторые задачи без него не сделать.

Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

78. "Сколько языков программирования нужно выучить"  +/
Сообщение от Анон on 22-Мрт-08, 01:44 
>Читаем еще раз внимательно. Не отсутствие библиотек, а отсутствие средств разработки, РАДов.

А разве под Emacs нету режима *аналогичного* SLIME, к-ый прекрасно подходит для разработки под mcclim+gtkairo, mcclim+gsharp и lambda-gtk, но для gtk2hs? Sorry, я просто как-то не имел дела с haskell.

Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

81. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 23-Мрт-08, 04:36 
ох уж мне эти трупокопатели :)
Еще бы vim вспомнили. Это отдельных холивор, который я тут начну (наверно), но участвовать не буду.
Есть такая штука, прогресс называется. Еще в 18 веке были люди, которые с ним боролись. Звали их лудитсы. Им и без НТР было хорошо. Они не признавали конвеер, разделение труда, паровые машины и прочие новомодные (в тот момент) штучки. Но, прошло время, прогресс ушел вперед, лудисты вымерли (естесственным путем), а идея трансформировалась в антиглобализм.

Так вот, к чему это я? Время емаксов и ви ушло. Появились новые, более прогрессивные методы отображения информации. Появились устойчивые сочетания клавишь (хоткеи в смысле). Появились устойчивые интерфейсы текстовых редакторов. И все это не совместимо со старичком емаксом.

Ага, знаю, "Да там все можно настроить как захочешь". Можно. Но некоторые вещи мне лично проще написать с нуля в гуи, чем *найти готовый* мод к емаксу/ви.

Чтобы сразу закрыть тему скажу, что я считаю, что ви и емакс самые существенные достижения 70-х годов прошлого столетия. И даже в 90-х они еще не сдавались и могли дать жару. Все. Покойтесь с миром.

Ответить | Правка | ^ к родителю #78 | Наверх | Cообщить модератору

89. "Сколько языков программирования нужно выучить"  +/
Сообщение от nuclight email(ok) on 25-Мрт-08, 10:44 
>ох уж мне эти трупокопатели :)
>Еще бы vim вспомнили. Это отдельных холивор, который я тут начну (наверно),
>но участвовать не буду.
>Есть такая штука, прогресс называется. Еще в 18 веке были люди, которые
>с ним боролись. Звали их лудитсы. Им и без НТР было
>хорошо. Они не признавали конвеер, разделение труда, паровые машины и прочие
>новомодные (в тот момент) штучки. Но, прошло время, прогресс ушел вперед,
>лудисты вымерли (естесственным путем), а идея трансформировалась в антиглобализм.

Пока всё верно.

>[оверквотинг удален]
>совместимо со старичком емаксом.
>
>Ага, знаю, "Да там все можно настроить как захочешь". Можно. Но некоторые
>вещи мне лично проще написать с нуля в гуи, чем *найти
>готовый* мод к емаксу/ви.
>
>Чтобы сразу закрыть тему скажу, что я считаю, что ви и емакс
>самые существенные достижения 70-х годов прошлого столетия. И даже в 90-х
>они еще не сдавались и могли дать жару. Все. Покойтесь с
>миром.

А эта тема "vim/emacs vs IDE" уже (в свете предыдущей аналогии) некорректна и больше похоже на "больше ни к чему учить дифуры - прогресс не стоит на месте, калькулятор посчитает". Нету их, "более прогрессивных методов отображения информации". Есть более привычные для тех, кто много времени провел в Windows - а основные их фичи пристутствовали в vim/emacs еще ДО появления IDE (те же навигация, интерактивная отладка, автодополнение).

Да, IDE могут быть действительно удобнее для некоторого класса задач. Но не для всех.

Ответить | Правка | ^ к родителю #81 | Наверх | Cообщить модератору

42. "Сколько языков программирования нужно выучить"  +/
Сообщение от Twerdetz email on 20-Мрт-08, 20:35 
Простите, пожалуйста, неудобно как-то с такими мастерами "дзэна" первым заговаривать, но по моему вышеупомянутый порядок освоения - личный опыт автора и не более того. Человек познал "дзэн" и тут же рванулся им со всеми делиться. Есть задача. Есть пути решения этой задачи, которые определяются двумя факторами: 1-Насколько выбранный инструмент подходит задаче (драйвера на Питоне не пишут). 2-Сколько времени вам понадобится чтобы освоить идеалогически правильный, но незнакомый инструмент вместо использования более-менее подходящего, но знакомого на сто процентов. И все. Разговоры о "философии языка" - ересь. Программист не "говорит", он пишет. За деньги или для себя, но не из философии точно. Пишущие из "философских" соображений пишут кривые приблуды к кривому линуксу, статьи, типа вышеизложенной и комментарии вроде тех, которые я прочитал. Еще раз извините.

Владимир.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

44. "Сколько языков программирования нужно выучить"  +/
Сообщение от pavlinux email(ok) on 20-Мрт-08, 20:47 
Скучный ты.... Вот напиши драйвер на питоне... Тогда я буду неправ...
Философия порождает истину, а из "кучи кривых приблуд к кривому линуксу",
появились универсальные программы и OS.

Короче, такой подход не есть будущие, это есть родился-научился->написал->продал->поел->родил-> GOTO родился

Как говорится Прах от праха... После себя оставлять надо что-то, не только себе подобных!


Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

54. "Сколько языков программирования нужно выучить"  +/
Сообщение от nowinter email on 20-Мрт-08, 23:15 
>Есть задача.

Не все озабочены тем, как бабла нарубить. Есть научные проекты. Есть искусство. Есть СОЗДАНИЕ НОВЫХ ЯЗЫКОВ программирования. И парадигм - это насчет
>Разговоры о "философии языка" - ересь.

Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

83. "Сколько языков программирования нужно выучить"  +/
Сообщение от Leshi (ok) on 23-Мрт-08, 05:05 
Буду краток. Есть кодеры, а есть программисты. Вы изволили описать будни кодеры.
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

46. "Сколько языков программирования нужно выучить"  +/
Сообщение от Twerdetz email on 20-Мрт-08, 21:00 
2pavlinux: скучный. безрадостный. но тошнотворно правильный. Если есть желание обсудить - пиши, не будем флудить? Адрес я указал...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

51. "Сколько языков программирования нужно выучить"  +/
Сообщение от M0r1arty on 20-Мрт-08, 21:59 
Не собираюсь дискутировать. Просто из личного опыта: раз 20 пытался выучить ассемблер(не удачно), потом пытался выучить C(не понял), потом выучил ассемблер и понял C(именно в такой последовательности).
Личное IMHO Кристофера Диггинса так и останется его мнением. А мне кажется, что ничто другое так не развивает программистской логики как "write code" на ассемблере и ковыряние дизассемблером в чужих программах.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

52. "Сколько языков программирования нужно выучить"  +/
Сообщение от Killy on 20-Мрт-08, 22:54 
>Не собираюсь дискутировать. Просто из личного опыта: раз 20 пытался выучить ассемблер(не
>удачно), потом пытался выучить C(не понял), потом выучил ассемблер и понял
>C(именно в такой последовательности).
>Личное IMHO Кристофера Диггинса так и останется его мнением. А мне кажется,
>что ничто другое так не развивает программистской логики как "write code"
>на ассемблере и ковыряние дизассемблером в чужих программах.

Думаю можно оставить только "write code" и добавить "read books", например Д.Кнута...

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

57. "Сколько языков программирования нужно выучить"  +/
Сообщение от вапваырпавып on 21-Мрт-08, 04:47 
автор теоретик и утопист
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

58. "Сколько языков программирования нужно выучить"  +/
Сообщение от DeNIS on 21-Мрт-08, 06:24 
Парняга наверное шутит.
Необходимо знать три языка плюс родной :
1) Текущий
2) Основной
3) Альтернативный.
Русский для русских, немецкий для немцев ...
По поводй первых трех - ӕто уже каждый сам, к примеру связка такая - Perl, C++ и PHP.
Никого не насилую и на заставляю брать ӕто как аксеому.
:-)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

59. "Сколько языков программирования нужно выучить"  +/
Сообщение от DeNIS email on 21-Мрт-08, 06:29 
Ах да - пролог. Пролог очень мощная вещь, за него следует браться когда Вас взяла за жабры наша судебная система. Вот ӕтот язый, своими основами, и позволит Вам любого юриста, любого прокурора и адвоката не то ччто на место поставить, а просто разложить по полочкам, показать где он(они или оно) выполняет не логичные связки, не логичные псевдо-выводы. Математическая логика гОраздо шире юридической, гораздо.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

71. "Сколько языков программирования нужно выучить"  +/
Сообщение от Дмитрий Т email on 21-Мрт-08, 16:36 
Автор говорит учите, а я думаю лучше сказать знакомтесь со всеми появляющимися языками и старыми базовыми. Это совсем другое дело чем учить, любой развивающийся профессионал должен тратить часть времени чтоб поддерживать свои знания на современном уровне.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

90. "Сколько языков программирования нужно выучить"  +/
Сообщение от tor email(??) on 27-Мрт-08, 15:14 
Автор решил блеснуть умом ...
Однозначно
1 Assembler с введением от mk61 или бз21 ;-) чтоб дети поняли откуда все пошло
2 с/с++
3 perl or php or java
А того кто придумал алгоритмический язык в школе учить или basik растрелять мало ... как врага народа ...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

93. "Сколько языков программирования нужно выучить"  +/
Сообщение от Аноним (??) on 07-Окт-08, 00:54 
Выпендреж это все, самые на мой взгляд, так сказть реальные языки, благодоря которым реально начинаешь понимать логику машины, так это Assembler and C если хочется, чего то такого, повыше уровнем, тогда учите С++ потом можно безболезненно перейти на С#
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

94. "Сколько языков программирования нужно выучить"  +/
Сообщение от Анонимус on 06-Мрт-09, 02:42 
>Выпендреж это все, самые на мой взгляд, так сказть реальные языки, благодоря
>которым реально начинаешь понимать логику машины, так это Assembler and C
>если хочется, чего то такого, повыше уровнем, тогда учите С++ потом
>можно безболезненно перейти на С#

А все-таки посмотрите на Пролог, Хаскель и Форт(ну или постскрипт). Это сооовсем не то, к чему вы привыкли. И разобраться в этом надо, что-бы называть себя действительно Программистом

Ответить | Правка | ^ к родителю #93 | Наверх | Cообщить модератору

95. "Сколько языков программирования нужно выучить"  +/
Сообщение от tor (??) on 06-Мрт-09, 15:39 
Пролог, Хаскель и Форт(ну или постскрипт) - это промежуточные этапы развития мировоззрения программирования ...

С# это вообще мертворожденное творение проприентарщиков ... в топку.

Низкий уровень - assemler
Средний уровень - с & с++
Высокий уровень - java, php & perl

Если любой уровень не мультиплатформенный то в топку без вариантов!
Так же любой уровень должен быть в свободном доступе.

Ответить | Правка | ^ к родителю #94 | Наверх | Cообщить модератору

96. "Сколько языков программирования нужно выучить"  +/
Сообщение от Анонимус on 11-Мрт-09, 20:18 
>Пролог, Хаскель и Форт(ну или постскрипт) - это промежуточные этапы развития мировоззрения программирования ...

Это не правда. Хаскель - совсем другой подход к программированию. Это не "пройденый/промежуточный этап" к java или php. Это вовсем другое.

Ответить | Правка | ^ к родителю #95 | Наверх | Cообщить модератору

97. "Сколько языков программирования нужно выучить"  +/
Сообщение от tor (??) on 12-Мрт-09, 13:49 
>>Пролог, Хаскель и Форт(ну или постскрипт) - это промежуточные этапы развития мировоззрения программирования ...
>
>Это не правда. Хаскель - совсем другой подход к программированию. Это не
>"пройденый/промежуточный этап" к java или php. Это вовсем другое.

Ваше развитие мировоззрения зашло в глубокий тупик ... можно сказать кризис жанра. В далеких 80-ых все писалось на ассемблере весило децел и про побочные эффекты аля уязвимости как то никто не думал потому что лишнего кода неписали ... Щас все обьектно ориентированно кода ГОРЫ никто незнает что он делает ... но часто он не делает то что было нужно и это факт ... от побочных еффектов аля дыр уже незнают куда бежать ... когда програмист уточняет тз у закащика возникает острое ощущение что ему просто морочат голову ...


Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

98. "Сколько языков программирования нужно выучить"  +/
Сообщение от thehangedman email(ok) on 12-Мрт-09, 18:53 
Казалось бы, при чем тут Хаскелл...
Ответить | Правка | ^ к родителю #97 | Наверх | Cообщить модератору

99. "Сколько языков программирования нужно выучить"  +/
Сообщение от nowinter email on 12-Мрт-09, 18:56 
>Казалось бы, при чем тут Хаскелл...

казалось бы, сколько можно sRать в этом более чем старом треде, да еще со всякой хYитой

Ответить | Правка | ^ к родителю #98 | Наверх | Cообщить модератору

100. "Сколько языков программирования нужно выучить"  +/
Сообщение от Анонимус on 13-Мрт-09, 15:30 
>Низкий уровень - assemler
>Если любой уровень не мультиплатформенный то в топку без вариантов!

Ну и расскажите нам, какой assembler весь мультиплатформенный.... =))

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

101. "Сколько языков программирования нужно выучить"  +/
Сообщение от tor (??) on 13-Мрт-09, 21:35 
>>Низкий уровень - assemler
>>Если любой уровень не мультиплатформенный то в топку без вариантов!
>
>Ну и расскажите нам, какой assembler весь мультиплатформенный.... =))

:)))))
Все равно xz80 больше похож на i386 чем кабол на питона  ...
:-)))

Ответить | Правка | ^ к родителю #100 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру