Что такое haXe и зачем он был создан

В последние годы мы наблюдали появление множества новых технологий и языков, которые делали разработку чуть интереснее. Новые языки, такие как Python или Ruby, не обязательно предлагают революционные возможности, но какой-либо альтернативный способ разработки приложений. Ruby on Rails — один из таких способов, дал возможность разработчикам делать веб-приложения с поразительной скоростью и легкостью, а обычные (не веб) приложения, с чуть меньшими сложностями.

Это большой шаг в правильном направлении, и многие разработчики перешли на такие языки, ибо они значительно проще, чем C++ или Java. Но они не могут решить все задачи в разработке, и по прежнему требуется применение нескольких технологий. Несмотря на популярность этих новых технологий, нужно признать, что они эффективны в какой-либо одной сфере — разработка десктоп приложений, или серверной части веб-приложений, тогда как на стороне клиента по-прежнему требуются Flash, JavaScript, HTML, VBScript по той простой причине, что эти старые браузерные технологии повсеместно распространены на компьютерах пользователей. Таким образом, хотя мы и имеет большой выбор средств разработки, мы по-прежнему должны иметь разделение по технологиям в команде разработчиков, что угрожает стабильности приложения и срокам разработки.

Но почему у нас такие проблемы, и что нужно сделать, чтобы избежать их при разработке новых технологий? Проблемы не в том, как технологии взаимодействуют, и не в их функциональности, а в том, как мы их используем.

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

Когда создается новый язык программирования, его синтаксис отражает предпочтения тех программистов, которых автор хотел бы привлечь. Возможности языка, структура компилятора и стиль автора языка значат меньше. Компилятор — всего лишь умная программа, которая анализирует ваш код и конвертирует его в формат, более понятный машине, или в другой язык программирования. Именно об этом думал Николас Каннассье, и это побудило его создать компилятор haXe.

Примечание от yzh44yzh: Я не уверен, что правильно понял, о чем тут идет речь, и, возможно, перевел все неправильно. Полагаю, суть примерно такая: Разные технологии хорошо взаимодействуют друг с другом. Но вот конкретный человек хорошо работает с одной технологией, которую он знает, но очень плохо работает с другими. Поэтому, при создании нового языка нужно в первую очередь заботится о том, чтобы разработчик работал с ним привычным для себя способом. Главное — не взаимодействие технологий друг с другом, а взаимодействие технологий с людьми.