LINUX.ORG.RU

Какой язык программирования лучше начать изучать

 , ,


0

1

Доброго времени суток

Не сочтите за разжигание holy war, да к тому же, наверняка такие темы уже бывали, но хочу вас спросить, сам я немного пишу на php, собственно какой язык программирования лучше начать изучать: ruby, perl или python. Какой из этих языков легче в изучении и мне будет проще его освоить. Если можно то, хотелось бы услышать аргументированные ответы.

Спасибо.

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

Создается такое впечатление, что нету у тебя понимания, что такое ООП

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

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

То есть в индустрии программирования (ну, в специфической её части, но тем не менее) ничего не слышали про Django, Sinatra, Rails, etc?

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

ничего не слышали про Django, Sinatra, Rails, etc?

Слышали, а причём тут методология ООП?

ну, в специфической её части

Вот именно. Как я и говорил «плавают в своей луже».

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Ну т.е. про остальное ты согласен?

Про Python ничего сказать не могу, про Perl согласен.

С каких пор синтаксис и методика применения ООП в руби хотя бы похожи на таковые в Java или C++?

А почему синтаксис и методика применения ООП должны быть схожи с Java или C++? Ruby не позиционирует себя как «очередной», он куда «сильнее» в плане ООП Java и C++.

Как там кстати в руби с концепцией интерфейса и зачем нужно было городить миксины?

Потому что примеси вписываются в ООП Ruby.

anonymous
()
Ответ на: комментарий от no-such-file

а причём тут методология ООП?

Во как. Сначала ты зачем-то притянул индустрию, потом почему-то скакнул обратно на ООП. Методология тут притом, что некоторым людям удается с успехом применять её за пределами обозначенных ранее Явы и плюсов. И не факт ещё, что с меньшим удобством или большими усилиями.

Как я и говорил «плавают в своей луже».

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

infrad
()

Go и Vala (а позже и C/C++)
Сам начал с этих языков
Python не получается осилить, а Go - очень удобный язык

mystery ★★
()

Я скажу крамольную мысль – но это haskell. Ищи книгу «Миран Липовача – Изучай haskell во имя добра», и в бой. Следом, если не боишься, языки семейства лисп. Проблема последних в том, что после них на всё остальное начинаешь смотреть как на говно. А perl, python, ruby – это параша, легаси и просто отстой.

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

Си чтобы лучше понять как работает машина

Си не пойдёт, для этого только асм курить.

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

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

Весьма вероятно, но к сожалению никак не связано с достоинствами самих лиспов.

ya-betmen ★★★★★
()
Ответ на: комментарий от anonymous

Ruby не позиционирует себя как «очередной», он куда «сильнее» в плане ООП Java и C++

Если вы такие умные, почему такие бедные, а конкретно, когда уже руби вытеснит жабку, не говоря уж про кресты?

Потому что примеси вписываются в ООП Ruby

Вот. Только ООП руби это не мэйнстрим ни разу, поэтому изучение руби никак не поможет саморазвитию, лучше изучить примеси в том же пыхе, или жабке. Повторяю ещё раз, я не против того что руби мОщен и крут, но чем может помочь изучение 100500 нового синтаксиса для одного и того же? Гораздо лучше изучать на примере таких языков, которые общеприняты. В этом смысле нет нужны переезжать с пыха на руби. Есть смысл переехать на джаву.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от infrad

некоторым людям удается с успехом применять её за пределами обозначенных ранее Явы и плюсов

Я тут уже приводил ссылку на brainfuck-on-rails. Некоторым фанатам удаётся да, ну и что?

Ещё раз спрашиваю, как это относится к методологии программирования? Ты вообще не въезжаешь о чем я говорю, а лезешь со своими джангами.

Если сидеть и хвалить своё болото

Ты обиделся чтоли, что я назвал твой питончик и руби лужей?

