LINUX.ORG.RU

Джентельменский набор ЯП


1

0

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

А вообще какие языки и в какой последовательности было бы неплохо поучить?


> А вообще какие языки и в какой последовательности было бы неплохо поучить?

Все и сразу :) Да не надо языки учить. Тебе же не язык знать надо, а программы писать. Какие-то. Вот какие надо, такие и пиши, язык _соответствующий_ попутно выучится. Это уж потом, когда, скажем, тот же C++ уже будешь знать, можно взять какой-нибудь философский талмуд и познания свои углубить да расширить...

const86 ★★★★★
()

> А вообще какие языки и в какой последовательности было бы неплохо поучить?

Scheme -> Haskell -> C -> C++ -> Ruby.
Можно по сокращенной программе
Scheme -> Haskell

paxac
()

Python, Java, C. А вообще сейчас важен не столько язык, сколько платформа (фреймворк), на которой он используется.

mamay_cozak
()
Ответ на: комментарий от tailgunner

отличная смесь, правда я бы Haskell после C++-а поставил

mholub
()
Ответ на: комментарий от tailgunner

>унихренасебе. Самая странная смесь языков, которые я видел на ЛОРе.

действительно, с++ выкинуть из списка, тогда нормально

cvb
()
Ответ на: комментарий от cvb

> с++ выкинуть из списка, тогда нормально

И Руби выкинуть, Хаскел поставить после Си, да и Схему тоже. Правда, это будет уже другой список :D И получим идеального сферического прогера %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

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

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

лет зе флейм бегин?

cvb
()
Ответ на: комментарий от cvb

> хаскел перед си, чтобы закалить силу воли

Ну, а еще для этого армия хороша, говорят. Или даже зона, для особо Ъ.

> зачем си ставить первым, если смысл его изучения - понимание низкоуровневых процессов

Именно за этим.

> лет зе флейм бегин?

Я маленьких^Wрубистов не обижаю - неинтересно %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Ну, а еще для этого армия хороша, говорят. Или даже зона, для особо Ъ.

у этих методов масса других вредных свойств, а вот собственно полезных свойств у этих методов почти нет

>Именно за этим.

в этом ведь нет никакого смысла, если нет навыков программирования, а учить им в си значительно менее продуктивно чем в схеме

>Я маленьких^Wрубистов не обижаю - неинтересно %)

вы таки имеете что-то против рубистов)?

cvb
()
Ответ на: комментарий от paxac

>> Можно по сокращенной программе Scheme -> Haskell

На самомо деле можно еще больше сократить. Просто Common Lisp, без "->". А Схема, увы, не практично. Единственная живая имплеиентация - PLT. Однако если взглянуть на нее не из под SICP, а из под какого-нибудь учебника по CL, то очень даже очевидно, что схема идет тем же путем, что и CL. И никакой там нет "элегантной простоты".

cathode
()
Ответ на: комментарий от cathode

>На самомо деле можно еще больше сократить. Просто Common Lisp

а ещё лучше - просто Haskell. безо всяких там скобок

jtootf ★★★★★
()
Ответ на: комментарий от cathode

>COBOL учить не надо. Нишу кобола уже давно заняли.

интересно, что BrainFuck у тебя подобной реакции не вызвал. Ook! тоже ;)

jtootf ★★★★★
()
Ответ на: комментарий от cvb

>> ну а вообще система типов хаскеля более тру, да и сам язык строже

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

cathode
()
Ответ на: комментарий от jtootf

>> интересно, что BrainFuck у тебя подобной реакции не вызвал. Ook! тоже ;)

А вот на BF просьба не наезжать! Я бы на его примере в школе объяснял работу стека, например :)

cathode
()

> С какой целью?

Для себя любимого :) Си с плюсами и ассамблер(забыл написать) мне обеспечены вузом и вдруг мне подумалось что стоит этот набор дополнить/разбавить...

Где добыть интерпритатор брэинфака для линукса? //занятная весчь :))

Rapt0r
() автор топика
Ответ на: комментарий от cathode

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

есть мнение что это дерьмовая практика для проектов больше среднего

jtootf ★★★★★
()
Ответ на: комментарий от cathode

>А вот на BF просьба не наезжать! Я бы на его примере в школе объяснял работу стека, например :)

а я бы - на Forth. но это ещё не повод предлагать учить его всем подряд

jtootf ★★★★★
()
Ответ на: комментарий от cathode

>Дуэль?

время нас рассудит :) хотя боевую мясорубку не прячу, авось в этом треде ещё пара глупых мыслей будет

jtootf ★★★★★
()
Ответ на: комментарий от cvb

> в этом ведь нет никакого смысла, если нет навыков программирования, а учить им в си значительно менее продуктивно чем в схеме

Прогер должен точно знать, как оно всё происходит в машине, необходимость этого знания даже не обсуждается. И этому нужно учить на Си. А инженерным навыкам - можно и на Схеме (хотя и не обязательно - SICP можно переложить на нормальный статически типизированный язык).

> вы таки имеете что-то против рубистов)?

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

tailgunner ★★★★★
()
Ответ на: комментарий от Rapt0r

>мне подумалось что стоит этот набор дополнить/разбавить...

Непременно стоит.

Я бы посоветовал Python, OCaml и Scala (предварительно ознакомившись с жабой).

Zenom ★★★
()
Ответ на: комментарий от jtootf

>> есть мнение что это дерьмовая практика для проектов больше среднего

есть мнение, что 50% (ну или около этого, или даже больше) проггеров не смогут доказать, что определение (x:xs) ++ ys = x:(xs ++ ys) всегда аппендит. Для них собственно и придумат юнит-тест:)

cathode
()
Ответ на: комментарий от jtootf

> есть мнение что это дерьмовая практика для проектов больше среднего

А чо так скромно -"есть мнение"? Надо строго и категорично, например: "из г^Wдинамического языка п^Wбольше, чем одноразовый скрипт на пару страниц, не слепишь". Еще можно по unit-тестам пройтись: "unit-тесты придумали упорствующие в сових заблуждениях смолтокеры, когда поняли, что к развитию в условиях изменяющихся требований программы на их фетише неспособны".

В общем, решительность! Иначе не получится у нас флейма.

tailgunner ★★★★★
()
Ответ на: комментарий от Zenom

> предварительно ознакомившись с жабой

не хотел бы холиварить, но правдивы ли сплетни про тормознутось жабы? тормознее ли питона?

> http://www.muppetlabs.com/~breadbox/software/tiny/bf.asm.txt - спасибо, надеюсь не аналог односторчника на перле... А что про перл скажете?

Rapt0r
() автор топика
Ответ на: комментарий от cathode

>> (x:xs) ++ ys = x:(xs ++ ys)

В смысле, что это определние функции конкатенации списков в свободном изложении... Ну ты понял о чеи речь :))) Btw, доставай свою мясорубку, инетерсно посмотреть что на это раз :)))

cathode
()
Ответ на: комментарий от tailgunner

>Надо строго и категорично, например: "из г^Wдинамического языка п^Wбольше, чем одноразовый скрипт на пару страниц, не слепишь"

ну я же апологет Tcl, как я могу такое говорить? :)

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

а вот это да

jtootf ★★★★★
()
Ответ на: комментарий от Rapt0r

>правдивы ли сплетни про тормознутось жабы?

Не ласточка, конечно. Но в целом ничего, если памяти хватает.

>тормознее ли питона?

Нет.

Zenom ★★★
()
Ответ на: комментарий от tailgunner

>> "из г^Wдинамического языка п^Wбольше, чем одноразовый скрипт на пару страниц, не слепишь"

из г^Wстатического хаскеля одноразовый скрипт на пару страниц вырастет на 5 страниц четрые из котрых - import что-то-там :)))

cathode
()
Ответ на: комментарий от cathode

>Btw, доставай свою мясорубку, инетерсно посмотреть что на это раз :)))

я придерживаюсь простой как валенок позиции - всё, что может быть сделать в статике, должно быть сделано в статике. проверка типов, верификация, оптимизация, вычисления. всё

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

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

jtootf ★★★★★
()
Ответ на: комментарий от cathode

>из г^Wстатического хаскеля одноразовый скрипт на пару страниц вырастет на 5 страниц четрые из котрых - import что-то-там :)))

пруфпик или GTFO

jtootf ★★★★★
()
Ответ на: комментарий от cathode

> из г^Wстатического хаскеля одноразовый скрипт на пару страниц вырастет на 5 страниц четрые из котрых - import что-то-там :)))

То есть ты согласен, что объем "полезного" кода одинаков? А импорты не нужно отлаживать :-P Так что остается равенство объема кода и устойчивость статического Хаскеля к изменениям.

tailgunner ★★★★★
()
Ответ на: комментарий от jtootf

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

Rapt0r
() автор топика
Ответ на: комментарий от Rapt0r

>жаба очень даже интересна

В ней нет никаких интересных концепций. Я её упомянул только как введение в Скалу, ибо Скала на .Net отстаёт от жабской версии.

Zenom ★★★
()
Ответ на: комментарий от Zenom

В жабе есть одна обалденная концепция, которая перевешивает все остальное: найдется готовая библиотека почти для любой задачи.

Pi ★★★★★
()
Ответ на: комментарий от tailgunner

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


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

gaa ★★
()
Ответ на: комментарий от Pi

>В жабе есть одна обалденная концепция

Которая не пропадает в Скале.

Zenom ★★★
()
Ответ на: комментарий от Pi

> В жабе есть одна обалденная концепция, которая перевешивает все остальное: найдется готовая библиотека почти для любой задачи.

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

gaa ★★
()
Ответ на: комментарий от Zenom

> В ней нет никаких интересных концепций. Я её упомянул только...

Ну раз жаба так уныла, то возвращаюсь к питону %)

Rapt0r
() автор топика
Ответ на: комментарий от gaa

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

Pi ★★★★★
()
Ответ на: комментарий от Rapt0r

> А что про перл скажете?

Хороший мощный язык, но серьёзно изуродованный в процессе эволюции. Программирование на Перле требует строгой самодисциплины и чувства меры. В качестве первого языка противопоказан. Но ради интереса посмотреть на Перл стоит. Мне вот он почему то больше нравится чем Питон или Руби.

Hjorn
()
Ответ на: комментарий от Pi

> В жабе есть одна обалденная концепция, которая перевешивает все остальное: найдется готовая библиотека почти для любой задачи.

Да, только качество этих библиотек разное.

По теме: язык - это инструмент. Если тебе интересно программирование, а не изучение инструмента программирования, начинай со scheme и pascal. Scheme, потому что есть легендарный SICP который "just blows up your mind with every single page of the book". Pascal, потому что этот язык зарекомендовал себя как учебных язык, с чем он справляет вполне хорошо. По крайней мере концепции усвоишь.

Ruby, Pyhton, Java - все очаровательны, но начинать с них? Сложный вопрос.

smh ★★★
()
Ответ на: комментарий от cathode

>Я бы на его примере в школе объяснял работу стека, например :)

А почему не на Parrot?

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.