avva: (moose)
[personal profile] avva
Мнение Джо Армстронга, создателя языка Эрланг:
What would I recommend learning?

- C
- Prolog
- Erlang (I'm biased)
- Smalltalk
- Javascript
- Haskell/ML/OCaml
- LISP/Scheme/Clojure

A couple of years should be enough (PER LANGUAGE).

Notice there is no quick fix here - if you want a quick fix go buy "learn PHP in ten minutes" and spend the next twenty years googling for "how do I compute the length of a string"
Если по два года на строку, то получается 14 лет, хотя, может, он позволит некоторые из них одновременно?

Хотя, в общем-то, я двадцать лет этим занимаюсь, и не все языки из этого списка знаю (а зря; я сам может быть по-другому составил бы список, но все эти языки заслуживают внимательного изучения).
Page 1 of 4 << [1] [2] [3] [4] >>

Date: 2013-01-25 08:30 am (UTC)
From: [identity profile] maxlethal.livejournal.com
А был ли у вас пост о вашем видении по этому вопросу?

Date: 2013-01-25 08:35 am (UTC)
From: [identity profile] xaxam.livejournal.com
1. Программирование в абсолютных кодах. Ассемблер как венец природы.
2. ФОРТРАН: всё, что нужно для того, чтобы СЧИТАТЬ и ВЫЧИСЛЯТЬ
3. Алгол: надо же теоретикам-алгоритмистам объясняться друг с другом (не машину же Тьюринга заводить!)
4. Паскаль, для девочек и тинэйджеров, - что хочу, то и нарисую...
5. HTML для гламурных
6. ТеХ для заумных...

Date: 2013-01-25 08:46 am (UTC)
From: [identity profile] avva.livejournal.com
Нет; только небольшой комментарий недавно о том, с какого языка начинать.

Date: 2013-01-25 08:54 am (UTC)
romikchef: (штора)
From: [personal profile] romikchef
2 больших дырки в списке вижуя:
Во-первых, непонятна задача. Для чего учить? Если для того, чтобы небрежно обронить при случае, "я знаю карате, кунфу, дзюдо, джиуджитсу и много других страшных слов" - то да, список подходит идеально. Для веб-разработки же, скажем, РНР - лучшее из упомянутого.
Во-вторых, по факту фрейворк играет куда большую роль, чем базовый язык. Скажем, на определенные позиции весь список не будет стоить знания MFC.
Плюс опыт в предметной области. Умение без помощи гугля узнать длину строки слабо поможет при проблемах с БД или каким-нибудь специализированным протоколом.

Date: 2013-01-25 08:57 am (UTC)
From: [identity profile] msh.livejournal.com
Я без гугла могу писать только на C.

Пост интересен тем, что показывает что же на самом деле изменилось в программировании и что он пропустил из-за консервативности. С современными IDE совершенно не нужно помнить как же получить длину строки - забыл size() это или length()? Нажми кнопку и IDE подскажет.

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

Date: 2013-01-25 09:06 am (UTC)
From: [identity profile] leroy-ru.livejournal.com
А как вам идея начинать со Schema? Мне кажется, для человека, никогда не программирующего, понять его будет проще, чем языки, традиционно принятые для обучения.

Date: 2013-01-25 09:09 am (UTC)
From: [identity profile] captain-tylor.livejournal.com
Javascript заменить на Javascript/Coffescript

Date: 2013-01-25 09:17 am (UTC)
From: [identity profile] yurri.livejournal.com
Ну это очевидно список для тех, кому интересна теория и разница в парадигмах, судя по тому, как построены строки списка. Я бы даже сказал, есть логика в порядке этих строк.

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

Date: 2013-01-25 09:52 am (UTC)
From: [identity profile] potan.livejournal.com
2 года на язык программирования? Это документацию наизусть, что ли?

Date: 2013-01-25 10:23 am (UTC)
From: [identity profile] avva.livejournal.com
Я не пользуюсь IDE при программировании - мне кажется, что они больше меня отвлекают, чем помогают. Я пишу в vim с синтаксической подсветкой.

Мне кажется, что Армстронг не имеет в виду "выучить все стандартные библиотеки за два года" - это безумие их даже пытаться выучивать наизусть. Наверное, он имеет в виду, что за два года понимаешь слабые и сильные стороны языка и его экосистемы, начинаешь писать на нем в полную силу. Сформулирую это так: в T=2 года посмотрите на свой код, написанный в T=1 месяц; и в T=4 года посмотрите на свой код, написанный в T=2 года. Если в первом случае реакция ужас-ужас, а во втором намного более умеренная (пусть даже недовольство), то Армстронг прав.

ИМХО

Date: 2013-01-25 10:37 am (UTC)
From: [identity profile] archaicos.livejournal.com
Для чего учить? Наверное для мозгового просветления, чтобы было понимание, что многие задачи можно решать разными способами, и на каких-то языках они решаются или проще, или быстрее, или эффективнее, или надёжнее, чем на других, а на каких-то и вовсе не решаются в рамках поставленной конкретной задачи (например, из вышеперечисленного мало на чём можно писать программы для устройств с памятью в несколько КБ, на Си, разве что, если не на форте или ассемблере, поправьте, если кого-то обделил вниманием).

В списке представлены языки из разных категорий: императивные, с ООП, декларативные, функциональные, смешанные. Понятно, что, в принципе, большинство задач можно решить на всём, но люди стараются подбирать инструменты (языки) наиболее подходящие для конкретных задач или расширять имеющиеся механизмы уже выбранного языка чем-то полезным из какого-нибудь другого языка, в частности и Domain Specific Languages изобретают из имеющихся кубиков.

Побочным эффектом серьёзного и длительного использования чего-нибудь маленького и примитивного типа Си или Лиспа является более глубокое понимание того, как работает процессор, комп, ОС и всякие разные библиотеки и фреймворки, что там внутри и как оно вертится. Это помогает с отладкой, и с оптимизацией, и с дизайном.

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

Date: 2013-01-25 10:41 am (UTC)
romikchef: (штора)
From: [personal profile] romikchef
Ну, в общем, всё сводится к уже озвученной выше дихтомии - рассуждать или мешки ворочать :)

