Question

J'ai discuté d'un projet avec un client et ils veulent utiliser une seule langue à déployer au plus grand nombre des plates-formes possibles.

(je ne suis pas sûr que c'est une bonne idée, parce que chaque offre de la plate-forme une expérience utilisateur différente et métaphore interface utilisateur. Dans certains cas, les tailles d'écran varient également. En outre, l'iPhone est de la langue que nous en cours d'exécution, peu importe utilisation. Mais je digresse ...)

Le projet va afficher un bloc de texte arbitraire chaque jour et suivra si l'utilisateur a « lire ». D'autres caractéristiques sur la table sont des « bourrins » et la capacité d'aller au texte d'un autre jour.

Je sais Flash à partir des jours CS3, et je pense que AIR se traduit, mais je ne sais pas si AIR peut faire ce que nous voulons.

D'autre part, j'ai (a) peu d'expérience avec Java ou Python, mais ceux qui semblent comme de bons candidats aussi.

Quelle langue dois-je utiliser ici? Pourquoi?

Modifier

Cela va fonctionner sur les plates-formes de bureau aussi.

Était-ce utile?

La solution

ActionScript 3 est la langue. Il fonctionne sur grande variété de plates-formes. Dans navigateur (flash), sur le bureau (AIR), sur les appareils mobiles dans les navigateurs (Android) ainsi que les applications natives (Android et iOS à la fois). Oubliez flashlite.

Autres conseils

Ce sont des langues qui ont un très bons taux de déploiement:

Javascript.

Pourquoi? Il fonctionne sur le navigateur, et la plupart des plates-formes que vous voulez bien avoir sur un navigateur. Bien que, certains téléphones mobiles bas de gamme peuvent avoir sérieusement navigateur dépouillé (ou Opera Mini, qui prend en charge JavaScript uniquement sur le côté proxy, et très limité côté client JavaScript).

JVM

Java Virtual Machine est omniprésente dans presque tous les téléphones mobiles, de bureau ou ordinateur serveur. Toutes choses étant égales par ailleurs, peut-être est la meilleure plate-forme si vous voulez la portabilité facile. Presque tous les téléphones mobiles, anciens et nouveaux, soutient JVM, la seule grande exception est l'iPhone.

Python

Python est très omniprésent dans le monde Linux et Unix; et la langue a un comportement très cohérent sur différentes plateformes, vous avez besoin presque pas de travail supplémentaire pour écrire un programme multi-plateforme en python. Cependant, la plupart Windows ne sont pas livrés avec Python par défaut, et la plupart des téléphones mobiles ne prend pas en charge Python. OTOH Jython, compile le code Python machine virtuelle Java; cette combine la cohérence et la facilité d'utilisation de Python avec l'ubiquité de la plateforme machine virtuelle Java.

Si vous n'avez pas besoin de se soucier de l'iPhone, puis le développement JVM est le chemin à parcourir. Si vous détestez la syntaxe du langage Java, puis Jython est une plus belle alternative. Si vous avez besoin de plus de portabilité si Javascript est probablement la voie à suivre; écrit cependant quelque chose en Javascript est douloureux.

C

Vous pouvez trouver une version de gcc pour toute plate-forme, vous pouvez rêver, du plus petit micro-contrôleur au supercalculateur le plus énorme, et si vous ne trouvez pas que vous pouvez simplement construire un ensemble d'outils de votre propre.

Free Pascal

Free Pascal (alias FPK Pascal) est un Open Source 32 et 64 bits compilateur Pascal professionnel. Il est disponible pour différents processeurs:

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

Les systèmes d'exploitation suivants sont actuellement pris en charge:

  • Linux
  • FreeBSD
  • Haiku
  • Mac OS X / Darwin
  • DOS
  • Win32
  • Win64
  • WinCE
  • OS / 2
  • Netware (libc et classique)
  • MorphOS

La version 1.0 prend également en charge l'arrêté Motorola 680x0.

Lazarus est une source ouverte IDE multi-plateforme qui fournit un Delphi-mimétique expérience de développement pour les développeurs Pascal et Pascal objet. Il est développé et soutenu par le compilateur Free Pascal. Lazarus est disponible pour Microsoft Windows, plusieurs distributions Linux, FreeBSD, ainsi que Mac OS X.

