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?

Joined
Dec 17, 2013
Messages
5,150
There are always trade-offs in the real world. And yet many start-ups still go with languages like Python and Ruby to develop their brilliant platforms, and then, once those platforms are huge, they might in some cases switch to more higher performing languages, but of course by that point, the ones coding are route programmers. So brilliant founders -> Python/Ruby, code monkey -> Java/Go/Scala/C#, etc. ;)
What makes you think that? Projection?

Facts? Almost every single cutting edge hi-tech company began in Python/Ruby, and in some cases stayed there.

Just because you're a code monkey in a typical failing startup run by a marketing grifter doesn't mean highly successful startups are like that. They start with good programmers and replace them with monkeys as the company goes to shit. Good programmers don't work for inferior programmers if they can help it.

TIL: higher performing languages are used by code monkeys.

Checks out.

Don't feel bad, guys. I just meant there are brilliant people who come up with innovative ideas and change the world, and they use high level languages like Python and Ruby, and then there are code monkeys, people that just program as a day job. But of course the world needs those too, so don't feel like you are not needed. ;)
 

Azdul

Magister
Joined
Nov 3, 2011
Messages
3,374
Location
Langley, Virginia
Mono 5 introduced incremental GC as a feature preview at the end of 2018. Hellion was released for early access in 2017. What GC was Hellion using?

Hellion lived until 2020, plenty of time to upgrade to Mono 5.
Unity3D was stuck at Mono 2.10 until about 2020, so while possible, it's very unlikely.
Unity version from around 2016 was infamous for its performance. Broforce with its 2D lo-fi graphics was constantly dipping well below 30 fps on Playstation 4.

In other news - Unity just fired 300-400 people from AI and engineering departments.
 

Arbiter

Scholar
Joined
Apr 22, 2020
Messages
2,501
Location
Poland
Mono 5 introduced incremental GC as a feature preview at the end of 2018. Hellion was released for early access in 2017. What GC was Hellion using?

Hellion lived until 2020, plenty of time to upgrade to Mono 5.
Unity3D was stuck at Mono 2.10 until about 2020, so while possible, it's very unlikely.
Unity version from around 2016 was infamous for its performance. Broforce with its 2D lo-fi graphics was constantly dipping well below 30 fps on Playstation 4.

In other news - Unity just fired 300-400 people from AI and engineering departments.

Not fired, but laid off.
 

Raghar

Arcane
Vatnik
Joined
Jul 16, 2009
Messages
22,653
Isn't that the same? And why they had 300 people in AI departments? AI is typically done in 1-3 people. Max is about 12. (Or are they talking about people who are doing simple scripting the same as about real AI researchers?)
 

Burning Bridges

Enviado de meu SM-G3502T usando Tapatalk
Joined
Apr 21, 2006
Messages
27,562
Location
Tampon Bay
Men the last few pages have been pretty stupid. Don't get trolled.

I find him amusing. Because he probably really believes he can impress anyone.

I remember we had such an idiot in the first semester. In all programming courses he asked why not all programs were written in assembly language. When the prof began a course with a very simple example program with basic filehandling he said he could do that with 16 bytes. At the end of the semester he wasn't around anymore, I assume he got a job in some computer shop where he still writes assembly language.

I have seen several such guys, they always asked questions in every lecture, then began entering a monologue as if they were taking over the lecture. The profs also showed how to deal with it. He would simply continue with his lecture, for a while they would both be talking at the same time and eventually the moron became silent.
 

Not.AI

Learned
Joined
Dec 21, 2019
Messages
305
"AI is typically done in 1-3 people. Max is about 12."

Right, it's a strange announcement, max like at around 15. A couple of teams is usually all.

Not surprised about news. Unreal runs so better than Unity, looks so much better, tools for it better; catch-up is hard. The only place it loses popularity is you need to be able to compile it. Making a team reliant on other tools they may not want to use.
 

Burning Bridges

Enviado de meu SM-G3502T usando Tapatalk
Joined
Apr 21, 2006
Messages
27,562
Location
Tampon Bay
I believe the question was asked about good program written in Python?

I don't do Python myself (because I dont need it) but a good example that I have seen is Ortho4XP. It is a very useful tool that is downloading and copying lots of stuff for you, from Google, Bing, ARC etc and generating scenery for a flight sim. It can run a whole night but no one cares because the next morning you will have hundreds of Gigabytes of scenery all neatly arranged for you. And it's done by just 1 or 2 guys I think, who knows how much more work it would be in a different language.

The point is that any performance consideration goes completely out of the window when stuff takes longer to download and copy. I think also that is the area where such languages shine, ie when you reach the limits of batch files, and want to do lots of stuff inside a shell, those languages give you fantastic new opportunities.

But for a high performance UI and backend, who would seriously chose something like that?
 

gaussgunner

Arcane
Joined
Jul 22, 2015
Messages
6,158
Location
ХУДШИЕ США
But for a high performance UI and backend, who would seriously chose something like that?
Instagram? Pinterest? Reddit? Youtube? Google? But hey, if facts hurt, you can always just say they are trolling you.
They don't use Python for high performance applications. It's a scripting and integration language.

While some Python features and libraries are implemented in fast C and have good performance if used as intended, overall it's abysmal.
 

Burning Bridges

Enviado de meu SM-G3502T usando Tapatalk
Joined
Apr 21, 2006
Messages
27,562
Location
Tampon Bay
c'mon porky the jig is up. Those examples are mostly just junk to steal the life-time of millenials. Our users have much different problems and much more serious demands than clicking through ads and frolic because images automatically have round corners.

Youtube has some shitty UI that drives you nuts if you have more than a dozen things in a lists, everyone hates Pinterest, Reddit is cancer and I don't think I have even used Instagram ever.

I only use google drive which is ok but it falls under the category that downloading files takes most of the time anyway.

I think I actually gonna do a program in Python soon that merges csv files together, should be great for that.
 

Rincewind

Magister
Patron
Joined
Feb 8, 2020
Messages
2,462
Location
down under
Codex+ Now Streaming!
It is a very useful tool that is downloading and copying lots of stuff for you, from Google, Bing, ARC etc and generating scenery for a flight sim.
Oh yeah, I even mentioned a few times that it has its uses, no doubt about that. For some reason it was a lot more popular like a decade ago, so there's lots of useful libraries for it , e.g. for web scraping stuff. That's typically network bound, so who cares that the language itself is dog slow — if it works, it works.

We were discussing the merits of the language itself; it's quite obvious for anybody who's not deluded or a fanatic that it's a terrible idea to start some serious big project in Python these days. Like you correctly identified Burning Bridges, replacing more complex shell scripts with Python is another area where it's still relevant (convenience plays a large part in that, as Python is included by default in virtually all Linux distros and in macOS).

I guess that is the reason why some startups picked it up as the main development language for web-only stuff a decade or more ago. The perception (and perhaps even the reality) back then was that you can develop stuff in "dynamic" languages faster (whether that's actually true even medium-term, I very much doubt it, but it can feel faster in the beginning). In startups like that time to market is the primary consideration, doesn't matter if v1.0 is a piece of shit technically and a maintenance burden, it only needs to barely function so you get your next round of funding money, then you can rewrite the whole crap anyway.

Ironically, Porky is right that CEO/CTOs of startups picked up Python & Ruby a lot more often in the past; usually these people are hucksters with just enough technical knowledge to be dangerous, so they probably just picked up some dynamic language because other startups did the same, read an article about it, or believed that it would help them produce their v1.0 prototypes faster. What gets forgotten is that 99.99% of huckster-lead startups fail, so there's a large dose of survivor bias in that "brilliant companies use Python" argument... "Brilliant" is also relative — they can be financially successful and still have a net-negative effect on mankind as a whole.

That's ironically the Achilles heel of Porky's argument — now that strongly typed languages with good type inference that *also* compile quickly are widespread, there's very little reason to fuck around with something inferior like Python (or Ruby, or whatever). Basically, the relative "popularity" of it you can still somewhat observe is due to inertia. Plus some researchers/academics who are not primarily coders picked it up for scientific stuff, but that's changing quickly as people are migrating to better options that are just as easy to use but perform several orders of magnitude better (e.g. for AI, data analysis, statistics, etc.)

For example:

https://github.com/mratsim/Arraymancer

Arraymancer is a tensor (N-dimensional array) project in Nim. The main focus is providing a fast and ergonomic CPU, Cuda and OpenCL ndarray library on which to build a scientific computing ecosystem.

The library is inspired by Numpy and PyTorch and targets the following use-cases:

...

The ndarray component can be used without the machine learning and deep learning component. It can also use the OpenMP, Cuda or OpenCL backends.

Note: While Nim is compiled and does not offer an interactive REPL yet (like Jupyter), it allows much faster prototyping than C++ due to extremely fast compilation times. Arraymancer compiles in about 5 seconds on my dual-core MacBook.

For many real-world problems no computer in existence is fast enough. And when compilation times for complex projects go down to a few seconds, dynamic languages start to lose all their advantages, basically.

For reference, when I'm recompiling DOSBox on my Mac after making changes to implementation files only, recompilation is less than 2 seconds with Meson.

A strong argument *for* dynamic languages is LISP, where you can modify the running program, hot replace functions, and do many other interesting things. However, some of the cool LISP functionality has been replicated in JVM debuggers. I would personally only bother with dynamic languages if it's a LISP or Scheme.
 
Last edited:

Rincewind

Magister
Patron
Joined
Feb 8, 2020
Messages
2,462
Location
down under
Codex+ Now Streaming!
I think I actually gonna do a program in Python soon that merges csv files together, should be great for that.
Yeah, CVS manipulation is one thing I still use Python for, apart from web scraping. But it's more out of habit, Nim also has some nice CSV libraries, so maybe I'll just ditch Python for my next CSV manipulation script.
 

Burning Bridges

Enviado de meu SM-G3502T usando Tapatalk
Joined
Apr 21, 2006
Messages
27,562
Location
Tampon Bay
Do you have something better that I could use?

It's just a small project, I could try to do it in batch files but that would be too limited, eventually they will want more features I think. And it's psychological, it makes people feel "uneasy" to use batch files.

It's basically just to merge csv files into larger ones, based on some requirements and metadata like dates and ids.
 

Rincewind

Magister
Patron
Joined
Feb 8, 2020
Messages
2,462
Location
down under
Codex+ Now Streaming!
Do you have something better that I could use?

It's just a small project, I could try to do it in batch files but that would be too limited, eventually they will want more features I think. And it's psychological, it makes people feel "uneasy" to use batch files.

It's basically just to merge csv files into larger ones, based on some requirements and metadata like dates and ids.
Actually I forgot, I used Nim the last time for CSV stuff :)

It's an easy language to pick up, but it has a bit of a learning curve. It has Python indentation syntax, which I personally like, but it puts off some people.

This is the CSV module from the stdlib:
https://nim-lang.org/docs/parsecsv.html

Full-featured date/time module:
https://nim-lang.org/docs/times.html#$,DateTime

There's some excellent introductory material here. You can easily pick up what you need to know for your task in an hour or two max.
https://nim-lang.org/documentation.html

Here's some simple benchmarks, Nim version is 3-4x faster than the Python implementation — not a huge difference, but could matter for large files.
https://bitbucket.org/ewanhiggs/csv-game/src/master/
 

Jasede

Arcane
Patron
Joined
Jan 4, 2005
Messages
24,793
Insert Title Here RPG Wokedex Codex Year of the Donut I'm very into cock and ball torture
It is a very useful tool that is downloading and copying lots of stuff for you, from Google, Bing, ARC etc and generating scenery for a flight sim.
Oh yeah, I even mentioned a few times that it has its uses, no doubt about that. For some reason it was a lot more popular like a decade ago, so there's lots of useful libraries for it , e.g. for web scraping stuff. That's typically network bound, so who cares that the language itself is dog slow — if it works, it works.

We were discussing the merits of the language itself; it's quite obvious for anybody who's not deluded or a fanatic that it's a terrible idea to start some serious big project in Python these days. Like you correctly identified Burning Bridges, replacing more complex shell scripts with Python is another area where it's still relevant (convenience plays a large part in that, as Python is included by default in virtually all Linux distros and in macOS).

