Scala для младших программистов?

мы рассматриваем Scala для нового Проекта в нашей компании. У нас есть некоторые Младшие Программисты только со знанием PHP, и мы вызываем сомнение, что они могут обработать Scala. Каковы Ваши мнения? Некоторые говорят: "Scala является сложным зверем!", говорят некоторые: "Это легко, после того как Вы получили его". Возможно, у кого-то есть реальный опыт?

11
задан Joel Coehoorn 9 December 2011 в 18:53
поделиться

12 ответов

Дайте им IntelliJ и бросьте их в глубокий конец.

0
ответ дан 3 December 2019 в 00:53
поделиться

Сначала я подумал, что Scala будет для них слишком тяжелым, но я думаю, поскольку Scala - это гибрид OO / Imperitave / Functional, их можно было бы ввести к OO / Императивной части scala до тех пор, пока они не станут удобными, но опять же, у них, вероятно, будут плохие привычки PHP в Scala, поскольку авторы scala в основном предпочитают функциональный стиль императивному.

Так что это может сработать, но я бы сделал это для исследовательского проекта, и определенно не для флагманского.

Редактировать: Возможно, это также следует сказать: кажется, что функциональные / объектно-ориентированные гибриды, такие как Scala, становятся все более популярными, особенно из-за того, как функциональные языки обрабатывают параллельную обработку, в отличие от того, как мы знаем это на языках, таких как Java. Количество ядер в микросхеме быстро увеличивается, поэтому это важно. Однако, говоря о PHP, кажется, что вы разрабатываете сценарии веб-сервера, где потоки менее важны. У PHP даже нет потоков.

Это поднимает еще один вопрос. Вы хотите разрабатывать веб-приложения Scala, например Lift . В таком случае кривая обучения удваивается, что также следует учитывать.

1
ответ дан 3 December 2019 в 00:53
поделиться

Если вы выберете этот путь, возможно, им будет проще использовать Scalate framework , чем более традиционный, такой как Lift, поскольку он позволяет смешивать HTML и Scala, почти так же, как работает PHP.

4
ответ дан 3 December 2019 в 00:53
поделиться

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

3
ответ дан 3 December 2019 в 00:53
поделиться

Я бы не рекомендовал это. Мой опыт работы со Scala только из самодельных проектов, но я мог бы представить, что в настоящее время плохая поддержка IDE, довольно частые изменения API и очень гибкий синтаксис (который позволяет повесить себя и всех, кто участвует в проекте) вызовут много проблем. в более крупном, более официальном проекте.

0
ответ дан 3 December 2019 в 00:53
поделиться

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

Но на самом деле вы даете им возможность узнать что-то действительно интересное и уникальное. Ведьма может быть хорошей мотивацией. В Scala есть много интересных вещей. Если вы умеете работать со Scala, вы можете справиться и со множеством других вещей.

Поговорите с программистами (всеми ими) и расскажите им, почему вы хотите использовать scala. Спросите, есть ли у вас мотивация сделать и научиться чему-то, что не каждый может сделать, и приложить дополнительные усилия?

Если они согласны с этим!

1
ответ дан 3 December 2019 в 00:53
поделиться

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

7
ответ дан 3 December 2019 в 00:53
поделиться

Думаю, Scala можно использовать как язык для «новичков». Несмотря на то, что за этим стоят хитрые идеи, вам не нужно использовать / объяснять их вначале. Если вы объясните чистый объектно-ориентированный объект с помощью Scala, я бы сказал, что это прямолинейно и легко понятно. Поскольку Scala снижает накладные расходы на код из других языков, может быть даже легче изучать концепции с помощью Scala, чем с помощью Java / C ++.

Главный недостаток Scala, который я вижу в качестве языка для начинающих, - это отсутствие документации. Не поймите неправильно, официальный документ Scala очень хорош, а также несколько доступных книг весьма полезны для получения подробной информации о языке, но они не были написаны для начинающих. Например, по Java вы найдете сотни книг под названием «Learning OO with Java», вы не найдете этого для Scala, что может стать препятствием.

Как упомянул Ханнес, введение нового языка осуществляется только в рамках исследовательских проектов, а не в продуктивных или даже флагманских проектах. Если у вас есть несколько юниоров, что делает ситуацию еще лучше, возьмите какой-нибудь внутренний инструмент, который вы всегда хотели и в котором нуждался, и позвольте им создать его во время исследовательского проекта. Это также хорошая возможность поэкспериментировать с различными процессами разработки. А ваши юниоры, скорее всего, любят, когда их бросают, и они предоставят хороший прототип и очень хорошо обоснованное мнение, если Scala можно использовать в качестве языка для начинающих.

14
ответ дан 3 December 2019 в 00:53
поделиться

"Мой коллеги не поймут Scala "одновременно преувеличивают его затруднение и оскорбление ваших коллег.

  • Scala не так уж и сложна. Это просто еще один язык программирования. Любые проблемы, которые возникают у молодых программистов со Scala, будут примерно такими же, как и с любым другим языком.

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

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

18
ответ дан 3 December 2019 в 00:53
поделиться

Вот запись в блоге, на которую я недавно наткнулся:
http://james-iry.blogspot.com/2008/07/java-is-too-academic.html

Она показывает, что даже Java может быть слишком академичной, чтобы быть понятной программистам, не имеющим опыта функционального программирования. С другой стороны, Scala позволяет писать код "императивным способом", так что вы можете избежать всех FP вещей, если вы не понимаете их. На мой взгляд, Scala намного лаконичнее Java, так что, думаю, "младший программист" должен быть в состоянии справиться с ней.

0
ответ дан 3 December 2019 в 00:53
поделиться

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

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

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

4
ответ дан 3 December 2019 в 00:53
поделиться

Представьте, что вы выбрали бы Java и спросили, могут ли они работать с Java. Если вы ответили, что могут, то, вероятно, они смогут справиться и со Scala.

Scala лишь незначительно сложнее из-за:

  • Нет большой поддержки IDE. Поддержка варьируется от плохой до хорошей. Это не обязательно является проблемой для PHP-программиста.
  • Документация не такая богатая, как по Java

И Java, и Scala имеют новые проблемы для PHP-программиста (JVM, новые библиотеки, компилируемый язык, статическая типизация).

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

1
ответ дан 3 December 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: