Ruby, Groovy oder der Sinn von Skriptsprachen

  • Themenstarter Themenstarter fetzer
  • Beginndatum Beginndatum
F

fetzer

Guest
Hi,

Mehrere kleine Fragen beschäftigen mich schon seit Tagen, im Internet lässt sich allerdings keine wirkliche Antwort dafür finden. Die Fragen kamen mehr oder weniger auf, dass mich alle Sprachen, die ich überdurchschnittlich gut beherrsche, ziehmlich ärgern: Da wäre zum einen Java ( Langsam gegenüber anderen Programmiersprachen, Nur für allgemeine Softwareprojekte, nur bedingt für Hardwareprogrammierung, "nur weil meine .class-Datei nicht im CLASSPATH liegt wird sie falsch ausgeführt?!?!", ... ) und zum anderen PHP ( Langweilig, da wirklich ALLES vordefiniert ist ) ( und noch einige andere, aber konzentrieren wir uns hierrauf ). Welche Sprache mich eigentlich zur Zeit sehr interessiert ist Ruby, die auch mit Rails ein gutes Framework für Webprogrammierung zur Verfügung stellt. Nun stellt sich allerdings die Frage: Lohnt es sich überhaupt Ruby zu lernen ( Im Gegensatz zu Java und PHP besitzt Ruby doch einige syntaktische Unterschiede ) oder wäre es effektiver, eventl. auf Java+Groovy umzusteigen oder mehr auf PHP + PEAR zu setzen ( Zukunftsorientierter, berufliche Chancen, universitäre Ausbildung setzt viel auf Java... )? Groovy besitzt dabei ähnlich wie Ruby ein Webframework: Grails.
Auf dem nächsten Punkt baut die obere Frage eigentlich auf, allerdings ist es doch eher eine Grundsatzfrage: Inwiefern lohnt sich das Erlernen einer Skriptsprache gegenüber einer Programmiersprache? Alles, was ich mit Ruby/Perl/PHP schreiben könnte, kann ich auch in Java/C schreiben, Java bietet darüber hinaus mit jsp noch eine Alternative gegenüber PHP ( Um PHP mal als Webskriptsprache zu (de)klassifizieren ) oder Ruby on Rails. Ich muss zugeben, ich weiss nicht, wie es da bei C/C++ aussieht, allerdings kann ich mir denken, dass es hierbei auch mehrere Frameworks und Klassen dazu gibt. Aber um bei der Frage zu bleiben: Was bringen mir Skriptsprachen gegenüber Programmiersprachen? Einen Geschwindigkeitsvorteil nicht, weder in der Ausführung ( PHP vs. C vs Java/JSP/Grails ;) ) noch in der Programmierung ( JSP vs. PHP vs Grails? ). Sicherheit ( PHP vs. JVM ), usw genauso wenig. Ich sehe in Skriptsprachen letztendlich keinen Sinn.

Ich bin mir bewusst, dass ich mich in einem Punkt widerspreche: Wenn ich Groovy kann, sollte es ein leichtes sein, Ruby zu lernen, da sich beide Sprachen sehr ähneln. Allerdings würde ich gerne versuchen, mich auf eine Sprache zu konzentrieren und das gäbe letztendlich folgende Konstellationen:
Java/PHP ( so ist es jetzt - und ich hasse es, um es hart auszudrücken ), Java/Groovy/Grails, Java/Ruby/Rails, C(-Dialekt)/PHP, C(-Dialekt)/Ruby/Rails ( das bevorzuge ich eigentlich... ) oder C(-Dialekt), Java/JSP, usw ohne jeglichen Skriptsprachen. Oder würde D als Alternative zu allem vielleicht doch auch Sinn machen? Müsst ich halt komplett neu erlernen....

Noch etwas zu den Aufgabengebieten: Es soll eher im Bereich System und Anwendung bleiben, als in Webprogrammierung auszuarten. D.h. Ich mache nur wenig Webprogrammierung ( ausser, ich finde IRGENDWANN wieder Gefallen daran ), lieber wäre mir es, wenn ich mit den Sprache auch mal ein kleines Programm schreiben kann, z.b. einen Jabber-Bot o.ä. oder eben ein klein bisschen Hardwareprogrammierung.

Ich weiss, das ganze könnte letztendlich in einer Grundsatzdiskussion enden, welche Sprache besser ist und welche doch recht mies ist. Ich bitte jedoch alle Beteiligten sich an gegebene Tests und Daten zu halten und sachlich zu bleiben. Danke und auf eine gute Diskussion, sofern ihr den Post verstanden habt. Im Formulieren bin ich ne ziehmliche NULL, oder nil, wie es in Ruby heisst.

PS: Wenn ich irgendwelche Unwahrheiten genannt habe, bitte verbessert mich. Das waren meine Erfahrungen mit den Sprachen ;)
 
Morgen,
Skriptsprache sind/waren überhaupt nicht unnütz, da ihr eigentlicher Gedanke ist auf jedem System zu funktionieren. Bei den Anfängen, brauchte man ja für jedes OS einen anderen Compiler usw., was es schwer machte die Programme auf andere Platformen zu transportieren. Eine Skriptsprache hingegen, kann überall ausgeführt werden und braucht nicht für 3 verschiedene Betriebssysteme 3 verschiedene Compiler, Linker oder sonstwas.
Mit der VirtualMachine für Java geht da wohl der Sinn verloren. Da dieser aber wohl noch ziemlich neu ist, scheint sich die virtuelle Maschine nicht durchgesetzt zu haben. Ein anderer Vorteil an Skriptsprachen ist, dass sie wesentlich einfacher zu handhaben sind (meine Meinung). Man "muss" sich nicht um Speicherverwaltung kümmern etc. Damit werden sie zu Alltagshelden,
mit denen man leicht mal ein, zwei tools Programmieren kann oder mit dem entsprechenden Framework sogar ganze Webapplikationen !
Ein ganz klares Kontra ist natürlich auch, dass man sich nicht um Sachen wie die Speichervertweilung kümmern muss, da sie dadurch zu einer Art Hochsprache werden und somit es ziemlich schwierig werden kann z.B. Treiber zu Programmieren, oder mit maschinennahen Sachen umzugehen.
Ein weiterer Punkt ist natürlich auch, dass die Geschwindigkeit leidet. Spiele Programmierung mit Ruby ? Für den Privatman eine schöne Sache um seine Kentnisse zu testen, aber das wars auch. Es würden richtig dicke Leistungs PCs gebraucht werden um das so schnell zu verarbeiten zu können wie ein in C geschriebenes Spiel.

Es wurde häufig schon gesagt und ich wiederhole es auch noch einmal:
Es kommt darauf an, WAS du machen willst.
Dadurch kommt dann meistens ein Pool von verschiedenen Sprachen zusammen und dann musst du entscheiden, welche dir am Besten gefällt.

Das ist ja das schöne an der Sprachenvielfalt. Es ist für jeden etwas dabei ;)

Mit freundlichen Grüßen

0wnZ

btw: Ruby is cool, ne ? ;)
 
Original von 0wnZ
da ihr eigentlicher Gedanke ist auf jedem System zu funktionieren. Bei den Anfängen, brauchte man ja für jedes OS einen anderen Compiler usw., was es schwer machte die Programme auf andere Platformen zu transportieren. Eine Skriptsprache hingegen, kann überall ausgeführt werden und braucht nicht für 3 verschiedene Betriebssysteme 3 verschiedene Compiler, Linker oder sonstwas.
Das halte ich heutzutage nicht mehr für nötig. GCC wurde beispielsweise auf viele Systeme inzwischen portiert, einfacher C Consolen Code läuft auf den meisten System, man muss es eben immer nur neu kompillieren, dazu nutze ich hier ausschliesslich Linux, wesshalb mich diese Portierbarkeit eigentlich kaum interessiert. Im Moment programmiere ich lediglich für mich und nicht für andere OS. GTK ist inzwischen auch auf den meisten Systemen vorhanden.
Für Skriptsprachen wie PHP oder Perl brauche ich letztendlich auch einen Interpreter, was also wiederum Systemabhängigkeit bedeutet.

Ein anderer Vorteil an Skriptsprachen ist, dass sie wesentlich einfacher zu handhaben sind (meine Meinung). Man "muss" sich nicht um Speicherverwaltung kümmern etc. Damit werden sie zu Alltagshelden, mit denen man leicht mal ein, zwei tools Programmieren kann oder mit dem entsprechenden Framework sogar ganze Webapplikationen !
Wie ich oben schon geschrieben habe: Java würde ich auch eher zu den Hochsprachen zählen und ich muss mich trotzdem nicht um Speicherprogrammierung kümmern ;)

Es wurde häufig schon gesagt und ich wiederhole es auch noch einmal:
Es kommt darauf an, WAS du machen willst.
Eben das ist mein Problem: WAS ich mit Skriptsprachen machen kann, kann ich inzwischen auch mit Hochsprachen/Programmiersprachen machen und habe dadurch einige Vorteile gegenüber den Skriptpendanten.

btw: Ruby is cool, ne ? ;)
Ja schon... ;)
 
Original von fetzter
Für Skriptsprachen wie PHP oder Perl brauche ich letztendlich auch einen Interpreter, was also wiederum Systemabhängigkeit bedeutet.
nicht unbedingt:
http://de.wikipedia.org/wiki/Interpreter_(Computer)

Jap, Java macht wohl genau da den Unterschied weg.
Aber mir persönlich gefällt Java nicht :S ( hab zwar mal versucht nen kleines Skript für mein Handy zu programmieren, was auch dem PC (!) lief, aber naja ).

Naja und sonst seh ich einfach den Sinn darin, das man mal eben schnell nen kleines Skript tippen kann und man muss nicht erst umständlich variablen Deklarieren und Typen zuweisen. Ist halt für kleine Tools gedacht um das leben nen bisschen leichter zu machen ( wie Batch eig. ). Für größere Projekte
ist das bestimmt ziemlich ungeeignet.
Für mich ist das so: Skriptsprache: Zuhause, Privat, einfach, schnell, direkt, arbeitserleichternd
Programmiersprache: mächtig, Firmen, groß, komplizierter, ausgeklügelter, komplex

PHP war ja auch eigentlich nur als Tool für Homepages gedacht.
 
Wie ich oben schon geschrieben habe: Java würde ich auch eher zu den Hochsprachen zählen und ich muss mich trotzdem nicht um Speicherprogrammierung kümmern
Ich würde alle bisher genannten Sprachen zu den Hochsprachen zählen. Auch C und C++.
Assembler oder FORTRAN sind da schon eher maschinennahe Sprachen. Die empfehle ich aber nur, wenn du dich für's cracken interressierst, oder auch um mit bereits vorhandenen programmen umzugehen. (geht ja auch legal)

Und Spieleprogrammierung ist mit PHP keineswegs abwegig. Aber wer redet denn von shootern oder dergleichen 3D Kram? Ich denke da eher Browsergames, mit denen man auch durchaus Geld verdienen kann.

Also wenn du Informatik studierst, oder das vor hast, dann würde ich C++ empfehlen. Da kannst du denn später bei einer Softwarefirma einsteigen. Sonst würde ich eher bei höheren Sprachen bleiben, denn mit Web-programmierung kann man heute auch schon viel Geld machen.
Pascal (z.B. borland Delphi) ist da auch interressant, weil man damit ganz einfach Datenbanken verwalten kann. Sonst ist das auch nützlich um normaler Fensterbasierende Programme zu schreiben, weil das nicht sooo eine komplizierte API hat wie C++. Ich mag C++ trotzdem lieber.

Und wenn du einfach bloß Spaß am programmieren haben willst, dann nimm einfach eine, die dir gefällt :D
 
Original von fetzer
Da wäre zum einen Java ( Langsam gegenüber anderen Programmiersprachen, Nur für allgemeine Softwareprojekte, nur bedingt für Hardwareprogrammierung, "nur weil meine .class-Datei nicht im CLASSPATH liegt wird sie falsch ausgeführt?!?!", ... )
Java-Programme sind nicht langsamer als Programme, die mit anderen Sprachen erstellt wurden. Lediglich die Grafik-Bibliotheken von Java sind langsamer als vergleichbare andere, aber gerade im Server-Bereich spielt es seine Stärken aus. Abgesehen davon hat Java den Vorteil, daß der kompilierte Bytecode auf allen Systemen läuft, für die es ein Java-Interpreter gibt.

