какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 07.12.14 18:36
Оценка:
приветствую!

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

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

как быть?

спасибо.
Слово "совпадение" появилось после падения сов.
Re: какой ЯП учить дальше?
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 07.12.14 20:15
Оценка:
Здравствуйте, niXman, Вы писали:

X>основной ЯП — С++. опыт — более 7ми лет. опыт коммерческой разработки — более семи лет. Си, так же, знаю весьма хорошо.

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

А может ещё больше поднажать на С++, для него различных библиотек непаханное поле. У меня тоже основной язык С++, и пока что пришёл к выводу, что самое большое заблуждение это поиск волшебного инструмента вместо улучшения навыка владения существующим. Если вдуматься, при всём удобстве или неудобстве какого-либо языка затраты на сам процесс кодирования ничтожны. Хотя конечный продукт это код, вовсе не он отнимает основное время, особенно если пытаться улучшать общее качество системы.
Re: какой ЯП учить дальше?
От: vsb Казахстан  
Дата: 07.12.14 20:40
Оценка:
Многие Python используют для быстрого прототипирования или в качестве высокоуровневого "клея" между низкоуровневыми компонентами.
Re[2]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 07:27
Оценка:
Здравствуйте, velkin, Вы писали:

V>А может ещё больше поднажать на С++, для него различных библиотек непаханное поле. У меня тоже основной язык С++, и пока что пришёл к выводу, что самое большое заблуждение это поиск волшебного инструмента вместо улучшения навыка владения существующим. Если вдуматься, при всём удобстве или неудобстве какого-либо языка затраты на сам процесс кодирования ничтожны. Хотя конечный продукт это код, вовсе не он отнимает основное время, особенно если пытаться улучшать общее качество системы.


дело не в библиотеках, а в самом языке.
Haskell и Rust, к примеру, намного безопасней плюсов, и меньше шансов "выстрелить себе в ногу".
Слово "совпадение" появилось после падения сов.
Re[2]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 07:28
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Многие Python используют для быстрого прототипирования или в качестве высокоуровневого "клея" между низкоуровневыми компонентами.

пайтон — не вариант. я говорю о компилируемых в нативный код языках.
Слово "совпадение" появилось после падения сов.
Re: какой ЯП учить дальше?
От: kaa.python Сингапур http://sysdev.me/
Дата: 08.12.14 07:52
Оценка:
Здравствуйте, niXman, Вы писали:

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


А каким образом у тебя Haskell и проще/человечнее в одном ряду оказались? Это же реально чудовище для математиков и если если проект — это нечто разрабатываемое большой командой, то о такой экзотике лучше просто сразу забыть.
Вообще, год назад я бы уверенно ответил на этот вопрос "конечно Rust". При этом смотря на него сейчас и не могу сказать что вижу какие-то серьезное превосходство над C++17, к примеру. Хотя стабильным он станет и раньше чем через несколько лет, но вот его целесообразность на фоне того, что уже имеются серьезные знания C++ и скоро появится поддержка C++17 в основных компиляторах выглядит сомнительно. Тут простая арифметика: если ты залезешь в реальные, боевые проекты на Rust то увидишь повсеместное использование небезопасных конструкций по соображениям скорости. Но при таком подходе C++ получается ничем не хуже для нового проекта.

Поэтому, лучше потратить время на углубленное изучение C++, и продолжать им пользоваться, нежели тратить время на новые языки. Если бы опыта в C++ небыло бы, то, наверное, Rust показался бы предпочтительнее.
Re[2]: какой ЯП учить дальше?
От: jazzer Россия Skype: enerjazzer
Дата: 08.12.14 08:14
Оценка: +2
Здравствуйте, kaa.python, Вы писали:

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


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


KP>А каким образом у тебя Haskell и проще/человечнее в одном ряду оказались? Это же реально чудовище для математиков и если если проект — это нечто разрабатываемое большой командой, то о такой экзотике лучше просто сразу забыть.


Ну он даст несколько другую перспективу на программирование в целом.
Я могу сказать, что мой стиль программирования на С++ слегка изменился после того, как я поизучал 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[2]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 08:14
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>А каким образом у тебя Haskell и проще/человечнее в одном ряду оказались? Это же реально чудовище для математиков и если если проект — это нечто разрабатываемое большой командой, то о такой экзотике лучше просто сразу забыть.

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

KP>Вообще, год назад я бы уверенно ответил на этот вопрос "конечно Rust". При этом смотря на него сейчас и не могу сказать что вижу какие-то серьезное превосходство над C++17, к примеру. Хотя стабильным он станет и раньше чем через несколько лет, но вот его целесообразность на фоне того, что уже имеются серьезные знания C++ и скоро появится поддержка C++17 в основных компиляторах выглядит сомнительно. Тут простая арифметика: если ты залезешь в реальные, боевые проекты на Rust то увидишь повсеместное использование небезопасных конструкций по соображениям скорости. Но при таком подходе C++ получается ничем не хуже для нового проекта.


KP>Поэтому, лучше потратить время на углубленное изучение C++, и продолжать им пользоваться, нежели тратить время на новые языки. Если бы опыта в C++ небыло бы, то, наверное, Rust показался бы предпочтительнее.


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

мне в С++ не хватает поддержки умных указателей на уровне ЯП, и поддержки многопоточности.
Слово "совпадение" появилось после падения сов.
Re[3]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 08:15
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Я могу сказать, что мой стиль программирования на С++ слегка изменился после того, как я поизучал Haskell.

в функциональщину потянуло?
Слово "совпадение" появилось после падения сов.
Re[3]: какой ЯП учить дальше?
От: kaa.python Сингапур http://sysdev.me/
Дата: 08.12.14 08:21
Оценка:
Здравствуйте, niXman, Вы писали:

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


В теории — да. А на практике будет "как обычно". В результате у тебя новый проект написанный на Rust (а на нем может быть написан только новый проект) мало чем будет превосходить такой же новый проект написанный на C++1Y.

X>мне в С++ не хватает поддержки умных указателей на уровне ЯП, и поддержки многопоточности.


В Rust они тоже не на уровне языка, а вынесены в отдельную библиотеку, как и многопоточность. Но это так, к слову.
Re[3]: какой ЯП учить дальше?
От: kaa.python Сингапур http://sysdev.me/
Дата: 08.12.14 08:24
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Ну он даст несколько другую перспективу на программирование в целом.

J>Я могу сказать, что мой стиль программирования на С++ слегка изменился после того, как я поизучал Haskell.

Так это любая новая парадигма такую же роль окажет. Я ощутил тоже самое после того как поизучал OCaml, хотя в трезвом уме и здравой памяти не затищал бы этот язык в продакшн.
Мне кажется, еще сильнее на стиль должен какой-нибудь LISP повлиять.
Re[4]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 08:27
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>В теории — да. А на практике будет "как обычно". В результате у тебя новый проект написанный на Rust (а на нем может быть написан только новый проект) мало чем будет превосходить такой же новый проект написанный на C++1Y.

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

KP>В Rust они тоже не на уровне языка, а вынесены в отдельную библиотеку, как и многопоточность. Но это так, к слову.

правда? ну ладно...
Слово "совпадение" появилось после падения сов.
Re[4]: какой ЯП учить дальше?
От: jazzer Россия Skype: enerjazzer
Дата: 08.12.14 08:31
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


J>>Ну он даст несколько другую перспективу на программирование в целом.

J>>Я могу сказать, что мой стиль программирования на С++ слегка изменился после того, как я поизучал Haskell.

KP>Так это любая новая парадигма такую же роль окажет. Я ощутил тоже самое после того как поизучал OCaml, хотя в трезвом уме и здравой памяти не затищал бы этот язык в продакшн.


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

KP>Мне кажется, еще сильнее на стиль должен какой-нибудь LISP повлиять.