Date: 2013-01-25 10:44 am (UTC)
From: [identity profile] 109518.livejournal.com
Когда я учился первый симестр был Ским, второй Паскаль. Понять его нe сложно. Потом шли Пролог и Смалталк. "С" периодически появлялся со второго курсa и далее. Ява ещё была. Помоему был МЛ в курсе по компиляторам.

Date: 2013-01-25 10:45 am (UTC)
From: [identity profile] lelia-br.livejournal.com
2 года на один язык - это надо было когда компьютерное время тяжело было получить. Я считаю нужна 1-2 недели для ознокомления и пару больших проектов чтоб разобраться что к чему. Т.е. 2-3 месяца интесивной работы на одном языке если сталкиваешься с разнообразными проблемами, а не просто пишешь что-то однообразное.

Date: 2013-01-25 10:53 am (UTC)
From: [identity profile] archaicos.livejournal.com
Если текстовый редактор слишком примитивен, порой нужна бывает и IDE (ну или другие инструменты). Когда много незнакомого кода, бывает, что очень хочется и дерево (граф) вызовов получить, и быстро перемещаться между разными частями кода (к точкам деклараций, к точкам использования), и закладок-пометок нарасставлять, и ещё кучу всякой фигни сделать. IDE в какой-то мере это по идее и должны облегчать делать.

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

Date: 2013-01-25 10:57 am (UTC)
From: [identity profile] archaicos.livejournal.com
C - долбанутый язык при всей своей простоте и примитивности. На него годы уходят, особенно если изучать его где-нибудь и как-нибудь. Ещё хуже C++. Я бы не преуменьшал необходимое время на познание языка.

Date: 2013-01-25 10:57 am (UTC)
From: [identity profile] migmit.livejournal.com
> Для веб-разработки же, скажем, РНР - лучшее из упомянутого.

