LINUX.ORG.RU

Выбор языка

 , , , ,


1

2

На данный момент учу С++... Впринципе идет не так уж и трудно)

Но я тут задумался, лето то большое, времени естественно больше свободного... Какой еще язык будет проще освоить вместе с С++? Ну или по крайней мере какой ЯП, после С++ будет проще даваться...

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

Подумал, может быть что-то из Pythlon, Ruby, objective-c?

Что подскажите другое?

Перемещено mono из talks

★★★★★

Последнее исправление: CYB3R (всего исправлений: 2)

учи то, что практично! objective-с настоятельно рекомендую - очень практично. Мак можно купить б\у - например, apple mac mini 1-го поколения тебе вполне хватит и стоит «компейки».

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

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

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

На уровне песен Шклярского и кое-какошного чтения польской педивикии.

Ооо)) я те говорю, ищи польку и балаболь с ней по скайпу))

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

apple mac mini 1-го поколения тебе вполне хватит и стоит "компейки".

И во сколько он обойдется?

Licwin ★★★★★
() автор топика

Всё зависит от целевой платформы, типа ПО. Для обычного десктопа не помешает python и java (хотя java уже необязательно - зная C++ довольно быстро вольёшься, ежели понадобится).

Если нужно просто расширить кругозор и подеформировать мозги - функциональные языки.

Ещё посоветую подумать об Lua, как довольно неплохом кандидате для встраивания в программу возможностей программировать некритичные для неё вещи без перекомпиляции (скриптинг, чёрт возьми). Это довольно интересный опыт, будешь вместе с плюсами изучать Lua. Можно посмотреть и на другие встраиваемые языки, жаль только не вспомню сразу таких.

И не забывай глянуть как-нибудь на C. Поймёшь, откуда растут ноги у некоторых несовершенств C++.

jeuta ★★★★
()

pythlon

не неслышал

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

Ага, очень практично. «Хотите работать в нашей программе - купите мак!»

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

ms-dos32
()
Ответ на: комментарий от djambeyshik

Не ну я серьёзно. И не только польский поднимет она))

А так хоть де переночивать будет в Польше. А то в машине неудобно и под утро холодно))

Licwin ★★★★★
() автор топика
Ответ на: комментарий от ms-dos32

практично с точки зрения перспективы нормально зарабатывать

amazpyel ★★★
()
Ответ на: комментарий от ms-dos32

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

Или вот, например, сферический говнокод в вакууме: http://pastebin.com/NhQLvEjh При взгляде на это становится грустно.

dmfd
()
Ответ на: haskell от Licwin

Сразу на хаскель, имхо, будет сложно. По крайней мере я до баловства с Erlang в нём мало что понял. Я уже предлагал Erlang как относительно простое введение в функциональное программирование.

И да, правильно говорят, нужно осваивать парадигмы, а не языки.

dmfd
()

Agda, Isabelle, Epigram, Coq - выбирай на вкус!

jtootf ★★★★★
()

Все мы слышали, что есть Хаскел. Все мы знаем, что он крут. Крут настолько, что многие его даже боятся.

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

Так какого черта мы пишем на чем-то другом?

Мне кажется, мы просто ссым!

Почему? Чем мы себя обманываем? Почему боимся «рисковать», когда риск заключается как раз в неиспользовании Хаскела?

Лично я сыт по горло от собственных же отмазок. Проведя анализ ВСЕХ своих проектов, сделанных за последние 9 лет, я пришел к выводу, что ВСЕ они (кроме драйверов и прошивок микроконтроллеров) могли бы быть сделаны на Хаскеле.

Но это не самое страшное. Самое страшное — это сколько времени было потеряно на низкоуровневые языки.

В проектах, написанных на C++, можно было бы сэкономить 30-40% времени разработки (а при наличии готовых библиотек, еще больше). Страшно вспомнить, сколько я их отлаживал, и, все равно, раз в месяц программа таки падала.

В проектах, написанных на C++, питоне и окемле, можно было бы срезать до 20-25% времени, только за счет отказа от С++ и питона. Переход на Хаскел дал бы еще минимум 10%.

