patchworker
Anmeldungsdatum: 18. Dezember 2006
Beiträge: 190
Wohnort: Nürnberg, Franken
|
Hallo user unknown,
Was ist denn das Ziel dieses Absatzes?
Na, vielleicht um Leuten zu erklären, die sich fragen, seit wann zwischen Methode und Funktion ein Unterschied besteht? Das müsste doch eigentlich klar sein, dass ich das nicht aus Langeweile geschrieben habe.
Der Vergleich mit der Physik ist etwas gewagt; ich würde sagen: Kann man machen, wenn denn dann der Bezug zu Scala da wäre - aber da kommt nichts. Wo ist denn die Parallele zu Scala?
Im englischen Artikel ist das groß und breit ausgeführt, finde ich aber zu lang. Hast Du das gelesen, obwohl es ein bit.ly Link ist?
Dann die Geschichte mit dem apply. Als Neuling gehe ich jetzt auf die Suche nach einer apply-Methode, die in etwas steckt, was dann vielleicht die Funktion ist? Es erklärt irgendwie den Fischen das Fliegen würde ich sagen; die können's dann hinterher auch nicht.
Nirgends steht, dass man sich auf die Suche nach der apply-Methode machen soll. Dann fehlt also noch ein Satz zur apply-Methode. Wie lässt sich das möglichst kurz erklären? Ein Beispiel kann man trotzdem machen, es braucht aber trotzdem einen Satz zur Erklärung.
Ich sehe keine Zielgruppe für den Absatz
Keine Zielgruppe? Wie wäre es mit Leuten, die noch kein Scala-Profi sind? Also wenn das mal keine Zielgruppe ist! z.B. bin ich jemand, der heute früh den Unterschied überhaupt nicht kannte. Wäre der Absatz schon drin gewesen, dann hätte ich es schneller verstanden.
auch wenn nichts direkt falsches drin steht.
das ist schon mal gut.
Ein radikal kurzes, und dennoch nützliches Beispiel für die Verwendung von Funktionen fände ich eher sinnvoll, um Leute die nur OOP kennen neugierig zu machen.
Radikale nützliche Scala-Beispiele gibt es viele. Ohne Erklärung sind die aber nur kryptisch und man sieht den Sinn nicht.
OT: Solche bit.ly-Links sind nicht sonderlich erwünscht, da man nicht sieht wo sie hinführen
Gefällt Dir nicht, verstehe ich. In einem Forum kann man Links setzen, das stimmt. Generell gibt es viele Anwendungsfälle, wo es notwendig ist keine ellenlangen Links zu posten. Aber darüber brauchen wir nicht zu diskutieren.
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
patchworker schrieb: Na, vielleicht um Leuten zu erklären, die sich fragen, seit wann zwischen Methode und Funktion ein Unterschied besteht?
Ich habe das in der Fernschule gelernt... Aber für diesen Artikel ist es nicht wirklich von Belang, da es für jede Objektorientierte_Programmierung gilt. Im verlinkten Artikel gibt es auch den Absatz Methoden. Glossar
Function / Methode: [...] Eine Scala-Methode ist, so wie in Java, ein Teil einer Klasse. Sie hat einen Namen, eine Signatur, evtl. Annotationen, etwas Bytecode.
Beim Lesen habe ich mich gefragt, was denn Signaturen und Annotationen sind... Ein Absatz, der Begriffe erläutern möchte, aber Fragen zu weiteren Begriffen auswirft, von denen der Leser nicht weiß ob sie wichtig sind, bleibt fraglich 😉 Unser Wiki kann nicht eine Programmiersprache in seiner Gesamtheit erklären und soll es auch nicht. Wer sich mit einer Programmiersprache befassen möchte kommt IMHO eh nicht umhin, weiterführende Literatur zu lesen (für solche die sich schon ein wenig auskennen) oder einen Programmierkurs (für Neueinsteiger) zu besuchen.
In einem Forum kann man Links setzen, das stimmt. Generell gibt es viele Anwendungsfälle, wo es notwendig ist keine ellenlangen Links zu posten.
Nicht nur im Forum kann man Links setzen. user_unknown wollte Dich nur darauf hinweisen, das die Syntax von Inyoka eben auch das "oberflächliche verstecken" von langen Links kann. Im Gegensatz zu der bit.ly -Methode, sieht man aber trotzdem wo man hin gelangt: Link. Bei bit.ly -Links kann ich gar nicht erkennen wo sie hinführen. Es könnte ja auch eine kompromittierende Seite (oder Link) sein. ☺ Gruß kaputtnik
|
patchworker
Anmeldungsdatum: 18. Dezember 2006
Beiträge: 190
Wohnort: Nürnberg, Franken
|
Hallo kaputtnik,
Na, vielleicht um Leuten zu erklären, die sich fragen, seit wann zwischen Methode und Funktion ein Unterschied besteht?
Ich habe das in der Fernschule gelernt... Aber für diesen Artikel ist es nicht wirklich von Belang, da es für jede Objektorientierte_Programmierung gilt. Im verlinkten Artikel gibt es auch den Absatz Methoden.
Wenn man mit dem Perl-Artikel vergleicht, was ein relativ langer Text ist, dann fällt auf, dass ein zwei kurze Text-Absätze bei Scala noch gut hereinpassen. Bisher ist im Scala-Artikel nur sehr wenig erklärender Text. Die Beispiele brauchen nicht unbedingt mehr Text. Da der Unterschied Funktion/Methode aus meiner Sicht eine Eigenheit von Scala ist und man von Scala-Profis einen Rüffel bekommt, wenn man Funktion/Methode verwechselt finde ich diese Erklärung sinnvoll. Habe schon mehrmals so einen Rüffel in Foren mitbekommen bzw. gelesen. Man muss ja sonst nichts erklären, und kann für alles andere auf eine Buch oder ein Tutorial verweisen.
Glossar
Function / Methode: [...] Eine Scala-Methode ist, so wie in Java, ein Teil einer Klasse. Sie hat einen Namen, eine Signatur, evtl. Annotationen, etwas Bytecode.
Beim Lesen habe ich mich gefragt, was denn Signaturen und Annotationen sind...
Gute Anmerkung. Kann man für Nicht-Java Programmierer kurz erklären oder weglassen. Man könnte schreiben: Eine Scala-Methode ist, so wie in Java, ein Teil einer Klasse. Sie hat unter anderem einen Namen und etwas Bytecode. Unser Wiki kann nicht eine Programmiersprache in seiner Gesamtheit erklären und soll es auch nicht. Wer sich mit einer Programmiersprache befassen möchte kommt IMHO eh nicht umhin, weiterführende Literatur zu lesen (für solche die sich schon ein wenig auskennen) oder einen Programmierkurs (für Neueinsteiger) zu besuchen.
Das ist klar, es geht es mir überhaupt nicht darum einen Großteil der Sprache zu beschreiben. Es geht mir darum 1. Installation 2. ein paar typische Beispiele 3. Links und 4. Etwas erklärenden Text drin zu haben. für 4. finde ich diese Funktion/Methode - Unterscheidung ganz passend. Ganz oben in der Einleitung wäre das wiederum zuviel, das ist nur für diejenigen die sich die Scala-Beispiele schon angesehen haben und unten am Ende der Seite angekommen sind. Nicht nur im Forum kann man Links setzen. user_unknown wollte Dich nur darauf hinweisen, das die Syntax von Inyoka eben auch das "oberflächliche verstecken" von langen Links kann.
Das habe ich doch verstanden.
Es könnte ja auch eine kompromittierende Seite (oder Link) sein. ☺
Zugegeben, das ist eine Befürchtung, die man bedenken sollte. So gesehen, ist Twitter für Euch beide sicher eine Zumutung. Daher habe ich das. Aber Ihr beide habt mich überzeugt. Wenn es irgendwie möglich ist, verwende ich bit.ly nicht mehr. Viele Grüße
Daniel
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
Servus ☺ patchworker schrieb: Die Beispiele brauchen nicht unbedingt mehr Text. Da der Unterschied Funktion/Methode aus meiner Sicht eine Eigenheit von Scala ist und man von Scala-Profis einen Rüffel bekommt, wenn man Funktion/Methode verwechselt finde ich diese Erklärung sinnvoll.
[...] Man könnte schreiben: Eine Scala-Methode ist, so wie in Java, ein Teil einer Klasse. Sie hat unter anderem einen Namen und etwas Bytecode.
Schreib doch einfach so was wie: "Scalaprogrammierer legen viel Wert auf die Unterscheidung von Fuktionen und Methoden. Eine Scala-Methode ist, so wie in Java, ein Teil einer Klasse. Sie hat unter anderem einen Namen und etwas Bytecode. Eine Funktion ist dagegen ein eigenständiger Algorithmus außerhalb von Klassen." oder ähnlich 😕 Eben allgemein... ☺ Gruß kaputtnik
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17434
Wohnort: Berlin
|
patchworker schrieb: Hallo user unknown,
Was ist denn das Ziel dieses Absatzes?
Na, vielleicht um Leuten zu erklären, die sich fragen, seit wann zwischen Methode und Funktion ein Unterschied besteht? Das müsste doch eigentlich klar sein, dass ich das nicht aus Langeweile geschrieben habe.
Was sich die Leute fragen, die den Artikel lesen, kann ich nicht erraten. Da bislang nirgends ein Unterschied zw. Methode und Funktion erwähnt, geschweige denn betont wird, tippe ich nicht auf Langeweile, sondern darauf, dass Dich das Thema zuletzt stärker beschäftigt hat, und Du ihm daher größeres Gewicht beimisst.
Der Vergleich mit der Physik ist etwas gewagt; ich würde sagen: Kann man machen, wenn denn dann der Bezug zu Scala da wäre - aber da kommt nichts. Wo ist denn die Parallele zu Scala?
Im englischen Artikel ist das groß und breit ausgeführt, finde ich aber zu lang. Hast Du das gelesen, obwohl es ein bit.ly Link ist?
Teilweise. Ich denke ich kann dem Vergleich was abgewinnen, weil ich schon ein wenig über den Unterschied weiß. Aber ohne dieses Vorwissen erfährt man m.E. wenig, und dann noch Implementierungsdetails, die eher für fortgeschrittene Nutzer interessant sind - man hat aber noch keine Verwendung von Funktionen gesehen.
Dann die Geschichte mit dem apply. Als Neuling gehe ich jetzt auf die Suche nach einer apply-Methode, die in etwas steckt, was dann vielleicht die Funktion ist? Es erklärt irgendwie den Fischen das Fliegen würde ich sagen; die können's dann hinterher auch nicht.
Nirgends steht, dass man sich auf die Suche nach der apply-Methode machen soll. Dann fehlt also noch ein Satz zur apply-Methode. Wie lässt sich das möglichst kurz erklären? Ein Beispiel kann man trotzdem machen, es braucht aber trotzdem einen Satz zur Erklärung.
Also ich habe jetzt noch nicht soo viel mit Scala gemacht, aber auch nicht so wenig. Funktionen habe ich schon häufiger benutzt, aber die apply-Methode habe ich bislang nicht gebraucht. Vielleicht liegt das aber an meiner Art die Sprache zu lernen.
Ich sehe keine Zielgruppe für den Absatz
Keine Zielgruppe? Wie wäre es mit Leuten, die noch kein Scala-Profi sind? Also wenn das mal keine Zielgruppe ist!
Ja eben. Wenn man den Artikel kurz halten will, dann macht man keinen Artikel für Profis, sondern für Anfänger.
Ein Beispiel für die Verwendung einer Funktion als Parameter einer Methode könnte folgendes sein: Die Methode timed misst die Zeit die es dauert die Funktion f auszuführen; hier den allgemeinsten Fall, einer Funktion die ein Any zurückgibt, das Äquivalent zu Javas Objekten:
1
2
3
4
5
6
7
8
9
10
11
12
13 | // measure a function, print time, used to execute
def timed (f: => Any) : Any = {
val start = new java.util.Date ()
val res = f
val stop = new java.util.Date ()
println ("\t" + (stop.getTime - start.getTime))
res
}
val list = List (9, 2, 3, 1, 5 /*...*/)
timed (bubblesort (list))
timed (mergesort (list))
|
Der Aufruf timed (bubblesort (list)) wird nicht, wie man das von anderen Sprachen gewohnt ist, bubblesort (list) aufrufen, und das Ergebnis an timed weiterreichen, sondern bubblesort wird erst im inneren von timed (f) ausgeführt, und so kann die Dauer überhaupt erst gemessen werden. Es handelt sich weder um ein Call-By-Value, noch Call-By-Reference, sondern um ein Call-By-Name.
Wie man sieht braucht man sich auf dieser Ebene mit 'apply' gar nicht zu beschäftigen.
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28348
Wohnort: WW
|
Hallo, mit dem EOL von Xenial ungetestet. Das ganze sollte denke ich auch mit Bionic oder Focal funktionieren - müsste nur wer bestätigen. Gruß, noisefloor
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28348
Wohnort: WW
|
Keine Scalanutzer hier unterwegs? Möchte niemand unter Focal oder neuer testen? Gruß, noisefloor
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17434
Wohnort: Berlin
|
Ich nutze noch Scala, komme aber frühestens Mi. dazu, den Artikel mal durchzugehen. Ich bin jedoch noch auf 20.04 LTS unterwegs und werde im Sommer womöglich auf 22.04 wechseln. ☺ Beim ersten Überfliegen habe ich auch Unwillen verspürt, verschiedene IDEs zu testen, um zu prüfen ob die Behauptungen noch stimmen.
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28348
Wohnort: WW
|
Hallo, der Artikel ist ungetestet, sprich du hast frei Hand, was Änderungen angeht. Wenn du den IDE-Vergleich streichen willst, aber dafür den Artikel unter 20.04 testen kannst → vollkommen ok. Ich halte den IDE Vergleich sowieso auch nur für semi-sinnvoll. a) hindert es beim Testen des Artikels, b) liest sich das teilweise eher spekulativ als faktenbasiert, c) hängt die Wahl der IDE ja auch von den persönliche Präferenzen ab. Gruß, noisefloor
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17434
Wohnort: Berlin
|
Neue Aufträge sorgen dafür, dass es noch 2 Wochen dauert, aber es steht auf meiner TODO-Liste.
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28348
Wohnort: WW
|
Hallo, alles klar, sehr schön. Ich habe dir den Artikel in die Baustelle verschoben, dann wird es sicher nicht archiviert. Gruß, noisefloor
|
tuxifreund
Projektleitung
Anmeldungsdatum: 7. November 2020
Beiträge: 1151
|
Hallo, wie ist denn der Stand der Dinge hier?
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17434
Wohnort: Berlin
|
Ja, es zieht sich noch. Hatte die letzte Zeit doch viel um die Ohren. Einmal hatte ich schon schwungvoll begonnen; wurde dann aber ausgebremst, weil das erste Beispiel nicht klappte, und die Installationsanleitung auf der Scala-Seite hat unter 22.04 in der VM auch nicht geklappt, und dann musste ich wieder für die Arbeit arbeiten. Die Tabs sind aber noch alle offen. ☺
|
karzer
Wikiteam
Anmeldungsdatum: 10. April 2022
Beiträge: 1132
Wohnort: Bad Oeynhausen
|
Hallo, könntest Du da das Fertigstellungsdatum nach hinten verschieben?
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17434
Wohnort: Berlin
|
Gemacht, und m.E. fertiggestellt, kann also raus aus der Baustelle, aber vielleicht möchte noch jmd. drüberschauen.
|