Beste kompilierte Sprache für Mac OS X und Linux Kompatibilität [geschlossen]

8

Wir müssen eine Software schreiben, die sowohl auf einem Mac OS X Server als auch auf Ubuntu kompiliert und ausgeführt wird. Wir würden gerne Objective-C mit all seiner Cocoa-Güte verwenden, aber die GNUstep-Implementierungen der Teile, die wir verwenden, sind gebrochen (im aktuellen Ubuntu-Paket sowieso.)

In Anbetracht dessen sollten wir C ++ (ich würde wirklich lieber nicht), C oder etwas anderes, an das wir nicht gedacht haben, verwenden?

Es ist ein Server / Back-End-Prozess, der sehr ressourcenintensiv ist, Java und andere interpretierte Versionen dieser Software schneiden viel schlechter ab als der Objective-C-Proof-of-Concept, den wir geschrieben haben, daher wollen wir jetzt neu schreiben eine "kompilierte [1]" Sprache.

(NB: Manche Leute mögen das für subjektiv halten, aber am Ende des Tages müssen wir eine Arbeit erledigen, es muss hier eine angemessen richtige Antwort geben).

[1] Kompiliert mit nativen CPU-Anweisungen, nicht in "Byte-Codes" kompiliert, die dann von einem Interpreter ausgeführt werden müssen.

    
corydoras 28.09.2009, 04:27
quelle

11 Antworten

20

Ich würde die Kerngeschäftslogik in C implementieren und mir die Zeit nehmen, native GUI-Wrapper in den Code jeder Plattform zu schreiben - Objective-C / Cocoa und GTK / gnome oder was auch immer.

    
Devin Ceartas 28.09.2009, 04:40
quelle
6

Welche Art von Software möchten Sie erstellen?

Die wahrscheinlichste Antwort ist C / C ++.

    
phoebus 28.09.2009 04:34
quelle
6

Ich würde Objective-C für Portabilität und Benutzerfreundlichkeit empfehlen. Sie können Cocoa nicht verwenden, wenn Sie unter Linux laufen wollen, aber Objective-C ist eine wirklich nette Sprache, und Sie können leicht mit normalem C-Code interagieren.

    
Amok 28.09.2009 05:09
quelle
6

Erwägen Sie die Verwendung von Python. Mit wxPython können Sie auf beiden Plattformen native Anwendungen schreiben.

Python wird mit Max OS X und Ubuntu Desktop geliefert und Ihre Anwendung kann so gepackt werden, dass sie wie jede andere native Anwendung auf jeder Plattform aussieht und sich auch so verhält.

    
Palo Verde 28.09.2009 04:49
quelle
4

Wie steht es mit Java?

Und wenn du ein wirklich natives Ding brauchst, kannst du immer JNI verwenden.

    
Johan 28.09.2009 05:13
quelle
3

Wie wäre es mit FreePascal vielleicht mit Lazarus wenn Sie an GUI-Entwicklung interessiert sind?

    
RobS 28.09.2009 15:53
quelle
2

Angenommen, Sie möchten eine Anwendung mit einer grafischen Benutzeroberfläche erstellen, denke ich, dass C ++ / QT der wahrscheinlichste Kandidat ist. Ich kenne keine andere kompilierte [1] Sprache mit ausgereifter Toolkit-Unterstützung unter OSX und Linux.

  1. Mit 'kompiliert' mache ich die Annahme, dass du meinst "erzeugt eine native ausführbare Datei".
quelle
0

Ich würde für ANSI C oder C ++, gekoppelt mit POSIX, stimmen.

    
mouviciel 28.09.2009 09:04
quelle
0

Angesichts der anderen Antworten, die Sie unten finden, müssen Sie zwei Möglichkeiten wählen.

1) Wenn Sie eine GUI benötigen, müssen Sie entweder die UI-Bibliothek entweder plattformübergreifend (z. B. QT, wx usw.) oder andere für OSX und Linux - Apples bevorzugte Methode wählen und ich denke, Sie bekommen das beste Aussehen und fühle dich auf jeder Plattform

2) ob Ihre Anwendung schnelle Berechnungen benötigt, da dies Ihre Sprachwahl beeinflussen könnte, z. C ++ / C / Objective-C vs Python

Die beiden Optionen sind getrennt, da Sie die meisten GUI-Optionen mit verschiedenen Sprachen kombinieren können.

    
Mark 28.09.2009 10:17
quelle
0

Ich würde vermuten, dass C / C ++ die offensichtlichsten plattformunabhängigen Sprachen sein würde.

  

(würde ich wirklich lieber nicht)

Warum nicht? Welche Art von Software planen Sie zu entwickeln?

    
Nick Bedford 28.09.2009 04:30
quelle
0

Es hängt davon ab, was Sie tun möchten. Wenn Sie nach einer sehr leistungsstarken Anwendung suchen, sind Ihre Optionen C / C ++. Wenn Sie nach einer schnellen Entwicklung suchen, sind Ihre Optionen Java / Python.

    
rjoshi 28.09.2009 04:40
quelle