Fork me on GitHub
#clojure-germany
<
2020-09-11
>
Norman Eckstein07:09:40

Nur 196 ppl aus Deutschland? Ist hier jemand aus BaWue ?

3
ordnungswidrig07:09:03

Ich sitz an der Grenze zu BaWue (Neu-Ulm) lol

👍 3
Norman Eckstein07:09:06

Bin Angestellter habe aber seit vielen Jahren eine eigene one-man Show zusätzlich.

Norman Eckstein07:09:56

Ich und ein Freund wollen ein side project starten nebenbei und wir suchen eventuell noch jemand der/die sich auch etwas zusätzlich aufbauen möchte.

Norman Eckstein08:09:52

Passive income Plattform, nicht direkt ein Markt umwerfendes StartUp

👍 3
javahippie08:09:03

Freiburg, hier 😉

👍 3
javahippie08:09:54

Also wir können gerne mal über das Thema Gründung usw quatschen, aber momentan bin ich voll mit meinen eigenen Sachen beschäftigt, da brauche ich den Fokus

👍 3
Norman Eckstein08:09:12

Ok ! 👌:skin-tone-2:

Norman Eckstein08:09:08

Ärgerlich dass ich erst so spät zu Clojure gefunden habe....

Norman Eckstein08:09:07

Jetzt will ich alles in Clojure entwickeln aber bin noch nicht so weit wie ich gerne wäre.

javahippie08:09:07

Wie lange entwickelst du schon mit Clojure?

spfeiffer08:09:17

Ich glaube, viele kommen erst frustriert bei Clojure an, nachdem sie Java „durchgespielt“ haben.

synthomat08:09:18

naja so frustrierend ist modernes java ja nicht mehr

javahippie08:09:19

Das kommt drauf an, was man machen muss 😉

javahippie08:09:11

Ich finde Java als Sprache nicht frustrierend, nur die gängigen Frameworks und patterns

ordnungswidrig09:09:15

Ich finde alles ohne S-EXP inzwischen frustrierend. Aber vielleicht benutzer ich zuviel Emacs und smartparens. 😛

spfeiffer09:09:51

Mutable state als Default ist frustrierend. Finde ich zumindest. Ich rede nicht von Sprnchfeatures oder syntactic sugar. Ich rede von OOP, Typing, …

spfeiffer09:09:48

Rich Hickey sagte doch selbst mal in einem seiner Talks, nach X Jahren Java hätte Clojure ihm die Freude an Softwareentwicklung zurück gegeben.

spfeiffer09:09:39

Ich denke da ähnlich 😉. Ich mache Java weiterhin für Lohn und Brot, und es ist auch OK. Aber „Fun“? Nö.

spfeiffer09:09:51

Aber das mögen Andere anders sehen 😉

javahippie09:09:44

Wir haben uns tatsächlich für unser “Startup” aus zwei Gründen für Clojure entschieden: 1. “Spaß“, 2. “Produktivität”. Ich bin da ganz bei David Heinemeier Hansson, erst mal sollte eine Sprache auch motivieren, mit ihr arbeiten zu wollen, und da sind es 100 Punkte. Die Produktivität merken wir momentan enorm, wir denken stark über unsere Probleme nach, und wie wir sie lösen, weniger über das drumherum

javahippie09:09:07

Auf meinem aktuellen Projekt benutze ich Spring, und ich denke eigentlich meistens über Spring nach 😄

synthomat10:09:21

das einzige, was mich an der JVM nervt ist, dass es ewig dauert, eine applikation hochzufahren

spfeiffer10:09:14

Das nervt mich z.B. überhaupt nicht, weil man das superselten tut.

synthomat10:09:17

du meinst clojure wegen der repl, oder?

spfeiffer15:09:58

Auch, aber nicht nur. Auch in Java. Wie oft muss ich meine Applikation hochfahren Eher selten, oder?

spfeiffer15:09:18

Im Entwicklungszyklus macht „App hochfahren“ doch nur den kleinsten Teil aus, denke ich. Lohnt sich Optimierung da?

