we are well into a large-ish cljs codebase to Elm rewrite. I couldn't be any happier.
very liberating to get rid off all this legacy cljs š
@martintrojer: Is your happiness shared by others on your team?
smallish team, 3 devs, but absolutely
designers also happy writing html in the Elm markup language
That's quite interesting
I wish they had elm in the backend working
@martintrojer: any concrete examples of when Elm's been better so far?
scriptor: I just looked at elm for a day, and my first impressions blew my mind away. namely, the error messages. (I think it's underestimated in the clojure community). I'm not surprised Elm is pleasant to work with
@lewix: agreed regarding error messages, hopefully having clojure-spec used in core fns will help
I've been trying to keep track of specific cases in my code where a stronger type system might've come in handy
because I'm somewhat jaded of hand-wavy phrases like "easier to reason about" and "catches errors at compile time"
@scriptor: gonna sound cheesy, but its better at everything that really matters; productivity, code quality, team work
I have a feeling the same thing was said when clojurescript was originally chosen
martintrojer: I heard that most elm developers use Elixir. I wonder if they have the same experience with Elixir in the backend
I'm sure Elixir is good, but I'm not looking to replace Clojure (in the backend) with another dynlang
martintrojer: let us know when you make your pick (curiosity talking)
we are thinking on going much more microservices. So Purescript + Node is looking good atm
huh
purescript looks interesting
martintrojer: I hate you. your praise of Elm make me want to jump into it right away...I guess I'll be buried in yet another language for the next couple of weeks. shame on you
š
scriptor: I'm looking for good presentation about purescript
@lewix: let me know if you find one, I've only briefly looked at it
hah, if you wanna go all out, apparently Idris has a JS backend
the purescript book is good
Phil keeps it up to date aswell
martintrojer: : even for people with no haskell experience?
does anyone use purescript in production?
markmandel: also why not use purescript back end and front end
I've never used purescript, so I don't have an opinion?
I think lewix meant to highlight martintrojer
markmandel: right. sorry wrong person
Purescript is a bit like "haskell, the good parts"
No worries - interesting discussion though!
I guess purescript is still new, there's no much blog post about it..and a full blown app
The PureScript site has some pretty good material on it thoā http://www.purescript.org/learn/ and Bodil Stokke did a great talk based on it at Strange Loop 2014 https://www.youtube.com/watch?v=yIlDBPiMb0o
And if you want the whole Haskell language compiling to JS: https://github.com/ghcjs/ghcjs
what! 2014..is it that old
that's young in programming language years
the book is the best PS resource, https://leanpub.com/purescript
Blogs, talks, who cares? š
seancorfield: you know Purescript too? when do you find the time to learn all those languages...
@lewix: Nah, I havenāt played with PureScriptā¦ I donāt really see the point when thereās Elmā¦ But mostly I do zero work in the browser anyway.
I find PureScript to be a lot to digest. Not sure if they've simplified things recently, but Haskell/PureScript have a tendancy of presuming familiarity with essentially cutting-edge functional programming techniques to accomplish most basic things. This is coming from me having spent 8-9 months with the languages, albeit as my first ones.
montanonic: your first language was purescript...interesting š it's definitely not the traditional path
Elm is focused on tooling and simplicity, the FP stuff is a means to an end. I think this is the right decision.
Rust is focused on community and learning resources, this has also been the right decision. Haskell and PureScript don't have stories for that yet, I don't believe; this will hold them back.
lewix: First language was Haskell, and by extension, PureScript once I tried to delve into front-end stuff
what's clojure story?
Really smart language designed for getting work done, from what I can tell.
definitely not learning resources, which hold them back
montanonic: very well designed
montanonic: What made you learn haskell as a first language?
I've only been Clojuring for a week (a very intense week), and I've really grown to appreciate Lisp, and think that its emphasis on thinking about almost everything as just simple data is an amazing lesson that I will take with me to every language
But debugging it is a pain in the ass. One tiny mistake, done. I have to consistently break up my functions into tiny components and test in REPL. I love the live-feedback routine, but it is clear to me Clojure isn't a silver bullet, even though it is a very excellent language
I like clojure to a fault; I feel like the language superiority is also a trap...you want to believe that you're more productive (after playing with it for about a month on weekends, I don't think it'll make me more productive). You want to stick with it through bad and good times.
lewix: I naturally gravitate towards things that are more obscure. Haskell looked deeply different from everything else; seemed like the smarter approach
I started with Scala a little over a year ago, tried out Haskell a few weeks into that, and realized that it was actually easier than Scala, contrary to my presumptions. Then I just went with it.
interesting
Yeah, speaking of productivity, I don't think I would be more productive with Clojure than I would be with Elixir for building websites, IMO
only because Erlang is essentially built for writing servers
that's the default mode: fault tolerant scalability
But that's just me, I'm very unfamiliar with the Java ecosystem, so I can't leverage it like a lot of other Clojure people can without significant effort.
Erlang was built for communication if I'm not mistaken
Yes, telecommunications. Which, if you think about it, is what the internet is, just with different protocols.
It doesn't mean it solves all problems
Definitely not, I concur.
this paper reminded me of some of the discussion here lately, albeit it's about Scheme vs Miranda
https://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf
I think I'm kind of still looking for a language that suits me...
Micro-service style architecture is exactly how Erlang has built its libraries though. So the recent fad towards that style of modularity has been best practices in Erlang for like two decades
interesting
And when I say Erlang, I mean Erlang/Elixir
they complement each-other, Erlang is the parent, Elixir is a fancy new wrapper on top of it with a much larger community; just to clarify for anyone not clear on that
montanonic: The Elixir team has a strong Ruby background, so it's being influenced by ruby somehow
100%; a lot of Elixir code is not idiomatic Erlang-style, which is usually a bad thing
As a ex-rubyist, (lovely language) I don't think I want more ruby(aka elixir) for my pet projects
that said, the tooling is great, and the core Elixir people definitely know Erlang well.
Fair enough. I will say that the illusion of Elixir is that it's anything like Ruby when it comes to how to write it
It's a very thin wrapper on top of Erlang, which is about as different of a world as something like Haskell, IMO. Well, different, but, I will clarify: definitely not as complex and hard
montanonic: are you learning both clojure and elixir at the same time?
I've dabbled with learning 7 languages in the past two months. Erlang, Elixir, Elm, Clojure, Rust, Kotlin, Java. I've focused by far the most on Elixir and Erlang, with Rust and Clojure coming up.
So, I don't really know what I'm learning right now, lol
lol
I'd love to see a list of the languages ranked in order of the best error messages
The problem for me is that I don't know what problem I want to solve at this point. I'm not sure I like web development that much, but I also think it's extremely powerful.
(outside of rust and elm)
id probably learn the one on top
Yeah, honestly, they aren't that great beyond Elm and Rust, and Rust has a steep learning curve with the error messages, as far as understanding why they are happening
montanonic: try mobile?
lewix: I've actually been leaning towards low-level stuff recently. Instead of building websites, maybe, build a better internet. So, Rust.
from what I heard so far while talking to different people golang is up there in terms of error message amongst most common languages
Oh, that's a good point. Go probably is very solid on that front.
Although it still seems that they haven't figured out how to solve Generics yet, and I hear using generics gets rid of compile-time checks. That said, there are probably still sufficient runtime checks
What I've experienced is that if you give up static-typing + types, you won't have good error messages, period; everything is just stack trace
what about java then?
So literally every dynamic language I've used, it's just not great on that front. That said, it's much easier to just run your code and see the output
error messages still suck
montanonic: ruby wasn't as bad as clojure in terms of error messages
Kotlin on the IntelliJ platform had very solid error messages, but I'm sure that won't save you from mutable state spaghetti
lewix: good point, I forgot about that
Let me clarify now that I understand the distinction I was going for:
dynamic languages on a VM
Because Elixir, like Clojure, is also on a VM, and the error messages are usually just stacktraces
have you considered node.js/
or you're very opinionated about functional languages
Coming from Haskell, node.js was a dirty word. I don't have a high-opinion of node because of that on instinct, but I'm much more open now to trying out new things and experiencing instead of judging
js sucks but ey it does the job
The fact that the most obvious way to write a loop in JS doesn't work still bothers me
lewix: do you use node.js much currently / in the past?
what's your current tech situation look like?
I realized that going for very well designed language is definitely a trap in itself sometimes...you're definitely bias because of the language itself but not necessarily everything else that comes with it that makes you productive day in and day out
yes I completely agree with that
I've favoured languages over ecosystems too much, potentially
so I try to force myself not to be attracted by the new and shiny well designed language
C -> visual basic -> actionscript -> java -> C -> a bit of python -> ruby -> javascript -> js framworks (if it counts at all) -> clojure --> looking for a togoto language (my story line)
I'm still new with clojure
and java doesn't count that was in college (everybody learned it and forgot it)
slight tangent: At this point in my life, I'm interested in working in any language as long as it gets the job done, but specifically, only if that job actually seems like it will be a meaningful project, and not just easy/quick cash. I probably need to get more experience before having the chance to work on projects that I can be passionate about, but if I can start there, that'd be superb. Right now theres a lot of people in the Rust community who are working on truly interesting projects, which is making me more and more drawn to it. Likewise with Elixir, but, Rust is an even more cohesive community.
haha, gotcha; I definitely think JS frameworks count
I see
what kind of projects are you looking for?
maybe we should design our own language lmao
It's really hard to say what I'm looking for because I believe that I just need to understand more about technology before I can really have an informed opinion
we're very similar oddly enough. I tend to spend a lot of time researching before making a decision...it's not always a good thing I guess
that said, the two branches of things I'm instinctively interested in are: tech that is actually meaningful to people who aren't very privileged and that can help the hundreds of million who needlessly suffer in this world, and then the other branch would be stuff to do with cryptography, building a new web, building new currencies, contracts, stuff like that; blockchain, but I'm still naive about that stuff
I have the philosophical stance that most western countries are way, way, way wealthier than they (we) deserve to be, and I want to fight for a more balanced world, but, yeah, there's no obvious path for that, and that's a long term pursuit.
hehe