other-languages

here be heresies and things we have to use for work
martintrojer 2016-07-07T07:51:37.000197Z

we are well into a large-ish cljs codebase to Elm rewrite. I couldn't be any happier.

martintrojer 2016-07-07T07:52:13.000198Z

very liberating to get rid off all this legacy cljs šŸ™‚

cfleming 2016-07-07T08:57:11.000199Z

@martintrojer: Is your happiness shared by others on your team?

martintrojer 2016-07-07T09:11:49.000200Z

smallish team, 3 devs, but absolutely

martintrojer 2016-07-07T09:12:10.000201Z

designers also happy writing html in the Elm markup language

lewix 2016-07-07T14:20:59.000202Z

That's quite interesting

lewix 2016-07-07T14:21:09.000203Z

I wish they had elm in the backend working

2016-07-07T14:28:38.000204Z

@martintrojer: any concrete examples of when Elm's been better so far?

lewix 2016-07-07T14:32:29.000205Z

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

2016-07-07T14:33:28.000206Z

@lewix: agreed regarding error messages, hopefully having clojure-spec used in core fns will help

2016-07-07T14:34:26.000207Z

I've been trying to keep track of specific cases in my code where a stronger type system might've come in handy

2016-07-07T14:35:05.000208Z

because I'm somewhat jaded of hand-wavy phrases like "easier to reason about" and "catches errors at compile time"

martintrojer 2016-07-07T14:37:02.000209Z

@scriptor: gonna sound cheesy, but its better at everything that really matters; productivity, code quality, team work

2016-07-07T14:38:16.000210Z

I have a feeling the same thing was said when clojurescript was originally chosen

lewix 2016-07-07T14:38:20.000211Z

martintrojer: I heard that most elm developers use Elixir. I wonder if they have the same experience with Elixir in the backend

martintrojer 2016-07-07T14:39:38.000212Z

I'm sure Elixir is good, but I'm not looking to replace Clojure (in the backend) with another dynlang

lewix 2016-07-07T14:40:42.000213Z

martintrojer: let us know when you make your pick (curiosity talking)

martintrojer 2016-07-07T14:41:17.000214Z

we are thinking on going much more microservices. So Purescript + Node is looking good atm

lewix 2016-07-07T14:42:38.000215Z

huh

2016-07-07T14:43:25.000216Z

purescript looks interesting

lewix 2016-07-07T14:44:41.000217Z

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

lewix 2016-07-07T14:46:46.000218Z

šŸ˜‰

lewix 2016-07-07T14:50:05.000219Z

scriptor: I'm looking for good presentation about purescript

2016-07-07T14:52:04.000220Z

@lewix: let me know if you find one, I've only briefly looked at it

2016-07-07T14:52:17.000221Z

hah, if you wanna go all out, apparently Idris has a JS backend

martintrojer 2016-07-07T15:07:36.000222Z

the purescript book is good

martintrojer 2016-07-07T15:07:46.000223Z

Phil keeps it up to date aswell

lewix 2016-07-07T15:12:50.000224Z

martintrojer: : even for people with no haskell experience?

lewix 2016-07-07T15:12:57.000225Z

does anyone use purescript in production?

lewix 2016-07-07T15:15:41.000226Z

markmandel: also why not use purescript back end and front end

markmandel 2016-07-07T15:21:11.000227Z

I've never used purescript, so I don't have an opinion?

2016-07-07T15:21:31.000228Z

I think lewix meant to highlight martintrojer

lewix 2016-07-07T15:23:30.000230Z

markmandel: right. sorry wrong person

martintrojer 2016-07-07T15:41:21.000231Z

Purescript is a bit like "haskell, the good parts"

markmandel 2016-07-07T15:46:17.000232Z

No worries - interesting discussion though!

lewix 2016-07-07T17:28:55.000233Z

I guess purescript is still new, there's no much blog post about it..and a full blown app

seancorfield 2016-07-07T17:49:48.000235Z

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

seancorfield 2016-07-07T17:50:59.000237Z

And if you want the whole Haskell language compiling to JS: https://github.com/ghcjs/ghcjs

lewix 2016-07-07T17:58:32.000239Z

what! 2014..is it that old

