Beiträge von hal

    Zitat von Maxii

    Dennoch bin ich der Ansicht, dass C++ eine der besten Sprachen ist, die es zur Zeit gibt:

    Die beste Sprache kann gar nicht existieren, weil jede Sprache einen anderen Anwendungsbereich hat (zwangsläufig, nachdem eine einzelne nie alle Felder abdecken kann). Beispielsweise würde nie jemand auf die Idee kommen, eine Webapplikation in C++ zu schreiben (ich kenn ein Webprojekt, das in C geschrieben wurde, und das war ein katastrophaler Fehlschlag).

    Zitat

    - irre schnell

    (richtig programmierter) Assembler ist schneller

    Zitat

    - leicht zu erlernen

    Sicher nicht. Bis man C++ mit seinen operators, Vererbungsgeschichten und Templatekonstrukten halbwegs annehmbar beherrscht, vergehen schon ein paar Jahre.
    zB wusstest du, dass man in C++ structs einen constructor geben kann? Ich kann C++ seit mittlerweile 9 Jahren, und hab das erst dieses Jahr (im Zuge von Computergraphik 2) mitbekommen.

    Mein Hauptproblem mit C++ ist, dass jeder Befehl extreme Nebenwirkungen hat. Wenn du nicht aufpasst kanns dir passieren, dass der C++-Compiler plötzlich eine Kopie von deinem Objekt anlegt und das Original freigibt, was zu unvorhergesehenen Wirkungen führt (zB hab ich in meinem CG2-Projekt einen Wrapper um OpenGL-Texturen. Wenn der Compiler das gemacht hat, hat mein Wrapper im destructor die Textur wieder freigegeben und die Kopie hatte plötzlich eine ungültige Texturreferenz drinnen). Mit operators kann man sich da auch ganz nette Verwirrungen zusammenbauen.

    Zitat

    - man kann echt alles damit machen(man wird nicht so schnell bevormundet)

    "Alles machen" kann man mit jeder touring-kompletten Sprache. Als Beweis dafür möchte ich HOpenGL vorstellen: http://haskell.org/HOpenGL/

    Zitat

    - eigentlich Plattformunabhängig

    Naja, wenn man compilerspezifischen Syntax und sämtliche libs außer stdc++ weglässt. Damit kann man mit C++ aber nimmer viel anfangen, und außerdem gilt das für fast alle Programmiersprachen (sogar C#).

    Zitat von a9bejo

    Die "Java Language" ist derzeit die am weitesten verbreitete und am besten unterstuetzte Programmiersprache fuer die Java Platform.

    Oh mein Gott, ist das typisches Marketing-Speak :) Nona ist das die am weitesten verbreitete Sprache, is ja auch die einzige, die offiziell vom VM-Hersteller beworben wird.

    Trotz dem muss man erst mal eine Sprache ein paar Monate verwendet & 1-2 mittelgroße Projekte damit geschrieben haben, damit man wirklich etwas über sie aussagen kann. Alle Sprachen haben so Eigenheiten, auf die es sich erst einzustellen gilt.
    Beispielsweise fluchen alle Objective C-Anfänger über die ungewohnte Schreibweise mit den vielen eckigen Klammern [], aber wennst es mal gewohnt bist wunderst dich schon drüber, wieso man in anderen Sprachen 5 Klammernebenen für einen einfachen Befehl braucht, oder warum C++-Programmierer message passing immer "Funktionsaufruf" nennen.

    du brauchst nur das jdk, das jre ist unnoetig (und koennte zu konflikten führen)

    • kopier das eprog.jar nach C:\Programme\Java\jdk1.5.0_05\lib\ext\
    • Erstell dein <deinfile>.java
    • Führe C:\Programme\Java\jdk1.5.0_05\bin\javac <deinfile>.java aus
    • Führe C:\Programme\Java\jdk1.5.0_05\bin\java -cp . <deinfile> aus

    unreal: sachen in ext muss man net in den classpath geben. schaden tuts aber auch net.

    Zitat von buechsengustel

    Fuer das Bsp von oben, wo das Package hier liegt:
    C:\Programme\Java\jdk1.5.0_05\jre\lib\ext\EprogIO. jar
    heisst der CLASSPATH dann

    Code
    .;C:\Programme\Java\jdk1.5.0_05\jre\lib\ext\

    Sorry, das ist ein Blödsinn. Alle .jar-Files, die in diesem ext-Verzeichnis drinnen sind, werden automatisch geladen. Dazu braucht man nichts im classpath angeben (. sollte trotzdem drin sein).
    Weiters, indem man ein Verzeichnis in den Classpath gibt, werden dadurch nicht die .jar-files im Verzeichnis geladen, sondern nur die .class-Files (on demand). Daher bringt das ext-Verzeichnis in den classpath hauen nicht wirklich was. Außer man entpackt das jar-File dort rein, aber das wär keine gute Idee und bringt keinen Vorteil.

    Der id3-tag wird direkt in der Datei gespeichert, d.h. wenn die Datei sonst noch ok ist, kann das nur ein Programm gemacht haben, das genau weiß, was ein id3-tag ist und wie man ihn ändert. Was evtl noch relevant wäre ist, welche mp3-player du drauf losgelassen hast, die auch Schreibrechte auf die Dateien hätten.

    Ich hab das so gelöst, dass ich das config file von netbeans umgeschrieben hab, weil die da irgendwie sehr auf /Library/Java/Home fixiert sind.

    Das File ist NetBeansIDE5.0Beta.app/Contents/Resources/NetBeans/etc/netbeans.conf, dort muss man folgendes reinschreiben:

    Code
    netbeans_jdkhome="/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home"
    Zitat von MaxAuthority

    Vorteil von C ist, dass du nicht eine java runtime als dependency hast, was im desktop bereich doch noch nicht ueberall standard ist.

    Dafür hast in C bei sowas immer die Plattformabhängigkeiten drin, und die API is auch net ganz so elegant und einfach zu verwenden.

    Zitat von MaxK

    Gibts eigentlich ein Script, mit dem man sich automatisch anmeldet? ->
    z.B.: Ich klapp mein iBook auf, WLAN ist TUNET -> Verbinden über Cisco Client mit den Login Daten...

    Wär doch nett, oder?

    Ja, wäre nett. Ich hab mir schon überlegt, sowas zu schreiben, bin aber bisher nicht dazu gekommen. Müsste man allerdings in C machen.

    Jensi: Das geht ganz gut unter Linux, aber wird net automatisch gestartet wenn man sich im tunet-Empfangsbereich befindet... Unter Mac OS X sollte das durchaus möglich sein, dass das komplett automatisch passiert alles.

    das liegt vermutlich daran, dass du die stdc++ lib net dazulinkst. Wenn du g++ statt gcc verwendest, sollte er alles richtig machen.

    Zu srandomdev: der aufruf holt sich den seed automatisch von /dev/random, könnte man notfalls nachprogrammieren (is aber net so einfach).

    Zitat von ComSubVie

    Wobei gerade im GUI-Bereich wäre es schon schön zu wissen, was eure favorisierten C(++)-Bindings sind, schließlich will man ja auch mit C plattformunabhängig bleiben - mit QT hab ich mich jedoch nie anfreunden können, und GTK ist zwar schön, aber mehr C als C++ (oder hat sich das inzwischen geändert?).

    Es gibt gtkmm, das sind c++-bindings für gtk.

    Zitat

    aber ich mag Java trotzdem nicht. Das ist aber wohl mehr eine religiöse Überzeugung.

    Kann ich nicht nachvollziehen, aber ich bin ja auch Atheist :)

    Zitat

    hal: Das mit C++ kann ich nicht nachvollziehen. Ok, ein KDE kompiliert ewig, aber das liegt glaub ich nicht wirklich an der Sprache selber (wobei ich um KDE einen weiten Bogen mache), wenn du allerdings Metaprogrammierung mit C++ betreibst, so ist das durchaus klar und verständlich das der Compiler eine gewisse Zeit beansprucht (siehe z.B. CodeGuru: C++ Math and Fun).

    Naja, das File über das ich vorhin geschrieben hab war ein Parser in spirit aus boost implementiert, das ist template-Vergewaltigung sondergleichen. C++ hat eine funktionale Programmiersprache eingebettet, und der Autor von spirit nutzt das bis ins Extrem aus.

    Zitat von Wolfibolfi

    Und die Compilezeiten [von Delphi] sind auch spitze.

    Also die einzige Programmiersprache die ich kenn, wo das kompilieren eine irgendwie nennenswerte Dauer braucht ist C++, alle anderen sind eh ganz ok. Ich hab mal in C++ ein File mit ein paar hundert Zeilen geschrieben, das ca 10mins und 1.5GB RAM zum Kompilieren gebraucht hat...