Как показывает практика, вопрос "можно ли использовать Форт для работы?" периодически возникает, хотя к особо животрепещущим его отнести нельзя. Скорее в этом вопросе теплится слабая надежда и легкое волнение. "Ну а вдруг можно?". Только не всегда понятно, как именно, потому что на вопрос "а не нужно ли вам написать программу на Форте?" многие работодатели отвечают "а что такое Форт?". Естественно, обогнать по деньгам Билла Гейтса становится при этом сложновато.
В то же время "Форт - это наше все". Он все может, максимально гибкий, развивается одиночками, не является продуктом Microsoft, способствует развитию мышления... Вобщем, полный спектр достоинств, кроме самых важных в рассматриваемом вопросе. Что за достоинства? Сейчас посмотрим.
Для начала немножко "обывательских рассуждений". Допустим, я пошел выбирать мобильный телефон. Буду ли я рассматривать при этом вопросы радиоприема, сравнивать аналоговые тракты, выбирать аппарат, реализующий оптимальную обработку звука? Да вряд ли. Во-первых, эта информация мне вряд ли окажется доступна. Во-вторых, телефоны можно разбить по группам, в пределах которых качество связи и слышимого звука будет примерно одинаковым. Соответственно, если мне нужен "приемлемый звук", я буду смотреть на тип экрана, дизайн и размеры корпуса, дополнительные интерфейсы, ту же полифонию (хотя не особо нужна), Bluetooth, GPRS, и до кучи - способ блокировки клавиатуры и вид разъема питания (всей семьей покупаем Nokia и дружно заряжаемся от любого адаптера). Иными словами - я смотрю, что есть сейчас на рынке, и пытаюсь найти нечто, соответствующее современному уровню, и обладающее при этом подходящими для меня характеристиками.
Обратимся к "фетишам" современного западного рынка софта. Их два - time-to-market и code reuse. Т.е. время выхода на рынок и повторное использование кода. Первое влечет за собой второе. Кстати, часто программист призывает относиться с пониманием к его ошибкам ("я тоже человек"), но с негодованием клеймит позором "глюкавую винду" и Билла Гейтса лично, который "зажрался и не может сделать нормально". Увы и ах, требования потребителей сделать им все лучше и лучше влекут за собой появление "конъюнктурных" продуктов, которые попросту отражают требования текущего момента, а не являются какими-то изысками, имеющими вечную эстетическую ценность. И это, кстати, неплохо. Людям все время нужен интернет, мобильная связь, зарплата, покупки. Это означает биллинговые системы и БД для банков, торговых точек, операторов мобильной связи, провайдеров. Это все верхушка айсберга, так сказать, я уже не говорю о массе софта для промышленности, медицины и т.д. Вобщем, потребности есть, и немалые. Причем все потребители просят сделать им "как у всех", а конкуренция в области разработки ПО (тем более когда каждый школьник может попробовать себя в программировании) вынуждает разработчиков следовать вот этому самому time-to-market. То есть выбрасывать на рынок не просто софт, а софт, адаптированный к конкретному потребителю, да к тому же использующий современные технологии программирования. Есть ли тут место творчеству? Нет, в основном тут аккуратность, вникание в документацию и выбор конкретных решений из списка. Вот под такие "серийные" решения и существует масса средств разработки, которые сейчас входят в понятие mainstream. Форт, с его упором на вычислительную модель и способы трансляции программ, просто отвечает на другие вопросы. Поэтому ожидать, что среди потоковых заказов появится ниша для программ на Форте, попросту бесполезно. Это вообще вопрос из другой ниши. Заказчику не надо на Форте. Ему надо с окошком, кнопочкой, и чтобы можно было работать в сети и печатать на принтер. Если это будет написано на Форте - пожалуйста. Но факт тот, что серийное решение проще получить на таком же серийном языке, что и происходит. Копировать на Форте алгоритмы из Си (точнее, из конкретной реализации, дополненной конкретными библиотеквми) не имеет большого смысла, потому что
с точки зрения потребителя все равно ничего не изменилось, а с точки зрения разработчика потрачена масса усилий.
Еще один момент. Форт - это средство производства, а не предмет потребления. То есть это станок по производству стаканов, а не стакан, из которого можно пить. Да, лучше иметь удочку, чем рыбу, но тогда и не стоит говорить о том, чтобы сразу получить деньги, предложив Форт. Давайте прикинем. Конечному пользователю Форт не нужен, малообразованный программист его все равно не освоит, а образованный при необходимости напишет себе сам. Немногие трансляторы, которые стоят хороших денег, предназначены для неширокого комьюнити.
Идем дальше. Как можно неправильно развить Форт? Очень просто - написать транслятор, дополнить его фичами, понятными программистам, выложить в интернет демо-версию и приписать "за полной версией обращаться....". Затем ответить на письма других таких же авторов "зачем еще один форт, ведь мы уже написали?" и вернуться к исходному пункту. Причем вполне возможно, что программисты как раз согласятся, что штука хорошая, может это и это, а если вот тут дописать, то еще и вон то! Только деньги выделяются немножко по-другому, и "фичастость" языка влияет на этот процесс очень слабо
Итак, куда можно копать.
1) Программа должна выполнять действие, требуемое конечному пользователю. То есть быть калькулятором, редактором, сервером, игрушкой, БД, САПР.... чем угодно еще, но чем-то, что выдает полезный в хозяйстве результат. Транслятор Форта - это как станок в тяжелом машиностроении, его продукция достаточно специфична. К тому же сегодня трансляторами языков программирования никого не удивить.
2) Программа должна использовать технологии, актуальные на сегодня. Доказать, что черно-белое окно наиболее эстетично, конечно можно.... теперь идите и купите себе черно-белый TFT-монитор с поддержкой только текста. За те же деньги, что и цветной графический, конечно!
3) Работа с клиентами - очень важная составная часть. Она должна быть планомерной и учитывающей их интересы. Она должна на 90% состоять из реализации
их потребностей, и только на 10% - из удовольствия по поводу того, как красиво все это делается на Форте. Для примера смотрим roadmap Интела - какие процессоры появятся на рынке, известно
заранее. Кстати, это же означает, что они уже есть, просто готовятся к массовому производству. По этим причинам приход к заказчику с планами сделать ему когда-нибудь программу выглядит слабовато. Ключевые моменты будущего продукта должны быть уже реализованы, тогда речь пойдет об оплате труда по адаптации к потребностям заказчика, что, как ни крути, нужно именно заказчику.
4) Сопровождение программы - не менее важная часть. Вы точно готовы отвечать на вопросы, исправлять ошибки и писать документацию? Клиент не захочет играть в отгадывание загадок с купленным продуктом, а современные реалии таковы, что железо считается надежно работающим, а софт - регулярно обновляющимся.
Продавал ли я Форт? Нет, ни одной копии, и принципиально раздаю бесплатно. Продавал ли я продукты на базе Форта? Не на тысячу рублей. И даже не на 10 тысяч. И даже.... впрочем, не буду уточнять - должна же быть интрига