2016-07-07T18:02:39.000240Z

that's young in programming language years

martintrojer 2016-07-07T18:44:58.000241Z

the book is the best PS resource, https://leanpub.com/purescript

martintrojer 2016-07-07T18:45:14.000243Z

Blogs, talks, who cares? šŸ™‚

lewix 2016-07-07T20:33:28.000244Z

seancorfield: you know Purescript too? when do you find the time to learn all those languages...

seancorfield 2016-07-07T20:48:17.000245Z

@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.

montanonic 2016-07-07T20:56:18.000246Z

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.

lewix 2016-07-07T20:58:36.000247Z

montanonic: your first language was purescript...interesting šŸ™‚ it's definitely not the traditional path

montanonic 2016-07-07T21:00:57.000248Z

Elm is focused on tooling and simplicity, the FP stuff is a means to an end. I think this is the right decision.

montanonic 2016-07-07T21:01:26.000249Z

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.

montanonic 2016-07-07T21:01:53.000250Z

lewix: First language was Haskell, and by extension, PureScript once I tried to delve into front-end stuff

lewix 2016-07-07T21:01:57.000251Z

what's clojure story?

montanonic 2016-07-07T21:02:24.000252Z

Really smart language designed for getting work done, from what I can tell.

lewix 2016-07-07T21:02:27.000253Z

definitely not learning resources, which hold them back

lewix 2016-07-07T21:03:11.000255Z

montanonic: very well designed

lewix 2016-07-07T21:04:04.000256Z

montanonic: What made you learn haskell as a first language?

montanonic 2016-07-07T21:04:31.000257Z

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

montanonic 2016-07-07T21:05:33.000258Z

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

lewix 2016-07-07T21:07:06.000259Z

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.

montanonic 2016-07-07T21:07:10.000260Z

lewix: I naturally gravitate towards things that are more obscure. Haskell looked deeply different from everything else; seemed like the smarter approach

montanonic 2016-07-07T21:07:44.000261Z

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.

lewix 2016-07-07T21:08:01.000262Z

interesting

montanonic 2016-07-07T21:08:30.000263Z

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

montanonic 2016-07-07T21:08:46.000264Z

only because Erlang is essentially built for writing servers

montanonic 2016-07-07T21:08:57.000265Z

that's the default mode: fault tolerant scalability

montanonic 2016-07-07T21:09:50.000267Z

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.

lewix 2016-07-07T21:10:07.000268Z

Erlang was built for communication if I'm not mistaken

montanonic 2016-07-07T21:10:48.000269Z

Yes, telecommunications. Which, if you think about it, is what the internet is, just with different protocols.

lewix 2016-07-07T21:11:16.000270Z

It doesn't mean it solves all problems

montanonic 2016-07-07T21:11:22.000271Z

Definitely not, I concur.

2016-07-07T21:11:42.000272Z

this paper reminded me of some of the discussion here lately, albeit it's about Scheme vs Miranda

lewix 2016-07-07T21:12:00.000274Z

I think I'm kind of still looking for a language that suits me...

montanonic 2016-07-07T21:12:13.000275Z

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

lewix 2016-07-07T21:12:27.000276Z

interesting

montanonic 2016-07-07T21:12:39.000277Z

And when I say Erlang, I mean Erlang/Elixir

montanonic 2016-07-07T21:13:04.000278Z

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

lewix 2016-07-07T21:13:15.000279Z

montanonic: The Elixir team has a strong Ruby background, so it's being influenced by ruby somehow

montanonic 2016-07-07T21:13:48.000280Z

100%; a lot of Elixir code is not idiomatic Erlang-style, which is usually a bad thing

lewix 2016-07-07T21:14:15.000281Z

As a ex-rubyist, (lovely language) I don't think I want more ruby(aka elixir) for my pet projects

montanonic 2016-07-07T21:14:18.000282Z

that said, the tooling is great, and the core Elixir people definitely know Erlang well.

montanonic 2016-07-07T21:14:53.000284Z

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

montanonic 2016-07-07T21:15:21.000286Z

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

lewix 2016-07-07T21:15:50.000288Z

montanonic: are you learning both clojure and elixir at the same time?

montanonic 2016-07-07T21:16:49.000289Z

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.

