Forum: PC-Programmierung Was ist die Zukunft? WPF oder WinForms?


von hexaFy (Gast)


Lesenswert?

Gude,


mittlerweile nutze ich u.a. seit 2 Jahren Beruflich die Visual Studio 
IDE für die Entwicklung von Windows Forms Applications, womit ich auch 
sehr zufrieden bin!
Nun habe ich erste Schritte in Richtung WPF gewagt. Es ist mir klar das 
signifikante Unterschiede zu WF bestehen.

Mich beschäftigt jedoch die Frage, wohin sich die Zukunft entwickelt?
Auf dem Stellenmarkt lässt sich zugleich eine Nachfrage für 
Programmierer auf WPF Ebene feststellen.
Dennoch bin ich mir nicht ganz sicher wie es in der Industrie aussieht.

Wo geht eurer Meinung nach der Trend hin?



Gruß

6Fy

von Günther (Gast)


Lesenswert?

Niemand verwendet Windows Forms, kommerziell komplett unbrauchbar.

von MaWin (Gast)


Lesenswert?

hexaFy schrieb:
> Wo geht eurer Meinung nach der Trend hin

Weder - Noch.

Beide Systeme sind für richtige Software unbrauchbar. Es mangelt an 
Plattformübertragbarkeit, an Flexibilität (wer würde WinWord oder Eagle 
mit den Feameworks aufbauen) und nicht mal für einfache Anwendungen wie 
Versicherungstarifberechnung sind sie zu gebrauchen, denn wer will schon 
beim Hinzufügen eines Feldes an mehreren Stellen Code hinzufügen müssen, 
Felder müss(t)en generisch abgehandelt werden.

von dunno.. (Gast)


Lesenswert?

das sind einander nachfolgende technologien..


winforms -> WPF -> UWP


stand jetzt ist WPF das maß der dinge, weil UWP nur auf Windows 10 
funktioniert. Das wird dann in Zukunft mehr und mehr interessant 
werden..

von Peter II (Gast)


Lesenswert?

Günther schrieb:
> Niemand verwendet Windows Forms, kommerziell komplett unbrauchbar.

wir vertreiben Kommerzielle Produkte mit Windows Forms. So unbrauchbar 
ist es also nicht.

WPF finde sehr unhandlich und es braucht auch mehr Resourcen. Windows 
Forms wird wohl WPF überleben. Eventuell bringen sie ja für .net core 
etwas neues raus. (Da fehlt ja die komplette GUI noch, vermutlich sind 
sie auch mit WPF nicht so zu frieden).

von Peter II (Gast)


Lesenswert?

MaWin schrieb:
> denn wer will schon
> beim Hinzufügen eines Feldes an mehreren Stellen Code hinzufügen müssen,
> Felder müss(t)en generisch abgehandelt werden.

auch MaWin rede doch lieber über ding die du kannst. Hast doch schon oft 
bewiesen das du noch .net nicht wirklich viel Ahnung hast.

Windows Forms erlaubt die komplette GUI zu Laufzeit zu erzeugen, da kann 
man beliebige Felder hinzufügen oder entfernen.

von Der kein Bock mehr A. (Gast)


Lesenswert?

Hi, für .NET oder Powershell ist WPF schon etwas schöner zu 
programmieren und anzuwenden als die Forms. Allerdings habe ich keine 
Erfahrung mit wirklich großen GUIs.
Ich komme auch ursprünglich aus der Web-Programmierung, da ist mir der 
Umgang mit XAML für die Oberflächengestaltung nicht ganz so fern.
Gruß

von Donni D. (Gast)


Lesenswert?

Wenn man was neues anfängt, dann WPF oder UWP nehmen. Sieht schicker aus 
und ist einfacher zu handhaben wenn man es erstmal verstanden hat.

von Jochen (Gast)


Lesenswert?

Für mich - steinigt mich dafür - ist aktuell eindeutig Qt das Maß der 
Dinge. Selbst für native Windows-Anwendungen tu ich mir Visual Studio 
nicht mehr freiwillig an.

Verglichen mit QtCreator (oder selbst mit Eclipse) ist VS m.M.n. 
ziemlich steinzeitlich.

Konzeptionell hatte Windows irgendwie schon immer Schwächen mit seiner 
GUI, egal ob damals nackt WinAPI oder MFC oder WinForms. Allesamt 
fühlten sie sich unfertig an.

von Rentner (Gast)


Lesenswert?

Mein erster Job waren DOS-Oberflächen für Grossrechner-Programme. Dann 
kam die Dbase-Blockgrafik auf Textbildschirmen. Danach üble Tricksereien 
auf Win3.1 . Mit Delphi wurde es etwas besser. Smalltalk war leider ein 
Rohrkrepierer. Mit der Qt ging es dann so richtig gut. Nur bin ich dann 
in eine ganz üble Sache rein gerutscht - Webbrowser als Oberfläche für 
Anwendungsprogramme.

Du musst sowieso andauernd was neues lernen. Am besten in das 
einarbeiten, was dir liegt. Wenn du Spass dran hast, wirst du so gut, 
dass du immer einen Job findest.

von Rolf M. (rmagnus)


Lesenswert?

Rentner schrieb:
> Mein erster Job waren DOS-Oberflächen für Grossrechner-Programme.

DOS auf einem Großrechner? Mit Singletasking und 640 kB RAM?

> Nur bin ich dann in eine ganz üble Sache rein gerutscht - Webbrowser als
> Oberfläche für Anwendungsprogramme.

Ja. Schade, dass sich nie ein richtiges UI auf Webbasis durchgesetzt 
hat, statt das mit html und viel Javascript und nem Dutzen anderer 
Buzzwords irgendwie so halblebig nachzufrickeln.

von hexaFy (Gast)


Lesenswert?

Qt ist in der Tat mächtig. Das nutze ich ebenfalls auf der Arbeit. Nur 
ist es Heute relativ egal ob du im Qt Framework auf C/C++ Basis oder im 
.NET Framework auf C# - WinForms oder WPF arbeitest (unter bestimmten 
Anforderungen).

Wenn du auf Hardware mit Treiber-Schnittstellen zurückgreifst, wird das 
SDK zu 99% mit Bibliotheken für alle gängigen Programmiersprachen 
mitgeliefert. In den letzten Zwei Jahren wurden meinerseits zwei bis 
drei Projekte via C# - WinForms welche überwiegend Hardware steuern 
(selbstgebaute, vom Kunden oder von Drittanbietern). Es ist auch kein 
Geheimnis das man hier bei bestimmten Timing-Anforderungen mit diesem 
Framework an gewisse Grenzen stößt (ja, es gibt auch hier Mittel und 
Auswege).

Hierbei ist jedoch Qt von Vorteil. Aufgrund eines Projektes welches hohe 
Timing-Anforderungen mit sich brachte, wurde dies per C/C++ im Qt 
Framework realisiert.


Gruß

6fY

von Cyblord -. (Gast)


Lesenswert?

Im aktuellen Projekt wird hier WPF eingesetzt, ich vermute nicht, dass 
das so schnell von der Bildfläche verschwinden wird.

von Karl Käfer (Gast)


Lesenswert?

Rolf M. schrieb:
> Rentner schrieb:
>> Nur bin ich dann in eine ganz üble Sache rein gerutscht - Webbrowser als
>> Oberfläche für Anwendungsprogramme.
>
> Ja. Schade, dass sich nie ein richtiges UI auf Webbasis durchgesetzt
> hat, statt das mit html und viel Javascript und nem Dutzen anderer
> Buzzwords irgendwie so halblebig nachzufrickeln.

Wenn ich mir Google Docs oder Kibana anschaue, kann man mit den 
Buzzwords aber
schon ziemlich ausgereifte GUIs entwickeln. Und die Technik bleibt ja 
nicht am
heutigen Tage stehen. HTML5 enthält schon einige Formularelemente wie
<button>, <menu>, <canvas> und <command> -- um nur einige zu nennen -- 
deren
Hintergrund eindeutig die Entwicklung von GUIs unter HTML ist. Auch 
QML/Qt
Quick weisen in die Richtung, daß GUIs künftig eher deklarativ in einer
Markup-Sprache erstellt werden. Gleichzeitig gibt es in aktuellen 
ECMAScript-
Versionen die Bestrebung, die klassische Prototypen-basierte
Objektorientierung der Sprache um klassische OO-Konzepte wie Klassen und
Vererbung zu erweitern.

Ohnehin ist es ja längst anerkannter Stand der Technik, GUI-Anwendungen
multilayered etwa nach dem MVC-Pattern zu entwickeln und die eigentliche 
GUI
(View) vom Datenmodell (Model) und der Funktionalität (Controller) zu 
trennen.
Ob ein GUI-Element dann mit  'new QPushButton("blabla", this);' erstellt 
und dann über Signale wie clicked(), oder mit '<button>' erzeugt und mit 
ECMAScript-Events wie onClick() mit dem Applikationscode verknüpft 
werden,
ist doch vor allem eine syntaktische Marginalie.

Stand heute tendiere ich jedenfalls schon seit mehreren Jahren dazu, nur 
noch
in Ausnahmefällen -- etwa wenn große Datenmengen in near-realtime 
visualisiert
werden müssen -- auf klassische GUIs zu setzen. Webbrowser haben einfach
eindeutige Vorteile: sie sind überall vorhanden und müssen nicht, wie
klassische GUI-Applikationen, eigens auf die Zielrechner der Benutzer 
deployt
werden. Webserver-Anwendungen kann man ohne größeren Aufwand zentral
konfigurieren und pflegen, wiederum ohne die klassichen 
Deploymentprozesse.
HTML-GUIs können außerdem häufig sehr viel besser mit unterschiedlichen
Ausgabemedien und -Formaten umgehen, ohne daß sich der Entwickler mit
verschiedenen Layout-Managern herumschlagen muß. Und die
Plattformunabhängigkeit hinsichtlich der Endgeräte ist prima: anstatt 
für jede
Zielplattform ein eigenes Binary zu erzeugen und bei der Entwicklung
entsprechende Workarounds zur Berücksichtigung der jeweiligen Umgebung 
zu
beachten, können ordentliche HTML-GUIs mit allen üblichen Plattformen 
benutzt
und bedient werden, egal ob mit Windows, MacOS, Linux oder *BSD, egal ob 
von
einem Desktop, Laptop, Netbook, Tablet oder Mobiltelefon auf die 
Applikation
zugegriffen wird. Und zuletzt vereinfacht das Konzept eine 
zentralisierte
Datenhaltung und das Backup.

Ja, im Moment ist die Entwicklung von Webbrowser-GUIs in vielen Fällen 
noch
ein wenig hakelig, aufwändig, und arbeitsintensiv, und zweifellos dürfte 
es
durchaus weniger von all dem sein. Aber wenn ich mir so den 
Gesamtaufwand
betrachte und überlege, wieviel Zeit und Aufwand ich auf der anderen 
Seite
dann bei der Entwicklung plattformunabhängiger Anwendungen, bei 
Deployment,
Konfiguration, Wartung und Pflege einspare, lohnt sich dieser etwas 
höhere
Entwicklungsaufwand schon jetzt, IMHO. Das ist auch der Trend, den ich 
bei
Kunden beobachte: immer mehr interne Anwendungen werden in die 
Webportale
transferiert, immer häufiger wird webbasierten Anwendungen der Vorzug 
vor
klassischen GUI-Anwendungen gegeben.

Ansonsten bin ich zuletzt über das C++-Webframework "Wt" gestolpert, das 
es ermöglichen soll, Webanwendungen nach ähnlichen Patterns wie 
klassische GUIs zu entwickeln. Habe ich mir noch nicht genauer 
angeschaut, sah auf den ersten Blick aber interessant genug aus, um das 
mal zu tun.

von Karl Käfer (Gast)


Lesenswert?

Karl Käfer schrieb:
> [...]

Heilige Krabbe, da hats mir die Formatierung zerrissen. Entschuldigung.

von Peter II (Gast)


Lesenswert?

Karl Käfer schrieb:
> Und die
> Plattformunabhängigkeit hinsichtlich der Endgeräte ist prima: anstatt
> für jede
> Zielplattform ein eigenes Binary zu erzeugen und bei der Entwicklung
> entsprechende Workarounds zur Berücksichtigung der jeweiligen Umgebung
> zu
> beachten,

Aber der aufwand dafür ist doch sehr hoch. man muss alte Browser und 
neue Browser unterstützen. HTML ändert sich ständig, es fallen auch 
dinge weg. man ist damit immer gezwungen seine Anwendung unter jeder 
neuen Browserversion zu testen.

Eine normale Anwendung braucht da weniger Wartung.

Als Anwender finde ich Browser-Apps einfach zu langsam. Ich verwende 
auch noch ein Mailclient und arbeite da nicht im Browser. Es nervt 
einfach wenn man Mails mal schnell durchscrollt und der Inhalt erst nach 
einigen 100ms erscheint.

von Karl Käfer (Gast)


Lesenswert?

Peter II schrieb:
> Aber der aufwand dafür ist doch sehr hoch. man muss alte Browser und
> neue Browser unterstützen. HTML ändert sich ständig, es fallen auch
> dinge weg. man ist damit immer gezwungen seine Anwendung unter jeder
> neuen Browserversion zu testen.

Entschuldige, aber das ist Unfug. Die Unterschiede zwischen den Browsern 
sind nicht zuletzt dank automatischer Updates etc. nicht mehr sonderlich 
groß, und für den Rest sorgen ordentliche Frameworks wie jQuery, Angular 
und Co. Die Behauptung, HTML ändere sich ständig, ist falsch -- 
tatsächlich muß man nicht jede Neuerung sofort mitmachen, und die 
Betriebssysteme sowie Browser ändern sich wesentlich schneller und 
häufiger als die einschlägigen HTML-Standards. Das sieht nur im Moment 
so aus, weil gerade HTML5 in der Einführung ist -- aber HTML4-Seiten 
laufen immer noch völlig problemlos und werden das für die nächsten 
Jahre wohl auch weiterhin tun. Zwischen HTML4 und und HTML5 liegen 16 
Jahre -- wie viele Windows-Versionen mit jeweils geänderter Technik, 
Optik und Haptik hat denn alleine Microsoft in dieser Zeit 
herausgebracht? Genau.

> Eine normale Anwendung braucht da weniger Wartung.

Eine plattformunabhängige Anwendung, die auch auf mehreren Plattformen 
benutzt wird, ist mindestens genauso wartungsintensiv. Das merkst Du nur 
nicht, weil Du nur in Deiner kleinen Windows-Desktop-Welt unterwegs 
bist. Aber wer neben Windows auch noch Android, MacOS, iOS und Linux und 
zudem verschiedenste Bildschirmauflösungen unterstützen muß, kommt 
hinsichtlich des Wartungsaufwandes nativer Anwendungen und Apps  schnell 
auf riesige Aufwände.

Daß der Entwicklungsaufwand bei Websoftware nicht zuletzt auch wegen der 
bekannten Schwächen von ECMAScript derzeit noch etwas höher ist, steht 
außer Frage. Die Aufwände für Pflege, Wartung, Deployment und Betrieb 
hängen zwar immer auch von Faktoren wie der Anzahl der Nutzer ab, liegen 
jedoch regelmäßig unter jenen für eine Desktop-Software -- zumindest im 
Enterprise-Umfeld.

> Als Anwender finde ich Browser-Apps einfach zu langsam. Ich verwende
> auch noch ein Mailclient und arbeite da nicht im Browser. Es nervt
> einfach wenn man Mails mal schnell durchscrollt und der Inhalt erst nach
> einigen 100ms erscheint.

Das kommt darauf an, wie schnell die Netzwerkverbindung und der Server 
sind -- und ob die Mails nur on-demand oder im Hintergrund geladen 
werden. Im letzteren Fall scrollt die Veranstaltung genauso schnell wie 
in Deinem Mailclient.

von Bernd K. (prof7bit)


Lesenswert?

hexaFy schrieb:
> Was ist die Zukunft? WPF oder WinForms?

Qt

von Peter II (Gast)


Lesenswert?

Karl Käfer schrieb:
> Entschuldige, aber das ist Unfug. Die Unterschiede zwischen den Browsern
> sind nicht zuletzt dank automatischer Updates etc. nicht mehr sonderlich
> groß,

genau das ist doch das Problem. Nach dem Update kann etwas nicht mehr 
funktionieren was vorher funktioniert hat (aber eventuell fehlerhaft 
war).

z.b. wollen sie jetzt den JavaScript Dialog entfernen. Wenn man ihn 
eingesetzt hat geht dann nichts mehr.

von Jochen (Gast)


Lesenswert?

Ich hab lange Zeit auch viele Tools als Webanwendung entwickelt. Zum 
einen, weil halt die Browser einfach gigantisch viel hergeben, wenn es 
um Visualisierung geht. Zum anderen, weil es einfach praktisch ist, 
überall auf die Anwendung zugreifen zu können.

Ich fühle mich mittlerweile allerdings regelrecht überfahren vom "Web". 
Es macht mir reichlich Mühe, überhaupt noch durchzusteigen. PHP - mein 
Favorit von damals - explodiert in alle Richtungen inklusive aller Vor- 
und Nachteile. Auf einfache Anwendungen wird erstmal node.js geschmissen 
und so weiter.

Da fühle ich mich beim Entwicklen in und um Qt ja fast wie im bequemen 
kleinen Wohnzimmer zu Hause :-)

von Sheeva P. (sheevaplug)


Lesenswert?

Peter II schrieb:
> Karl Käfer schrieb:
>> Entschuldige, aber das ist Unfug. Die Unterschiede zwischen den Browsern
>> sind nicht zuletzt dank automatischer Updates etc. nicht mehr sonderlich
>> groß,
>
> genau das ist doch das Problem. Nach dem Update kann etwas nicht mehr
> funktionieren was vorher funktioniert hat (aber eventuell fehlerhaft
> war).

Aber das hast Du bei den nativen Fatclients doch ganz genauso. Es ist 
doch einigermaßen erstaunlich, daß ich einen so erfahrenen 
.NET-Entwickler auf die geradezu endlosen Listen von Typen und 
Member-Funktionen hinweisen muß, die Microsoft allein in den 
Minor-Versionen 4.5 und 4.6 des .NET-Frameworks als obsolet erklärt hat:

https://docs.microsoft.com/en-us/dotnet/framework/whats-new/obsolete-types
https://docs.microsoft.com/en-us/dotnet/framework/whats-new/obsolete-members

> z.b. wollen sie jetzt den JavaScript Dialog entfernen. Wenn man ihn
> eingesetzt hat geht dann nichts mehr.

Welchen "JavaScript Dialog" meinst Du denn? Wenn Du die Funktionen 
alert(), prompt() und confirm() meinst, dann laß' uns doch bitte ernst 
bleiben. Denn abgesehen davon, daß kein halbwegs bei Verstand 
befindlicher Entwickler so etwas in einer modernen WebApplikation 
einsetzen würde -- dazu sind diese Dinger viel zu häßlich und 
unflexibel, und jedes moderne Framework bietet wesentlich bessere 
Möglichkeiten für so etwas -- wüßte ich bitte auch mal gerne, wer 
diese Funktionen entfernen will und wann das denn ungefähr stattfinden 
soll, daß Du das als so schrecklichen Nachteil anführst?

Normalerweise würden solche Features natürlich erst im nächsten Standard 
(HTML6 -- nach den 16 Jahren zwischen HTML4 und 5 in ca. 13 Jahren?) als 
deprecated markiert und dann im Folgestandard (HTML7 dann in ca 29 
Jahren) endgültig aus dem Standard und danach dann irgendwann auch aus 
den Browsern entfernt. Bis das passiert, haben GUI-Hersteller wie 
Microsoft schon das .NET-Framework, dessen Nachfolger und dann wiederum 
den Nachfolger dieses Nachfolgers begraben und unser GUI-Entwickler 
durfte die View-Layer seiner Software schon dreimal komplett neu 
schreiben und testen. ;-)

De facto sind HTML und JavaScript wesentlich stabiler als die mir 
bekannten  GUI-Frameworks, und die Browserentwickler und -Hersteller 
achten sehr genau auf die Abwärtskompatibilität. Es will ja keiner daran 
schuld sein, daß der eigene Browser morgen die Hälfte des Internets 
nicht mehr darstellen kann, und so beherrscht mein aktueller Firefox 
sogar noch das <listing>-Tag, das schon in HTML 3.2 von 1997 als 
deprecated markiert war... Insofern bin ich guter Dinge, daß meine 
zwanzig Jahre alten CGIs auch dann noch unverändert und problemlos mit 
aktuellen Browsern laufen werden, wenn alert() und ihre 
Schwesterfunktionen längst aus dem Standard entfernt worden sind.

von c.m. (Gast)


Lesenswert?

ich behaupte mal: die sprache muss zur anforderung passen.
was nutzen mir html5 und javascript wenn ich eine massendruckanwendung 
schreiben muss? was nutzt mir c# et al wenn es kein XSL-FO framework 
gibt?

zu guter letzt behaupte ich zusätzlich, dass jeder die sprache schätzt 
die er gut kennt und kann - und ich bezweifle das es viele leute gibt, 
die schon komplexe anwendungen in java und c# und c++ und pascal 
geschrieben haben, und tatsächlich fundiert vergleichende aussagen über 
die brauchbarkeit dieser sprachen machen können.

"Was ist die Zukunft? WPF oder WinForms?" - ehrlicherweise: keine 
ahnung. ich entwickle unter java. geile sprache ;-)

von Sheeva P. (sheevaplug)


Lesenswert?

Jochen schrieb:
> Ich hab lange Zeit auch viele Tools als Webanwendung entwickelt. Zum
> einen, weil halt die Browser einfach gigantisch viel hergeben, wenn es
> um Visualisierung geht. Zum anderen, weil es einfach praktisch ist,
> überall auf die Anwendung zugreifen zu können.
>
> Ich fühle mich mittlerweile allerdings regelrecht überfahren vom "Web".
> Es macht mir reichlich Mühe, überhaupt noch durchzusteigen. PHP - mein
> Favorit von damals - explodiert in alle Richtungen inklusive aller Vor-
> und Nachteile. Auf einfache Anwendungen wird erstmal node.js geschmissen
> und so weiter.
>
> Da fühle ich mich beim Entwicklen in und um Qt ja fast wie im bequemen
> kleinen Wohnzimmer zu Hause :-)

PHP war immer schon eher für Anfänger, die keinen besonderen Wert auf 
eine saubere Programmiersprache gelegt haben und schnell zu Ergebnissen 
kommen wollten, ohne sich mit Feinheiten wie der Webserverkonfiguration 
und solch exotischen Dingen wie Execute-Rechten auseinandersetzen zu 
müssen. Sorry, aber so sehen viele in PHP implementierte Anwendungen ja 
leider auch aus. (Deine natürlich nicht! :-)

Node.js hat den Vorteil, daß der Webentwickler nurmehr eine Sprache für 
die Server- und die Clientseite beherrschen muß. Kluge Idee, das.

Python und Flask oder Django, Ruby on Rails und viele andere 
Möglichkeiten existieren ebenfalls, wenn man es etwas traditioneller 
haben mag. ;-)

Aber im Wesentlichen sehe ich den Implementierungsaufwand von modernen, 
dynamischen Webseiten eher auf der Clientseite; die Serverseite ist 
dabei häufig nur noch eine Schnittstelle zum Datenspeicher. Schicke 
Diagramme zeichnet man nicht mehr serverseitig, wie man das früher 
gemacht hat. Stattdessen fordert der Client per AJAX/XMLHttpRequest die 
Daten als JSON oder XML an, der Server zieht sie aus der 
Persistenzschicht und übergibt sie an den Client, und der zeichnet dann 
ein hübsches animiertes Diagramm in einen SVG-Canvas -- und als 
besonderer Clou wird das rechenaufwändige Rendern der Grafik dabei auch 
noch auf dem Client erledigt und der Server durch dieses "Poor Man's 
Distributed Computing" entlastet. ;-)

Insofern wird die Sache auf der Serverseite oft einfacher als früher, 
und die Komplexität stattdessen eher auf die Clientseite verlagert. Da 
ist es sicher sinnvoll, sich in ein modernes ECMAScript-Framework 
einzuarbeiten, aber das ist nicht jedermanns Sache. Insofern spricht 
überhaupt gar nichts gegen Qt, das ist ein äußerst modernes und 
ausgesprochen leistungsfähiges GUI-Framework, das auch ich oft und gerne 
benutze, wo es sinnvoll ist.

Aber im Beruf sind heute eben zunehmend andere Dinge wichtig, die sich 
mit Webanwendungen oft viel besser realisieren lassen als mit 
klassischen GUIs. In mindestens zwei Fällen haben wir bereits Pitches 
gegen Wettbewerber gewonnen, weil die ihre fetten GUI-Clients angeboten 
haben und wir unsere Webapplikation -- und da ich sowohl Web- als auch 
GUI-Software deploye und bereibe und deswegen die Aufwände für beide 
Fälle kenne, kann ich diesen Trend nur allzu gut verstehen und bin 
überzeugt, daß er anhält.

von MaWin (Gast)


Lesenswert?

Karl Käfer schrieb:
> zentral konfigurieren und pflegen, wiederum ohne die klassichen
> Deploymentprozesse.

Das ist ja das schlimme.

Um Webanwendungen komplett auf dem lokalen Rechner laufen zu lassen (man 
erinnere sich an Microsoft HTA) ohne benötigte Serveranbindung, ist ein 
gigantischer Installations- Aufstand nötig, insbesondere wenn man 
mehrere Anwendungen gleichzeitig installieren muss.

Ein einfaches Installationsprogramm im Sinne von Microsoft MSI welches 
die Anwendung komplett einrichtet so dass auf die (html/hta) Datei 
geklickt wrrden kann, fehlt seit über 10 Jahren.

von MaWin (Gast)


Lesenswert?

c.m. schrieb:
> was nutzen mir html5 und javascript wenn ich eine massendruckanwendung
> schreiben muss

Richtig, gar nichts, für Massendruckanwendungen gibt es eh kein 
vernünftiges (WYSIWYG) Werkzeug, WinWord und FOP sind untauglich.

von c.m. (Gast)


Lesenswert?

MaWin schrieb:
> c.m. schrieb:
>> was nutzen mir html5 und javascript wenn ich eine massendruckanwendung
>> schreiben muss
>
> Richtig, gar nichts, für Massendruckanwendungen gibt es eh kein
> vernünftiges (WYSIWYG) Werkzeug, WinWord und FOP sind untauglich.

wie kommst du auf winword?
apache FOP benutzen wir als zentrales dokumentengenerierungsframework. 
da es keine WYSIWYG editoren gibt schreibe ich grade einen XSLT 
designer, der es den report-"entwicklern" einfacher machen soll (mit 
templates, pdf-vorschau, direkter datenbankanbindung und versionierter 
speicherung. bonbons halt).
WYSIWYG brauchen wir ehrlich gesagt auch nicht - das zusammeneditieren 
von ein wenig XML ist zumutbar, und wird auch ohne murren angenommen - 
vor allem weil die leute oracle reports kennen, und wissen wie scheisse 
DAS ist.

von Sheeva P. (sheevaplug)


Lesenswert?

MaWin schrieb:
> Um Webanwendungen komplett auf dem lokalen Rechner laufen zu lassen (man
> erinnere sich an Microsoft HTA) ohne benötigte Serveranbindung, ist ein
> gigantischer Installations- Aufstand nötig, insbesondere wenn man
> mehrere Anwendungen gleichzeitig installieren muss.

Das mag für Dich einen "gigantischen Installations- Aufstand" bedeuten, 
weil Du ein Betriebssystem benutzt, das keinen vernünftigen Paketmanager 
hat. Für mich, dessen Betriebssysteme über Paketmanager verfügen, ist 
das alles nur ein paar Mausklicks (oder in meinem Fall: einen 
Shellbefehl) und eine Paßworteingabe weit entfernt -- keine Spur von 
einem Aufstand, schon gleich gar nicht von einem "gigantischen". ;-)

> Ein einfaches Installationsprogramm im Sinne von Microsoft MSI welches
> die Anwendung komplett einrichtet so dass auf die (html/hta) Datei
> geklickt wrrden kann, fehlt seit über 10 Jahren.

Ob ich nun eine Webapplikation oder eine klassische GUI-Anwendung in so 
einen MSI-Installer einpacke, ist kein Unterschied. Abgesehen davon 
würde ich sowas heutzutage aber eher mit Docker machen.

Die UNIX-Welt will auch keine "einfachen" Installationsprogramme im 
Sinne von Microsoft MSI, denn ein modernes Paketmanagement kann 
wesentlich mehr als nur eine Anwendung installieren und löschen. Wozu 
solche "einfachen" Installationsprogramme führen, davon können viele 
Windows-Anwender ja ein recht trauriges Liedlein singen: Dateileichen, 
verwaiste Einträge in der Registry, ein zunehmend langsamer und 
instabiler werdendes System und die gute alte DLL-Hell sind nämlich die 
Spätfolgen der von Dir so hochgelobten "Einfachheit". Darauf kann ich 
prima verzichten. ;-)

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
> Die UNIX-Welt will auch keine "einfachen" Installationsprogramme im
> Sinne von Microsoft MSI, denn ein modernes Paketmanagement kann
> wesentlich mehr als nur eine Anwendung installieren und löschen.

Mjah, das ist nicht ganz die Wahrheit. Wenn das einfach machbar wäre, 
hätten das viele gern, Entwickler wie Anwender. Es geht auch -- es ist 
dann nur genauso nervig wie unter Windows, die ganzen benötigten 
Bibliotheken korrekt zusammenzupacken. Im gängigen Fall geht das unter 
Linux halt einfacher.

von Peter II (Gast)


Lesenswert?

Sheeva P. schrieb:
> Aber das hast Du bei den nativen Fatclients doch ganz genauso. Es ist
> doch einigermaßen erstaunlich, daß ich einen so erfahrenen
> .NET-Entwickler auf die geradezu endlosen Listen von Typen und
> Member-Funktionen hinweisen muß, die Microsoft allein in den
> Minor-Versionen 4.5 und 4.6 des .NET-Frameworks als obsolet erklärt hat:

eine Anwendung ist aber für .net 4.5 geschrieben, dann spielt es 
überhaupt keine rolle wenn in 4.6 ein Feature entfernt wird. Weil die 
Anwendung mit den "alten" Framework arbeitet.

Beim Browser kann man leider nicht sagen, die Webseite bitte mit Firefox 
45 ausführen.

Es ist auch egal, ob die Funktionen langsam entfernt werden (deprecated 
usw. ) denn sie werden entfernt und man kann nichts dagegen tun außer 
die Anwendung daran anpassen. Das meinte ich mit Wartung.

Ein Fatclient mit .net 4.5 läuft auch in 10 Jahren noch mit .net 4.5 
genauso. Heute kann man einen alten linksys Switch nicht mehr mit einen 
aktuellen Browser konfigurieren weil die Webseite einfach nicht 
funktioniert.

von Sheeva P. (sheevaplug)


Angehängte Dateien:

Lesenswert?

c.m. schrieb:
> ich behaupte mal: die sprache muss zur anforderung passen.

Natürlich.

> was nutzen mir html5 und javascript wenn ich eine massendruckanwendung
> schreiben muss?

Man kann mit Webanwendungen natürlich auch dynamisch PDFs erzeugen -- 
aber für simple Sachen reichen HTML und CSS dazu sogar völlig aus. Das 
im Anhang befindliche PDF wurde mit der ebenfalls angehängten 
Webapplikation erzeugt.

von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> Sheeva P. schrieb:
>> Die UNIX-Welt will auch keine "einfachen" Installationsprogramme im
>> Sinne von Microsoft MSI, denn ein modernes Paketmanagement kann
>> wesentlich mehr als nur eine Anwendung installieren und löschen.
>
> Mjah, das ist nicht ganz die Wahrheit. Wenn das einfach machbar wäre,
> hätten das viele gern, Entwickler wie Anwender. Es geht auch -- es ist
> dann nur genauso nervig wie unter Windows, die ganzen benötigten
> Bibliotheken korrekt zusammenzupacken. Im gängigen Fall geht das unter
> Linux halt einfacher.

Entschuldige, aber wer die Vorzüge eines Paketmanagers kennt, will 
dieses Installer-Zeugs nicht haben. Die mir bekannten Anwender, die so 
etwas haben wollen, suchen einfach nur einen Ersatz für Windows, bei dem 
alles besser aber dann doch irgendwie genauso funktionieren soll wie 
dort. Und die mir bekannten Entwickler, die so etwas haben wollen, 
wünschen sich das in der Regel deswegen, weil sie sich die 
Qualitätssicherung der Distributoren oder das Aufsetzen eines eigenen 
User Repository sparen wollen...

von Sheeva P. (sheevaplug)


Lesenswert?

Peter II schrieb:
> eine Anwendung ist aber für .net 4.5 geschrieben, dann spielt es
> überhaupt keine rolle wenn in 4.6 ein Feature entfernt wird. Weil die
> Anwendung mit den "alten" Framework arbeitet.

Also muß ein User im Zweifelsfall mehrere Versionen dieses (mit 4,5 GB 
für die Version 4.5 nicht eben winzigen) Frameworks installiert und die 
dann eventuell sogar im RAM geladen haben? Mal abgesehen von dem 
verschwendeten Diskspace und Arbeitsspeicher: wenn die alle regelmäßig 
aktualisiert und gepatcht werden müssen, sorgt das bei größeren 
Unternehmen auch noch für signifikante Belastungen teurer 
Netzwerkbandbreite.

Da wundert es mich dann auch nicht mehr, daß der Windows-Schleppi in der 
Firma letztes Mal gut eine Stunde gebraucht hat, um 31.000 Updates aus 
unserem WSUS zu installieren. Und da wundert es mich auch nicht mehr, 
daß unsere Kunden Webapplikationen bevorzugen, wenn sie die Wahl haben.

> Beim Browser kann man leider nicht sagen, die Webseite bitte mit Firefox
> 45 ausführen.

Natürlich kann man das, wenn es um interne Applikationen geht -- das war 
im Windows-Umfeld jahrelang Usus, auf einen bestimmten Browser in einer 
ganz bestimmten Version festgelegt zu sein, auch wenn das meistens ein 
Ergebnis schlecht programmierter und/oder gepflegter ASP-Webanwendungen 
war. Warum sollte bei anderen Webanwendungen nicht möglich sein, was im 
MS-Umfeld so viele Jahre lang absolut üblich war?

> Es ist auch egal, ob die Funktionen langsam entfernt werden (deprecated
> usw. ) denn sie werden entfernt und man kann nichts dagegen tun außer
> die Anwendung daran anpassen. Das meinte ich mit Wartung.

Überraschung: Software muß man warten. Und natürlich könnte man etwas 
tun: man könnte für den Zugriff auf die internen Webapplikationen einen 
anderen Browser benutzen, oder eine spezielle Browserversion, genau wie 
damals bei den ASP-Seiten. Und daß mein Browser heute noch HTML-Tags 
unterstützt, die schon vor zwanzig Jahren obsolete waren, sollte Dir 
einen Hinweis darauf geben, wie unsinnig Deine Horrorszenarien sind. ;-)

> Ein Fatclient mit .net 4.5 läuft auch in 10 Jahren noch mit .net 4.5
> genauso. Heute kann man einen alten linksys Switch nicht mehr mit einen
> aktuellen Browser konfigurieren weil die Webseite einfach nicht
> funktioniert.

Tja, da solltest Du wohl mal mit Linksys schimpfen. Daß Leute schlechte 
Programme schreiben und die nicht vernünftig warten, ist aber kein 
Problem,  das auf Webapplikationen beschränkt wäre. Um bei Deinem 
Lieblingshersteller und Deinem Lieblingsframework zu bleiben: alleine in 
diesem Jahr hat MS bereits mindestens fünf (5!) Updates herausgegeben, 
die andere Software kaputtgemacht hat: Quicken Premiere 2017, Microsofts 
Skype 4 Business, den Befehl Stop-Computer von Microsofts hauseigener 
Powershell, die Microsoft Windows Group Policies sowie das Microsoft 
Dynamics CRM.

Also, kurz gesagt: Du betätigst Dich hier als der große Werbeträger 
eines Herstellers, der alleine dieses Jahr schon fünfmal Updates 
herausgegeben hat, die Software beschädigt hat, davon waren viermal die 
eigenen Produkte ebendieses Herstellers betroffen. Dabei warnst Du unter 
Verweis auf genau solche Probleme vor einer Technik, bei der von derlei 
Problemen bislang überhaupt nichts bekannt geworden ist. Mal ehrlich: 
findest Du das nicht langsam selbst ein bisschen lächerlich?

von Peter II (Gast)


Lesenswert?

Sheeva P. schrieb:
> Dabei warnst Du unter
> Verweis auf genau solche Probleme vor einer Technik, bei der von derlei
> Problemen bislang überhaupt nichts bekannt geworden ist. Mal ehrlich:
> findest Du das nicht langsam selbst ein bisschen lächerlich?

ich habe doch ein Beispiel genannt, wo ein webclient noch dem Update 
nicht mehr läuft. Kann es sein das du nur das liest was du lesen willst?

Ich habe keine Werbung für irgendetwas gemacht. ich habe nur gesagt das 
ich finde das Webanwendungen mehr Wartung brauchen als 
Nativ-Anwendungen. Nicht mehr und nicht weniger. Und genau das hast du 
bestätig - Anwendungen brauchen Wartung. Ob es dabei um .net geht oder 
nicht ist sogar egal. Es ist kein unterschied zu einer C++ Anwendung. 
Dort ändert sich auch nicht so schnell eine API wie im Browser.

Dich stört wenn mehre Frameworkts auf der Platte installiert sind, aber 
empfiehlst mehre Broswer?

Nur Blöd das es für alten Browser keine Sicherheitsupdates gibt, für 
alte Frameworks eine Zeitlang schon.

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
> Entschuldige, aber wer die Vorzüge eines Paketmanagers kennt, will
> dieses Installer-Zeugs nicht haben. Die mir bekannten Anwender, die so
> etwas haben wollen, suchen einfach nur einen Ersatz für Windows, bei dem
> alles besser aber dann doch irgendwie genauso funktionieren soll wie
> dort. Und die mir bekannten Entwickler, die so etwas haben wollen,
> wünschen sich das in der Regel deswegen, weil sie sich die
> Qualitätssicherung der Distributoren oder das Aufsetzen eines eigenen
> User Repository sparen wollen...

