Выбор языка программирования
От: vit0s Австрия  
Дата: 14.07.16 13:24
Оценка:
Добрый день,

Хотелось бы услышать ваши мнения на тему выбора языка программирования, на который стоило бы переписать часть продукта.
Немного о продукте.
Старый и монструозный. Работает на винде.
Состав: 70% С++, 30% С#.
В воздухе витает мысль переписать С++ часть на что-то новое и перспективное. Продукт не содержит частей, для которых есть серьезные требования к высокой скорости работы, но если такие все же найдутся по мере переписывания, то они, я думаю, останутся на плюсах (или есть тоже что-то современное и интересное, что может похвалиться скоростью работы плюсов?).
Конечно же, это будет долгий процесс, поэтому нужно что-то такое, что хорошо жило бы и с плюсами и шарпом. Так сказать, внедрить в продукт и потом перетягивать на этот язык все больше и больше фуцнкциональности из плюсов.
У меня есть опасение, что примется решение переходить на C#, я против шарпа в целом ничего не имею, но глубоко внутри как-то скептически настроен.. Возможно, у меня просто есть желание, пользуясь такой возможностью, выучить что-то новое и тут же закрепить полученное на большой практике и поэтому я не хочу видеть С# в качестве решения данного вопроса.
Сейчас так много разных языков, но я как-то выпал из движения и провтыкал историю их появления.
Какой нравится вам?
Почему?
Какой язык вы бы выбрали в моем случае?

Напишу немного о причине переписывания, но не хотелось бы чтобы топик скатился в оффтоп.
Мы банально не можем найти С++ программистов. Фирма (кстати, большая) находится в маленьком городке в горах в Австрии и по сути тут рядом конкурентных IT работодателей нету (не у кого переманить даже), а переезжать сюда только к нам что-то мало кто хочет (из плюсовиков) — люди едут за большими деньгами в другие места. Ближайшее от нас — город Зальцбург в 50 км (минут 35 на авто). Кстати, если есть С++/С# программист, кто хочет спокойной в плане стрессов и очень активной в плане спорта и отдыха жизни, то готов ответить на все вопросы Зарплата высокая относительно (для этой местности), но небольшая абсолютно (если сравнивать с прочими Европами).
Ну и еще одна, но не главная причина — поскольку продукт старый, то это шанс вдохнуть в него новую жизнь. В офисе этот же продукт (только уже веб-решение) разрабатывается полностью с нуля на чем-то вроде Java (я даже не в курсе), но у существующих клиентов имеющийся придется еще поддерживать лет 15 минимум.
Никому не верь — и никто не обманет!
выбор языка
Re: Выбор языка программирования
От: Evgeny.Panasyuk Россия  
Дата: 14.07.16 13:40
Оценка: 19 (2)
Здравствуйте, vit0s, Вы писали:

V>Конечно же, это будет долгий процесс, поэтому нужно что-то такое, что хорошо жило бы и с плюсами и шарпом.


Для C++ есть SWIG — автоматически генерирует врапперы для C#, Java, Python, etc.

V>У меня есть опасение, что примется решение переходить на C#, я против шарпа в целом ничего не имею, но глубоко внутри как-то скептически настроен..


Если у вас и так Windows, и есть в округе C#-исты — то почему бы и нет?

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

V>Какой нравится вам?

C++14

V>Почему?


Например потому что язык дешёвых абстракций — к примеру можно использовать замыкания и т.п. не опасаясь "гигабайтов аллокаций
Автор: Sinix
Дата: 23.12.14
" и подобного.

V>Какой язык вы бы выбрали в моем случае?


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

V>Мы банально не можем найти С++ программистов. Фирма (кстати, большая) находится в маленьком городке в горах в Австрии и по сути тут рядом конкурентных IT работодателей нету (не у кого переманить даже), а переезжать сюда только к нам что-то мало кто хочет (из плюсовиков) — люди едут за большими деньгами в другие места.


Так вы предложите больше деньги — вы на переписывание больше потратите жеж. Или как вариант возьмите одного "мастера" который научит остальных.
Re[2]: Выбор языка программирования
От: vit0s Австрия  
Дата: 14.07.16 13:47
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

V>>Конечно же, это будет долгий процесс, поэтому нужно что-то такое, что хорошо жило бы и с плюсами и шарпом.

EP>Для C++ есть SWIG — автоматически генерирует врапперы для C#, Java, Python, etc.

Спасибо, посмотрю.

V>>У меня есть опасение, что примется решение переходить на C#, я против шарпа в целом ничего не имею, но глубоко внутри как-то скептически настроен..


