LINUX.ORG.RU

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


1

0

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

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


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

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

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

balodja ★★★
()

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

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

> Вобщем задумываю поучить какой-нибудь язык программирования.

Программирование осваивается постановкой мозгов теориями вычислимости и алгоритмов, а не изучением языка. "Поучить какой-нибудь язык программирования" в отрыве от реальной задачи - дело глупое и бесполезное. Вне практики они все относительно одинаковы. А начинать тогда уж надо с исторических истоков - например, с ДМТ.

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

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

Написать. Заодно и практика, причём сразу в 2-х языках: в брейнфаке и в том, на котором писать будешь.

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

>Вне практики они все относительно одинаковы

тезис Чёрча-Тьюринга более-менее на это намекает, да

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

>Написать. Заодно и практика, причём сразу в 2-х языках: в брейнфаке и в том, на котором писать будешь

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

после осознания этого факта компиляторы LISP'а на LISP'е уже не кажутся такими уж бессмысленными, n'est-ce pas? ;)

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

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

Нашёлся вот такой мозгиепический вариант: встраивание мозготраха в не менее мозготрахательный язык:

$ aptitude search brainfck
p libacme-brainfck-perl - Embed Brainf*ck in your perl code

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

из песни слов не выкинешь, но давай полегче

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

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

А кому тут интерпретатор brainfuck-а на brainfuck-е? Смотри: http://www.hevanet.com/cristofd/brainfuck/dbfi.b

На том же сайте можно найти еще много интересных программ :)))

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

>> "Поучить какой-нибудь язык программирования" в отрыве от реальной задачи - дело глупое и бесполезное.

А ты не задумывался над тем, что это может быть хобби? Я за последнее время изучил достаточно много литературы по, наверное, 10-15 языкам, так, чисто из-за интереса.

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

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

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

>> "Поучить какой-нибудь язык программирования" в отрыве от реальной задачи - дело глупое и бесполезное.

> А ты не задумывался над тем, что это может быть хобби?

Когда люди учат ЯП в виде хобби, это порождает самоуверенных дилетантов (в лучшем случае).

> Я за последнее время изучил достаточно много литературы по, наверное, 10-15 языкам, так, чисто из-за интереса.

Подозреваю, что до этого ты на практике неплохо освоил пару-тройку ЯП.

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

>> Подозреваю, что до этого ты на практике неплохо освоил пару-тройку ЯП.

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

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

>А ты не задумывался над тем, что это может быть хобби?

Скорее процесс самообразования. Все-таки хобби - это немножко другое.

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

>> Подозреваю, что до этого ты на практике неплохо освоил пару-тройку ЯП.

> Ну это уже другой вопрос.

Тот же самый.

> Если это профессиональная деятельность - то это утверждение оппонента наверное правильное

Если учесть, что ОП сказал об изучении Си в рамках учебы, его деятельность явно профессиональная. Так что и учиться ему следует подобающим образом.

tailgunner ★★★★★
()

C# учи, в жизни пригодится, а не всякое красноглазие

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

> Си с плюсами и ассамблер(забыл написать) мне обеспечены вузом

В ВУЗе ассемблер не обеспечен. Часов на него мало выделяют, студенты, в основной массе, его не понимают. Преподаватели тоже.

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

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

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

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

>> Если учесть, что ОП сказал об изучении Си в рамках учебы,

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

cathode
()

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

Для создания моделей нужен а) фреймворк, б) словарь предметной области. А на язык - плевать. Хотя по сути дела фреймворк - это тот же словарь предметной области.

Черт, и сколько же пришлось преодолеть чтобы наконец "дошло". Хотя хрен я в это верил и даже смеялся.

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

Следующим шагом является понимание того, что языков позволяющих "нырнуть" в предметную область "причем максимально декларативно и безгиморно" не так уж и много. Одного пальца на руке хватит чтобы пересчитать :)

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

> В конце-концов все упирается в создание моделей - Луговский, ау!

Бгг. Что ж вы молитесь-то на Веталега? Ведь всё это в учебниках написано. Их просто читать надо.

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

Придешь на пересдачу.

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

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

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

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

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

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

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

А динамическая - не помогает. И при внесении изменений программы с динамической типизацией разваливаются молча, а программы со статической - с громкими воплями компилятора.

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

>> Хаскель, да? :D

Ну когда в хаскеле появится нормальное метапрограммирование с человеческим лицом, тогда модно вырастить на руке второй палец, чтоб загибать :) А так пока не растет :)) Хотя мне лично хаскель нравиться как идейный язык :))

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