Ne, stimmt halt nicht. Für GNU Grep ist das alles gut und richtig, aber 
wenn man eine komplexere Anwendung hat, ist jede Woche ein Benutzer im 
Bugtracker, der sich über einen Bug beschwert der in der von Ubuntu 
14.04 geshippten Version vorhanden aber eigentlich seit zwei Jahren 
behoben ist. Und es gibt im Rahmen von Paketmanagern keine sinnvolle 
Antwort auf diese Situation. Ich kann als Entwickler auch kein User 
Repository bereitstellen, das ist einfach massiv zu viel Arbeit (das 
müsste ich quasi für jede Version jeder Distro machen, das gibt bestimmt 
25 Repos um nur die gängisten Fälle abzudecken). Das ist einfach 
komplett unrealistisch. Macht ja auch niemand.

Paketmanager sind gute Tools für Software die sich langsam entwickelt 
und die man eher so als Werkzeug gelegentlich benutzt und nicht den 
ganzen Tag. Der Dateimanager, Chat-Client, Media Player, wget, bash, 
Terminalemulator, so Zeug. Da ist es mir egal, ob die Version ein Jahr 
alt ist. Für Anwendungen wie z.B. Blender, Krita, KDevelop hingegen ist 
ein Paketmanager effektiv ziemlich furchtbar.

Und no offense, aber die Qualitätssicherung der Distributoren ist meist 
eher auf einem ziemlichen Meta-Niveau ... die qualitätssichern 
vielleicht, dass da die richtige Lizenz dransteht, aber tatsächlich mal 
testen ob die Anwendung überhaupt startet die da gepackaged wurde wird 
auch gern mal ausgelassen. Soll jetzt kein Vorwurf sein, ist auch extrem 
viel Arbeit und sehr schwer, aber passiert halt auch nicht.

: Bearbeitet durch User
von hexaFy (Gast)


Lesenswert?

Webserver schön und gut. Aber was passiert wenn ich eine Schnittstelle 
zu einem Stand-Alone Gerät per Webserver einrichte ?
Ist die denn genauso sicher wie meine GUI, sei es in Qt oder .NET?

von Peter II (Gast)


Lesenswert?

hexaFy schrieb:
> Aber was passiert wenn ich eine Schnittstelle
> zu einem Stand-Alone Gerät per Webserver einrichte ?

wie ist das zu verstehen?

von Der Andere (Gast)


Lesenswert?

Der erste und 2. Hauptsazu für Zukunftsforscher:

1. kommt es anders als
2. man es denkt!

von S. R. (svenska)


Lesenswert?

hexaFy schrieb:
> Webserver schön und gut. Aber was passiert wenn ich eine Schnittstelle
> zu einem Stand-Alone Gerät per Webserver einrichte ?

Wer sprach von Webserver? Eine Anwendung kannst du auch ohne Webserver 
im Browser laufen lassen.

Ob du nun deinen Browser oder deine Qt-Anwendung mit deinem Arduino 
sprechen lässt, ist aus Sicht der Sicherheit egal. Mit beiden kannst du 
beliebige Protokolle fahren, aber mit einer Webanwendung sparst du dir 
u.U. die Installation auf dem Computer (kann der Arduino gleich mit 
ausliefern).

von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> Ne, stimmt halt nicht. Für GNU Grep ist das alles gut und richtig, aber
> wenn man eine komplexere Anwendung hat, ist jede Woche ein Benutzer im
> Bugtracker, der sich über einen Bug beschwert der in der von Ubuntu
> 14.04 geshippten Version vorhanden aber eigentlich seit zwei Jahren
> behoben ist. Und es gibt im Rahmen von Paketmanagern keine sinnvolle
> Antwort auf diese Situation.

Es fällt mir nicht leicht, jemanden ernstzunehmen, der eine drei Jahre 
alte Distribution benutzt und sich dann über veraltete Software oder gar 
den Paketmanager beschwert -- aber ich versuche mein Bestes. ;-)

Selbstverständlich gibt es diese sinnvolle Antwort. Zunächst die 
natürlich naheliegendste, mit dem Paketmanager ein Upgrade auf eine 
aktuelle Version der Distribution zu machen, und dadurch natürlich auch 
vollautomatisch an aktuellere Versionen der gewünschten Software zu 
kommen.

Darüber hinaus ist es natürlich so, daß Backports existieren und man sie 
aktivieren und installieren kann. Scheinbar ist Dir Apt-Pinning 
unbekannt, denn das ist eine weitere sinnvolle Antwort für Dein Problem 
und haargenau für solche Fälle gedacht und gemacht.

Außerdem steht Dir jederzeit die Möglichkeit offen, Deine eigenen Pakete 
zu erzeugen und über ein eigenes Repository in den Paketmanager 
einzubinden.

Und dann ist da ja noch die Möglichkeit des klassischen Dreisprungs: die 
gewünschte Softwareversion aus dem Quelltext mit "./configure && make && 
make install" zu bauen und sauber nach /usr/local/, oder aber ins eigene 
Homedirectory zu installieren, think "--prefix".

Und als wäre das immer noch nicht genug, könnte man derlei Applikationen 
natürlich auch in einem Docker- oder LXC-Container laufen lassen.

> Ich kann als Entwickler auch kein User
> Repository bereitstellen, das ist einfach massiv zu viel Arbeit (das
> müsste ich quasi für jede Version jeder Distro machen, das gibt bestimmt
> 25 Repos um nur die gängisten Fälle abzudecken). Das ist einfach
> komplett unrealistisch. Macht ja auch niemand.

Für "macht ja auch niemand" finde ich diese Liste hier [1] ziemlich lang 
-- und das ist nur ein kleiner Ausschnitt. Auf Launchpad.net findest Du 
etwas mehr als 40.000 Softwareprojekte. Für viele davon gibt es PPAs, 
die vom Projekt selbst oder von interessierten Dritten betrieben werden.

Auch für die von Dir explizit genannten Programme Blender, Krita und 
KDevelp gibt es dort die aktuellsten Versionen als fertig kompilierte 
Binärpakete in PPAs. Diese PPAs müßtest Du nur in die Paketquellen 
Deines Paketmanages einbinden und könntest die aktuellsten Versionen der 
Software dann ganz einfach über Deinen Paketmanager installieren.

Ein PPA zu erstellen und zu betreiben, ist auch nicht viel Arbeit, schon 
gar nicht im Vergleich zu der Arbeit, eine halbwegs komplexe Software zu 
entwickeln und zu pflegen. Die Übersetzung der meisten Software wird ja 
heute ohnehin über Make oä. automatisiert, und für die Entwickler ist es 
gar kein Problem, ihre Makefiles so zu erweitern, daß beim "make 
release" gleich auch fertige Pakete für die großen Distributionen 
erzeugt werden.

[1] https://www.ubuntuupdates.org/ppas

> Paketmanager sind gute Tools für Software die sich langsam entwickelt
> und die man eher so als Werkzeug gelegentlich benutzt und nicht den
> ganzen Tag. Der Dateimanager, Chat-Client, Media Player, wget, bash,
> Terminalemulator, so Zeug. Da ist es mir egal, ob die Version ein Jahr
> alt ist. Für Anwendungen wie z.B. Blender, Krita, KDevelop hingegen ist
> ein Paketmanager effektiv ziemlich furchtbar.

Tja, wenn man eine über drei Jahre alte Distribution einsetzt, ist die 
darin enthaltene veraltete Software Dein selbst gewähltes Schicksal, für 
das ganz alleine Du selbst verantwortlich bist. Wenn Du Deine Software 
nicht updatest, hilft Dir ein Installer rein gar nichts -- oder Du 
läufst in die aus dem Windows-Umfeld bekannten Probleme mit verwaisten 
Date(i)en, DLL-Hell und so weiter.

Im Grunde genommen ist Dein wahres Problem aber nicht der Paketmanager, 
sondern die darin enthaltenen Softwareversionen. Es ist aber kein großer 
Unterschied, ob man Software als Paket für einen Paketmanager oder als 
ausführbaren Installer zusammenbastelt. Infolgedessen ist Dein 
"Argument" auch an dieser Stelle unsinnig: wenn es keinen Installer für 
die von Dir gewünschte Softwareversion gibt, stehst Du wieder vor 
haargenau denselben Problemen, vor dem Du auch stehst, wenn es keine 
fertigen Binärpakete für Deinen Paketmanager gibt... Die Frage ist also 
nicht "Paketmanager oder Installerpackage", sondern "hat es jemand 
gepackt".

Schau, wenn es einen echten Bedarf für Installer unter Linux gäbe, dann 
würde es längst welche geben und sie würden auch benutzt. Daß weder das 
Eine, noch das Andere der Fall ist, dürfte sogar für Dich ein ziemlich 
deutlicher Hinweis darauf sein, wer in dieser Diskussion der 
Geisterfahrer ist und nochmal über seinen Standpunkt nachdenken könnte. 
;-)

von Bernd K. (prof7bit)


Lesenswert?

Sheeva P. schrieb:
> Schau, wenn es einen echten Bedarf für Installer unter Linux gäbe, dann
> würde es längst welche geben und sie würden auch benutzt. Daß weder das
> Eine, noch das Andere der Fall ist,

Man sieht sie hin und wieder. Letztes Beispiel das ich erlebt habe vor 
ein paar Wochen war als ich mal die Software Repetier-Host antesten 
wollte, die kommt mit einem kruden Installer-Script das erst eine 
Litanei von Paketen per apt zieht, dann noch irgendwelchen Kram von 
sonstwo runterlädt, kurz noch den Compiler anwirft und dann alles 
zusammen irgendwohin kopiert.

Gruselig. Keiner will das eigentlich aber manche Hersteller zwingens 
einem trotzdem auf. Ich hab auch noch keine Ahnung wie ich den Mist 
jetzt wieder rückstandsfrei entfernen soll.

Der saubere weg für Debian-basierte Systeme wäre ein Repository 
aufzusetzen das man mit apt-add-repository einbinden kann, viele größere 
OSS Projekte bieten das an um ihre bleeding edge developer Versionen 
oder die letzte stable Version für alle (auch ältere) 'buntu/Debians 
bereitzustellen.

Und wenn man als Softwarehersteller noch darauf achtet daß es auf einem 
aktuellen Debian Stable sauber gebaut werden kann (und nicht die 
neuesten bleeding edge libs voraussetzt) dann wird es auf praktisch 
jeder anderen Distri ebenfalls gebaut werden können und oftmals werden 
die binaries sogar ohne Neuübersetzung überall laufen. Und fast jeder 
andere Paketmanager dürfte Tools haben um .deb in sein eigenes Format 
umzupacken.

: Bearbeitet durch User
von Sheeva P. (sheevaplug)


Lesenswert?

Peter II schrieb:
> ich habe doch ein Beispiel genannt, wo ein webclient noch dem Update
> nicht mehr läuft. Kann es sein das du nur das liest was du lesen willst?

Wenn ich die Aussagen auf der Linksys-Seite richtig verstehe, scheint es 
da Probleme mit dem Caching und mit der Beschränkung auf einen ganz 
bestimmten Browser -- nämlich Microsofts Internet Explorer -- zu geben. 
Wenn die Leute von Linksys in ihrer Konfigurationssoftware aber 
proprietären Müll benutzen ist das keine auf den Web-Standards 
basierende Webapplikation mehr, sondern proprietärer Mist.

Wenn ich von Webapplikationen rede, meine ich damit natürlich Software, 
die sich an die einschlägigen Standards hält. Nach dieser Definition ist 
diese Linksys-Software natürlich keine Webapplikation, sondern ein 
proprietäres Konglomerat technischen Mittelmaßes, das zufällig mit zwei 
ganz bestimmten Versionen eines ganz bestimmten Webbrowsers bedient 
werden kann.

Im Übrigen bezieht sich Dein Beispiel auf eine neun Jahre alte Software, 
während ich Dich alleine für das aktuelle Jahr schon auf geschlagene 
vier Beispiele verwiesen habe, bei denen klassische GUI-Applikationen 
durch Updates beschädigt worden sind. Offensichtlich treten solche 
Probleme bei GUI-Anwendungen wesentlich häufiger auf als bei 
Webapplikationen. Es ist offensichtlich, daß GUI-Anwendungen höhere 
Wartungsaufwände benötigen als Webapplikationen, egal wie Du es drehst 
und wendest.

> Ich habe keine Werbung für irgendetwas gemacht. ich habe nur gesagt das
> ich finde das Webanwendungen mehr Wartung brauchen als
> Nativ-Anwendungen.

Und genau dieses "mehr" ist falsch. Ja, Webanwendungen brauchen Wartung, 
wie jede andere Software auch, und ja, ihre initiale Entwicklung ist 
heute noch geringfügig aufwändiger. Aber wenn man einmal eine 
standardkonforme Webanwendung entwickelt hat, braucht sie üblicherweise 
weniger Wartung, und zwar aus zwei Gründen: erstens, weil die 
Webstandards sich viel langsamer weiterentwickeln als GUI-Frameworks und 
Betriebssysteme, und zweitens, weil eine Webapplikation genau einmal an 
einer zentralen Stelle installiert ist und dort zentral gepflegt und 
gewartet werden kann, während GUI-Software auf vielen tausenden Rechnern 
installiert und gepflegt werden muß.

> Und genau das hast du bestätig - Anwendungen brauchen Wartung.

Ja. Aber klassische GUI-Anwendungen brauchen wesentlich mehr Wartung als 
Webanwendungen, weil die GUI-Frameworks und Betriebssysteme sich 
deutlich schneller weiter entwickeln als die Webstandards und -Browser 
und weil die Pflege von GUI-Anwendungen nicht zentral an einer Stelle 
stattfinden kann, sondern auf tausenden Rechnern gemacht werden muß.

> Ob es dabei um .net geht oder
> nicht ist sogar egal. Es ist kein unterschied zu einer C++ Anwendung.
> Dort ändert sich auch nicht so schnell eine API wie im Browser.

Dort ändert sich die API sogar schneller und öfter als im Browser, das 
ist doch gerade der Punkt. Allein in den letzten sechs Jahren kamen je 
drei neue Versionen des C++-Standards und des .NET-Frameworks heraus. 
Zwischen den letzten Major-Versionen des HTML-Standards lagen 16 Jahre!

> Dich stört wenn mehre Frameworkts auf der Platte installiert sind, aber
> empfiehlst mehre Broswer?

Solange ein Browser nur mit popeligen 100 MB und jede Version des 
.NET-Framework mit 4500 MB zu Buche schlägt: ja, eindeutig.

> Nur Blöd das es für alten Browser keine Sicherheitsupdates gibt, für
> alte Frameworks eine Zeitlang schon.

Und wenn es für das alte Framework keine Sicherheitsupdates mehr gibt, 
stehst Du vor einer noch viel schlimmeren Situation wie bei dem Browser. 
Denn für den Browser gibt es Alternativen, für das Framework nicht. Und 
während es für den Browser selbstverständlich ist, auch mit einer 
älteren standardkonformen Webapplikation zu funktionieren, kannst Du bei 
Deinem Framework nicht einfach eine aktuelle Version nehmen. Sondern Du 
bist auf Gedeih und Verderb entweder auf die alte Version angewiesen -- 
oder darauf, daß Dein Softwarehersteller seine Software dann auf die 
aktuelle Version portiert und Dir zur Verfügung stellt.

Aber wie dem auch sei: es gibt Gründe, warum unsere Kunden 
Webapplikationen bevorzugen, wenn sie eine Wahl haben. Ich verstehe 
diese Gründe. Ob Du sie verstehst, ist Deine Sache. ;-)

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
> Es fällt mir nicht leicht, jemanden ernstzunehmen, der eine drei Jahre
> alte Distribution benutzt und sich dann über veraltete Software oder gar
> den Paketmanager beschwert -- aber ich versuche mein Bestes. ;-)
Diese Leute gibt es aber zu Hauf, zum Beispiel bei Unternehmen, die eben 
alte Distro-Versionen einsetzen. Die "Betroffenen" können da oft auch 
gar nichts dafür.

> ein Upgrade auf eine
> aktuelle Version der Distribution zu machen
Das geht aber oft nicht. Zum Beispiel im Computerpool deiner Uni. Oder 
an deinem Arbeitsplatz.

> Darüber hinaus ist es natürlich so, daß Backports existieren und man sie
> aktivieren und installieren kann.
Gibt es einen Backport von z.B. KDevelop 5.1 für Ubuntu 14.04? Sehe ich 
nirgends. Ist auch sehr aufwendig zu machen. Nicht einmal die 
Patch-Version 4.7.3 gibt es anscheinend -- nur 4.7.0. Übrigens: auch das 
aktuelle Ubuntu hat nicht die aktuelle Version davon (nur als Backport).
Auf meinem über fünf Jahre alten Windows 7 hingegen kann ich für fast 
alle Software einen Installer runterladen und der tut halt und ich hab 
die Version von gestern. Das ist eine Tatsache, der man einfach mal in's 
Auge sehen muss.

> Außerdem steht Dir jederzeit die Möglichkeit offen, Deine eigenen Pakete
> zu erzeugen und über ein eigenes Repository in den Paketmanager
> einzubinden.
Die Möglichkeit ja, aber wie oben beschrieben ist der Zeitaufwand 
komplett unrealistisch. Soll ich jetzt als Maintainer PPAs für Ubuntu 
14.04, 14.10, 15.04, 15.10, 16.04, 16.10 und 17.04 packen und testen 
und dann mit Fedora 19, 20, 21, 22, 23 weitermachen und mich dann den 
fünf gängigen Versionen von SuSE und Debian zuwenden?

> die
> gewünschte Softwareversion aus dem Quelltext
Joa, theoretisch ja, in der Praxis ist das halt auf deinem 3 Jahre alten 
Ubuntu 2 Tage Arbeit weil du erstmal einen Compiler bauen musst der den 
Code überhaupt übersetzen kann und dann 17 Abhängigkeiten die zu alt 
sind. Das macht halt niemand, und aus gutem Grund.

> Und als wäre das immer noch nicht genug, könnte man derlei Applikationen
> natürlich auch in einem Docker- oder LXC-Container laufen lassen.
Ne, sorry, das VM-Argument lasse ich einfach gar nicht gelten. Dann kann 
ich auch gleich Windows in einer VM installieren oder den 
Windows-Installer mit wine ausführen. ;)

> Für "macht ja auch niemand" finde ich diese Liste hier [1] ziemlich lang
> -- und das ist nur ein kleiner Ausschnitt.
Für die Länge der Liste ist die Versorgung der Benutzerbasis alter 
Systeme mit aktueller Software aber, verglichen mit dem Windows-Zustand, 
trotzdem ziemlich schlecht. :/

> und für die Entwickler ist es
> gar kein Problem, ihre Makefiles so zu erweitern, daß beim "make
> release" gleich auch fertige Pakete für die großen Distributionen
> erzeugt werden.
Doch, wegen der wirren Distributions- und Versionsvielfalt und den 
Abhängigkeiten, siehe oben.

> Es ist aber kein großer
> Unterschied, ob man Software als Paket für einen Paketmanager oder als
> ausführbaren Installer zusammenbastelt.
Doch, ist es. Ich hab beides schon gemacht und es ist ein immenser 
Unterschied. Der Unterschied ist, dass bei dem Installer die Versionen 
der Abhängigkeiten fixiert sind, weil die mit enthalten sind. Deshalb 
habe ich da nicht wirre Probleme mit "X braucht ruby < 2.3 aber Y 
braucht ruby > 2.4". Über ein Jahr oder zwei geht das meist noch 
irgendwie hinzubiegen, aber über fünf Jahre passiert das früher oder 
später. Umgekehrt muss ich bei der Installer-Variante sehr sehr viel 
mehr darüber nachdenken, was ich auf dem Basissystem als vorhanden 
voraussetzen kann, während das beim Paket als klar angenommen werden 
kann.

