ti-enxame.com

Um idioma para governar todos eles? (Eles são plataformas.)

Tenho discutido um projeto com um cliente e eles querem usar uma única linguagem para implantar no maior número de plataformas possível.

(Não tenho certeza se é uma boa ideia, porque cada plataforma oferece uma experiência de usuário e uma metáfora de IU diferentes. Em alguns casos, os tamanhos de tela também variam. Além disso, o iPhone está fora de funcionamento, não importa o idioma que usamos. , Estou divagando ...)

O projeto exibirá um bloco arbitrário de texto a cada dia e rastreará se o usuário o "leu". Alguns outros recursos na mesa são "nags" e a capacidade de ir para o texto de outros dias.

Eu conheço o Flash da época do CS3, e acho que isso se traduz em AIR, mas não sei se o AIR pode fazer o que queremos.

Por outro lado, tenho (uma) pouca experiência com Java ou Python, mas também parecem bons concorrentes.

Qual idioma devo usar aqui? Por quê?

Editar:

Ele também será executado em plataformas de desktop.

5
Moshe

ActionScript 3 é a linguagem. Ele roda em uma ampla variedade de plataformas. No navegador (flash player), no desktop (AIR), em dispositivos móveis em navegadores (Android) e também como aplicativos nativos (Android e iOS ambos). Esqueça o flashlite.

3
user4626

Essas são linguagens que têm fatores de implantação muito bons:

Javascript.

Por quê? Ele roda em um navegador, e a maioria das plataformas que você deseja ter um navegador. Porém, alguns telefones celulares de baixo custo podem ter o navegador drasticamente despojado (ou Opera Mini, que oferece suporte a Javascript apenas no lado do proxy, e Javascript do lado do cliente muito limitado).

JVM

Java Virtual Machine é onipresente em quase todos os telefones celulares, desktops ou servidores. Todas as outras coisas sendo iguais, talvez seja a melhor plataforma se você quiser portabilidade fácil. Quase todos os telefones celulares, antigos e novos, suportam JVM, a única grande exceção é o iPhone.

Python

Python é muito onipresente no mundo Linux e Unix; e a linguagem tem um comportamento muito consistente em diferentes plataformas, você quase não precisa de trabalho adicional para escrever um programa de plataforma cruzada em python. No entanto, a maioria do Windows não vem com Python por padrão, e a maioria dos telefones celulares não suporta Python. OTOH Jython, compila Python código para JVM; isso combina a consistência e facilidade de uso de Python com a onipresença da plataforma JVM.

Se você não precisa se preocupar com o iPhone, então o desenvolvimento JVM é o caminho a percorrer. Se você odeia a sintaxe da linguagem Java, então Jython é uma alternativa melhor. Se você precisa de mais portabilidade, porém, Javascript é provavelmente o caminho a percorrer; no entanto, escrever qualquer coisa em Javascript é doloroso.

17
Lie Ryan

C

Você pode encontrar uma versão do gcc para qualquer plataforma com a qual sonhar, desde o menor microcontrolador até o maior supercomputador, e se não encontrar um, você pode simplesmente construir seu próprio conjunto de ferramentas.

7
mouviciel

Free Pascal

Free Pascal (também conhecido como FPK Pascal) é um compilador Pascal profissional de código aberto de 32 e 64 bits. Está disponível para diferentes processadores:

  • Intel x86
  • AMD64/x86_64
  • PowerPC
  • PowerPC64
  • Sparc
  • ARM

Os seguintes sistemas operacionais são atualmente suportados:

  • Linux
  • FreeBSD
  • Haicai
  • Mac OS X/Darwin
  • DOS
  • Win32
  • Win64
  • WinCE
  • OS/2
  • Netware (libc e clássico)
  • MorphOS

A versão 1.0 descontinuada também oferece suporte ao Motorola 680x0.

Lazarus é uma plataforma cruzada de código aberto IDE que fornece um desenvolvimento Delphi-mimic experiência para desenvolvedores Pascal e Object Pascal. É desenvolvido e suportado pelo compilador Pascal Livre. Lazarus está disponível para Microsoft Windows, várias distribuições Linux, FreeBSD, bem como Mac OS X.

Lazarus

6
Jim McKeeth

Com .NET, Mono , GTK # , MonoTouch e Mono para Android você pode alcançar a grande maioria das plataformas com qualquer linguagem .NET e ter uma IU de aparência nativa em cada um.

  • .NET vai te dar
    • ASP.NET para a Web
    • Silverlight para a Web no Windows e Mac (o Moonlight do Mono leva você para o Linux também!)
    • Silverlight para Windows Phone 7
  • Mono com GTK # resultará em
    • Mac OS X
    • Linux
    • Outros talvez, mas com aparência menos nativa. Ouvi dizer que alguns chegaram ao Wii com Mono. . .
  • MonoTouch para iPhone, iPad, etc.
  • MonoDroid para Android
  • BlackBerry .NET - primeiro ouvi falar dele, mas dizem que .NET no BlackBerry, presumo com QT.

Não consigo pensar em nenhuma outra plataforma importante que você esteja perdendo. Vocês? É claro que isso indica estruturas que você pode usar para direcionar todas essas plataformas. Vou deixar você escolher o idioma. C #, Oxygene ou VB.NET são os mais populares no .NET. Oxygene (incluído no Delphi Prism) tem o benefício adicional de ser parcialmente compatível com Delphi nativo para desenvolvimento nativo do Windows, mas se você quiser usar IronRuby ou F #, não o impediremos.

5
Jim McKeeth

Você pode querer dar uma olhada em http://www.phonegap.com/

O aplicativo que você está detalhando parece muito simples e, pessoalmente, não sou um fã de camadas que ficam acima da plataforma nativa, no entanto, isso pode ser perfeito para você.

Edit: parece que a natureza da questão mudou um pouco.

4
dannywartnaby

I li recentemente como o Netflix é implantado em mais de 400 plataformas usando HTML5. Definitivamente, vale a pena ler.

Em geral, eu não tentaria me comprometer com um idioma. Na empresa onde trabalho, utilizamos vários idiomas e tecnologias. Trata-se de usar a linguagem certa para o trabalho certo, assim como você usa a ferramenta certa para o trabalho. Eu não usaria uma chave de fenda para pregar um prego, assim como não usaria um martelo para trocar as porcas do meu carro.

2
Jim

uhm, que tal haXe ? Você pode ter como alvo várias plataformas agora e, se aprender OCaml, estará livre para escrever um novo back-end para o que quiser.

2
back2dos

Parece que isso é para plataformas móveis, correto? Nesse caso, você está quase sem sorte, pois não há linguagem para governar todos eles. Existem produtos que compilarão uma solução para outra (como http://www.xmlvm.org/Android/ ), mas além disso você terá que usar a linguagem/ambiente nativo .

2
Martijn Verburg

Revolução LiveCode/Runtime

é implementado em Mac, Windows e Linux e também cria software independente para todos os tipos de outras plataformas.

1
Richmond Mathewson

Com C # .NET você pode implantar em qualquer plataforma móvel principal nativamente (grande diferença das plataformas HTML 5 como PhoneGap, que são basicamente aplicativos da web híbridos) utilizando Mono (para Android), MonoTouch (para Apple) e BlackBerry.NET.

A linguagem e a plataforma são bem suportadas pela Microsoft, com muitos empregadores procurando por esse conjunto de habilidades. Se você não está totalmente vendido, basta ir ao seu site de empregos de tecnologia favorito e começar a conectar diferentes idiomas/plataformas na caixa de pesquisa. Você terá uma ideia de qual direção deseja tomar.

1
Jer

Adobe Flash/Flex

(não tenho certeza se isso estava sendo descartado em sua pergunta)

Funciona em quase todos os navegadores, a maioria das plataformas móveis e com AIR, a maioria das plataformas de desktop.

Leia: http://business2press.com/2010/09/11/Adobe-reversi-allows-developers-to-make-single-app-for-different-platforms/

Assistir: http://www.youtube.com/watch?v=22vicDlzmkI&feature=player_embedded

0
Adam