Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Which programming language did you choose and why?

kepler

Novice
Joined
Jun 1, 2022
Messages
43
Location
Lechistan
Just google something like "most popular programming languages by job listings", there is a ton of those articles every year.

But I want to see "good ranking sites that you use". Everything I googled is shet according to you. I want to see good rankings. If you are using them it's a matter of copy pasting it here. :positive:
 
Joined
Dec 17, 2013
Messages
5,150
It does seem to pop up more than before, so maybe it is getting more popular than I thought, but at least I cured you of your silly beliefs about VB and Assembly. ;)
 

Rincewind

Magister
Patron
Joined
Feb 8, 2020
Messages
2,462
Location
down under
Codex+ Now Streaming!
Just google something like "most popular programming languages by job listings", there is a ton of those articles every year.

Written by who? I don't think working devs write those articles, just some journalists who wants to get more page hits. I've seen a few of those and they're rubbish.

Btw, this sounds very similar to the very things you criticised about TIOBE (emphasis mine, and Python is actually one of the more popular teaching languages as regular Python code more or less resembles procedural pseudo-code):

TIOBE just measures the number of web pages for a particular language. Obviously this rewards older languages over newer ones, more obfuscated languages over elegant and clear ones (since the former would need more guides and tutorials), can miss a language dying (since in many cases web pages can stay up for a long time, even if they are not being used much), and can also reward languages with relatively little real life value but that may be used in teaching curriculums (e.g. assembly or VB)

So Google hits are relevant when it's about Python, but not relevant for every other language? The coping ability of the human mind is a marvellous thing :)

Still, popularity doesn't mean shit, we've said that before, not even in web dev.
 
Joined
Dec 17, 2013
Messages
5,150
Just google something like "most popular programming languages by job listings", there is a ton of those articles every year.

This sounds very similar to the very things you criticised about TIOBE (emphasis mine, and Python is actually one of the more popular teaching languages as regular Python code more or less resembles procedural pseudo-code):

TIOBE just measures the number of web pages for a particular language. Obviously this rewards older languages over newer ones, more obfuscated languages over elegant and clear ones (since the former would need more guides and tutorials), can miss a language dying (since in many cases web pages can stay up for a long time, even if they are not being used much), and can also reward languages with relatively little real life value but that may be used in teaching curriculums (e.g. assembly or VB)

So Google hits are relevant when it's about Python, but not relevant for every other language? The coping ability of the human mind is a marvellous thing :)

Still, popularity doesn't mean shit, we've said that before, not even in web dev.

Read what I wrote slowly: job listings VS number of web pages. The former has to do with actual current jobs available, and the latter could have to do with anything, language's age and past, teaching resources, etc.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,322
1. You are conflating algorithm slow with language slow. Two completely different things. Language related performance is generally not a big deal today because it just adds some additional overhead to running code.

There is no confusion when you look at the program itself. If it's slow, it is slow. It doesn't matter how fast the language is in theory, or what is the paradigm, or if it's compiled or not. None of that matters, only how the program (game or anything else) feels. Slow programs are annoying to use, because there is a delay in everything you try to do, even if that delay is extremely short.
 

kepler

Novice
Joined
Jun 1, 2022
Messages
43
Location
Lechistan
It does seem to pop up more than before, so maybe it is getting more popular than I thought

C++ is not getting more popular. C++ was always popular.

but at least I cured you of your silly beliefs about VB and Assembly. ;)

Like I said two times before - I don't believe in anything here. I just used google. You cured me from trying to get through your thick skull tho.

Have a nice day.
 

J1M

Arcane
Joined
May 14, 2008
Messages
14,626
And if you claim that Python is not good for large projects, I would just list some of the behemoth applications out there using it as the main language (possibly with inserts from other languages where needed): Instagram, Quora, Youtube, DropBox, Pinterest, Spotify, Uber, Reddit, Netflix, Instacart, etc.