Ладно, специально для тебя я разжую что к чему. ТС спрашивает, что бы такое ему поизучать, для расширения кругозора. Мой ответ, посыл и идея заключается в том, что ТСу не надо распылять своё внимание на руби с питонами, потому что это всё тоже самое, вид сбоку. В этих языках свой, особенный и неповторимый синтаксис, своё особенное и неповторимое понимание ООП, что в свою очередь определяет используемые методы программирования, завязанные на эти особенности, что никак не помогает ни пониманию происходящего, ни общению с другими людьми, т.к. к сожалению, не все пока ещё изучили эти прекрасные язычки. Поэтому питонисты не могут обсуждать с рубистами код, если только они не знают оба языка, или какой-то другой, общий для них язык, и даже в этом случае им трудно будет объяснить вещи, завязанные на «фишки» из языка. Так вот, есть базис который знают практически все программисты, в той или иной мере, достаточной, чтобы вести дискуссию, это ООП как оно есть в жабе или крестах. Вот для расширения кругозора ТСу нужно потыкать жабку,(т.к. кресты для него перебор), а не руби или питон, которые ничему новому его не научат, кроме фокусов и приёмчиков популярных в локальной среде адептов этих языков (луже). Руби и питон, для ТСа - это топтание на месте, а не развитие.

no-such-file ★★★★★
()
Ответ на: комментарий от Hertz

А perl, python, ruby – это параша, легаси и просто отстой

Вот, сразу видно умного человека.

Я скажу крамольную мысль – но это haskell

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

haskell

Вообще, я считаю, что ocaml лучше, что все на этот хаскель набросились?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Если вы такие умные, почему такие бедные, а конкретно, когда уже руби вытеснит жабку, не говоря уж про кресты?

Очевидно же, что Ruby не подходит для решения задач в которых применяется Java и C++, поэтому ни о каком вытеснение и речи быть не может.

изучение руби никак не поможет саморазвитию

Как изучение чего-либо нового может не помочь саморазвитию?

но чем может помочь изучение 100500 нового синтаксиса для одного и того же?

Ruby это не только другой синтаксис, но и другой подход к разработке в целом.

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

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

В этом смысле нет нужны переезжать с пыха на руби. Есть смысл переехать на джаву.

Я ни на чём не настаиваю и уж точно ни за кого язык программирования не выбираю.

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

Ruby не подходит для решения задач в которых применяется Java и C++,

Т.е. руби это не язык общего назначения, он нужен только для рельс?

Как изучение чего-либо нового

А что такого нового ТС найдёт в руби? Новый сахарок?

но и другой подход к разработке в целом

Принятый в узком кругу, как ты сам признал. К тому же эффективность этого подхода спорна, т.к. никаких успехов по расширению узкого круга нет. Ну и нафиг это ТСу?

«общеприняты» ещё не значит хорошие

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

можно посмотреть на мир по-другому

ЛОЛ. Ты только что раскрыл мотивацию всех рубитонистов в этом треде!

Я ни на чём не настаиваю

Вот поэтому ты обычный анонимус.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Т.е. руби это не язык общего назначения, он нужен только для рельс?

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

А что такого нового ТС найдёт в руби? Новый сахарок?

Удобный язык для быстрой разработки

Ну и нафиг это ТСу?

Возможно ему понравится подход Ruby к разработке. Что бы понять нужно оно тебе или нет - для начала необходимо попробовать.

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

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

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

Удобный язык для быстрой разработки

Удобный, но для 10к строк не годится. Знаем мы такой метод, называется быдлокодинг. И да, сколько раз нужно повторять эту мантру про удобство, я уже трижды, во всех красках описал, почему этот аргумент хреновый.

Что бы понять нужно оно тебе или нет - для начала необходимо попробовать

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

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

10к на Ruby ~ 100к строк на Java/C++

ЛОЛ, да, а 10к на руби = 1 строка на перле.

Давай ты покажешь как 100 строк на джаве превращаются в 10 строк на руби, но не в 10 строк говнокода, а нормального, читаемого, полностью эквивалентного кода с контролем типов и т.д.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

10к на руби = 1 строка на перле.

Снова бредишь?

Давай ты покажешь

Давай я тебе покажу, сынок. Только не на руби, а на Io, который весьма схож с руби

list(1,2,3,4,5) map(squared)
versus
interface IntToInt {
    int run(int x);
}
 
