Я заинтересован в языках программирования. Какие области программирования хороши для меня? - PullRequest
5 голосов
/ 23 января 2010

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

Какие области программирования позволят мне получить некоторый опыт решения некоторых связанных проблем? Или какие работодатели с большей вероятностью будут рассматривать всех моих хреновых переводчиков как соответствующий опыт?

Ответы [ 9 ]

7 голосов
/ 23 января 2010

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

4 голосов
/ 23 января 2010

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

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

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

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

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

  • остаться в школе и получить степень бакалавра (желательно магистра или доктора наук) в CS.
  • присоединиться к команде с открытым исходным кодом, которая работает над значимым проектом в этой области. gcc, но также и мир Java, Tracemonkey (Mozilla), Mono и т. д. Проверяемый опыт в реальных сценариях очень важен.
3 голосов
/ 23 января 2010

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

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

2 голосов
/ 23 января 2010

Работодатель, имеющий богатый «домен» (то есть сложную отрасль), может получить выгоду от «языка, специфичного для домена».

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

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

2 голосов
/ 23 января 2010

Я работал программистом встраиваемых систем в течение последних десяти лет. До этого я писал компиляторы (и ассемблеры, компоновщики, отладчики и т. Д.) В течение 20 лет.

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

Сегодня я играю с компилятором на стороне: http://ellcc.org. Это помогает мне почесать языковой зуд.

2 голосов
/ 23 января 2010

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

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

1 голос
/ 23 января 2010

Большинство популярных в настоящее время языков возникли из гениальной необходимости, чтобы поцарапать определенный ITCH. Python появился потому, что некоторым программистам, не относящимся к C, НУЖНО было настраивать входные данные для своих C-программ и библиотек. Lua вышел из НЕОБХОДИМОСТИ встраивать язык сценариев в программы на Си. Erlang был создан для удовлетворения НЕОБХОДИМОСТИ безотказной работы 99.9999999%, горячей загрузки кода и одновременного выполнения. Perl вышел из НЕОБХОДИМОСТИ, чтобы легко писать программы, которые анализировали текстовые файлы.

Так что очень простой вопрос, который задаст себе любой работодатель, и вы должны задать себе это. Что нужно, я могу предложить решение, которого не существует. Хобби-работа очень редко показывает, что вы предлагаете решения для НЕОБХОДИМОСТИ, в большинстве случаев это показывает, что вам нравится изобретать велосипед заново, чтобы заново изобретать велосипед.

1 голос
/ 23 января 2010

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

1 голос
/ 23 января 2010

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

Пожалуйста, не торопись. Выступая в качестве разработчика рабочих мест, последнее, что мне нужно, это еще один проклятый язык для изучения: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...