Re[3]: какой ЯП учить дальше?
От: Sharov Россия  
Дата: 08.12.14 11:11
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, kaa.python, Вы писали:


X>ну да. посмотрел на кол-во предложений для Haskell разработчиков...печалько =)


Да эти предложения замануха для гиков. Все равно потом придется на яве писать.
Кодом людям нужно помогать!
Re[4]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 11:21
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Да эти предложения замануха для гиков.

=)

S>Все равно потом придется на яве писать.

до сих пор же не приходилось.
Слово "совпадение" появилось после падения сов.
Re: какой ЯП учить дальше?
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 08.12.14 14:41
Оценка:
Здравствуйте, niXman, Вы писали:

X>как быть?

Питон стоит хотя бы освоить т.к. связка С++ и питон очень часто используется. Плюс питон удобен для быстрого прототипирования.
Из пары Haskell/Rust я бы выбрал первый.
Sic luceat lux!
Re[2]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 14:46
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Питон стоит хотя бы освоить т.к. связка С++ и питон очень часто используется. Плюс питон удобен для быстрого прототипирования.

пайтон я вроде знаю, не то чтоб хорошо, но пишу...

K>Из пары Haskell/Rust я бы выбрал первый.

ясно.
Слово "совпадение" появилось после падения сов.
Re[9]: какой ЯП учить дальше?
От: jazzer Россия Skype: enerjazzer
Дата: 08.12.14 15:49
Оценка: +1
Здравствуйте, niXman, Вы писали:

M>>А в качестве прямой замены С++ — только Rust можно рассматривать. Но это перманентная борьба с глюками свежего софта.

X>а Haskell чем не подходит?

по-моему, ты уже принял решение
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[10]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 15:53
Оценка:
Здравствуйте, jazzer, Вы писали:

J>по-моему, ты уже принял решение

еще нет, колеблюсь...

еще раз посмотрел на Go. нет, какой-то не универсальный ЯП, и с большой склонностью под веб-сервисы, ИМХО...
Слово "совпадение" появилось после падения сов.
Re[9]: какой ЯП учить дальше?
От: Mazay Россия  
Дата: 08.12.14 17:47
Оценка: 15 (1) +1
Здравствуйте, niXman, Вы писали:


M>>А, ну так компиляция С++ тоже небыстрая.

X>код компилируется меньше времени, чем выполняется программа
Ну так идея в том, чтобы писать критичный по производительности код на С++, а остальное на питоне.

M>>Инструментов там — один интерпретатор.

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

X>в общем — пайтон не вариант.

Дело твоё. Моё дело предложить

M>>А в качестве прямой замены С++ — только Rust можно рассматривать. Но это перманентная борьба с глюками свежего софта.

X>а Haskell чем не подходит?
На основании исследований 4-хлетней давности у меня сложилось следующее представление о декларативных языках, и о Хаскеле в частности.
Декларативность языка позволяет в более явной форме выразить намерения разработчика. То есть описать ЧТО он хочет сделать, в то время как императивные языки заточены под ответ на вопрос КАК. Декларативный подход таким образом даёт больше возможностей для оптимизатора компилятора. В теории, это должно помочь избежать недопонимания между программистом и компилятором и вопросов типа Will It Optimize?. На практике же оптимизатор не достаточно хорош. Например он не был (4 года назад) в состоянии делать маленькие изменения матриц без перекопирования самих матриц. Ещё функциональные языки иногда могут добавить log(N) к сложности из-за каких-то ограничений на структуры данных (которые всегда списки). Это всё решаемо, если писать критические участки императивном стиле, но в Хаскеле он ужасен (хеллоу, монадочки!).

Мне нравится связка С/С++ тем, что если компилятор что-то не оптимизирует (а С++ компиляторы сегодня чертовски хороши), то ему всегда можно помочь. Где-то слегка, где-то сильно, но это всегда делается естественно — специализацией шаблона, ручной мемоизацией, Duff Device-ом, сейчас constexpr есть. А в Хаскеле (как мне показалось 4 года назад) сразу монады. В теории монады нужны не часто, но даже это "не часто" бесит — в С++ такие вещи на порядок яснее выражаются.