> Schau, wenn es einen echten Bedarf für Installer unter Linux gäbe, dann
> würde es längst welche geben und sie würden auch benutzt.
Tatsächlich haben z.B. die drei von mir genannten Anwendungen sowas 
(AppImage) und das wird auch sehr viel benutzt. Auf jeden Fall wird es 
ungefähr zwanzigmal so oft heruntergeladen wie der Quellcode ...

Viele Grüße,
Sven

von Sven B. (scummos)


Lesenswert?

Bernd K. schrieb:
> Der saubere weg für Debian-basierte Systeme wäre ein Repository
> aufzusetzen das man mit apt-add-repository einbinden kann, viele größere
> OSS Projekte bieten das an um ihre bleeding edge developer Versionen
> oder die letzte stable Version für alle (auch ältere) 'buntu/Debians
> bereitzustellen.
>
> Und wenn man als Softwarehersteller noch darauf achtet daß es auf einem
> aktuellen Debian Stable sauber gebaut werden kann (und nicht die
> neuesten bleeding edge libs voraussetzt) dann wird es auf praktisch
> jeder anderen Distri ebenfalls gebaut werden können und oftmals werden
> die binaries sogar ohne Neuübersetzung überall laufen. Und fast jeder
> andere Paketmanager dürfte Tools haben um .deb in sein eigenes Format
> umzupacken.

Ich glaube das Problem mit dem Packaging ist hier völlig missverstanden. 
Es geht nicht darum, in welches Archivformat du dein Binary packst. Es 
geht darum, gegen welche ABI das kompiliert ist.

Unter Windows gibt es ganz wenig ABI, auf die man sich verlassen kann, 
deshalb packen die Leute einfach alle Bibliotheken mit in ihren 
Installer. Das ist nicht besonders elegant, aber es tut halt. Dazu gibt 
es nur ungefähr 3 gängige Versionen dieser ABI (wenn überhaupt) sodass 
das dann alles auch zuverlässig läuft.

Unter Linux gibt es auf der typischen Distribution einen Paketmanager, 
der ganz viele Pakete in ganz spezieller Version installiert hat. Das 
ist ganz viel ABI, auf die man sich verlassen kann. Deshalb kann man ein 
Paket bauen, das nur das betroffene Programm enthält und sonst nichts. 
Der Nachteil ist, dass das dann nur auf dieser Distro mit genau dieser 
Version der abhängigen Pakete läuft. Dazu ändert sich selbst die ABI der 
glibc ständig, sodass man seinen Krempel effektiv auf irgendwas bauen 
muss, was mindestens fünf Jahre alt ist, wenn man erreichen möchte dass 
das entstehende Binary halbwegs universell verwendbar ist.

Und das, gegeben die wirre Anzahl möglicher Versionen von möglichen 
Distros, ist ein Problem, und ein großer Nachteil gegenüber dem Zustand 
unter Windows. Um Missverständnisse zu vermeiden -- ich finde 
Paketmanager super. 95% der Software-Installations-Aufgaben werden durch 
die hervorragend abgedeckt. Es reicht nur nicht als einziger 
Mechanismus zur Software-Installation, zumindest nicht auf Distros die 
nicht Arch sind und einfach immer alles direkt aktualisieren.

: Bearbeitet durch User
von Peter II (Gast)


Lesenswert?

Sheeva P. schrieb:
> Dort ändert sich die API sogar schneller und öfter als im Browser, das
> ist doch gerade der Punkt. Allein in den letzten sechs Jahren kamen je
> drei neue Versionen des C++-Standards und des .NET-Frameworks heraus.
> Zwischen den letzten Major-Versionen des HTML-Standards lagen 16 Jahre!

du hast es immer noch nicht verstanden. Die alten APIs bei C++ und .net 
bleiben erhalten. Alten Anwendungen laufen einfach weiter, das ist der 
große unterschied. Auch wenn jede Wochen ein neue C++ Standard 
erscheint, hat das keine Auswirkung auf alte Programme.

> Zwischen den letzten Major-Versionen des HTML-Standards lagen 16 Jahre!
das ich nicht lache. Web besteht doch etwas mehr als nur Html. CSS und 
Javascript ändern sich fast monatlich.

https://en.wikipedia.org/wiki/ECMAScript

> Wenn ich die Aussagen auf der Linksys-Seite richtig verstehe, scheint es
> da Probleme mit dem Caching und mit der Beschränkung auf einen ganz
> bestimmten Browser -- nämlich Microsofts Internet Explorer -- zu geben.
> Wenn die Leute von Linksys in ihrer Konfigurationssoftware aber
> proprietären Müll benutzen ist das keine auf den Web-Standards
> basierende Webapplikation mehr, sondern proprietärer Mist.
in nachhinein kann man das immer behaupten. Wenn es aber für eine 
gewissen Funktionalität nur eine proprietären Lösung gibt hat man wohl 
kaum eine Wahl. Und niemand kann 10 oder 15 Jahre in die Zukunft sehen 
und wissen was kommen wird. Vor 10 Jahren haben viele auf Flash auch für 
Applikationen gesetzt, das ist jetzt auch tot.

> Solange ein Browser nur mit popeligen 100 MB und jede Version des
> .NET-Framework mit 4500 MB zu Buche schlägt: ja, eindeutig.

jetzt bleibe mal realistisch.

Alle Frameworks von 2.0 bis 4.0 in 64 und 32 bit brauchen nur 1.2GB. 
Könnte sogar weniger sein, wenn man ich nicht SDK sondern nur die 
Runtime installiert.

von Ansager (Gast)


Lesenswert?

Sheeva P. schrieb:
> Schau, wenn es einen echten Bedarf für Installer unter Linux gäbe, dann
> würde es längst welche geben und sie würden auch benutzt.

Es gibt Bedarf in manchen Situationen, und da werden sie auch genutzt.

Sven B. schrieb:
> Um Missverständnisse zu vermeiden -- ich finde
> Paketmanager super. 95% der Software-Installations-Aufgaben werden durch
> die hervorragend abgedeckt. Es reicht nur nicht als einziger
> Mechanismus zur Software-Installation, zumindest nicht auf Distros die
> nicht Arch sind und einfach immer alles direkt aktualisieren.

Das beschreibt die Situation recht gut.
95%, wenn nicht sogar mehr, der Softwareinstallationen kann ein 
Paketmanager bequem handlen.
Trotzdem gibt es manchmal Situationen wo ein Installer schon sinnvoll 
ist.

Das Gros der in Repositorys gehosteten SW dürften OSS-Projekte sein.
Da kann natürlich jeder Interessierte sich den Upstream nehmen, 
eventuell darin herumpatchen und ein Paket für seine Lieblingsdistro 
maintainen.

Bei proprietärer SW geht das allerdings weniger leicht.
Natürlich kann ein Binary auch per Paketmanager verteilt werden ohne 
dass die Sourcen offengelegt werden müssen.
Allerdings kann keine Firma sich den Aufwand leisten und Pakete für 
sämtliche gängigen Distros in sämtlichen Versionen maintainen.
Da macht ein Windows-Style-Installer schon Sinn.

Beispiel wären hier viele kommerzielle Spiele, die mittlerweile auch 
immer mehr für Linux erhältlich sind.
Der Publisher gog-games gibt sich z.B. große Mühe native Linux-Versionen 
bereitzustellen.
Unter anderem gibts da mittlerweile einen nativen Build von Kerbal Space 
Program oder vielen AD&D-Klassikern.
Die werden z.B. per install.sh verteilt.
Ich sehe aber keine Möglichkeit wie der Publisher das besser handlen 
könnte.

von Sven B. (scummos)


Lesenswert?

Ansager schrieb:
> Beispiel wären hier viele kommerzielle Spiele, die mittlerweile auch
> immer mehr für Linux erhältlich sind.
Stimmt, gutes Beispiel. Alles was es an Spielen für Linux auf Steam 
gibt, das sind wohl an die 1000 Anwendungen heutzutage, fällt auch in 
die Kategorie.

von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> Diese Leute gibt es aber zu Hauf, zum Beispiel bei Unternehmen, die eben
> alte Distro-Versionen einsetzen. Die "Betroffenen" können da oft auch
> gar nichts dafür.

Langsam wird es immer abenteuerlicher, denn die Betroffenen würden in so 
einem Fall auch keine Software mit einem Installer einspielen können, 
weil sie nicht die nötigen Rechte dazu haben.

> Das geht aber oft nicht. Zum Beispiel im Computerpool deiner Uni. Oder
> an deinem Arbeitsplatz.

Auch da würdest Du mit einem Installer keine Software installieren 
können, weil Dir die Berechtigungen fehlen -- unter Windows übrigens 
ganz genauso, wenn Deine Systemverwalter keine Schnarchnasen sind.

> Gibt es einen Backport von z.B. KDevelop 5.1 für Ubuntu 14.04?

Nicht, daß ich wüßte. Möglicherweise bin ich nicht der Einzige, dem es 
gelinde gesagt ein wenig merkwürdig erscheint, die aktuellsten Werkzeuge 
auf einer uralten Plattform benutzen zu wollen... ;-)

>> Außerdem steht Dir jederzeit die Möglichkeit offen, Deine eigenen Pakete
>> zu erzeugen und über ein eigenes Repository in den Paketmanager
>> einzubinden.
> Die Möglichkeit ja, aber wie oben beschrieben ist der Zeitaufwand
> komplett unrealistisch. Soll ich jetzt als Maintainer PPAs für Ubuntu
> 14.04, 14.10, 15.04, 15.10, 16.04, 16.10 und 17.04 packen _und testen_
> und dann mit Fedora 19, 20, 21, 22, 23 weitermachen und mich dann den
> fünf gängigen Versionen von SuSE und Debian zuwenden?

Wenn Du KDevelop unbedingt auf Deinem Ubuntu 14.04 benutzen willst, dann 
kannst Du Dir die entsprechenden Pakete auf einem Ubuntu 14.04 bauen und 
Deine Pakete auf dem Zielsystem in einem lokalen Repository zur 
Verfügung stellen. Warum Du plötzlich auch noch andere Ubuntu-Versionen, 
sogar ganz andere Distributionen unterstützen willst, erschließt sich 
mir nicht.

> Joa, theoretisch ja, in der Praxis ist das halt auf deinem 3 Jahre alten
> Ubuntu 2 Tage Arbeit weil du erstmal einen Compiler bauen musst der den
> Code überhaupt übersetzen kann und dann 17 Abhängigkeiten die zu alt
> sind. Das macht halt niemand, und aus gutem Grund.

Tja, das ist eben schlimmstenfalls der Preis für Deine ganz besonderen 
Anforderungen.

>> Und als wäre das immer noch nicht genug, könnte man derlei Applikationen
>> natürlich auch in einem Docker- oder LXC-Container laufen lassen.
> Ne, sorry, das VM-Argument lasse ich einfach gar nicht gelten. Dann kann
> ich auch gleich Windows in einer VM installieren oder den
> Windows-Installer mit wine ausführen. ;)

Das kannst Du natürlich auch machen, wenn Du magst. Abgesehen davon sei 
ausdrücklich darauf hingewiesen, daß Container eben keine VMs sind, 
sondern lediglich isolierte Hostprozesse.

>> Für "macht ja auch niemand" finde ich diese Liste hier [1] ziemlich lang
>> -- und das ist nur ein kleiner Ausschnitt.
> Für die Länge der Liste ist die Versorgung der Benutzerbasis alter
> Systeme mit aktueller Software aber, verglichen mit dem Windows-Zustand,
> trotzdem ziemlich schlecht. :/

Der Windows-Zustand ist aber keine Folge davon, daß es dort Installer 
gibt.  Diese Aussage ist letztlich nur eine Variante von "für Windows 
gibt es viel mehr Software" -- und die Antwort ist: ja, dann benutz' das 
doch!

Wenn es für eine bestimmte Software kein Paket für eine bestimmte 
Version einer bestimmten Distribution gibt, dann ist das exakt 
vergleichbar mit dem Zustand, daß es keinen Windows-Installer für eine 
bestimmte Windows-Version gibt. Also geht es nicht um Paketmanagement, 
sondern um Paketierung.

>> und für die Entwickler ist es
>> gar kein Problem, ihre Makefiles so zu erweitern, daß beim "make
>> release" gleich auch fertige Pakete für die großen Distributionen
>> erzeugt werden.
> Doch, wegen der wirren Distributions- und Versionsvielfalt und den
> Abhängigkeiten, siehe oben.

Erst ging es darum, daß Du eine ganz bestimmte Version einer Software 
auf einer ganz bestimmten Version einer ganz bestimmten Distribution 
benutzen wolltest. Jetzt willst Du auf einmal alle Versionen aller 
Distributionen mit der Software beschicken? Das erschließt sich mir 
nicht.

Ansonsten beweist die Vielzahl an verfügbaren PPAs, daß genau das geht 
und auch von vielen Softwareprojekten genutzt wird -- und darüber hinaus 
ergibt sich daraus auch keine Notwendigkeit für Installer, die das 
Paketmanagement umgehen und so höchstwahrscheinlich zerstören würden.

> Deshalb habe ich da nicht wirre Probleme

Das wünsche ich Dir sehr. ;-)

>> Schau, wenn es einen echten Bedarf für Installer unter Linux gäbe, dann
>> würde es längst welche geben und sie würden auch benutzt.
> Tatsächlich haben z.B. die drei von mir genannten Anwendungen sowas
> (AppImage) und das wird auch sehr viel benutzt. Auf jeden Fall wird es
> ungefähr zwanzigmal so oft heruntergeladen wie der Quellcode ...

AppImages sind etwas vollkommen anderes als Installer. Sie sind am 
Ehesten vergleichbar mit den Apple Disk Images oder Windows 
PortableApps: Abbilder einer Applikation, die OHNE Installation direkt 
gestartet werden können. Das OHNE Installation ist dabei das wichtige 
Merkmal, das so paketierte Self-Contained-Images von Software 
unterschiedet, die für Installer oder Paketmanager paketiert ist.

Aber auch da geht es im Wesentlichen nicht um die Technik, sondern um 
die Pakierung an sich: denn wenn dort kein AppImage, kein Disk Image und 
keine PortableApp für diese betreffende Software in der betreffenden 
Version zur Verfügung gestellt wird, dann stehst Du wieder am Anfang.

Zuletzt verstehe ich nach diesen Aussagen noch sehr viel weniger, wo 
jetzt Dein Problem mit dem Konzept des Paketmanagements liegt. Denn wenn 
Dir die AppImages genau die Möglichkeit eröffnen, deren Fehlen Du hier 
beklagst, dann hast Du doch faktisch genau das, was Du willst, auch wenn 
das eine grundsätzlich andere Technik benutzt und obendrein, noch viel 
wichtiger, störungsfrei und problemlos mit dem Paketmanagement 
koexistiert.

Kurz gesagt hast Du also genau das, dessen Fehlen Du beklagst... 
sicherlich liegt es nur an mir, daß mir das dann doch etwas wirr 
erscheint. ;-)

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
> Langsam wird es immer abenteuerlicher, denn die Betroffenen würden in so
> einem Fall auch keine Software mit einem Installer einspielen können,
> weil sie nicht die nötigen Rechte dazu haben.
Na doch, wenn man das lokal installieren oder einfach ausführen kann. 
Wie in meinem zweiten Post gesagt: das ist alles völlig irrelevant. Die 
Frage ist ob du gegen die ABI von "Ubuntu 15.04 mit diesen 270 Paketen 
in diesen Versionen" baust, oder gegen irgendwas wohldefiniertes was du 
im Zweifel mit einpacken kannst.

>> Gibt es einen Backport von z.B. KDevelop 5.1 für Ubuntu 14.04?
>
> Nicht, daß ich wüßte. Möglicherweise bin ich nicht der Einzige, dem es
> gelinde gesagt ein wenig merkwürdig erscheint, die aktuellsten Werkzeuge
> auf einer uralten Plattform benutzen zu wollen... ;-)
Benutzer die das wollen gibt es jedenfalls genug. Ich persönlich will es 
nicht, aber ich werde sehr oft danach gefragt und der Grund ist 
irgendwie meist nachvollziehbar.

> Wenn Du KDevelop unbedingt auf Deinem Ubuntu 14.04 benutzen willst, dann
> kannst Du Dir die entsprechenden Pakete auf einem Ubuntu 14.04 bauen und
> Deine Pakete auf dem Zielsystem in einem lokalen Repository zur
> Verfügung stellen. Warum Du plötzlich auch noch andere Ubuntu-Versionen,
> sogar ganz andere Distributionen unterstützen willst, erschließt sich
> mir nicht.
Weil ich als Distributor meiner Software das machen will. Weil es 2 
Tage Aufwand ist, und das kann ich meinen Benutzern nicht zumuten. Die 
wollen das nicht, die können das nicht, die haben nicht die Zeit dafür.

> Wenn es für eine bestimmte Software kein Paket für eine bestimmte
> Version einer bestimmten Distribution gibt, dann ist das exakt
> vergleichbar mit dem Zustand, daß es keinen Windows-Installer für eine
> bestimmte Windows-Version gibt. Also geht es nicht um Paketmanagement,
> sondern um Paketierung.
Nein, das ist schlicht falsch, und ich versteh nicht wie man so 
unpragmatisch sein kann das nicht einzusehen. Es gibt etwa 3 gängige 
Windows-Versionen, auf denen meist der gleiche Installer funktioniert. 
Es gibt ohne Übertreibung ca. 200 gängige Linux-Versionen, die _im 
gleichen Zeitraum_ entstanden sind, und für jede brauche ich ein 
anderes Paket. Weil die alle unterschiedliche ABIs haben.

> Erst ging es darum, daß Du eine ganz bestimmte Version einer Software
> auf einer ganz bestimmten Version einer ganz bestimmten Distribution
> benutzen wolltest. Jetzt willst Du auf einmal alle Versionen aller
> Distributionen mit der Software beschicken? Das erschließt sich mir
> nicht.
Sorry, wenn das unklar war: ich betrachte das Problem aus der 
Perspektive des Entwicklers, der seine Software für Menschen benutzbar 
machen will. Als Benutzer bin ich da im Moment weniger betroffen.


> AppImages sind etwas vollkommen anderes als Installer.
Ja, wirkt vielleicht so, aber es ist vom Problem was gelöst werden muss 
um sowas zu bauen 100% genau dasselbe. Wenn du ein AppImage hast, kannst 
du das einfach nach /opt entpacken und hast einen Installer, wenn du 
einen Baum Bibliotheken in /opt hast kannst du das in ein AppImage bauen 
und es tut. Das Problem ist, diesen Satz zusammengehöriger Bibliotheken 
zu haben, die am besten gegen eine 5 Jahre alte ABI der glibc gebaut 
sind. Und das ist einfach kein Problem, was unter Linux im Moment 
einfach lösbar ist. Unter Windows übrigens auch nicht, deshalb ist da 
immer alles so ein Schmerz sobald man 3 Bibliotheken in seiner 
C++-Anwendung verwenden will.

> Kurz gesagt hast Du also genau das, dessen Fehlen Du beklagst...
> sicherlich liegt es nur an mir, daß mir das dann doch etwas wirr
> erscheint. ;-)
Ja, sowas wie AppImage oder ein tar-Archiv mit allen Bibliotheken drin 
löst das Prblem schon mehr oder weniger. Es ist nur im Moment super 
schwer zu bauen und hat, sagen wir mal, Akzeptanzprobleme, weil überall 
argumentiert wird Paketmanager seien für alle Fälle der Weisheit letzter 
Schluss und ein anderes Distributionsprinzip für Software sei irgendwie 
böse und unnötig ...

