DizzySushi
DizzySushi

Which language should I start learning next?

Thinking of picking up a new language to learn this weekend, I know C++/Python/Java. Which one should I pick up?

13mo ago
ZestyUnicorn
ZestyUnicorn

If you all of these languages then I’d suggest get stronger on these 3 only. Just adding to your portfolio doesn’t makes sense unless you’re an expert in all of these

DancingPancake
DancingPancake

I agree on this. Languages are not important.

DizzySushi
DizzySushi

@RedbullMax I want to learn a new language just for fun not for career.

SillyMuffin
SillyMuffin
Cred13mo

I am learning GoLang.

DizzySushi
DizzySushi

golang is actually very nice

DancingDonut
DancingDonut

#grofer

BubblyWalrus
BubblyWalrus

Rust appears to be the next frontier.

DizzySushi
DizzySushi

everyone in this post is saying rust. waw

SwirlyBoba
SwirlyBoba

Don't learn a new language. Learn to do something new with language you know. That helps much more. Use your c++ skills on a Arduino or learn how python compiles to webassembly. That will help you much more.

You can try and learn haskell if you want to see a new language, but it's mostly useless to learn new languages given c++ Java and python are absorbing features from new languages all the time and newer version of c++ for example will have all features that you will see in the new language.

DizzySushi
DizzySushi

i agree. I just want to do something for fun. I am a super geek and I have already played enough with Arduino and RaspberryPi already xd

SparklyBiscuit
SparklyBiscuit

It depends on why you want to learn a new language. If you want to broaden your perspective on the field of computer science, then there are multiple options:

  1. Learn any functional language. Functional languages are different from procedural languages in a way that functional languages do not modify the state of a variable and treat everything like a function, unlike procedural languages which follow a series of steps updating the state of variables to achieve the desired result. Since state modification is not a concern, you'll never face concurrency-related problems using functional languages. If you are very much interested in mathematics and can model algorithms using mathematical identities, you'll never have to worry about the correctness of the program since the identity invariants never change. "Closure" is a very nice functional language that compiles into bytecode via JVM. I would highly recommend that you read "The Structure And Interpretation of Computer Programming (SICP)" book if you want to know more about functional programming. (By the way, "YCombinator" is a function in Lisp and Paul Graham chose to dedicate his love for Lisp by naming his VC fund company by the same name. Source: https://en.wikipedia.org/wiki/Fixed-point_combinator#Y_combinator)

  2. Learn "Rust". This seems to be the widely popular opinion on this thread and for a very strong reason too. Rust is a systems programming language that addresses modern hardware problems. It has been adopted by some of the prominent people in the world of computer science such as Linus Torvalds, John Carmack. In fact, it is the 2nd only language to be adopted by the Linux Kernel after C. Another beauty of Rust is that it compiles into wasm and allows you to write the code in both backend and frontend in Rust.

  3. Then, of course, there's JavaScript. The language that powers 95%+ of the web. It is a multi-paradigm language that supports both imperative and declarative paradigms. It is functional, it is object-oriented and it is procedural. It has a unique architecture that supported the creation of early webpages, but the architecture found its way into the backend as well in the form of Node.js. As long as you are not doing floating point operations, and you are building simple data-in data-out applications, nothing shines better than JavaScript IMO.

  4. There's Golang as well. But for some reason, I have never tried writing code in it after an introductory hello-world program in 2009.

  5. Of late, I've been intrigued by "Zig" as a language. Although I've not tried it, I hear great things about it and its ability to create very fast applications.

DizzySushi
DizzySushi

During college in my coding club they taught Haskell. I wish I paid more attention. Thanks for your answer. I will read it again and again.

SparklyBiscuit
SparklyBiscuit

@Vindhyachal Colleges are meant for exploration only. The real learning starts beyond the 4 walls of college. :D

I have ordered course textbooks and read them cover-to-cover when I encountered problems while building applications. And boy were they beautifully written!

GroovyWalrus
GroovyWalrus
Meesho13mo

Rust 👑

DizzySushi
DizzySushi

rust is king? damn

SquishyPenguin
SquishyPenguin
Yubi13mo

Why are people so in favour of Rust?

GroovyCupcake
GroovyCupcake

Google and MSFT also cheering for it

SwirlyBoba
SwirlyBoba

Rust is very hard to learn, but once you learn it, you can write c c++ like code with high level abstraction like python. I don't know if you have worked with c++, but think of a c++ with no segmentation faults and with many goodies like python.

SquishyQuokka
SquishyQuokka
Gojek13mo

I need to look into Rust as soon as possible now.

SleepyPickle
SleepyPickle

There aren't many jobs yet for it but I do love coding in Rust. The last language I felt well designed and happy with was c#. Absolute crap design are golang, java (obviously totally subjective and there are shit ton of jobs for these two).

SnoozyPotato
SnoozyPotato

Want to know more why do you think so?

SparklyNarwhal
SparklyNarwhal

Learn a FP or Systems language. Learn Rust, or OCaml. They bring something new to the table and give you a new mental model.

Discover more
Curated from across