В общем после С++ меня сильно бесила неоптимальность кода, генерируемого из программ на Хаскеле. Шибко тупой компилятор у них был, и я не слышал про какие-то прорывы в этой области.
Главное гармония ...
Re[9]: какой ЯП учить дальше?
От: Mazay Россия  
Дата: 08.12.14 17:52
Оценка:
Здравствуйте, niXman, Вы писали:

X>а Haskell чем не подходит?


Если будешь тестировать "умность" компилятора Хаскеля, вот тебе хороший бенчмарк для него: Алгоритм реализации модели Изинга методом Монте-Карло на компьютере. Если хотя бы в 2 раза медленнее С++ будет — это ОЧЕНЬ хорошо.
Главное гармония ...
Re[5]: какой ЯП учить дальше?
От: kaa.python Сингапур http://sysdev.me/
Дата: 08.12.14 23:58
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Ну вот для этого и надо изучать другие языки.


Если именно с этой стороны подходить к вопросу ТС, то лучше брать Haskell. Все же Rust — это такой очень продвинутый Си с классами

J>LISP уродлив, а Хаскелл клевый


А по мне так на оборот, LISP очень даже красив
Re[10]: какой ЯП учить дальше?
От: jazzer Россия Skype: enerjazzer
Дата: 09.12.14 03:18
Оценка:
Здравствуйте, Mazay, Вы писали:

M>Здравствуйте, niXman, Вы писали:


X>>а Haskell чем не подходит?


M>Если будешь тестировать "умность" компилятора Хаскеля, вот тебе хороший бенчмарк для него: Алгоритм реализации модели Изинга методом Монте-Карло на компьютере. Если хотя бы в 2 раза медленнее С++ будет — это ОЧЕНЬ хорошо.


Ну программеры не всё ж расчеты пишут
Даже у тормозных языков есть очень немаленькая область применения, если они предоставят большую выразительность (perl, например)
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[7]: какой ЯП учить дальше?
От: chaotic-good  
Дата: 09.12.14 05:53
Оценка: +1
M>>С моей колокольни кажется что питон применим везде, где применим С++ и наоборот.
X>не холивара ради, но: 1)пайтон тормозной донемогу, 2)придется изучать новые инструменты.

Он не тормозной, просто ты не умеешь его готовить.
В питоне есть экосистема для научных вычислений — scipy, туда входят такие библиотеки как numpy, matplotlib, pandas и тд. Так вот, на том же numpy можно писать код, который будет иметь примерно 90% от производительности аналогичного кода на Си. Если ты пишешь всякую числодробильню, то python не тормоз.Тоже касается pandas, чтобы написать на С++ код, который я напишу на python+pandas за пол часа у тебя уйдет несколько дней. В общем, питон постепенно становится языком программирования для т.н. data intensive приложений, всякий data science, machine learning, научные вычисления. Если ты хочешь заниматься чем-нибудь подобным — не нужен ни хаскель ни раст, нужен питон (ну или R).
Re: какой ЯП учить дальше?
От: chaotic-good  
Дата: 09.12.14 06:26
Оценка: 1 (1) -1
Здравствуйте, niXman, Вы писали:

X>приветствую!


X>о себе:

X>основной ЯП — С++. опыт — более 7ми лет. опыт коммерческой разработки — более семи лет. Си, так же, знаю весьма хорошо.
X>основные направления — всеобразные сервера и протоколы прикладного уровня, MMO проекты(сервера/отчасти_игровая_логика/RMI/IPC/дублирование_серверов_и_горячая_подмена/репликация), скоростной трейдинг, игровые боты, етц.

1) Выучи нормально С++ для начала, а то у тебя forum driven development во все поля!
2) Можно почитать старика Лэйкоса (или Лейкоса) и понять что все это современное темплейтметопрограмминговое говно — говно.
3) Если ты не можешь сходу сказать каким алгоритмом лучше сортировать почти отсортированные данные а каким — данные, сравнение которых дорого стоит, то тут можно наконец изучить то, без чего ни один нормальный программист жить не может — классические алгоритмы и стркутуры данных.
4) Можно изучить статистику, ML, NLP, какую-нибудь еще интересную предметную область. Судя по всему, твои программы умеют брать байты в одном месте и класть их в другое. Это не круто, они могли бы например понимать что нарисовано на картинке, или понимать что в сеть вторгся злоумышленник, или уметь распознавать рукописный текст или еще что-нибудь в этом духе. А сервера все равно каждый писать может. В общем, программист с широким кругозором стоит десятка чуваков, умеющих ваять tcp сервера.
5) Можно осилить js и фронтенд, современный браузер экстремально интересная штука с невероятными возможностями и у этих знаний будет очень много применений, например ты сможешь делать dashboard-ы для своих серверов, чтобы можно было сунуться браузером в 127.0.0.1:8080, открыть страничку и поконфигурировать или помониторить локально запущенный сервер.
6) Еще пара идей: Агнер Фог, Computer systems: a programmer's perspective, CUDA и OpenCL (да и вообще вся векторная фигня), облака, БД (есть даже книги, описывающие как работают некоторые open source БД в подробностях), статистика (ты вообще никто если ее не знаешь).
7) Тут можно наконец расслабиться и взяться за изучение какого-нибудь нового языка программирования, наверное, если я ничего не забыл. Клевые системы типов, теория категорий и все такое. Те, кто начинает осваивать этот список с 7-го пункта делают все, мягко говоря, неправильно. Если тебе интересен 7-й пункт, а не интересно все остальное, то наверное следует заняться чем-нибудь еще, но тут я не советчик.

X>вот встал вопрос о том, что ЯП, которые я могу использовать в своей работе, есть сильно проще/надежнее/"человечнее", типа Haskell и Rust. второй, наверняка, еще несколько лет будет сильно меняться. потому, не знаю, стОит ли его изучать в надежде применить уже завтра. Haskell, вроде как постабильнее, и, вроде как, его уже сейчас используют в продакшне.


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

Rust говно нежизнеспособное. Будет языком для энтузиастов в лучшем случае. Lifetimes это точно не для mainstream программирования, библиотек нет, интструментов нет, safety нет (один хрен любая нетривиальная структура данных использует внутри себя кучу небезопасного кода). Worse is better все еще рулит в программировании.
Re[5]: какой ЯП учить дальше?
От: uncommon Марс  
Дата: 09.12.14 06:31
Оценка: :)
Здравствуйте, jazzer, Вы писали:

J>LISP уродлив, а Хаскелл клевый


Haskell — теоретическая фигня. А Lisp — нашевсё. Особенно Clojure. Он весь такой тёплый и ламповый.
Re[2]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 09.12.14 06:43
Оценка:
Здравствуйте, chaotic-good, Вы писали:

ник сменил?

CG>1) Выучи нормально С++ для начала, а то у тебя forum driven development во все поля!

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

CG>2) Можно почитать старика Лэйкоса (или Лейкоса) и понять что все это современное темплейтметопрограмминговое говно — говно.

CG>3) Если ты не можешь сходу сказать каким алгоритмом лучше сортировать почти отсортированные данные а каким — данные, сравнение которых дорого стоит, то тут можно наконец изучить то, без чего ни один нормальный программист жить не может — классические алгоритмы и стркутуры данных.
CG>4) Можно изучить статистику, ML, NLP, какую-нибудь еще интересную предметную область. Судя по всему, твои программы умеют брать байты в одном месте и класть их в другое. Это не круто, они могли бы например понимать что нарисовано на картинке, или понимать что в сеть вторгся злоумышленник, или уметь распознавать рукописный текст или еще что-нибудь в этом духе. А сервера все равно каждый писать может. В общем, программист с широким кругозором стоит десятка чуваков, умеющих ваять tcp сервера.
откуда такие выводы... %)

CG>5) Можно осилить js и фронтенд, современный браузер экстремально интересная штука с невероятными возможностями и у этих знаний будет очень много применений, например ты сможешь делать dashboard-ы для своих серверов, чтобы можно было сунуться браузером в 127.0.0.1:8080, открыть страничку и поконфигурировать или помониторить локально запущенный сервер.

CG>6) Еще пара идей: Агнер Фог, Computer systems: a programmer's perspective, CUDA и OpenCL (да и вообще вся векторная фигня), облака, БД (есть даже книги, описывающие как работают некоторые open source БД в подробностях), статистика (ты вообще никто если ее не знаешь).
CG>7) Тут можно наконец расслабиться и взяться за изучение какого-нибудь нового языка программирования, наверное, если я ничего не забыл. Клевые системы типов, теория категорий и все такое. Те, кто начинает осваивать этот список с 7-го пункта делают все, мягко говоря, неправильно. Если тебе интересен 7-й пункт, а не интересно все остальное, то наверное следует заняться чем-нибудь еще, но тут я не советчик.

но в общем — посыл понятен.
Слово "совпадение" появилось после падения сов.
Re[6]: какой ЯП учить дальше?
От: jazzer Россия Skype: enerjazzer
Дата: 09.12.14 07:21
Оценка: :)
Здравствуйте, uncommon, Вы писали:

U>Здравствуйте, jazzer, Вы писали:


J>>LISP уродлив, а Хаскелл клевый


U>Haskell — теоретическая фигня. А Lisp — нашевсё. Особенно Clojure. Он весь такой тёплый и ламповый.


фускобкифу
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: какой ЯП учить дальше?
От: Grienders Земля  
Дата: 09.12.14 07:57
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, niXman, Вы писали:


X>>вот встал вопрос о том, что ЯП, которые я могу использовать в своей работе, есть сильно проще/надежнее/"человечнее", типа Haskell и Rust. второй, наверняка, еще несколько лет будет сильно меняться. потому, не знаю, стОит ли его изучать в надежде применить уже завтра. Haskell, вроде как постабильнее, и, вроде как, его уже сейчас используют в продакшне.


KP>А каким образом у тебя Haskell и проще/человечнее в одном ряду оказались?

да таким же, как банк в Сингапуре, который нанимает Haskell программистов.
Re[3]: какой ЯП учить дальше?
От: kaa.python Сингапур http://sysdev.me/
Дата: 09.12.14 09:33
Оценка:
Здравствуйте, Grienders, Вы писали:

KP>>А каким образом у тебя Haskell и проще/человечнее в одном ряду оказались?

G>да таким же, как банк в Сингапуре, который нанимает Haskell программистов.

Ну написал кто-то в одном единственном банке в Сингапуре какую-то систему на Haskell и теперь страдает с поддержкой, что ж с того? Есть вакансии на Scala, Clojure и куче другой экзотики, только вроде как для банков знание языка не является определяющим при выборе персонала и через простое знание Haskell или еще чего-то такого ты в сингапурский банк врятли попадешь. И в то же время вакансий на тех же на порядки больше, так что к чему ты это написал совершенно не очевидно.
Re[4]: какой ЯП учить дальше?
От: jazzer Россия Skype: enerjazzer
Дата: 09.12.14 09:51
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, Grienders, Вы писали:


KP>>>А каким образом у тебя Haskell и проще/человечнее в одном ряду оказались?

G>>да таким же, как банк в Сингапуре, который нанимает Haskell программистов.

KP>Ну написал кто-то в одном единственном банке в Сингапуре какую-то систему на Haskell и теперь страдает с поддержкой, что ж с того?


Да вроде не страдают, вполне довольны
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[5]: какой ЯП учить дальше?
От: kaa.python Сингапур http://sysdev.me/
Дата: 09.12.14 10:12
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Да вроде не страдают, вполне довольны


Тот кто написал — безусловно. Веселье начнется тогда, когда он решит уйти
Re[6]: какой ЯП учить дальше?
От: jazzer Россия Skype: enerjazzer
Дата: 09.12.14 10:33
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, jazzer, Вы писали:


J>>Да вроде не страдают, вполне довольны


KP>Тот кто написал — безусловно. Веселье начнется тогда, когда он решит уйти


Там большой проект и большая команда, все нормально
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.