von Peter II (Gast)


Lesenswert?

Sven B. schrieb:
> Es gibt ohne Übertreibung ca. 200 gängige Linux-Versionen, die _im
> gleichen Zeitraum_ entstanden sind, und für jede brauche ich ein
> anderes Paket. Weil die alle unterschiedliche ABIs haben.

so extrem ist es zum glück nicht. Auch Linux lässt sich auf eine 
Handvoll reduzieren wenn man sein Programm statisch gegen alle 
relevanten Libs linkt. Dann kommt man mit einer 32 und 64 Version für 
Intel schon recht weit.

Der Kernel ist zum Glück etwas stabiler was die ABI angeht. Wenn eine 
X-GUI vorhanden ist, dann wird es wirklich komplizierter.

von Sven B. (scummos)


Lesenswert?

Peter II schrieb:
> Sven B. schrieb:
>> Es gibt ohne Übertreibung ca. 200 gängige Linux-Versionen, die _im
>> gleichen Zeitraum_ entstanden sind, und für jede brauche ich ein
>> anderes Paket. Weil die alle unterschiedliche ABIs haben.
>
> so extrem ist es zum glück nicht. Auch Linux lässt sich auf eine
> Handvoll reduzieren wenn man sein Programm statisch gegen alle
> relevanten Libs linkt. Dann kommt man mit einer 32 und 64 Version für
> Intel schon recht weit.
Joa, wenn du das hinkriegst. Wird aber leicht sehr kompliziert wenn du 
z.B. Plugins hast, die gegen dieselbe Bibliothek linken und sowas. Die 
meisten Dinge haben zudem die static libs nicht im Paketmanagement, 
musst du dir also selber bauen.

> Der Kernel ist zum Glück etwas stabiler was die ABI angeht. Wenn eine
> X-GUI vorhanden ist, dann wird es wirklich komplizierter.
Hm, ist das so? OpenGL habe ich als kompliziert wahrgenommen, vor allem 
wegen diesem Murks dass nvidia seine eigene libgl hat. Für X11 würde ich 
einfach alle X-Bibliotheken mit-shippen: die reden dann mit dem Server 
X11R6, das ist seit vielen vielen Jahren stabil.

von Sheeva P. (sheevaplug)


Lesenswert?

Peter II schrieb:
> du hast es immer noch nicht verstanden.

Ich habe zumindest verstanden, daß Du wie leider viele handelsübliche 
Anwendungsentwickler ausschließlich die Entwicklungsaufwände siehst und 
dabei die Operatingaufwände komplett ignorierst. Für Unternehmen ist es 
aber völlig gleichgültig, ob die Kosten nun in der Entwicklung oder im 
Betrieb anfallen. Entscheidend ist nur, in welcher Höhe sie anfallen.

In unserem Kundenumfeld kommen dabei zunehmend mehr Fachleute darauf, 
daß die Gesamtkosten (TCO) für Webapplikationen häufig niedriger sind 
als bei klassischen GUI-Applikationen, ob es Dir gefällt oder nicht. Die 
stimmen dabei einfach mit den Füßen ab und entscheiden sich, sofern sie 
die Wahl haben, dann eben für die Webapplikation. Und es interessiert 
sie herzlich wenig, ob Du das für klug, sinnvoll, oder vernünftig zu 
halten geruhst.

>> Zwischen den letzten Major-Versionen des HTML-Standards lagen 16 Jahre!
> das ich nicht lache.

Das sei Dir von Herzen gegönnt!

> Web besteht doch etwas mehr als nur Html. CSS und Javascript ändern sich
> fast monatlich.
>
> https://en.wikipedia.org/wiki/ECMAScript

Wenn Du den Artikel nicht nur verlinkt, sondern auch gelesen hättest, 
dann wüßtest Du auch, daß da lediglich neue Funktionen hinzukommen, 
während die alten natürlich erhalten bleiben. Deswegen läuft Software, 
die gegen alte ECMAScript-Standards entwickelt wurde, auch mit Browsern, 
die zusätzlich zu den alten auch die neueren Standards unterstützen. 
Unter Fachleuten wird so etwas als "Abwärtskompatibilität" bezeichnet.

> Und niemand kann 10 oder 15 Jahre in die Zukunft sehen und wissen was
> kommen wird.

Richtig, aber auch darin unterscheiden sich Webapps nicht von GUI-Apps.

> Vor 10 Jahren haben viele auf Flash auch für Applikationen gesetzt, das
> ist jetzt auch tot.

Es war eben immer schon gefährlich, seine Entwicklung an proprietäre 
Technologien zu binden. Vor dreißig Jahren haben viele auf 16-Bit 
gesetzt, vor zwanzig Jahren haben viele auf DOS-basierte Windows-Systeme 
gesetzt, und heute ist beides genauso tot. Und daß es keine 
Kompatibilitätsprobleme für diejenigen gegeben hat, die seinerzeit auf 
WinXP gesetzt haben, wird hoffentlich auch niemand behaupten, der ernst 
genommen werden will. Du siehst: genauso wie Flash werden auch im 
Desktop-Bereich immer wieder alte Zöpfe abgeschnitten, was Probleme mit 
den GUI-Apps provoziert, die auf und für diese Desktops entwickelt 
worden sind. Daß Du diesen Punkt beharrlich ignorierst, läßt ihn nicht 
verschwinden.

>> Solange ein Browser nur mit popeligen 100 MB und jede Version des
>> .NET-Framework mit 4500 MB zu Buche schlägt: ja, eindeutig.
>
> jetzt bleibe mal realistisch.

Ja, bin ich. Die Versionen 4.5, 4.6 und 4.7 schlagen jeweils mit 4,5 GB 
Diskspace zu Buche, nicht nur realistisch, sondern sogar ganz real.

> Alle Frameworks von 2.0 bis 4.0 in 64 und 32 bit brauchen nur 1.2GB.

Also wenn ich nur die Versionen 2.0, 4.0, 4.5, 4.6 und 4.7 brauche, weil 
die von mir benutzten Anwendungen darauf angewiesen sind, dann belegen 
alleine diese Frameworks insgesamt 15,9 GB meiner Festplatte? Abgesehen 
davon bringe ich in 15,9 GB Festplattenplatz ganze 159 Webbrowser mit 
jeweils ungefähr 100 MB unter... Ok, Disks sind billig, aber vielleicht 
sollte trotzdem mal jemand Microsoft darauf hinweisen, daß die meisten 
Anwender ihre Festplatten nicht kaufen, damit genug Platz für Microsofts 
Frameworks vorhanden ist...

Und im Unternehmensumfeld -- da sind wir wieder beim Operating -- müssen 
jene 15,9 GB über das Unternehmensnetzwerk auf -- nehmen wir einen 
kleinen Laden -- auf 1000 Rechner verteilt werden. Damit wäre das 
Gigabit-Ethernet des Servers ganze 37 Stunden lang vollständig saturiert 
-- Server mit 10, 25, 40 oder 100 GbE sind in solchen kleinen 
Unternehmen ja (leider) noch ziemlich selten anzutreffen. Vielleicht 
sollte jemand mal Microsoft darauf hinweisen, daß die meisten 
Unternehmen ihre Netzwerkinfrastruktur nicht nur zur Verteilung von 
Microsofts Frameworks betreiben. ;-)

> Könnte sogar weniger sein, wenn man ich nicht SDK sondern nur die
> Runtime installiert.

Vielleicht möchtest Du das ja mal recherchieren und uns berichten? Als 
Gegenleistung rechne ich dann aus, wie viele Browserinstallationen ich 
darin unterbringen kann. ;-)

von Peter II (Gast)


Lesenswert?

Sheeva P. schrieb:
> Wenn Du den Artikel nicht nur verlinkt, sondern auch gelesen hättest,
> dann wüßtest Du auch, daß da lediglich neue Funktionen hinzukommen,
> während die alten natürlich erhalten bleiben. Deswegen läuft Software,
> die gegen alte ECMAScript-Standards entwickelt wurde, auch mit Browsern,
> die zusätzlich zu den alten auch die neueren Standards unterstützen.
> Unter Fachleuten wird so etwas als "Abwärtskompatibilität" bezeichnet.

nur das sich dann das verhalten ändert

https://developer.mozilla.org/en-US/docs/Web/API/Window/alert

> Starting with Chrome 46.0 this method is blocked inside an <iframe>
> unless its sandbox attribute has the value allow-modal.

von Cyblord -. (Gast)


Lesenswert?

Sheeva P. schrieb:
> Und im Unternehmensumfeld -- da sind wir wieder beim Operating -- müssen
> jene 15,9 GB über das Unternehmensnetzwerk auf -- nehmen wir einen
> kleinen Laden -- auf 1000 Rechner verteilt werden. Damit wäre das
> Gigabit-Ethernet des Servers ganze 37 Stunden lang vollständig saturiert
> -- Server mit 10, 25, 40 oder 100 GbE sind in solchen kleinen
> Unternehmen ja (leider) noch ziemlich selten anzutreffen. Vielleicht
> sollte jemand mal Microsoft darauf hinweisen, daß die meisten
> Unternehmen ihre Netzwerkinfrastruktur nicht nur zur Verteilung von
> Microsofts Frameworks betreiben. ;-)

Das ist weltfremder Unsinn.

von Ansager (Gast)


Lesenswert?

Nach dem ganzen Gezanke hab ich den Überblick verloren.
Was ist denn nun Sheeva's Aussage? Dass Paketmanager das Beste seit 
geschnitten Brot sind und alles andere große Kacke?

Ich würd da mal einen weniger radikalen Standpunkt wählen:
Paketmanager sind etwas sehr sehr Feines und ich würd nicht mehr ohne 
leben wollen.
Jedoch gibt es - wie immer - sinnvolle Ausnahmen.
Manchmal kommt ein Konzept eben an seine Grenzen, dann ist es gut und 
richtig sich anderweitig zu behelfen.

von Michael B. (laberkopp)


Lesenswert?

Ansager schrieb:
> Was ist denn nun Sheeva's Aussage? Dass Paketmanager das Beste seit
> geschnitten Brot sind und alles andere große Kacke?

Nein, daß Linux das Beste seit geschnitten Brot ist, weil man sich damit 
mit 2% Marktanteil zu den Elitären zählen darf, die keine der Probleme 
haben, die die anderen 98% plagen. Wer nicht arbeitet, macht eben keine 
Fehler.

http://www.zdnet.de/88285356/betriebssysteme-windows-10-steigert-marktanteil-auf-244-prozent/?inf_by=585c4b042ad0a19e179ec8a0

von Ansager (Gast)


Lesenswert?

Michael B. schrieb:
> Nein, daß Linux das Beste seit geschnitten Brot ist, weil man sich damit
> mit 2% Marktanteil zu den Elitären zählen darf, die keine der Probleme
> haben, die die anderen 98% plagen. Wer nicht arbeitet, macht eben keine
> Fehler.
>
> 
http://www.zdnet.de/88285356/betriebssysteme-windows-10-steigert-marktanteil-auf-244-prozent/?inf_by=585c4b042ad0a19e179ec8a0

Du scheinst tiefgreifende Probleme zu haben.

Diesen Text hast du Ende 2016 verbrochen, hab ich grad nur zufällig 
gesehen weil irgendwer diesen alten Waagen-Thread hochgekramt hat:

Michael B. schrieb:
> pegel schrieb:
>> Was ist so besonders an der Übertragung zu diesen OS?
>
> Daß absolut kein Mensch das Exotensystem hat, Marktanteil 1,3%
> 
http://www.pcwelt.de/news/Aktuelle_Marktanteile_OS__Browser_und_Suchmaschinen-Net_Applications-9014661.html
> dafür baut Niemand Waagen, die sich schon mit Windows-Ankopplung
> kaum verkaufen.

Was ist denn der Grund für deinen Kreuzzug?
Bist du sexuell nicht ausgelastet?

von Sheeva P. (sheevaplug)


Lesenswert?

Ansager schrieb:
> Sheeva P. schrieb:
>> Schau, wenn es einen echten Bedarf für Installer unter Linux gäbe, dann
>> würde es längst welche geben und sie würden auch benutzt.
>
> Es gibt Bedarf in manchen Situationen, und da werden sie auch genutzt.

Es gibt Hersteller, die das Paketmanagement nicht verstanden haben, das 
stimmt. Solange so ein Installer dabei seine Software standardkonform in 
/opt/hersteller/produkt/, /etc/opt/hersteller/produkt/ etc. installiert, 
hat auch niemand ein Problem damit -- nichtmal ich.

Zur Klarstellung: mit "Installer" meine ich hier etwas, das die zu einer 
Applikation gehörenden Programme, Bibliotheken, Ressourcen-, Konfig- und 
andere Dateien über die verwalteten Systemverzeichnisse verteilt, also 
im Wesentlichen das macht, was in einem sauber verwalteten System einzig 
und alleine dem Paketmanager vorbehalten ist. Ich rede nicht über 
Skripte und Programme, welche ihre Software in die dafür vorgesehenen 
Standardpfade installiert und die Systempfade ansonsten nicht anpackt.

> Bei proprietärer SW geht das allerdings weniger leicht.

Warum denn das?

> Natürlich kann ein Binary auch per Paketmanager verteilt werden ohne
> dass die Sourcen offengelegt werden müssen.

Genau.

> Allerdings kann keine Firma sich den Aufwand leisten und Pakete für
> sämtliche gängigen Distros in sämtlichen Versionen maintainen.

Komisch, daß das ziemlich viele Firmen genau so machen. Große 
Unternehmen wie Google (Google Earth, Google Chrome, etc.), aber auch 
winzige Firmen wie der Hersteller des Webbrowsers Vivaldi.

Darüber hinaus ist es natürlich unrichtig, daß ein Hersteller "sämtliche 
Distros in sämtlichen Versionen" unterstützen müßte. Man kann problemlos 
jeweils ein RPM- und ein DEB-Paket anbieten, die dann in allen auf dem 
jeweiligen Paketmanager basierenden Distributionen und Versionen genutzt 
werden können -- so macht das zum Beispiel Vivaldi.

> Da macht ein Windows-Style-Installer schon Sinn.

Nein, immer noch nicht. Denn dann müßte unser Maintainer ja einen 
eigenen für jede Windows-Version anbieten...

Ansonsten gibt es immer auch die Möglichkeit, Applikationen 
self-contained zu packen und sie am Paketmanager vorbei zu benutzen, wie 
das Apple Disk Images, Windows PortableApps, oder unter Linux eben 
Snappy, Zero Install oder das hier bereits erwähnte AppImage machen. Die 
koexistieren völlig problemlos mit dem Paketmanager, kein Problem. Für 
Software, die ein User ohne Privilegien installieren und nutzen kann, 
ist das durchaus sinnvoll, aber eben nicht das, was ich unter 
"Installer" verstehe.

Die klassischen Windows-Installer nämlich verteilen ihre Dateien wild 
über die Systemverzeichnisse -- und genau das ist dann ein Problem, weil 
es mit dem Paketmanager kollidieren kann. Wenn der nämlich eine Datei 
desselben Namens installiert und der Installer sie überschreibt oder 
umgekehrt, dann haben wir genau dieselbe DLL-Hell wie die armen 
Windows-Nutzer, und da bin ich ganz froh, ohne diese Geißel auszukommen.

von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> Sheeva P. schrieb:
>> Wenn es für eine bestimmte Software kein Paket für eine bestimmte
>> Version einer bestimmten Distribution gibt, dann ist das exakt
>> vergleichbar mit dem Zustand, daß es keinen Windows-Installer für eine
>> bestimmte Windows-Version gibt. Also geht es nicht um Paketmanagement,
>> sondern um Paketierung.
> Nein, das ist schlicht falsch, und ich versteh nicht wie man so
> unpragmatisch sein kann das nicht einzusehen. Es gibt etwa 3 gängige
> Windows-Versionen, auf denen meist der gleiche Installer funktioniert.
> Es gibt ohne Übertreibung ca. 200 gängige Linux-Versionen, die _im
> gleichen Zeitraum_ entstanden sind, und für jede brauche ich ein
> anderes Paket. Weil die alle unterschiedliche ABIs haben.

Als gängige Linux-Versionen würde ich einerseits die RPM- und 
andererseits die DEB-basierten Varianten betrachten, alles andere ist 
"ferner liefen". Ein self-contained Paket, das für Debian gebaut ist, 
läuft problemlos mit allen Debian-Derivaten wie Ubuntu und Mint, ein 
entsprechendes RPM läuft ebenso problemlos auf RedHat, CentOS, Fedora 
und SuSE Linux. Demzufolge gibt es auf vivaldi.com genau zwei Packages 
für Linux -- ein RPM und ein DEB -- sowie je ein Paket für WinXP, eines 
für Win7-10, und ein DMG für MacOS. Das sieht für mich nicht nach 
übermäßigem Aufwand aus -- schon gar nicht, wenn man das einmal im 
Build-Prozeß automatisiert hat.

Das Linux Kernel ABI ist darüber hinaus ziemlich stabil. Es hindert Dich 
nichts daran, darauf aufbauend die Binaries für Deine übrigen ABI mit in 
ein Paket, AppImage, 0install oä. zu packen. Natürlich ist das 
aufwändig, aber alle anderen Lösungen sind noch aufwändiger.

>> AppImages sind etwas vollkommen anderes als Installer.
> Ja, wirkt vielleicht so, aber es ist vom Problem was gelöst werden muss
> um sowas zu bauen 100% genau dasselbe. Wenn du ein AppImage hast, kannst
> du das einfach nach /opt entpacken und hast einen Installer, wenn du
> einen Baum Bibliotheken in /opt hast kannst du das in ein AppImage bauen
> und es tut.

Sorry, aber das meine ich nicht -- und mit sowas habe ich auch keinerlei 
Probleme, wenn es ordentlich gemacht ist, also nicht mit dem 
Paketmanager des Betriebssystems kollidiert.

> Das Problem ist, diesen Satz zusammengehöriger Bibliotheken
> zu haben, die am besten gegen eine 5 Jahre alte ABI der glibc gebaut
> sind. Und das ist einfach kein Problem, was unter Linux im Moment
> einfach lösbar ist.

Naja, pack' die passende glibc halt mit in das Paket.

> Unter Windows übrigens auch nicht, deshalb ist da
> immer alles so ein Schmerz sobald man 3 Bibliotheken in seiner
> C++-Anwendung verwenden will.

Der Punkt ist: es gibt keine komfortable Lösung für das Problem und kann 
auch keine geben, solange Software und ihre ABIs immer weiter entwickelt 
werden. Die Lösungen, die es dafür gäbe, sind allesamt mehr oder weniger 
unerfreulich. Auch die Installer lösen das grundsätzliche Problem nicht, 
sondern verursachen dann nur wieder neue Probleme an anderer Stelle.

> Ja, sowas wie AppImage oder ein tar-Archiv mit allen Bibliotheken drin
> löst das Prblem schon mehr oder weniger. Es ist nur im Moment super
> schwer zu bauen und hat, sagen wir mal, Akzeptanzprobleme, weil überall
> argumentiert wird Paketmanager seien für alle Fälle der Weisheit letzter
> Schluss und ein anderes Distributionsprinzip für Software sei irgendwie
> böse und unnötig ...

Böse und unnötig sind nur Werkzeuge, die das Paketmanagement stören. Auf 
meinen Systemen gibt es etliche Software, die einfach nur als Zip-Archiv 
oder als Tarball ausgeliefert werden, von Apache Spark über Apache Storm 
bis hin zu Elasticsearch. Die kommen dann in ihr passendes Verzeichnis 
in opt, und fertig ist die Laube.

