Krautkanal.com

Veröffentlicht am 2015-03-05 12:42:31 in /prog/

/prog/ 6739: Scala-Web-Framework

bagawarman Avatar
bagawarman:#6739

Hallo Bernd,
aus $Gründen möchte, oder eher muss, ich mit Scala arbeiten, was mir doch sogar so halbwegs gefefelt. Mein Vorhaben ist das Ausliefern einer dynamischen Webseite und diesbezüglich würde ich hier gerne nach persönlichen Empfehlungen fragen - so von Bernd zu Bernd eben :3

Nach etwas Internetrecherche fand ich auch eine große Menge an Frameworks, welche eigentlich auch alle hier https://stackoverflow.com/questions/1488412/what-scala-web-frameworks-are-available aufgelistet wurden. Da ich es gerne im KISS-Stil habe und ungern erst 200 Seiten durcharbeiten möchte, habe ich die Frameworks, welche einfach pervers überladen aussahen, ausgeblendet. Aktuell lese ich die Dokumentationen von Scalatra, Unfiltered und Finatra durch, wobei ich aktuell mit Finatra liebäugle.
Mag mir ein Bernd mit Erfahrungen in der Webentwicklung in Scala, oder zumindest einer andern JVM-Sprache, hier vielleicht exquisites Innenseiterwissen vermitteln?

tereshenkov Avatar
tereshenkov:#6740

Habe nun etwas in Scalatra gespielt und in ca. 70 Zeilen einen minimalen Blog gekotet, der Fefe in jeder Hinsicht übertrifft.

Jedoch bin ich mir nicht sicher, ob dies Spaß macht oder ich mir rostige Nägel in die Augen rammen möchte ;3

pjnes Avatar
pjnes:#6741

>>6740

Ich bin bestimmt kein Scala Lüfter, aber liegt es vielleicht nicht viel eher daran, dass Netzentwicklung einfach scheise ist?

Auch:
>einen minimalen Blog gekotet, der Fefe in jeder Hinsicht übertrifft.

Kann dein Blog auch 100k Nachfragen pro Sekunde auf einer alten Möhre verarbeiten?

doronmalki Avatar
doronmalki:#6742

>>6741
Ja, Webentwicklung lutscht, aber leider muss es manchmal notwendig sein.

Ach Felix, sei doch nicht so mett :3
Dafür benötigt der Server so ca. 5 Sekunden zum Starten. Dies sind die eindeutigen Vorteile der JVM-Welt..

pjnes Avatar
pjnes:#6743

>>6742
>Dafür benötigt der Server so ca. 5 Sekunden zum Starten. Dies sind die eindeutigen Vorteile der JVM-Welt..
Nicht sicher ob Troll.

nasirwd Avatar
nasirwd:#6748

Hab mal nen Webserver in bash gehackt. Skalierte nicht so richtig, hat mir aber Freude bereitet.

darcystonge Avatar
darcystonge:#6751

>>6748
Hier ebenso :3
Mithilfe der Netzkatze und Bash, jedoch ist das so eine Wackelpackung.
Wie hast du das Protokoll gehandelt?

kazukichi_0914 Avatar
kazukichi_0914:#6752

Ich bin nun ebenso beim Erlernen dieser Sprache.. warum produziert Scala so einen verdammt unleserlichen Code und warum zerstört dieses grausame sbt noch einmal alles? Falls Java AIDS lieferte, so brachte uns Scala spätestens mit sbt den totalen Krebs.
All mein Hass!

vj_demien Avatar
vj_demien:#6758

>>6752
Sekundiert. Auch zerfickte Scala Bernds Eclipse und IntelliJ, kryptische Fehlermeldungen machten das Kompilieren zur Hölle und Futures und asynchrone Funktionen sträubten sich dagegen, benutzt zu werden.

t. Bernd der jetzt bei Node.js ist und mit Callbacks sehr zufrieden ist

aleclarsoniv Avatar
aleclarsoniv:#6759

>>6758
Dann sind die Gerüchte wahr?

Nicht, dass ich einem von euch Faggotspielern traue, aber auf jeden Fall werde ich "längere Evaluationsphase" vor Scala notieren.

anhskohbo Avatar
anhskohbo:#6761

>>6759
Verstehe das nicht falsch, Scala zu programmieren macht für kleinere Sachen schon ziemlich Spaß. Die Objektstruktur ist nicht so forciert wie in Java, du hast parallel dazu das Funktionale und kannst somit auch anonyme Funktionen schreiben. Dazu hast du noch vernünftiges Pattern Matching, wonach dir jedes if oder switch einfach lächerlich vorkommt.
In gewisser Weise hat es Parallelen zu Python, nur ohne Whitespacehölle.

Jedoch ist da dieser Sprung von kleinen Progrämmchen, die du dir gerade auf die Schnelle schreibst zu mächtigerem Kot, wo Scala plötzlich suckiert. Alle fertigen Libs haben teils komische Abhängigkeiten, die durch sbt nur noch verkompliziert wurden. Die Interaktion von sbt und deiner IDE macht eventuell alles noch viel schlimmer, sodass du dein Projekt aus der IDE nur über Umwege kompilieren kannst - starten evtl. gar nicht.

Ich weiß einfach nicht so richtig, wo sich diese Sprache stark durchsetzen soll? Java ist zwar im Kleinen urhässlich, aber für größere Projekte doch zu verwenden.

Studentenkrebs: Unser Prof. wedelt sich regelrecht einen auf Scala ab, jedoch scheint er auch ein vollständiger Theoretiker zu sein, der nie meer als akademische Jerkprogrämmchen erkotet hat.

peterlandt Avatar
peterlandt:#6767

>>6761
Also im Grunde wird es hauptsächlich durch die Implementierung versaut... ?

joshhemsley Avatar
joshhemsley:#6775

>>6767
>>6758 hier. Kann man so sagen.

Scala ist eine Sprache mit tollen Features. Allerdings führt die Funktionsfülle zu sehr unleserlichem Code, wenn man von Java kommt. Zudem hat das bei mir zu einer extrem hohen CPU-Auslastung in meinen IDEs geführt, wenn ich Code-Vervollständigung an hatte.

Zum Rumbasteln, Lernen von funktionalen Konzepten oder schreiben einfacher Konsolenanwendungen macht Scala richtig Spaß. Bei großen Projekt mit einigen Libraries und schweren Frameworks ist es einfach unbeschreiblich langsam und, wie >>6761 schon erwähnte, es kommt einem das Build-Tool in den Weg. Ich kann mir vorstellen, dass man mit Scala gut große Projekte schreiben kann, wenn man die Sprache beherrscht (das LinkedIn-Backend soll wohl mit Play! arbeiten). Die Syntax- und Pragdigmen-Unterschiede zu Java sind aber viel zu groß, als dass man da innerhalb einer Woche durchblicken würde.

Da ich meine Web-Anwendung auf der Arbeit geschrieben habe, hatte ich nicht viel Zeit, noch weiter rumzuspielen und bin dann zu Node.js gewechselt. Zugegeben: Damit kann jeder Idiot arbeiten. Wenn man Zeit in Testen und Debugging steckt, funktioniert es aber. Scala ist um ein Vielfaches berechenbarer, aber dafür ist die Einstiegshürde unverhältnismäßig viel größer. Ich hatte mit dem Buch "Scala for the Impatient" angefangen, aber dann mit dem Wechsel auf JavaScript wieder liegen gelassen. Möchte sich jemand mit Scala beschäftigen, wäre das als Lektüre allerdings weiterhin meine erste Wahl.