The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

OpenNews: Сколько языков программирования нужно выучить, opennews (?), 20-Мрт-08, (0) [смотреть все]

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Консенсус)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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




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

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