Кстати, запомните — C++ и питон нужны только для того, чтобы подняться уровнем выше C. Если вы уже используете более высокоуровневый язык (окемл или хаскел), то за использование чего-либо, кроме C для самых критичных мест, надо сильно бить себя по рукам — вы просто тратите время зря. Все, что выше C надо писать на Хаскеле, а не С++.

Даже учтя, что последние 9 лет я не только работал, но еще и ходил в техникум и институт, все равно я потерял минимум 1.5 года жизни из-за ничем не оправданного применения С++ (и еще пару месяцев из-за питона). Я идиот. Не повторяйте моей ошибки, и не ссыте применять то, что действительно удобно, приятно и позволяет решать задачу, а не проблемы.

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

А пока, если вам дорога ваша жизнь, и не хочется тратить ее попусту, используйте Хаскел. Точка.

PS для менеджеров: вам дороги сроки сдачи проекта? Уже догадались, что надо использовать, а чему сказать нет?

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

Все мы знаем, что программы на Хаскеле короче и быстрее пишутся.

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

Raving_Zealot ★★
()
Ответ на: java от Licwin

нене, яву рановато... вот ближе к зиме)

Ява наиболее близка к С++ же

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

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

Найти работу программистом

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

В смысле задача такой может быть. Я уже работаю программистом.

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

Ява наиболее близка к С++ же

Что? Какой из этих языков вы знаете, чтобы утверждать такое? Почитаете что ли отца C++ и то, что он пишет о «похожести» с Джавой.

p.s. Вот вы Java пишете как Ява. А джаз вы пишете как яззззъ?

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

Ну и фанатизм.

ТС, нет смысла учить технологии ради технологий. Ставь себе задачи, пусть и смешные с виду, и решай их с помощью технологии. Будильник на Android? Ок, учим немного Джаву, Android SDK. Сделал? Умница, теперь добавь пару финтифлюшек в в виде Push-уведомлений и еще чего-то. Собственный блог? RoR/Django/etc. После добавляем все, что душа пожелает.

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

Что? Какой из этих языков вы знаете, чтобы утверждать такое?

В яве за основы брался плюсовый синтаксис, нужно переучиваться на другой язык и платформу, да, другие правила и приемы. Но фигурные скобки те же, приваты/паблики есть, инты, даблы ну и прочее, надеюсь понятно о чем я. Изучить синтаксис явы человеку знакомому с с++, как и наоборот будет проще, чем сделать это с нуля

Dudraug ★★★★★
()

Python очень быстро осваивается и сейчас весьма и весьма популярен. С нуля до уровня написания простых GUI-приложений python можно освоить за несколько дней.

Ruby - это если потом планируешь кодить web-приложения. Ruby on Rails весьма популярная платформа и довольно быстро развивается.

