OSDev.org

The Place to Start for Operating System Developers
It is currently Sat May 30, 2020 10:01 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2
Author Message
 Post subject: Re: Language to learn after Python
PostPosted: Fri Nov 16, 2018 10:10 am 
Offline
Member
Member

Joined: Mon Feb 02, 2015 7:11 pm
Posts: 358
I do not believe that cross-platform is a requirement or a concern when learning how to program.

_________________
https://github.com/kiznit/rainbow-os


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Fri Nov 16, 2018 10:20 am 
Offline
Member
Member

Joined: Sat Dec 03, 2016 3:13 am
Posts: 49
It's not^


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Fri Nov 16, 2018 10:49 am 
Offline
Member
Member
User avatar

Joined: Thu Nov 16, 2006 12:01 pm
Posts: 7461
Location: Germany
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.

_________________
Every good solution is obvious once you've found it.


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Tue Nov 20, 2018 8:57 pm 
Offline
Member
Member

Joined: Wed Nov 18, 2015 3:04 pm
Posts: 355
Location: San Jose San Francisco Bay Area
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.

_________________
key takeaway after spending yrs on sw industry: big issue small because everyone jumps on it and fixes it. small issue is big since everyone ignores and it causes catastrophy later. #devilisinthedetails


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Thu Dec 06, 2018 11:54 pm 
Offline
Member
Member

Joined: Sat Dec 03, 2016 3:13 am
Posts: 49
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.)


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Fri Dec 07, 2018 1:52 pm 
Offline
Member
Member

Joined: Wed Aug 30, 2017 8:24 am
Posts: 457
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++.


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Sat Dec 08, 2018 2:56 pm 
Offline
Member
Member
User avatar

Joined: Thu Nov 16, 2006 12:01 pm
Posts: 7461
Location: Germany
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.

_________________
Every good solution is obvious once you've found it.


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Fri Dec 28, 2018 4:59 pm 
Offline

Joined: Sun Dec 23, 2018 9:00 pm
Posts: 1
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

_________________
https://github.com/todalta/LUNIS


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Wed Feb 27, 2019 11:14 pm 
Offline

Joined: Wed Feb 27, 2019 5:25 am
Posts: 2
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++


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Tue Apr 02, 2019 2:41 am 
Offline

Joined: Sat Dec 29, 2018 3:09 am
Posts: 10
For OSdev, learning the gcc toolchain will help. For everything else, just stick to python.


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Tue Apr 02, 2019 4:58 am 
Offline
Member
Member
User avatar

Joined: Thu Nov 16, 2006 12:01 pm
Posts: 7461
Location: Germany
...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...

_________________
Every good solution is obvious once you've found it.


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Sat Jan 25, 2020 7:09 am 
Offline

Joined: Tue Jan 21, 2020 6:28 am
Posts: 5
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.


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Sat Jan 25, 2020 8:08 am 
Offline
Member
Member

Joined: Sat Dec 28, 2019 5:19 am
Posts: 47
Location: Iran
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).

_________________
https://mmdmine.github.io


Top
 Profile  
 
 Post subject: Re: Language to learn after Python
PostPosted: Mon Apr 20, 2020 8:53 pm 
Offline
Member
Member

Joined: Wed Sep 01, 2010 3:54 pm
Posts: 36
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group