EP>Если у вас и так Windows, и есть в округе C#-исты — то почему бы и нет?


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

V>>Какой нравится вам?

EP>C++14


V>>Почему?


EP>Например потому что язык дешёвых абстракций — к примеру можно использовать замыкания и т.п. не опасаясь "гигабайтов аллокаций
Автор: Sinix
Дата: 23.12.14
" и подобного.


V>>Какой язык вы бы выбрали в моем случае?


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

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

EP>И если переписывать — то нужно смотреть кто есть в наличии по округе — это ведь основная ваша проблема?

Хорошая идея Посмотрим.

V>>Мы банально не можем найти С++ программистов. Фирма (кстати, большая) находится в маленьком городке в горах в Австрии и по сути тут рядом конкурентных IT работодателей нету (не у кого переманить даже), а переезжать сюда только к нам что-то мало кто хочет (из плюсовиков) — люди едут за большими деньгами в другие места.

EP>Так вы предложите больше деньги — вы на переписывание больше потратите жеж.
Я бы рад предложить больше, но я просто программист и ничем не управляю (пока что). И рад был бы если бы мне больше предложили тоже
Никому не верь — и никто не обманет!
Re: Выбор языка программирования
От: v6  
Дата: 14.07.16 13:49
Оценка: +1
Здравствуйте, vit0s, Вы писали:

V>Напишу немного о причине переписывания, но не хотелось бы чтобы топик скатился в оффтоп.

V>Мы банально не можем найти С++ программистов.

Хм. Если вот это и есть основная мотивация для смены языка, то разве не будет логичным выбирать что-то распространенное, "мейнстримовое", чтобы специалистов можно было найти в вашей глуши (C#?), а не искать что-то интересное и новомодное?
Re[2]: Выбор языка программирования
От: vit0s Австрия  
Дата: 14.07.16 13:57
Оценка:
Здравствуйте, v6, Вы писали:

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


V>>Напишу немного о причине переписывания, но не хотелось бы чтобы топик скатился в оффтоп.

V>>Мы банально не можем найти С++ программистов.

v6>Хм. Если вот это и есть основная мотивация для смены языка, то разве не будет логичным выбирать что-то распространенное, "мейнстримовое", чтобы специалистов можно было найти в вашей глуши (C#?), а не искать что-то интересное и новомодное?


Да, логично выбрать тот же C#. Но если есть сейчас какой-то язык, который войдет в мейнстрим так же как С#, и если он интересный и новомодный, что многие его начинают учить или уже учат, то почему бы не взять его? Тогда, возможно, еще больше специалистов, пусть и молодых, начинающих смогут применить его тут на практике. В этом и вопрос — есть ли что-то подобное на примете сейчас.
Я не отрицаю, что может в итоге будет выбран и C#, просто хотелось бы послушать мнения о других, молодых и новомодных языках
Никому не верь — и никто не обманет!
Re: Выбор языка программирования
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.07.16 15:22
Оценка: 2 (1)
Здравствуйте, vit0s, Вы писали:

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

V>Какой нравится вам?
V>Почему?
V>Какой язык вы бы выбрали в моем случае?

Я сейчас пописываю в свободное от работы время некий проект для своего удовольствия. Я выбрал Go для основной части проекта, и C++ для GUI (потому что предполагается делать GUI на Qt, а биндинг Qt к Go сыроват).

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

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

        // Open the file
        file, err := os.Open(path)
        if err != nil {
                return nil, err
        }


Присваивание через := означает заведение новой переменной с автоматическим выводом типа, обычное присваивание записывается привычным способом.

В принципе, Go рассчитан, в первую очередь, на написание запчастей к сетевым серверам. Поэтому у него все хорошо с поддержкой UNIX'а, своеобразная модель многопоточности (встроенные легковесные потоки, которые рекомендуется использовать без стеснения) и нет неблокирующихся операций — предлагается весь ввод/вывод разбросать по потокам, а они уж сами разумным образом разползутся по имеющимся в машине процессорам и к операционной системе ввод/вывод придет эффективным для нее способом (Completion Port под вендой, epool под линухом и т.п.).

В язые встроенная сборка мусора, и от нее не избавишься. Это может несколько уменьшать эффективность программ, которые работают по принципу 1) получили запрос в новый буфер 2) обработали 3) послали ответ 4) забыли про буфер. Все забытые буфера станут добычей сборщика мусора, а если их много, то ему придется попыхтеть.

Язык компилируется в нативный код. В принципе, по имеющимся в интернете немногочисленным бенчмаркам утверждается, что Go по скорости проигрывает раза в два C++ и выигрывает раз в 10 у питона. На мой взгляд, это приемлимо.

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

Имеется встроенная связка с Си, простая и удобная. C++ можно привязать, если сделать "входные точки" совместимыми с Си. Одно предупреждение: вызов из Go в Си может привести к скрытому переключению на другую нитку операционной системы. Логически это не заметно, но занимает какое-то время. Сделано это затем, чтобы если нитка Go заблокируется неожиданно для рантайма в сишном коде, это не привело к неприятностям. В принципе, унутре у него имеется механизм быстрых вызовов и сами они, в библиотеке, им пользуются. Но он не рассчитан на использование простыми людьми, почти не документировать и т.п.

Библиотека очень богатая, и есть куча сторонних библиотек, 99% из которых — open source под весьма либеральной лицензией.

В общем, в среднем я доволен и рекомендую другим посмотреть.
Re[2]: Выбор языка программирования
От: vit0s Австрия  
Дата: 14.07.16 15:48
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Я выбрал Go

Pzz>В общем, в среднем я доволен и рекомендую другим посмотреть.

Большое спасибо за развернутый ответ. Возьму на заметку и посмотрю!
Никому не верь — и никто не обманет!
Re[3]: Выбор языка программирования
От: cures Россия cures.narod.ru
Дата: 14.07.16 16:03
Оценка:
Здравствуйте, vit0s, Вы писали:

V>Мы банально не можем найти С++ программистов. Фирма (кстати, большая) находится в маленьком городке в горах в Австрии и по сути тут рядом конкурентных IT работодателей нету (не у кого переманить даже), а переезжать сюда только к нам что-то мало кто хочет (из плюсовиков) — люди едут за большими деньгами в другие места.


А примерно сколько?

V>Я бы рад предложить больше, но я просто программист и ничем не управляю (пока что). И рад был бы если бы мне больше предложили тоже


Может и не париться тогда? Кто управляет — тот и решит.

V>Да, логично выбрать тот же C#. Но если есть сейчас какой-то язык, который войдет в мейнстрим так же как С#, и если он интересный и новомодный, что многие его начинают учить или уже учат, то почему бы не взять его?


Ну тогда возьмите Haskell! Его как раз многие начинают учить Правда, немногие научаются. Я вот — пока ниасилил.
А так, самый правильный язык — плюсы. Наличие толпы дешёвых шарпеев-диезников вовсе не означают, что они могут писать, а тем более переписывать, программы. На его мейнстримность забейте, мелкософт уже going native.
Re[4]: Выбор языка программирования
От: vit0s Австрия  
Дата: 14.07.16 20:17
Оценка:
Здравствуйте, cures, Вы писали:

C>А примерно сколько?


Сколько что, зарплата? Пусть будет 2100 чистыми (14 раз в год).

V>>Я бы рад предложить больше, но я просто программист и ничем не управляю (пока что). И рад был бы если бы мне больше предложили тоже


C>Может и не париться тогда? Кто управляет — тот и решит.


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

V>>Да, логично выбрать тот же C#. Но если есть сейчас какой-то язык, который войдет в мейнстрим так же как С#, и если он интересный и новомодный, что многие его начинают учить или уже учат, то почему бы не взять его?


C>Ну тогда возьмите Haskell! Его как раз многие начинают учить Правда, немногие научаются. Я вот — пока ниасилил.


Посмотрю что по чем с ним

C>А так, самый правильный язык — плюсы.


+1

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


+1
Никому не верь — и никто не обманет!
Re: Выбор языка программирования
От: stan72  
Дата: 05.08.16 13:19
Оценка:
Здравствуйте, vit0s, Вы писали:

V>Кстати, если есть С++/С# программист, кто хочет спокойной в плане стрессов и очень активной в плане спорта и отдыха жизни, то готов ответить на все вопросы


Хотелось бы предметно поспрашивать а отправка на сайте поломалась ...
Re[2]: Выбор языка программирования
От: vit0s Австрия  
Дата: 20.08.16 08:59
Оценка:
Здравствуйте, stan72, Вы писали:

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


V>>Кстати, если есть С++/С# программист, кто хочет спокойной в плане стрессов и очень активной в плане спорта и отдыха жизни, то готов ответить на все вопросы


S>Хотелось бы предметно поспрашивать а отправка на сайте поломалась ...


Напишите мне на vit0s на лист ру
Никому не верь — и никто не обманет!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.