other-languages

here be heresies and things we have to use for work
borkdude 2016-05-23T08:20:50.000888Z

yes, @seancorfield thanks!

martintrojer 2016-05-23T12:09:11.000890Z

multithreaded compilers are a good thing

borkdude 2016-05-23T12:10:36.000891Z

I guess my laptop has a fan for a reason

martintrojer 2016-05-23T13:48:10.000892Z

I couldn't possibly be any more tired of NPE

martintrojer 2016-05-23T13:48:52.000893Z

FFS, hunk of junk languages (╯°□°)╯︵ ┻━┻

sveri 2016-05-23T14:05:20.000895Z

In the last weeks I found out that there is something thats worse than java

sveri 2016-05-23T14:05:29.000896Z

Its eclipse plugin development with java

sveri 2016-05-23T14:05:51.000897Z

how could anyone ever have thought their architecture is a good idea -.-

martintrojer 2016-05-23T14:07:46.000898Z

life it too short to go anywhere near any language with nulls.

sveri 2016-05-23T14:08:14.000899Z

So many CNF Exceptions, runtime errors and after you fixed one, you have to go, install, update, whatever, built a p2 repo, dance a magic dance and pray, just to see the next runtime error

sveri 2016-05-23T14:10:27.000900Z

I mean, it is possible to handle NULLs sensibly, even in Java, but, how many programmers do know how? And how many then even go and do it?

martintrojer 2016-05-23T14:11:46.000901Z

" it is possible to handle NULLs sensibly"

martintrojer 2016-05-23T14:11:59.000902Z

The only sane say is banish them into the type system

borkdude 2016-05-23T14:14:29.000903Z

http://twitter.com/cognitect/status/734748037872943104

sveri 2016-05-23T14:17:22.000905Z

@martintrojer: I am talking of the NULL object pattern: http://www.tutorialspoint.com/design_pattern/null_object_pattern.htm

sveri 2016-05-23T14:19:11.000907Z

spec looks awesome

martintrojer 2016-05-23T14:36:16.000908Z

this is probably as far as you can take runtime contracts

arrdem 2016-05-23T20:36:19.000909Z

null punning is nice until you realize that 1) it's impossible to distinguish between sources of null and generate the "right thing" and 2) you have things that aren't monoids/groups and don't have a "right thing" to start with....

arrdem 2016-05-23T20:36:25.000910Z

well now we have spec

arrdem 2016-05-23T20:36:29.000911Z

so this'll be interesting

arrdem 2016-05-23T20:36:51.000912Z

I stand by my "propositions as types" rant above wrt spec and remain skeptical but it's better than the previous status quo

martintrojer 2016-05-23T20:54:46.000913Z

Yeah. We have a Hickey approved schema spec now

martintrojer 2016-05-23T20:55:06.000914Z

If it takes on in libraries the world will be better

martintrojer 2016-05-23T20:55:23.000915Z

all the hard problem with nulls and refactoring remain however

martintrojer 2016-05-23T20:55:50.000916Z

This is still runtime contracts

martintrojer 2016-05-23T20:56:09.000917Z

It's important, but need to be paired with type checking ala typed racket

martintrojer 2016-05-23T20:56:23.000918Z

Maybe we'll get there at some point

martintrojer 2016-05-23T20:57:21.000920Z

(Hickeys anti type rant in the spec blog / about doesn't fill me with hope though)

borkdude 2016-05-23T21:09:01.000922Z

I listened to the podcast with @mtnygard on software engineering radio. He explains it's a trade off. Flexibility (and fragility for that matter), REPL etc vs. type system. I think we'll never get the full benefits of both in one language.

borkdude 2016-05-23T21:11:05.000924Z

One could say that writing tests is better than a REPL session, because then it's at least reproducible. But practice matters. I'm writing Scala now and I'm distracted a lot of times, because the compiler gets me out of the loop. With Clojure I had focused days of development.

borkdude 2016-05-23T21:12:49.000926Z

Or maybe there will be a better alternative. The language has to be so fast/lightweight that it comes close to the REPL experience.

borkdude 2016-05-23T21:13:30.000927Z

Yeah yeah, eventually the JVM startup time and compiler overhead will not matter, but we're far from there.

seancorfield 2016-05-23T22:47:45.000930Z

With clojure.spec baked in, even contrib libraries can take advantage of it (the "rule" is no contrib library can depend on anything beyond core + contrib).

seancorfield 2016-05-23T22:48:23.000931Z

I’d certainly consider writing specs for java.jdbc (as a separate, requireable namespace).

seancorfield 2016-05-23T22:48:56.000932Z

It’ll be interesting to see how much "typed Clojure" we see on top of clojure.spec...

arrdem 2016-05-23T22:49:04.000933Z

There's an interesting conversation on twitter rn about clojure.spec depending on clojure.test.check.

arrdem 2016-05-23T22:49:57.000937Z

One concern with clojure.spec is that it doesn't support parameterized types specs as far as I can tell.

arrdem 2016-05-23T22:50:13.000938Z

You can talk about returning a seq, but hard to say a seq of what.

arrdem 2016-05-23T22:51:06.000939Z

The implementation of clojure.spec.gen is pretty janky in terms of trying to look up clojure.test.check vars without actually requiring the clojure.test.check namespace.

arrdem 2016-05-23T22:51:34.000940Z

anyway back to apartment hunting...

seancorfield 2016-05-23T23:07:36.000941Z

(s/+ integer?) for a seq of integers?

seancorfield 2016-05-23T23:07:53.000942Z

(or am I misunderstanding you @arrdem ?)

arrdem 2016-05-23T23:09:59.000943Z

@seancorfield: that would seem to work from my not having used spec yet 😛

seancorfield 2016-05-23T23:11:26.000944Z

I’ve been playing with it on and off all day. Can’t wait for the 1.9.0 Alpha 1 build so we can actually use it officially at work!