What is the best programming language to learn in 2020 and to teach others (as a trainer)?

Hi everyone,

What is the best programming language to learn in 2020 and to teach others (as a trainer)?

  • Kotlin
  • Ocaml
  • Elm
  • Rust
  • Elixir
  • Python
  • GO
  • Ruby
  • Julia
  • Javascript
  • C#

0 voters

Thanks in advanced

Not sure why Elixir exists as an option on ElixirForum. Haven’t most of us learned it already? :003:

I voted for Rust. I am learning it at a slow pace and I like it. Syntax is quirky and there are a few kinks that can leave you scratching your head but I muscled through most pretty quickly. It’s amazingly fast and its computation multiplexing story (read: transparently parallelise work) is improving regularly. Tokio scheduler, blessed official async/await standard due this year, bastion.rs framework that aims to partially replicate the BEAM in Rust are a few notable mentions. Rust’s runtime is not a replacement for the BEAM for now but it’s not that extremely far from it either, depending on your requirements. BEAM is still unbeatable.

Thought of voting for JS because it seems that some people actively try to unite the ecosystem but IMO it’s too early for that. It’s still a wild west so I figure it’s not a 2020 objective.

2 Likes

I created this choice to see how many people vote only for elixir and no other language or what other languages go with elixir for developers nowadays.

Also if your favorite languages is not in the list please feel free to post directly on the thread.

Some people are trying to replace C with Zig, and others want to replace Python with Nim. Both seem to periodically get attention on HN.

3 Likes

You forgot Erlang!

12 Likes

Sorry about that, I will add it right away.

Sent a request to the admins of the forum for the edit for adding Erlang to the poll.

:+1: :wink:

And if I am getting really picky I will say there is no lisp. Clojure is not a real lisp. :smile:

2 Likes

Depends on the purpose I guess. Clojure and Haskell are definitely worth looking into if the goal is to learn something new.

2 Likes

@aenglisc the goal is to learn something future proof that is productive and will become a standard in the next years.

  • future proof
  • productive
  • standard in next year
  • best to learn
  • to teach

It is a lot of expectations for a language…

For me it will be Rust, but only for practical reason.

2 Likes

@kokolegorille That is my personal goal in this poll, others may have other goals and other views. So please vote your favorite languages. It’s also a good way to see what languages are in trend and blend together with Elixir.

It depends on the purpose. If you want to teach a language for the purposes of Teaching languages, then Racket is unmatched. It’s not the most useful in the Industry, but it can teach you how, well, pretty much every single other language pattern works, from dynamic to typed to procedural to functional to OOP and all. You will make someone a better programmer overall in any language by teaching them the bulk of racket and it’s patterns.

If you are going to do web-work, then I’d say Rust or Elixir, depending.

For heavy CPU work, Rust, just outright, don’t even consider C/C++ anymore.

For whatever other purpose it all depends.

But yes, for a teaching language, teach Racket.

I voted for Rust only because it’s the more overall useful, but Racket is what I’d choose as a teaching language by far, but it wasn’t an option. :wink:

And if I am getting really picky I will say there is no lisp. Clojure is not a real lisp. :smile:

Go Racket. :wink:

CommonLisp is pretty awesome overall though, it’s a kitchen-sink language by far. Can be useful to learn it instead but then you’ll be learning it’s ecosystem instead of the ‘patterns’ that Racket more focuses on. ^.^

7 Likes

So update to the poll edit request from @rvirding:

Unfortunately discourse will have an error if the poll is edited.

To fix this how about creating a new poll with more languages and i will cast my vote again.

Maybe the admins of the forum would gather all the languages discussed here and create a new poll?

Also any other ideas are welcomed.

1 Like

Thanks @OvermindDL1 or mentioning Racket, I will have a look at it and see how it feels for me.

1 Like

i never use Rust because of :

  1. slow compile time
  2. cargo is just like npm, use actix, and check du -h . --max-depth=0 on your project directory
  3. there is no compelling reason yet to use Rust

and my boss doesn’t care what language I use, he just wants the product to be finished quickly & stable, so Python+MongoDB is great fit for me (or for anyone who want RAD)

but maybe i will use Rust for banking* application

3 Likes

Thanks for sharing your experience @jihantoro

This would be a good question for a community survey. Looks like there hasn’t been one since 2017. Official Yearly Elixir Users Survey?

It could be cool if EEF ran a beam wide survey.

4 Likes

UPDATE IMPORTANT:
Thanks to the wonderful team of admins of the site the following solution emerged:

To solve the missing languages request by @rvirding. We can only create a new poll with more languages and all the users will have to cast the vote again in it.

What does everyone think about this suggestion?

Also write more languages that you want to be added too the new poll.

Thanks in advance everyone for understanding the situation.

1 Like

Rust is indeed not for everybody. It’s looks to be aimed at dethroning C++ mostly. A lot of tasks can be done just fine in a lot of scripting languages and/or more focused-purpose dynamic languages like Erlang/Elixir.

I am currently exercising importing different public datasets into a DB with Elixir and will soon get to Rust to see if there’s any meaningful speed difference. But I am 90% sure that the true bottleneck will be the DB speed and not the language (especially Elixir; during my mostly amateur performance measurements I think I established that Elixir’s overhead in such loads is like 0.1% - 1.0%).