According to this page https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites Python is rarely used as the primary language. It is more suitable for glue code.

Pintereset, Quora etc. were startups with millions of funding, they could afford not to care about performance.

Lol, ok, so first you quote some wiki page to suggest Python is not even used (despite the companies themselves saying it was), then refute yourself by saying it was actually used by companies with the most funding. Umm... ok.

According to that page Pinterest is the only one that uses Python almost exclusively. Other websites use a combination of several languages and therefore Python is likely used as a glue code, the only thing it is capable of.

Quora is not mentioned in that page at all. I never said it does not use Python, because it is widely known that it does.

Uber is known to be an early adopter of Node.js and later Go. What is your basis for claiming that Uber uses Python?
Also, I believe YouTube's Python is being rewritten in Go.

Python is probably popular simply because it is good for the problems the type of low quality developer who ends up working at a university teaching first year students encounters.

At some point the industry will stop pretending object oriented was a good idea. But even before that happens it will be universally acknowledged that all languages should have type safety (probably via a linter for code that isn't compiled).
 

J1M

Arcane
Joined
May 14, 2008
Messages
14,626
Am I understanding it right that strictly speaking the majority of jobs for Java programmers is of in-office type, since it is so much adored by corpos, while a Python programmer has more opportunities to get a remote job?
There is such a shortage of qualified talent right now that basically all dev jobs can be remote if you want them to be.
 
Joined
Dec 17, 2013
Messages
5,150
Also, I believe YouTube's Python is being rewritten in Go.

Python is probably popular simply because it is good for the problems the type of low quality developer who ends up working at a university teaching first year students encounters.

So let me get this straight:

On one hand, you have the brilliant people who create these multi-billion dollar companies, and they often develop them in Python.

On the other, you have the middling level or worse white collar programmers who are brought in once these companies are already huge and established, just because given their size, they need a lot more manpower. These programmers generally have not had any original ideas of their own, and are simply implementing day-to-day code that other people design. In a lot of cases, they are complemented and/or outright replaced by outsourced companies in India or automation. These guys tend to work in Java/C#/JavaScript.

Looking at these 2 groups, you think the former group are the low quality developers? :lol:

Hate to burst your bubble bro, but it's the exact reverse. Python is a lot more powerful and elegant, allowing people with ideas quickly create amazing stuff, but since it gives so much freedom to the programmer, it only works with high quality people and also on relatively small teams for best results. Once you have average or worse programmers or giant teams, you need the rigidity and idiot-proofness of languages like Java/C#.

At some point the industry will stop pretending object oriented was a good idea.

What does this even mean?
 

J1M

Arcane
Joined
May 14, 2008
Messages
14,626
Also, I believe YouTube's Python is being rewritten in Go.

Python is probably popular simply because it is good for the problems the type of low quality developer who ends up working at a university teaching first year students encounters.

So let me get this straight:

On one hand, you have the brilliant people who create these multi-billion dollar companies, and they often develop them in Python.

On the other, you have the middling level or worse white collar programmers who are brought in once these companies are already huge and established, just because given their size, they need a lot more manpower. These programmers generally have not had any original ideas of their own, and are simply implementing day-to-day code that other people design. In a lot of cases, they are complemented and/or outright replaced by outsourced companies in India or automation. These guys tend to work in Java/C#/JavaScript.

Looking at these 2 groups, you think the former group are the low quality developers? :lol:

Hate to burst your bubble bro, but it's the exact reverse. Python is a lot more powerful and elegant, allowing people with ideas quickly create amazing stuff, but since it gives so much freedom to the programmer, it only works with high quality people and also on relatively small teams for best results. Once you have average or worse programmers or giant teams, you need the rigidity and idiot-proofness of languages like Java/C#.

At some point the industry will stop pretending object oriented was a good idea.

What does this even mean?
When this thread was started about game development language choice, it wasn't a Python advertisement, but yes. Anyone advocating for using a language that isn't strongly typed is a low quality/low information developer.

As some of the web development community accumulated enough programming experience, they eventually came to the same conclusion, which is exactly what has driven the explosive adoption of TypeScript.

It's no surprise that experimental startups founded by university students are written in whatever they happen to know at the time, which will often be the language taught in first year university. Also no surprise that the languages chosen by people who went from student -> researcher -> professor haven't been filtered with as much rigour as languages used in industry.

The OOP comment will make sense to you if you keep programming.
 
Last edited:
Joined
Dec 17, 2013
Messages
5,150
When this thread was started about game development language choice, it wasn't a Python advertisement, but yes. Anyone advocating for using a language that isn't strongly typed is a low quality/low information developer.

Ok, as I said to the others here who hate Python for some strange reason, you keep believing that while Python continues to be the #1 or #2 most popular language in the world year after year after decade, and is the language in which many new interesting websites/apps are built.

As some of the web development community accumulated enough programming experience, they eventually came to the same conclusion, which is exactly what has driven the explosive adoption of TypeScript.

You guys keep repeating this, not realizing the irony. Forced typing is training wheels for mediocre programmers, or a necessary requirement for very large teams. Good programmers can get by with no typing just fine, because you know your code well, you have a good feel for it, you know how things are supposed to work following good practices, so at any given time you can either "guess" the type of the variable just by seeing what it's doing, or worst case scenario, trace it a couple of steps to figure it out. In well structured and organized code, everything should be easy to read and understand. If you are a shitty programmer, on the other hand, then yes, reading spaghetti code is a nightmare, and having to guess the variable without a type is even worse. This is also the case on huge projects with a large number of programmers, simply because you can't be super familiar with every part of the code the same way.

Of course in the latter cases, you can still use type annotations in Python 3, as I already mentioned, but maybe your colleagues are so bad, they won't follow orders from the manager to do that, so you might need language enforced typing.


The OOP comment will make sense to you if you keep programming.

But what if I've been programming for longer than you've been alive, and it still doesn't make any sense to me? ;) Please enlighten me.
 

J1M

Arcane
Joined
May 14, 2008
Messages
14,626
You sound like someone who has never worked in a code base with more than 100,000 lines of code, let alone one with as many lines as a mature OS or SaaS product.

It's true that I am being rude to you, but I really don't like how your Python fetish has ruined what was a worthwhile thread.
 

Hirato

Purse-Owner
Patron
Joined
Oct 16, 2010
Messages
3,954
Location
Australia
Codex 2012 Codex USB, 2014 Shadorwun: Hong Kong
OOP is fine as a concept, problem is that too many people over do it.
It's not that they're writing bad code intentionally, but rather they've been taught that they have to use these patterns, even when these patterns don't make sense.
I think the concept is called "cargo-cult programming"


Personally I'm happy to make an interface and a single class to implement everything with a switch, with another class per plugin.
Whereas OOP aficionados will derive it into at least 20 classes, abstract classes, and interfaces with significant code duplication, and then do at least another 10 per plugin.
 
Joined
Dec 17, 2013
Messages
5,150
You sound like someone who has never worked in a code base with more than 100,000 lines of code, let alone one with as many lines as a mature OS or SaaS product.

And you sound like someone who just says general platitudes without backing any of them up with actual reasoning or logic. I've worked on various projects with millions of lines of code in different languages. Whether or not I would pick Python for a project or a different language would depend on the exact situation. After all, I never said Python should be used in every single situation or that it should replace all other languages. Average or worse programmers, very large team, etc, and you can certainly make a strong case for something like Java or C# being a far better fit than Python. But you don't seem to understand why that is, ie it's not because Python is lacking, it's because it was designed with certain principles in mind (programmer productivity, flexibility and freedom, elegance, etc), which allow it to be used to churn out beautiful code at breakneck speed in the right hands, but those same principles might turn out to be shortcomings when dealing with inferior programmers (because they will take the freedom and do stupid things with it) or on huge projects (because more generic/elegant code is harder to follow in this context).

But again, it's just silly to act like Python is not a great language when nearly all the new ground-breaking companies and websites use it for their initial stuff (before sometimes transitioning away once they grow big enough). The "they learn it in school" argument is retarded, since Java and other languages are taught in schools also.

OOP is fine as a concept, problem is that too many people over do it.
It's not that they're writing bad code intentionally, but rather they've been taught that they have to use these patterns, even when these patterns don't make sense.
I think the concept is called "cargo-cult programming"


Personally I'm happy to make an interface and a single class to implement everything with a switch, with another class per plugin.
Whereas OOP aficionados will derive it into at least 20 classes, abstract classes, and interfaces with significant code duplication, and then do at least another 10 per plugin.

In my experience, people often don't do enough OOP rather than too much OOP. Obviously if you just have a one-time procedure, there's no need to encapsulate it into a class, but code often happens to be of such nature that it's easy to imagine how to place it into a reusable object. Python, btw, is great for mix and matching classes with procedures, as needed.
 

Rincewind

Magister
Patron
Joined
Feb 8, 2020
Messages
2,462
Location
down under
Codex+ Now Streaming!
It's true that I am being rude to you, but I really don't like how your Python fetish has ruined what was a worthwhile thread.

12ibq7.jpg
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,322
Whereas OOP aficionados will derive it into at least 20 classes, abstract classes, and interfaces with significant code duplication, and then do at least another 10 per plugin.
If there is code duplication in OOP you are doing something wrong. I'm actually quite annoyed by all these forum messages and youtube videos on how OOP sucks, and then those people don't even know what OOP should be. The funniest are guys who are clearly using procedural paradigm and claim it's OOP's fault, which is often a problem in C/C++.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,224
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
I keep hearing complaints but so far I have no seen a concise, reasonable argument

There is no such a thing, 99.9999% of these arguments are just bikeshedding, not much different from discussions about using snake_case, CamelCase, tabs vs spaces, where to put the opening brace in braced languages, etc. All you have to do is look at something like Unreal Engine's codebase which has some class hierarchies of chaotic depths (e.g. ACharacter - notice that the page shows only the methods of that particular class and not the methods it inherits - also notice that the base UObject class has its own base classes), ignores ECS and data oriented programming practices that for years now are evangelized by people who go to conferences and yet Unreal Engine is at the apex of its popularity among both AAAAA+ and tiny solo dev studios even with some studios throwing out their own engines to switch to it.

I do point at Unreal Engine since it is a high profile engine with available code but i'm 100% sure tons of other engines and frameworks are basically the same thing.
 

Azdul

Magister
Joined
Nov 3, 2011
Messages
3,374
Location
Langley, Virginia
What's wrong with OOP? I keep hearing complaints but so far I have no seen a concise, reasonable argument
It does not fit our hardware architecture.

In OO program to call a method you need to go to VMT associated with specific instance of an object - then read address of virtual method - jump to it - and only then execute it. You cannot inline the method.

You cannot predict size of polymorphic object - so you cannot place them in memory in order. Your collection of objects is really a collection of pointers to various different addresses - and next few objects in collection cannot be loaded into cache ahead of time while you are processing current one.

It is not something that will go away with larger caches. Ryzen 5800x3d or Zen 4/5 offer larger and larger higher level caches - but you can always get faster code by fitting everything in lower level cache - which is 10 times smaller and 10 times faster.

Most commercially used so called OO languages do not go all the way - and do not make everything inherit from an 'object'. That's why sometimes you get programs that perform more or less acceptable.
 

Axioms

Arcane
Developer
Joined
Jul 11, 2019
Messages
1,512
It does not fit our hardware architecture.

In OO program to call a method you need to go to VMT associated with specific instance of an object - then read address of virtual method - jump to it - and only then execute it. You cannot inline the method.

You cannot predict size of polymorphic object - so you cannot place them in memory in order. Your collection of objects is really a collection of pointers to various different addresses - and next few objects in collection cannot be loaded into cache ahead of time while you are processing current one.

It is not something that will go away with larger caches. Ryzen 5800x3d or Zen 4/5 offer larger and larger higher level caches - but you can always get faster code by fitting everything in lower level cache - which is 10 times smaller and 10 times faster.

Most commercially used so called OO languages do not go all the way - and do not make everything inherit from an 'object'. That's why sometimes you get programs that perform more or less acceptable.
Isn't this just the same old "relational database" argument web programmers had 15 years ago?
 

Rodcocker

Arbiter
Joined
May 31, 2018
Messages
195
Speaking from my own experience doing OOP, I think the danger is that it becomes very easy to focus on paradigm itself and not the problem at hand. It is either trying to lock-in some upfront unchangable object pattern for a problem you don't fully understand yet; or simply churning out new classes without any thought because classes are good, right? All of a sudden the problem at hand becomes, oh I have this class, but I need state in this other class, but now I need a reference to that class. Oh my program stopped running because this object modified that object and I didn't expect that when dealing with it in my object. Or just hours and hours of, okay this class inherits from this class and that class inherits from that class, and so forth. These problems seem to go exponential as more people work on the same codebase.

But what problem is any of this solving exactly? Is it updating a database? Rendering data to the screen? Anything that is actually closing the gap on the program doing what it is meant to do? Nope, it is just some weird kind of code-bloat add-on that is all to easy to inflict on ourselves because a lot people have never experienced anything else so can't do anything else.

But it isn't OOP itself at fault. If done well it can be truly great. People just don't engage their brains or believe code needs to be complex to be good. You teach someone about inheritance? I know people who just do it because they can, not because they should.

The only motto I have now? Whatever the language, focus on the problem and not the paradigm. Keep it as simple as you can for as long as you can. A lot of coding is exploratory in some sense, you learn more about the problem the more you code. The true skill is creating a code base that is as simple as it can be given the complexity at hand, and yet doesn't close off any better decisions or approaches in the future. And that isn't a paradigm. That's hundreds and hundreds of little good decisions that just add up.
 
Last edited:

Axioms

Arcane
Developer
Joined
Jul 11, 2019
Messages
1,512
Speaking from my own experience doing OOP, I think the danger is that it becomes very easy to focus on paradigm itself and not the problem at hand. It is either trying to lock-in some upfront unchangable object pattern for a problem you don't fully understand yet; or simply churning out new classes without any thought because classes are good, right? All of a sudden the problem at hand becomes, oh I have this class, but I need state in this other class, but now I need a reference to that class. Oh my program stopped running because this object modified that object and I didn't expect that when dealing with it in my object. Or just hours and hours of, okay this class inherits from this class and that class inherits from that class, and so forth. These problems seem to go exponential as more people work on the same codebase.

But what problem is any of this solving exactly? Is it updating a database? Rendering data to the screen? Anything that is actually closing the gap on the program doing what it is meant to do? Nope, it is just some weird kind of code-bloat add-on that is all to easy to inflict on ourselves because a lot people have never experienced anything else so can't do anything else.

But it isn't OOP itself at fault. If done well it can be truly great. People just don't engage their brains or believe code needs to be complex to be good. You teach someone about inheritance? I know people who just do it because they can, not because they should.

The only motto I have now? Whatever the language, focus on the problem and not the paradigm. Keep it as simple as you can for as long as you can. A lot of coding is exploratory in some sense, you learn more about the problem the more you code. The true skill is creating a code base that is as simple as it can be given the complexity at hand, and yet doesn't close off any better decisions or approaches in the future. And that isn't a paradigm. That's hundreds and hundreds of little good decisions that just add up.
Modern C++ argues that you almost never want inheritance. All composition all the time. Obviously Java-style architecture astronauts are less programmers than misguided mystics.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom