Paradigm wise: Yes functional programming can seem strange and hard if you haven't done it before. But that really isn't the fault of Elm, elm makes FP as simple as it can.
Language wise: Yes, the Elm architecture takes a bit to grok, but for me it was just an afternoon. Once you grok it, there isn't really much else you need to learn - you can hit the ground running, look up what you need when you need it.
Tooling wise: Just some basic tooling you get will get you very far, no setup either, just install and use.
If you do js interop, yes that can be cumbersome, but it is intentional. Elm strives to keep js out and write libraries in Elm. This is so we can have more of the guarantees that Elm provides. (no runtime exceptions!)
I'd rather say: "Elm has a low entry barrier for a FP language". One of it's main goal is to bring FP to the masses after all. :)
The reason I personally haven't looked at Scala (or Scala.js) is the OOP + FP approach.
<personal understanding>
Scala seems to want to please everyone, having all the tools at hand - Immutable and Mutable collections, Objects and enforced Pure Functions etc.
That to me seems like a call for trouble in the community, a split between approaches to problem solving at a fundamental level.
</personal understanding>
And well one of the things that I love about Elm is the lack of needing to make too many choices because the language doesn't have too many complicated features and prioritises "One good lib over 5 decent libs" (though at this young stage what other option does it have).
Clojurescript, Javascript and I'm betting Scala.js offer a lot of solutions to the same problem and/or have fancy language features that I am looking for an escape from. Just personally want to try going back to "less is more", to see what it is like. :)
From what I understand Elm is planned to target Node eventually. However the language is pretty young right now and the main work is going into making client side Elm the best it can be. The language author doesn't want to branch out too far.
Ah now I see. Although I understand that there are some tools that do this, it is not a trivial process like in many other languages. Thanks for enlightening me.
I work for a international company, mainly based in the US. I get paid what a local developer gets paid, our chinese employees get paid what the local norm is there etc. Do other companies just outright decide salary based on where the company HQ is?
Call me cynical, but I'm a bit skeptical that a company would pay more than they had to.
Note: Assuming of course your role is not super vital for the whole company or some such.
I second this. I used to distro jump a lot before I realized that not a whole lot is actually changing from distro to distro. I was basically chasing the default setup of a distro, which has no real point.
I wouldn't go as far as to say, don't care at all. Maybe just avoid overthinking. :)
Main differences of distros to keep in mind:
1) The default setup. (Desktop environment, already installed software, etc.)
2) Available packages. What software and versions of software are available to you without much hassle.
3) System upgradeability. (Rolling - always up to date, or a 6 month release schedule or something in between)
If I were to suggest something, It would be a variant of Arch called Antergos. You get an Arch linux that:
1) Is as easy to install as Ubuntu/Mint etc.
2) Good default setup selection. (Multiple desktop environments and more arguably the benefit of little bloatware)
3) It IS arch, just a extra enabled repository. (Antergoses own). This means you get the AUR (Arch user repository) that gives you easy access to packages that other distros might not have, although they are less reliable. (Though I have yet to see any problems in 2 years) AND the latest versions of much software. (Again can be bad, but in my experience I've only encountered minor annoyances that get fixed quite fast). BUT WAIT, there is more! It's rolling release. Always up to date. :)
In my experience the stability concerns of arch are a myth. If they do occur, it's not like you see crashing of your computer or massive graphical anomalies. Sleep might not trigger properly for a day or two or something like that. And rarely. But this is just my experience. :)
Antergos = Newest SW, rolling release, easy install, good default setup selection, AUR, the fantastic Arch wiki and probably more.
Regarding DataTau I built a small front page analyzer and have some graphs up. It runs every 3 hours and looks at some aspects of both HackerNews and DataTau and compares the two. It's still very much a work in progress. At one point I will let it run for an extended period of time.
Maybe it's just my 4gigs of RAM speaking, but Cursive is sluggish and heavy. I have Emacs running in a drop down terminal, that I can hide and show fast, I can run many languages simultaneously (Python and Clojure for me), I can quickly navigate and to all sorts of things without any load time. Everything feels very effortless, thus why I'd recommend Emacs. Not to say that I am above opening up Cursive for serious refactoring or navigation. :)
Absolutely. The quality of other's solutions and the more Clojure centric atmosphere are pluses compared to for ex. HackerRank. The reason why I personally chose HackerRank over 4clojure was the Ranking/Badge/Percentile central theme. I just got hooked on competing with other people and upping my profile. Though now I am thinking I should give 4clojure another go..
This is an excellent tutorial, kudos to the author! As an additional supplement for beginners I'd also suggest solving some coding challenges in Clojure on pages like HackerRank. It's addictive fun and supplies cool problems to solve at will, made a big difference for me.
I second this. Although I myself use Emacs and am very happy with it, Cursive allows focusing on Clojure and not on the setup. Though once some level of skill has been achieved, I'd recommend Emacs. :)
I own a Acer c720p Chromebook and I have to say it is a wonderful machine. I now only use my main PC for programming, and I even do that sometimes by SSH from my chromebook.
Main point:
* Great battery life
* Lightning fast
* Small/Thin
For me it is a perfect cheap laptop to use as a goto for all my less resource intensive activities. (reading, youtube, chat etc.) I might get a bigger 15 inch one so I am happy to see Chromebooks developing. I am having a hard time figuring out who would use a chromebit though..
As it stands I can't help but feel discouraged when learning Haskell. Haskell feels like a research tool for furthering other programming languages...
I'm still going to learn Haskell, promised myself I would! But I do look to the Elixir folk with a bit of jealousy..