# Gesucht: Programmiersprache die man compilen kann



## tischler (3. Nov 2006)

Moin,

bis jetzt habe ich schon viele Sprachen durch, aber die einzige die ich wirklich kann ist Java ^^
Hab mir das programmieren selbst beigebracht und bei C++ angefangen. Vom C++-Trip bin ich wieder abgekommen und hab eine Zeit lang in PHP Scripte programmiert. Dann bin ich weiter zu Perl und Java.

Java hat mich einfach überzeugt, weil es dafür schöne IDEs gab, man einfach plattformübergreifend Code erzeugen konnte und auch die Programmierung der GUI plattformübergreifend gut funktioniert.

.NET kam für mich nicht in Frage weil ich mich mit keiner Sprache beschäftigen wollte, die nur in einer proprietären Virtuellen Maschiene funktioniert. Ok, ist bei Java ähnlich, aber die VM gibts wenigstens für Linux/Unix/Mac ...
Manche meinen vllt. es gibt noch Mono; ja das mag schon sein und das ist auch gut so. Aber es wird u.a. durch Reverse Engineering entwickelt und ich weis nicht ob man sich darauf verlassen kann, das das Projekt keine lizensrechtlichen Probleme bekommt.

Nach Perl und Java bin ich zu Ruby und Python gekommen, zwecks Webentwicklung und bin beim RAD-Web-Framework Django hängen geblieben - wirklich genial das Ding - da will man nie wieder PHP schreiben^^

Jetz meine Frage:
Ich kann keine Sprache wirklich, die man ohne Probleme kompilieren kann und deswegen würde ich gerne wissen ob es eine Sprache gibt die folgende Kriterien erfüllt:

1.) höherer Abstraktionsgrad als C
2.) Zeiger o.ä. brauch ich nicht unbedingt
3.) Die Sprache brauch eine halbwegs schöne Bibliothek mit Fkt für Threads/Socket usw., also keine Sprache die fast keine Bibo hat
4.) Muss ohne große Umwege kompilierbar sein
5.) Sollte nicht ganz veraltet sein^^
6.) Am Ende will ich eine Datei haben, die ohne VM oder Interpreter lauffähig ist (.exe z.B.)

Die einzigen Sprachen die mir einfielen, die kompilierbar sind waren C/C++/Pascal.

Kennt jemand noch Alternativen?

mfg
Tischler


----------



## AlArenal (3. Nov 2006)

Die Platzhirsche hast du alle abgegrast. Darüber hinaus gibt es keine weitere Super-Duper-Sprache die alles kann, aber nur noch niemand entdeckt hat.

BTW werden die meisten Sprachen für die CLR und JVM auch kompiliert. Wenn du also Sprachen suchst, die kompilierbar sind, solltest du deine Definition von "kompilierbar" mitliefern. 

Ansonsten geht aus deinem Text nicht hervor warum du auf der Suche nach noch einer weiteren Sprache bist. Hast du dir zum Ziel gesetzt alles mal gemacht zu haben? Eintrag ins Guinness Buch? Wozu dieser Fokus und was versprichst du dir davon?


----------



## tischler (3. Nov 2006)

Ich hab blos so viele Sprachen durch weil mir bis auf Java und Python keine wirklich gefallen hat. In den andern Sprachen programmier ich garnicht ... hab sie halt nur mal überflogen und ein bisschen mit ihnen gecodet.

Jo, und was ich mit kompilieren meine: das man eine exe hat, oder halt eine Datei die keine VM oder keinen Interpreter braucht, um ausgeführt zu werden.

mfg
Tischler


----------



## Wildcard (3. Nov 2006)

GJC  :bae:


----------



## AlArenal (3. Nov 2006)

Dann noch viel Spaß beim suchen - wofür auch immer.

Sprachen sind nur Werkzeuge. Ob der Hammer nun grün oder braun ist, ist sowas von latte... 

Und mit Java und Python kann man doch 95% der Fälle abdecken. Wozu dann noch suchen?


----------



## tischler (3. Nov 2006)

Das ist doch was, Wildcard - danke dafür.

AlArenal: es gibt auch Rechner auf denen kein Python oder keine Java VM installiert ist.


----------



## AlArenal (3. Nov 2006)

tischler hat gesagt.:
			
		

> AlArenal: es gibt auch Rechner auf denen kein Python oder keine Java VM installiert ist.



Klar. Es gibt auch Rechner auf denen nie ne Software von mir laufen wird. Das sind übrigens die meisten.... Die finde ich aber auch nicht so wahnsinnig interessant