Lazarus

Avec .NET, Mono , GTK # , MonoTouch et Mono pour Android vous pouvez accéder à la grande majorité des plates-formes avec tout langage de .NET et une interface utilisateur à la recherche native sur chaque.

  • .NET vous obtiendrez
    • ASP.NET pour le Web
    • Silverlight pour le Web sur Windows et Mac (Moonlight de Mono sur Linux obtient aussi!)
    • Silverlight pour Windows Phone 7
  • Mono avec GTK # vous obtiendrez
    • Mac OSX
    • Linux
    • D'autres peut-être, mais moins natif à la recherche. J'entends certains ont eu sur la Wii avec Mono. . .
  • MonoTouch pour l'iPhone, iPad, etc.
  • MonoDroid pour Android
  • BlackBerry .NET - Tout d'abord j'ai entendu parler, mais ils disent .NET sur le BlackBerry, je suppose avec QT.

ne peut pas penser à d'autres plates-formes majeures qui vous manque là-bas. Tu? Bien sûr, cela rappelle les cadres que vous pouvez utiliser pour cibler toutes ces plates-formes. Je vous laisse choisir la langue. C #, VB.NET ou Oxygene sont les plus populaires sur .NET. Oxygene (inclus dans Delphi Prism) a l'avantage d'être partiellement compatible avec Delphi natif pour le développement Windows, mais si vous voulez utiliser IronRuby ou F # nous ne pouvons vous arrêter.

Vous pouvez jeter un oeil à http://www.phonegap.com/

L'application vous détaillant des sons très simples, et personnellement je ne suis pas fan de couches qui sont assis au-dessus de la plate-forme native, mais cela peut être parfait pour vous.

Edit:. Il semble que la nature de la question a quelque peu changé

On dirait que ceci est pour les plates-formes mobiles correctes? Dans ce cas, vous êtes à peu près pas de chance car il n'y a pas de langue pour les gouverner tous. Il y a des produits qui traversera décompiler une solution à un autre (par exemple http://www.xmlvm.org/android / ), mais à part cela, vous devrez utiliser la langue maternelle / environnement.

Uhm, que diriez-vous haXe ? Vous pouvez cibler un grand nombre de plates-formes maintenant et si vous apprendre OCaml vous êtes libre d'écrire un nouveau back-end pour tout ce que vous aimez.

lu récemment comment Netflix déploie à plus de 400 plates-formes en utilisant HTML5. Il vaut vraiment lis.

En général, je ne voudrais pas essayer de s'engager dans une langue. A l'entreprise où je travaille à nous utilisons différentes langues et technologies. Il est sur l'utilisation de la bonne langue pour le bon travail, tout comme vous utilisez l'outil pour le travail. Je ne voudrais pas utiliser un tournevis pour enfoncer un clou juste comme je ne voudrais pas utiliser un marteau pour changer ma voiture de écrous.

LiveCode / Revolution Runtime

déploie sur Mac, Windows et Linux et rend le logiciel autonome pour toutes sortes d'autres plateformes.

Avec C # .NET, vous pouvez déployer sur une plate-forme mobile majeur en mode natif (différence de HTML 5 plates-formes comme PhoneGap qui sont essentiellement des applications Web hybrides) en utilisant Mono (pour Android), MonoTouch (pour Apple), et BlackBerry.NET.

La langue et la plate-forme est bien pris en charge par MicroSoft avec de nombreux employeurs recherchent cet ensemble de compétences. Si vous n'êtes pas complètement vendu, allez à votre site Web travail tech préféré et commencer à brancher langues / plates-formes différentes dans la zone de recherche. Vous aurez une idée de la direction que vous voulez prendre.

Adobe Flash / Flex

(pas sûr qui était exclue dans votre question)

Runs dans presque tous les navigateurs, la plupart des plates-formes mobiles et avec AIR, la plupart des plates-formes de bureau.

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

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

Licencié sous: CC-BY-SA avec attribution
scroll top