Стоит ли изучать Хейкс? [закрыто]


153

Для людей, которые используют Haxe , что делает его полезным для вас? Чтение сайта выглядит очень перспективно. Обеспечивает ли это значительную мобильность?

Каков реальный мир и, возможно, недооцененные преимущества?

Какие подводные камни или подводные камни?


никогда не слышал об этом раньше выглядит интересно.
ДжошБерке

9
Почему должны быть серьезные проблемы с сообществом? Сообщество не очень большое, но очень поддерживающее, просто взгляните на активность Списка рассылки.
Франко Понтичелли

4
Короткий ответ - да, это стоит изучить. Я напишу более подробный ответ позже, если кто-то не ответит лучше.
Tylermac

4
возможно также посмотрите на этот вопрос: stackoverflow.com/questions/321204/haxe-in-the-field
TheHippo

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

Ответы:


128

Стоит ли изучать Хейкс?

Краткий ответ: абсолютно!

Для людей, которые используют Haxe, что делает его полезным для вас?

Если вы веб-разработчик, вы знаете, что не можете придерживаться одной технологии слишком долго. Рано или поздно вам придется иметь дело с изменениями в среде или целях (вы разрабатываете для .NET, но важному клиенту требуется PHP, или, возможно, этот виджет должен быть во Flash, а не в Javascript), и это лучший сценарий. В худшем случае вам придется постоянно переключаться, часто несколько раз в течение одного рабочего дня.

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

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

Язык один и тот же, независимо от того, какую платформу вы используете. Таким образом, вы определяете классы / интерфейсы / перечисления / typedefs одинаково для JS, Flash, C ++ и т. Д. Если эти типы, которые вы определяете, не зависят от API конкретной платформы, их можно повторно использовать с платформы на платформу без каких-либо усилий. , Все платформы также имеют общие API-интерфейсы, такие как XML-доступ, HTTP-соединения и рефлексия. Платформы, имеющие общие черты (например, Neko и PHP), используют один и тот же API для таких вещей, как доступ к файлам или разработка веб-серверов.

Каков реальный мир и, возможно, недооцененные преимущества?

  • Если у вас есть опыт работы с Flash / Flex, вы знаете, как компилятор может замедлить вашу работу (единственным преимуществом является возможность сделать перерыв на кофе во время ожидания;)). Компилятор Haxe работает во много раз быстрее, настолько быстро, что большую часть времени вы даже не замечаете, как он работает.
  • Получаемый байт-код намного быстрее, чем эквивалент, созданный инструментами Adobe.
  • Также в области Flash Haxe может «встроить» функции или получить доступ к функциям памяти, которые доступны только в другом месте с помощью Alchemy.
  • Если вам это нужно, вы также можете решить, какую версию Flash выбрать, от 6 до 10; API сильно изменился, но язык Haxe точно такой же.

Говоря о серверной части, мы все знаем, насколько распространен PHP. Вы можете разработать приложение с таргетингом на Haxe и масштабировать до Neko или даже C ++, если ваше веб-приложение растет.

Какие подводные камни или подводные камни?

Вот список распространенных заблуждений:

  • Haxe is young and immatureНе совсем, Haxe уже почти 4 года, он видел 25 официальных релизов (не сборок) + 13 альфа и бета-версий, он постоянно обновляется и имеет очень преданное сообщество. Он профессионально используется многими людьми в нескольких областях развития; взгляните на архив списка рассылки, чтобы узнать, как люди используют Haxe.

  • Haxe is complicatedПоскольку основной целью Haxe является без сомнения AS3, люди ожидают, что у него должны быть мастера или графический интерфейс. Как уже говорилось, Haxe - это язык и компилятор, который делает его подходящим для программистов, но не очень хорошим для дизайнеров.

  • There aren't any IDEsИстинная часть этого заключается в том, что IDE может быть улучшена во многих аспектах для лучшей интеграции с Haxe, но уже есть много допустимых вариантов .

  • The only book published is already outdatedЗдесь тоже есть доля правды, к сожалению, книга была опубликована всего за несколько месяцев до выхода основного релиза (от V1 до V2). Этот основной релиз не сильно изменился, но добавил несколько несовместимостей. Книга все еще остается действительным ресурсом (я не просто говорю это, потому что я написал это;))


1
Спасибо за ответ Франко. И список IDE. Я заинтригован плагином Xcode для HaXe. Это выглядит супер мило! Что за история с наборами UI и Haxe? Например, удастся ли когда-нибудь нацелиться, скажем, на Какао с HaXe и получить нативные виджеты для OS X? В основном используя конструктор интерфейсов и связанный с исходным кодом HaXe?
Гордон Поттер

Если C ++ достаточно родной для вас, тогда это возможно. Вы должны обернуть вызовы Cocoa так, чтобы они были «доступны» из кода, сгенерированного haXe. Текущая версия haXe, как вы, вероятно, знаете, уже позволяет разрабатывать приложения для iPhone; конечно это все еще очень экспериментально. Учтите, что цель C ++ была представлена ​​только в последней версии.
Франко Понтичелли,

34
Было бы также полезно иметь некоторые минусы для haXe - не просто похвалы.
Алан Клемент

Я сам программист AS3 и, видя, как ужасно умирает флеш, haxe становится все лучше и лучше для нас.
Юстнайм

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

25

"Для людей, использующих Haxe, что делает его полезным для вас?"

Как творческая мигалка, я действительно больше не вижу смысла в AS3! Итак, из кода пользователя / исполнителя Flash, вот мое мнение:

В моем текущем проекте у меня есть 19-летний подросток, который под моим руководством перешел из классов временной шкалы AS2 / AS3 в классы Haxe и переносил код AS2 и AS3. Так что я не думаю, что Haxe сложнее в использовании, чем AS3 или когда он используется во Flash значительно иначе. Что касается стабильности, то моя главная проблема - аспекты современных Flash-плееров, Haxe действительно настолько же стабилен или более стабилен, чем AS3, при разработке Flash.

Эволюция Flash - это постоянный процесс создания библиотек, которые становятся бесполезными по мере изменения Flash (возможно, им нужно продавать программное обеспечение каждый год !?), а компоненты всегда были чем-то, что мне нужно, но размеры глупы, поэтому я не желаю следовать, как овцы, во Флекс или даже перейти на альтернативный XAML.

Основным преимуществом Haxe является то, что вы можете начать задумываться о создании классов, которые отделены от платформы и будут в основном использоваться через пять лет, я сомневаюсь, что это верно для любого AS3, который вы создаете, у Haxe меньше связей, потенциально Я мог бы скомпилировать код для JavaScript, Silverlight или того, что Google выдает дальше.

Мои основные проблемы с Haxe состоят в том, что большая часть разработки была не на Mac, поэтому аспекты компиляции C ++ и новых функций Haxe иногда отстают от пользователей Windows, но у меня не было проблем с ядром Haxe, таких как компиляция Flash.

С точки зрения дизайнеров: я использую Flash IDE-фильм, загруженный во время выполнения для своих визуальных ресурсов, и делаю то же самое при разработке в AS3, так что на самом деле мой рабочий процесс не зависит от AS3 / Haxe, мне нравится простая жизнь, поэтому я использую Textmate для любой AS3 или Хакс. У меня есть страсть к Flash IDE и его мощности, но я бы никогда не использовал его для кода, и большая часть моей работы с Flash в основном написана на кодах, поэтому я не хардкор Linux, Haxe не мешает вам использовать Flash IDE, но если вы хотите используйте swfmill или sam вы можете.

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

Мне не потребовалось много времени, чтобы добраться до стадии, когда я мог создать игру или сложную идею в javascript без необходимости jQuery и т. Д. Просто из коробки навыки программирования и понимание разработки интерфейсов вне флеш-памяти (раньше я никогда не использовал JavaScript), если бы я изучал чистый JavaScript, я бы, наверное, не чувствовал себя таким активным, скорее как кто-то отрезал мне руку, и я бы писал очень специфичный для платформы код , в то время как теперь я могу использовать FEffects для анимации движения, а затем добавить некоторые ключи компилятора и скомпилировать на некоторые другие платформы и использовать некоторые neash / nme.