----------



## Wildcard (3. Nov 2006)

GJC ist nicht schneller als Java, und du hast auch sonst keine echten Vorteile.
Zu der Argumentation mit der JavaVM:
Erstens kannst du die JavaVM mit ausliefern und zweitens kannst du aus Javaprogrammen auch .exe erzeugen in denen die VM enthalten ist.


----------



## AlArenal (3. Nov 2006)

Wildcard hat gesagt.:
			
		

> GJC ist nicht schneller als Java, und du hast auch sonst keine echten Vorteile.
> Zu der Argumentation mit der JavaVM:
> Erstens kannst du die JavaVM mit ausliefern und zweitens kannst du aus Javaprogrammen auch .exe erzeugen in denen die VM enthalten ist.



Das geht sogar in ähnlicher Weise mit Python....


----------



## SlaterB (3. Nov 2006)

tischler hat gesagt.:
			
		

> AlArenal: es gibt auch Rechner auf denen kein Python oder keine Java VM installiert ist.



ob es für solch exotischen Rechner dann wohl Kompiler für die Umsetzung des Quellcodes in ausführbare Dateien gibt?..
bei exotischen Sprachen fern von C noch unwahrscheinlicher


----------



## tischler (3. Nov 2006)

Sagen wirs mal soo ...

Gibt auch genug Rechner dort kann man nicht so einfach eine VM oder einen Interpreter installieren, oder man darf es nicht...


----------



## kama (3. Nov 2006)

Hallo,



			
				tischler hat gesagt.:
			
		

> In den andern Sprachen programmier ich garnicht ... hab sie halt nur mal überflogen und ein bisschen mit ihnen gecodet.


Ahm....ich würde sagen, dass Du dir selbst wiedersprichst. Vorher hast Du geschrieben, dass Du die Sprachen durch hättest. Was heißt das denn genau? eine Woche , einen Monat, ein Jahr ?

Ich finde es abgesehen davon, ein wenig merkwürdig mit recht Wenig Erfahrung (Vermutung, da keine Angaben vorhanden) eine Sprache so zu beurteilen......


Ich selbst habe mit Assembler angefangen (ca. 3 Jahre), C (3 Jahre), C++ (3 Jahre), Delphi (2 Jahre), VB (2 Jahre), Perl (ca. 1 Jahr), PHP (ca. 5 Jahre) und jetzt halt Java (ca. 2,5 Jahre). ..derzeit noch ein wenig Python nebenbei...


Meiner Meinung nach werden die Probleme nicht von der Programiersprache gelöst sondern von dem der Sie benutzt und was noch wichtiger ist, man muß gelernt haben vom Problem zur Lösung zu kommen, aber OHNE Programmiersprache. Dann ist der Rest nur noch Kinderkram (Coden...).




			
				tischler hat gesagt.:
			
		

> Jo, und was ich mit kompilieren meine: das man eine exe hat, oder halt eine Datei die keine VM oder keinen Interpreter braucht, um ausgeführt zu werden.


Dumme EXE so eingefahren auf Windof...Sorry. SCNR.

Abgesehen davon, was hast Du gegen ein VM? 

BTW: was ist die CPU in Deinem Rechner eigendlich? 


Was möchtest Du denn machen? Im Endeffekt ist es doch egal, ob die Sprache compiliert, interpretiert, Threaded-Code erzeugt oder Bauklötzchen erzeugt oder was auch immer... Hauptsache ist doch, dass das Problem gelöst wird...oder verstehe ich hier was falsch...

EDIT: Schöne IDE's gibt es für PHP auch ;-)
MfG
Karl Heinz


----------



## byte (3. Nov 2006)

kama hat gesagt.:
			
		

> Dumme EXE so eingefahren auf Windof...Sorry. SCNR.



Also man kanns auch übertreiben, Plattformunabhängigkeit in den Himmel zu loben. Der Threadersteller hat nach Sprachen gefragt, die nativ für eine Plattform kompilieren. Und nichts anderes sind doch exe Dateien.



> Abgesehen davon, was hast Du gegen ein VM?



Hat er doch geschrieben: Sie muss explizit installiert werden.


@Threadersteller: Abgesehen von dem Tipp von Wildcard würde ich doch zu C++ raten, wenn Du Programme schreiben und nativ kompilieren willst.


----------



## tischler (3. Nov 2006)

