Fork me on GitHub
#off-topic
<
2019-09-21
>
David Pham12:09:33

Many criticism of golang in the repository could be applied to Clojure.

emil0r15:09:25

Which ones qualify?

David Pham20:09:22

For example, the IDE critics.

David Pham20:09:27

The lack of object

seancorfield20:09:02

You can't really complain that a functional language doesn't have objects...

seancorfield20:09:11

...and Clojure does have OOP.

seancorfield20:09:03

(it has both a la carte polymorphism and can create and manipulate objects around the host platform's model)

David Pham20:09:37

I agree. (I actually just playing the devil’s advocate).

seancorfield20:09:42

I haven't read the IDE critiques there so I won't try to justify Clojure is better there 🙂

David Pham20:09:43

Haha, I am actually happy you can get around Clojure with just powerful text editor.

gklijs20:09:12

I guess you could say Clojure is stick in the 50's for using lisp, like some people say go is stuck in the 70's. But it's seems like a strange argument, how can having a familiar syntax be a bad thing?

David Pham20:09:36

As much as Lisp can be familiar haha

David Pham20:09:34

I hopefully did not have to unlearn much when I learned Clojure, but I can understand that some connection are hard to make once you wrote thousands of lines in a C{whatever} language

seancorfield20:09:49

Go is stuck in the 70's in terms of language design mainly, not syntax.

David Pham20:09:33

Where/when do you set Clojure then?

seancorfield20:09:42

Clojure is an interesting mix of some very old ideas with some very new ideas.

David Pham20:09:09

And what would be your criticism about Clojure?

seancorfield20:09:16

...after all, the language itself is so tiny.

seancorfield20:09:27

I think there are things to criticize in core: I think some stuff that was added early on didn't get the level of thought that stuff does these days (the ns macro is the obvious thing there).

seancorfield20:09:09

I've come to think keyword arguments (named arguments) were a mistake.

David Pham21:09:09

Like in spec?

seancorfield21:09:57

Not sure what you mean?

seancorfield21:09:26

I'm talking about the language, not a library.

emil0r08:09:51

I think the critique of IDEs is a double edged sword. If your language is so heavy in complexity that an IDE is required to do work in it, you might want to consider the virtues of said language

emil0r08:09:12

Then there is a sweet spot in between

gklijs16:09:32

I don't really now what would work better in a presentation, just call it a micro service, and then try to explain what I mean by it, or name it hamster service and explain what I mean by that. There is so much hype and different views on what a real micro service is I rather not use it.

✔️ 4
kulminaator17:09:19

it indeed can vary quite a bit

kulminaator17:09:35

and often people don't need any of that flexibility either

kulminaator17:09:51

so they just end up in some kubernetes-docker-pod hell where a neat monolith would have done fine

😱 4
gklijs18:09:45

Yes, I'm not sure if creating a new service for every bit chunk of additional functionality is a good thing. It's more and more of a puzzle to get the data you'll need. Also for my talk the most important thing is that source of truth are events, and it doesn't really matter who created them.

kulminaator19:09:40

if your over all service eventually will be a big thing (say built by 20 developers for a decade) and you can already guess that different parts of it have different scaling needs in the future (or very different deployment cycles) ...

kulminaator19:09:01

then we already have something to discuss for slicing and hacking ...

kulminaator19:09:17

but by what i have seen too often ... people are killing a fly with a sledgehammer

kulminaator20:09:50

i do like docker for doing stuff like tests with a temporary database ... there it shines 🙂

kulminaator20:09:16

but then again i dread for how many outdated applications already run out there in the internets in forgotten docker containers that have not seen any security patches for a while

gklijs20:09:16

If you use the same base images, and keeps those updated, it's much easier then a monolith running directly on a vm.

kulminaator20:09:45

yes but that's the thing, how many people actually care enough ?

kulminaator20:09:36

and at some point bumping base images will start to break stuff for people and they get all moody about keeping up to date.

kulminaator20:09:37

at least in vm's (some of the) linux distros try to sneak some security patches up for you even if you didn't ask for it ... (quite a trouble to disable all of those in ubuntu for example)

gklijs20:09:14

Yes, it's mainly about trade-offs, but like you said, many times people just do micro services because it's in fashion, and haven't done proper research whether for them it would solve more problems than it creates.

👏 8
borkdude20:09:13

if anyone's bored and feels like giving this a go, please do! https://github.com/borkdude/clj-kondo/blob/master/doc/types.md

borkdude20:09:44

The easiest way to try this out may be the uberjar: https://5965-176829714-gh.circle-artifacts.com/0/release/clj-kondo-2019.08.22-alpha-SNAPSHOT-standalone.jar Run it with java -jar ... --lint ...