Live data from Hacker News

Elm changed my mind about unpopular languages

blog.realkinetic.com

281–290 of 321 posts

Re: Elm changed my mind about unpopular languages

#281
post #246

We use(d) Elm at the company I work at. (A start-up.) Elm is great. All of the positive rumors about it are true. The issue we've had with Elm isn't typically discussed in these conversations: My CTO doesn't seem to see the value of it+. So we recently replaced our Elm code with JavaScript. I wonder if anyone else finds themselves in a similar situation. +It's a bit more nuanced. We're in a very "MVP" stage; the line…

I wouldn't write off an entire company on this abbreviated description, but damn, I'd be worried about this. It does not speak highly of your CTO. I'm not saying Elm is objectively better than JavaScript (I don't do either). But, can't these things sit side by side. And, if so, how is rewriting code aligned with moving faster? At worst, keep what you have in Elm, and write new code in JS? Also, there's plenty of "ugg…

Perhaps my description of our CTO/situation left out too much detail. (I was trying to be succinct.)

> It does not speak highly of your CTO

Our CTO is the kind to speak highly about. Strong technical/software engineering skills. Willing to experiment with new/different tech. Business minded. He agreed whole-heartedly to move forward with Elm in the first place. This is actually our 2nd project with Elm now.

> Can’t these things sit side by side? How is re-writing code aligned with moving faster?

Yes; in fact, we’d always had a mix of Elm+JS.

Our product is not a Single Page App. (Very deliberate decision.) We’re only using JS/Elm to make small parts interactive. So there was only a relatively small amount of Elm code that was replaced.

It allows us to move faster because our designer and a couple of junior devs on the team don’t have to struggle through learning Elm.

Re: Elm changed my mind about unpopular languages

#282
post #112

Earlier quoted context omitted.

I have noticed a lot of language / framework collectors where every new project is in a new framework or language on their CV. While it will expose you to a lot of different ideas I doubt you will code very well in any of them if you are swapping every year. I have seen plenty of Python written like its Java and its just less elegant code. And Django code that doesn't follow best practices seems to be the norm. If yo…

The best ideas are those that you can share between languages. When you get hung up on idioms, or when you recreate idioms that don't matter in another language, that's where the problems are. Exposure to a lot of languages allow a person to figure out that union of computation that benefits all languages.

Like I say when I see python written in a Java style its verbose, and doesn't take advantage of much of the expressive syntax that Python provides over Java. You have given up the speed benefit of Java and have kept code that is nearly as verbose.

And don't get me started on the way people misuse Django.

Re: Elm changed my mind about unpopular languages

#283

Earlier quoted context omitted.

Erlang is dynamically typed. It's certainly not untyped - it's assembly and Forth that are untyped.

Dynamic typing (like static typing) is a spectrum, actually. You can flag method missing errors at a minimum, but in a nominally dynamically typed system, you could flag class mismatches before you ever got to a dispatch error.

Sure, I didn't say it wasn't.

My point was that 'untyped' should not be conflated with 'dynamically typed'. They're worlds apart.

Re: Elm changed my mind about unpopular languages

#284
post #233

Earlier quoted context omitted.

Id argue that while Scala has more powerful features, it has less "magic". Elm can't be used on the server because it has a magical create app function that you must feed the exact right functions into in order to make anything. AFAIK it's not a general purpose language.

Definitely not general purpose, but it has nothing asking the line of implicits and implicit type conversion and the such that makes reading Scala code impossible to read, if not write, without a tool like IntelliJ.

We have different definitions of 'magic'. `Html.program` is magic, `comparable` is magic. Elm has been steadily removing features and adding magic since they lost `Signals`

Re: Elm changed my mind about unpopular languages

#285

> Even though Elm is a small language with a small community, that doesn’t affect the Elm experience in a noticeable way. This conclusion was pulled out of thin air, with no justification from the rest of the article. The title is misleading, the article is really about why the author enjoys Elm over JavaScript... The general rule of thumb that a larger active community leads to faster software development is more or…

> The general rule of thumb that a larger active community leads to faster software development is more or less still true. There is no reason to suspect this is not the case with Elm. Yes, and not only because the volume of copy-paste source code on StackOverflow. I suspect Elm is slower to get a feature out, but once it is out you spend less time fixing bugs in feature A caused by adding feature B silently changing…

> The community tends to have smarter on average people in it. Simply because all the less smart people are put off. Sounds elitist? Maybe.

Have you thought about the possibility that it's actually a community of people who first and foremost _consider_ themselves as being smarter than the rest? Maybe this is what's really off-putting to equally smart, but more humble developers?

Re: Elm changed my mind about unpopular languages

#286

Earlier quoted context omitted.

Damn you Richard, you hired all the best Elm devs and cornered the market :)

Oh man, if only! There are soooo many amazing Elm devs out there. I'm excited for Elm Europe in large part so I can finally meet more of them in person!

You and your team (NoRedInk, Evan, et.al.) could actually grow the number for amazing Elm devs out. I think part of the reason is that there's a very narrow avenue to traverse to even build production-level Elm apps. One of the sure fire discouraging factor for someone learning and wanting to embrace a language is when s/he is unable to see the same see the light of the day at the hands of real users/consumers.

P.S. I'd love to learn and apply Elm across. I've applied at NoRedInk but did not get any response.

Re: Elm changed my mind about unpopular languages

#287

There is so much to love about Elm. It is a typed language, so it eliminates typing issues, like 1 + "1" = "11". Its compiler is great. The compiler catches almost everything and offers easy-to-read suggestions to fix your code when there is a problem. Elm's compiler virtually eliminates runtime errors; at least I've never had a runtime error with Elm. I also like the debugger. It allows you to easily capture your st…

1 + "1" => "11" is not the sign of an "untyped" language. I would expect 1 + "1" => 50 (ascii asm), 1 + "1" => 242 (ebcdic asm) or 1 + 1 => 2 (length tagged string, eg, untyped pascal-ish variant), or 1 + "1" => some seemingly random value (C lang) in an "untyped" language. 1 + "1" => "11" is strongly typed, dynamically typed, with a particular type conversion that favours "strings". But, on reflection, I am probably…

*a pedantic

Re: Elm changed my mind about unpopular languages

#288

Earlier quoted context omitted.

> The general rule of thumb that a larger active community leads to faster software development is more or less still true. There is no reason to suspect this is not the case with Elm. Yes, and not only because the volume of copy-paste source code on StackOverflow. I suspect Elm is slower to get a feature out, but once it is out you spend less time fixing bugs in feature A caused by adding feature B silently changing…

> There is a community. The community tends to have smarter on average people in it. Simply because all the less smart people are put off. A community shouldn't be judged based on how smart everyone is (quite a difficult measure), a more useful metric would be how many useful community libraries there are. For example, if I can choose between 50 carousels implemented in React vs. 2 in Elm, and I'm an average develope…

> For example, if I can choose between 50 carousels implemented in React vs. 2 in Elm, and I'm an average developer -- what will I choose?

IMO this is an advantage of the smaller/smarter/niche (whatever you want to call them) programming communities. When they congregate around a couple libraries for common problems, those libraries tend to be very good. Speaking from experience in the Elm and Clojure ecosystems.

It’s much better in terms of developer time to evaluate 2 good libraries than 50 libraries where the quality ranges from abysmal to good.

Re: Elm changed my mind about unpopular languages

#289
post #251

I tried and failed to pick up Elm. I've tried and failed to pick up a few FP programming languages. They tend to become more and more cryptic as I progress with them. I feel dumb, but I'm happy to stick with C like languages, like PHP for web development.

You can adopt some practices from fp when writing PHP. For example often instead of iterating over an array and doing some imperative sequence of modifications you can do a sequence of maps, filters and reduce... you replace error prone mutable code with more a declarative approach that says what you are doing clearly.

Re: Elm changed my mind about unpopular languages

#290
post #246

Earlier quoted context omitted.

I wouldn't write off an entire company on this abbreviated description, but damn, I'd be worried about this. It does not speak highly of your CTO. I'm not saying Elm is objectively better than JavaScript (I don't do either). But, can't these things sit side by side. And, if so, how is rewriting code aligned with moving faster? At worst, keep what you have in Elm, and write new code in JS? Also, there's plenty of "ugg…

Perhaps my description of our CTO/situation left out too much detail. (I was trying to be succinct.) > It does not speak highly of your CTO Our CTO is the kind to speak highly about. Strong technical/software engineering skills. Willing to experiment with new/different tech. Business minded. He agreed whole-heartedly to move forward with Elm in the first place. This is actually our 2nd project with Elm now. > Can’t t…

> It allows us to move faster because our designer and a couple of junior devs on the team don’t have to struggle through learning Elm.

Elm-html is my biggest criticism of Elm. Why make the contemplating so difficult for the non-programmers to work with? It's holding back Elm adoption for sure.

Post reply on HN