spfeiffer15:09:19

Ich lese, verstehe und schreibe Code und Tests deutlich mehr als ich die Applikation starte.

ordnungswidrig10:09:21

@synthomat das ist eher leider eher ein problem mit clojure als mit java.

ordnungswidrig10:09:28

Moderne JVM sind ja superschnell.

ordnungswidrig10:09:45

Aber die ganzen namespaces in clojure zu laden dauert prinzipbedingt.

synthomat10:09:52

ne ich meinte nicht explizit clojure; bei uns dauert es teilweise eine minute, bis eine spring-anwendung hochfährt

synthomat10:09:01

ist vielleicht auch nicht ganz der JVM geschuldet sondern Spring

synthomat10:09:37

warum dauert’s in clojure eigentlich so lang, die namespaces zu laden? Hab hier bisher nur hobbyprojekte in clj gebaut, da ist die startup time noch in ordnung

ordnungswidrig10:09:26

Nun, clojure ist sehr dynamisch zur runtime. Deswegen muß alles beim (require 'xyz) “verdrahtet” werden. so hab ich er verstanden.

ordnungswidrig10:09:03

Also es werden sehr sehr viele class initializers und contructors aufgerufen und darauf sind die VMs wohl nicht so gut optimiert.

ordnungswidrig10:09:36

Graalvm funktioniert für native code erzeugung ganz ok, aber bei größeren Projekten kann es mal 6h(!) dauern bis das compiliert ist. 😱

javahippie10:09:41

Das ist tatsächlich die Schuld von Spring, dem Container oder der Applikation 😉 Eine Spring Boot Applikation fährt nackt in 2-3 Sekunden hoch. Eventuell hilft euch Class Data Sharing? Hab das die Woche für mich entdeckt.

RAMart11:09:10

> naja so frustrierend ist modernes java ja nicht mehr Wir bilden seit 20 Jahren aus. Modernes Java (und auch modernes C#) sind trotzdem frustrierend, denn 1. Hoch- und vor allem Berufsschulen lehren eher... sagen wir mal: die klassischen Varianten. Die Unterlagen werden einfach nicht modernisiert. Da müssen wir uns der Realität stellen. 2. Alle Nachwuchsprogrammierer müssen noch beides lernen, denn sie werden mit beidem konfrontiert werden. 3. Trifft modernes Java / C# auf klassisches, knirscht es. Paradigmen und Schnittstellen sind nunmal nicht kompatibel. Bedeutet mehr Glue-Code. 4. Punkt 3 sorgt dafür, dass Java / C# weiterhin keine guten Sprachen für Agile SE sind, weil früh getroffene Entscheidungen später unnötig hohe Strafen mit sich bringen.

👏 3
👍 3
synthomat11:09:10

was bedeutet hier “klassisch”?

RAMart11:09:15

Was bedeutet "alt"? 😂 Mit "klassisch" wollte ich alles vor Streams und Lambda benennen, in C# vor LINQ und IEnumerable. Als Beispiel. Klassisch bedeutet für mich auch for (...) statt Iteratoren.

synthomat11:09:23

na hier, java 1.5 oder so 😄

RAMart11:09:46

Ja, ich denke, da kann man sich drauf einigen. Generics kamen mit 1.5? Oder war's 1.7? :thinking_face:

synthomat11:09:43

1.5 sagt wikipedia und das war 2004

RAMart11:09:34

Jo. Passt. Wenn wir suchen, finden wir bestimmt noch genug verbreitete und weiterhin in Nutzung befindliche Bibliotheken, die noch mit Object + Cast Pattern an Stelle von Generics arbeiten.

beders18:09:23

was Ladezeiten angeht: Eine größere nicht aot-kompilierte Clojure-Anwendung kann auch ganz schön lange brauchen zum Hochfahren (> 10s). Aber netterweise fahre ich dir nur alle paar Tage mal hoch, daher ist Startup-Performance nicht wirklich entscheidend.