Original von fetzer
Welche Sprache mich eigentlich zur Zeit sehr interessiert ist Ruby, die auch mit Rails ein gutes Framework für Webprogrammierung zur Verfügung stellt. Nun stellt sich allerdings die Frage: Lohnt es sich überhaupt Ruby zu lernen ( Im Gegensatz zu Java und PHP besitzt Ruby doch einige syntaktische Unterschiede ) oder wäre es effektiver, eventl. auf Java+Groovy umzusteigen oder mehr auf PHP + PEAR zu setzen ( Zukunftsorientierter, berufliche Chancen, universitäre Ausbildung setzt viel auf Java... )? Groovy besitzt dabei ähnlich wie Ruby ein Webframework: Grails.
Welche Sprache du nutzen "solltest", hängt (wie immer) davon ab, was du damit machen willst. Es gilt halt zu bedenken, daß du bei den meisten Webhostern zwar PHP bekommen kannst, aber nur bei relativ wenigen wirst du Ruby zur Verfügung haben. Ich persönliche halte Ruby noch lange nicht für ausgereift genug für einen professionellen Einsatz. Dazu fehlen einfach zuviele Funktionalitäten, die man dann selbst umsetzen muss, was viel Zeit kostet und Zeit ist bekanntermaßen Geld.

Original von fetzer
Was bringen mir Skriptsprachen gegenüber Programmiersprachen? Einen Geschwindigkeitsvorteil nicht, weder in der Ausführung ( PHP vs. C vs Java/JSP/Grails ;) ) noch in der Programmierung ( JSP vs. PHP vs Grails? ). Sicherheit ( PHP vs. JVM ), usw genauso wenig. Ich sehe in Skriptsprachen letztendlich keinen Sinn.
Skriptsprachen haben den Vorteil, daß sie großteils plattformunabhängig sind, daß sie nicht kompiliert werden müssen und daß die Interpreter leicht in andere Programme implementiert werden können (z.B. Webserver). Bei C/C++ wirst du z.B. beim Apache schnell an Grenzen stoßen, was die CGI-Verarbeitung angeht (meist Rechteprobleme), so daß du deine Website als Apache-Modul schreiben müßtest.
Hinzu kommt, daß Skriptsprachen wesentlich leichter zu erlernen sind, da es keine strikte Typisierung gibt, so daß man sich um Typecasting u.ä. nur nebenbei kümmern muß.
Gerade Skriptsprachen, die auf die Nutzung im WWW ausgelegt sind (wie z.B. PHP) haben zusätzlich noch den Vorteil, daß sie spezielle Funktionen für die Verarbeitung von HTML und CSS zur Verfügung stellen.

Original von fetzer
Ich bin mir bewusst, dass ich mich in einem Punkt widerspreche: Wenn ich Groovy kann, sollte es ein leichtes sein, Ruby zu lernen, da sich beide Sprachen sehr ähneln. Allerdings würde ich gerne versuchen, mich auf eine Sprache zu konzentrieren und das gäbe letztendlich folgende Konstellationen:
Java/PHP ( so ist es jetzt - und ich hasse es, um es hart auszudrücken ), Java/Groovy/Grails, Java/Ruby/Rails, C(-Dialekt)/PHP, C(-Dialekt)/Ruby/Rails ( das bevorzuge ich eigentlich... ) oder C(-Dialekt), Java/JSP, usw ohne jeglichen Skriptsprachen. Oder würde D als Alternative zu allem vielleicht doch auch Sinn machen? Müsst ich halt komplett neu erlernen....
Mit Java und PHP bist du in der Webentwicklung derzeit am Besten beraten. Selbst im kommerziellen Umfeld ist das die am häufigsten anzutreffende Kombination (Webservices mit Java, Interface mit PHP, teilweise auch JSP).

Original von fetzer
Noch etwas zu den Aufgabengebieten: Es soll eher im Bereich System und Anwendung bleiben, als in Webprogrammierung auszuarten. D.h. Ich mache nur wenig Webprogrammierung ( ausser, ich finde IRGENDWANN wieder Gefallen daran ), lieber wäre mir es, wenn ich mit den Sprache auch mal ein kleines Programm schreiben kann, z.b. einen Jabber-Bot o.ä. oder eben ein klein bisschen Hardwareprogrammierung.
In der Systemprogrammierung wirst du erstmal mit C, C++ und C# ganz gut fahren. Für Anwendungen eignen sich aber durchaus auch Skriptsprachen wie Perl, Python u.a., allerdings bieten dir höhere Sprachen wie Java, C/C++ usw. einige Vorteile, wie z.B. eine bessere Performance (es muss halt nichts mehr interpretiert werden, was Rechenleistung spart, da das Laden des Interpreters wegfällt).
Original von fetzer
Ich weiss, das ganze könnte letztendlich in einer Grundsatzdiskussion enden, welche Sprache besser ist und welche doch recht mies ist. Ich bitte jedoch alle Beteiligten sich an gegebene Tests und Daten zu halten und sachlich zu bleiben. Danke und auf eine gute Diskussion, sofern ihr den Post verstanden habt. Im Formulieren bin ich ne ziehmliche NULL, oder nil, wie es in Ruby heisst.
Ich denke, daß damit klar sein sollte, daß es keine Sprache gibt, die besser oder schlechter ist. ;) Es kommt einfach auf verschiedene Punkte an:
1. Was will man mit der Sprache programmieren?
2. Welche Ansprüche stellt man an die Applikation (einfach erweiterbar, gute Performance, perfekte Integration in's System oder Systemunabhängigkeit)?
3. Welche Vorlieben hat der Programmierer, der die Sprache nutzen will?
Weitere Faktoren sind natürlich auch zu bedenken, vor allem wenn es um Projekte geht, an denen man nicht allein arbeitet, aber ich denke, daß dies die wichtigsten 3 Punkte sein dürften.

@Extinction: Gerade Fortran würde ich nicht unbedingt als Sprache zählen, die primär für's Cracken geeignet ist. Fortran wurde für wissenschaftliche Mathematik entwickelt und bis heute ist mir keine Sprache bekannt, in der man effektiver mathematische Probleme "beschreiben"/lösen kann. In vielen Unis wirst du auch bis heute noch viel auf Fortran treffen, wenn es um die Berechnung komplexer Systeme geht u.ä. Für Mathematiker lohnt sich daher ein Blick in Fortran immer.
 
Abgesehen davon hat Java den Vorteil, daß der kompilierte Bytecode auf allen Systemen läuft, für die es ein Java-Interpreter gibt.

Diese "Plattformunabhängigkeit" gilt für fast jede Sprache und ist aufgrund der Performance ein ziemlich schlechter Deal imho. Denn C/C++ läuft auch auf jedem System für das es einen Compiler gibt. Genauso ist es mit allen Skriptsprachen. Aber da es hier ausschliesslich um Linux Programmierung geht ist das nicht weiter wichtig.

Ansonsten da du dich nicht auf Webprogrammierung spezialisieren willst wo ich dir Django (Python) / RoR (Ruby) empfehlen würde rate ich dir zu C/C++.
Das Betriebsystem das du nutzt inklusive der meisten anwendungen sind in C (weisst du sicher ;) geschrieben insofern ist ein Verständnis der Sprache nützlich. Desweiteren kannst du mit C oder auch C++ nahezu alles machen was du machen willst und für die wenigen Sonderfälle gibts noch inline ASM insofern kann man wohl sagen das fast alles was damit nicht geht gelötet werden muss ;)
Ich persönlich finde besonders für größere Projekte C++ besser weil es einfach übersichtlicher ist und mit der STL dem Programmierer einiges erleichtert.
Und da du auch Hardwareprogrammierung angesprochen hast hast du eh nicht viel wahl ;)
Und genau diese praktisch unbegrenzten Möglichkeiten sind es weswegen ich dir auf jeden Fall zu C/C++ raten würde.
Ich habe mir in den letzten Jahren auch einige Sprachen angesehen und bin letzendlich immer wieder zu diesen beiden zurückgekehrt :)
 
