Habe gestern SuSE 10 installiert.
– MP3 Sound geht nur noch mit RealPlayer.
– Der g++ ist: gcc version 4.0.2 20050901 (prerelease) (SUSE Linux)
Der g++ scheint noch nicht ausgegoren zu sein.
Jede Menge Warnings in der Qt3 library. (Qt4 erst garnicht probiert)
Bei libnodave und QWT schmeissts ihn ganz raus.
Meinen eigenen Code könnte ich ja noch beibiegen.
Früher (SuSE 9.3) nicht mal 1 Warning !
Eigentlich reicht mir die Arbeit schon aus, die mir durch Qt4 aufgehalst
wurde. Aber nun das ?
Wenn das no weiter geht, Adieu Linux.
Eventuell Win + VMware.
PS: Ich dachte Die hätten in der “openSuse Community” getestet.
Pustekuchen !
Inzwischen kann ich die Projekte wieder make’en.
Aber bei den MOC Dateien kommen Warnings.
Sehr unschön.
Kann es sein, dass im Moment Vieles in Änderung begriffen ist ?
(gcc 4, Qt4, …)
Von der ersten Version von KDE4 erwarte ich zunächst einmal Probleme.
1) Hättest ja mittesten können (was Du natürlich nicht mußt).
2) Bei SuSE würde ich persönlich (wenn überhaupt) 3 Monate warten bis die gröbsten Fehler ausgemerzt wurden.
3) Um auf deine Frage zu antworten: Ja und Nein. Wenn Du ein stabiles System willst nimm Debian oder Slackware.
4) SuSE !== Linux.
Ich weiß nicht warum SuSE immer mit Linux gleichgesetzt wird. Linux ist ein Kernel und ein bischen was drumherum, SuSE ist eine Distribution. Und wie es scheint hat der Community Prozeß dort noch nicht die Früchte getragen, wie seinerzeit bei Mandrake.
b.
Wenn das no weiter geht, Adieu Linux.
Eventuell Win + VMware.
Ja, Rainer, sicher hast du damit dann gar keine Probleme. ^^;
Ich habe für meine Anwendung TkKasse ganz bewusst Tk genommen, weil ich da nicht ständig Interface-Änderungen hinterherprogrammieren muss. Dass du mit Qt sicher ein schickes, aber nicht unbedingt über lange Zeit stabiles API für deine GUI-Anwendung benutzt, dürfte dir doch mit jedem KDE-Major-Release klarer geworden sein.
Und warum sich über Dinge aufregen, die man ändern kann: Mach deine eigene Distribution, mit der du den pvbrowser dann passend auslieferst. Die Fertiggeräte, die demnächst auf den Markt kommen sind mit einer selbstgebrauten Distribution ausgestattet, die mit 64MB Flash und anderen Begrenzungen der Hardware auskommt. Das kommt zumindest bei MEINEN Kunden gut an, denen ist ein autarkes, reibungslos arbeitendes Gerät lieber als die Integrierbarkeit in eine von wahlweise 20 verschiedenen Programm-/Libraryhalden. Ich selbst find’s auch besser, weil wir halt die volle Kontrolle über den Bootprozess etc. haben und nebenbei auch schnell mal die Hardwareplattform von MIPS über i386 nach XScale ändern konnten.
Standard OOP Disclaimer: Wiederverwendbarkeit von Code ist das Credo der OOP, aber es funktioniert nicht, weil die Compiler-Programmierer ihre ABIs nicht stabil halten, weil die Library-Programmierer ihre APIs nicht stabil halten und weil die Benutzer keine Windows95-Open-Dialoge mit 8.3-Dateinamen in aktuellen Applikationen wollen.
Mit freundlichem Gruß
Jan
Mit Deinem Disclaimer liegst Du ja sowas von daneben! Bei OOP geht es um die Kapselung von Daten. Du kannst Deine Daten nur über bestimmte Schnittstellen manipulieren und kannst als Entwickler auch noch den Zugriff beschränken. Damit wird die Fehlersuche einfacher und ein Entwickler kann komplexere Programme schreiben. Wiederverwendbarkeit ist nur ein Nebeneffekt der Kapselung.
OOP ist außerdem ein Konzept und als solches unabhängig von einer Programmiersprache. Ein Konzept hat keine ABI, keine Libraries, etc.! Du scheinst OOP als Entwurfskonzept für Software mit der Programmiersprache C++ zu vermengen. C++ ist ein riesiger Mischmasch aus allen möglichen Konzepten (OO, generisches Programmieren, prozedurales Programmieren, …) und wird leider zu unrecht als OO Sprache bezeichnet. Schau’ Dir lieber Smalltalk oder Ruby an, wenn Du mal in OO reinschnuppern willst. Beide Sprachen benutzen übrigens keine Compiler und haben somit auch keine Probleme mit Compilerentwicklern, die an der ABI rumschrauben;-)
Was die Wiederverwendbarkeit von Code angeht klappt OO übrigens auch recht gut. Bei Umsetzungen dieses Codes in Binärformate (Libraries, etc.) sieht es nicht ganz so rosig aus… aber da sind nicht-OOP Projekte auch nicht besser drin.
Mit Deinem Disclaimer liegst Du ja sowas von daneben! Bei OOP geht es um die Kapselung von Daten. […] Wiederverwendbarkeit ist nur ein Nebeneffekt der Kapselung.
Und wozu ist die Kapselung gut? Dass ich nicht an internen Variablen herumschraube, sondern definierte Interfaces benutze. Also praktisch das Äquivalent von Libraries auf niedrigerer Ebene (+automatische Speicherverwaltung der Objektvariablen). Damit also genau auch die Wiederverwendbarkeit von Code — das jetzt als Nebeneffekt abzutun halte ich für ziemlich kurz gefasst.
Innerhalb eines Programms kann man die Kapselung natürlich dann auch nutzen, um die eigenen Gedanken zu ordnen, doch wie ich schon schrieb, bleiben die Interfaces der Objekte auch beim besten Ansatz nicht dauerhaft stabil. Man pfriemelt immer noch eine Methode dazu, die genau eine benötigte Objekteigenschaft offenlegt, weil die „irgendwer woanders” halt gerade braucht. Je größer das Objektökosystem wird, desto mehr Kuddelmuddel sammelt sich an, den man nicht mehr vernüftig warten kann. Also redesign. Womit wir wieder bei deiner Aussage wären, dass OOP ja eigentlich nur „Daten kapseln” soll.
Worauf ich also mit meiner *Glosse* im anderen Artikel hinweisen wollte, ist, dass man nicht glauben soll, es gäbe einen „besseren” oder auch nur „einfacheren” Weg, ein Softwareprojekt zu meistern als sich einfach durchzubeißen — leider werden ja häufig nach solchen Kriterien die Werkzeuge ausgesucht. Ich spielte damit auf Rainers Scherz an, er werde demnächst wohl Windows+vmware nutzen.
Der Standard-OOP-Disclaimer war also ein Platzhalter für den Standard-beliebige Methode-Disclaimer. Den Gedankengang zu OOP habe ich über die Interface-Stabilität, nicht über C++ geschlagen (letzteres hinge ja auch irgendwie in der Luft.)
Schau’ Dir lieber Smalltalk oder Ruby an, wenn Du mal in OO reinschnuppern willst. Beide Sprachen benutzen übrigens keine Compiler und haben somit auch keine Probleme mit Compilerentwicklern, die an der ABI rumschrauben;-)
Ich benutze seit langem erfolgreich Itcl. C++ ist gegen alle Skriptsprachen-Ansätze von OOP (wahrscheinlich aber sogar generell) einfach nur Müll.
Jan
Du entwickelst nun doch schon eine ganze Zeit mit GCC und Co., da solltest Du doch eigentlich mitbekommen haben, dass der C++ Compiler von Version zu Version “besser” wird… und damit i.d.R. inkompatibel zur Vorgängerversion ist.
Neben der ABI kommt der “neue” meistens auch nicht mit den Code klar, den der Vorgänger gefressen hatte, obwohl er nicht dem C++ Standard entsprach. Das geht nun schon seit einigen Versionen so… und Du bist immernoch überrascht, dass alter Code wie QT3 nicht damit klar kommt?
QT4 sollte besser gehen… für QT3 haben die Distributoren mittlerweile aber auch schon Patchsets geschaffen, die den Code GCC 4 kompatibel machen. Musst Du Dir halt besorgen und einspielen (oder Du nimmst gleich die Packete).
Nur damit Dich die nächsten GCC Upgrades nicht überraschen: Auch der neueste ist nicht voll C++ Standard konform. Beim nächsten größeren Compiler Versionssprung kannst Du ähnliche Probleme wieder erwarten. Wie Du dieses Problem mit Windows + VMWare lösen willst ist mir völlig schleierhaft!
Deine Programme mit einem veralteten Kompiler zu übersetzen ist denke ich keine Lösung: Der neue ist dichter am C++ Standard. Wenn der neue mit Deinem Code klar kommt, dann sollte er damit portabeler sein. Ganz abgesehen davon, das viele Distributionen keine Bibliotheken mit der ABI des alten Übersetzers ausliefern und Du Dir die Benutzer verkrätzt, wenn die Dein Programm nicht mehr ohne Klimmzüge ans laufen bekommen. Ich würde als Entwickler nicht zurück nach SuSE 9.3 gehen…
Und bitte höre mit diesem “SuSE tut nicht, Linux ist soooo schlecht” Gejammere auf. Wenn Du mit SuSE nicht klar kommst, dann nimm halt eine andere Distribution. Es gibt ja genug davon (und einige, die bei mir und meinen Kollegen deutlich weniger Probleme machen als die aus Nürnberg). Du als Entwickler solltest eigentlich einschätzen können, welche Tools für Dich geeignet sind, bist ja definitiv kein unerfahrener Einsteiger mehr.
Wenn Qt3 ausgeliefert wird, sollte es mit GCC4 problemlos funktionieren.
Und keine Warnings ausstossen. Wenn es dazu Patches gibt, um so besser.
Windows + VMware:
Zur Zeit benutze ich Linux auf meinem Hauptrechner. Daher will ich dort auch
mal MP3’s oder DVD’s konsumieren können.
Die Lizenzprobleme dürfen nicht dazu führen, dass man das nicht mehr kann.
Ich wäre auch bereit für diese Lizenzen (einmalig) zu bezahlen.
Wenn das nicht möglich ist, dann mache ich in Zukunft Multimedia unter (dem
bösen) Windows. Allerdings weiss ich nicht wie (das gute) Linux dann den
Desktop erobern will.
VMware bietet zudem die Möglichkeit mehrere Distributionen testen zu können.
Unter VMware sollte ich auch FreeBSD testen können.
Es gibt Software von (Siemens, GE, …) die ich unbedingt brauche und die nun
mal nur unter Windows läuft.
Nein, als QT3 (erstmalig) ausgeliefert wurde, da hätte sie keiner übersetzen können, wenn sie problemlos mit dem GCC 4 arbeiten würde. GCC 3 kommt mit den GCC 4-Code schliesslich genauso wenig klar wie umgekehrt… deshalb wurde der Code damals für den GCC 3 ja so geschrieben.
Software, die beim kompilieren keine Warnings produziert (insbesondere unter einem anderen Compiler als ursprünglich zur Entwicklung benutzt) ist extrem selten. Würde mich wundern, wenn Deine da mit gutem Beispiel vorangehen würde (meine tut es definitiv nicht;-).
Ja ich weiß, in einer perfekten Welt würden sich alle an den C++ Standard halten und es gäbe solche Probleme nicht… leider gibt es im Moment meines Wissens keinen voll C++ Standard konformen Compiler. Das ist ein Monster von einem Standard! Wir alle, die wir mit C++ arbeiten müssen oder wollen, können nur um dieses Gewirr herumcoden oder eine andere Sprache benutzen. Ein Wechsel zu anderen Betriebssystemen und Compilern Dein Problem also nicht lösen.
Zu Windows und VMWare: Mach dass doch einfach, wenn Du meinst damit produktiver zu sein.
Zu Lizenzproblemen: Meines Wissens nach brauchst Du für eine MP3 Lizenz noch nicht mal was bezahlen… es genügt wenn der Distributor nachweist wieviele Nutzer er hat. Genau das ist aber halt bei Open Source nicht möglich:-) Darf ja jeder weitergeben… wie soll SuSE oder wer auch immer da angeben wieviele Nutzer es gibt?
Wer sagt eigentlich, das “Linux” den Desktop erobern will? Wer ist dieser “Linux” überhaupt? Sorry, ich hasse einfach so ein pauschalisierendes Gelabbere.
Ja, VMWare (und Xen und Qemu um mal ein paar freie Alternativen dazu zu nennen) sind Klasse zum Distritesten. Oft reicht aber auch schon ein einfaches chroot:-) Der Kernel ist dann zwar nicht der aus der zu testenden Distribution, aber oft reicht ja schon ein “Userland-Test” (z.B. wenn man den Kernel sowieso schon in der “alten” Version einer Distri aktualisiert hat und sehen will, ob die “neue” Version so gut ist wie behauptet).
Also da muß ich überzeugter C++-Programmierer doch mal wiedersprechen. Auch meine Programme haben ein oder zwei Änderungen benötigt um mit GCC 4 klar zu kommen. Aber das waren stellen, wo der Compiler zu recht unsauberen Code bemängelt hat. Nachdem ich das korrigiert hatte, compiliert der Code auch mit GCC 3. Und das ohne Warnungen (auch mit -Wall und -pedantic).
Man kann mit C++ portablen Code produzieren. Das Interface ist aber nur zur Compilezeit kompatibel. Ich kann eine Klasse jederzeit verändern, so daß er zur Compilezeit sich genau so verhält, wie vorher (das ist ja die Idee der OO), er aber binär völlig anders aussieht. Und das liegt nicht am Compiler, sondern ist quasi ein Feature der Sprache.
So kann ich z. B. private Variablen in Klassen löschen oder hinzufügen, ohne Einfluß auf das (Compilezeit-)Interface zu haben. Oder ich kann Methoden, die vorher nicht inline waren, inline deklarieren. Dabei verschwinden diese unter Umständen aus dem Binary. Sie sollen ja zur Compilezeit aufgelöst werden. Auch kann ich Funktionen durch Funktoren ersetzen. Das sind nur einige wenige Beispiele.
Das ganze ist durchaus so gewollt, bedeutet in der Praxis aber durchaus Probleme, wenn ich shared libraries austausche. Das geht halt mit C++ nicht so einfach. Dafür ist der Code optimal für die jeweilige binäre Darstellung optimiert.
Und noch ein Satz zur Frage SuSE 9.3 oder 10.0: Ich selbst bin gerade wegen GCC 4 gleich auf SuSE 10.0 umgestiegen, da GCC 4 mit meinem Code strenger ist und er dadurch portabler wird. Bisher hatte ich keine Probleme mit 10.0.
Tommi
Software, die beim kompilieren keine Warnings produziert (insbesondere unter einem anderen Compiler als ursprünglich zur Entwicklung benutzt) ist extrem selten. Würde mich wundern, wenn Deine da mit gutem Beispiel vorangehen würde (meine tut es definitiv nicht;-).
In C gibt’s für Compiler-Warnings keine Entschuldigung — irgendwer ist Schuld, der Applikationsprogrammierer oder der Compilierprogrammierer, und solche Fehler stellt man ab.
Bei C++ mag der schleppende Standardtisierungsprozess eine Entschuldigung sein, solange er noch läuft.
Jan
Im Prinzip hast Du recht, aber übersetze mal ein Paar Open Source Programme mit
-Wall -Werror… die meisten kriegst Du damit nicht übersetzt. Der Linux-Kernel
tut jedenfalls mal nicht, obwohl die Entwickler mittlerweile dort einiges an
Mühe in die Behebung von Warnings stecken!
Wieso “installieren”? Du bootest einfach wieder von deiner Arbeitspartition und lässt die Testpartition außen vor oder verwendest sie für etwas anderes.
Ach, du hast keine Testpartition? Selber schuld! Oder werkelst du noch mit einer 2 GByte-Platte von anno dunnemal?
Multi Boot hatte ich früher einmal.
VMware ist da aber eleganter.
Und warum musst du dann SuSE 9.3 wieder installieren bzw. was genau ist daran “eleganter”?
Es ist mal wieder dieses SuSE Thema…
Man erwartet halt von einer so verbreiteten Distribution, dass bestimmte grundlegende Sachen einfach funktionieren.
Das leidet bei Suse seit geraumer Zeit.
Ich bin von der SuSE 10 auch nicht sonderlich begeistert, besser scheint da schon die Version des OpenSuSE “SUPER” Projekts. Diese ist auf den
Desktop Einsatz ausgerichtet.
Ansonsten für Entwicklungsaufgaben besser die “gereifte” SuSE 9.3 verwenden.
Im Bereich Multimedia funktioniert da leider bei Windows einiges einfacher “Out of the box”.
Gruß
Reiner
Multimediadistributionen: aLinux, Mepis, Turbolinux, DyneBolic, PCLinuxOS …
Distributionen die mit EINEM Eintrag in ihre Repository.lst Multimediafähig werden: ALLE.
Bei Debian (und Derivaten) reicht ein Eintrag, dann ist alles auf der Maschine was man braucht, gleiches gilt für Mandriva. Das einzige was die Distributoren meiner Meinung nach machen könnten, wäre die Leute deutlicher darauf aufmerksam machen WARUM sie jetzt WO diese Funktionalität nachrüsten können/müssen. Das sensibilisiert die Leute und löst gleichzeitig das Problem.
Und Sorry, bei Windows läuft direkt nach einer Installation erstmal gar nix out of the box. Nach der Treiberorgie kommt die Peripheriegeräte Orgie und dann die Updateorgie. Schließlich dann die OEM-Versions Installationsorgie, danach kann man dann auch DVD’s gucken oder CD’s brennen. Videos anschauen? Klar, der Mediaplyer holt sich die Codecs erst aus dem Netz. WAS also geht bei Windows out-of-the-box???
b.
Updateorgie
Vorher noch die Update-Brennorgie auf einem anderen Rechner, denn mit einem ungepatchten Windows sollte man tunlichst das Internet auslassen.
Klar, der Mediaplyer holt sich die Codecs erst aus dem Netz
Und dann funktioniert es trotzdem nicht, weil der Grafikkartentreiber das Farbformat des Videos nicht mag.
WAS also geht bei Windows out-of-the-box???
Das würde mich jetzt aber auch brennend interessieren. Vermutlich ist die Box gemeint, in der der Computerhändler sitzt, der den Rechner installiert hat.
Jan
– Unter VMware (Windows) läuft die SuSE 10 tadellos.
– Multimedia kann ich unter Windows machen.
– Die SPS Programmiersoftware von Siemens kann ich laufen lassen.
– Die SPS Programmiersoftware von Schneider/Telemechanique kann ich laufen
lassen.
– Ich kann OPC betreiben.
– Weitere VM’s mit anderen Distries und FreeBSD werden folgen.
– Die Compilerwarnings von GCC4, die meinen Code betreffen, sind behoben.
– MOC Dateien (Qt) erzeugen Compilerwarnings unter GCC4
– Mein home Directory liegt auf einem nfs share meines Linux Servers.
Das scheint optimal für mich zu sein, da ich ohnehin ja auch eine Windows
Version von meinem Projekt anbiete. Die muss ich ja auch übersetzen/testen.
PS: Multimedia ist heutzutage ein “must have”. Wenn es da Lizenzprobleme gibt,
dann muss man die Lizenzen eben bezahlen. So ist das nun einmal. Was hindert
den Distributor also daran ein kostenpflichtiges Multimedia Pack anzubieten.
Ohne multimedia Funktionen, wird sich Linux auf dem Desktop nie durchsetzen.
Nun: Bewertet mich bitte recht negativ.
Ohne Multimedia … ICH habe gar kein Problem mit Multimedia auf meinem Linux-Desktop. SuSE ist die EINZIGE Distribution die einem (ich nehme an ungewollt, bzw. etwas unglücklich) in dem Bereich Steine in den Weg legt, weil sie Multimedia-Crippleware anbieten.
Rainer, ich rede Dir dein Setup überhaupt nicht aus und wenn SuSE 10 in einer virtuellen Maschine rund läuft um so besser für Dich, wenn Du Windows brauchst, kein Problem aber Deine Ansichten zur Multimediaunfähigkeit von Linux im Allgemeinen kann ich nicht teilen. Es ist ein must have, es gibt genügend kleinere Distros, die es haben und man kann alle anderen sehr einfach damit nachrüsten.
Hallo,
meine Leidensgeschichte mit dem SuSE10 ist noch länger.
1) Es lässt sich nicht installieren, weil nach dem Reboot
der init-Prozeß sich unmittelbar nach dem boot.local aufhängt
und irgendeinen Blödsinn treibt und nachfolgend keines der
rc.Scripte nicht aktiviert!
Nachdem niemand in der Hotline mit mir reden konnte, habe ich
die Bezahl-Hotline angerufen und von dem freundlichen Mitarbeiter
dort erfahren, dass die DVD ein kaputtes ATI-Treiberpaket enthält
und hat mich danach mit einem ISO-Link vertröstet.
Aber auch damit kommt die Installation nicht weiter.
(Hardware: mobil-ATI Grafikarte auf einem Mobil-Athlon-XP
Prozessor).
Auf den Hinweis, dass ich die Kiste auch im Single-Modus gestartet
hatte und damit kein X11 aktiv werden konnte, ignoriete der Kollege
am Draht.
2) Die lahme Performance am USB-Stick kann ich nur bestätigen. Eine
SuSE 10 Installation auf einem Desktop-PC brauchte auch die sau-lahme
Übertragungsgeschwindigkeit (mit und ohne SYNC).
Es scheint daran das bescheidene subfs Schuld zu sein. Das bremste schon
seit 9.3 Zeiten die Geschwindigkeit im Vergleich mit direkt gemounteten
Laufwerken.
3) Ich bin werde demnächst ne andere Distribution ausprobieren.
Ich zahle für ein Dirstributions-Abo nicht ne Menge Geld um dann
mit einer halbfertigen getesteten Distribution unter Debian
Niveau verdeppert zu werden.
Übrigens schon das vorletze Kernel-Update sorgt auf der 9.3 Version
dafür, dass ich mein DAT-Streamer nicht mehr ansprechen kann,
ohne einen 1a Kernel-Freeze hinzulegen
Mir reicht es !
Zur ersten Frage wegen MP3, die zweite Frage wegen c++ haben andere schon beantwortet:
Fehlender MP3-Support ist normal aus lizenzrechtlichen Gründen, ebenso wie verschlüsselte DVDs. Viel früher hat Suse beides untersützt und geliefert.
Nach einer Neuinstallation (kein Update!! ist deprecated) von Suse 10.0 besuche ich suse packman und lade für Suse 10 alle rpms z.B. für Xine, Amarok usw. Auf der Xine-Seite findet man win32codec… (AVI; WM9 usw…), xvid sollte auch installiert werden.
Ich geb dir als Linux-Anfänger mal einen guten Link für xine: Suse Packman Xine Gehe dort auch zur Kategorie “Multimedia” um andere Proggys deiner Begierde zu installieren.
Fortgeschrittene wissen, wie man z.B. mit Hilfe von apt solche Pakete schnell reinzieht. Z.B. von Suser-guru oder super (zu finden auf opensuse.org)