Fork me on GitHub
#clojure-uk
<
2019-12-18
>
dharrigan06:12:11

The fact that this can be done, ignoring the security or otherwise around it, is still pretty fantastic

dharrigan06:12:30

btw, morning y'all!

seancorfield06:12:28

I think the real "secret sauce" with Clojure is that you run your application in your REPL, "in" your editor, as you develop it, building it up, live, piece-by-piece. That's not something you can do with any other language I think.

Jcaw14:12:14

Doing this in elisp is what initially sold me on clojure. Really nice way to develop.

seancorfield06:12:04

And that live manipulation of your system extends beyond development into testing, deployment, production running, etc.

seancorfield06:12:44

My Atom/Chlorine/REBL setup for work uses the add-lib branch of t.d.a. so I can add new dependencies on-the-fly as well as working with all of the code (and libraries) I already have on hand. I've added a "Rich Comment Form" to next.jdbc's test code so I can bring in all the test deps from that into my main working REPL to run all of the tests there in the same context as I develop and test all our code at work (since we only use MySQL but I need to be able to test next.jdbc against lots of databases including (embedded) PostgreSQL and SQL Server etc).

Samuel08:12:54

Morning morning

Samuel08:12:27

@seancorfield The REPL as a first-class citizen is definitely recognized across the significant majority of lisps -- Clojure's placement in the browser and on the JVM are definitely the clincher in terms of building a great workflow in environments that are frankly awful by default. It's a real struggle having to switch back to the change -> build -> link -> attach debugger -> flounder around -> unlink -> detach -> repeat way of living found in other prominent languages

thomas08:12:03

Re rapid deployment, there was something on HN a few weeks/months ago where the editor/language/runtime were all integrated as well and deployment took 50ms according to the team.

mccraigmccraig09:12:54

dark looks pretty cool - and i'd be interested to see what sort of combinatorial difficulties emerge from using feature flags on such a scale

mccraigmccraig09:12:21

although that article does enumerate all the automated detail of a git/ci/k8s process while skipping over all of the automated detail of dark, so it's quite apples-vs-oranges

mccraigmccraig09:12:13

50ms from commit to deploy is certainly quick though

dharrigan09:12:55

That is pretty darn fast

mccraigmccraig09:12:35

i've heard of the "typed hole" editor concept a few times... it seems awesome - a typed functional lisp with hole-based editing would be dreamy

dharrigan09:12:10

what's hole-based editing?

Conor09:12:14

I will refrain from making any jokes about holes

Conor09:12:20

Idris is the place I saw the concept first

Conor09:12:26

It works really well, actually

jiriknesl10:12:01

@dharrigan hole-based editing is an approach where you replace expression in code and replace it with some placeholder (like _) and system infers expected type of the expression and provide candidates (from existing functions) that fulfill this shape.

jiriknesl10:12:16

The more restrictive is the type system, the more you can infer. Obviously, if you have a function shape Object -> Object -> Object, it is useless. In languages like Agda, Idris, it can be extremely powerful.

rickmoynihan22:12:15

There are other approaches to this too that don’t rely on type inference. https://github.com/webyrd/Barliman An interesting one is guiding the hole synthesis with a combination of specification methods; i.e. using a combination of tests, types and specifications… essentially anything you can muster to help reduce the space.

Jcaw15:12:16

That's really cool.

rickmoynihan15:12:47

Yeah it really is

Ben Hammond10:12:30

programming by autocorrect

mccraigmccraig10:12:24

it's like paredit turned up to 11 - paredit makes it much harder to create syntactically incorrect expressions, hole-based editing stops you doing anything the compiler is going to reject anyway

thomas10:12:28

interesting name....

thomas10:12:15

But what stops Clojure from being a language/deployment platform with 50ms (or there abouts) deployment time.

thomas10:12:35

My gut feeling says it should be possible. But not sure how exactly it would work. As you want to have everything stored in a repo as well I suspect

dominicm11:12:10

You just push the code and run tns refresh

8
cddr13:12:48

> My gut feeling says it should be possible. But not sure how exactly it would work. As you want to have everything stored in a repo as well I suspect When changes are first class, you can derive the repo at any point in time by simply replaying all the changes.

thomas13:12:41

interesting thought...

Ben Hammond13:12:23

why is the Royal College of Nursing being described as a union?

Ben Hammond13:12:39

I thought it was a prosessional oversight body

Ben Hammond13:12:48

sortof like the British Computing Society

Ben Hammond13:12:41

I thought Unison had got itself the monopoly on Unionising

Ben Hammond13:12:48

when it replaced COHSE and NUPE

mccraigmccraig14:12:28

it seems to describe itself as a union as well as a professional body: https://www.rcn.org.uk/about-us/what-the-rcn-does

mccraigmccraig14:12:48

it's like the militant wing of the BCS

dharrigan20:12:06

Anyone using kinsky (kafka library?)