I guess that is the reason why some startups picked it up as the main development language for web-only stuff a decade or more ago. The perception (and perhaps even the reality) back then was that you can develop stuff in "dynamic" languages faster (whether that's actually true even medium-term, I very much doubt it, but it can feel faster in the beginning). In startups like that time to market is the primary consideration, doesn't matter if v1.0 is a piece of shit technically and a maintenance burden, it only needs to barely function so you get your next round of funding money, then you can rewrite the whole crap anyway.

Ironically, Porky is right that CEO/CTOs of startups picked up Python & Ruby a lot more often in the past; usually these people are hucksters with just enough technical knowledge to be dangerous, so they probably just picked up some dynamic language because other startups did the same, read an article about it, or believed that it would help them produce their v1.0 prototypes faster. What gets forgotten is that 99.99% of huckster-lead startups fail, so there's a large dose of survivor bias in that "brilliant companies use Python" argument... "Brilliant" is also relative — they can be financially successful and still have a net-negative effect on mankind as a whole.

That's ironically the Achilles heel of Porky's argument — now that strongly typed languages with good type inference that *also* compile quickly are widespread, there's very little reason to fuck around with something inferior like Python (or Ruby, or whatever). Basically, the relative "popularity" of it you can still somewhat observe is due to inertia. Plus some researchers/academics who are not primarily coders picked it up for scientific stuff, but that's changing quickly as people are migrating to better options that are just as easy to use but perform several orders of magnitude better (e.g. for AI, data analysis, statistics, etc.)

For example:

https://github.com/mratsim/Arraymancer

Arraymancer is a tensor (N-dimensional array) project in Nim. The main focus is providing a fast and ergonomic CPU, Cuda and OpenCL ndarray library on which to build a scientific computing ecosystem.

The library is inspired by Numpy and PyTorch and targets the following use-cases:

...

The ndarray component can be used without the machine learning and deep learning component. It can also use the OpenMP, Cuda or OpenCL backends.

Note: While Nim is compiled and does not offer an interactive REPL yet (like Jupyter), it allows much faster prototyping than C++ due to extremely fast compilation times. Arraymancer compiles in about 5 seconds on my dual-core MacBook.

For many real-world problems no computer in existence is fast enough. And when compilation times for complex projects go down to a few seconds, dynamic languages start to lose all their advantages, basically.

For reference, when I'm recompiling DOSBox on my Mac after making changes to implementation files only, recompilation is less than 2 seconds with Meson.

A strong argument *for* dynamic languages is LISP, where you can modify the running program, hot replace functions, and do many other interesting things. However, some of the cool LISP functionality has been replicated in JVM debuggers. I would personally only bother with dynamic languages if it's a LISP or Scheme.
The company I worked at, before the one I work at now, made database software. The C++ thing I worked on took 3 hours to compile on a 32-core industrial grade workstation.


Just so people can get an idea about compilation times.


Our solution was to use a compilation cluster. But even then it would still take 20-40 minutes.
 

Rincewind

Magister
Patron
Joined
Feb 8, 2020
Messages
2,462
Location
down under
Codex+ Now Streaming!
The C++ thing I worked on took 3 hours to compile on a 32-core industrial grade workstation.
Yeah, but C++ is notorious for that because of the lack of a proper module system. It doesn't have to be like that for all compiled languages, you realise that. E.g. it's not the case at all for JVM languages, neither languages that transpile to C/C++ but structure the generated code so that it doesn't require a full recompilation after every small change.
 

Jasede

Arcane
Patron
Joined
Jan 4, 2005
Messages
24,793
Insert Title Here RPG Wokedex Codex Year of the Donut I'm very into cock and ball torture
Oh yes I'm aware. Just saying it would have sped up my work a lot if it weren't for those enormous times. I'm supporting your argument that strongly typed languages that compile quickly have many advantages.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,322
The company I worked at, before the one I work at now, made database software. The C++ thing I worked on took 3 hours to compile on a 32-core industrial grade workstation.


Just so people can get an idea about compilation times.
My roguelike project Kaduria compiles (full rebuild) in 1 minute with a i5 processor. It has 63K lines of code. Not only that, I rarely use full build, because I'm using an IDE that compiles only files that have changed so the "compile time" is usually couple of seconds. How about that for an idea? In my opinion extremely long compile times are a result of shitty programming.
 

Rincewind

Magister
Patron
Joined
Feb 8, 2020
Messages
2,462
Location
down under
Codex+ Now Streaming!
The company I worked at, before the one I work at now, made database software. The C++ thing I worked on took 3 hours to compile on a 32-core industrial grade workstation.


Just so people can get an idea about compilation times.
My roguelike project Kaduria compiles (full rebuild) in 1 minute with a i5 processor. It has 63K lines of code. Not only that, I rarely use full build, because I'm using an IDE that compiles only files that have changed so the "compile time" is usually couple of seconds. How about that for an idea? In my opinion extremely long compile times are a result of shitty programming.
63k lines of code is small change, man...
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,322
63k lines of code is small change, man...
I don't get paid by lines of code, that's why I can do with less LOC and get the results I want. I don't care if some dumbass project has millions of lines of code. It's usually crap anyway. Slow, badly managed open source projects are like that.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,322
We're talking about compilation times, bro.
Bloated bad programming increases compilation time. But if you are even a decent programmer then compilation time is not a big problem.
 

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