montanonic 2016-07-07T21:16:59.000290Z

So, I don't really know what I'm learning right now, lol

lewix 2016-07-07T21:17:03.000291Z

lol

lewix 2016-07-07T21:17:39.000292Z

I'd love to see a list of the languages ranked in order of the best error messages

montanonic 2016-07-07T21:17:45.000293Z

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.

lewix 2016-07-07T21:17:46.000294Z

(outside of rust and elm)

lewix 2016-07-07T21:18:43.000297Z

id probably learn the one on top

montanonic 2016-07-07T21:19:07.000298Z

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

lewix 2016-07-07T21:19:08.000299Z

montanonic: try mobile?

montanonic 2016-07-07T21:20:02.000300Z

lewix: I've actually been leaning towards low-level stuff recently. Instead of building websites, maybe, build a better internet. So, Rust.

lewix 2016-07-07T21:20:05.000301Z

from what I heard so far while talking to different people golang is up there in terms of error message amongst most common languages

montanonic 2016-07-07T21:20:20.000302Z

Oh, that's a good point. Go probably is very solid on that front.

montanonic 2016-07-07T21:20:53.000303Z

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

montanonic 2016-07-07T21:21:32.000304Z

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

lewix 2016-07-07T21:21:58.000305Z

what about java then?

montanonic 2016-07-07T21:22:00.000306Z

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

lewix 2016-07-07T21:22:10.000307Z

error messages still suck

lewix 2016-07-07T21:22:37.000308Z

montanonic: ruby wasn't as bad as clojure in terms of error messages

montanonic 2016-07-07T21:22:44.000309Z

Kotlin on the IntelliJ platform had very solid error messages, but I'm sure that won't save you from mutable state spaghetti

montanonic 2016-07-07T21:22:56.000310Z

lewix: good point, I forgot about that

montanonic 2016-07-07T21:23:07.000311Z

Let me clarify now that I understand the distinction I was going for:

montanonic 2016-07-07T21:23:13.000312Z

dynamic languages on a VM

montanonic 2016-07-07T21:23:30.000313Z

Because Elixir, like Clojure, is also on a VM, and the error messages are usually just stacktraces

lewix 2016-07-07T21:24:06.000314Z

have you considered node.js/

lewix 2016-07-07T21:24:39.000315Z

or you're very opinionated about functional languages

montanonic 2016-07-07T21:24:57.000316Z

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

lewix 2016-07-07T21:25:11.000318Z

js sucks but ey it does the job

montanonic 2016-07-07T21:25:40.000319Z

The fact that the most obvious way to write a loop in JS doesn't work still bothers me

montanonic 2016-07-07T21:26:26.000320Z

lewix: do you use node.js much currently / in the past?

montanonic 2016-07-07T21:26:33.000321Z

what's your current tech situation look like?

lewix 2016-07-07T21:26:34.000322Z

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

montanonic 2016-07-07T21:27:01.000323Z

yes I completely agree with that

montanonic 2016-07-07T21:27:20.000324Z

I've favoured languages over ecosystems too much, potentially

lewix 2016-07-07T21:27:21.000325Z

so I try to force myself not to be attracted by the new and shiny well designed language

lewix 2016-07-07T21:29:06.000326Z

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)

lewix 2016-07-07T21:29:25.000327Z

I'm still new with clojure

lewix 2016-07-07T21:30:15.000328Z

and java doesn't count that was in college (everybody learned it and forgot it)

montanonic 2016-07-07T21:30:22.000329Z

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.

montanonic 2016-07-07T21:30:48.000330Z

haha, gotcha; I definitely think JS frameworks count

lewix 2016-07-07T21:31:12.000331Z

I see

lewix 2016-07-07T21:31:18.000332Z

what kind of projects are you looking for?

lewix 2016-07-07T21:31:27.000333Z

maybe we should design our own language lmao

montanonic 2016-07-07T21:33:03.000335Z

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

lewix 2016-07-07T21:33:48.000336Z

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

šŸ‘ 1
montanonic 2016-07-07T21:34:34.000337Z

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

montanonic 2016-07-07T21:35:30.000338Z

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.

lewix 2016-07-07T21:35:48.000339Z

hehe