Haxe vale a pena aprender? [fechadas]


153

Para as pessoas que usam Haxe , o que o torna útil para você? Lendo o site, parece muito promissor. Fornece portabilidade significativa?

Quais são alguns do mundo real e talvez com vantagens apreciadas?

Quais são as armadilhas ou truques?


nunca ouvi falar disso antes parece interessante.
JoshBerke

9
Por que deveria haver sérios problemas com a comunidade? A comunidade não é muito grande, mas é muito favorável, basta dar uma olhada na atividade da Lista de discussão.
Franco Ponticelli

4
Resposta curta é sim, vale a pena aprender. Escreverei uma resposta mais detalhada mais tarde se outra pessoa não responder melhor.
tylermac 6/09/09

4
talvez também olhar para esta questão: stackoverflow.com/questions/321204/haxe-in-the-field
thehippo

2
Acho que não há mal em aprender isso. É tão próximo do JS e do AS que o tempo gasto aprendendo pode passar para outros projetos.
Nosredna

Respostas:


128

Haxe vale a pena aprender?

A resposta curta é: Absolutamente!

Para as pessoas que usam Haxe, o que o torna útil para você?

Se você é um desenvolvedor web, sabe que não pode ficar com uma única tecnologia por muito tempo. Mais cedo ou mais tarde, você terá que lidar com alterações no ambiente ou nos destinos (você desenvolve para .NET, mas um cliente importante exige PHP, ou talvez esse widget deva estar no Flash, não Javascript), e esse é o melhor cenário. Na pior das hipóteses, você terá que mudar constantemente, muitas vezes várias vezes no mesmo dia útil.

Esses comutadores podem desperdiçar muito do seu tempo porque você precisa alterar o paradigma de programação muitas vezes e possivelmente porque você terá muitas sobreposições na codificação de suas bibliotecas para destinos específicos. O Haxe tenta aliviar a dor da transição, tendo apenas um idioma de origem (o idioma Haxe) e muitas saídas (por meio do compilador Haxe). O idioma é muito amigável e fácil de aprender, independentemente do seu histórico.

Lendo o site, parece muito promissor. Fornece portabilidade significativa?

O idioma é o mesmo, não importa em que plataforma você implante. Assim, você define classes / interfaces / enums / typedefs da mesma maneira para JS, Flash, C ++ etc. Se esses tipos definidos não dependem de uma API específica da plataforma, eles podem ser reutilizados de plataforma para plataforma sem nenhum esforço. . Todas as plataformas também compartilham APIs comuns, como acesso XML, conexões HTTP e reflexão. Plataformas que têm coisas em comum (por exemplo, Neko e PHP) compartilham a mesma API para coisas como acesso a arquivos ou desenvolvimento de servidor da web.

Quais são alguns do mundo real e talvez com vantagens apreciadas?

  • Se você tem experiência com o Flash / Flex, sabe como o compilador pode retardar o seu trabalho (a única vantagem é poder fazer uma pausa para o café enquanto aguarda;)). O compilador Haxe é muitas vezes mais rápido, tão rápido que na maioria das vezes você nem percebe que está funcionando.
  • O bytecode produzido é muito mais rápido que o equivalente produzido pelas ferramentas da Adobe.
  • Também no domínio Flash, o Haxe pode "incorporar" funções ou acessar os recursos de Memória que estão disponíveis apenas em outros lugares usando Alchemy.
  • Caso precise, você também pode decidir qual versão do Flash segmentar, de 6 a 10; a API mudou muito, mas a linguagem Haxe é exatamente a mesma.

Falando sobre o lado do servidor, todos sabemos como o PHP é onipresente. Você pode desenvolver um aplicativo com o Haxe direcionado a ele e dimensioná-lo para Neko ou mesmo C ++ se o aplicativo da Web crescer.

Quais são as armadilhas ou truques?

Aqui está uma lista de equívocos comuns:

  • Haxe is young and immatureNa verdade, Haxe tem quase 4 anos, já viu 25 lançamentos formais (não compilações) + 13 alfas e betas, é atualizado constantemente e tem uma comunidade muito dedicada. É usado profissionalmente por muitas pessoas em várias áreas de desenvolvimento; dê uma olhada no arquivo da lista de discussão para descobrir como as pessoas usam o Haxe.

  • Haxe is complicatedComo o principal objetivo do Haxe é, sem dúvida, o AS3, as pessoas esperam que ele deva ter assistentes ou uma GUI. Como afirmado, o Haxe é uma linguagem e um compilador que o torna adequado para programadores, mas não muito bom para designers.

  • There aren't any IDEsA parte verdadeira disso é que o IDE pode ser aprimorado em muitos aspectos para melhor integrar-se ao Haxe, mas já existem muitas opções válidas .

  • The only book published is already outdatedHá alguma verdade aqui também, infelizmente o livro foi publicado apenas alguns meses antes de um grande lançamento (da V1 à V2). Essa versão principal não mudou muito, mas adicionou algumas incompatibilidades. O livro continua sendo um recurso válido (não estou dizendo isso apenas porque o escrevi;))


1
Obrigado pela resposta Franco. E a lista de IDEs. Estou intrigado com o plugin Xcode para o HaXe. Isso parece super doce! Qual é a história dos kits de estrutura de interface do usuário e do Haxe? Por exemplo, será possível segmentar, por exemplo, Cocoa com HaXe e obter widgets nativos para OS X? Basicamente, usando o construtor de interface e vinculado ao código fonte do HaXe?
Gordon Potter

Se o C ++ é nativo o suficiente para você, é possível. Você deve agrupar as chamadas Cocoa para que elas sejam "alcançáveis" a partir do código gerado pelo haXe. A versão atual do haXe, como você provavelmente já sabe, já permite desenvolver aplicativos para iPhone; claro que ainda é muito experimental. Considere que o destino C ++ foi introduzido apenas na versão mais recente.
Franco Ponticelli

34
Também ajudaria a ter alguns contras para o haXe - não apenas elogios.
Alan Klement

Eu mesmo programador AS3 e vendo o flash morrendo horrivelmente, o haxe está ficando cada vez melhor para nós.
JustJáJm19

Concordou com as possíveis desvantagens e, se puder, eu realmente gostaria de uma versão atualizada desta resposta, se possível.
Prometheus

25

"Para pessoas que usam Haxe, o que o torna útil para você?"

Como um pisca-pisca criativo, eu realmente não vejo mais o ponto no AS3! Então, de um codificador de usuário / artista em Flash, aqui está minha opinião:

No meu projeto atual, eu tenho um jovem de 19 anos que passou das classes principalmente linha do tempo AS2 / AS3 para Haxe sob minha orientação e estava portando o código AS2 e AS3. Portanto, não acho que o Haxe seja mais difícil de usar do que o AS3 ou quando usado no Flash significativamente diferente. No que diz respeito à estabilidade, minha principal reclamação atual são os aspectos dos atuais players de Flash, o Haxe é realmente tão estável ou mais estável que o AS3 no desenvolvimento do Flash.

A evolução do Flash tem sido um processo constante de criação de bibliotecas que se tornam inúteis à medida que o Flash muda (pode ser que eles precisem vender software todos os anos !?), e os componentes sempre foram algo que eu preciso, mas os tamanhos são tolos, por isso não estou disposto seguir como ovelha no Flex ou até mesmo mudar para o XAML alternativo.

A principal vantagem do Haxe é que você pode começar a realmente pensar em criar classes que são divorciadas da plataforma e serão amplamente utilizáveis ​​daqui a cinco anos. Duvido que seja verdade em qualquer AS3 que você criar, o Haxe tem menos vínculos, potencialmente Eu poderia compilar código para JavaScript, Silverlight ou o que o Google apresentar a seguir.

Meus principais problemas com o Haxe são que a maior parte do desenvolvimento não foi feita em Macs; portanto, aspectos da compilação de C ++ e os novos recursos do Haxe às vezes são rastreados pelos usuários do Windows, mas não tive problemas com o Haxe principal, como a compilação do Flash.

Em termos de designers: eu uso um filme em Flash IDE carregado em tempo de execução para meus recursos visuais e faço o mesmo no desenvolvimento no AS3, para que realmente meu fluxo de trabalho não dependa do AS3 / Haxe, gosto de uma vida simples e, portanto, uso o Textmate para o AS3 ou Haxe. Eu tenho uma paixão pelo IDE do Flash e seu poder, mas nunca o utilizaria para código, e a maior parte do meu trabalho em Flash é basicamente código; portanto, eu não sou um fã do Linux, o Haxe não o impede de usar o Flash IDE, mas se você quiser use swfmill ou sam você pode.

A questão é: por que desperdiçar seu tempo em um idioma comercial AS3 que provavelmente será alterado apenas para vender versões futuras e limitado ao Flash player?

Não demorou muito tempo para chegar a um estágio em que eu poderia criar um jogo ou ide complexo em javascript sem precisar do jQuery etc. apenas fora da caixa Haxe ... funcionaria em vários navegadores etc ... Haxe me permite levar meu Flash habilidades de programação e entendimento de desenvolvimento de interface fora do flash (nunca tendo realmente usado JavaScript), se eu aprendesse JavaScript puro, provavelmente não me sentiria tão habilitado, mais como se alguém tivesse me cortado e eu estivesse escrevendo código muito específico da plataforma , enquanto agora eu posso usar FEffects para interpolação e, posteriormente, adicionar algumas opções de compilador e compilar em outras plataformas e usar algum neash / nme.

Na verdade, eu gosto bastante de aspectos como o compilador ser inteligente em relação aos tipos, permitindo que meu código seja mais limpo. E os typedef são brilhantes.

Eu olhei para o PHP e decidi que era uma linguagem boba e bagunçada e o mesmo para JavaScript. Estou tão feliz por poder segmentá-los com o Haxe e não ter que gastar muito tempo com a magia do hack preto.

Se você gosta de criar código para desenvolvimento rápido de criatividade visual, acho que o Haxe é a linguagem ideal e, mesmo como freelancer, estou usando-o comercialmente.


18

Minha opinião sobre Haxe,

Advertindo os parágrafos seguintes são muito filosóficos (os práticos estão mais abaixo):

Como alguém que esteve aberto a muitas linguagens de programação durante meu curto período de programação e alguém que simplesmente segue em frente quando sinto que algo não está funcionando para mim; Eu acho que Haxe é algo que eu simplesmente não consigo progredir, eu simplesmente não posso 'melhorá-lo'.

Eu havia descoberto no passado que a quantidade de tempo que gasto escrevendo em um idioma específico se relaciona a dois fatores principais: quanto preciso usar esse idioma para obter o resultado e quão fácil acho esse idioma para entender. Mas com Haxe o período de apreensão foi muito mais curto, e eu atribuo isso à minha pequena acumulação de conhecimento em uma variedade de idiomas. Até Haxe, eu nunca havia encontrado alguém que realmente me convinha e que parecesse certo, eram difíceis de entender ou simplesmente inúteis; bem, pelo menos inútil da minha perspectiva.

Haxe me permitiu ser muito mais expressivo com a forma como escrevo, não quero dizer o 'expressivo', como na qualidade que todo mundo fala sobre idiomas, pois eu quis dizer a capacidade de ter apenas uma idéia e executá-la, para tentar algo do jeito que eu sinto está certo. Se é bem sucedido ou totalmente falha.

Haxe tem sido uma curva de aprendizado muito fácil para mim, com minha formação geral em linguagens de estilo c e AS2 / 3, e eu realmente não tive nenhum problema em buscá-la. Uma coisa que sempre atrapalhou minha progressão com uma nova linguagem foi entender o conceito por trás dessa sintaxe / estrutura específica, mas mesmo depois de ter passado por esse obstáculo, muitas vezes descobria que a linguagem era por si só limitada, limitadora ou ambas. Com Haxe, não sou limitado nem estou encontrando a própria linguagem para me limitar. Com Haxe, não há teto de vidro, mas o piso é de vidro, pois não há limite para o que você pode fazer, mas você pode ver claramente como chegou lá

Apanhar Haxe não é como pegar alguns gravetos e fazer fogo, mas também não é como comprar um conjunto de oxiacetileno e começar um incêndio com isso. Nesse sentido, Haxe está mais perto de uma partida, que você pode reutilizar. Segue quase todas as conversões de algo que você costumava, mas adiciona novos recursos úteis. Mas, para fazer isso, não reinventa completamente a roda, apenas conserta os pedaços podres. (ok menos analogias no próximo parágrafo)

Coisas práticas:

A linguagem é simples, fácil e padronizada, enquanto ainda permite que o programador chegue o quanto quiser.

Você pode escrever um código de nível muito alto ou mexer nos pequenos detalhes (em um nível sério em algumas plataformas)

O Haxe não determina o que você pode e o que não pode fazer em nenhuma plataforma, ele fornece (ou planeja fornecer) acesso total a tudo, mas, onde pode, adiciona uma maneira padronizada de fazer as coisas.

A lista de discussão é muito útil e receptiva, e o fórum está acelerando agora.

O idioma está sendo constantemente alterado (em aspectos menores), com coisas novas adicionadas a cada versão.

Existem muito poucos bugs reais para a API principal e menos ainda para o compilador.

Todos falam abertamente sobre o idioma, sua direção e a direção que sugerem para Haxe (e, claro, por que deveria tomar essa direção).

E, finalmente, a Haxe não é um grande empreendimento privado de uma empresa grande (ou mesmo pequena) para ganhar dinheiro com você como desenvolvedor; em vez disso, foi criado para que todos os desenvolvedores possam usar, desenvolver e aprimorar. E é por isso que sinto que Haxe é onde quero estar. (agora para voltar à codificação)


13

Se você quiser ter uma resposta curta: SIM!

Para as pessoas que usam Haxe, o que o torna útil para você?

Na maioria das vezes eu uso o Haxe para o lado do servidor. (Isso significa PHP ou neko target). Na minha opinião, o PHP é a linguagem mais sugadora que já usei, foi por isso que comecei a usar o Haxe: Ter uma linguagem utilizável.

Outra grande vantagem para mim é que o Haxe é de código aberto.

Fornece portabilidade significativa?

Tendo o mesmo código em diferentes alvos! Eu não conseguia imaginar nenhuma maneira de ter mais portabillity.

Migrar um site do PHP para o mod_tora , que executa de 40 a 80 vezes mais rápido que o PHP, geralmente requer apenas 5 minutos de trabalho ???

Quais são alguns do mundo real e talvez com vantagens apreciadas?

  • A maior vantagem é a portabilidade do código e as excelentes opções de comunicação entre as plataformas; nunca foi tão fácil lidar com dados entre cliente e servidor. (Dê uma olhada na seção Remoting no wiki.)
  • A comunidade é ótima . (Se você gosta de listas de discussão, pelo menos. :-)
  • Outra coisa é: se você precisar executar operações nativas de plataformas muito não suportadas pelo Haxe (o que acontece muito raramente), o Haxe sempre oferece as opções para direcioná-las. É chamado de mágica Haxe . Em outras palavras: você pode fazer tudo o que pode fazer no idioma nativo da plataforma + tudo o que a Haxe oferece.

Quais são as armadilhas ou truques?

  • Documentação, às vezes a instalação não é 100% perfeita. O apoio aos IDEs poderia ser muito melhorado.
  • Às vezes, o destino JavaScript também é difícil de usar, porque o Haxe fornece uma linguagem muito boa, mas falta algum tipo de estrutura para as manipulações DOM mais comuns, mas acho que algumas pessoas estão trabalhando nisso ;-)
  • Se eu tenho que trabalhar para clientes, eles às vezes não gostam da ideia de realizar seu projeto em um idioma tão desconhecido.

PS: Eu acho que sempre vale a pena aprender um novo idioma, pois melhora as habilidades e experiências de programação.


mode_tora parece interessante. Mas o que você faz se não possui / deseja o httpd do apache? Há um servidor em neko, mas a documentação diz que é apenas para desenvolvimento.
31510 stesch

8

Bem, sua pergunta já está respondida, mas eu gostaria de adicionar alguns anúncios curtos.

Eu aprendi e usei o Haxe intensamente após os primeiros betas e o uso desde então. Foi o primeiro idioma que aprendi (eu ainda estava na faculdade na época) que realmente me fez entender a diferença entre idioma e API.

Você vê na faculdade que eu aprendi primeiro o AS2, o PHP e o Javascript. Não tivemos uma introdução formal à programação (e eu não estava estudando ciência da computação). Essas linguagens estão bastante ligadas às plataformas, e como um programador iniciante, assumi automaticamente que coisas como strlen () são PHP, MovieClip é AS2, ...

Ao usar o Haxe, eu realmente entendi o valor do design orientado a objetos, pois a plataforma não estava mais restringindo minhas classes. Eu poderia reutilizar o código escrito para um projeto Flash no meu código da Web comum, se os separasse de suas especificações de plataforma o suficiente.

Por causa das excelentes classes de comunicação remota que você pode usar para se comunicar entre plataformas, também percebi que o XML não é tão especial nem o JSON, não tem sentido sem o código que atua sobre ele.

Para alguém como eu, que começou a programar, essa foi uma grande revelação em um momento em que XML era 'legal' e bom para tudo ;-)


5

Haxe é uma linguagem inestimável. Muitos dos seus pontos positivos são muitas vezes esquecidos. Por exemplo, ele possui fantásticas bibliotecas internas que tornam o desenvolvimento de aplicativos muito mais fácil, como um ORM simples, mas muito poderoso (Neko / PHP), sistema de comunicação remota completo entre plataformas (Flash / JS / PHP / C ++ / Neko), onde qualquer A plataforma suportada pode se comunicar aparentemente com qualquer outra plataforma, uma sólida biblioteca de expressões regulares (suporte de todos, exceto o Flash <8) e muito mais.

Como observação, recentemente escrevi um aplicativo usando o Haxe para PHP / JS / Flash e constatei que a velocidade do desenvolvimento era aumentada exponencialmente.

Concedido, Haxe pode não ser centrado no designer, mas também não é hardcore. O Haxe é muito fácil de aprender e reutilizar e, à medida que o número de plataformas-alvo aumenta, os desenvolvedores do Haxe também podem direcioná-los, sem precisar aprender nada de novo.


4

Meu uso principal do Haxe ainda está limitado ao desenvolvimento do Flash. Estou apenas me aquecendo lentamente com a ideia de que pode ser usada para outros alvos. Ainda não vejo as vantagens nessa direção e faço meu PHP e JS diretamente em PHP e JS.

Embora eu não desenvolva para o back-end da Neko, é um ótimo suporte, pois significa que posso escrever casos de teste para código e integrá-los em um script de construção, em vez de apenas executá-los em um flash player. Esta é uma vantagem muito boa.

A natureza aberta do código e desenvolvimento também é uma boa vantagem. Eu realmente precisava de um pré-processador e, portanto, o #linesuporte foi adicionado ao Haxe. Acho que a Adobe nunca levaria meu pedido a sério.

Acho que ser uma linguagem digitada é uma enorme vantagem sobre muitas das novas linguagens modernas.

Existem várias armadilhas no que diz respeito à consistência do idioma e transparência de back-end. Eu mantenho uma lista daqueles que me afetam aqui . É claro que nenhum idioma é perfeito nesse aspecto, mas estou meio decepcionado que um novo idioma tenha tantos.


3

Eu tenho codificado Haxe em usos pessoais e profissionais há cerca de 2 anos. Existem algumas vantagens que você não obterá de outros idiomas, a maior delas foi que ele foi projetado quase desde o início como um compilador moderno em nível de produção que pode se adaptar de maneira flexível a novas plataformas e tirar proveito de seus recursos exclusivos . Isso o torna o mais próximo possível de uma versão de nível superior do C. Se você escreve código no Haxe, pode contar com isso.

A aceitação da comunidade foi mais forte do que você imagina - fiz uma pequena análise do tráfego da lista em termos de kilobytes compactados (a partir dos dados em http://lists.motion-twin.com/pipermail/haxe/ ) e o resultado mostra um aumento de 25 a 50% no acumulado do ano (janeiro a setembro) a cada ano desde 2006. Nos últimos seis meses, o tráfego realmente explodiu e estou seriamente pensando em digerir porque, caso contrário, minha caixa de entrada é inundada com centenas de mensagens no Haxe se eu sair por mais de um dia. Não é tão empolgado quanto outras línguas, mas isso, por sua vez, significa que as pessoas que estão atracando seus vagões em Haxe tendem a ser programadores confiantes e bem informados.

As pessoas experimentaram compiladores de idioma para idioma em outros contextos (Scheme em qualquer lugar, Python ou Ruby em JS etc.), mas esses idiomas foram projetados para um local e um propósito diferentes, e na tradução perdem muitos de seus melhores aspectos, fazendo com que os resultados são legais, mas não são confortáveis ​​para o dia-a-dia. Haxe não se sente assim; embora não tenha as conveniências resultantes da integração de idioma / tempo de execução, ele tem muitas outras coisas interessantes para oferecer no momento .


3

Subjetivamente, acho que sou mais produtivo no Haxe do que em qualquer outro idioma. Eu uso o Haxe principalmente visando Neko e JavaScript.

O compilador em si é muito rápido, o que me permite usar o Haxe como uma linguagem de script. Ele se inclina para a orientação do objeto, mas possui várias ferramentas funcionais; funções de primeira classe, correspondência funcional, bibliotecas lambda.

Acho a velocidade do Neko suficiente e seu tamanho de imagem pequeno é ótimo para ambientes restritos. É C FFI é excelente - muito simples de adicionar novas funcionalidades.

Uso o Haxe para meu controlador JavaScript do lado do cliente, disparando eventos para uma visualização jQuery padrão. Isso funciona muito bem, pois você pode digitar o código do cliente e do servidor simultaneamente, mantendo o JS bruto não digitado no mínimo e mantendo os benefícios das bibliotecas JS comuns. Bibliotecas JSON disponíveis. Aliás, embora o Haxe venha com mod_ * para o Apache etc, acho o uso de um proxy muito mais flexível, para que eu possa configurar várias instâncias do Neko atrás do servidor da web.

No geral, acho que é muito bem elaborado e pensado - e, criticamente, funciona como anunciado em todas as plataformas.


2

sim completamente

MAS precisa de uma IDE e documentação melhores, a falta de uma IDE excelente (como uma baseada em eclipse) faz toda a diferença, e não consigo atingir os níveis de produtividade que faço em outros idiomas devido a isso.

idioma = ótimo - melhor por milhas ambiente de desenvolvimento = ruim (no momento e imho)


1

Eu tinha Haxe no radar desde que começou. Concordo que parece muito promissor, mas notei que os desenvolvedores não o estão adotando tão rapidamente quanto você esperaria (em comparação com o RoR e até o Flex).

Independentemente de quão bom e adequado o Haxe possa ser para você no momento, você ainda estará entre os primeiros adotantes e certamente entrará em questões que os adotantes geralmente enfrentam.

Embora exista uma lista de discussão muito ativa com membros muito úteis, eu ainda esperaria até que mais pessoas se juntassem e mais livros e recursos fossem escritos sobre isso.

No final, o Haxe ajuda a escrever em um único idioma e a direcionar diferentes plataformas (principalmente JS e Flash, e agora NekoVM, PHP e C ++), você realmente precisa disso ?!


1
Não tenho certeza de que seja uma comparação justa para a taxa de adoção. Com o Flex, é um idioma patrocinado da Adobe. Isso automaticamente dá a ele "credibilidade nas ruas";) Ruby estava com cerca de 10 anos quando o Rails apareceu. Pelo que vi, parece que mais pessoas mudam para o RoR do que simplesmente para o Ruby. Em contraste, o Haxe tem cerca de metade da sua idade e, embora existam muitas estruturas para o Haxe em desenvolvimento por aí, certamente nenhuma se tornou viral como os trilhos.
tylermac 6/09/09

Seriamente?! Qual é a% de desenvolvedores de RoR que usaram Ruby antes do RoR ser lançado? E não importa para mim (como desenvolvedor) se uma plataforma de desenvolvimento foi patrocinada por uma grande empresa ou não? A taxa de adaptação está se movendo muito lento com Haxe IMO e esta é a minha principal preocupação sobre isso
Ammar

Novas abordagens nem sempre são óbvias para todos, lembro-me de RoR e papervision, dois projetos que se expandiram nos últimos anos que me interessaram, e devo dizer que o haXe realmente prova seu potencial e acredito que será maior que os dois. 2-3yrs vai dizer;)
JLM

Meu argumento continua de pé: é muito cedo :)
Ammar

1
@JLM: 4 anos se passaram, você pode editar sua resposta e ajustar :)
Janus Troelsen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.