Wikiup:Redaktion Informatik/Qualitätssicherung/Archiv/2019/3
Boa (Webserver)
Der Artikel zu Boa erscheint mir tendenziell irrelevant, die Software wurde bereits 2005 eingestellt. Die ehemalige Webseite sagt allerdings dass Boa damals (2005) einer der verbreitetsten Webserver für Embedded Systeme war. --Neuhaus (Diskussion) 11:11, 22. Jul. 2019 (CEST)
- Ich habe die toten Links aus archive.org ergänzt und Doppelverlinkung entfernt. Es gibt sicher schlechtere Artikel und historische Relevanz genügt doch. Klar wird das heute niemand nutzen, wiederbeleben oder wissenschaftlich begutachten. Der Artikel wurde im vergangenen Jahr ~870x aufgerufen, scheint also noch jemanden zu interessieren. My2Cent: Belassen. VG --Xf01213 (Diskussion) 20:29, 22. Jul. 2019 (CEST)
- @Neuhaus: Fazit? --Xf01213 (Diskussion) 20:07, 2. Aug. 2019 (CEST)
- Aus den Server Statistiken http://www.securityspace.com/de/s_survey/data/man.201712/httpbyip.html ist die Software Ende 2017 rausgefallen mit zuletzt unter 500 Servern. Kann erstmal bleiben wohl. --Neuhaus (Diskussion) 10:55, 5. Aug. 2019 (CEST)
- Archivierung dieses Abschnittes wurde gewünscht von: Xf01213 (Diskussion) 20:07, 2. Aug. 2019 (CEST)
Cache-Oblivious Algorithmus
Der Artikel ist eher ein Essay, statt einer Zusammenfassung einer externen Definition. Zudem sind weite Teile des deutschen Artikels aus der englischen WP übersetzt, ohne das zu kennzeichnen. Gibt es eine kurze und verständliche Definition eines cache-oblivious Algorithmus? Momentan nehmen die Beispiele einen Großteil des Artikels ein, ist das sinnvoll? Wie wichtig ist die ausführliche Darstellung des Idealized Cache Modell im Artikel (erscheint mir völlig aufgebläht)? Ist der Begriff überhaupt allgemein genug für einen Artikel? Die Literatur ist dünn. --Usteinhoff (diskUSsion) 06:32, 21. Jul. 2019 (CEST)
- Vielen Dank für das Feedback. Ich habe mich am bereits länger existierenden englischen Artikel orientiert, der (wie ich finde) das Thema bereits gut beschreibt. Wie würde man denn in der Wikipedia einen solchen Zusammenhang kennzeichnen (zumal Zitationen aus anderen Artikeln ja nicht gehen)? Die Zitation eines anderen Artikels weiter unten habe ich daher entfernt. Da Speicherhierarchie aber dennoch eng verwandt ist, habe ich einen "Siehe auch"-Abschnitt hinzugefügt.
- Bei den Beispielen habe ich mit "Sortieren" noch ein weiteres (nicht so triviales wie die Transposition) hinzugefügt, zumal das Sortierproblem eines der klassischsten der Algorithmik ist. Dadurch wird der Abschnitt zwar etwas länger, es wird denke ich aber so erst richtig klar, wie das Teile-und-Herrsche Prinzip für einen cache-oblivious Algorithmus angewendet wird.
- Den Abschnitt über das Idealized Cache Modell würde ich nicht als aufgebläht bezeichnen. Die genannten Details sind wichtig für eine formale Analyse und um den Unterschied zum External Memory Modell darstellen zu können. Damit dies klarer wird, habe ich das auch nochmal separat hervorgehoben. Das Modell gehört also eigentlich noch zur Definition des Begriffs eines cache-oblivious Algorithmus (dazu steht jetzt auch noch ein Satz in der Einleitung). --Pjgblt (Diskussion) 12:10, 22. Jul. 2019 (CEST)
- Pjgblt, ich glaube, dass du das alles prima erklärst und dir sehr viel Mühe gibst damit. Das ist aber Theoriefindung und nicht der Sinn eines WP-Artikels. Genau das ist meine Kritik. Wir können hier nur externe Quellen zusammenfassen. Du musst also eine reputable Quelle suchen und diese kurz und prägnant wiedergeben. Mit dieser Vorgehensweise soll abgesichert werden, dass dein eigenes Verständnis des Themas nicht doch fehlerhaft ist, auch bei guter Absicht. Ebenso ist es mit den Beispielen: die kannst du nicht selbst erfinden, sondern wieder nur nach einer Quelle wiedergeben, aus demselben Grund. Wenn die entsprechenden Quellen fehlen, deutet das auf ein generelles Relevanzproblem des Lemmas hin. Lies mal bitte WP:Belege dazu. Zum Idealized Cache Model: Ich sehe nicht, wieso diese Detailfülle etwas zum Verständnis des Cache-oblivious Algorithmus beiträgt. In anderen Arbeiten ist das keineswegs Teil der Definition eines cache-oblivious Algorithmus, obwohl es im Zusammenhang diskutiert wird [5]. Die Literatur dazu ist insgesamt sehr dünn [6]. Du möchtest eine Gegenüberstellung zum External Memory Modell machen, verlinkst dann aber intransparent auf Out-of-Core-Algorithmus, was so, wie es dasteht, eher der Überbegriff ist. Diese gesamten Probleme kannst du nur vermeiden, wenn du dich streng an die Quellen hältst, und diese möglichst noch verkürzt. --Usteinhoff (diskUSsion) 06:43, 23. Jul. 2019 (CEST)
- Die Beispiele im Artikel gehen wie dort auch geschrieben auf Prokop, Brodal und Fagerberg zurück, sind also nicht von mir ausgedacht und geben auch nicht nur mein Verständnis des Themas wieder. Beide Quellen sind bereits hundert- bzw. tausendfach zitiert worden, sodass sie als durchaus reputabel einzuschätzen sind. Insbesondere handelt es sich dabei nicht um Theoriefindung sondern um die Wiedergabe von in der Community weit verbreitetem Wissen. Mittlerweile gibt es tausende Veröffentlichung zu dem Thema[7], sodass ich das Thema für prinzipiell relevant halte.
- Zum Idealized Cache Modell: Eine kurze Definition von cache-oblivious Algorithmen ohne den Begriff des Modells bilden die ersten beiden Sätze des Artikels. Für die Analyse eines solchen Algorithmus ist das Modell jedoch entscheidend, da eine Analyse überhaupt nur im Zusammenhang mit einem geeigneten Modell möglich ist. Die von dir verlinkte Masterarbeit nutzt dieses ebenfalls und besteht sogar hauptsächlich aus der Betrachtung von Variationen/Erweiterungen davon. Die Literatur dazu ist auch deutlich umfangreicher als oben dargestellt, es gibt jedoch kleine Unterschiede im verwendeten Begriff: Der Begriff "ideal cache" scheint im englischen deutlich verbreiteter zu sein[8]. Viele Veröffentlichungen beschreiben dazu ein äquivalentes Modell ohne explizit den Namen zu nennen. Ich habe bereits begründet, dass ich die Details für notwendig halte, um die Unterschiede zum External Memory Modell herauszuarbeiten. Dennoch stimme ich dir zu, dass die Verlinkung auf den Out-of-Core-Algorithmus-Artikel dabei etwas unglücklich ist. Dieser Artikel enthält keinerlei Inhalt aber es wird auf ihn weitergeleitet, wenn man in der deutschen Wikipedia nach External Memory Algorithmen sucht. Nur in der englischen Wikipedia gibt es derzeit einen Artikel zum External Memory Modell[9] (dieser ist auch als englische Version des deutschen Out-of-Core-Artikels verlinkt). External Memory ist dabei keineswegs ein Überbegriff sondern (wie im englischen Artikel klar wird) ein verwandtes Konzept. --Pjgblt (Diskussion) 15:08, 23. Jul. 2019 (CEST)
- Archivierung dieses Abschnittes wurde gewünscht von: Pjgblt (Diskussion) 12:36, 7. Aug. 2019 (CEST)
Modul (Software)
Ich kenne bestimmt ~20 Programmiersprachen, und in KEINER wird die Bezeichnung 'Modul' so wie im Artikel dargestellt als gleichbedeutend mit 'Unterprogramm' verwendet; ein Modul ist praktisch überall eine Sammlung thematisch zusammengehörender Routinen und Settings.
Ein Modul ist in so ziemlich allen Sprachen, die ich kenne, so etwas wie eine Vorform einer Bibliothek.
--arilou (Diskussion) 16:31, 26. Jul. 2019 (CEST)
Hi, das Thema beschäftigt Dich schon seit mehreren Jahren, s.Artikeldisk. Dabei wurde bereits klargestellt, dass der Begriff 'Modul' sehr unterschiedlich definiert/verwendet wird und technisch gesehen sehr unterschiedlich implementiert werden kann. So beschreibt der Artikel bereits, dass in der Modulare Programmierung ('Modul' ist hier namensbildend!) die Aufgabenstellung eines Computerprogramms "systematisch in logische Teilblöcke aufzuspalten ... ist, die 'Module' genannt werden". Ebenso werden im SAP-Umfeld ganz andere Komponenten 'Module' genannt. Und: Aus dem Begriff Modul leitet sich Modularität ab, "die Aufteilung eines Ganzen in Teile." Möglicherweise könnte man im Abschnitt 'Beispiele' weitere Varianten kurz aufführen, um die Unterschiedlichkeit klarer aufzuzeigen.
Jedenfalls ist ein 'Modul' nicht etwas, das einer ganz bestimmten technischen Implementierung entspricht - und schon gar nicht eine "Vorform von Bibliothek"; denn eine Bibliothek ist schon dem Namen nach eine Sammlung vieler verschiedener Inhalte - die z.B. Module genannt werden können. --VÖRBY (Diskussion) 19:46, 27. Jul. 2019 (CEST)
- Das ist deine Meinung - und die zählt erst einmal nicht mehr oder weniger als meine.
- Ich beobachte den Artikel schon seit langem, richtig, sowie auch dein Bestreben, deine Meinung häppchenweise im Laufe der Zeit durchzuboxen. Da kommt dann manchmal so Müll raus, wie dieser Artikel nun eben ist.
- Ein Artikel sollte zunächst ausführlich die Hauptbedeutung erklären, und nicht eine Nebenbedeutung.
- Da du bereits die "Modulare Programmierung" ansprichst, rate ich, den Artikel "Modulare Programmierung" auch mal zu lesen - aus ihm wird deutlich, dass das Modul-Konzept die prozedurale Programmierung erweitert, indem mehrere Prozeduren, Funktionen u.ä. "zu einem Modul zusammengefasst" werden können. Damit ist ja wohl offensichtlich, dass ein Modul != eine Prozedur ist, sondern technisch einer Bibliothek viel näher steht.
- Ein Ganzes in Teile aufteilen zu können, bedeutet nicht zwangsweise, dass es nur "das Ganze" (z.B. eine Bibliothek) und "kleinste Funktionseinheiten" (Prozeduren, Funktionen) geben muss. (Ein Auto kann man z.B. ja auch in die Baugruppen "Motor", "Fahrwerk", "Sitze", ...) aufteilen, ohne es sofort bis zur einzelnen Schraube zerlegen zu müssen.) Es kann auch ~zwischendrin~ thematische Verbünde geben (z.B. "Module" genannt), die bereits einige Funktionen und Prozeduren zusammenfassen, aber (aus welchen Gründen auch immer) dann erst zusammen mit weiteren Modulen zu einer Bibliothek zusammengefasst werden. (Niemand hindert einen Programmierer, eine Bibliothek zu erstellen, die aus nur 1 Modul besteht, dass nur 1 Prozedur enthält. Trotzdem ist die Bibliothek dann nicht dasselbe wie die Prozedur - man kann eine Bibliothek nicht "ausführen", sondern nur die Prozedur darin.)
- --arilou (Diskussion) 10:51, 29. Jul. 2019 (CEST)
Meine Meinung dazu:
- Im Allgemeinen ist 'Modul' ein Teil eines 'Ganzen' (hier eines Computerprogramms). Das ist die allgemeingültige und wesentliche Charaktereigenschaft eines Moduls, egal ob nur einfach oder auch fortgesetzt zerlegt).
- In der Software(entwicklung) (wie auch in anderen Disziplinen) wird der Ausdruck zusätzlich mit sehr unterschiedlichen Bedeutungen benutzt. Der Begriff hat dort jeweils unterschiedliche Definitionen/Eigenschaften.
Diese Unterscheidung sollte das Lemma bereits in der Einleitung klarstellen. Darüberhinaus sollten Beispiele für unterschiedliche Bedeutungen von 'Modul' möglichst vollständig aufgeführt und erklärt werden. Ebenso gibt es wohl zahlreiche Fälle, in denen 'Modul' synonym (und evtl. nur umgangssprachlich) für andere Ausdrücke (Prozedur, Funktion, Untrprogramm ...) verwendet wird. Insofern ist das Lemma derzeit wirklich verbesserungsfähig. Beispielsweise ist der letzte Satz im ersten Einleitungsabschnitt ("... liefert bei der Rückkehr an das aufrufende Programm Daten als Ergebnis zurück" dort unpassend, es müsste dort allgemeingültiger formuliert sein. Die Bedeutung von Modul i.S. von Bibliothek (s.o.) ist wohl eine von vielen möglichen und sollte/könnte in der genannten Aufzählung erscheinen.
Zur Klärung: Meine Rolle hier im Lemma bezog sich i.W. auf Ergänzungen zu bestimmten Varianten (s. Objekt-/Lademodul).--VÖRBY (Diskussion) 13:02, 29. Jul. 2019 (CEST); min. geändert: --VÖRBY (Diskussion) 10:13, 30. Jul. 2019 (CEST)
- Bereits die Einleitung fokussiert sehr stark darauf, dass ein Modul dasselbe wie ein Unterprogramm sei. In manchen Umgebungen ist das so ~ ich meine mich wage zu erinnern, dass manche (alte) Programmiersprachen im Großrechner- aber auch im Embedded-Umfeld den Begriff so verwenden.
- Aber: Viel (sehr viel!) weiter verbreitet ist die Variante, dass "Modul" eine "Sammlung von Funktionen, Prozeduren, Klassen" (und ggf. Konstanten und weiteres) bedeutet.
- Die Einleitung sollte vor allem die Hauptbedeutung erläutern. Wenn im nachfolgenden Artikel dann v.a. eine seltenere Nebenbedeutung ausführlich behandelt wird ~ tja, dann wartet der Artikel eben auf einen Autor, der die Hauptbedeutung noch ausarbeitet. Kommt öfter vor in der WP (und stört mich viel weniger, als eine Einleitung, die knapp an "falsch" vorbeischrammt).
- --arilou (Diskussion) 09:26, 31. Jul. 2019 (CEST)
- Was ist die Hauptbedeutung? Wer sagt das außer Dir? Diese Deine Interpretation ist bereits eine Variante von Modulimplementierungen. Ich würde für die Aussage 'Hauptbedeutung' eine Quelle fordern.
- Nach Duden-Informatik (zB) heißt es: Der Begriff wird in mehreren Bedeutungen verwendet:
- 1. Software-Modul: Bausteine, aus denen sich ein Software-System zusammensetzt ...
- 2. Realisierung eines abstrakten Datentyps" (hier also Klassen)
- 3 und 4 für Software nicht relevant.
- Im Duden heißt es: austauschbares, komplexes Element innerhalb eines Gesamtsystems, eines Gerätes o. Ä., das eine geschlossene [Funktions]einheit bildet
- Gabler: ein Baustein eines Softwaresystems, der bei der Modularisierung entsteht, eine funktional geschlossene Einheit darstellt und einen bestimmten Dienst bereitstellt.
- Dies ist also wohl die allgemeingültige und somit die Hauptbedeutung. Einleitung bitte korrigieren.--VÖRBY (Diskussion) 10:41, 31. Jul. 2019 (CEST)
- Wenn eine Bedeutung sehr viel weiter verbreitet ist als alle anderen, nenne ich sie "Hauptbedeutung".
- Einen Beleg dafür zu fordern, ist eine gute Idee.
- --arilou (Diskussion) 11:54, 31. Jul. 2019 (CEST)
- Allgemeingültigkeit geht aber vor Gewohnheit/Verbreitung (sofern das überhaupt zutrifft). Heißt: Vom Allgemeinen zum Speziellen (= von Basisdefinition zu Varianten).--VÖRBY (Diskussion) 15:28, 31. Jul. 2019 (CEST)
Ohne mich jetzt groß einmischen zu wollen, bitte ich euch (wurde ohnedies von euch beiden angesprochen) bei der Einleitung / Begriffsdefinition auf belegbare Dinge (nach Gabler und weiter nach Duden-Informatik finde ich schon mal gut) zurückzugreifen. So wie es jetzt unbelegt drinnen steht kann es auf keinen Fall bleiben. Wenn es mehrere (belegte) Bedeutungen gibt (davon gehe ich aus), dann sollten die mal erst alle erwähnt werden, bevor auf die "Hauptbedeutung" eingegangen wird, sonst kennt sich keiner aus. Ich nehme auch an, dass sich der Begriff mit der Zeit geändert hat, früher (z.B. Modula 2) war ein Modul was kleineres heute (z.B. Maven) was größeres - die Definition lt. Gabler würde beides umfassen... --Sebastian.Dietrich ✉ 17:58, 31. Jul. 2019 (CEST)
- Danke für die externe Stellungnahme. Ich stimme voll zu.
Nochmal kurz zur aktuellen Einleitung: Die Quelle zur Referenz auf VBA beschreibt nichts anderes, als dass in VBA verschiedenartige Module erstellt werden können - wie es bereits unter Varianten erläutert ist. Damit wird ein solches Modul nicht zu einer Bibliothek, auch nicht zu einer Vorstufe davon. Jedes dieser Module ist 'ein funktionaler Teil der Anwendung'. Wo es gespeichert ist (möglicherweise in einer Bibliothek irgendeiner Form), ist eine andere Frage, macht das Modul selbst aber nicht zur Bib - und auch nicht umgekehrt. Gleichwohl mag es sein, dass Bibliotheken (sie sind eine "Zusammenfassung thematisch zusammengehöriger Prozeduren, Funktionen, Klassen, Konstanten und ggf. weiterer Programmierobjekte") umgangssprachlich zum Teil auch 'Modul' genannt werden, das wäre dann aber als Synonym zu bezeichnen.--VÖRBY (Diskussion) 13:01, 1. Aug. 2019 (CEST)
Einleitungs-Entwurf
Aus dem lezten Stand der obigen Diskussion, dem bisherigen Text und weiteren Quellen habe ich folgenden Entwurf für die Einleitung entwickelt.
Ein Modul (neutrum, das Modul[1]) ist im Software Engineering ein Baustein eines Softwaresystems, der bei der Modularisierung entsteht, eine funktional geschlossene Einheit darstellt und einen bestimmten Dienst bereitstellt.[2]
Module sind charakteristisch für die Programmierung nach dem Programmierparadigma der modularen Programmierung. Module können weitere Module bzw. auch mit anderen Bezeichnungen benannte Konstrukte (wie Funktion, Prozedur, Klasse u. a.) enthalten. So ist die Zerlegung der Programmfunktionalität in einer Hierarchie möglich. Module können die in ihnen festgelegten Datenstrukturen und Methoden gegebenenfalls vererben bzw. fremden Modulen den Zugriff erlauben oder verbieten.
In den verschiedenen Programmiersprachen und Entwicklungsumgebungen und deren zeitlicher Entwicklung haben sich zahlreiche unterschiedliche Implementierungsformen von Modulen (mit zum Teil unterschiedlichen Bezeichnungen) entwickelt. Auch wird der Ausdruck Modul häufig synonym zu Begriffen wie Unterroutine, Prozedur, Unterprogramm, Programmteil, Programm-Modul[3][4] verwendet.
Als Speicherobjekt für Programmcode ist „Modul“ eine typisierende Bezeichnung für die Inhalte in einer Programmbibliothek, wobei ein Modul häufig eine Zusammenfassung thematisch zusammengehöriger Prozeduren, Funktionen, Klassen, Konstanten und ggf. weiterer Programmierobjekte ist. Module gibt es auch für Hauptprogramme, sie können alternativ unterschiedliche Arten von Programmcode (wie Quelltext, Zwischencode, Maschinenprogramm) repräsentieren.
Zu unterscheiden ist ein Modul von einer Komponente, die in der Funktionalität eine Hierarchieebene höher angesiedelt ist und die (Basis-)Funktionalitäten von Modulen zu (fachspezifischen) Diensten kombiniert. Jedoch werden derartige Komponenten im Sprachgebrauch (zum Beispiel bei SAP[5]) manchmal ebenfalls „Module“ genannt.
- ↑ Duden, Band 5, Fremdwörterbuch, 7. neu bearbeitete und erweiterte Auflage, Mannheim 2001
- ↑ Gabler [1] Definition Modul
- ↑ psion user-club OPL-Kurs Teil 4 [2] denn einen Teil der Module („synonym: Prozeduren, ...“) werden wir wiederverwenden
- ↑ econstor.eu [3] Seite 19: ... inwieweit ein Programm in Unterprogramme (Module) zerlegt ist, ...
- ↑ tse.de [4] SAP-R3-Module
--VÖRBY (Diskussion) 20:02, 4. Aug. 2019 (CEST)
Keine weiteren Stellungnahmen; ich habe den u.a. Entwurfstext in den Artikel übernommen. Weitere Beispiele für Varianten von Modulen könnten in 'Beispiele' aufgeführt werden.--VÖRBY (Diskussion) 10:11, 7. Aug. 2019 (CEST)
- Archivierung dieses Abschnittes wurde gewünscht von: VÖRBY (Diskussion) 10:11, 7. Aug. 2019 (CEST)
Nvidia G-Sync
Die Deutschfehler von Benutzer:RonGames in der Einleitung habe ich schon korrigiert und provisorisch Kategorie:Grafikkarten gesetzt (so etwas wie en:Category:Computer display Standards gibt’s hier ja offenbar nicht) – aber der Artikel scheint mir nicht nur im Verhältnis zum (kaum existenten) Fließtext, sondern auch absolut zu viel Ratgeber zu sein. -- Olaf Studt (Diskussion) 19:39, 29. Aug. 2019 (CEST)
- Archivierung dieses Abschnittes wurde gewünscht von: GWRo0106 (Diskussion) 21:48, 28. Apr. 2020 (CEST)