Andere Software nutze ich in Docker-Containern, ebenfalls kein Problem 
für mich: denn die Docker-Images und -Container interferieren und 
interagieren ebenfalls an keiner Stelle mit dem Paketmanagement. Auch 
damit habe ich nicht das geringste Problem.

Ein Problem habe ich nur mit Installern, die wild Dateien in mein System 
und die vom Paketmanager verwalteten Systemverzeichnisse installieren. 
Es kann nämlich nicht die Idee sein, ein Paketierungskonzept zu 
beschädigen, das seit Jahrzehnten in mindestens 95% aller Fälle prima 
funktioniert.

von Sheeva P. (sheevaplug)


Lesenswert?

Abradolf L. schrieb:
> Sheeva P. schrieb:
>> Und im Unternehmensumfeld -- da sind wir wieder beim Operating -- müssen
>> jene 15,9 GB über das Unternehmensnetzwerk auf -- nehmen wir einen
>> kleinen Laden -- auf 1000 Rechner verteilt werden. Damit wäre das
>> Gigabit-Ethernet des Servers ganze 37 Stunden lang vollständig saturiert
>> -- Server mit 10, 25, 40 oder 100 GbE sind in solchen kleinen
>> Unternehmen ja (leider) noch ziemlich selten anzutreffen. Vielleicht
>> sollte jemand mal Microsoft darauf hinweisen, daß die meisten
>> Unternehmen ihre Netzwerkinfrastruktur nicht nur zur Verteilung von
>> Microsofts Frameworks betreiben. ;-)
>
> Das ist weltfremder Unsinn.

Ja, natürlich. Es ist genauso weltfremder Unsinn wie die Behauptung, daß 
Webapplikationen ständig durch Änderungen in den Webstandard kaputt 
gingen und deswegen mehr Wartung erfordern würden als GUI-Applikationen. 
;-)

von Michael B. (laberkopp)


Lesenswert?

Ansager schrieb:
> Was ist denn der Grund für deinen Kreuzzug?

Fakten sind Kreuzzug ?

> Bist du sexuell nicht ausgelastet?

Computerkrams macht dich geil ?

Armer Willi.

von Sheeva P. (sheevaplug)


Lesenswert?

Michael B. schrieb:
> Ansager schrieb:
>> Was ist denn nun Sheeva's Aussage? Dass Paketmanager das Beste seit
>> geschnitten Brot sind und alles andere große Kacke?

Nein. Meine Aussage ist, daß es ganz große Kacke ist, Dinge am 
Paketmanager vorbei in Systemverzeichnisse zu installieren, wenn das 
System über einen Paketmanager verfügt.

> Nein, daß Linux das Beste seit geschnitten Brot ist, weil man sich damit
> mit 2% Marktanteil zu den Elitären zählen darf, die keine der Probleme
> haben, die die anderen 98% plagen.

Ach, Laberkopp... von 1,5% im Juli 2015 auf 2,5% im August 2017, das ist 
doch wirklich nicht schlecht für ein Betriebssystem, das im Gegensatz zu 
den Wettbewerbern kein Multimilliardendollar-Marketing hat.

Abgesehen davon habe ich letztens irgendwo gelesen, daß auf Webservern 
in über 80% der Fälle ein Linux läuft, sogar in Microsofts Azure-Cloud 
sollen zwei Drittel der Systeme unter Linux laufen. Auch das ist nicht 
so schlecht für ein OpenSource-System ohne Marketingbudget.

Naja, und Daten von NetShare zu benutzen, die ihre Daten nur auf 
Webseiten sammeln, die dafür bezahlen... Bei der Wikipedia lag der 
Anteil von Linux jedenfalls schon im Juli 2015 bei über 3%. Ist immer 
noch nicht überragend, aber vor dem erwähnten Hintergrund finde ich das 
ziemlich gut.

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
> Als gängige Linux-Versionen würde ich einerseits die RPM- und
> andererseits die DEB-basierten Varianten betrachten, alles andere ist
> "ferner liefen". Ein self-contained Paket
An der Stelle ist m.E. das Konzept eines Pakets schon ad absurdum 
geführt. Das kannst du genauso gut in ein .tar.gz packen und einfach 
nach /opt extrahieren. Pakete machen nur Sinn, wenn sie Abhängigkeiten 
und Versionierung haben. Alle Abhängigkeiten in ein .deb packen, was 
dann den ganzen Kram nach /opt installiert -- warum? Das bringt 
niemandem irgendwas.

> Sorry, aber das meine ich nicht -- und mit sowas habe ich auch keinerlei
> Probleme, wenn es ordentlich gemacht ist, also nicht mit dem
> Paketmanager des Betriebssystems kollidiert.
Ok -- darauf können wir uns glaube ich leicht einigen, Kram verteilen 
über den System-Verzeichnisbaum per Shellskript ist Murks. Das muss dann 
schon in /opt sein. Realistisch gesehen funktioniert die andere Variante 
tendentiell sowieso nicht.

> Naja, pack' die passende glibc halt mit in das Paket.
Das kannst du nicht machen, das geht nicht. Auf dem System läuft 
irgendein Kernel und es muss die dazu passende, auf dem System 
vorhandene glibc verwendet werden. Alles andere ist kompletter Murks.

> Der Punkt ist: es gibt keine komfortable Lösung für das Problem und kann
> auch keine geben, solange Software und ihre ABIs immer weiter entwickelt
> werden. Die Lösungen, die es dafür gäbe, sind allesamt mehr oder weniger
> unerfreulich. Auch die Installer lösen das grundsätzliche Problem nicht,
> sondern verursachen dann nur wieder neue Probleme an anderer Stelle.
Mjah, ein bisschen ordentliches Tooling um so Installer zu bauen wäre 
schon ganz nett. Und da ist das Linux-Ökosystem dem Windows um Jahre 
hinterher, obwohl es schon unter Windows total furchtbar ist.

: Bearbeitet durch User
von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> An der Stelle ist m.E. das Konzept eines Pakets schon ad absurdum
> geführt. Das kannst du genauso gut in ein .tar.gz packen und einfach
> nach /opt extrahieren. Pakete machen nur Sinn, wenn sie Abhängigkeiten
> und Versionierung haben. Alle Abhängigkeiten in ein .deb packen, was
> dann den ganzen Kram nach /opt installiert -- warum? Das bringt
> niemandem irgendwas.

Nö, die Auflösung von Abhängigkeiten ist ja nur eine der vielen 
Aufgaben, um die sich so ein Paketmanager kümmert. Denn ein Paketmanager 
merkt sich nämlich, welche Dateien zu welchem Paket gehören und 
verhindert Konflikte, führt Pre- und Post-Installations- und 
Deinstallationsskripte aus, kümmert sich um den Download und die 
Installation von Updates... und schon alleine deswegen wäre ein sauberes 
Paket auch in diesem Fall besser als ein blödes Shellskript. Denn sonst 
beschweren sich die Nutzer wieder darüber, daß sie ihre Software manuell 
pflegen müssen, von der DLL- in die SO-Hell gekommen sind, und daß das 
alles ja kein Deut besser sei als unter Windows... ;-)

> Mjah, ein bisschen ordentliches Tooling um so Installer zu bauen wäre
> schon ganz nett. Und da ist das Linux-Ökosystem dem Windows um Jahre
> hinterher, obwohl es schon unter Windows total furchtbar ist.

Da ist Linux Windows kein bisschen hinterher, sondern weit voraus. Indem 
es einen Mechanismus wie das Paketmanagement gibt, sind die hier 
genannten 95% aller Fälle -- und ich würde vermuten, daß es deutlich 
mehr sind -- bereits vollumfänglich und ausgesprochen komfortabel 
gelöst. Für alles andere gibt es ebenfalls bereits fertige Mechanismen 
wie die erwähnten ZeroInstall (das ist sogar schon in den 
Ubuntu-Repositories verfügbar), AppImage, Flatpack, Autopackage und 
Snappy.

Was willst Du denn noch, warum machst Du es nicht einfach und 
entwickelst etwas? Immerhin lebt OpenSource bekanntlich vom Mitmachen. 
Wenn Dir etwas fehlt, dann schreib was und biete es der Community an, 
oder beteilige Dich an einem Projekt wie ZeroInstall oder AppImage. 
Anhand der Nutzung können wir ja dann sehen, wie groß der Bedarf dafür 
ist. Ich vermute aber, daß er bei Weitem nicht so groß ist, wie einige 
hier zu glauben scheinen -- denn 0install, Autopackage, AppImage und 
Flatpack gibt es jetzt auch schon seit deutlich über zehn Jahren, und 
die Verbreitung ist sehr überschaubar. Aber wenn Du unbedingt sowas 
haben willst, dann tu' Dir bitte bloß keinen Zwang an und überzeug' mich 
durch Taten. ;-)

von Ansager (Gast)


Lesenswert?

Sheeva P. schrieb:
> Was willst Du denn noch, warum machst Du es nicht einfach und
> entwickelst etwas? Immerhin lebt OpenSource bekanntlich vom Mitmachen.
> Wenn Dir etwas fehlt, dann schreib was und biete es der Community an

Endlich!!
Meine Lieblings-Killerphrase in Linux-Diskussionen.
Wurde auch Zeit!

(Versteh mich nicht falsch, ich bin OSS-Fan und auch mal Contributor, 
aber das "Argument" ist einfach scheiße)

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
> Nö, die Auflösung von Abhängigkeiten ist ja nur eine der vielen
> Aufgaben, um die sich so ein Paketmanager kümmert. Denn ein Paketmanager
> merkt sich nämlich, welche Dateien zu welchem Paket gehören und
> verhindert Konflikte, führt Pre- und Post-Installations- und
> Deinstallationsskripte aus, kümmert sich um den Download und die
> Installation von Updates... und schon alleine deswegen wäre ein sauberes
> Paket auch in diesem Fall besser als ein blödes Shellskript. Denn sonst
> beschweren sich die Nutzer wieder darüber, daß sie ihre Software manuell
> pflegen müssen, von der DLL- in die SO-Hell gekommen sind, und daß das
> alles ja kein Deut besser sei als unter Windows... ;-)
Ja, das ist aber alles trivial wenn das Programm samt aller 
Abhängigkeiten in /opt/foobar installiert ist. Dann löscht man halt den 
Ordner oder ersetzt ihn. Das rechtfertigt keinen Paketmanager mit 500k 
SLOC oder ein ultra-kompliziertes Paketformat wie rpm-

>> Mjah, ein bisschen ordentliches Tooling um so Installer zu bauen wäre
>> schon ganz nett. Und da ist das Linux-Ökosystem dem Windows um Jahre
>> hinterher, obwohl es schon unter Windows total furchtbar ist.
>
> Da ist Linux Windows kein bisschen hinterher, sondern weit voraus. Indem
> es einen Mechanismus wie das Paketmanagement gibt, sind die hier
> genannten 95% aller Fälle -- und ich würde vermuten, daß es deutlich
> mehr sind -- bereits vollumfänglich und ausgesprochen komfortabel
> gelöst.
Darauf hatten wir uns doch schon geeinigt. Aber es ging doch in dem 
Diskussionspunkt jetzt explizit um die restlichen 5%.

> Für alles andere gibt es ebenfalls bereits fertige Mechanismen
> wie die erwähnten ZeroInstall (das ist sogar schon in den
> Ubuntu-Repositories verfügbar), AppImage, Flatpack, Autopackage und
> Snappy.
ZeroInstall, AppImage und Autopackage lösen das Problem nicht. Das sind 
Paketformate, die sind ganz nett, aber wie gesagt: nicht das Problem. 
Das Problem ist die Binaries zusammenzusammeln die in das Paket 
reinsollen, nicht wie das Format des Pakets dann ist, das ist völlig 
wurscht. Tar-Archiv wäre mir gut genug.
Snappy gibt's nur auf Ubuntu, das kannste im Moment vergessen.
Flatpak ist ganz nett, hat aber m.E. ein paar fragliche Entscheidungen 
getroffen bezüglich OpenGL und so ... mal gespannt ob das tatsächlich 
funktioniert mittelfristig. Es hat sicher seine Anwendungen, aber 
"aktuelle Anwendung auf Ubuntu 14.04 ausführen" gehört eher nicht dazu.

> Anhand der Nutzung können wir ja dann sehen, wie groß der Bedarf dafür
> ist.
Ich hab mühevoll ein AppImage für KDevelop assembliert und ich sehe ja 
wie groß der Bedarf ist: er ist groß. Und es wäre schön wenn das weniger 
mühsam wäre.

Diese "schreib doch selber was"-Haltung finde ich ein bisschen 
unangebracht  ... ich weiß dass das Problem existiert, ich hab schon 
viel Zeit investiert um es zu lösen. Du erzählst mir hingegen das 
Problem hat keiner und ich soll mal was tun um zu beweisen dass das 
anders ist ... meh.

von Sheeva P. (sheevaplug)


Lesenswert?

Ansager schrieb:
> Sheeva P. schrieb:
>> Was willst Du denn noch, warum machst Du es nicht einfach und
>> entwickelst etwas? Immerhin lebt OpenSource bekanntlich vom Mitmachen.
>> Wenn Dir etwas fehlt, dann schreib was und biete es der Community an
>
> Endlich!!
> Meine Lieblings-Killerphrase in Linux-Diskussionen.
> Wurde auch Zeit!
>
> (Versteh mich nicht falsch, ich bin OSS-Fan und auch mal Contributor,
> aber das "Argument" ist einfach scheiße)

Warum? "Rough consensus and running code" (RFC2031) ist das Mantra der 
IETF und der OSS-Bewegung. Ein Großteil der heutigen OSS wurde 
entwickelt, weil Entwickler einen Bedarf gesehen haben, und wenn ich ihn 
richtig verstanden habe, ist Sven ja ein Entwickler. Da gehe ich davon 
aus, daß er so ähnlich tickt wie ich und eine Lösung entwickelt, wo er 
ein Problem sieht.

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
> Da gehe ich davon
> aus, daß er so ähnlich tickt wie ich und eine Lösung entwickelt, wo er
> ein Problem sieht.

Nicht unwesentlicher Teil des Problems ist aber auch, einen "rough 
consensus" zu erreichen, dass es überhaupt ein Problem gibt. Darüber 
diskutieren du und ich ja die ganze Zeit. ;)

von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> Ja, das ist aber alles trivial wenn das Programm samt aller
> Abhängigkeiten in /opt/foobar installiert ist. Dann löscht man halt den
> Ordner oder ersetzt ihn.

Das mag bei einer Applikation funktionieren, aber bei 20 oder 50? Zudem 
muß unser Anwender erst einmal wissen, daß es eine neue Version gibt, 
sie dann manuell herunterladen, in /opt/foobar-<version> entpacken und 
den Symlink /opt/foobar auf das Installationsverzeichnis umbiegen -- und 
Pre- und Post-Install-Skripte, die eine Default-Konfiguration abfragen 
oder die Konfig der Vorgängerversion in eine für die nun aktuelle 
Software konvertieren, die Gruppen und / oder Benutzer anlegen und so 
weiter, die hat der Anwender dann auch noch nicht aufgerufen. Also muß 
er die README lesen und verstehen damit er überhaupt weiß, daß er Pre- 
und Postinstall-Skripte aufrufen muß.

Ansonsten kannst Du diese Schritte natürlich automatisieren und daraus 
ein Installationsskript machen, die es im UNIX-Umfeld seit Jahrzehnten 
gibt. Id Software hat Quake3 und Return to castle Wolfenstein für Linux 
so gemacht, der NVidia-Installer und VirtualBox machen es IMO immer noch 
so. Damit hast Du alles, was Du brauchst: ein ausführbares Skript, das 
die Installation vor- und nachbereitet, Deine Binaries und Ressourcen in 
einem Tarball, ein sauberes Installationsverzeichnis in /opt. Nur die 
Aufgabe, Deine Dateien zusammen zu suchen, die nimmt Dir keine mir 
bekannte Software ab.

> Das rechtfertigt keinen Paketmanager mit 500k
> SLOC oder ein ultra-kompliziertes Paketformat wie rpm-

Welcher Paketmanager hat denn 500 kLOC? Allerdings: ja, RPM-Pakete und 
ihre Packaging-Werkzeuge sind wirklich PITA.

> ZeroInstall, AppImage und Autopackage lösen das Problem nicht. Das sind
> Paketformate, die sind ganz nett, aber wie gesagt: nicht das Problem.
> Das Problem ist die Binaries zusammenzusammeln die in das Paket
> reinsollen,

Aber genau dasselbe Problem hättest Du mit einem Installer doch auch?!

> Tar-Archiv wäre mir gut genug.

Was hindert Dich denn daran, Deine Software in /opt zu installieren und 
in einen Tarball zu packen? Die Slackware-Leute machen das seit 
Ewigkeiten für ihre regulären Pakete: das sind einfache Tarballs, die in 
/ entpackt werden und ein Extraverzeichnis für die Skripte enthalten -- 
und mit Ausnahme der Tatsache, daß Debian-Pakete ar-Archive sind, sind 
auch diese dem ganzen nicht vollkommen unähnlich.

Das löst natürlich auch nicht Dein Problem, die Binaries auszuwählen und 
zusammenzusammeln, die dann in den Tarball sollen. Aber dieses Problem 
hast Du in jedem Fall, egal ob mit Paketen für einen Paketmanager, mit 
Tarballs, 0install-, AppImage-, Flatpack- oder Installerpaketierung.

> Ich hab mühevoll ein AppImage für KDevelop assembliert und ich sehe ja
> wie groß der Bedarf ist: er ist groß. Und es wäre schön wenn das weniger
> mühsam wäre.

Was genau ist denn der mühsame Teil daran?

> Diese "schreib doch selber was"-Haltung finde ich ein bisschen
> unangebracht  ... ich weiß dass das Problem existiert, ich hab schon
> viel Zeit investiert um es zu lösen. Du erzählst mir hingegen das
> Problem hat keiner und ich soll mal was tun um zu beweisen dass das
> anders ist ... meh.

Aber es liegt doch an uns Leuten, die OSS entwickeln, daß das so mühsam 
ist -- und einfach nur zu sagen "es ist mühsam" ist mir dabei auch ein 
bisschen zu dürftig. Zumal ein Windows-artiger Installer das Problem 
doch auch nicht löst, sondern stattdessen Probleme an anderen Stellen 
verursacht.

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
>> Ich hab mühevoll ein AppImage für KDevelop assembliert und ich sehe ja
>> wie groß der Bedarf ist: er ist groß. Und es wäre schön wenn das weniger
>> mühsam wäre.
>
> Was genau ist denn der mühsame Teil daran?

Dass du dir ein fünf Jahre altes CentOS nehmen musst, und da irgendwie 
deinen kompletten aktuellen Software-Stack zum Bauen kriegen. Das ist 
unter Umständen nicht so einfach. Wenn du ein neueres Basissystem 
nimmst, hast du mindestens dieses glibc-ABI-Problem. Dieses ganze 
Problem ist unter Windows irgendwie weniger dramatisch, weil das einfach 
eher das ist was die Leute typischerweise machen. Unter Linux hingegen 
hat man ständig irgendwie so Probleme wie mit der ABI-Kompatibilität der 
libgl auf dem System, oder irgendwelcher freetype-Kram oder so ... die 
ABIs dafür sind auf Windows irgendwie stabiler.

Und dafür sowie für das Zusammensammeln der entstehenden Binaries gibt 
es quasi keinerlei Tooling. Das fehlt.

