Welche Programmiersprache?
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
artikel
assembler
betriebssystem
brauche
code
datei
erstellen
http
nachteil
performance
programmieren
programmiersprache
projekt
sache
sagen
sprache
syntax
system
url
windows
-
Hallo,
ich verfüge über Grundkenntnisse in HTML, CSS, PHP, MySQL, Python und ganz, ganz, ganz wenig C++.
Ich habe ein Projekt angefangen, dass dann in PHP ausgeartet ist, und ich merkte: PHP ist hierfür GANZ falsch (zu langsam etc.). Ich hab es dann mit Python angefangen neu zu schreiben, ein bisschen schneller, bessere Syntax, und die vielen anderen Vorteile, die Python bietet. Nun habe ich das Problem, dass ich mit Python 3.x das ganze nicht als .exe verpacken kann, um es irgendjemanden zu schicken, der es auch ohne Python ausführen kann. Also ist es irgendwie auch die falsche Sprache, auch wenn ich die Syntax von Python echt GUT finde...
Ich suche also eine Sprache, die folgende Merkmale aufweist:
- Einfache Syntax (Ich möchte so eine wie Python, da macht das Programmieren richtig Spaß)
- Hohe Geschwindigkeit - sollte an C++ oder gar C rankommen
- Die Möglichkeit einfach nur per Klick (Gibt es ja bei den ganzen C++ Compilern auch) das ganze in eine .exe umzurechnen, die dann verschickt werden kann (am besten sogar noch plattformübergreifen für x86, x86-64, Mac, Linux...)
- Eine gute Verfügbarkeit von Standardmodulen (Wer viel mit Python gearbeitet hat wie ich, lernt so etwas echt zu schätzen)
- Eine gute Dokumentation
Gibt es da was? Ich brauche einfach etwas GUTES. Bei Python passt alles, bloß kann ich nunmal nicht exe's erstellen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
kannste des nich mit java realisieren ? das is plattformunabhängig und kansste so überall ausführen.. wenn du ne webanwendung machen willst geht auch javafx !
grüße romeo -
Nein, ich mag Java einfach nicht - die Geschwindigkeit ist nicht gerade berauschend. Und seien wir mal ehrlich... Ein PHP Skript, dass im worst case bis zu 20 Stunden rechnet, wird auch in Java geschrieben enorm langsam sein. Deswegen möchte ich eine SCHNELLE Sprache. Ich bin sicher, dass man sowas mit C auf wenige Minuten bekommen könnte - bloß k**** mich die Syntac von C an. Ich brauche also sowas wie ein Mischung der beiden Sprachen Python und C.
Außerdem möchte ich mit dieser "Aktion" ein wenig voraus planen, weil ich einfach eine Sprache will, mit der ich auch in Zukunft gut arbeiten kann. -
mh .. dann wäre vllt "go" was für dich ?!
aus dem hause google =))
http://www.magnus.de/news/google-stellt-neue-programmiersprache-go-vor-zwischen-python-und-c-206709.html
grüße romeo -
Wenn du uns vielleicht etwas näher erläuterst, was du genau machen willst ... vielleicht liegt das Problem viel weniger an der Sprache als an der Implementierung (so ist es meistens.)
Aber wenn du eine schwach typisierende Sprache suchst, die schnell ausgeführt wird, dann nimm JavaScript. JS ist auf jedem Computer vorhanden, der Firefox/Chrome/... installiert hat. Und JavaScript wird verdammt schnell ausgeführt, weil es in Assembler kompiliert wird, meistens.
Aber wie gesagt: Sag uns, worums geht ;)
€dit: Aber JavaScript ist für den Anfänger wirklich keine einfache Sprache, einfach, weil sie anders ist. Sie ist prototype based und bis man das wirklich zu schätzen weiß, vergeht etwas Zeit ;)
Beitrag zuletzt geändert: 23.7.2010 0:13:15 von nikic -
midwar schrieb:
[...]
- Die Möglichkeit einfach nur per Klick (Gibt es ja bei den ganzen C++ Compilern auch) das ganze in eine .exe umzurechnen, die dann verschickt werden kann (am besten sogar noch plattformübergreifen für x86, x86-64, Mac, Linux...)
[...]
Mit einer .exe-Datei wirst du auf einem Mac oder auf einem Linux-System nicht viel Freude haben. Also von Plattformunabhängigkeit kann man da nicht sprechen.
Eine Möglichkeit wäre mM nach auch C#. Den Code kannst du dann auch unter Linux mit Mono kompilieren. Java ist wirklich plattformunabhängig, da eine virtuelle Maschine für das ausführen des Codes sorgt. Aber auch JavaScript ist auf jedem System vorhanden, dass einen ordentlichen Browser installiert hat.
Aber wie auch nikic schon geschrieben hat, wäre es vielleicht gut, wenn du uns dein Vorhaben beschreibst. Dann könnten wir dir wahrscheinlich besser weiterhelfen. -
midwar schrieb:
Ich suche also eine Sprache, die folgende Merkmale aufweist:
- Einfache Syntax (Ich möchte so eine wie Python, da macht das Programmieren richtig Spaß)
- Hohe Geschwindigkeit - sollte an C++ oder gar C rankommen
- Die Möglichkeit einfach nur per Klick (Gibt es ja bei den ganzen C++ Compilern auch) das ganze in eine .exe umzurechnen, die dann verschickt werden kann (am besten sogar noch plattformübergreifen für x86, x86-64, Mac, Linux...)
- Eine gute Verfügbarkeit von Standardmodulen (Wer viel mit Python gearbeitet hat wie ich, lernt so etwas echt zu schätzen)
- Eine gute Dokumentation
Gibt es da was? Ich brauche einfach etwas GUTES. Bei Python passt alles, bloß kann ich nunmal nicht exe's erstellen
Schau dir mal lazarus (http://sourceforge.net/projects/lazarus/files/) an. Ist kostenlos, und gibt es für Linux x86/x64, MAC PPC / i386 und Windows x86/x64.
Diese Sprache (Pascal) sollte alles beinhalten was du brauchst. -
steilbach schrieb:
mh .. dann wäre vllt "go" was für dich ?!
aus dem hause google =))
http://www.magnus.de/news/google-stellt-neue-programmiersprache-go-vor-zwischen-python-und-c-206709.html
grüße romeo
Hmm naja... Bei Go, muss ich mich um die Typetisierung der Variablen selber kümmern. Also muss ich var test string hinschreiben, während bei Python test reicht, bei Go wird mal wieder alles in Klammern eingefasst, während bei Python (äußerst kreativ!) das lieber durch einrückungen formatiert wird. Wieso solche Umstände mit Go? Das soll alles nicht heißen, dass ich faul bin, aber mit Python ist das nunmal einfacher -> Außerdem gibt es dadurch weniger mögliche Fehlerquellen finde ich. Go wäre für mich was die Syntax angeht also eher grenzwertig ...
@ nikic: Schau mal auf midwar.lima-city.de Du wirst zwar nichts verstehen, aber egal. Das ist ein Kampfsimulator für ein Spiel, das ich und Freunde manchmal spielen. Ich habe angefangen die rund 100 DIN A4 Seiten Midgard Kampfregeln umzusetzen in Programmcode. Was rauskommt rechnet im Worst Case schonmal bis zu 20 Stunden. Und nein, es liegt nicht an der Implementierung. Ich habe das ganze an einen enorm guten PHP Programmierer geschickt, der meinte es gebe nicht viel zu verbessern, was Geschwindigkeitsschübe bringen würde. Auch HipHop würde hier nicht mehr viel bringen. Es liegt einfach an PHP selber.
JavaScript? Nein Danke! Ich will doch nur Python mit der Möglichkeit eine .exe Plattformübergreifend zu erstellen ... bzw. eine Sprache die all das kann ... -
Ich weiß nicht, wie weit du den Begriff „C” fasst. Wenn du damit wirklich nur C meints könntest du C++ ausprobieren. Wenn man die funktionen die C++ gegenüber C bietet richtig ausnutzt wird der Quelltext deutlich besser zu lesen/schreiben. Java sollte man auch nicht von vorn herein ausschließen – es kann zwar nicht ganz mit C mithalten ist aber immer noch eine recht performante Sprache.
Allgemein lässt sich sagen das php & co. vor allem deshalb so langsam sind, weil die Sprachen nicht kompliert und danach ausgeführt werden, sondern zur Laufzeit interpretiert. Du solltest also eine Sprache suchen, die wirklich kompliert wird.
Da fallen mir spontan eigentlich nur C(aller Art), Delphi/Pascal und Assembler ein.
Noch eine Möglichkeit gäbe es, wenn du einen Rechner mit Mehrkernprozessor besitzt (halte ich für wahrscheinlich). Dann ist Java eine sehr gute Lösung, weil man damit relitiv leicht multithreaded Programmieren kann. Durch die höhere Prozessorauslastung (durch Ausnutzung aller Kerne) holt man die Nachtteile von Java unter umständen bei weitem wieder raus. -
@bastinat0r:
Wegen der Performance von Python auf Java umzusteigen ist keine wirklich gute Idee, da hier Python wahrscheinlich noch besser ist. Threads lassen sich darin ebenfalls ganz leicht benutzen mit den Modulen thread und threading.
@topic:
Die Möglichkeit einfach nur per Klick (Gibt es ja bei den ganzen C++ Compilern auch) das ganze in eine .exe umzurechnen, die dann verschickt werden kann (am besten sogar noch plattformübergreifen für x86, x86-64, Mac, Linux...)
Das geht nicht. Eine Programmiersprache, die beim Kompilieren Maschinencode erzeugt, muss für jedes Betriebssystem einzeln kompiliert werden, da z.B. Linux eben keine .exe-Dateien ausführen kann, während Windows keine ELF-Dateien ausführen kann. Du müsstest dann also für jedes Betriebssystem einzeln kompilieren oder den Quellcode verteilen, sodass jeder selbst kompilieren kann.
Hohe Geschwindigkeit - sollte an C++ oder gar C rankommen
Die einzige Programmiersprache, die an C von der Geschwindigkeit her rankommt (und sogar noch schneller, weil hardwarenäher ist), ist Assembler. Alle anderen Programmiersprachen werden um einiges langsamer sein.
Bei Python passt alles, bloß kann ich nunmal nicht exe's erstellen
Natürlich, das geht zum Beispiel mit py2exe. Aber die Performance wird sich dadurch auch nicht verbessern.
LG cookies
PS: Bei rechenintensiven Sachen ist PHP nahezu die sinnloseste Sprache, die man wählen kann.
Beitrag zuletzt geändert: 2.8.2010 3:23:46 von cookies -
cookies schrieb:
[...]
@topic:
Die Möglichkeit einfach nur per Klick (Gibt es ja bei den ganzen C++ Compilern auch) das ganze in eine .exe umzurechnen, die dann verschickt werden kann (am besten sogar noch plattformübergreifen für x86, x86-64, Mac, Linux...)
Das geht nicht. Eine Programmiersprache, die beim Kompilieren Maschinencode erzeugt, muss für jedes Betriebssystem einzeln kompiliert werden, da z.B. Linux eben keine .exe-Dateien ausführen kann, während Windows keine ELF-Dateien ausführen kann. Du müsstest dann also für jedes Betriebssystem einzeln kompilieren oder den Quellcode verteilen, sodass jeder selbst kompilieren kann.
Das ist so nicht ganz richtig...
Es gibt bespielsweise Basic IDE's für KBasic und RealBasic die im speziellen bei den kostenpflichtigen Varianten einen Cross Platforn Compiler anbieten, das hat mit der Performance von C natürlich nichts zu tun aber die Möglichkeit existiert. Ich kann mir nicht vorstellen das ein Python Infizierter an solchen Bevormundungstools Spaß hätte aber des Menschen Wille ist ja sein Himmelreich.
Über diese Basic IDE's war im übrigen im Linux User (Schwerpunkt programmieren) in Ausgabe 06/2010ein Artikel. Wie durch Zufall hat es der Artikel in die Community Edition (Artikel "Einsteigertauglich" ab Seite 15) geschafft und steht zum freien Download zur Verfügung:
http://www.linux-user.de/Downloads/LUCE/2010/lu-ce_2010-06.pdf
Wenn es also so etwas ist was der Threadersteller möchte kann er sich bei den genannten Basic Dialekten umschauen, wer allerdings Python kann wird da vermutlich nicht glücklich.
Das Konzept der Binärdatei hat eigentlich mehr Nachteile als Vorteile und dient eigentlich nur Leuten die Ihren Code nicht zeigen wollen, ansonsten ist bei den meisten heute eingesetzten Rechnern meist vollkommen ausreichende Leistung zur Verwendung einer Scriptsprache vorhanden was man auch am großen Anteil von z.B. Python an Systemfunktionen moderner Betriebssysteme erkenntlich ist, aus diesem Grunde würde ich fast meinen, wer mit Python Performance Schwierigkeiten bekommen und nicht mit Hardware zusammenarbeitet der kann schlicht nicht programmieren, zumal Python eine C-API bietet mit der Laufzeit kritische Programmteile beschleunigt werden können, und Module bzw. optimierte Versionen fürs Numbercrunching anbietet was aber freilich ein Privatanwender seltenst brauchen würde.
Beitrag zuletzt geändert: 2.8.2010 9:05:16 von fatfox -
Also ich kann auch nur sagen, wenn du die Python Syntax nicht missen willst, dann solltest du es mit einem Konverter wie py2exe probieren. Ich bin auch sicher, dass es da Optimierungsmöglichkeiten gibt, die deinen Code von der Geschwindigkeit her an C/++ ranbringen. Ansonsten kann ich nur sagen, dass Nikic recht hat, wenn er am Algorithmus selbst zweifelt. Entweder es dauert wirklich 20 Stunden, dann wirst du mit C/++ auch bestenfalls auf 5 kommen oder du kannst da was im großen Stil besser Designen, dann läuft das aber auch darauf hinaus, dass du mit C/++ gegenüber PHP nur um einen Faktor schneller bist. Am besten informierst du dich zu dem Thema mal über Asymptotische Laufzeiten bzw. die Landaunotation.
-
Ich Persöhnlich finde das VB.Net die einfachste OOP-Sprache ist die es gibt!
Der Syntax ist sehr einfach und die IDE verbessert fast alle Fehler wie von selbst.
Der wenigen Nachteile sind:
- Es funktioniert nur auf Windows Systemen die .Net 3.0 Installiert haben (XP SP3/Vista/Seven schon vorinstalliert)
- Es gibt keine Pointer (Systemnaheprogrammierung) -
Purebasic ist eine einfache Programmiersprache, Aber sehr mächtig und Platform übergreifend ,Windows Mac
Purebasic ist sehr schnell, Da Purebasic Assempler nahe Compliert.
Die Syntax ist sehr einfach gehalten , ist also für Anfänger und Für Proffis geeignet.
Ich mache damit sogar Große Server Anwendung. Einfach mal gucken auf http://www.purebasic.com/german/index.php -
Noch einige kurze Anmerkungen von mir:
midwar, dir sollte klar sein, dass je bequemer eine Sprache für einen Menschen zu programmieren ist, desto langsamer wird meistens(!) die Ausführung. Vor allem solche Interpretersprachen kann man eigentlich vergessen, wenn es wirklich auf Performance ankommt. Mit Assembler kann man theoretisch die höchste Performance erreichen - wenn man in der Lage dazu ist. Aber auf dieser Ebene zu programmieren macht für deine Anwendung keinen Sinn. Assembler ist nicht gerade dass, was man als Plattform übergreifend bezeichnen kann...^^
Aber wie schon einige Vorposter gesagt haben: Möglicherweise ist deine Implementierung auch nicht optimal. Das habe ich an meinen Quellcodes auch schon öfter festgestellt... Quellcode optimiert und die Sache lief vernünftig. Es gibt immer etwas zu optimieren. Vor allem bei Vorgängen, die vielen verschachtelten Schleifen ablaufen... also spucks aus, was willste machen?
-
gauss-design schrieb:
Naja kann dir eigentlich nur Delphi empfehlen, es kann super mit c++ mithalten, einfach Syntax, schnell zu lernen und du solltest recht schnell an dein Ziel kommen. Der Nachteil ist nur leider das es Windowsabhängig ist, aber wofür gibt es Wine und co. ;)
stimmt nicht -> Kylix ist delphi für linux... ist vorgänger des Lazarus-Projekts...
mein tipp an den TE:
pflaster dir nen server zusammen, wo du die Plattform bestimmst. Richte deine Rechte ein.
schaff dir eine PHP-Plattform, die die eingangsdaten für diene software erfasst, und auch einen teil, der deine endergebnisse erfasst.
schreibe in C ein paar effiziente Routinen, die die arbeit erledigen. schaffe eine schnittstelle von php zu deiner exe-Datei und eine von deiner eyxe datei zu dem webserver. hierzu eignet sich das anlegen von temporären dateien, oder einfach nur die Modifikation der eingangsdaten über die startparameter deiner exe-Datei.
zerlege dein projekt in keline teilaufgaben, wenn es dir zu komplex erscheint. für jede Teilaufgabe könntest du auch ein kleines perl oder Python-Script schreiben... reicht für die meisten sachen aus... wenn du wüsstest, was man mit perl zum beispiel alles machen kann und dass das das sehr schnell geht(sehr viel schneller als PHP oder Java), dann wüsstest du auch, dass du für die masse der aufgaben keine vollwertige programmiersprache brauchst... notfalls kannst du es, wie gesagt. an ein programm übergeben...
da kann man auch ganz einfach statistik-Auswertungs-Tools schreiben, die die programmausführungszeit dokumentieren... eine sehr zuverlässige art der dokumentation... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage