user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
Ich habe ein paar Codes gestrafft aber noch Fragen/Anmerkungen:
val list = List("hello", "world")
list.foreach((s: String) => println(s))
val list = List ("hello", "world")
list foreach println
--------------------------------------------
var capital = Map("US" > "Washington", "France" > "Paris")
capital += ("Japan" > "Tokyo")
println(capital("France"))
var capital = Map ("US" -> "Washington", "France" -> "Paris")
capital += ("Japan" -> "Tokyo")
println (capital ("France"))
--------------------------------------------
val filesHere = (new java.io.File(".")).listFiles
for (file <- filesHere if file.getName.endsWith(".scala"))
println(file)
(new java.io.File(".")).listFiles.filter (f => f.getName.endsWith (".scala")).foreach (println)
-------------------------------------------- Der integrierte Compiler übersetzt den Quellcode in Java-Bytecode, der mittels Java ausgeführt werden kann.
Inwiefern ist der Compiler integriert? Worein integriert?
"Java-Bytecode" finde ich auch nicht unproblematisch, aber "JVM-Code" versteht wohl kaum jemand. Daher soll man es besser lassen.
Beim Umgang mit Scalaprogrammen ist zu beachten, dass die Ausführung beim ersten Start etwas länger dauert, da erst kompiliert werden muss.
Erstens ist mir unklar, ob hier der Bytecodecompiler gemeint ist, oder der Hotspotcompiler, und zweitens, wieso das zu beachten ist. Von wem ist das zu beachten? Wieso?
Ich würde den Satz ersatzlos streichen. ☺
|
patchworker
Anmeldungsdatum: 18. Dezember 2006
Beiträge: 190
Wohnort: Nürnberg, Franken
|
Hallo user unknown, das mit der Startzeit muss irgendwie drin stehen, wie müssen wir einfach noch überlegen. Grund: Eine Idee ist ja, Scala-Scripts statt bash-Scripts zu verwenden. Das ist zumindest für mich eine Motivation die Sprache überhaupt zu lernen. Beim ersten Start dauert es aber relativ lange und da ist gut zu wissen, warum das so ist. Ab dem zweiten Start ist es eigentlich OK. Viele Grüße
Daniel
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
Dann schreib das doch auch so. ☺
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
Mir ist ein Fehler aufgefallen, den ich korrigiert habe: Definition einer Funktiondef max (x: Int, y: Int) = if (x > y) x else y
Das ist keine Funktion, sondern eine Methode. Ein subtiler Unterschied, der aber wichtig ist. Außerdem noch eine in-die-Irre-Führung: #!/usr/bin/env scala
!#
println ("Hallo ")
args foreach println chmod +x scala-test.scala
./scala-test.scala "Scala funktioniert"
Das foreach suggeriert ja mehrere Argumente, die der Reihe nach abgeklappert werden - aber die Maskierung "Scala funktioniert" fasst die 2 Wörter zu einem Argument zusammen. Daher komme ich mit dieser Variation daher:
#!/usr/bin/env scala
!#
def promptprint (s: String) = {println ("> " + s}
println ("Hallo ")
args foreach promptprint und ohne Maskierung. Allerdings kann ich's nicht prüfen - wenn ich das starte passiert gar nichts - es hängt, und mit Ctrl-C kann ich das ganze nur abbrechen. Dies scheint mir auch nicht ganz unmissverständlich: Listen und Maps
Definition und Ausgabe einer Liste. Imperativ:
val list = List ("hello", "world")
for (s <- list) println (s)
oder funktional:
val list = List ("hello", "world")
list foreach println
oder funktional mit higher-order-function:
val list = List("hello", "world")
list.map (println)
Ist darunter zu verstehen, dass die zweite Variante ohne higher-order-funktion arbeitet? Inwiefern? Der Unterschied zw. map u. foreach liegt doch darin, dass foreach nichts zurückliefert, bzw. Unit (etwa wie in Java 'void') und map dagegen die Ergebnisse der Funktionsaufrufe zurückliefern würde - allerdings ist das hier ja auch bloß Unit. Dazu kommt, dass zuvor von der Alternative 'imperativ' die Rede war. Die funktionalen Beispiele sind m.E. aber nicht minder imperativ. Ich habe es zu 'klassisch/oder funktional/oder so' geändert.
|
patchworker
Anmeldungsdatum: 18. Dezember 2006
Beiträge: 190
Wohnort: Nürnberg, Franken
|
Hallo user unknown, ich habe leider immer nur ab und zu Zeit für Scala, deshalb erst jetzt meine Antwort. dies hier: Außerdem noch eine in-die-Irre-Führung: #!/usr/bin/env scala
!#
println ("Hallo ")
args foreach println chmod +x scala-test.scala
./scala-test.scala "Scala funktioniert"
war eigentlich so gemeint: Man übergibt eine beliebige Anzahl an Parametern, die alle ausgegeben werden sollen. Die Anführungszeichen beim Parameter sind also Unsinn. Diese Variante gefällt mir also gut für ein Hello World, da gleich mehrere Dinge gezeigt werden, es aber trotzdem leicht lesbar ist. Die kryptischen L3-Dinge sind für Anfänger echt ein Hindernis. |
#!/usr/bin/env scala
!#
def printArgument (s : String) = { print (s + " ") }
print("Hallo ")
if(args.length > 0) {
args foreach printArgument
}
println
|
Daher ist nun dieser Aufruf möglich:
./scala-test.scala Martin Odersky das schaut soweit ganz interessant aus Funktioniert, habe ich gerade getestet. Viele Grüße
Daniel
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
patchworker schrieb: war eigentlich so gemeint: Man übergibt eine beliebige Anzahl an Parametern, die alle ausgegeben werden sollen. Die Anführungszeichen beim Parameter sind also Unsinn.
OK.
Diese Variante gefällt mir also gut für ein Hello World, da gleich mehrere Dinge gezeigt werden, es aber trotzdem leicht lesbar ist. Die kryptischen L3-Dinge sind für Anfänger echt ein Hindernis.
Was sind denn kryptische L3-Dinge?
|
#!/usr/bin/env scala
!#
def printArgument (s : String) = { print (s + " ") }
print("Hallo ")
if(args.length > 0) {
args foreach printArgument
}
println
|
Wozu ist das if gut?
Daher ist nun dieser Aufruf möglich:
./scala-test.scala Martin Odersky das schaut soweit ganz interessant aus Funktioniert, habe ich gerade getestet.
Bei mir nicht. ☺ Seltsam.
|
patchworker
Anmeldungsdatum: 18. Dezember 2006
Beiträge: 190
Wohnort: Nürnberg, Franken
|
Hallo user unknown,
war eigentlich so gemeint: Man übergibt eine beliebige Anzahl an Parametern, die alle ausgegeben werden sollen. Die Anführungszeichen beim Parameter sind also Unsinn.
OK.
Diese Variante gefällt mir also gut für ein Hello World, da gleich mehrere Dinge gezeigt werden, es aber trotzdem leicht lesbar ist. Die kryptischen L3-Dinge sind für Anfänger echt ein Hindernis.
Was sind denn kryptische L3-Dinge?
Na, ich habe etwas übertrieben, nun ich meine die komplexen Sprachfeatures, die Neugierige davon abhalten sich mit Scala zu beschäftigen. Wenn man die Kurzschreibweisen von Scala komplett ausnutzt (also "L3"), dann schaut das zwar sehr kompakt und praktisch aus, aber es ist sehr schwer verständlich.
http://it-republik.de/jaxenter/news/Scala-das-Chamaeleon-Oderskys-Stufen-der-Komplexitaet-058098.html Was hälst Du davon:
Wir könnten die Beispiele im Artikel in zwei Abschnitte einteilen. Einen für A1, also völlige Neueinsteiger und einen für A2/A3, worin Leute mehr entdecken können, die mit Scala schon experimentiert haben. Wer "richtig" einsteigen möchte kauft sich eh ein Buch, da kommt man nicht drum herum. Auch die Frage der IDE ist für Scala sehr wichtig. Das wäre auch einen Abschnitt wert. Man könnte auf IntelliJ/Scala verweisen und von Eclipse/Scala abraten.
|
#!/usr/bin/env scala
!#
def printArgument (s : String) = { print (s + " ") }
print("Hallo ")
if(args.length > 0) {
args foreach printArgument
}
println
|
Wozu ist das if gut?
Falls keine Parameter übergeben werden. Braucht man in Scala keine Exception zu vermeiden?
Daher ist nun dieser Aufruf möglich:
./scala-test.scala Martin Odersky das schaut soweit ganz interessant aus Funktioniert, habe ich gerade getestet.
Bei mir nicht. ☺ Seltsam.
Vielleicht hast Du eine alte Scala-Version? Ich habe 2.8.1.final in Ubuntu 10.10 Was ist Deine Fehlermeldung? Viele Grüße
Daniel
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
patchworker schrieb: Diese Variante gefällt mir also gut für ein Hello World, da gleich mehrere Dinge gezeigt werden, es aber trotzdem leicht lesbar ist. Die kryptischen L3-Dinge sind für Anfänger echt ein Hindernis.
Was sind denn kryptische L3-Dinge?
Na, ich habe etwas übertrieben, nun ich meine die komplexen Sprachfeatures, die Neugierige davon abhalten sich mit Scala zu beschäftigen.
Das ist aber eine gewagte Behauptung. Sprachfeatures sollten doch gerade Neugierige besonders reizen.
Wenn man die Kurzschreibweisen von Scala komplett ausnutzt (also "L3"), dann schaut das zwar sehr kompakt und praktisch aus, aber es ist sehr schwer verständlich.
Ach, Oderskys Library-Schwierigkeitsgrad L3? Ich weiß nicht wozu man damit jemandem in einem Wikiartikel kommen soll. Das ist wirklich das uninteressanteste an Scala.
Was hälst Du davon:
Wir könnten die Beispiele im Artikel in zwei Abschnitte einteilen. Einen für A1, also völlige Neueinsteiger und einen für A2/A3, worin Leute mehr entdecken können, die mit Scala schon experimentiert haben. Wer "richtig" einsteigen möchte kauft sich eh ein Buch, da kommt man nicht drum herum.
Ich muss leider sagen: Gar nichts. Da irgendwo willkürlich eine Komplexitätsgrenze zu sehen - das kann ich nicht nachvollziehen. Dass es einem Einsteiger didaktisch irgendwie hilft sehe ich auch nicht.
Auch die Frage der IDE ist für Scala sehr wichtig. Das wäre auch einen Abschnitt wert. Man könnte auf IntelliJ/Scala verweisen und von Eclipse/Scala abraten.
Finde ich überhaupt nicht wichtig. Schreib einen Satz pro IDE vielleicht, aber vergiss dann nicht, dass viele Leute nur mit vi oder emacs arbeiten, und sich da eine Menge zurechtgestrickt haben, oder für gedit, (nano?) und dies und das, und das scala auch mit sbt genutzt wird, und interaktiv.
| print("Hallo ")
if(args.length > 0) {
args foreach printArgument
}
println
|
Wozu ist das if gut?
Falls keine Parameter übergeben werden. Braucht man in Scala keine Exception zu vermeiden?
Das ist ja einer der Witze an foreach/map: Dass sie kein Problem mit leeren Collections haben. Allerdings ist das ja auch bei Java seit 6 Jahren, mit der vereinfachten For-Loop so.
Vielleicht hast Du eine alte Scala-Version? Ich habe 2.8.1.final in Ubuntu 10.10 Was ist Deine Fehlermeldung?
Wie gesagt keine Fehlermeldung, aber Scala 2.8.0 und Ubuntu 9.10: Allerdings kann ich's nicht prüfen - wenn ich das starte passiert gar nichts - es hängt, und mit Ctrl-C kann ich das ganze nur abbrechen.
|
patchworker
Anmeldungsdatum: 18. Dezember 2006
Beiträge: 190
Wohnort: Nürnberg, Franken
|
Hallo user unknown,
Diese Variante gefällt mir also gut für ein Hello World, da gleich mehrere Dinge gezeigt werden, es aber trotzdem leicht lesbar ist. Die kryptischen L3-Dinge sind für Anfänger echt ein Hindernis.
Was sind denn kryptische L3-Dinge?
Na, ich habe etwas übertrieben, nun ich meine die komplexen Sprachfeatures, die Neugierige davon abhalten sich mit Scala zu beschäftigen.
Das ist aber eine gewagte Behauptung. Sprachfeatures sollten doch gerade Neugierige besonders reizen.
Das hab ich mir nicht ausgedacht, dass die Komplexität viele von Scala abschreckt. Es gibt da eine große Debatte, weshalb Martin Odersky diese Einteilung überhaupt gemacht hat. Sein Ziel war zu zeigen, dass man auch ohne die speziellen Features sehr weit kommt und alles programmieren kann, was man möchte. Er meint, dass man zum Schreiben von Bibliotheken aber das volle Spektrum drauf haben MUSS. Ich habe noch nie eine Programmiersprache gelernt, wo ich eine so lange Lernkurve hatte. Assembler hatte ich an einem Wochenende gelernt, das war die Zeit vom Commodore 64. Perl und C ebenfalls sehr schnell. In Java hatte ich anfangs (circa 1998) etwas Schwierigkeiten mit AWT und Threads, doch dann war das auch drin. Bei Scala schaut es aber anders aus. Die Hoffnung in einem Wochenende die Features zu lernen und dann zu programmieren ist trügerisch.
Wenn man die Kurzschreibweisen von Scala komplett ausnutzt (also "L3"), dann schaut das zwar sehr kompakt und praktisch aus, aber es ist sehr schwer verständlich.
Ach, Oderskys Library-Schwierigkeitsgrad L3? Ich weiß nicht wozu man damit jemandem in einem Wikiartikel kommen soll. Das ist wirklich das uninteressanteste an Scala.
Ich hatte nicht vor eine Liste dieser Schwierigkeitsgrade zu machen, das wäre Unsinn.
Was hälst Du davon:
Wir könnten die Beispiele im Artikel in zwei Abschnitte einteilen. Einen für A1, also völlige Neueinsteiger und einen für A2/A3, worin Leute mehr entdecken können, die mit Scala schon experimentiert haben. Wer "richtig" einsteigen möchte kauft sich eh ein Buch, da kommt man nicht drum herum.
Ich muss leider sagen: Gar nichts. Da irgendwo willkürlich eine Komplexitätsgrenze zu sehen - das kann ich nicht nachvollziehen. Dass es einem Einsteiger didaktisch irgendwie hilft sehe ich auch nicht.
Na, ist ja nicht willkürlich. Die Diskussion läuft seit vielen Monaten, und es gibt die Einordnung schon.
Auch die Frage der IDE ist für Scala sehr wichtig. Das wäre auch einen Abschnitt wert. Man könnte auf IntelliJ/Scala verweisen und von Eclipse/Scala abraten.
Finde ich überhaupt nicht wichtig. Schreib einen Satz pro IDE vielleicht, aber vergiss dann nicht, dass viele Leute nur mit vi oder emacs arbeiten, und sich da eine Menge zurechtgestrickt haben, oder für gedit, (nano?) und dies und das, und das scala auch mit sbt genutzt wird, und interaktiv.
"viele" ganz sicher nicht. Im Fall von bash-Scripts würde ich Dir Recht geben, aber im Fall von ganzen Applikationen, die geschrieben werden wie z.B. die Entwicklung von Lift an sich oder Websites, die Lift verwenden - dafür wäre es völliger Unsinn direkt auf dem Server zu arbeiten. Das ist 1. völlig Fehleranfällig 2. die Softwaretests fehlen 3. dank rsync und ssh ist der Code so schnell auf dem Server hochgeladen, dass man nicht auf dem Server programmieren MUSS.
| print("Hallo ")
if(args.length > 0) {
args foreach printArgument
}
println
|
Wozu ist das if gut?
Falls keine Parameter übergeben werden. Braucht man in Scala keine Exception zu vermeiden?
Das ist ja einer der Witze an foreach/map: Dass sie kein Problem mit leeren Collections haben. Allerdings ist das ja auch bei Java seit 6 Jahren, mit der vereinfachten For-Loop so.
Hey, da hast Du echt Recht, habe ich mir nicht bewusst gemacht, dass es ja ein normales foreach ist. Auf jeden Fall: das if muss raus.
Vielleicht hast Du eine alte Scala-Version? Ich habe 2.8.1.final in Ubuntu 10.10 Was ist Deine Fehlermeldung?
Wie gesagt keine Fehlermeldung, aber Scala 2.8.0 und Ubuntu 9.10:
Also KEINE Fehlermeldung deutet auf einen bug hin - denn in 2.8.1 gibt es angeblich (http://www.scala-lang.org/node/43 ) keine Änderungen.
Allerdings kann ich's nicht prüfen - wenn ich das starte passiert gar nichts - es hängt, und mit Ctrl-C kann ich das ganze nur abbrechen.
Also wenn da mal kein bug ist 😉 Eine foreach-Schleife, die endlos läuft... Viele Grüße
Daniel
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
patchworker schrieb: Hallo user unknown,
Diese Variante gefällt mir also gut für ein Hello World, da gleich mehrere Dinge gezeigt werden, es aber trotzdem leicht lesbar ist. Die kryptischen L3-Dinge sind für Anfänger echt ein Hindernis.
Was sind denn kryptische L3-Dinge?
Na, ich habe etwas übertrieben, nun ich meine die komplexen Sprachfeatures, die Neugierige davon abhalten sich mit Scala zu beschäftigen.
Das ist aber eine gewagte Behauptung. Sprachfeatures sollten doch gerade Neugierige besonders reizen.
Das hab ich mir nicht ausgedacht, dass die Komplexität viele von Scala abschreckt.
Mach Dich frei davon. Ob viele Leute abgeschreckt wurden oder nicht, und ob es die Komplexität war - was juckt Dich das? Willst Du Scala gegen irgendwas durchdrücken? Wieso?
Es gibt da eine große Debatte, weshalb Martin Odersky diese Einteilung überhaupt gemacht hat. Sein Ziel war zu zeigen, dass man auch ohne die speziellen Features sehr weit kommt und alles programmieren kann, was man möchte. Er meint, dass man zum Schreiben von Bibliotheken aber das volle Spektrum drauf haben MUSS.
Ich weiß nicht was sein Ziel war, und kann mir die Einteilung mehrfach anschauen - nachvollziehen kann ich sie nicht. Wenn ich sie nicht nachvollziehen kann, dann kann ich es auch niemandem erklären. Wer bislang 10 Jahre Java programmiert hat, ohne ein einziges Mal einen Parser zu bauen, der wird vielleicht auch in Scala 10 Jahre ohen Parser auskommen - vielleicht wird er es aber auch so anregend finden, dass er Parser da einbaut, wo er unter Java nie drauf gekommen wäre. Ich fand closures schwieriger zu verstehen als Pattern-matching und traits, und fold ist m.E. auch nicht schwieriger. Alles auf einmal ist eine Menge Zeug, und irgendwo muss man ja anfangen, aber die Einteilung kann ich nicht erklären, und daher werde ich es auch nicht. Ich denke die Unterscheidungen sind nur tauglich um Schulungen mit Certified Lx anzubieten - dann kann man hinterher objektiv prüfen, ob x, y und z Thema der Schulung und Prüfung war - in Ermangelung anderer Maßstäbe ein Notbehelf, aber ich würde niemandem, dem ich auf einer Seite Linux zeigen will, mit Linuxzertifikaten kommen.
Bei Scala schaut es aber anders aus. Die Hoffnung in einem Wochenende die Features zu lernen und dann zu programmieren ist trügerisch.
Bei Java kamen dann wohl Enumerations, Annotations und Generics weit später häppchenweise dazu. Und Scala ist nochmal insgesamt weiter, und benutzt dabei weniger Schlüsselwörter und
ist damit stringenter. Aber wir kommen vom Thema ab.
Ach, Oderskys Library-Schwierigkeitsgrad L3? Ich weiß nicht wozu man damit jemandem in einem Wikiartikel kommen soll. Das ist wirklich das uninteressanteste an Scala.
Ich hatte nicht vor eine Liste dieser Schwierigkeitsgrade zu machen, das wäre Unsinn.
Was hältst Du davon:
Wir könnten die Beispiele im Artikel in zwei Abschnitte einteilen. Einen für A1, also völlige Neueinsteiger und einen für A2/A3, worin Leute mehr entdecken können, die mit Scala schon experimentiert haben. Wer "richtig" einsteigen möchte kauft sich eh ein Buch, da kommt man nicht drum herum.
Ich muss leider sagen: Gar nichts. Da irgendwo willkürlich eine Komplexitätsgrenze zu sehen - das kann ich nicht nachvollziehen. Dass es einem Einsteiger didaktisch irgendwie hilft sehe ich auch nicht.
Na, ist ja nicht willkürlich. Die Diskussion läuft seit vielen Monaten, und es gibt die Einordnung schon.
Was hat die Dauer der Diskussion mit der Willkür zu tun? Man kann einer willkürliche Entscheidung das willkürliche nehmen, in dem man lange genug darüber diskutiert? So ist es nicht. Du müsstest die Level irgendwo ableiten können - ein blödes Beispiel wäre: Sprachfeatures mit einem Parameter sind Level 1, solche mit zweien Level 2 - es ist völliger Humbug das Beispiel, aber wenn Du behauptest es sei nicht willkürlich, dann mußt Du die Gesetzmäßigkeit dahinter erklären, nicht ich. Die Dauer oder Größe der Debatte ist orthogonal zur Frage der Willkür.
Auch die Frage der IDE ist für Scala sehr wichtig. Das wäre auch einen Abschnitt wert. Man könnte auf IntelliJ/Scala verweisen und von Eclipse/Scala abraten.
Finde ich überhaupt nicht wichtig. Schreib einen Satz pro IDE vielleicht, aber vergiss dann nicht, dass viele Leute nur mit vi oder emacs arbeiten, und sich da eine Menge zurechtgestrickt haben, oder für gedit, (nano?) und dies und das, und das scala auch mit sbt genutzt wird, und interaktiv.
"viele" ganz sicher nicht.
Gut, da habe ich auch keinen Beleg, Du sagst nicht viele, ich sag viele - wer hat nun Recht? Hier ist eine nicht-repräsentative Umfrage: http://polldaddy.com/p/1272527/ Inhaltlich ist es so, dass die Integration hier Fortschritte macht, dann da. Dann kommt eine neue Scalaversion heraus, und es sieht wieder anders aus. Du müsstest ständig hinterher sein, um Deinen Überblick aktuell zu halten. Ich habe keinen Überblick, und kann daher keine Empfehlung geben. Ich würde dem jedenfalls keinen prominenten Platz einräumen.
Im Fall von bash-Scripts würde ich Dir Recht geben, aber im Fall von ganzen Applikationen, die geschrieben werden wie z.B. die Entwicklung von Lift an sich oder Websites, die Lift verwenden - dafür wäre es völliger Unsinn direkt auf dem Server zu arbeiten.
Moment - was hat das mit 'direkt auf dem Server arbeiten' zu tun, welchen Editor/welche IDE ich nutze?
Das ist 1. völlig Fehleranfällig 2. die Softwaretests fehlen
Oder Softwaretests?
3. dank rsync und ssh ist der Code so schnell auf dem Server hochgeladen, dass man nicht auf dem Server programmieren MUSS.
Wie kommst Du jetzt auf das Thema Server?
Vielleicht hast Du eine alte Scala-Version? Ich habe 2.8.1.final in Ubuntu 10.10 Was ist Deine Fehlermeldung?
Wie gesagt keine Fehlermeldung, aber Scala 2.8.0 und Ubuntu 9.10:
Also KEINE Fehlermeldung deutet auf einen bug hin - denn in 2.8.1 gibt es angeblich (http://www.scala-lang.org/node/43 ) keine Änderungen.
Allerdings kann ich's nicht prüfen - wenn ich das starte passiert gar nichts - es hängt, und mit Ctrl-C kann ich das ganze nur abbrechen.
Also wenn da mal kein bug ist 😉 Eine foreach-Schleife, die endlos läuft...
Die foreach-Schleife läuft nicht endlos, sonst würde es eine Ausgabe geben. Als kürzere Implementierung für das Beispiel mit "Hello" fällt mir noch ein:
| println (args.mkString ("Hello\n> ", "\n> ", "\n"))
|
Der Umbruch ist zwar nicht wie im Urcode, aber ich argumentiere, dass er so besser ist. Aber on topic:
Statt dröge Level zu thematisieren würde ich eher:
die Seite, auf der man Scala im Browser testen kann einbinden zwei Sätze zur Verwendung von Java in Scala und umgekehrt zufügen (Java.swing, andere APIs) Auf einen Java-Scala Umstieg verlinken Evtl. 2-3 Scalablogs verlinken
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, user unknown +1 Mal was grundsätzliches zu Programmiersprachen Artikeln hier im Wiki: Es ist IMHO so wie so illusorisch, hier eine Programmiersprache anhand von Codeschnippseln vorzustellen. Selbst wenn man es vergleichsweise ausführlich macht, stellt man vielleicht 2? 3? 5? % der Sprache dar, jedenfalls im Rahmen der hier im Wiki übliche Länge. Daher kann man es auch direkt sein lassen. Was viel wichtiger ist, ist: eine kurze Beschreibung der Sprache zu geben (z.B. woher? wofür?), Besonderheiten, ausführen, wie man Interpreter / Compiler installiert und nutzt, wo passend IDEs und weiter führende Links. Spricht: Den Leser "neugierig" machen und die Nutzung unter Ubuntu erklären. Für eine fundierte Einführung in die Sprache gibt es dann meistens fundierte Tutorials über 20 oder 50 oder ... Seiten. Die Seiten Perl und Python sind z.B. IMHO "gute" Seiten für die jeweilige Sprache, jedenfalls bezogen auf unser Wiki. Gruß, noisefloor
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
Ja, ja. Ein paar Zeilen, so für den Geschmack, sollte man schon hinschreiben. Woher steht schon da.
Wofür - alles außer für Low-level-Hardwaretreiber, sofern die keinen Javabytecode versteht. Nutzung unter Ubuntu, Installation, Werkzeuge - ist ja alles angerissen.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
Ich habe am Anfang was zu Java-Apis ergänzt, unten einen Link zu simplyscala.com und zu stackoverflow zugefügt, sowie die IDEs in ein Listenkorsett gezwängt.
|
patchworker
Anmeldungsdatum: 18. Dezember 2006
Beiträge: 190
Wohnort: Nürnberg, Franken
|
Hallo, heute habe ich wieder etwas Zeit für Scala. Kann man das so schreiben:
(soll nur ein sehr knapper Absatz werden, möglichst unkompliziert. Hier meine Quelle: http://bit.ly/8ERX8Q ) Glossar
Function / Methode: Bei Scala ist es normalerweise nicht wichtig zu wissen, ob etwas Funktion oder Methode ist. Manchmal macht es einen Unterschied, so wie z.B. in der Physik der Unterschied "Masse" zu "Gewicht", den die meisten schon kennen. Eine Scala-Methode ist, so wie in Java, ein Teil einer Klasse. Sie hat einen Namen, eine Signatur, evtl. Annotationen, etwas Bytecode. Eine Funktion dagegen ist ein komplettes Objekt. Ein Funktion-Objekt hat mehrere Methoden, eine davon heißt "apply", welche den Code der Funktion enthält. Kann man das so schreiben, oder ist da noch ein grober Fehler drin? Viele Grüße
Daniel
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17586
Wohnort: Berlin
|
Was ist denn das Ziel dieses Absatzes? 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? 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. Ich sehe keine Zielgruppe für den Absatz, auch wenn nichts direkt falsches drin steht. 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. OT: Solche bit.ly-Links sind nicht sonderlich erwünscht, da man nicht sieht wo sie hinführen - was zugegeben nur ein kleines Manko ist, aber die Syntax bietet die Möglichkeit 3 Fliegen mit einem Holz zu schlagen: kurz und aussagekräftig und der User sieht in der Statuszeile was verlinkt ist - mcBeath-Blog: Einfach Link reinkopieren, markieren, Weltkugelbutton klicken, am Ende vor die schließende Klammer ein BLANK + erläuternden Text einfügen, letzterer wird angezeigt.
|