Original von bitmuncher
Welche Sprache du nutzen "solltest", hängt (wie immer) davon ab, was du damit machen willst. Es gilt halt zu bedenken, daß du bei den meisten Webhostern zwar PHP bekommen kannst, aber nur bei relativ wenigen wirst du Ruby zur Verfügung haben. Ich persönliche halte Ruby noch lange nicht für ausgereift genug für einen professionellen Einsatz. Dazu fehlen einfach zuviele Funktionalitäten, die man dann selbst umsetzen muss, was viel Zeit kostet und Zeit ist bekanntermaßen Geld.
Die fehlenden Funktionaliäten sind gerade das, weswegen ich mich für Ruby interessiere. Viel ist nicht implementiert, das meiste muss man selbst schreiben. Da bei PHP die ganze Sache umgedreht ist, nämlich dass wirklich alles existiert und man kaum noch was selbst machen muss, gerade das nervt mich daran, da es eine Sprache langweilig macht. Ich schreibe lieber einen MD5 Algorithmus selbst, als ihn schon als Funktion vordefiniert zu haben.

Also ich denke, dass ich mich jetzt entschieden habe und zwar genau für das, dass ich schon vorher angestrebt hatte: C(-Dialekt) und Ruby, mit Schwerpunkt auf C. Das ganze einfach aus dem Grund: Java gefällt mir - wie schon gesagt - nicht besonders, selbst wenn es überall genutzt wird. Mit C hab ich den Vorteil, dass ich - wie cr gesagt hat - so ziehmlich alles machen kann. Darüber hinaus hab ich mit C# einen durchaus würdigen Java-Konkurrenten, der sich jedoch auf .Net bezieht, jedoch ähnlich "einfach" wie Java ist. Dafür werd ich mir mal Mono anschauen müssen und schauen, inwiefern ich C# auf Linux beziehen kann.
PHP hasse ich persönlich inzwischen, da es wirklich extrem langweilig ist, in PHP zu programmieren. Ruby hat meiner Meinung nach interessante Ansatzweisen zu vielen Problemen. C eignet sich nicht so schön für kleine Skripte, sei es einfache PoC Exploits oder kleine Systemskripte. Aus diesem Grund habe ich mich dann letztendlich auch für Ruby entschieden.

Ich danke euch für eure Antworten, sie haben mir sehr weitergeholfen
Falls noch mehr Vorschläge kommen, eventl. auch andere Sprachen, die mich interessieren könnten, könnt ihr diese ruhig posten, interessiert daran bin ich immer ;).
 
Original von cr
Diese "Plattformunabhängigkeit" gilt für fast jede Sprache und ist aufgrund der Performance ein ziemlich schlechter Deal imho. Denn C/C++ läuft auch auf jedem System für das es einen Compiler gibt. Genauso ist es mit allen Skriptsprachen. Aber da es hier ausschliesslich um Linux Programmierung geht ist das nicht weiter wichtig.
Nicht alle Programme will man OpenSource machen und Closed-Source-Programme in C/C++ zu schreiben erfordert einen erheblichen Mehraufwand. Bei Java gibt man einfach die class-Dateien weiter und gut ist. Bei C/C++ muß man sein Programm dann gegen entsprechende Libs linken, spezielle Klauseln einbauen, damit die Header an den richtigen Stellen gesucht werden usw.

Bei den höheren Sprachen bevorzuge ich auch C/C++, aber wenn man sowohl Web- als auch Anwendungsentwicklung machen will, ist Java eindeutig zu bevorzugen, da Webentwicklung in C/C++ einfach eine Qual ist.

Original von fetzer
Die fehlenden Funktionaliäten sind gerade das, weswegen ich mich für Ruby interessiere. Viel ist nicht implementiert, das meiste muss man selbst schreiben. Da bei PHP die ganze Sache umgedreht ist, nämlich dass wirklich alles existiert und man kaum noch was selbst machen muss, gerade das nervt mich daran, da es eine Sprache langweilig macht. Ich schreibe lieber einen MD5 Algorithmus selbst, als ihn schon als Funktion vordefiniert zu haben.

Das nenne ich mal ineffektiv. :P Ich hoffe, daß du nie als Programmierer arbeiten willst, denn die Zeitverschwendung würde deine Firma eine Menge Geld kosten. ;)