Schau, ich hab mit denen Sprachen etwas programmiert und bin dann zu neuen Ufern aufgebrochen weil mich an den Sprachen immer etwas gestört hat.

CPU??? Mal überlegen .... NEIn das habe ich noch nie gehört, keine Ahnung was das sein könnte. Ich glaub ich hab sowas nicht.

Und zum Thema exe: 6.) Am Ende will ich eine Datei haben, die ohne VM oder Interpreter lauffähig ist (.exe z.B.)<--
Dort steht doch extra z.B. . Nix mit nur Windows, ich hab auch Linux auf dem Rechner. Es geht auch nicht um irgendeine abstrakte Problemlösung, es geht darum ein Programm zuschreiben das kompiliert und gelinkt wird und keine VM oder einen Interpreter braucht.

Wie willst du einen HTTP-Server in Perl auf einer Maschiene zum laufen bringen auf der kein Perl Interpreter installiert ist und man davon ausgehen kann, das keiner installiert werden soll.

Und genau für sowas suche ich eine Sprache die man compilen und linken kann.

Ich werde jetzt wohl C lernen.


----------



## byte (3. Nov 2006)

Sorry aber C ist doch Unsinn, es sei denn Du willst in den Embedded Bereich gehn. Nimm C++.


----------



## Roar (3. Nov 2006)

ne neue programmiersprache lernen, weil man die nativ kompilieren kann is sowieso unsinn. dein programm braucht immer eine entsprechende laufzeitumgebung um laufen zu können, sei die laufzeitumgebung nur die java vm, die .net vm, die visual basic runtime oder dein betriebssystem selber. und wenn du schon eine eine sprache mit höherer abstraktion als c willst, entscheid dich doch auch für eine laufzeitumgebung abstrakter als Cs


----------



## AlArenal (3. Nov 2006)

Versuchs mal mit Smalltalk in der Form von Squeak. Ist mal ganz was anderes


----------



## tischler (3. Nov 2006)

Ok, werd mir wohl C++ anschauen, für C hab ich bloß ein schönes Buch gefunden.


----------



## AlArenal (4. Nov 2006)

tischler hat gesagt.:
			
		

> Ok, werd mir wohl C++ anschauen, für C hab ich bloß ein schönes Buch gefunden.



Wer misst, misst Mist. In diesem Fall misst du nicht, was du für die Tauglichkeit von Sprachen hältst, sondern lediglich deine Fähigkeit gute Literatur ranzuschaffen.


----------



## tischler (4. Nov 2006)

Da kann ich dir zustimmen, doch erachte ich als sehr wichtig das eine gute Dokumentation und gute Literatur zur Sprache vorhanden ist.

Das sehe ich bei Java als ein riesiges Plus an: Die Java-API-Doc.

Schau dir mal die Doc von Ruby an, dann weist du was ich meine.


----------



## AlArenal (4. Nov 2006)

Das ist in diesem Fall Äpfel mit Birnen verglichen (C und Java). C ist nunmal "nur" eine Sprache und dazu gehört ne leichtgewichtige Funktionsreferenz/API. Die Sprache selbst braucht nicht viel Dokumentation.

Von daher kann ein oberflächlicher Vergleich kein adäquates Ergebnis leifern außer dass bei Java in den Standard-Libs schon viel drin ist und bei C nicht. Das sagt für sich gesehen aber überhaupt nichts über die Qualität diverser 3rd Party Libs aus.

So gesehen isses völliger Quatsch ein Java-Buch mit einem C-Buch zu verlgeichen. Zumal man auch sagen könnte dass alle Java-Bücher grundsätzlich scheiße sind, weil sie die API nur an der Oberfläche ankratzen können. Die Power einer Sprache erschließt sich durch den Programmierer der sie nutzt.


----------



## justchris (11. Nov 2006)

Hallo Tischler,

Ich programmiere hobbymäßig in Java und C++. Wenn Du unbedingt ein kompilierte ausführbare Datei haben willst und trotzdem plattformunabhängig bleiben willst kann ich dir nur C++ in Verbindung mit wxWidgets ans Herz legen, das einzige was Du tun musst ist halt einmal für jede Plattform zu kompilieren. Willst Du noch was in Richtung 2D oder 3D machen dann nimm dir SDL und OpenGL zur Brust.  Sehr empfehlen kann ich Dir das Buch von Jürgen Wolf "C++ von A bis Z" dort wird auch auf plattformunabhängige GUI- und Netwerkprogrammierung mit wxWidgets eingegangen.

Gruß Chris


----------