>> И при внесении изменений программы с динамической типизацией разваливаются молча, а программы со статической - с громкими воплями компилятора.

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

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

>> Даже страуструп пишет

то, что пишет страуструп надо оценивать очччень критически. После c++ ему нет доверия.

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

>Когда люди учат ЯП в виде хобби, это порождает самоуверенных дилетантов (в лучшем случае).

ты знал, ты знал!

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

>> И при внесении изменений программы с динамической типизацией разваливаются молча, а программы со статической - с громкими воплями компилятора.

> Надо программы грамотно писать, чтобы не разваливались.

Они разваливаются не потому, что написаны безграмотно, а потому что требования меняются в непредусмотренную сторону.

Ты еще скажи, что программы надо писать без ошибок - тогда и тесты не понадобятся.

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

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

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

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

>олололо. юнит тесты есть единственное что спасает мир от кучи поделий бородатых жабистов, хаскелястов и питонщиков с ЧСВ больше 9000

трололо

кстати, а что - мир уже пора спасать от хаскелястов? я что-то пропустил?

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

>Ну когда в хаскеле появится нормальное метапрограммирование с человеческим лицом

то есть со скобками?

кстати да, расскажи - чего тебе не хватает в TH, правда очень интересно

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

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

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

> то, что пишет страуструп надо оценивать очччень критически. После c++ ему нет доверия.

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

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

> травите собственных тараканов, уважаемые

Наши тараканы нам слишком дороги. Алсо, у нас правильные тараканы.

> кстати, а что - мир уже пора спасать от хаскелястов? я что-то пропустил?

Профилактика.

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

>> Ты еще скажи, что программы надо писать без ошибок - тогда и тесты не понадобятся.

Ну по крайней мере к этому надо стремиться.

>> а потому что требования меняются в непредусмотренную сторону.

Ну я и говорю: безграмотное проектирование :)) С клиентами надо плотнее работать :))

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

> Они разваливаются не потому, что написаны безграмотно, а потому что требования меняются в непредусмотренную сторону.

И как изменение требований и динамичность/статичность языка влияет на "развалится" или нет? Мне всегда казалось, что динамические языки гибче и изменения там осуществить легче.

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

> И как изменение требований и динамичность/статичность языка влияет на "развалится" или нет?

Читай внимательно. Она развалится в любом случае.

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

>Ведь всё это в учебниках написано.

Про первичность моделей написано? Про DSL-ы написано? Про проектирование снизу-вверх написано? Покажи.

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

>> Ты еще скажи, что программы надо писать без ошибок - тогда и тесты не понадобятся.

> Ну по крайней мере к этому надо стремиться.

Именно в этом стремлении мы пишем тесты :D

> Ну я и говорю: безграмотное проектирование :)) С клиентами надо плотнее работать :))

Хочешь сказать, Лисп прокачивает телепатию?

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

>> а потому что требования меняются в непредусмотренную сторону.
> Ну я и говорю: безграмотное проектирование :)) С клиентами надо плотнее работать :))


Ну разве что бить их ногами, чтобы ничего нового не требовали :)

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

>языков позволяющих "нырнуть" в предметную область ... Одного пальца на руке хватит чтобы пересчитать

А их вообще в природе нет. Потому что они для предметной области специфичны.

И дело тут не только и не столько в технических аспектах разработки DSL. Дело тут в построении моделей в терминах предметной области.

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

>> Ведь всё это в учебниках написано.

> Про первичность моделей написано?

Про то, что программы - это модели реального мира. Любую мурзилку по ООП открой. Или не мурзилку - Буч, Шлеер & Меллорс (это то, что я помню).

> Про DSL-ы написано? Про проектирование снизу-вверх написано? Покажи.

Хорошая книга по Unix - там и DSL навалом, и философия software tools объясняется. Керниган и Пайк, Керниган и Плоджер.

"I am a very bottom-up thinker" (c) Thompson

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

>> кстати да, расскажи - чего тебе не хватает в TH, правда очень интересно

Да ну, мудреный он какой-то. Как это не смешно, но реально не хватает скобок и defmacro. Лисповские макросы просты и наглядны как валенок.

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

>> Хочешь сказать, Лисп прокачивает телепатию?

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

Как то так :)

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

>Неужели не заняли нишу Брэйнфака??! А Уайтспейс?

unlambda!

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

> реально не хватает скобок

> Лисповские макросы просты и наглядны

> клиенты стали сговорчивее:

Инопланетянин детектед.

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