Если ваш компилятор на языке начальной загрузки работает хорошо и поддерживается, зачем его менять? Например, перепишите свой компилятор для самостоятельного хостинга в версии 1.5, что вызвало compile times to become much slower: явный ущерб, когда цель Go - быстрая компиляция.Есть ли практическая причина для компилятора для самостоятельного хостинга?
ответ
Одна практическая причина: сообщество. Люди, которые программируют на вашем языке, могут предпочесть программировать в компиляторе, если они написаны на одном языке. Если мой компилятор находится в Fortran/COBOL, и он генерирует Go
, я вряд ли привлечу разработчиков Go к компилятору.
Еще одна цепочка сборки, то есть зависимости. Если у вас есть компилятор, написанный на одном языке и генерирующий другой, у вас есть два набора тестов для написания, когда вы можете согласиться на один. Это также приводит к уменьшению барьера для входа, т. Е. Разработчикам не нужны знать несколько цепей инструментов и т. Д. Знание двух языков достаточно хорошо, чтобы быть компетентным составителем компилятора в обоих случаях - это тяжелая работа и сужает потенциальную аудиторию за помощью. Получение помощи очень важно для большинства проектов с открытым исходным кодом, и все, что увеличивает вашу потенциальную базу разработчиков, является определенным практическим преимуществом.
Вы также можете указать тестирование в качестве дополнительного преимущества. Если вы написали собственный хостинг-компилятор, вам нужно много чего сделать, чтобы язык был относительно легким (в отличие от потянув зубы) к собственному хосту, то есть File IO, манипуляции с строками, таблицам символов, деревьям и спискам и т. Д. Очевидно, что вы может выжить без них, но начинает писать компилятор намного сложнее. Этот вид сидит в своем собственном лагере для собак.
Это считается Rite of Passage
, но я не считаю это очень практичной причиной, если вы не можете доказать, что это привлекает разработчиков или какая-то другая причина для этого, возможно, хорошее отношение к достижению - это практическое преимущество, то есть вы менее вероятно, отказаться от него.
Там интересная тема на этом здесь ...
Для некоторых конкретных причин есть чтение Роба щук скользит почему они переместили компилятор Перейти к Go instead of C. Выводы в слайдах:
- Избавление от C было огромным авансом для проекта.
- Код чище, тестируемо, прост, удобен в работе.
- Новая единая цепочка инструментов уменьшает размер кода, повышает ремонтопригодность. Гибкая цепь инструментов, мобильность по-прежнему важны.
В зависимости от языка ваше перемещение и выгоды могут отличаться.
У любого внешнего инструмента также есть свои проблемы с версиями, а эффекты сообщества очень заметны не только у разработчиков, но еще больше в круге непосредственно снаружи Разработчики. Знающие пользователи, которым внезапно нужны двойные (или тройные) языковые навыки, чтобы изолировать ошибку и создать подробный отчет. (трижды, если библиотека времени выполнения написана на другом языке) –
- 1. Есть ли практическая причина для «#if defined (X) && (X! = 0)»?
- 2. Практическая причина для определения оператора! =
- 3. Подход к дизайну WCF для самостоятельного хостинга
- 4. Концепция самостоятельного хостинга
- 5. Есть ли практическая причина, почему я выбрал бы закрытие объекта?
- 6. Проблемы самостоятельного хостинга ASP.NET Web API в приложении для Windows
- 7. Хороший синтаксис Highlighter для самостоятельного хостинга WordPress Блог
- 8. Роль самостоятельного хостинга в службе WCF
- 9. Каковы преимущества и недостатки самостоятельного хостинга?
- 10. Возможности самостоятельного хостинга WCF в Java
- 11. Есть ли причина для * не * сжатия JAR?
- 12. Есть ли причина для подробной булевой оценки?
- 13. JavaScript: конверсия JXON, есть ли причина для «@»?
- 14. Есть ли причина для написания .eqv. .правда.?
- 15. Есть ли причина для определения пользовательских делегатов?
- 16. Есть ли причина для «сохранения» переменных?
- 17. Есть ли причина для этого ->
- 18. Есть ли причина для сборки ЖК-дисплея?
- 19. Есть ли причина использовать Схему для JavaScript?
- 20. Есть ли причина для переключения MSExcel.Excel.ApplicationClass.DisplayAlerts?
- 21. Есть ли причина для Object.freeze функции?
- 22. Есть ли постоянная компилятора для Windows Runtime?
- 23. Есть ли модель разработки продукта для самостоятельного встроенного программиста?
- 24. Есть ли веская причина для вызова методов на слабых объектах?
- 25. Есть ли практическая альтернатива наследованию структуры? (C#)
- 26. Есть ли причина иметь вложенные вызовы $ (jQuery)?
- 27. Wordpress плагин для самостоятельного самостоятельного размещения CDN
- 28. Практическая SOA для новичков
- 29. Практическая замена для ICloneable
- 30. Возможно ли использовать код для самостоятельного использования?
https://en.wikipedia.org/wiki/Eating_your_own_dog_food –