2010-03-24 1 views
1

En tant qu'extérieur Mac, il semble que deux langages de programmation populaires sur Mac semblent être Objective C et Ruby.Pour quels programmes sont l'objectif C et Ruby idéal sur le Mac?

D'après ce que je comprends l'API Cocoa principale semble être écrit et optimisé pour Objective C, mais il est également possible d'utiliser Ruby pour cela. Y a-t-il différents domaines où chaque langue est idéale, par exemple, je pourrais imaginer que l'Objective C pourrait être idéal pour une couche GUI, ou une application de bureau autonome, et Ruby pourrait être bon pour les services Web, etc. ou couches d'accès aux données?

Quelle langue serait un bon choix pour une bibliothèque de services, par exemple? Pouvons-nous écrire une bibliothèque dans une langue et la lier à partir d'un programme principal écrit dans l'autre langue?

Si je voulais écrire une application en couches d'entreprise en utilisant la conception pilotée de domaine et l'injection de dépendance qui pourraient soutenir langues chacune des préoccupations? Des choses comme DDD et DI sont-elles courantes chez les développeurs Mac?

Juste un étranger curieux.

Répondre

1

Si je devais écrire une grosse application, je tiens à Objective-C seulement. Ce n'est pas difficile, c'est l'option la plus supportée et pour le prévisible, ça restera comme ça. Quant à Ruby, il y avait auparavant un support Java dans Cocoa qui n'existe plus. Je détesterais avoir une grande application héritée écrite en mélange de Java et Objective-C et ayant la perspective de réécrire les parties Java ou de coller avec un ancien système d'exploitation.

(Le paragraphe précédent s'applique à l'écriture d'applications de bureau pures Si vous vouliez écrire une partie de l'application en tant que service web local, ce serait très différent, car le support de Ruby serait beaucoup plus fiable. votre peuple, l'expérience, les objectifs et d'autres variables.)

Dependency injection et DDD sont les deux idées abstraites, donc oui, vous pouvez certainement le faire à Cocoa. Je n'ai aucune idée de combien de développeurs Mac le font. Comme pour DI, il existe un fort support pour le couplage lâche dans Cocoa et toute la pile technologique (voir Interface Builder, KVO/KVC ou les bindings).

Espérons que ça aide.

+1

Qu'est-ce que le support Java, passé ou présent, a à voir avec Ruby? –

+0

Si vous voulez écrire une «application d'entreprise», vous devriez probablement choisir une technologie qui va rester pendant un certain temps. L'exemple de Java semble laisser Objective-C comme le seul choix vraiment sûr à cet égard. (En parlant d'applications de bureau.) – zoul

+0

@Peter Hosey, Zoul: Ce que Zoul n'a pas mentionné très clairement, c'est qu'Apple supportait activement un pont Java vers ses frameworks Cocoa basés sur Objective-C. Depuis Mac OS X 10.4, ceci est marqué comme obsolète et les nouvelles fonctionnalités ajoutées aux frameworks ne sont plus disponibles dans le pont Java. Le risque avec l'utilisation de Ruby est qu'Apple pourrait de même "fermer" le pont à un moment donné dans le futur. Bien qu'avec le développement de MacRuby pour remplacer RubyCocoa, cela semble maintenant moins susceptible de se produire. Voir l'article "Cocoa (API)" sur Wikipedia pour plus de détails. – Rinzwind

Questions connexes