Objtctive-C - на мой взгляд намного лучше C++ с точки зрения реализации парадигмы ООП (smalltalk'овский вариант). Да и в мире Apple это основной инструмент программирования приложений.

Что касается C++, то сейчас C++ быстрыми темпами теряет аудиторию. Во многих областях его заменяет Java, C#, Python и пр. Так что серьёзно изучать его до мелочей - не рекомендую, так как язык очень сложный в полном объёме, компиляторы в ньюансах сильно различаются, да и, насколько мне известно, до недавнего времени не было компилятора, который бы поддерживал весь стандарт в полном объёме.

Универсальный совет по автоматизации своей деятельности: изучить awk, grep, sed, ed, diff, patch и shell. При их знании на среднем уровне сможешь весьма эффективно автоматизировать свою работу (особенно работу со множествами текстовых файлов). Ещё рекомендую ознакомиться с системами контроля версий (например git), так как вне зависимости от изучаемых в дальнейшем ЯП, системы контроля версий будут полезны в любом случае.

А вообще, сначала лучше определиться с областью будущей специализации (DB, Web, системщина и пр.) и уже изучать инструментарий для конкретной области. Это будет правильнее, чем изучать ЯП просто так. Так как ЯП очень много и для каждой области применять лучше определённые, наиболее подходящие ЯП. Также неплохо знать основные парадигмы программирования (ООП, функциональную и императивную) - эти знания инвариантны по отношению к ЯП.

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

По поводу C++ согласен, но не согласен по поводу навязывания для всего и вся Haskell.

Я, например, пишу системный модуль для управления железкой. Модуль для линукс ядра с RT-патчем. И каким местом я тут буду использовать Haskell? Разве что только как мета-компилятор, чтобы из DSL (это ещё и DSL нужно разработать под задачу) потом выплюнуть сишный код. Больше никаких вариантов решения подобных задач на хаскеле я не вижу.

Насчёт питона - да, вещь убогая (особенно ВМ). Но очень популярен и под него есть огромное количество всевозможных библиотек и биндингов. Если стоит задача наклепать простенькое GUI-приложение, то почему бы не воспользоваться питоном и pyGTK? Уж не больше чем на хаскеле будут затраты времени.

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

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

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

Я, например, пишу системный модуль для управления железкой. Модуль для линукс ядра с RT-патчем. И каким местом я тут буду использовать Haskell?

Ты всегда всё читаешь выборочно? Если да - то твои советы очень ценные.

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

Мои советы по крайней мере адекватны уровню знаний спрашивающего и самой постановке вопроса.

Сходу назову ещё кучу областей не относящихся к системщине, где хаскель плохо или совсем никак не впишется: видеокодеки (прототип в R с анализом модели, а потом в C), всевозможная обработка больших массивов данных (R будет намного адекватнее хаскеля в этой области), всевозможное моделирование на сетках (Octave, R, Scilab), приложения с GUI с большим количеством анимации, видео и пр.

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

Как пример реальной задачи из сложной для хаскеля области можно взять задачу тайлового оконного менеджера и сравнить решение на хаскеле (http://xmonad.org/) и решение на схеме, например, (https://github.com/gravicappa/gravicappa-wm). Посмотрите на объёмы кода, на читаемость кода и пр. Ещё интереснее если эти два оконных менеджера использовать. Разница в используемой памяти, функционале и возможности изменения и расширения просто огромна. WM на схеме можно переконфигурировать и программировать на лету, тут хаскель просто отдыхает.

vasil_sd
()

На данный момент учу С++... Впринципе идет не так уж и трудно)

пока не поймёшь, что C++ не так уж и легко, _не_надо_«осваивать»_другой_язык_ .

Можешь считать что знаешь что-то (тот-же C++), если понимаешь ограничение и недостатки оного не по тредам с ЛОР`а, а лично сам.

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

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

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

Сравнивать языки по синтаксису — это сильно, да.

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

Dudraug ★★★★★
()

<troll>haskell однозначно!</troll> python потому что няка.

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

Какая разница откуда они взяли синтаксис? Вопрос в том, что ОП сказал, что «нене, яву рановато... вот ближе к зиме)». А яву как раз можно выучить после плюсов. А вот как раз питон намного дальше от плюсов, чем ява.

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

Мои советы по крайней мере адекватны уровню знаний спрашивающего и самой постановке вопроса.

На основе каких логических рассуждений ты пришел к выводу адекватности твоих советов?

Позволь открыть тебе тайну — такого рода самооценка (об адекватности) характерна среди почти всех людей без исключении: от журналистов и политиков до петухов на зоне и убийц. Редким исключением из правил являются инженеры: они способны строить цепочки логических рассуждений и пытаются базироваться на фактах, а не на переживаниях своего внутренного мира. С тем же успехом каким ты рассуждаешь о свое адекватности, ты мог бы назвать себя Королем Бразилии, Отцом перуанской демократии или же Защитником обездоленных в Монако.

А теперь, мон ами, перечитай мой пост (VI-ой абзац, II предложение), свой ответ на него (II абзац, I, II и III предложение) и извинись перед анонимусом за свою глупость.

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

всевозможная обработка больших массивов данных (R будет намного адекватнее хаскеля в этой области)

Ёшкин кот! Да вы просто жертва маркетинговых бредней. Может вы всё же выйдите из своего танка, узнаете на чем пишут обработку больших массивов данных в Deutsche Bank, Morgan Stanley и в других гигантах отрасли а потом уже будете свой недоязык для экономистов тут пиарить.

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

Так изучить будет проще же.

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

korvin_ ★★★★★
()
Ответ на: Erlang от Licwin

Не слушай падонков. Они плохого насоветуют. Забудь про функциональщину, она бесполезна и даже вредна.

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

У каждого есть право на невнимательность и глупость и за свои права никто извиняться не обязан. :)

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

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

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