The language is pretty performant, nice to write and read, OOP, portable, strong typed, etc. Can be used for scripting, backends, etc.
With Flutter, you can get Android and iOS apps with the same codebase and near native performance. Downside is, not every functionality is supported, but it's getting better every week.
AngularDart gets you webfrontends without touching JS. Ok, it compiles Dart2JS because browsers are not supporting Dart (yet), but I don't have to write JS/TypeScript myself.
This will get even greater in a few years when Google releases Fuchsia aka Android-replacement.
Ok, there are downsides:
- no WASM support
- VM based for use outside of a mobile device/browser
- lack of some libs/frameworks
- not widely supported (like on the big 3 in the cloud or default install on top10 distros)
I've started dipping my toes in Rust and Elixir. Rust because of the concepts like borrow checker, highly strict compiler, traits etc. Elixir because it is based on Erlang and is highly concurrent due to Actors, and overall a very clean language syntactically. Both of these are very different from the traditional OOP language that I'm using at work (C#).
Actually this is something I wanted to do last year but didn't get enough motivation/energy to actually pursue it. Now I've forced myself to actually do stuff with Rust for the first quarter of 2019 and have made some progress. If things go as per my timelines, I'll focus on Elixir & Rust in alternate quarters. I've found this to be much better than tackling both in parallel which I was doing last year.
As an aside, in the last month of 2018 I dabbled with Pharo/Smalltalk just to investigate its highly dynamic nature, improvement to dev productivity & how things really were supposed to work in real OOP. It was very impressive, especially considering we had something like in 80s & 90s.
Last year I've dabbled mostly with high level languages: JavaScript, TypeScript, Python... a bit of Clojure.
I guess it would be time to pick something like Rust or Go. But I still haven't decided which one to pick up first.
I’ll be the outlier: I’m working on learning Chicken Scheme, because it’s a new paradigm and most of the libraries and frameworks I need are already there.
So far, I’m surprised at how easy it is to get started writing a web app with the Awful framework (for my fairly simple needs, it’s anything but awful). Then again, I’m not employed as a programmer, so I’m not evaluating new languages based solely on practicality.
Either Ocaml or ReasonML. I always liked functional programming, and dabbled in haskell, but it always seemed too much of an investment to bring anybody who doesn't already like haskell into the project. But they did add deriving_via to haskell recently, so maybe I change my decision :P
I know, Bjarne Stroustrup seems to hate EC++ and claims it is dead, but tell that to game developers and the NASA Curiosity Mars Rover. You can't tell that to Opportunity, which does appear dead, but Embedded C++ is not to blame, just some dust storms on Mars.
Going with Rust too, while most of my company is starting to embrace Go. I feel like the weird guy, but having a strong Java/C# experience I think Rust complements my knowledge.
Learning by book (O'Reilly) and by nano projects / examples.
Admittedly learning a new programming language is very far down my "teach myself something programming related" priority list, if I was to learn a new language it will either be Julia or Elixir.
I'm going to continue messing around with Go for webservices and server stuff. Going to try to pick up either R or Python or a little of both for ML and bioinformatics stuff.
C. I only know high level languages (JS, Ruby) but never delved into lower level ones. Not from lack of interest but rather lack of time. I'm going to change that this year.
The language is pretty performant, nice to write and read, OOP, portable, strong typed, etc. Can be used for scripting, backends, etc.
With Flutter, you can get Android and iOS apps with the same codebase and near native performance. Downside is, not every functionality is supported, but it's getting better every week.
AngularDart gets you webfrontends without touching JS. Ok, it compiles Dart2JS because browsers are not supporting Dart (yet), but I don't have to write JS/TypeScript myself.
This will get even greater in a few years when Google releases Fuchsia aka Android-replacement.
Ok, there are downsides: - no WASM support - VM based for use outside of a mobile device/browser - lack of some libs/frameworks - not widely supported (like on the big 3 in the cloud or default install on top10 distros)