int[] result = new int[myIntArray.length];
for (int i = 0; i < myIntArray.length; i++) {
    result[i] =
        new IntToInt() {
            public int run(int x) {
                return x * x;
            }
        }.run(myIntArray[i]);

только вот проблема то даже не в этом, а в том, что из-за экстремальной тупости жабы, эти пропорции растут экспонцеально, и в итоге будет не 10/100, а, в достаточно большом приложении, 1/1000 и более.

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

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

Смотри и учись

int[] result = new int[]{1,4,9,16,25};

Но если уж хочешь более-менее аналог того что написал:

int[] result = MyUtils.squared(new int[]{1,2,3,4,5});

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Для расширения кругозора, так сказать, а?

А ведь не все, между прочим, обучаемы. Взять вот хоть тебя. 10 лет (по твоим же словам), в электриках проходил, а что такое фаза в розетке, так и не узнал. Теперь вот в другой стан переметнулся — и опять не в коня корм, контроль типов ему подавай. Мартышки с контролями хоть в ынтырпрайзе преуспели, а ты как был нищебродом, так и остался. Нахрена нищеброду контроль типов, ты можешь объяснить?

aboutcard
()
Ответ на: комментарий от ya-betmen

Кстати, а вот так на жабе можно?

List clone/*'instanse of array*/ do(
   clone /*instanse of instanse of array */ do(
      with(1,2,3) /*instanse of array of array of array with setted values*/ map(squared)
   )
)

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

Или вот так, например

Можно то можно, вопрос нужно ли, нафига например ты разбиваешь один массив на три куска? Нафига отдельно возводишь в квадрат каждый элемент? Почему сразу не можешь написать list(1, 4, 9, 9, 16, 25, 36, 49, 64)?

ya-betmen ★★★★★
()
Ответ на: комментарий от aboutcard

Хотя нет, соврал, map не нейтив, там одна строка.

Да какая разница нейтив или нет, считай что MyUtils написан 10 лет назад и ты просто подключил его как либу.

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

Ты не понял. Там ничего не разбивается на 3 куска. Там создается массив, от которого наследуется другой массив, от которого наследуется 3-й массив, и уже к этому 3-му массиву применяется функция.

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

Ты не понял. Там ничего не разбивается на 3 куска. Там создается массив, от которого наследуется другой массив, от которого наследуется 3-й массив, и уже к этому 3-му массиву применяется функция.

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

ya-betmen ★★★★★
()
Ответ на: комментарий от aboutcard

Да, либу из одной строки. А в myUtils сколько строк?

Хз, это собранный байткод. И ты не ответил сколько строк занимает list()?

ya-betmen ★★★★★
()
Ответ на: комментарий от aboutcard

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

Код? new int[]{1, 4, 9, 9, 16, 25, 36, 49, 64}

Теперь объясни нафига зазря гонять байтики.

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

Да насчет лист я тоже ошибся, кстати. Это тоже не нейтив. Тоже одна строка, или 3, если переносы скобок учитывать.

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

Тоже одна строка, или 3, если переносы скобок учитывать.

Так покажи код-то или кинь ссылку поглядеть что там за одна строка.

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

Ты че тупой? Я говорю создай сабклас List с полями O: 1 1: 2 2: 3, от него унаследуй другой сабкласс с полями 0: 4 1: 5 2: 6, от него еще один с полями 0: 7 1: 8 2: 9, и уже к нему примени функцию map. В моем примере все сабклассы анонимные, но если твое говно этого не может, можешь поименовать.

aboutcard
()
Ответ на: комментарий от ya-betmen

не 1, 2, 3 и т.д. а создавать их анонимные сабклассы.

В Io то кстати, это легко делается. Там все really объект, а не фикция, как в твоем говне.

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

А где-то я слыхал, что в java есть ООП в зачаточном состоянии. Врут значит?

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

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

ну ладно, че, те функции, которые используются argsEvaluatedIn — нейтив на сишке, остальные где то порядка 5 - 10 строк каждая. Теперь вываливай свое, особенно интересует MyOtherUtils

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