Kotlin I was following up Kotlin from the initial days. Now Since Google announced as official language for android, I am putting more focus on learning it. I have a good experience with javascript, I believe I can quickly grasp the functional programming aspects of Kotlin. I love it :)
I want to learn Python. I believe that this is the language of the future. You can kickstart your AI, ML or data science journey in a sec, if you know Python.
It is great, easy to learn and you can do alot with few lines of code. I have started learning it recently and I'm totally hooked. For ML, you can use jupyter notebook and evaluate (run) each cell individually to get immediate result rather than writing the whole program and run later.
Rust - I've heard a lot of good things about it (like for example that Rust is everything Go wanted to be), and since I've been programming in C/C++ earlier, I think the learning curve won't be as steep.
C, because the Linux kernel is written in it, and i want to understand how it is build. Also itΒ΄s a clean and powerful language in my opinion. Later on maybe c++, because of game development.
I often say that: as long as kernels and their primary interfaces are written in C, there's good reason to learn it. It's not going away, and it's the most fundamental way to interact with your operating system.
You don't have to switch off pure C to write games. I'm writing a fully featured game in C. There's just a minor overhead wrapping C++ object methods so you can call them as C functions. That should only be required in the platform code anyway.
Wasn't expecting to see PHP, but I feel like maturity does get so overlooked as a quality of a language. Lack of maturity in so many ways is my absolute biggest frustration whenever I work with JavaScript.
Personally I'd rather use a stack that's tried and tested, and that I know will still be around in a few years time. I've had heaps of issues getting Node.js sites working after server upgrades, whereas PHP sites I created 10+ years ago are still happily running on PHP 7 with no issues and only minor updates required. For new sites I'd stick to PHP or ASP.NET, the server-side JavaScript ecosystem is just too volatile for me to even consider using it for any serious development.
I wasnt't expecting to learn PHP, actually. Python has been a dear friend for quite a few years, but for my projects often Django and even Flask felt like an overkill. And I often struggled with packages for functionality that seemed very important to me, especially user management. I had a very bad opinion about PHP, mainly because of Wordpress' wild source code, some very strange plugins from its ecosystem and documentation that is so scattered around the web and often not reliable. But Composer, Packagist, Symfony and also the great learning resources (Laracasts, Laravel-News.com) really are my go-to learning places right now.
After 15 years of PHP, Python/Django was a breath of fresh air... sandwiched in there was Ruby. I could never see Flask as overkill for anything, it is pretty much a framework with nothing - how did that become overkill?
Django with Rest Framework allows me to create backends in an instance with full admin CRUD for whatever front-end of the week (been through Angular, React and now Ember) I would do a bakeoff any day of the week against PHP and Laravel (I could even bake-off against myself, hehe...)
PHP has it's merits, but I am so glad to be rid of a the toolbox with too many dysfunctional hammers and screwdrivers.
Erlang (and Elixir). Despite being 20 years old, Erlang seem strikingly suited to many modern challenges (high availability, distributed processing, fundamentally concurrent, network transparent, live upgrades, etc).
I want to learn a functional language that I can use for backend development. At one point I thought that would be Elixir/Phoenix but now that I've written a lot of Elm code I've become very partial to strongly type languages. But then I look at Haskell and it doesn't seem nearly as practical is Elixir/OTP so it's likely I'll be learning Elixir this year.
From my point of view, Haskell seems less practical because there is very little writing on Haskell web frameworks written for regular folks like me. Phoenix and Elixir seem much more approachable for a relative newcomer to FP.
From my limited poking around, F# looks really cool.
Well, you cannot use Elixir outside of the Erlang VM because it is required as part of the language. But you don't have to dive into Erlang and write it as part of your day to day. One thing you will find after writing a bit of Elixir is that Erlang becomes more approachable and understandable. Elixir just expands out to Erlang using macros, and then compiles to Erlang VM byte code to be executed by the VM.
Yeah. Elixir doesn't really resemble Ruby as a language fundamentally, but the whole ecosystem was clearly designed to be friendly to the Ruby community's expectations.
I want to dive deeper into Elm. I did some tutorials a year ago, but much has changed in Elm-world so I need to revisit. There was much to be excited about with Elm, and it was refreshing compared to the JS ecosystem.
I'm kind of python-curious, too. ;-)
I spent the past year learning Elixir/Phoenix/VueJS, and I've learned so much. It was my first experience with functional programming.
What resources did you use for elixir/phoenix/vue? I'm planning to learn these now after dipping my toes in web dev (built an app for a client with nodejs/express, MySQL, bootstrap/jQuery). Thanks!
I kind of went deep....I read Programming Erlang (Joe Armstrong) -> Programming Elixir (Dave Thomas) -> Programming Phoenix (Chris McCord), because it was really my first experience with functional programming and I wanted to really grasp the the underlying language/concepts before tackling the web framework.
I was also curious and wanting to understand OTP further, so I read these two awesome books, too: Designing for Scalability with Erlang/OTP (Cesarini/Vinoski) and The Little Elixir & OTP Guidebook (Benjamin Tan Wei Hao).
It's possible you could be OK and up and running with just Programming Phoenix, though.
As for Vue, there were really just a few blog articles and the Vue guide when I was starting with it, so there are probably better resources now. Here's some dialogue on various ways to work with Vue/Phoenix...there are a few approaches whether you want to use Brunch or Webpack, or just have the Vue client completely separate and communication to Phoenix backend via API only. My app is using Brunch+Vue within the Phoenix framework.
Thank you so much for the detailed reply! I have been thinking of buying Dave's book for a while. It's time I pulled the trigger ;)
Will also check Programming Phoenix.
I'm looking at some video tutorials for vue by Traversy Media, Eric Hanchett and others. It's good to know what build tools and setup others are using.
One more thing: while the Programming Phoenix book will be great for getting to know the framework, Phoenix 1.3 will be introducing some changes that you may want to just keep an eye on. Here's a write-up (and the video is the best overview): swanros.com/phoenix-1-3-is-pure-lo...
Top comments (235)
Kotlin I was following up Kotlin from the initial days. Now Since Google announced as official language for android, I am putting more focus on learning it. I have a good experience with javascript, I believe I can quickly grasp the functional programming aspects of Kotlin. I love it :)
I just started doing this free tutorial yesterday. You might also find it useful - iwillteachyoukotlin.com/
That's great.
I started Kotlin. I love it
I want to learn Python. I believe that this is the language of the future. You can kickstart your AI, ML or data science journey in a sec, if you know Python.
Python's wonderful
It is great, easy to learn and you can do alot with few lines of code. I have started learning it recently and I'm totally hooked. For ML, you can use jupyter notebook and evaluate (run) each cell individually to get immediate result rather than writing the whole program and run later.
Rust - I've heard a lot of good things about it (like for example that Rust is everything Go wanted to be), and since I've been programming in C/C++ earlier, I think the learning curve won't be as steep.
you would love to read rust book second edition! I think Rust's learning struggle is the borrow checker.
Wow, thank you!
Just the thing I need :)
C, because the Linux kernel is written in it, and i want to understand how it is build. Also itΒ΄s a clean and powerful language in my opinion. Later on maybe c++, because of game development.
I often say that: as long as kernels and their primary interfaces are written in C, there's good reason to learn it. It's not going away, and it's the most fundamental way to interact with your operating system.
You don't have to switch off pure C to write games. I'm writing a fully featured game in C. There's just a minor overhead wrapping C++ object methods so you can call them as C functions. That should only be required in the platform code anyway.
PHP because it seems to have grown mature β and has Laravel with its fine ecosystem for business apps.
Wasn't expecting to see PHP, but I feel like maturity does get so overlooked as a quality of a language. Lack of maturity in so many ways is my absolute biggest frustration whenever I work with JavaScript.
Personally I'd rather use a stack that's tried and tested, and that I know will still be around in a few years time. I've had heaps of issues getting Node.js sites working after server upgrades, whereas PHP sites I created 10+ years ago are still happily running on PHP 7 with no issues and only minor updates required. For new sites I'd stick to PHP or ASP.NET, the server-side JavaScript ecosystem is just too volatile for me to even consider using it for any serious development.
Also see: Happiness is a Boring Stack: expatsoftware.com/articles/happine...
I wasnt't expecting to learn PHP, actually. Python has been a dear friend for quite a few years, but for my projects often Django and even Flask felt like an overkill. And I often struggled with packages for functionality that seemed very important to me, especially user management. I had a very bad opinion about PHP, mainly because of Wordpress' wild source code, some very strange plugins from its ecosystem and documentation that is so scattered around the web and often not reliable. But Composer, Packagist, Symfony and also the great learning resources (Laracasts, Laravel-News.com) really are my go-to learning places right now.
After 15 years of PHP, Python/Django was a breath of fresh air... sandwiched in there was Ruby. I could never see Flask as overkill for anything, it is pretty much a framework with nothing - how did that become overkill?
Django with Rest Framework allows me to create backends in an instance with full admin CRUD for whatever front-end of the week (been through Angular, React and now Ember) I would do a bakeoff any day of the week against PHP and Laravel (I could even bake-off against myself, hehe...)
PHP has it's merits, but I am so glad to be rid of a the toolbox with too many dysfunctional hammers and screwdrivers.
Same. I often find myself getting frustrated with JavaScript's volatile ecosystem.
Erlang (and Elixir). Despite being 20 years old, Erlang seem strikingly suited to many modern challenges (high availability, distributed processing, fundamentally concurrent, network transparent, live upgrades, etc).
I want to learn a functional language that I can use for backend development. At one point I thought that would be Elixir/Phoenix but now that I've written a lot of Elm code I've become very partial to strongly type languages. But then I look at Haskell and it doesn't seem nearly as practical is Elixir/OTP so it's likely I'll be learning Elixir this year.
OCaml is very similar yes and you can also have a look at F#
Also: Why does Haskell seem impractical? IMO it has quite strong support for Webbackends - have a look at Servant / Servant-Elm for example
From my point of view, Haskell seems less practical because there is very little writing on Haskell web frameworks written for regular folks like me. Phoenix and Elixir seem much more approachable for a relative newcomer to FP.
From my limited poking around, F# looks really cool.
Have you had a look at OCaml? It is very similar to Elm and in use at Facebook as part of the toolchain for Flow/Reason/Infer.
Elixir and Phoenix. I'm a huge Ruby/Rails fan and seeing Elixir/Phoenix resemble those makes me happy.
Can you learn Elixir without knowing Erlang?
Well, you cannot use Elixir outside of the Erlang VM because it is required as part of the language. But you don't have to dive into Erlang and write it as part of your day to day. One thing you will find after writing a bit of Elixir is that Erlang becomes more approachable and understandable. Elixir just expands out to Erlang using macros, and then compiles to Erlang VM byte code to be executed by the VM.
Absolutely, it's definitely a boon but far from a requirement
Yeah. Elixir doesn't really resemble Ruby as a language fundamentally, but the whole ecosystem was clearly designed to be friendly to the Ruby community's expectations.
Clojure, because Lisp is the only true programming language :P
I've just picked up "Clojure for the Brave and True" and its a wonderful introduction to the language.
lΜΆiΜΆsΜΆpΜΆ Java.
You might find this useful leanpub.com/programming-clojure/
I want to dive deeper into Elm. I did some tutorials a year ago, but much has changed in Elm-world so I need to revisit. There was much to be excited about with Elm, and it was refreshing compared to the JS ecosystem.
I'm kind of python-curious, too. ;-)
I spent the past year learning Elixir/Phoenix/VueJS, and I've learned so much. It was my first experience with functional programming.
What resources did you use for elixir/phoenix/vue? I'm planning to learn these now after dipping my toes in web dev (built an app for a client with nodejs/express, MySQL, bootstrap/jQuery). Thanks!
I kind of went deep....I read Programming Erlang (Joe Armstrong) -> Programming Elixir (Dave Thomas) -> Programming Phoenix (Chris McCord), because it was really my first experience with functional programming and I wanted to really grasp the the underlying language/concepts before tackling the web framework.
I was also curious and wanting to understand OTP further, so I read these two awesome books, too: Designing for Scalability with Erlang/OTP (Cesarini/Vinoski) and The Little Elixir & OTP Guidebook (Benjamin Tan Wei Hao).
It's possible you could be OK and up and running with just Programming Phoenix, though.
As for Vue, there were really just a few blog articles and the Vue guide when I was starting with it, so there are probably better resources now. Here's some dialogue on various ways to work with Vue/Phoenix...there are a few approaches whether you want to use Brunch or Webpack, or just have the Vue client completely separate and communication to Phoenix backend via API only. My app is using Brunch+Vue within the Phoenix framework.
elixirforum.com/t/how-to-get-phoen...
Have fun learning that stack...I know I did! :-)
Thank you so much for the detailed reply! I have been thinking of buying Dave's book for a while. It's time I pulled the trigger ;)
Will also check Programming Phoenix.
I'm looking at some video tutorials for vue by Traversy Media, Eric Hanchett and others. It's good to know what build tools and setup others are using.
One more thing: while the Programming Phoenix book will be great for getting to know the framework, Phoenix 1.3 will be introducing some changes that you may want to just keep an eye on. Here's a write-up (and the video is the best overview): swanros.com/phoenix-1-3-is-pure-lo...
:-)
Thanks once again! You should write a post about your experience learning Elixir/Phoenix and Vue. It will definitely help a lot of people :)