Стоит ли создавать язык сценариев для моего личного опыта?
Причина, по которой я спрашиваю, состоит в том, что уже существует так много языков программирования, и я знаю, что у меня никогда не будет никакого реального использования, кроме как для хорошего обучения. Однако я вижу недостатки в том, что я просто пытаюсь сделать язык сценариев учебным процессом: мне потребуется много времени и усилий, чтобы я мог сделать что-то более «продуктивное».
Будет ли создание языка программирования (включая написание проектов его предназначения, синтаксиса, философии, интерпретатора и т. Д.) Стоить времени, усилий и опыта обучения? Или есть другие проекты, от которых я мог бы выиграть больше?
Ответы:
Создайте свои навыки и свой портфель
На мой взгляд, это был бы очень хороший опыт обучения, так как это:
Так что я считаю это продуктивным, полезным и в целом «стоящим».
Начать
Теперь вы можете использовать разные подходы, в зависимости от того, сколько времени вы планируете потратить на это ...:
Начните с малого
Я бы порекомендовал вам начать с малого . Никто никогда, насколько я знаю, не писал прямо такой потрясающий язык. Вы спотыкаетесь и падаете, и терпите неудачу, и терпите неудачу и терпите неудачу . Тогда вы добьетесь успеха в том, что это работает, но все еще отстой, поэтому вы начинаете все сначала. И вы добавляете новые функции, и это наконец становится классным, но внезапно вы понимаете, что есть фундаментальная концепция, которую вы облажали в начале. Итак, вы начинаете все сначала ...
Кажется, очень познавательно для меня.
Идите дальше (и поделитесь ссылкой с нами).
Маленький, как в «коротком»
Но опять же, я бы порекомендовал вам начать с малого . Не бойтесь, если люди скажут, что это займет много кода и времени. Не обязательно, если вы не стремитесь к сложному языку. Алан Кей и другие инженеры Xerox PARC предположительно разработали раннюю версию Smalltalk, которая помещалась на одном листе бумаги , в качестве цели для краткости (см. Xerox PARC: Dealers of Lightning для подробностей об истории PARC ). Кажется хорошим, образовательным и достаточно ограниченным подходом (пока он не жертвует удобочитаемостью).
Маленький, как в «стесненных»
Вам не нужно сразу поддерживать продвинутую систему типов, функции высшего порядка и набор из 42 различных парадигм. Это может быть просто язык математических выражений.
Повторно использовать (и заглянуть) чужие знания
Вы также можете взглянуть на инструменты, которые используются для написания языков с нуля. Вы можете сами все заново реализовать, но, возможно, также стоит взглянуть, например, на существующие лексеры и генераторы парсеров.
И, очевидно, вы можете прочитать о конструкции компилятора в целом.
Теперь, если мы изменим ваш вопрос так, чтобы он был "НАИБОЛЕЕ продуктивным использованием вашего времени?" это становится совершенно другой проблемой :)
Есть множество других обучающих проектов, которые вы могли бы реализовать, и которые бы обучали и демонстрировали ваши навыки одинаково хорошо, если не лучше. Это зависит от того, к чему вы хотите стремиться.
источник
Я говорю, давай.
Реализация языка программирования охватывает широкий круг тем, и вы узнаете много нового о том, как все это работает. Вероятно, вы переживете полдюжины неудачных попыток, но опыт обучения неоценим.
источник
Разработка и реализация (игрушечного, но законченного) языка программирования на самом деле было одним из (обязательных?) Упражнений в одном из моих классов CS старших классов (либо класс компилятора, либо обзор языка программирования, я забыл, какой ...)
Так, по крайней мере, один профессор CS так и думал.
В конечном итоге вы получите гораздо более высокую оценку всех тех «причуд», которые есть в других языках.
источник
Это займет некоторое время, чтобы сделать. Планируете ли вы поддерживать его?
Я предполагаю, что ваше финансовое положение не бесконечно, поэтому я бы сказал, что оно не стоит времени. Вы можете потратить время на другие полезные проекты, которые могут заработать вам деньги. Имейте в виду, что это может быть не тот ответ, который вы ищете, но с логической точки зрения я бы сказал, что ваш язык программирования может быть не правильным проектом в данный момент. Я бы подумал, если бы вы были отставным ученым-компьютерщиком и чувствовали необходимость внести свой вклад в развитие отрасли. Кажется, у тебя сильная страсть к программированию, и это здорово. Но создание нового языка сценариев? Это будет очень длинный проект. За это время вы могли бы создать много приложений, которые вы можете добавить в свое портфолио. Я думаю, что вопрос:
источник
Мой тебе совет
Не изобретай велосипед
Вы должны спросить себя:
Я понимаю, что вы хотите получить больше опыта в обучении, и по этой причине лично я думаю, что создание инфраструктуры даст вам больше опыта в обучении и с преимуществом, что вы / ваша команда / сообщество сможете использовать его позже, чем при создании сценария.
И этот комикс xkcd немного уместен, просто измените «стандарты» на «язык»:
источник