Ok so after a good 4 or so years of off and on tinkering with C++, I think I finally am at least experienced with the language features. I've finally just recently gotten up to templates and generic programming. Well, after all this time I'm at a loss. I feel like I just hit a wall and don't have anywhere to go, and I have heard this happens with people often actually. And they recommend learning a new language with a new paradigm. So, what is everyone's suggestion for where to go next? I know a bit of Java, it's actually what my university uses as their main language :/
Haskell is a pretty sweet language. I suggested F# and Scala because of their integration with the .NET Framework and JVM respectively, making them more practical IMO.
Well it makes sense from an academic point of view. I've never wanted or needed to use Haskell in the work I've done, and I've used plenty of Scala and started using F# quite a bit as well.
I've learned a bit of Haskell and, although it's really, really confusing, it's also awesome. It's had a pretty significant affect on my C programming as well because now I tend to try and write short (3-5 lines), value-returning functions with no side-effects with one slightly longer (10-15 lines) function at the end of each file.
Here's the thread I meant to reply in! I keep hearing that Haskell is great for broadening your knowledge, but it's not widely used. And F# and Scala are more used? Would I gain the same knowledge from learning them as I would Haskell?
They aren't "partly" functional. They are not pure, but that doesn't mean you can't write pure functional code in them.
Among the three (Haskell, F#, Scala), Scala is the only that got serious use in industry, especially in financial sector and web-startups and there are even companies that sell support and trainings.
Well, it might not get you a job, but Haskell is definitely fun.
although it's really, really confusing
Only at the beginning. Stuff makes a lot more sense later on - except for some rather strange decisions, like head throwing an exception on empty lists.
Well, it might not get you a job, but Haskell is definitely fun.
There are some jobs in Haskell, as well.
But Scala is just as great fun, especially now that they added powerful compile-time, typesafe metaprogramming system.