LISP уродлив, а Хаскелл клевый
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[4]: какой ЯП учить дальше?
От: jazzer Россия Skype: enerjazzer
Дата: 08.12.14 08:32
Оценка:
Здравствуйте, niXman, Вы писали:

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


J>>Я могу сказать, что мой стиль программирования на С++ слегка изменился после того, как я поизучал Haskell.

X>в функциональщину потянуло?

не то что потянуло, оно всегда было (помню древний спор на тему STL тут).
Просто стало более осмысленным и структурированным.
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[3]: какой ЯП учить дальше?
От: Mazay Россия  
Дата: 08.12.14 09:03
Оценка:
Здравствуйте, niXman, Вы писали:

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


vsb>>Многие Python используют для быстрого прототипирования или в качестве высокоуровневого "клея" между низкоуровневыми компонентами.

X>пайтон — не вариант. я говорю о компилируемых в нативный код языках.

Мне в последнее время понравилось использовать питон для генерации кода на С++. Лихо получается делать развёртки циклов вручную, ветвистые if-ы и switch-и в матрицы превращать. Не макросы Немерла конечно, но вполне эффективно. Входные данные легко поднимать из внешних источников — в питоне удобная сеть, простой файловый IO, куча парсеров.
Главное гармония ...
Re[4]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 09:08
Оценка:
Здравствуйте, Mazay, Вы писали:

M>Мне в последнее время понравилось использовать питон для генерации кода на С++. Лихо получается делать развёртки циклов вручную, ветвистые if-ы и switch-и в матрицы превращать. Не макросы Немерла конечно, но вполне эффективно. Входные данные легко поднимать из внешних источников — в питоне удобная сеть, простой файловый IO, куча парсеров.


в таком случае, мне не то чтоб учить другой ЯП, мне придется и специализацию менять, наверное...
Слово "совпадение" появилось после падения сов.
Re[5]: какой ЯП учить дальше?
От: Mazay Россия  
Дата: 08.12.14 09:35
Оценка:
Здравствуйте, niXman, Вы писали:

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


M>>Мне в последнее время понравилось использовать питон для генерации кода на С++. Лихо получается делать развёртки циклов вручную, ветвистые if-ы и switch-и в матрицы превращать. Не макросы Немерла конечно, но вполне эффективно. Входные данные легко поднимать из внешних источников — в питоне удобная сеть, простой файловый IO, куча парсеров.


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


Почему? А у тебя какая специализация?
С моей колокольни кажется что питон применим везде, где применим С++ и наоборот.
Главное гармония ...
Re[6]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 09:46
Оценка:
Здравствуйте, Mazay, Вы писали:

M>Почему? А у тебя какая специализация?

в топике описано.

M>С моей колокольни кажется что питон применим везде, где применим С++ и наоборот.

не холивара ради, но: 1)пайтон тормозной донемогу, 2)придется изучать новые инструменты.
Слово "совпадение" появилось после падения сов.
Re[7]: какой ЯП учить дальше?
От: Mazay Россия  
Дата: 08.12.14 10:26
Оценка:
Здравствуйте, niXman, Вы писали:

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


M>>Почему? А у тебя какая специализация?

X>в топике описано.

M>>С моей колокольни кажется что питон применим везде, где применим С++ и наоборот.

X>не холивара ради, но: 1)пайтон тормозной донемогу, 2)придется изучать новые инструменты.

А, ну так компиляция С++ тоже небыстрая. Питон же не прямая замена С++, а дополнение для нетребовательных к производительности, муторных задач: кодогенерация, неспешный ввод/вывод, парсинг входных данных, экспорт результатов и т.п.

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

А в качестве прямой замены С++ — только Rust можно рассматривать. Но это перманентная борьба с глюками свежего софта.
Главное гармония ...
Re[8]: какой ЯП учить дальше?
От: niXman Ниоткуда https://github.com/niXman
Дата: 08.12.14 10:30
Оценка:
Здравствуйте, Mazay, Вы писали:

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

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

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

и куча библиотек с которыми я не знаком.

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

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

а Haskell чем не подходит?
Слово "совпадение" появилось после падения сов.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.