Und falls du dir doch noch was anderes anschauen willst, schau dir Perl an. Ist sehr ähnlich zu C, ist eine Skriptsprache und man kann sehr effektiven Code dafür schreiben. Will man mal was nicht selbst machen, installiert man sich einfach ein passendes Modul (alle zu finden über search.cpan.org) und spart sich die Arbeit einen schonmal umgesetzten Algorithmus nochmal neu zu erfinden.
 
Original von bitmuncher
Das nenne ich mal ineffektiv. :P Ich hoffe, daß du nie als Programmierer arbeiten willst, denn die Zeitverschwendung würde deine Firma eine Menge Geld kosten. ;)

Und falls du dir doch noch was anderes anschauen willst, schau dir Perl an. Ist sehr ähnlich zu C, ist eine Skriptsprache und man kann sehr effektiven Code dafür schreiben. Will man mal was nicht selbst machen, installiert man sich einfach ein passendes Modul (alle zu finden über search.cpan.org) und spart sich die Arbeit einen schonmal umgesetzten Algorithmus nochmal neu zu erfinden.

Ineffektiv ist durchaus richtig, wenn ich allerdings das ganze beruflich machen wöllte, dann würde ich auch Java und PHP weiterbevorzugen. Allerdings würde ich doch gerne einen anderen Weg einschlagen, als den eines puren Programmierers, ich programmiere lieber zum Spaß, als für Geld. War vielleicht auch ein etwas schwaches Beispiel, aber solange es nicht so wie in PHP ausartet ist mir eigentlich alles recht ;)

Perl habe ich mir schon angeschaut, ein Buch dazu steht auch schon einige Jahre bei mir im Regal. Bisher bin ich aber noch nicht dazu gekommen, es komplett durchzulesen.

Aber ich denke, mit C/C++/C# und mit Ruby werd ich die nächsten Jahre recht gut fahren. Ruby steigt ja auch stark in der Beliebtheit bei Firmen: http://www.tiobe.com/tpci.htm

/edit:
Ich merke gerade, Python sieht auch sehr ansprechend aus. Werde ich also auch mal noch unter die Lupe nehmen ;)
/
 
Nicht alle Programme will man OpenSource machen (..). Bei Java gibt man einfach die class-Dateien weiter und gut ist.

falsch, java ist voll dekompilierbar (inc. beibehaltung von variablennamen etc). abhilfe schafft hier obfuscating (geht mit tools sehr einfach) und encryptet class-files (schon etwas krasser, aber auch nicht schwer, sobald man es mal erfolgreich ausprobiert hat).

Diese "Plattformunabhängigkeit" gilt für fast jede Sprache und ist aufgrund der Performance ein ziemlich schlechter Deal imho.

ich will jetzt hier keine diskussion darüber starten, das wöre OT & wir hatten das schon zig-mal. ABER: es gibt auch ahead-of-time-compiler für java, die keinen bytecode, sondern nativen code produzieren. und ab dieser stelle vergleicht man nicht programmiersprachen (wie auch) oder konzepte, sondern die effizienz der compiler.
 
Original von t3rr0r.bYt3
Nicht alle Programme will man OpenSource machen (..). Bei Java gibt man einfach die class-Dateien weiter und gut ist.

falsch, java ist voll dekompilierbar (inc. beibehaltung von variablennamen etc). abhilfe schafft hier obfuscating (geht mit tools sehr einfach) und encryptet class-files (schon etwas krasser, aber auch nicht schwer, sobald man es mal erfolgreich ausprobiert hat).

Es war keine Rede davon wie schwierig ein Programm dekompilierbar ist, denn auch im Closed-Source-Bereich achtet darauf kaum jemand. Fast jede Sprache ist mit mehr oder weniger Aufwand dekompilierbar, wenn die Dateien nicht mit speziellen Compilern oder anderen Sicherungsmaßnahmen erstellt werden. :rolleyes:
Es ging hier um die Portierbarkeit und die ist mit Java definitiv einfacher als mit C/C++, da dort kein Mehraufwand notwendig ist.
 
Zurück
Oben