Wie gesagt, ob das ein Installer ist oder ein tar-Archiv ist mir egal. 
Es geht mir nur darum, dass dieser Fall (der Entwickler will oder muss 
seine Anwendung selbst verteilen) nicht wirklich sinnvoll durch 
Paketmanager abgedeckt wird. Und nee, ein rpm und ein deb reicht halt 
nicht, unter Arch tut das zum Beispiel nicht und ist wieder ein riesiges 
Gefrickel. Zwölf Paketformate mit je 300 MB Binaries drin sind keine 
Lösung für diese Aufgabenstellung.

: Bearbeitet durch User
von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> Sheeva P. schrieb:
>> Da gehe ich davon aus, daß er so ähnlich tickt wie ich und eine Lösung
>> entwickelt, wo er ein Problem sieht.
>
> Nicht unwesentlicher Teil des Problems ist aber auch, einen "rough
> consensus" zu erreichen, dass es überhaupt ein Problem gibt. Darüber
> diskutieren du und ich ja die ganze Zeit. ;)

Dann diskutieren wir an einander vorbei: ich diskutiere nur darüber, ob 
man unter Linux so etwas wie die von Windows bekannten Installer haben 
will -- und lehne diese Idee klar ab.

Aber ich sehe, daß es für manche Anwender das Problem gibt, Software 
nutzen zu wollen, die ihr Distributor nicht oder nicht in der 
gewünschten Version in seinen Repositories anbietet. Im Gegensatz zu Dir 
sehe ich aber nicht, wie dieses Problem durch Windows-ähnliche Installer 
gelöst werden sollte, ohne erhebliche Probleme an anderer Stelle zu 
bekommen. Außerdem sehe ich eine Vielzahl von etablierten und besseren 
Möglichkeiten, das Problem zu lösen.

von S. R. (svenska)


Lesenswert?

Sheeva P. schrieb:
> Was genau ist denn der mühsame Teil daran?

Frag mal NVidia, was für Ärger die mit ihrem Grafiktreiber haben, um 
ein Binary auf allen Distributionen verwenden zu können. Die hantieren 
da mit antiken glibc-Versionen rum, und bringen zum Glück ihr eigenes 
OpenGL mit.

Entweder, du linkst deine Binaries gegen uralte Bibliotheken (und hoffst 
darauf, dass die neuen ABI-kompatibel sind, was oft nicht gilt), oder du 
hältst drei Dutzend Binaries vor (die müssen auch erst gebaut werden), 
oder du lieferst nur Source aus und baust auf dem Zielsystem zusammen.

Und letzteres scheitert oft genug, insbesondere, wenn deine Software 
nicht auf dem Dreisatz basiert (sondern z.B. FreePascal und libav 
verheiratet) oder nicht mit der neusten Toolchain getestet ist. Im 
Gegensatz zu Windows kannst du nämlich nicht "mal eben einen gcc 3.3 
installieren".

Irgendwann greift dann auch der letzte fähige Entwickler einfach zu den 
Windows-Binaries und wine. Gewisse Software möchte man nämlich einfach 
nur benutzen, ohne sie neuentwickeln zu müssen.

von Sven B. (scummos)


Lesenswert?

Sheeva P. schrieb:
> Sven B. schrieb:
>> Nicht unwesentlicher Teil des Problems ist aber auch, einen "rough
>> consensus" zu erreichen, dass es überhaupt ein Problem gibt. Darüber
>> diskutieren du und ich ja die ganze Zeit. ;)
>
> Dann diskutieren wir an einander vorbei: ich diskutiere nur darüber, ob
> man unter Linux so etwas wie die von Windows bekannten Installer haben
> will -- und lehne diese Idee klar ab.

Ja, aber hm ... wir sind uns doch einig, dass Installer im Sinne von 
"ich kopiere irgendwelche Binaries und Libs nach /usr/bin und /usr/lib" 
schlecht sind. Das hab ich doch auch schon mindestens zwei Mal gesagt.


> Aber ich sehe, daß es für manche Anwender das Problem gibt, Software
> nutzen zu wollen, die ihr Distributor nicht oder nicht in der
> gewünschten Version in seinen Repositories anbietet. Im Gegensatz zu Dir
> sehe ich aber nicht, wie dieses Problem durch Windows-ähnliche Installer
> gelöst werden sollte, ohne erhebliche Probleme an anderer Stelle zu
> bekommen.

Ist ja ok. Mein Punkt ist nur: Technisch gesehen ist das reale Problem, 
was gelöst werden muss um irgendeine Lösung anzubieten die diesen 
Anwendern hilft, ganz genau das was man unter Windows löst wenn man 
einen Installer baut. Der Rest der Aufgabe ist nur noch, irgednein 
Skript oder Programm zu haben was irgendeinen Verzeichnisbaum irgendwo 
hin entpackt. AppImage, 0install, Shellskript was in /opt installiert 
(wie z.B. bei Mathematica) oder ein tar-Archiv machen da alle ziemlich 
dasselbe mit ziemlich demselben Effekt und es ist relativ wurscht was 
davon sich etalbiert.

Wichtig ist, dass es ein distributionsunabhängiges Format ist (kein 
Debian-Paket) und das richtige drin ist (alle ABI die das Programm 
braucht, von der man sich nicht sicher ist dass sie auf dem Zielsystem 
vorhanden ist).

von Sven B. (scummos)


Lesenswert?

S. R. schrieb:
> Sheeva P. schrieb:
>> Was genau ist denn der mühsame Teil daran?
>
> Frag mal NVidia, was für Ärger die mit ihrem Grafiktreiber haben, um
> ein Binary auf allen Distributionen verwenden zu können. Die hantieren
> da mit antiken glibc-Versionen rum, und bringen zum Glück ihr eigenes
> OpenGL mit.

... was dann aber z.B. flatpak das Genick bricht, weil die abhängig von 
der Grafikkarte des Anwenders verschiedene libgl-Varianten in ihren 
Containern ausliefern müssen, was kompletter Murks ist.


> Irgendwann greift dann auch der letzte fähige Entwickler einfach zu den
> Windows-Binaries und wine. Gewisse Software möchte man nämlich einfach
> nur benutzen, ohne sie neuentwickeln zu müssen.

aber jo, so sieht's nämlich aus. Und der erste Schritt zur Verbesserung 
dieser Situation ist sich mal einig zu sein, dass es ein Problem gibt ;)

von S. R. (svenska)


Lesenswert?

Sven B. schrieb:
> ... was dann aber z.B. flatpak das Genick bricht, weil die abhängig von
> der Grafikkarte des Anwenders verschiedene libgl-Varianten in ihren
> Containern ausliefern müssen, was kompletter Murks ist.

Das ist der Geschichte geschuldet. Die OpenGL-Bibliotheken sind ein Teil 
des Grafiktreibers, das ist unter Windows aber auch nicht anders. 
Allerdings baut man dort auch nicht solche Container. ;-)

Interessant an den Installern finde ich ja die Frage, wie man 
Bibliotheken installieren soll, ohne irgendwelche Systemdateien 
anzufassen. Also, wie Sheeva schrieb, alles nach /opt/firma/programm 
packen und in /usr nichts anfassen. Für Programme ist das kein Problem, 
aber wie kriege ich damit eine systemweite Bibliothek installiert? Und 
wie stelle ich sicher, dass der Paketmanager keine Version in /usr/lib/ 
installiert, die dann stattdessen benutzt wird?

von Sven B. (scummos)


Lesenswert?

S. R. schrieb:
> Interessant an den Installern finde ich ja die Frage, wie man
> Bibliotheken installieren soll, ohne irgendwelche Systemdateien
> anzufassen. Also, wie Sheeva schrieb, alles nach /opt/firma/programm
> packen und in /usr nichts anfassen. Für Programme ist das kein Problem,
> aber wie kriege ich damit eine systemweite Bibliothek installiert?
Du installierst nach /opt/packagename/usr/lib/ oder so. Wenn jemand die 
Bibliothek verwenden will (z.B. dagegen linken) muss er das eben seinem 
Build-System beibringen, dass es da suchen soll.

> Und
> wie stelle ich sicher, dass der Paketmanager keine Version in /usr/lib/
> installiert, die dann stattdessen benutzt wird?
Mit RPATH, würde ich sagen in dem Fall.

von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> Dass du dir ein fünf Jahre altes CentOS nehmen musst, und da irgendwie
> deinen kompletten aktuellen Software-Stack zum Bauen kriegen. Das ist
> unter Umständen nicht so einfach. Wenn du ein neueres Basissystem
> nimmst, hast du mindestens dieses glibc-ABI-Problem. Dieses ganze
> Problem ist unter Windows irgendwie weniger dramatisch, weil das einfach
> eher das ist was die Leute typischerweise machen. Unter Linux hingegen
> hat man ständig irgendwie so Probleme wie mit der ABI-Kompatibilität der
> libgl auf dem System, oder irgendwelcher freetype-Kram oder so ... die
> ABIs dafür sind auf Windows irgendwie stabiler.

Das stimmt. Der Preis für die Weiterentwicklung von Software ist, daß 
die Software sich weiterentwickelt. Große Überraschung allenthalben! ;-)

Ok, kommen wir nach dieser fundamentalen Erkenntnis zur Sache...

Nun, weil sich OpenSource-Software sehr viel schneller weiterentwickelt 
als kommerzielle Software und darüber hinaus keiner zentralen 
Steuerungsinstanz unterliegt, sondern im Wesentlichen aus einer Vielzahl 
von lose verbundenen Einzelprojekten besteht, ergibt sich, daß man 
irgendeinen Tod sterben muß.

Entweder man orientiert sich am kleinsten gemeinsamen Nenner und 
verzichtet die vielen netten Komfortfunktionen aktueller Bibliotheken -- 
und nein, das macht auch keinen Spaß -- oder man nimmt erhöhte Aufwände 
für das Packaging und die Distribution der Software in Kauf. Oder, wie 
gesagt, man überläßt diese Aufgabe jenen speziellen Anwendern, welche 
die aktuellste Software unbedingt auf uralten Systemen benutzen 
wollen...

> Und dafür sowie für das Zusammensammeln der entstehenden Binaries gibt
> es quasi keinerlei Tooling. Das fehlt.

Ok, dann verhalten wir uns doch einfach mal wie Entwickler und gehen die 
Sache systematisch an. Welche Binaries möchtest Du genau 
zusammensammeln? Was genau ist die Schwierigkeit dabei, und wie genau 
machst Du das bisher? Wie machen das die Maintainer der Distributoren? 
Und von welcher Software reden wir hier überhaupt?

von S. R. (svenska)


Lesenswert?

Sheeva P. schrieb:
> Entweder man orientiert sich am kleinsten gemeinsamen Nenner und
> verzichtet die vielen netten Komfortfunktionen aktueller Bibliotheken --
> und nein, das macht auch keinen Spaß -- oder man nimmt erhöhte Aufwände
> für das Packaging und die Distribution der Software in Kauf.

Das Problem besteht in beide Richtungen.

Neue Software auf alter Distribution:

Genau dann notwendig, wenn man auf einen Bugreport nur eine "im 
aktuellen git ist das gefixt, also nimm die aktuelle Software und geh 
weg"-Antwort bekommt und das Repo nicht baut. Denn dann ist per 
Definition jede Distro alt, auch wenn es nur zwei Monate sind.

Nicht jeder benutzt Arch oder hat die Möglichkeit (oder Erlaubnis), mal 
eben schnell ein Release-Upgrade wegen irgendeinem kleinen Bug zu 
machen. Und weil es eben keine Kompatiblität gibt, steht man gerne im 
Regen.

Alte Software auf neuer Distribution:

Das ist besonders nervig. Nicht jeder Entwickler hat sein Leben lang 
Zeit, sich um seine Software zu kümmern, oder das Leben war einfach zu 
kurz. Je spezieller das Programm, desto weniger Portierung findet statt, 
und desto größer ist die Wahrscheinlichkeit, dass der Entwickler einfach 
andere Dinge tut.

Linux-Programme (egal welcher Qualität) gehen nach relativ kurzer Zeit 
kaputt, im Gegensatz zu (einigermaßen sauberer) Windows-Software. Selbst 
Windows 10 (32-Bit) kann noch Win31-Software von 1993 ausführen.

> Oder, wie gesagt, man überläßt diese Aufgabe jenen speziellen Anwendern,
> welche die aktuellste Software unbedingt auf uralten Systemen benutzen
> wollen...

Also man lässt den Endanwender bluten. Das ist Scheiße.

von Sven B. (scummos)


Lesenswert?

S. R. schrieb:
> Sheeva P. schrieb:
>> Oder, wie gesagt, man überläßt diese Aufgabe jenen speziellen Anwendern,
>> welche die aktuellste Software unbedingt auf uralten Systemen benutzen
>> wollen...
>
> Also man lässt den Endanwender bluten. Das ist Scheiße.

So ist es.

>> Und dafür sowie für das Zusammensammeln der entstehenden Binaries gibt
>> es quasi keinerlei Tooling. Das fehlt.
>
> Ok, dann verhalten wir uns doch einfach mal wie Entwickler und gehen die
> Sache systematisch an. Welche Binaries möchtest Du genau
> zusammensammeln? Was genau ist die Schwierigkeit dabei, und wie genau
> machst Du das bisher? Wie machen das die Maintainer der Distributoren?
> Und von welcher Software reden wir hier überhaupt?

Meh, irgendwie mäßig produktiv das jetzt hier durchzueiern, oder? Die 
Distributionen haben das Problem nicht, das haben wir schon zehnmal 
diskutiert. Auch die Schwierigkeiten hab ich doch schon öfter genannt.
Bei uns macht das im Moment ein riesiges Shellskript, was halt die 
ganzen Build-Befehle ausführt, und dann von Hand Abhängigkeiten in's 
Image-Verzeichnis reinkopier und unnötige Inhalte rauslöscht. Tut so 
halbwegs auf den meisten Systemen dann.
Ich rede meist von KDevelop.

von Sheeva P. (sheevaplug)


Lesenswert?

S. R. schrieb:
> Das Problem besteht in beide Richtungen.

Natürlich.

> Linux-Programme (egal welcher Qualität) gehen nach relativ kurzer Zeit
> kaputt,

Jetzt hör' aber mal auf mit dem Quatsch. Ich hab' gerade extra nochmal 
eine alte Kubuntu 9.10-VM gestartet und ein kleines Programm damit 
übersetzt; es läuft aus dem Stand und ohne Änderung auch unter Kubuntu 
16.04 LTS.

Schwierig wird es erst, wenn der Entwickler Libraries benutzt, die 
schnell weiterentwickelt werden. Aber das ist eben, wie gesagt, der 
Preis für die schnelle Weiterentwicklung. Würdest Du lieber darauf 
verzichten?

> Selbst Windows 10 (32-Bit) kann noch Win31-Software von 1993 ausführen.

Microsoft sagt, daß 16-Bit Programme nicht unter den 64-Bit Versionen 
von Windows laufen. Verschiedene Seiten empfehlen dazu die Nutzung einer 
VM -- ein Weg übrigens, der Linux-Usern in ähnlichen Fällen ebenso 
offensteht.

Abgesehen davon erinnere ich mich an das große Wehklagen, daß etliche 
der beliebten WinXP-Programme unter Win7 plötzlich nicht mehr liefen. 
Oder an die Verwünschungen, als viele MacOS/9-Programme nicht mehr unter 
MacOS/X laufen wollten. Und daran, als verschiedene uralte Programme 
unter neuen Windows-Versionen plötzlich nicht mehr drucken wollten. Es 
ist also nicht so, als wären solche Problem bei kommerzieller Software 
völlig unbekannt.

> Also man lässt den Endanwender bluten. Das ist Scheiße.

Ja, das Leben ist ungerecht. Es ist nun einmal, wie es ist: Du kannst 
nicht einen alten Borgward fahren und gleichzeitig Airbag, Servolenkung, 
ABS und einen Spurhalteassistenten haben wollen -- es sei denn, Du baust 
das Zeug selbst ein oder bezahlst jemanden dafür, das zu tun.

von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
> Sheeva P. schrieb:
>> Ok, dann verhalten wir uns doch einfach mal wie Entwickler und gehen die
>> Sache systematisch an. Welche Binaries möchtest Du genau
>> zusammensammeln? Was genau ist die Schwierigkeit dabei, und wie genau
>> machst Du das bisher? Wie machen das die Maintainer der Distributoren?
>> Und von welcher Software reden wir hier überhaupt?
>
> Meh, irgendwie mäßig produktiv das jetzt hier durchzueiern, oder?

Wenn ich nicht an einer konstruktiven Lösung interessiert wäre, dann 
hätte ich sicherlich nicht gefragt. ;-)

> Bei uns macht das im Moment ein riesiges Shellskript, was halt die
> ganzen Build-Befehle ausführt, und dann von Hand Abhängigkeiten in's
> Image-Verzeichnis reinkopier und unnötige Inhalte rauslöscht.

Also habt Ihr das Ganze einmal automatisiert, und jetzt muß nur noch das 
Shellskript nach gepflegt werden. Ist schon länger her, daß ich mit 
einem Installer gearbeitet habe, und leider kann ich unsere 
Windows-Entwickler übers Wochenende nicht fragen -- aber ich habe vor 
vielen, vielen Jahren mal einen MSI-Installer erstellt und mußte damals 
auch auswählen, welche Dateien ins Installerpaket aufgenommen und wohin 
sie installiert werden sollten. Mir ist bisher auch nichts bekannt, das 
das automatisch könnte.

> Ich rede meist von KDevelop.

Fein, das hatte ich vermutet. Ja, angesichts der enormen Vielzahl darin 
verwendeter Libraries kann ich mir gut vorstellen, daß das Packen davon 
ziemlich schmerzhaft ist.

Kann man Euer Shellskript vielleicht irgendwo einsehen?

von S. R. (svenska)


Lesenswert?

Sheeva P. schrieb:
>> Linux-Programme (egal welcher Qualität) gehen nach relativ kurzer Zeit
>> kaputt,
>
> Jetzt hör' aber mal auf mit dem Quatsch. Ich hab' gerade extra nochmal
> eine alte Kubuntu 9.10-VM gestartet und ein kleines Programm damit
> übersetzt; es läuft aus dem Stand und ohne Änderung auch unter Kubuntu
> 16.04 LTS.

Was für ein Programm hast du denn übersetzt? Irgendwas textbasiertes, 
was ausschließlich die libc (also das POSIX-Interface) benutzt? Dann ist 
logisch, dass es läuft.

Nimm mal irgendwas grafisches, was mehr als nur Xlib benutzt. Oder 
etwas, was geringfügig von den autotools abweicht. Am besten etwas mit 
Abhängigkeiten, KDevelop wurde ja schon genannt. Vielleicht nen 
aktueller Firefox oder Evince?

Oder versuche mal, sowas wie UltraStar Deluxe (aber nicht die Beta) auf 
einer halbwegs modernen Distribution zum Laufen zu kriegen. Protipp: Du 
darfst auch auf einer antiken Distro bauen.

Sheeva P. schrieb:
> Schwierig wird es erst, wenn der Entwickler Libraries benutzt, die
> schnell weiterentwickelt werden.

Wie ungefähr alles, was nicht von POSIX abgedeckt wird. Also so ziemlich 
alles, was über die Grundideen eines 80er Jahre-UNIXes hinausgeht. Ist 
jetzt auch nicht überraschend.

Sheeva P. schrieb:
>> Selbst Windows 10 (32-Bit) kann noch Win31-Software von 1993 ausführen.
>
> Microsoft sagt, daß 16-Bit Programme nicht unter den 64-Bit Versionen
> von Windows laufen.

Deswegen schrieb ich "(32-Bit)" dazu, und Microsoft hat dafür eine 
verdammt gute technische Begründung für die Einschränkung. Für die 64 
Bit-Versionen liegt die Grenze bei Windows 95.

Sheeva P. schrieb:
> Es ist nun einmal, wie es ist: Du kannst nicht einen alten Borgward
> fahren und gleichzeitig Airbag, Servolenkung, ABS und einen
> Spurhalteassistenten haben wollen

Darum geht es doch garnicht. Alte Autos haben keine Airbags, das ist mir 
auch klar.

Aber: Der alte Borgward funktioniert wunderbar auf neuen Straßen. Und 
moderne Autos fahren wunderbar auf Straßen, die so neu sind wie der 
Borgward. Und genau das funktioniert unter Windows in der Regel deutlich 
besser als unter Linux.

von Sven B. (scummos)


Lesenswert?

> Jetzt hör' aber mal auf mit dem Quatsch. Ich hab' gerade extra nochmal
> eine alte Kubuntu 9.10-VM gestartet und ein kleines Programm damit
> übersetzt; es läuft aus dem Stand und ohne Änderung auch unter Kubuntu
> 16.04 LTS.
a) probier das mal andersrum
b) ein zeitloses Hello World interessiert halt keinen.

Sheeva P. schrieb:
> aber ich habe vor
> vielen, vielen Jahren mal einen MSI-Installer erstellt und mußte damals
> auch auswählen, welche Dateien ins Installerpaket aufgenommen und wohin
> sie installiert werden sollten. Mir ist bisher auch nichts bekannt, das
> das automatisch könnte.
Automatisch geht das auch eigentlich nicht. Aber irgendwie ist das unter 
Linux doch alles fummeliger und labiler, selbst wenn man's von Hand 
auswählt. Irgendwas komisches passiert immer -- dann hat der 
Gentoo-Fritze sich ein binärinkompatibles fontconfig gebaut und alles 
crasht, oder keine Ahnung was.

> Kann man Euer Shellskript vielleicht irgendwo einsehen?
https://cgit.kde.org/kdevelop.git/tree/appimage

von Sheeva P. (sheevaplug)


Lesenswert?

S. R. schrieb:
> Was für ein Programm hast du denn übersetzt? Irgendwas textbasiertes,
> was ausschließlich die libc (also das POSIX-Interface) benutzt? Dann ist
> logisch, dass es läuft.

Vorher wurde hier noch behauptet, daß sich das ABI der C-Library so oft 
ändern würde, daß man sich nicht darauf verlassen könne, und Du hast dem 
nicht widersprochen...

> Vielleicht nen aktueller Firefox oder Evince?

Die aktuellste Version von Mozilla Firefox arbeitet wunderbar auf dem 
schon etwas älteren Kubuntu 16.04 LTS -- ich schreibe gerade diese 
Antwort damit. Evince ist in den aktuellen Versionen in den Repositories 
der Distributoren verfügbar. Wo ist denn Dein Problem?

> Oder versuche mal, sowas wie UltraStar Deluxe (aber nicht die Beta) auf
> einer halbwegs modernen Distribution zum Laufen zu kriegen. Protipp: Du
> darfst auch auf einer antiken Distro bauen.

Ich habe gerade wirklich keinen Bock, mir einen Free Pascal Compiler zu 
installieren, aber dem Projekt zufolge soll das gehen: [1].

[1] 
https://github.com/UltraStar-Deluxe/USDX#compiling-on-linuxbsd-using-make

> Deswegen schrieb ich "(32-Bit)" dazu, und Microsoft hat dafür eine
> verdammt gute technische Begründung für die Einschränkung.

Ist das so? Dann haben die Linux-Leute eine mindestens genau so gute 
technische Begründung dafür, daß nicht jede noch so alte oder neue 
Version einer beliebigen Software nicht auf jeder noch so alten oder 
neuen Version jeder beliebigen Distribution läuft: nämlich, daß sich 
OpenSource-Software nun einmal sehr schnell weiterentwickelt.

> Aber: Der alte Borgward funktioniert wunderbar auf neuen Straßen. Und
> moderne Autos fahren wunderbar auf Straßen, die so neu sind wie der
> Borgward.

Das wiederum eher nicht. Auf Straßenqualitäten, für die der Borgward 
einst gebaut wurde, würden sich moderne PKW in kürzester Zeit erst den 
Unterboden und dann die Aufhängung ruinieren.

von Sheeva P. (sheevaplug)


Lesenswert?

Sven B. schrieb:
>> Jetzt hör' aber mal auf mit dem Quatsch. Ich hab' gerade extra nochmal
>> eine alte Kubuntu 9.10-VM gestartet und ein kleines Programm damit
>> übersetzt; es läuft aus dem Stand und ohne Änderung auch unter Kubuntu
>> 16.04 LTS.
> a) probier das mal andersrum

Hab' ich gemacht, geht.

> b) ein zeitloses Hello World interessiert halt keinen.

...reicht mir aber als Beleg dafür, daß es um die Binärkompatibilität 
von Linux nicht gar so düster bestellt ist, wie hier schwarzgemalt wird. 
;-)

> Automatisch geht das auch eigentlich nicht. Aber irgendwie ist das unter
> Linux doch alles fummeliger und labiler, selbst wenn man's von Hand
> auswählt. Irgendwas komisches passiert immer -- dann hat der
> Gentoo-Fritze sich ein binärinkompatibles fontconfig gebaut und alles
> crasht, oder keine Ahnung was.

Wenn man Myriaden von Libraries benutzt, ist dieser Schritt bei 
Erstellung eines Windows-Installers genauso fummelig und labil.

>> Kann man Euer Shellskript vielleicht irgendwo einsehen?
> https://cgit.kde.org/kdevelop.git/tree/appimage

Das kann ich jetzt nicht sonderlich schrecklich finden. Tatsächlich 
macht dieses Skript ja auch eine Menge: es klont und übersetzt etwa 
fünfzig KDE-Projekte, zieht die benötigten Libraries aus den erzeugten 
Binaries und kopiert sie in die passenden Zielverzeichnisse, löscht dann 
die vom System mitgelieferten Libraries sowie zum Übersetzen benötigte 
Software wieder und packt das Ergebnis dann als AppImage ein.

Naja, vermutlich würde ich es etwas anders machen, aber für eine so 
große Funktionalität zum Übersetzen und Deployen einer so komplexen 
Software... also da hab' ich in kommerziellen Systemen schon viel 
Übleres gesehen. Und für einen Windows-Installer müßtest Du die meisten 
der Schritte jedenfalls ganz ähnlich gehen -- und sogar viel 
umfangreicher, deswegen, weil Windows die meisten verwendeten Libraries 
gar nicht mitliefert, so daß Du da also auch die entsprechenden 
Libraries runterladen, übersetzen und installieren müßtest. Das hat 
nichts mit der genutzten Paketierungs- oder Deployment-Technik zu tun, 
sondern ist lediglich an der Komplexität der Software und ihren vielen 
genutzten Libraries geschuldet.

von S. R. (svenska)


Lesenswert?

Sheeva P. schrieb:
> Vorher wurde hier noch behauptet, daß sich das ABI der C-Library so oft
> ändern würde, daß man sich nicht darauf verlassen könne, und Du hast dem
> nicht widersprochen...

POSIX ist standardisiert, da ist jede Bibliothek API-stabil (wenn sie 
die Funktionalität unterstützt). Das ist ne Nullaussage. Und die glibc 
gehört mit zu den ABI-stabilsten Bibliotheken überhaupt (was aber an 
massiver Kompatiblitätslogik liegt). Ebenfalls ne Nullaussage.

>> Vielleicht nen aktueller Firefox oder Evince?
> Die aktuellste Version von Mozilla Firefox arbeitet wunderbar auf dem
> schon etwas älteren Kubuntu 16.04 LTS -- ich schreibe gerade diese
> Antwort damit.

Ubuntu 16.04 ist ziemlich aktuell, das taugt ebenfalls nicht als 
Beispiel. Wie sieht's mit Ubuntu 9.04 aus, was du vorhin als Beispiel 
rangezogen hast?

> Evince ist in den aktuellen Versionen in den Repositories
> der Distributoren verfügbar. Wo ist denn Dein Problem?

Gilt das auch für dein Ubuntu 9.04?
Gilt das auch für die aktuelle git-Version?
Welche Patches braucht Ubuntu, um das Repository-Paket zu bauen?

Mir ging es hier hauptsächlich um Programme, die in den Repositories 
entweder nicht drin sind oder nur in einer zu alten Version (der Fall 
"der Bug ist im git gefixt").

>> Oder versuche mal, sowas wie UltraStar Deluxe (aber nicht die Beta) auf
>> einer halbwegs modernen Distribution zum Laufen zu kriegen. Protipp: Du
>> darfst auch auf einer antiken Distro bauen.
>
> Ich habe gerade wirklich keinen Bock, mir einen Free Pascal Compiler zu
> installieren, aber dem Projekt zufolge soll das gehen: [1].

Natürlich "soll das gehen", sonst hätte ich dir das ja nicht als 
Beispiel gebracht.

Es scheitert aber daran, dass libavcodec weder API- noch ABI-kompatibel 
ist, ältere Versionen mit neuen Compilern nicht bauen, ältere Versionen 
in den Repositories nicht vorhanden sind, und das Programm nicht gegen 
neuere Versionen baut.

Das ist eine andere Hausnummer als ein POSIX-kompatibles Hello-World 
ohne Abhängigkeiten.

>> Deswegen schrieb ich "(32-Bit)" dazu, und Microsoft hat dafür eine
>> verdammt gute technische Begründung für die Einschränkung.
> Ist das so?

Ja. Im 64 Bit-Modus funktioniert der vm86 nicht mehr, und das ist eine 
/Hardware/-Beschränkung. Solltest du eigentlich wissen...

> Dann haben die Linux-Leute eine mindestens genau so gute
> technische Begründung dafür,

Das, lieber Sheeva, hat damit überhaupt nichts zu tun.

Es gibt genau zwei mir bekannte Programme, welche unter Linux den vm86 
aktiv nutzen: X.Org (für int 10h) und DOSemu. Beide haben Updates 
erhalten, um auf x86_64 funktionsfähig zu bleiben.

>> Aber: Der alte Borgward funktioniert wunderbar auf neuen Straßen. Und
>> moderne Autos fahren wunderbar auf Straßen, die so neu sind wie der
>> Borgward.
>
> Das wiederum eher nicht. Auf Straßenqualitäten, für die der Borgward
> einst gebaut wurde, würden sich moderne PKW in kürzester Zeit erst den
> Unterboden und dann die Aufhängung ruinieren.

Du implizierst, dass ein neues Auto auf einer alten Straße auch wie ein 
neues Auto fahren muss. Das habe ich nicht behauptet. Du kannst nicht 
mehr nutzen, als die Infrastruktur hergibt, aber der kleinste gemeinsame 
Nenner zwischen Infrastruktur und Anwendung sollte funktionieren.

Und das funktioniert bei Linux nunmal deutlich schlechter als bei 
Windows (und selbst bei MacOS). Ob du das nun akzeptieren magst oder 
nicht.

: Bearbeitet durch User
von Sheeva P. (sheevaplug)


Lesenswert?

S. R. schrieb:
> Du implizierst, dass ein neues Auto auf einer alten Straße auch wie ein
> neues Auto fahren muss.

Ich stelle fest, daß neue Autos auf alten Straßen schnell kaputt gehen.

> Das habe ich nicht behauptet. Du kannst nicht
> mehr nutzen, als die Infrastruktur hergibt, aber der kleinste gemeinsame
> Nenner zwischen Infrastruktur und Anwendung sollte funktionieren.

Tut er, der Kleinste Gemeinsame Nenner ist POSIX. Alles was darüber 
hinaus geht unterliegt einem mehr oder weniger schnellen Wandel, nicht 
nur in der Linux-Welt. Das ist der Preis für die Weiterentwicklung und 
natürlich auch eine Folge des modernen Paketmanagement -- das zwar für 
viele Zwecke sehr komfortable und für die jeweiligen Versionen der 
einzelnen Distributionen gut auf einander abgestimmte Bibliotheken 
mitbringt, aber die unterliegen dann eben alle dem besagten Wandel durch 
die Weiterentwicklung.

Für viele Funktionen der in einem modernen Linux vorhandenen 
Bibliotheken bringen die kommerziellen Anbieter wenig bis nichts mit, so 
daß Du in dem Umfeld letztlich wieder vor demselben Problem stehst: 
entweder Du benutzt eine komfortable Bibliothek und handelst Dir damit 
den Aufwand ein, sie in Deinen Softwarepaketen für bestimmte, am 
Paketmanager vorbeigehende Fälle mitdeployen zu müssen, oder Du machst 
alles selbst und bist dann auch nicht von den veränderlichen 
Schnittstellen fremder Bibliotheken abhängig. Your code, your choice.

> Und das funktioniert bei Linux nunmal deutlich schlechter als bei
> Windows (und selbst bei MacOS). Ob du das nun akzeptieren magst oder
> nicht.

Nun, wenn das für Dich so unerträglich ist, hast Du verschiedene 
Optionen: Du kannst die Library-Entwickler anhalten, ihre Schnittstellen 
stabiler zu halten oder bei Änderungen jeweils Kompatibilitätslayer 
einzuziehen, oder Du kannst bei Windows oder MacOS/X bleiben, oder Du 
kannst Dich schmollend in eine hübsche Ecke zurückziehen und der Welt 
(nicht mir, wohlgemerkt, da ich weder für diese Situation verantwortlich 
bin, noch etwas daran ändern könnte oder wollte) Dein Leid klagen. Tut 
mir leid, aber sonst fallen mir keine anderen Möglichkeiten ein. Und Dir 
ja anscheinend auch nicht, sonst hättest Du Dich vermutlich etwas 
konstruktiver eingebracht als immer nur die Klage zu wiederholen, daß 
das Gras auf der anderen Seite des Flusses angeblich so viel grüner, 
saftiger und überhaupt sei. ;-)

Wenn ich mir allerdings die Build Instructions und -Tools für KDevelop 
unter Windows anschaue, gewinne ich nicht gerade den Eindruck, daß dort 
alles Friede, Freude, Eierkuchen sei. Immerhin haben die KDE-Entwickler 
dafür sogar ein eigenes Build-System namens Craft entwickelt, das mit 
ca. 18 kLOC Python-Code um mehr als den Faktor 50 größer ist als Svens 
Skript für AppImage und für dessen Nutzung erst einmal eine 
beeindruckende Reihe von Softwarepaketen manuell heruntergeladen und 
installiert werden muß: Python, Microsofts DirectX SDK, die Powershell 
und, (Überraschung!) ein Compiler wie MingW. Und das nur zum Übersetzen, 
von der Paketierung in einen Windows-Installer war dabei noch gar keine 
Rede... ;-)

von S. R. (svenska)


Lesenswert?

Zusammenfassend bist du also mit der derzeitigen Situation nicht nur 
zufrieden, sondern auch glücklich und siehst keinerlei Probleme oder 
Verbesserungspotential.

Naja, da kann man dann wohl nichts machen.

von Sheeva P. (sheevaplug)


Lesenswert?

S. R. schrieb:
> Zusammenfassend bist du also mit der derzeitigen Situation nicht nur
> zufrieden, sondern auch glücklich und siehst keinerlei Probleme oder
> Verbesserungspotential.

Natürlich sehe ich gewisse Probleme und ein Verbesserungspotential, 
fürchte jedoch, daß die Möglichkeiten für Verbesserungen eng begrenzt 
sind.

Im Wesentlichen laufen diese Möglichkeiten, wie angedeutet, darauf 
hinaus, die Bibliotheksentwickler dazu anzuhalten, ihre APIs zu 
stabilisieren, was sie wiederum früher oder später in die Situation 
bringen würde, keine neue Funktionalität mehr einbauen, oder 
möglicherweise sogar Designfehler nicht mehr zeitnah korrigieren zu 
können.

Auch die Sache mit den Kompatibilitätslayern sehe ich durchaus kritisch, 
denn das würde wertvolle Entwicklerressourcen binden, die ich sehr viel 
lieber in der Weiterentwicklung der Software genutzt sehe.

Ansonsten gäbe es natürlich noch die Möglichkeit, eine zentralen Instanz 
zur Steuerung einzurichten, was allerdings viele mir persönlich bekannte 
OSS-Entwickler eher abschrecken, und obendrein bei jeder Änderung wieder 
haargenau dieselben Probleme provozieren würde.


Andererseits betreffen die gennanten Probleme lediglich zwei Gruppen von 
Leuten: erstens Anwender, die entweder alte, schlecht gepflegte Software 
auf neuen Systemen oder die neue Software auf alten, schlecht gepflegten 
System einsetzen wollen. Und zweitens Entwickler, die die Wünsche dieser 
Anwender erfüllen wollen und dadurch hohe Packaging-Aufwände haben.

Für diese beiden Gruppen gibt es Lösungen, die hier schon genannt 
wurden:

1.) Parallel zum Paketmanager benutzbare Techniken wie AppImage et al.
2.) Virtuelle Maschinen.
3.) Container wie LXC oder Docker.
4.) Software selbst zu übersetzen.

Es gibt also Lösungen. Ja, sie bedeuten einen Aufwand, wahlweise für die 
Entwickler, oder für die Anwender, oder sogar für beide. Das ändert aber 
nichts an ihrer Existenz, sondern nur an ihrem Komfort.


Außerdem bieten die Paketmanager für 95% der Anwender und 
Anwendungsfälle -- ich würde sogar vermuten, für erheblich mehr, aber 
sei's drum -- eine komfortable, einfach zu bedienende und 
leistungsfähige Lösung. In vielen Gesprächen wird das Paketmanagement 
als einer der wichtigsten, oft sogar als der wichtigste Punkte genannt, 
der Linux so komfortabel und angenehm macht. Deswegen darf dessen 
Funktion nicht gestört oder behindert werden.

Wenn Du also einen besseren Lösungsvorschlag als die oben Genannten 
hast, der dem Paketmanagement nicht in die Quere kommt, können wir gern 
darüber reden. Ich fürchte nur, durch das Beklagen und Aufbauschen 
relativ selten auftretender Probleme kaum zu einer Lösung für solche 
Fälle führt. Sofern Du konstruktive, praktikable Vorschläge hast: gerne, 
immer her damit. Ich bin gerne der Erste, der Deinen konstruktiven 
Vorschlag unterstützt. ;-)

> Naja, da kann man dann wohl nichts machen.

Nein, vermutlich nicht. Ich bin einfach ein sturer Bock. ;-)

von mec (Gast)


Lesenswert?

Hört auf zu streiten, wo es nichts zu streiten gibt.
Unter Linux hat man die Wahl, welches vorgehen man wählt, und man wählt 
halt ein vorgehen. Unter Windows gibt es eigentlich nur ein Vorgehen, 
das ist halt so.
Das eine System hat da Vorteile, das andere dort, man nimmt halt das, 
was man braucht, oder besser findet, oder man muss es selbst machen.

Ich kann mit Linux Sachen machen, welche mit Windows nicht möglich sind, 
und umgedreht gilt das selbe, und mit einem anderen OS sind wieder ganz 
andere Sachen möglich, welche mit Linux und Windows nicht gehen.

Und nun wieder zurück zum Thema bitte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.