Page 2 of 2

Re: Language to learn after Python

Posted: Fri Nov 16, 2018 10:10 am
by kzinti
I do not believe that cross-platform is a requirement or a concern when learning how to program.

Re: Language to learn after Python

Posted: Fri Nov 16, 2018 10:20 am
by Seahorse
It's not^

Re: Language to learn after Python

Posted: Fri Nov 16, 2018 10:49 am
by Solar
It's not when all you are looking for is "learning how to program" for its own sake.

But you'll end up with one programming language that you know how to use. Which will also coin much of how you will think about programming when (if) you start out to learn the next language.

So there is a valid question of "what do I want to achieve with my programming, and where do I want to go from there".

So cross-platform capabilities, programming paradigm(s), applicability in a specific sector of programming, foreseeable demand in the employment market, all these can very well be requirements or concerns.

Re: Language to learn after Python

Posted: Tue Nov 20, 2018 8:57 pm
by ggodw000
kzinti wrote:
ggodw000 wrote:I think understanding of underlying hardware and memory topology etc will help greatly in learning language. If subject can not know what the memory is and what its purpose is, it is very difficult to grasp the context of pointer etc., Further down the road even advanced topics such as cache etc.,
This is a very good point. It's especially relevant to OS Dev and Game Programming.

If OP could elaborate on what he would like to achieve short/medium/long term, it could help determine what is the "right" next language to learn.
Yes and I am highly critical of myself. I have been programming in python/ c for years but always used simples and basic code: list, dictionary sometimes, simple pointer and referencing sometimes. Hell memory alloc/dealloc/free, i had to look up. It fits my purpose now since stuff is only myself mostly and sometimes couple more people, it do does not require performance.

I feel like doing more advanced programming, mthreading, gpu programming and performance optimization. That will get you deep into data struct: trees, balancing tree, all kinds of sorting algorithms, and cache related instructions.

There is one time only I had to resort to multithreading in python at a very basic level. The script requiring to log on multiple ssh console and does some job which sucked doing serially. However it was just launching bunch of functions in X number of batches of threads. No IPC, no mutex, no locks just each of them working in its own silo and fills return array slot with result with its PID.

Re: Language to learn after Python

Posted: Thu Dec 06, 2018 11:54 pm
by Seahorse
I thought coding my own spin clone of any classic video games would be a fun project. That or a GUI application such as a calendar or text editor. :)

(Like Pong, Tetris, or even Super Mario Bros.)

Re: Language to learn after Python

Posted: Fri Dec 07, 2018 1:52 pm
by nullplan
In that case I'd suggest starting small and working your way up. Start with a graphical text editor, that will get you up to speed on GUI programming basics. You're done when it's more usable than notepad.exe (Reaching for the low hanging fruit, there...).

Then maybe a calendar, since that is more involved. Games are even more involved since they require event-based programming, but also require things to happen on a timed basis. Most games only react to new inputs at the start of each frame. Now you only need to figure out what a "frame" is.

You are going to need support libraries for this. For 2D games, I've heard good things about SDL (so much so that several Steam games use it to great success). For the GUI, I'd stay as close to the metal as possible, i.e. xlib on Linux and WinAPI on Windows, but do bear in mind that I am a weirdo, and genuinely prefer C over C++.

Re: Language to learn after Python

Posted: Sat Dec 08, 2018 2:56 pm
by Solar
I'd like to mention wxWidgets at this point... a cross-platform GUI library that doesn't toss licensing into your path (hello Qt), and gives a "native" look and feel on the target OS.

Re: Language to learn after Python

Posted: Fri Dec 28, 2018 4:59 pm
by todalta
It depends on what you want to do.
For example, you may want to learn JavaScript for web development or C# for game development.
I personally would recommend learning about the layers of abstraction in computer architecture so you could gain more knowledge of how a computer works in general.
:wink: good luck

Re: Language to learn after Python

Posted: Wed Feb 27, 2019 11:14 pm
by ruchikadmore
it totally depends upon your interests
if you like to build PC or windows phone apps or you are looking your future in Microsoft go to C#
if you want to build android apps and also cross platform apps then learn Java
if you are an Apple-holic and want to build iOS and MAC apps and then choose objective C or Swift
if your more interested in game development then try C++

Re: Language to learn after Python

Posted: Tue Apr 02, 2019 2:41 am
by bigboyav
For OSdev, learning the gcc toolchain will help. For everything else, just stick to python.

Re: Language to learn after Python

Posted: Tue Apr 02, 2019 4:58 am
by Solar
...if "Python programmer" is what you're aiming for.

Guys, really. I thought we here were educated enough not to fall for the "one programming language should be enough for everybody" shtick anymore...

Re: Language to learn after Python

Posted: Sat Jan 25, 2020 7:09 am
by seL4cious
I think one of the important things to consider is that choosing a language is much less important than just writing (good) code. By this, I mean that so long as you're writing code, and you're actively making an effort to make it good code, then the language doesn't matter. One caveate is if that language allows you to be lazy about your code, then maybe shop around if it doesn't keep you from writing your best code. I personally feel like this applies to Perl, PHP and Javascript, but there are plenty of people out there who would do a good job of countering that opinion.

If you went for C#, C++, Java, Haskell, Rust, Typescript, Elixer, Kotlin, you won't be making any mistakes.

I do think that C is very important, regardless. It's is a great language for also learning the fundamentals underlying how a language interacts with the machine. Even if you end up writing your OS in C++ or Rust, have a solid C foundation goes a long way to informing you of important understandings that these langs can abstract away. I would say that C only becomes irrelevant if you only ever write browser front-end code. Even if you never do away with a garbage collector, a bit of experience with C gives you a phenomenal amount of contextual awareness of the underlying system.
Seahorse wrote:
kzinti wrote:I'd say C# is probably what you want to look at next. But really it depends on what kind of software you want to build. If you want to do OS Dev, then C or C++ would be better.
I think games will be fun to make so that's one of C# (or Java) things. I do want to try OS Dev one of these days though. Would learning in a specific order really be necessary?
No order needed. The better question to go by, I think, would be "what are the different languages like in terms of experience writing them?".

C: Asks you to do just about everything, with special mention to memory management. Feels like you're working directly with the physical machine sometimes. Feels slow to make something
C++: much faster to build something, but a massively sprawling eco-system, and different conventions (eg. what defines 'modern' C++?).
Java, and I'm assuming C# as well: frees you up to not worry about memory management. Features get written faster. Feel tied to the IDE

You get the idea.

Re: Language to learn after Python

Posted: Sat Jan 25, 2020 8:08 am
by mmdmine
to light up everyone: C# is cross platform (Windows, Linux, macOS, Android and iOS) and also it has been got open source (officially by Microsoft, by the name Roslyn Project).
learning a new language highly depends on your usage. I like Rust. It can be used for writing native apps for Linux or Windows, or writing an OS, or WebAssembly (i dont know what is it). it has a great and friendly build system, and the books included with compiler are awesome.
also I suggest you to take a look at F# (a functional programming language for .NET platform), or Kotlin (another functional programming language for JVM, Web and Android).

Re: Language to learn after Python

Posted: Mon Apr 20, 2020 8:53 pm
by rkennedy9064
mmdmine wrote:to light up everyone: C# is cross platform (Windows, Linux, macOS, Android and iOS) and also it has been got open source (officially by Microsoft, by the name Roslyn Project).
learning a new language highly depends on your usage. I like Rust. It can be used for writing native apps for Linux or Windows, or writing an OS, or WebAssembly (i dont know what is it). it has a great and friendly build system, and the books included with compiler are awesome.
also I suggest you to take a look at F# (a functional programming language for .NET platform), or Kotlin (another functional programming language for JVM, Web and Android).
I'd +1 this also. Professionally I do C# with dotnet core on Linux. They've done a really good job with their tooling. For OS development I do Rust. Both are pretty good languages, although Rust has a steep learning curve IMHO.