The OpenNET Project / Index page

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

Сколько языков программирования нужно выучить

20.03.2008 14:13

Кристофер Диггинс (Christopher Diggins), автор известной книги "C++ Cookbook" и создатель языка программирования Cat, в своем блоге Programming Languages, советует — учите столько языков программирования, сколько сможете выучить. Ведь, если гипотеза Сапир-Ворфа распространяется и на компьютерные языки, то их изучение позволит вам расширить свое мышление и глубже понять само программирование. «Предполагая, что вы, скорее всего, используете C++ или Java, я рекомендую изучить следующие языки, в следующем порядке и как можно быстрее:», - пишет Диггинс.

  • Ruby. Разработчики Ruby проделали огромную работу, демонстрирующую каким мощным может быть динамический язык программирования. Ruby заимствует лучшие идеи Smalltalk, Perl и Lisp;
  • Scheme. Довольно жесткая реализация диалекта Lisp. Проверьте, сможете ли вы удержать в голове все call/cc и понять как работает «lambda»;
  • PostScript. Изящный способ испытать мощь стек-ориентированного языка. PostScript выглядит «игрушечным», но используется в миллионах принтеров по всему миру;
  • Prolog. Позволяет решать широкий класс задач легко и быстро;
  • ML. Один из самых любимых языков в компьютерных науках. Я предлагаю изучить алгебраические типы данных, а затем быстро перейти на Haskell;
  • Haskell. Я считаю, что Haskell можно понять только изучив Scheme и ML. Старайтесь выявлять шаблоны и избегайте использования монад там, где это возможно;
  • Erlang. Оцените простоту создания распределенных приложений.
«Полученный опыт выведет вас на новый уровень программирования. Вы сможете по-новому взглянуть на решение задач, какой бы язык вы не использовали. Конечно, не каждый имеет столько времени и сил, чтобы освоить все эти языки. Поэтому, если вы решили изучить пока только один, я рекомендую Scala. Scala сочетает некоторые передовые идеи и устоявшиеся идиомы Java и динамического программирования», - считает Диггинс.

  1. Главная ссылка к новости (http://dobbscodetalk.com/index...)
  2. Learn as Many Languages as You Can (or just learn Scala)
  3. Programming Language Short List
  4. OpenNews: Чем Ruby лучше Java, в контексте упрощенной разработки
  5. OpenNews: Почему на языке Haskell удобно создавать компиляторы и интерпретаторы
  6. OpenNews: Визуальное сравнение грамматики Ruby с Java, JavaScript, Python и Си.
Автор новости: specialm
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/14848-ruby
Ключевые слова: ruby, erlang, scheme, prolog, haskell, postscript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (97) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, cBoJIo4b (?), 14:25, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ассемблер забыл упомянуть. Если уж какой язык и нужно выучить чтоб быть хорошим программистом дак этов первую очередь его. А после него между остальным языками особой разницы нет. И изучение нового языка для написания простейших приложений на нем происходит за максимум за неделю.
     
     
  • 2.16, bsdemon (?), 17:01, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ассемблер тут совершенно не причём, с точки зрения решения задач программирования. А вот функциональные языки это сила - вот посмотрите через несколько лет - всё будет написано на них.
     
     
  • 3.20, AsphyX (??), 17:47, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Так говорят с момента их появления :)
     
  • 3.22, Leshi (ok), 17:57, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ассемблер как раз в первую очередь Думаю, что это подразумевалось Именно ассем... большой текст свёрнут, показать
     
     
  • 4.29, thehangedman (ok), 18:32, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Для изучения - да, если начать изучение с императивных, то потом сложно ломать п... большой текст свёрнут, показать
     
     
  • 5.33, Leshi (ok), 19:01, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Пожалуйста Для приминения функциональных языков требуется функциональное мышлен... большой текст свёрнут, показать
     
     
  • 6.37, thehangedman (ok), 19:33, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, а для императивного какой Если пойти на компромисс с педантичностью, то фу... большой текст свёрнут, показать
     
     
  • 7.47, WhiteWind (??), 21:03, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну или контрпример приведите, по
    >возможности общего характера, где ФЯ были бы менее эффективны чем ИЯ
    >(допускаю что приведете, но уверен что не сходу..)

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

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

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


     
     
  • 8.48, thehangedman (ok), 21:19, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Драйвера и прошивки - в связи со спецификой не языка, а платформ Компьютерные ... большой текст свёрнут, показать
     
     
  • 9.62, fresco (??), 09:57, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вы академики, блин Понимаю, где не правы, а сформулировать -- образования... текст свёрнут, показать
     
     
  • 10.74, jtootf (?), 18:15, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    В играх ФЯ используются на ура - смотри проект Frag, смотри Yampa и FRP вообще ... большой текст свёрнут, показать
     
     
  • 11.82, Leshi (ok), 04:57, 23/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Есть Если коротко, то Windows, MS-Office, Unix, Oracle Я могу удлинить список ... большой текст свёрнут, показать
     
     
  • 12.102, Аноним (-), 05:16, 04/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Уважаемый вы выдаете желаемое за действительное Если с функциональным программи... текст свёрнут, показать
     
  • 7.66, Leshi (ok), 15:38, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Было бы оно ближе, появилось бы раньше На самом деле не ближе Человеку свойс... большой текст свёрнут, показать
     
     
  • 8.73, thehangedman (ok), 18:04, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    А я ошибусь, если скажу что lisp - старейший из живых языков программирования ... большой текст свёрнут, показать
     
     
  • 9.76, Leshi (ok), 20:06, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    http people ku edu nkinners LangList Extras famous htm Я в истории не силен, ... большой текст свёрнут, показать
     
     
  • 10.77, thehangedman (ok), 00:40, 22/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно, я не был уверен Нет, пока не пытаюсь, а утверждение что ФЯ потребляе... большой текст свёрнут, показать
     
     
  • 11.79, Leshi (ok), 04:23, 23/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Славный был холивор Но я таки в одной фразе резюмирую свое мнение Есть много... текст свёрнут, показать
     
  • 4.55, serg1224 (ok), 23:48, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Именно ассемблер
    >позволяет понять как сделать алгоритм более быстрым и менее требовательным.

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

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

     
  • 3.23, Аноним (23), 18:00, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ну - ну ... "через 10 лет театров не будет!"(С) ~1963
     
  • 2.43, bsdemon (?), 20:46, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Да хватит - императивные языки щас "моде" потому что компьютер считает последовательно - то есть "моду" диктует архитектура выч.машины. Но как видно уже сейчас начали появляться многоядерные настольные машины. В науке уже давно используются машины с количеством нодов более 1000. На них ФП уже есть куда развернуться - но конечно надо больше)
    При приближении количества нодов к 10^9 я думаю от ФП будет никому не убежать

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

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

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

     
  • 2.61, Константин (??), 07:13, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    asm? Самому не смешно?
     
  • 2.64, demimurych (?), 12:14, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Речь шла о наращивании в голове конструкций для решения задач. Именно такие конструкции и предлагают высокоуровневые языки. Ассемблер таких конструкция почти не дает.

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

     
     
  • 3.65, Оммм (?), 13:46, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    есть свои моменты, не скажу что не согласен с вашими мыслями, но иногда допол... большой текст свёрнут, показать
     
     
  • 4.85, nuclight (ok), 09:50, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Это сравнение как раз в тему раличных приемов и конструк... большой текст свёрнут, показать
     

  • 1.2, теория (?), 14:27, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мера любой истины в индивидуальности человека Профокл 3 век до н эры,
    лучше знать один, но знать , так что сам создатель подпрыгнет -  чем много, но
    плохо,,,,,
     
     
  • 2.4, kwas (?), 14:32, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не так. "Лучше знать много и хорошо, чем только один, но лучше всех". Кругозор называется, ага. Тоже часть индивидуальности, кстати.
     
     
  • 3.10, Kage (?), 15:34, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Почему вместо того чтобы высказать своё мнение, ага. Ты когото поправляеш, кстати?
     

  • 1.3, Оммм (?), 14:28, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    true, asm - 100% гарантия прыгнуть сразу в дзен, необременя себя сомнительными техниками по "расширению сознания" ;)
     
  • 1.5, pavlinux (ok), 14:55, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше знать все, и написать свой, потому как все остальные кажутся полное Г-но.
     
  • 1.6, толя (?), 15:06, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    интересно, а linux язык есть или будет такой? думаю не за горами - кто-то уже пишет его или ред хат или новелл :-)))))))))))), вроде по динамике слова линукс - должен быть и язык,,,
     
     
  • 2.11, Kage (?), 15:38, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Вы помойму в своём нике после "т", "р" пропустили.
     
  • 2.24, Leshi (ok), 18:03, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Есть, конечно. Даже несколько. Какой больше нравиться: C, bash, perl? :)
     

  • 1.7, Аноним (23), 15:16, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ссылку на гипотезу Сепира — Уорфа можна было дать и на русскую википедию
     
  • 1.8, pavlinux (ok), 15:21, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для защиты от мутации и деградации нашего населения, янки пущай дибилизируют....

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

     
     
  • 2.12, drioptr (ok), 16:08, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >  Если мы признаем принцип Ч╦рча, то любой язык, на котором
    >можно смоделировать машину Тьюринга, является достаточно мощным, чтобы осуществить любой реализуемый
    >алгоритм.

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

     
     
  • 3.15, pavlinux (ok), 16:52, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    http://ru.wikipedia.org/w/index.php?&oldid=7953623
     
  • 2.13, thehangedman (ok), 16:10, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    по поводу эквивалентности языков программирования в плане класса решаемых задач замечание совершенно верное, но:

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

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

     
     
  • 3.14, pavlinux (ok), 16:42, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так выучи Ruby Scheme PostScript Prolog ML Haskell Erlang LISP C Perl - и выходи на пенсию.
     
  • 3.19, Анон (?), 17:37, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > а lisp - для символьных вычислений, и т.п.

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

     
     
  • 4.21, thehangedman (ok), 17:53, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> а lisp - для символьных вычислений, и т.п.
    >
    >DSL? так для этого есть scheme. А для чего тогда common lisp?

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

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

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


     
  • 3.26, Leshi (ok), 18:18, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    имхо неудачный пример libpcre, boost и еще многое, чего я даже не видел может н... большой текст свёрнут, показать
     
     
  • 4.31, thehangedman (ok), 18:50, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Так мощность языка - одно, мощность библиотек - другое Ну и что pavlinux уже ... большой текст свёрнут, показать
     
     
  • 5.38, Аноним (23), 19:50, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Глупости Если говорить коротко, то С будучи не самым-самым в каждой отдельн... большой текст свёрнут, показать
     
     
  • 6.40, thehangedman (ok), 20:22, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    В то время как для изучения С требуется много времени, следовательно мало прог... большой текст свёрнут, показать
     
     
  • 7.49, Аноним (23), 21:20, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Например, Pascal По этим критериям выбранного алгоритм... большой текст свёрнут, показать
     
  • 7.70, Leshi (ok), 16:23, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Смешно, наверно НО Сейчас много сайтов пишется на С и Java Принцип их работы... большой текст свёрнут, показать
     
  • 6.50, Осторожный (?), 21:26, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Кстати, программы на С являются таковыми и на С++. Вас никто не
    >заставляет применять везде ООП. В этом и прелесть С++ как _универсального_
    >языка.

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

     
     
  • 7.68, Leshi (ok), 16:08, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Педантично, но справедливо.
    Хотя я все же отмечу, что для приведение программ написанных на С в соответствие со спецификациями С++ нужно крайне мало усилий. В частности (уж простите, наболело) для перевода с РНР4 на РНР5 требуется больше усилий.
     
  • 6.60, Денис (??), 07:13, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Ещё хороший пример: Python в версии 3.0 будет полностью изменён. Это говорит
    >о несостоятельности его как ЯП. Если понадобилось всё менять, значит языковые
    >конструкции были неудачными. С++ существуя вдвое больше времени, а дорабатывается совсем
    >чуть-чуть. Имею в виду новый стандарт '09. А это потому, что
    >нет в нём каких-то принципиально неудачных решений.

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

     
  • 5.69, Leshi (ok), 16:17, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Например, Perl - мощнее чем C для задач обработки строк
    >Так мощность языка - одно, мощность библиотек - другое..

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

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

    +1

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

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

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

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

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

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

     
     
  • 6.72, serg1224 (ok), 16:49, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >ЯП должен уметь переменные, условные переходы
    >и арифметические действия, остальное библиотеки.

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

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

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

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

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

     
  • 4.86, nuclight (ok), 09:58, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> Например, Perl - мощнее чем C для задач обработки строк
    >
    >имхо неудачный пример. libpcre, boost и еще многое, чего я даже не
    >видел может нивелировать разницу в трудоемкости с увеличением разницы в производительности.

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

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

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

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

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

     
  • 2.39, northbear (??), 20:18, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Замечательно! Я говорю совершенно искренне. Сам я все это уже основательно подзабыл. Увы... :(

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

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

     

  • 1.18, Аноним (23), 17:11, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне нравится СП Gambas. Просто и удобно.
     
  • 1.25, Dmitry (??), 18:12, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А работать когда?
     
     
  • 2.28, Leshi (ok), 18:22, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    А работать всегда :) Менделеев, вот, даже во сне работал. И кажется был более эффективен именно во сне...
    Изучение синтаксиса языка не займет много времени (ну хорошо, уже после третьего языка). А вот понять философию языка это другое дело. Но понимание чужой философии только поможет в работе, избавив мозг от стереотипов. Так что останестя время изучить и еще что-нибудь.
     

  • 1.27, Аноним (27), 18:21, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для начала высшую математику и электронику+физику надо выучить, а потом уже программирование. Тогда уж точно с алгоритмами и техникой будете общаться только на ты.
     
     
  • 2.30, Leshi (ok), 18:38, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Для начала высшую математику и электронику+физику надо выучить, а потом уже программирование.

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

     
     
  • 3.34, Аноним (-), 19:05, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Интересно, как мне поможет знание физики при написании спеллчекера для санскрита?

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

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

     
     
  • 4.36, Leshi (ok), 19:12, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >А зачем тогда ассемблер, если ты основы работ процессора незнаешь. Кстати программируют
    >не только быдло-спелчекеры, но и прошивки, драйвера и всякий сис. софт.

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

     
     
  • 5.84, ws (??), 14:51, 23/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Не поверишь, но совсем не обязательно знать как распространяется электрическое поле в
    >КМОП, чтобы понять, что перемещение данных из регистра в регистр (чем
    >бы эта штука ни являлась) происходит быстрее, чем перемещение из памяти
    >в память. И в целом, пофигу почему.

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

     
  • 3.41, pavlinux (ok), 20:34, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Теорию Графов и очень с ними связанные алгоритмы сортировки, в пЫТЫу или как там сейчас ,КАЛеджах, изучають?
    А может вы знаете не только математический, но и физический смысл преобразований Фурье?
     
     
  • 4.91, sudo_rm (?), 18:34, 04/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Теорию Графов и очень с ними связанные алгоритмы сортировки, в пЫТЫу или
    >как там сейчас ,КАЛеджах, изучають?
    >А может вы знаете не только математический, но и физический смысл преобразований
    >Фурье?

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

     
  • 3.87, nuclight (ok), 10:00, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>Для начала высшую математику и электронику+физику надо выучить, а потом уже программирование.
    >
    >Интересно, как мне поможет знание физики при написании спеллчекера для санскрита?
    >Да и вышка тут особо не поможет.

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

    :)

     

  • 1.32, guest (??), 18:58, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, а сколько не императивных языков знает (хорошо знает) средний автор вышестоящих сообщений. Если около 0, то гипотезу Сапира-Ворфа можно считать доказанной.
     
     
  • 2.35, Leshi (ok), 19:08, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    думаю, что цифра больше нуля, но до единицы не дотягивает. Про себя могу сказать, что _хорошо_ я не знаю ни один язык. Из глубоких познаний обладаю только императивными. Из практического применения ими же. В качестве хобби был пролог и хаскель. Но реальных применений ни тому, ни другому не нашлось. Основная причина -- невозможность создания коммерческих приложений из-за отсутствия средств разработки человеческих интерфейсов пользователя. Хотя пролог мне понравился.
     
     
  • 3.45, Анон (?), 20:49, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > невозможность создания коммерческих приложений из-за отсутствия средств разработки человеческих интерфейсов пользователя.

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

     
     
  • 4.67, Leshi (ok), 15:53, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Читаем еще раз внимательно. Не отсутствие библиотек, а отсутствие средств разработки, РАДов. gtk2hs не видел, честно скажу. Но чета мне кажется, что с объектной библиотекой, написаной на процедурном языке работать из функциональной среды будет не сильно удобно.
     
     
  • 5.75, jtootf (?), 18:23, 21/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Читаем еще раз внимательно. Не отсутствие библиотек, а отсутствие средств разработки, РАДов.
    >gtk2hs не видел, честно скажу. Но чета мне кажется, что с
    >объектной библиотекой, написаной на процедурном языке работать из функциональной среды будет
    >не сильно удобно.

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

     
     
  • 6.80, Leshi (ok), 04:27, 23/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >А ты сначала попробуй, а потом высказывай мнение. Большего идиотизма чем процедурная
    >библиотека для GUI представить вообще сложно. Разве что ОО-библиотека, пожалуй

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

     
     
  • 7.88, nuclight (ok), 10:01, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>А ты сначала попробуй, а потом высказывай мнение. Большего идиотизма чем процедурная
    >>библиотека для GUI представить вообще сложно. Разве что ОО-библиотека, пожалуй
    >
    >А то я не пробовал. :)
    >Кстати, а давайте вообще признаем GUI идиотизмом и на этом закончим?

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

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

     
  • 5.78, Анон (?), 01:44, 22/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Читаем еще раз внимательно. Не отсутствие библиотек, а отсутствие средств разработки, РАДов.

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

     
     
  • 6.81, Leshi (ok), 04:36, 23/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    ох уж мне эти трупокопатели :)
    Еще бы vim вспомнили. Это отдельных холивор, который я тут начну (наверно), но участвовать не буду.
    Есть такая штука, прогресс называется. Еще в 18 веке были люди, которые с ним боролись. Звали их лудитсы. Им и без НТР было хорошо. Они не признавали конвеер, разделение труда, паровые машины и прочие новомодные (в тот момент) штучки. Но, прошло время, прогресс ушел вперед, лудисты вымерли (естесственным путем), а идея трансформировалась в антиглобализм.

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

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

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

     
     
  • 7.89, nuclight (ok), 10:44, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >ох уж мне эти трупокопатели :)
    >Еще бы vim вспомнили. Это отдельных холивор, который я тут начну (наверно),
    >но участвовать не буду.
    >Есть такая штука, прогресс называется. Еще в 18 веке были люди, которые
    >с ним боролись. Звали их лудитсы. Им и без НТР было
    >хорошо. Они не признавали конвеер, разделение труда, паровые машины и прочие
    >новомодные (в тот момент) штучки. Но, прошло время, прогресс ушел вперед,
    >лудисты вымерли (естесственным путем), а идея трансформировалась в антиглобализм.

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

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

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

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

     

  • 1.42, Twerdetz (?), 20:35, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Простите, пожалуйста, неудобно как-то с такими мастерами "дзэна" первым заговаривать, но по моему вышеупомянутый порядок освоения - личный опыт автора и не более того. Человек познал "дзэн" и тут же рванулся им со всеми делиться. Есть задача. Есть пути решения этой задачи, которые определяются двумя факторами: 1-Насколько выбранный инструмент подходит задаче (драйвера на Питоне не пишут). 2-Сколько времени вам понадобится чтобы освоить идеалогически правильный, но незнакомый инструмент вместо использования более-менее подходящего, но знакомого на сто процентов. И все. Разговоры о "философии языка" - ересь. Программист не "говорит", он пишет. За деньги или для себя, но не из философии точно. Пишущие из "философских" соображений пишут кривые приблуды к кривому линуксу, статьи, типа вышеизложенной и комментарии вроде тех, которые я прочитал. Еще раз извините.

    Владимир.

     
     
  • 2.44, pavlinux (ok), 20:47, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Скучный ты.... Вот напиши драйвер на питоне... Тогда я буду неправ...
    Философия порождает истину, а из "кучи кривых приблуд к кривому линуксу",
    появились универсальные программы и OS.

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

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


     
  • 2.54, nowinter (?), 23:15, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Есть задача.

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

     
  • 2.83, Leshi (ok), 05:05, 23/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Буду краток. Есть кодеры, а есть программисты. Вы изволили описать будни кодеры.
     

  • 1.46, Twerdetz (?), 21:00, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    2pavlinux: скучный. безрадостный. но тошнотворно правильный. Если есть желание обсудить - пиши, не будем флудить? Адрес я указал...
     
  • 1.51, M0r1arty (?), 21:59, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не собираюсь дискутировать. Просто из личного опыта: раз 20 пытался выучить ассемблер(не удачно), потом пытался выучить C(не понял), потом выучил ассемблер и понял C(именно в такой последовательности).
    Личное IMHO Кристофера Диггинса так и останется его мнением. А мне кажется, что ничто другое так не развивает программистской логики как "write code" на ассемблере и ковыряние дизассемблером в чужих программах.
     
     
  • 2.52, Killy (?), 22:54, 20/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Не собираюсь дискутировать. Просто из личного опыта: раз 20 пытался выучить ассемблер(не
    >удачно), потом пытался выучить C(не понял), потом выучил ассемблер и понял
    >C(именно в такой последовательности).
    >Личное IMHO Кристофера Диггинса так и останется его мнением. А мне кажется,
    >что ничто другое так не развивает программистской логики как "write code"
    >на ассемблере и ковыряние дизассемблером в чужих программах.

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

     

  • 1.57, вапваырпавып (?), 04:47, 21/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    автор теоретик и утопист
     
  • 1.58, DeNIS (?), 06:24, 21/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Парняга наверное шутит.
    Необходимо знать три языка плюс родной :
    1) Текущий
    2) Основной
    3) Альтернативный.
    Русский для русских, немецкий для немцев ...
    По поводй первых трех - ӕто уже каждый сам, к примеру связка такая - Perl, C++ и PHP.
    Никого не насилую и на заставляю брать ӕто как аксеому.
    :-)
     
  • 1.59, DeNIS (?), 06:29, 21/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ах да - пролог. Пролог очень мощная вещь, за него следует браться когда Вас взяла за жабры наша судебная система. Вот ӕтот язый, своими основами, и позволит Вам любого юриста, любого прокурора и адвоката не то ччто на место поставить, а просто разложить по полочкам, показать где он(они или оно) выполняет не логичные связки, не логичные псевдо-выводы. Математическая логика гОраздо шире юридической, гораздо.
     
  • 1.71, Дмитрий Т (?), 16:36, 21/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автор говорит учите, а я думаю лучше сказать знакомтесь со всеми появляющимися языками и старыми базовыми. Это совсем другое дело чем учить, любой развивающийся профессионал должен тратить часть времени чтоб поддерживать свои знания на современном уровне.
     
  • 1.90, tor (??), 15:14, 27/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автор решил блеснуть умом ...
    Однозначно
    1 Assembler с введением от mk61 или бз21 ;-) чтоб дети поняли откуда все пошло
    2 с/с++
    3 perl or php or java
    А того кто придумал алгоритмический язык в школе учить или basik растрелять мало ... как врага народа ...
     
  • 1.93, Аноним (27), 00:54, 07/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Выпендреж это все, самые на мой взгляд, так сказть реальные языки, благодоря которым реально начинаешь понимать логику машины, так это Assembler and C если хочется, чего то такого, повыше уровнем, тогда учите С++ потом можно безболезненно перейти на С#
     
     
  • 2.94, Анонимус (?), 02:42, 06/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Выпендреж это все, самые на мой взгляд, так сказть реальные языки, благодоря
    >которым реально начинаешь понимать логику машины, так это Assembler and C
    >если хочется, чего то такого, повыше уровнем, тогда учите С++ потом
    >можно безболезненно перейти на С#

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

     
     
  • 3.95, tor (??), 15:39, 06/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Пролог, Хаскель и Форт(ну или постскрипт) - это промежуточные этапы развития мировоззрения программирования ...

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

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

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

     
     
  • 4.96, Анонимус (?), 20:18, 11/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Пролог, Хаскель и Форт(ну или постскрипт) - это промежуточные этапы развития мировоззрения программирования ...

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

     
     
  • 5.97, tor (??), 13:49, 12/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>Пролог, Хаскель и Форт(ну или постскрипт) - это промежуточные этапы развития мировоззрения программирования ...
    >
    >Это не правда. Хаскель - совсем другой подход к программированию. Это не
    >"пройденый/промежуточный этап" к java или php. Это вовсем другое.

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


     
     
  • 6.98, thehangedman (ok), 18:53, 12/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Казалось бы, при чем тут Хаскелл...
     
     
  • 7.99, nowinter (?), 18:56, 12/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Казалось бы, при чем тут Хаскелл...

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

     

  • 1.100, Анонимус (?), 15:30, 13/03/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Низкий уровень - assemler
    >Если любой уровень не мультиплатформенный то в топку без вариантов!

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

     
     
  • 2.101, tor (??), 21:35, 13/03/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>Низкий уровень - assemler
    >>Если любой уровень не мультиплатформенный то в топку без вариантов!
    >
    >Ну и расскажите нам, какой assembler весь мультиплатформенный.... =))

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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