Я на самом деле очень люблю такие аспекты, как компилятор, который умеет разбираться с типами, что позволяет моему коду быть чище И typedef's великолепны.

Я посмотрел на PHP и решил, что это грязный, глупый и грязный язык, и то же самое для JavaScript, я так рад, что могу нацелить их с помощью Haxe и не тратить слишком много времени на магию черного хака.

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


18

Мой взгляд на Хакс,

Предупреждение, следующие параграфы очень философские (практические - ниже):

Как человек, который был открыт для многих языков программирования в течение моего короткого времени программирования, и тот, кто просто двигается дальше, когда я чувствую, что что-то не работает для меня; Я обнаружил, что Haxe - это то, от чего я просто не могу прогрессировать, я просто не могу «лучше».

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

Haxe позволил мне быть более выразительным в том, как я пишу, я не имею в виду «выразительность», как в качестве того, что все говорят о языках, имея в виду способность просто иметь идею и работать с ней, пытаться что-то, что я считаю правильным. Будет ли это успешно или полностью не удастся.

Haxe был для меня очень легкой кривой обучения, с моим общим опытом работы с языками стилей c и AS2 / 3, и у меня не было особых проблем с его получением. Одна вещь, которая всегда препятствовала моему прогрессу с новым языком, заключалась в понимании концепции, лежащей в основе этого конкретного синтаксиса / структуры, но даже когда я преодолевал это препятствие, я часто обнаруживал, что язык сам по себе был либо ограниченным, либо ограничивающим, либо и тем, и другим. С Haxe я не ограничен и не нахожу язык, чтобы ограничить меня. В Haxe нет стеклянного потолка, но стеклянный пол, в котором нет предела тому, что вы можете сделать, но вы можете ясно видеть, как вы туда попали

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

Практичные вещи:

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

Вы можете написать кусок кода очень высокого уровня или поиграться с маленькими кусочками (в значительной степени на некоторых платформах)

Haxe не диктует, что вы можете и не можете делать на какой-либо одной платформе, он дает (или планирует предоставить вам) полный доступ ко всему, но там, где это возможно, он добавляет стандартизированный способ действий.

Список рассылки очень полезный и отзывчивый, и форум сейчас набирает обороты.

Язык постоянно меняется (незначительными способами) с добавлением новых вещей в каждом выпуске.

Для основного API очень мало реальных ошибок и еще меньше для компилятора.

Каждый открыто говорит о языке, его направлении и направлении, которое они предлагают для Haxe (и / или, конечно, почему он должен идти в этом направлении)

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


13

Если вы хотите получить короткий ответ: ДА!

Для людей, которые используют Haxe, что делает его полезным для вас?

Большую часть времени я использую Haxe для серверной части. (Это означает PHP или neko target). По моему мнению, PHP - самый отвратительный язык, который я когда-либо использовал, поэтому я начал использовать Haxe: иметь полезный язык.

Еще одним большим преимуществом для меня является то, что Haxe с открытым исходным кодом.

Обеспечивает ли это значительную мобильность?

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

Миграция сайта с PHP на mod_tora , который работает в 40-80 раз быстрее, чем PHP, часто требует всего 5 минут работы ???

Каков реальный мир и, возможно, недооцененные преимущества?

  • Самым большим преимуществом является переносимость кода и отличные возможности для обмена данными между платформами, никогда не было проще обрабатывать данные между клиентом и сервером. (Посмотрите на Remoting раздел в вики.)
  • Сообщество отличное . (Если вам нравятся списки рассылки хотя бы. :-)
  • Другое дело: если вам нужно выполнять очень платформенные нативные операции, которые не поддерживаются Haxe (что случается очень редко), Haxe всегда дает вам возможность нацеливаться на них. Это называется магией Хакс . Другими словами: вы могли делать все, что могли, на родном языке платформы + все приятное, что предлагает вам Haxe.

Какие подводные камни или подводные камни?

  • Документация, иногда установка не на 100% идеальна. Поддержка IDE может быть значительно улучшена.
  • Также цель JavaScript иногда трудно использовать, потому что Haxe предоставляет действительно хороший язык, но отсутствует какая-то структура для наиболее распространенных манипуляций с DOM, но я думаю, что некоторые люди работают над этим ;-)
  • Если мне приходится работать на клиентов, им иногда не нравится идея реализовать свой проект на таком неизвестном языке.

PS: я думаю, что всегда стоит изучать новый язык, так как он улучшает ваши навыки и опыт программирования.


mode_tora звучит интересно. Но что вы будете делать, если у вас нет / нет доступа к apache httpd? В Neko есть сервер, но в документации сказано, что он только для разработки.
2010 года

8

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

Я изучил и использовал Haxe интенсивно после первых бета-версий и с тех пор использую его. Это был первый язык, который я выучил (в то время я еще учился в колледже), который действительно помог мне понять разницу между языком и API.

Видите ли, в колледже я сначала выучил AS2, затем PHP, затем немного Javascript. У нас не было официального знакомства с программированием (и я все равно не изучал информатику). Эти языки все довольно привязаны к платформам, поэтому, как новичок, я автоматически предположил, что такие вещи, как strlen () - это PHP, MovieClip - это AS2, ...

Используя Haxe, я на самом деле понимал ценность объектно-ориентированного дизайна, поскольку платформа больше не сдерживала мои занятия. Я мог бы повторно использовать код, написанный для проекта Flash, в своем обычном веб-коде, если бы достаточно хорошо отделил их от специфики их платформы.

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

Для кого-то вроде меня, который только начал программировать, это было довольно большим открытием во времена, когда XML был «крутым» и хорошим для всего ;-)


5

Haxe - бесценный язык. Многие из его плюсов часто упускаются из виду. Например, он имеет фантастические встроенные библиотеки, которые значительно упрощают разработку приложений, такие как простой, но очень мощный ORM (Neko / PHP), полное межплатформенное удаленное взаимодействие (Flash / JS / PHP / C ++ / Neko), где угодно поддерживаемая платформа может без проблем взаимодействовать с любой другой платформой, солидной библиотекой регулярных выражений (поддерживается всеми, кроме Flash <8) и многими другими.

Как примечание, я недавно написал приложение, использующее Haxe для PHP / JS / Flash, и обнаружил, что скорость разработки увеличилась в геометрической прогрессии.

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


4

Мое основное использование Haxe все еще ограничено разработкой Flash. Я только медленно осознаю, что его можно использовать для других целей. Я до сих пор не вижу преимуществ в этом направлении и делаю свои PHP и JS напрямую на PHP и JS.

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

Открытый характер кода и разработки также является хорошим преимуществом. Мне действительно нужен был препроцессор, поэтому #lineв Haxe была добавлена ​​поддержка. Я не думаю, что Adobe когда-либо восприняла бы мою просьбу серьезно.

Я считаю, что типизированный язык - огромное преимущество перед многими новыми современными языками.

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


3

Я кодирую Haxe в личных и профессиональных целях около 2 лет. У него есть определенные преимущества, которых вы не получите от других языков, самое большое из которых заключается в том, что он был спроектирован почти с самого начала как современный компилятор промышленного уровня, который может гибко адаптироваться к новым платформам и использовать преимущества их уникальных функций. , Это делает его наиболее близким к высокоуровневой версии C. Если вы пишете код на Haxe, вы можете рассчитывать на то, что он останется без дела.

Захват сообщества оказался сильнее, чем вы думаете - я провел небольшой анализ трафика списков с точки зрения сжатых килобайт (по данным http://lists.motion-twin.com/pipermail/haxe/ ), и результат показывает с начала года (с января по сентябрь) на 25-50% каждый год увеличивается с 2006 года. За последние шесть месяцев трафик действительно взорвался, и я серьезно подумываю о том, чтобы переварить, потому что в противном случае мой почтовый ящик будет заполнен сотнями сообщений в Haxe, если я уйду это больше дня. Он не такой раскрученный, как другие языки, но это, в свою очередь, означает, что люди, привязывающие свои вагоны к Haxe, склонны быть уверенными, хорошо информированными программистами.

Люди экспериментировали с языковыми компиляторами в других контекстах (схема где угодно, Python или Ruby в JS и т. Д.), Но эти языки были разработаны для другого места и цели, и при переводе теряют многие свои лучшие аспекты, что делает результаты классные, но не удобные для повседневной работы. Хэкс не чувствует себя так; в то время как у него нет удобств, связанных с интеграцией языка / среды выполнения, у него есть много других интересных вещей, которые можно предложить прямо сейчас .


3

Субъективно я считаю, что я более продуктивен в Haxe, чем в любом другом языке. Я использую Haxe в основном для Neko и JavaScript.

Сам компилятор очень быстрый, что позволяет мне использовать Haxe как язык сценариев. Он склоняется к ориентации объекта, но имеет ряд функциональных инструментов; функции первого класса, функциональное соответствие, лямбда-библиотеки.

Я считаю, что скорость Neko достаточна, и ее небольшой размер изображения отлично подходит для стесненных условий. Это C FFI отлично - очень просто добавить новую функциональность.

Я использую Haxe для моего клиентского контроллера JavaScript, запуская события в стандартном представлении jQuery. Это работает очень хорошо, поскольку вы можете одновременно проверять код клиента и сервера, сохраняя нетипизированный необработанный JS-код минимальным и сохраняя преимущества обычных библиотек JS. Доступны библиотеки JSON. Кстати, хотя Haxe поставляется с mod_ * для Apache и т. Д., Я считаю, что использование прокси гораздо более гибкое, поэтому я могу настроить несколько экземпляров Neko за веб-сервером.

В целом, я думаю, что он очень хорошо продуман и продуман - и, что критично, работает так, как рекламируется на всех платформах.


2

да полностью

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

язык = отличный - лучший по среде разработки = плохой (на данный момент и imho)


1

У меня была Хэйкс на радаре с самого начала. Я согласен, что это кажется очень многообещающим, но я заметил, что разработчики не принимают его так быстро, как вы ожидаете (по сравнению с RoR и даже Flex).

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

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

В конце концов, Haxe помогает вам писать на одном языке и ориентироваться на разные платформы (в основном JS и Flash, а теперь NekoVM, PHP и C ++), вам это действительно нужно ?!


1
Я не уверен, что это справедливое сравнение уровня усыновления. С Flex это спонсируемый язык от Adobe. Это автоматически дает ему «уличную репутацию»;) Руби был где-то около 10 лет, когда появился Rails. Из того, что я видел, похоже, что больше людей переключаются на RoR, чем просто на Ruby. В отличие от этого, Haxe примерно вдвое старше этого возраста, и, хотя существует множество сред разработки для Haxe, безусловно, ни один из них не стал вирусным, как у rails.
Tylermac

Шутки в сторону?! Каков процент разработчиков RoR, которые использовали Ruby до выхода RoR? И для меня (как разработчика) не имеет значения, была ли спонсируемая разработчиком платформа крупной компанией или нет? Скорость адаптации очень медленно с HaXe IMO, и это моя главная проблема
Ammar

Новые подходы не всегда очевидны для всех, я помню RoR и papervision, оба проекта, которые расширились в последние годы, которые заинтересовали меня, и я должен сказать, что haXe действительно доказывает свой потенциал, и я верю, что он будет больше, чем оба .. 2-3 года расскажет;)
JLM

Мой аргумент остается в силе: слишком рано :)
Ammar

1
@JLM: прошло 4 года, вы можете отредактировать свой ответ и настроить :)
Янус Троелсен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.