Если бы не эта фраза, можно было бы подумать, что вы говорите серьёзно.

Date: 2013-01-25 10:59 am (UTC)
From: [identity profile] archaicos.livejournal.com
Иногда так наворочаешься мешков и призадумаешься, а нафига я их ворочал? Нет ли более простого или быстрого способа? Лень - двигатель прогресса. :)

Date: 2013-01-25 11:00 am (UTC)
From: [identity profile] lelia-br.livejournal.com
»C - долбанутый язык при всей своей простоте и примитивности. На него годы уходят, особенно если изучать его где-нибудь и как-нибудь.

А мобно пример какой нибудь такой заковырки? А т

Date: 2013-01-25 11:01 am (UTC)
From: [identity profile] leroy-ru.livejournal.com
А до schema опыта программирования не было? У меня просто есть подозрения, что сложности, которые некоторые испытывают при обучение функциональным языками, связаны с установленной имперетивными языками моделью мышления. А если ее еще нет, то учится на языках вроде ским было бы проще, потому что они требуют меньшего предварительного знания об устройстве компьютера, а значит непосредственно программированию можно уделить больше времени.
Edited Date: 2013-01-25 11:01 am (UTC)

Date: 2013-01-25 11:12 am (UTC)
From: [identity profile] archaicos.livejournal.com
Надо запомнить кучу вещей, которые зависят от компилятора/платформы, и научиться бороться с ними, не попадая в Undefined Behavior, самые распространённые варианты которого тоже надо запомнить и узнавать в лицо. Надо в конце-концов запомнить, как что-то делается или должно делаться согласно стандарту языка, а не методом тыка, думая, что если компилятор съел, то всё хорошо и правильно, и что если он съел это сегодня и не подавился, и программа работает, то и завтра будет то же самое, и с другим компилятором будет то же самое, и на другом компе будет то же самое. Я не хочу углубляться в подробности, но вокруг море нестандартного кода, который работает или чудом, или только при определённом расположении звёзд. За примерами сходите на http :// stackoverflow . com/questions/tagged/c. Посмотрите на ужасы, которые новички вытворяют. Присмотритесь к коду не новичков, там тоже найдутся места с душком. Если не знаете достаточно хорошо языка, почитайте стандарт внимательно.

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

Если бы надо было изобретать C сегодня, то надо было сделать что-то типа Go. Впрочем, он наверное и есть вариант современного C.
Edited Date: 2013-01-25 11:25 am (UTC)

Date: 2013-01-25 11:28 am (UTC)
From: [identity profile] ztarlitz.livejournal.com
То о чем вы пишите (фреймворки) очевидно преподаваться должны не в университете, это уровень ПТУ в хорошем смысле слова. Университетское образование должно быть максимально широким, все эти фреймворки не стоят ничего, меняются каждый день, любой человек понимающий базовые вещи в состоянии освоить любой фреймворк самостоятельно.

Date: 2013-01-25 11:29 am (UTC)
From: [identity profile] ztarlitz.livejournal.com
Если есть пайтон нафиг пхп?

Date: 2013-01-25 11:40 am (UTC)
From: [identity profile] migmit.livejournal.com
Я примерно это и сказал.

Date: 2013-01-25 12:00 pm (UTC)
romikchef: (штора)
From: [personal profile] romikchef
Непонятно, как эта фраза мешает воспринимать остальное.
И что в ней несерьёзного самой по себе.
Возможно, с академической точки зрения пых не так хорош, как Лисп, но сточки зрения экосистемы и решаемой задачи он - вне конкуренции.
Это очень похоже на ситуацию с натуральными языками. Логлан или эсперанто - вне сомнения - языки с более продуманными правилами и логичной структурой, чем английский или русский. Но если тебе не для хобби, а для общения или работы... ;)
Page 1 of 4 << [1] [2] [3] [4] >>

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 10:51 pm
Powered by Dreamwidth Studios