This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-11-08
Channels
- # aws (3)
- # bangalore-clj (1)
- # beginners (47)
- # boot (137)
- # cider (1)
- # cljs-dev (67)
- # cljsrn (7)
- # clojure (122)
- # clojure-argentina (5)
- # clojure-berlin (4)
- # clojure-czech (12)
- # clojure-france (27)
- # clojure-italy (9)
- # clojure-russia (88)
- # clojure-spec (44)
- # clojure-uk (157)
- # clojurebridge (2)
- # clojurescript (236)
- # datomic (5)
- # devcards (3)
- # dirac (23)
- # emacs (13)
- # hoplon (29)
- # incanter (1)
- # leiningen (41)
- # microservices (1)
- # off-topic (78)
- # om (145)
- # onyx (13)
- # parinfer (8)
- # pedestal (4)
- # planck (15)
- # protorepl (1)
- # re-frame (72)
- # reagent (25)
- # ring (2)
- # specter (23)
- # test-check (9)
- # untangled (106)
- # vim (8)
- # yada (1)
Aye up
Google cards found this blog for me this morning: https://blog.appcanary.com/2016/missing-clojure.html Makes interesting reading, more for what it doesn't say than what it does. I really, really want to hear the Ruby Conf talk now as, much as I love clj/cljs I recognise it's faults and I want to understand what makes ppl move away from it. Apart from types... @martintrojer
yeah, doesn’t say why they left.
like I stated before, I grew out of it. Types makes me a better, faster, more productive developer. Simple as that.
‘Types’ <> ‘Java types'
@martintrojer yeah, I see your point. I don't think Clojure will ever get types a la Hindley-Milner because of the JVM eco-system. I'm not sure you can reconcile H-M types and class files as implemented in JVM?
Frege is a good attempt
Only briefly seen Frege...at a Java conf if you can believe it.
yeah, it comes a bunch of other problems 😞
Given that types definitely bring something to the party, the majority of the issues in codebases I've seen throughout my career would not be solved by HM typing (or any other kind). They're much more fundemental and caused by lack of (human) communication, lack of developer discipline, etc.
These issues are 'low hanging fruit' and can be tackled to a greater or lesser degree in any language. Although some are better suited than others.
ie the culture of your team has more influence on the outcome of a project compared to technical factors.
@martintrojer Given your re-write of the UI in Elm I suspect you would have seen major improvements in the codebase regardless of what lang you used...simply because you were, consciously or subconsciously applying the lessons learned from the first attempt. Not to disregard the advantages of Elm but I suspect the larger gains would have been driven by this experience of having 'done it before'.
and as @agile_geek says... some languages are better suited than others.
no doubt
@thomas absolutely! That's why, once I had full control over recruitment practices in my previous role as CTO, I abandoned experience and acronym filters for 'cultural fit' and 'aptitude' based on pairing with people during selection
Still, back to my initial point, would love to know why Appcanary abandoned Clojure for Ruby....but it's telling that the company was initially a Ruby shop.
I once read a story about Airbus where they build the fly-by-wire system in 3 different languages, just to make sure that any bugs in the system would be in different places and thus cancel each other out... (system took a vote I think). But during an investigation afterwards they found out that bugs where in the same area's of functionality, as those were the really hard bits... regardless of language.
@agile_geek that makes great sense IMHO. if I were a hiring manager that is what I would look for as well.
Some of the best developers I've ever worked with don't have degrees and had some 'life experience' prior to taking up development. They were good at communication and empathy for users.
domain knowledge is what its all about.
you have to understand what problem you are solving, that trumps all ‘mechanical’ code skills.
there are plenty of 10x devs that doesn’t know anything but how to write code.
they tend to do more damage than help
true... and yet I'd rather with a humble person than a bastard who happens to know it all perfectly.
Alan Kay brought this up at CodeMesh last week.
Our industry is jam packed with developers “who know nothing"
“Inverse vandalism” <— Creating something because you can.
We do that ALL. THE. TIME.
nobody admits their faults
I’ve heard somewhere that the hardest problem in computer science is trying to solve the problem you’re supposed to be solving, rather than a tangential but more interesting one.
The best type systems are for humans, not computers - so it seems logical that you could have a proper type system alongside the JVM’s in the same language
@martintrojer maybe that is my fault then...
@agile_geek you can have a decent type-system in a language which spits out java classfiles. clojure doesn't have a decent type-system because clojure wasn't designed with a decent type-system, and it's hard to retrofit one
@mccraigmccraig fair point. I have a follow on question (may even be slightly philosophical), given it would be hard...if not impossible(?) to retrofit one should we accept that the potential damage in trying is not worth the risk?
@agile_geek i don't see any harm in trying - runtime boundary type-checking such as spec and schema is useful, and programming in clojure would be worse without it
but (and i might be wrong, it's above my paygrade) such approaches are sticking plasters and a clojure designed with static types would probably be a quite different language
what dyu mean @thomas ?
so my understanding is that Clojure uses the JVM type system and it is dynamically typed... but the JVM type system is not a HM type system.
but is it possible to have a language that is still dynamically typed yet builds on top of a HM (like) type system. now maybe these two things are incompatibly with each other. but I don't know enough about this.
can anyone recommend a good starter template for a CLJS/reagent project that’ll need a small compojure api server component? I haven’t written a clojure app in ages!
“JVM Type System” I think you mean “Java type system"
most of the types only exists at compile-time
Scala, Frege etc does it differently
so its certainly possibly to have “Haskell types” on the JVM
If you are interested on gradually-typed Lisps there is one source of truth; Racket
Look there if you want to know what’s possible
All this contract stuff (Schema, spec) is carbon copied from there.
@glenjamin i used https://github.com/martinklepsch/tenzing to get started a while back - @martinklepsch will perhaps be able to tell you whether that is still a good option
that looks neat, I’m on the fence about forcing myself to brush up on my clojure vs just using all the modern JS stuff i normally do
@glenjamin I have used tenzing in the passed and it is really good... unless you also want to role your own compojure server with an API you write and want to use from your CLJS app. I found that a bit hard to retro fit.
I vote no to cljs @glenjamin
go straight for Elm/Purescript
The app involves doing client-side OAuth, Interacting with a Canvas, using map data and a bunch of other stuff that’ll be a pain in Elm
Tenzing is still good :)
You can retro fit a backend but it's not focused on that part
Purescript would be cool, but I’m more interested in a working app than learning a new lang for this project
@glenjamin given your wealth of experience in JS do you feel CLJS will be a better fit?
i think it’s a better system, they’re both decent choices for the app. Sharpening up my clojure would be a nice side-benefit
well done Prince Harry
talk about hitting above your weight.
now the Mail and its army of brexiteers have something else to hate.
(ex-olympian gay judges are safe for a day or two)
they will scare her away no doubt, who wants all that hate in their life?
will turn harry bitter and cynical. The circle of hate is complete.
> “shit-on-absolutely-everything-to-sell-copies-journalism"
reading the DM comment sections is like staring into the abyss.
worse than youtube comments (not saying little)
I think we have to close this internet-thing down, ‘they' turned it into a massive hate and stupidity chain reaction.
Its time for London to break out of whatever is left of the UK
The Republic of London sounds good to me
Currency; Euro.
Somebody proposed this. Fairly seriously too. Not sure if we're referencing it, or the idea is re-circulating.
in 1984 (the book that is) the UK was part if the same country (forgot its name) as the (former) US and it used $ I think.
re: earlier discussion, I’d go for empathy over domain knowledge any time. I’ve known far too many people who were great at their technical skills, but unable to accept when they made mistakes, or when their knowledge was out of date, or what their limitations were.
Looking from a more bird's-eye perspective, Uncle Bob’s https://www.youtube.com/watch?v=ecIWPzGEbFc raises interesting points about why we are where we are in terms of quality of programmers. (you might like him or not, but judge the content here).
He points out a specific point in time where women were kicked out from our industry (and why that might be the case is left to audience a bit). That contributes (IMHO) to the software engineers average quality today.
@reborg much as I dislike some of Uncle Bob's political views I think he may have a point there.
the problem ofc is that languages does matter.
there is research in this area and stuff are moving forward (a bit slowly but still)
I don’t agree the Uncle Bob’s ‘lets give up looking for something better and solve it with process’ mentality.
If we agree with that argument why aren’t we all still using Java1.1 ?
@martintrojer I agree with you… although I remember something along the lines of we are constantly re-inventing the wheel of languages when almost everthing important interesting was invented between the ‘50 and the ‘60
yeah - I think he’s over-reacting to people going a bit mad with polyglot programming. But languages are the tools of our trade, we should always be trying to use better tools
Sure, there is alot of wheel re-inventing going on. But as I said, there is research in this area and not everything that happens to new languages is rehashing papers from the 50s and 60s.
Haskell and Idris comes to mind.
@glenjamin they are indeed. and I think Phil Bagwell's (?) is early 2000's
Re Uncle Bob... I suspect he makes controversial statements to get a discussion going and hence I would add some nuance to the things he says.
one talk I saw was very black/white, which isn't true in my experience. most things are just a shade of grey. (even white and black are)
that's awesome
The colour of my highest number of github contributions this month #1e6823
doesnt the colour of dead beef usually depend on how its cooked?
in other news: quite a bit a elm bashing is going on the internets today (this https://medium.com/@boxed/a-small-dive-into-and-rejection-of-elm-8217fd5da235#.gm35kfk1b and this http://reasonablypolymorphic.com/blog/elm-is-wrong )
Interesting. I had a play wit Elm at the weekend to knock up a prototype for work and quite enjoyed it.
he starts with “there’s no typeclasses” and spends ages in a rabbithole trying to make typeclasses
inability to enumerate enum types is valid though afaik, I think @krisajenkins has a trick for that?
@glenjamin Sadly, no. But if we’re talking about the same thing, I don’t think Haskell is particularly great for that either...
> It’s such a shame that Elm is so terrible from a PL standpoint. This is desperately wrong. This man needs to be sent to the JavaScript mines for a month or two to straighten him out.
Hmm…smallcheck must have a way of doing it (in Haskell). I should look that up. :thinking_face:
hang on, why does he need a bijection? Should have kept the enum value and closed over it for the event handler
looks like you can do it in haskell by deriving from Enum and Bounded, but it only works with nullary types