DEV Community

John 'BBQ' Wollner
John 'BBQ' Wollner

Posted on


See the Rusty Python Go

I want to learn a new language this year and am considering a couple of choices: Go, Rust or Python. My selection is based largely on them being more or less opposites of my native c#/.Net/Microsoft knowledge base, and their ability to create elegant and performant applications.

I'd like to get input on

  • what others would choose as a hobby language to learn
  • if not one of my choices, your selection criteria

Top comments (12)

drbearhands profile image

As a hobby language, I'd pick the one that is has the most interesting features or is somehow badass.
I think this excludes go. I just don't see how it's interesting. It's just a stripped down and lighter version of stuff we already had. Similarly Python's main point seems to be easy for beginners.
Rust on the other hand introduces some really new concepts so out of those three that's what I'd go with.

However, continuing in the line of languages that really offer something different:

  • Haskell (purely functional, lazy)
  • Idris (purely functional, dependent types)
  • Elm (beginner-friendly, purely functional, usefull framework)
  • ATS (a lot of interesting features, but maddening)
  • Clean (academic purely functional)
  • Prolog (logic language)
  • Mercury (logic language made for parallelism)
  • glsl (WebGL/OpenGL shaders)
  • Clash (Haskell for FPGAs)

Fair warning: I haven't used even half of these. Most are cool but not practical for any of the problems I have at hand.

rhymes profile image
rhymes • Edited

I'd choose Rust (though it's the only one of the three I don't know yet).

Some or Go's interesting aspects are: goroutines, "duck typing" interfaces, easy cross compilation with small self contained binaries and speed

Python is a great general purpose language but I wouldn't call it innovative in 2019...

Rust seems the most interesting among the three to pickup from scratch. No garbage collection, memory safe allowing fearless concurrency, small binaries with the possibility of cross compilation and it's a systems language, so you might be exposed to some concepts that are a bit abstracted by the higher level platforms you're using right now.

As a hobby, I would pick the most "challenging".

whitenoiseoss profile image
whitenoise • Edited

Python is a very practical language to learn, and while I would say that anyone should be familiar with it, it's not what I would call a "hobby language".

Go and Rust are both interesting languages. If you really want to dive into learning more computer science concepts like compilers, algorithms, data structures, etc, I would pick one of those up. I myself taught myself most of those concepts using Go.

I would consider Go a more practical choice than Rust. You can currently get hired as a Go developer, whereas I have not seen Rust very many times in job postings. Not that it isn't there, it's just not nearly as prevalent as Go at this time.

jwollner5 profile image
John 'BBQ' Wollner

I've pretty much committed to python for a few reasons partly because I have started with Raspberry Pi and the fact that it is now supported directly in SQL2017, which gives me ample opportunity to work with it professionally as well.

As for getting a job, I've been a MS stack dev for the better part of 25 years. Not really interested in changing. Plus I'm at what I hope is my last job til I keel over lol.

detunized profile image
Dmitry Yakimenko • Edited

I find Go pretty boring and lacking, the only new concept there is the green threads. Python is very practical but also boring. I recommend Rust, as it has new interesting concepts not found elsewhere. Considering your background, I'd also recommend F#. It's fun, interesting and offers new insights for a developer coming out of procedural or OOP. The added benefit: you would be able to add it to your toolbox as a .NET developer.

jwollner5 profile image
John 'BBQ' Wollner

I considered f#, but never really got enthused about it. If I were to go the functional route I'd probably do elixer or erlang. It sounds weird but I find the syntax intriguing

j0nimost profile image
John Nyingi

I have also been a .net developer for a while now and I began to see the need to branch out and learn a new language. This was because I was having a hard time getting customers who would like systems built using C#; Azure hosting is kinda expensive. I needed a language that would be easy to work with and also easy to host; I came down to two languages; Go and Python. The reason I choose both is because in my country(Kenya) Go hasn't really caught on, so many companies use; PHP, Python and Ruby. So the python option was to ensure I secure my future.

I choose Go, because of its simplicity and ease of learning. Go, offers all the attributes of a language I was looking for. Moving from C# to Go was easy thanks to its awesome community and good documentation.

jwollner5 profile image
John 'BBQ' Wollner

I would love to do 2 but not enough free time to do a decent job of it

victoravelar profile image
Victor Avelar

I will strongly recommend Golang, easy to learn, powerful and uprising.

bobhenkel profile image
Bob Henkel

Rust followed by go

anshulpatel25 profile image
Anshul Patel

I started learning Golang this year and I am pretty much amazed by the language.

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git