Чи варто Хексу вчитися? [зачинено]


153

Для людей, які користуються Haxe , що це робить для вас корисним? Читання веб-сайту виглядає дуже перспективно. Чи забезпечує вона значну портативність?

Які реальні світи і, можливо, недооцінені переваги?

Що таке підводні камені або ґетчі?


ніколи не чула про це раніше, як виглядає цікаво.
JoshBerke

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

4
Коротка відповідь - так, варто вчитися. Більш детальну відповідь я напишу пізніше, якщо хтось не відповість краще.
tylermac

4
можливо також подивитися на це питання: stackoverflow.com/questions/321204/haxe-in-the-field
TheHippo

2
Я не думаю, що шкодити цьому навчитися. Він настільки близький до JS і AS, що час, витрачений на навчання, може перенести його на інші проекти.
Nosredna

Відповіді:


128

Чи варто Хексу вчитися?

Коротка відповідь: Абсолютно!

Для людей, які користуються Haxe, що це робить для вас корисним?

Якщо ви веб-розробник, ви знаєте, що не можете занадто довго дотримуватися однієї технології. Рано чи пізно вам доведеться мати справу зі змінами в середовищі або цілях (ви розробляєте для .NET, але для важливого клієнта потрібен PHP, або, можливо, цей віджет повинен бути у Flash не Javascript), і це найкращий сценарій випадку. У гіршому випадку вам доведеться перемикатися постійно, часто кілька разів за один і той же робочий день.

Ці комутатори можуть витрачати багато вашого часу, тому що вам потрібно занадто багато разів змінювати парадигму програмування і, можливо, тому, що у вас буде багато перекриттів при кодуванні ваших бібліотек для конкретних цілей. Haxe намагається полегшити біль при переході, маючи лише одну мову джерела (мова Haxe) та багато результатів (через компілятор Haxe). Мова дуже доброзичлива і її досить легко вивчити, незалежно від вашого походження.

Читання веб-сайту виглядає дуже перспективно. Чи забезпечує вона значну портативність?

Мова однакова, незалежно від того, на якій платформі ви розгортаєтесь. Таким чином, ви визначаєте класи / інтерфейси / enums / 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
Дякую за відповідь Франко. І список ВПО. Мене заінтригує плагін Xcode для HaXe. Це виглядає супер солодко! Яка історія з наборами фреймворку та Haxe? Наприклад, чи вдасться коли-небудь орієнтуватися на какао з HaXe та отримати власні віджети для OS X? В основному за допомогою конструктора інтерфейсів і пов'язаного разом із вихідним кодом HaXe?
Гордон Поттер

Якщо C ++ достатньо рідний для вас, можливо, це можливо. Ви повинні загортати виклики какао, щоб вони були "доступні" з коду, створеного haXe. Поточна версія haXe, як ви, напевно, знаєте, вже дозволяє розробляти додатки для iPhone; звичайно, це все ще дуже експериментально. Вважайте, що ціль C ++ була представлена ​​лише в останньому випуску.
Франко Понтічеллі

34
Це також допомогло б мати деякі мінуси для haXe - не просто похвали.
Алан Клемент

Сам програміст AS3 і побачивши, як спалах жахливо вмирає, HEXE стає для нас все кращим і кращим.
justnajm

Погодилися з можливими недоліками, і якщо ви можете, я б дуже хотів оновити версію цієї відповіді, якщо це можливо.
Прометей

25

"Для людей, які користуються Haxe, що робить це корисним для вас?"

Як творчий флешер, я справді більше не бачу сенсу в AS3! Отож, користувач Flash / кодер / художник ось мій:

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

Еволюція Flash - це постійний процес створення бібліотек, які стають марними, коли Flash змінюється (чи може це їм потрібно продавати програмне забезпечення щороку! слідувати, як овець у Flex або навіть перейти до альтернативної XAML.

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

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

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

Питання полягає в тому, навіщо витрачати свій час на комерційну мову AS3, яка, швидше за все, зміниться тільки для продажу майбутніх версій і обмежується Flash-програвачем?

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

Насправді я дуже люблю такі аспекти, як компілятор, що розумний щодо типів, що дозволяє моєму коду бути більш чистим. І typedef's - блискучі.

Я подивився на PHP і вирішив, що це брудна нерозумна мова та однакова для JavaScript, я дуже рада, що я можу націлити їх на Haxe і не потрібно витрачати надто багато часу на чорну хак-магію.

Якщо ви любите створювати код для швидкого розвитку візуальної творчості, я вважаю, що Haxe - ідеальна мова, і навіть як фрілансер я її використовую комерційно.


18

Мій погляд на Хакс,

Попередження наступних абзаців є дуже філософськими (практичні - далі)

Як хтось, хто протягом мого короткого часу програмування відкрив багато мов програмування, і той, хто просто рухається далі, коли я відчуваю, що щось не працює для мене; Я вважаю, що Haxe - це те, до чого я просто не можу прогресувати, я просто не можу «краще».

У минулому я виявив, що кількість часу, який я витрачаю писати однією конкретною мовою, стосується двох ключових факторів, скільки мені потрібно використовувати цю мову, щоб отримати результат і наскільки легко я можу це зрозуміти. Але з Хаксе період захоплення був набагато коротшим, і я приписую це моєму невеликому накопиченню знань на різних мовах. До тих пір, поки Хакс я ніколи не знайшов такого, який мені дуже підходив, і що я почував себе правильно, вони були або важко зрозуміти, або просто не потрібні; ну, принаймні, марний з моєї точки зору.

Хакс дозволив мені бути набагато виразнішим у тому, як я пишу, я не маю на увазі "експресивне", як у якості, якою всі говорять про мови, якщо я мав на увазі здатність просто мати ідею та працювати з нею, спробувати щось із того, як я відчуваю себе правильно. Чи вдасться це, чи повністю провалюється.

Haxe була для мене дуже простою кривою навчання, з моїм загальним досвідом мови мов стилю c та AS2 / 3, і я не мав жодних проблем зі своїм підходом. Одне, що завжди стримувало мою прогресію новою мовою, - це розуміння концепції, що стоїть за цим синтаксисом / рамкою, але навіть коли я пройшов цю перешкоду, я часто виявляв, що мова сама по собі була або обмеженою, обмежувальною, або обома. З Haxe я ні обмежений, ні я знаходжу мову, яка мене обмежує. У Haxe немає скляної стелі, але це скляна підлога, тому що немає обмежень у тому, що ти можеш зробити, але ти чітко бачиш, як ти туди потрапив

Збирати Хакса не так, як брати палички та розпалювати, але це не так, як виходити на вулицю та купувати набір оксиацетилену та заводити пожежу. У цьому сенсі Haxe ближче до матчу, який ви можете використовувати повторно. З цього випливає майже всі перетворення того, до чого ви звикли, але додає нових корисних функцій. Але для цього він не вигадує колесо повністю, він просто фіксує гнилі шматочки. (нормально менше аналогій у наступному абзаці)

Практичні речі:

Мова проста і стандартизована, але все ж дозволяє програмісту пройти так далеко, як їм заманеться.

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

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

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

Мова постійно змінюється (незначними способами), а нові речі додаються у кожному випуску.

Для головного API дуже мало реальних помилок, а компілятора ще менше.

Кожен відкрито розмовляє про свою мову та напрямок, який пропонує Хакс (і, звичайно, чому він повинен вести цей напрямок)

І, нарешті, Haxe - це не велике приватне підприємство великої (або навіть невеликої) компанії, щоб заробити з вас гроші як розробника, натомість воно створене для всіх розробників для використання, надбудови та вдосконалення. І саме тому я відчуваю, що Хакс - це те, де я хочу бути. (тепер повернутися до кодування)


13

Якщо ви хочете отримати коротку відповідь: ТАК!

Для людей, які користуються Haxe, що це робить для вас корисним?

Більшу частину часу я використовую Haxe для серверного боку. (Це означає PHP або neko target). На мою думку, PHP - це найсмачніша мова, яку я коли-небудь використовував, тому я почав використовувати Haxe: Маючи корисну мову.

Ще одна велика перевага для мене полягає в тому, що Haxe є відкритим кодом.

Чи забезпечує вона значну портативність?

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

Переміщення веб-сайту з PHP на mod_tora , який працює в 40-80 разів швидше, ніж PHP, часто вимагає 5 хвилин роботи ???

Які реальні світи і, можливо, недооцінені переваги?

  • Найбільша перевага - портативність коду та відмінні варіанти спілкування між платформами, ніколи не було простіше обробляти дані між клієнтом та сервером. (Погляньте на розділ Видалення у вікі.)
  • Громада велика . (Якщо вам подобається щонайменше списки розсилки. :-)
  • Інша річ: якщо вам потрібно виконувати операційні операції на платформі, які не підтримуються Haxe (що трапляється дуже рідко), Haxe завжди дає вам можливість націлити їх. Це називається магією Хакс . Іншими словами: ви могли до всього, що можете зробити рідною мовою платформи + все приємне, що пропонує вам Haxe.

Що таке підводні камені або ґетчі?

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

PS: Я думаю, що завжди варто вивчати нову мову, оскільки це покращує навички та досвід програмування.


mode_tora звучить цікаво. Але що робити, якщо у вас немає / хочете httpd апачі? У neko є сервер, але в документації написано, що це тільки для розробки.
stesch

8

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

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

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

Використовуючи Haxe, я фактично зрозумів значення об’єктно-орієнтованого дизайну, оскільки платформа вже не стримувала мої класи. Я міг би повторно використовувати код, написаний для проекту Flash у своєму звичайному веб-коді, якщо я досить відокремив їх від конкретної їх платформи.

Через чудові класи для видалення, якими ви можете користуватися для спілкування між платформами, я також зрозумів, що XML не все так особливий, як і JSON, це безглуздо без коду, який діє на нього.

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


5

Хакс - неоціненна мова. Багато плюсових балів часто не помічаються. Наприклад, у нього є фантастичні вбудовані бібліотеки, які значно спрощують розробку додатків, такі як простий, але дуже потужний 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, якщо я поїду це більше доби. Це не так розкручено, як інші мови, але це, в свою чергу, означає, що люди, які причепили вагони до Хаксе, як правило, впевнені, добре обізнані програмісти.

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


3

Суб'єктивно я вважаю, що в Haxe я більш продуктивний, ніж будь-яка інша мова. Я в основному використовую Haxe, спрямований на Neko та JavaScript.

Сам компілятор дуже швидкий, що дозволяє мені використовувати Haxe як мову сценаріїв. Він схиляється до орієнтації на об'єкт, але має ряд функціональних інструментів; функції першого класу, функціональна відповідність, лямбда-бібліотеки.

Я вважаю швидкість Neko достатньою, і його невеликий розмір зображення чудово підходить для обмеженого середовища. Це F FI - це чудово - дуже просто додати новий функціонал.

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

В цілому я думаю, що це дуже добре закруглено і продумано - і критично це працює так, як рекламується на всіх платформах.


2

так, повністю

Але це потребує кращого IDE та документації, відсутність чудового IDE (як, наприклад, на основі затемнення) має для мене все значення, і я не можу досягти рівнів продуктивності, які я роблю в інших мовах завдяки цьому.

мова = чудово - найкраще за милі середовища розвитку = погано (в цей час і імхо)


1

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

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

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

Зрештою, Haxe допомагає писати однією мовою та орієнтуватися на різні платформи (в основному JS та Flash, а зараз NekoVM, PHP та C ++), чи справді це вам потрібно ?!


1
Я не впевнений, що це справедливе порівняння щодо рівня прийняття. Flex - це мова, яку спонсорує компанія Adobe. Це автоматично дає йому "вуличний кредит";) Рубі була навколо чогось, приблизно як 10 років, коли вийшов Рейлс. З того, що я бачив, виходить, що більше людей переходять на RoR, а потім просто на Ruby. На противагу цьому Haxe приблизно вдвічі старший за це, і хоча існує багато рамок для розвитку Haxe там, звичайно, жоден не перейшов у вірусне, як у рейок.
tylermac

Серйозно ?! Який відсоток розробників RoR використовували Ruby до виходу RoR? І для мене (як розробника) не важливо, чи спонсорувала платформу розробників великий корпоратив чи ні? Швидкість адаптації рухається дуже повільно з HaXe IMO, і це моя головна стурбованість щодо цього
Аммар

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

Мій аргумент досі стоїть: ще зарано :)
Аммар

1
@JLM: Минуло 4 роки, ви можете відредагувати свою відповідь і відрегулювати :)
Janus Troelsen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.