Last year I was excited about Elm, this year about Reason. I follow a bunch of Reason folks on Twitter and see lots interesting projects. I also keep seeing React core devs keep dropping hints that React will be rewritten in Reason which makes sense since originally it was written in SML.
Since hearing about it we have a port of a large project in progress and whilst the typing is nice, the improvement in build time alone looks like making it a worthwhile exercise.
Big things to come I suspect, particularly with it feeling like such a natural progression of so much of FB's recent JS work.
> I find the data from the "I've used this but wouldn't again" almost as interesting as anything else here.
I'd love to see an explicit "percentage of those who've used it who would use it again" number for each library, easily glanceable. I think that's what most of us are probably doing in our heads when looking at this data.
When I went to university for CS, Haskell was used in the introductory programming courses and this was one of the main reasons we were told about.
Another goal was to take the people who had been learning to code in their spare time and put them on more even footing with those who were totally new, force them to think about things from first principles rather than lean on acquired habits, etc.
I had already been coding for a long time by that point but it was the first time I saw a functional language and I think it addressed both goals very well.
> Another goal was to take the people who had been learning to code in their spare time and put them on more even footing with those who were totally new
The thinking behind that is usually a bit fallacious, though.
Say the department has been teaching Java in the introductory programming course, and noticed that some people already know most concepts. Then they decide to use a different language to "level the playing field".
First of all, what kind of attitude is that? If some people already know the stuff, just let them take the exam without attending the course, so they can take "Advanced Programming Paradigms" or wherever FP is taught.
I can understand teaching FP first if you think it's conceptually easier, but counting prior experience of some students as a reason to restructure the curriculum for everyone is silly.
Second, using Haskell instead of Java isn't actually leveling the playing field. It just changes who has an advantage from game modders and people who coded their own website to the more mathy types (or people who learned Haskell in high school, like me), who will have an easier time with higher-order functions and the rigid formality of the type system.
When they announced in my OOP course that there'd be a few sessions on other paradigms, I was a bit disappointed to find out that this meant only a bit of Haskell and Prolog, when I'd already written a simple Prolog interpreter in Haskell. Should they have changed the curriculum just because of me? Definitely not.
It was a long while ago now, if you had learnt anything before you got there it was pretty much guaranteed that you'd seen either BASIC or C. :)
The internet wasn't what it is now either so most people who had done some coding before were indeed lacking in understanding of the fundamental principles of what they were doing – I know I certainly was. There may have been outliers yet beyond the "I've been playing with code" crew but I didn't meet any.
I'm not at all suggesting it would be good reasoning today, but I think it helps to show that the underlying idea that FP is a good way to introduce people to code whilst ensuring they develop a strong theoretical understanding was true then and should still be today.
Learning new things is great but don't be afraid to reach for familiar tools.
Using one or two new things on a project rather than 10 you'll be both more likely to get somewhere, and more likely to pick up the newer elements well.
Just in case the OP reads this and is interested, this exaggerates somewhat for Melbourne. Particularly if you're a kid coming over on a working holiday, which actually sounded like a really good suggestion for the situation.
Yes you'd be looking to pay that for a nice, new or renovated single bed apartment in the middle of the city or an expensive area. As hinted at though, as someone with $5-10k in the bank coming here to be a barista there's no way you'd be able to get a lease for one of them anyway.
Head even a 20 minute tram ride out from the city, however, and suddenly you can pay AU$1,400/mth for a 1 or 2 bedroom place in an older building. (Though you may struggle to get a lease anyway...)
If you were on a working holiday you would likely be better off finding a shared place with some like-minded souls, and end up somewhere around $1,000 for rent + all your bills and such to live somewhere pretty nice.
We use them at my day job, their support can be a bit clunky in terms of turnaround times once you've escalated something tricky but they're generally quite helpful and certainly legit - we have a mix of EV and regular with I think 1 wildcard and have never had any particularly serious issues other than slow EV paperwork.
I've always found it helpful to explain a pointer as exactly that - a pointer, ie. a person standing there pointing at something.
If you need to keep track of something and know that no matter where you put him he's always going to be pointing at the same thing, sometimes it's going to be easier to move him around than, say, the 72-story building he's pointing at.
If you need to explain it more technically then the simple truth of them tracking the memory address of something has always seemed the best approach - then start learning what that actually means if need be. Anyone hoping to end up using C for much and not be shooting yourself in the foot constantly should be learning at least the basics of such things anyway.
Also really looking forward to seeing how Reason shifts between this year and next... :)