Putting the 'role' back in role-playing games since 2002.
Good Old Games
Donate to Codex
News Content Gallery About Donate Discord Contact
  • 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?

J_C

One Bit Studio
Patron
Developer Sad Loser
Joined
Dec 28, 2010
Messages
16,878
Location
Pannonia
Project: Eternity Wasteland 2 Shadorwun: Hong Kong
I wonder is there a single program written in Python that's useful for something. I'm not against Python in any way, just asking. We can keep talking about language features, but they don't really matter in the end. Only what you can produce with that language.
Python can be very powerful in data analyst tasks and machine learning if you are into those fields.
 

Arbiter

Learned
Joined
Apr 22, 2020
Messages
407
Location
Poland
nobody hires C programmers to do anything beyond post on forums about how C programmers are still employed

I think C is still quite popular in the embedded world.

Partly because it translates so well to native opcodes without much work from the compiler, or just for legacy support.
Example is Tesla, where their entire low level stack is C (native) or C++ IIRC - depending what components.

I believe the primary reason for using C/C++ is that automotive software needs to be real time, hence you cannot use garbage collected languages.

You probably know all this but

It's way more than that. GC aside, Managed languages are just slow and it's not just because of GC but having the intermediary JIT compilation of Bytecode / MSIL. It's totally inadequate for any kind of real time rendering / physics.. Look at Unity's approach to IL2CPP for example.

You could also make the argument that it's more easy to interface with hardware through unmanaged languages - that don't have that abstraction sitting between you and direct offsets in memory and don't need 40gigs of libraries to compile for a small embedded microprocessor, in Tesla's case though, it's mainly the execution time.

Tesla needs real time processing of pixel images to do "collision detection" / data interpolation and are heavily hardware integration focused.
Elon actually discusses this exact use case around their decision to use C / C++ - I forgot the link to the video though and could be misrepresenting - my memory is shit.

Tesla is hardly unique though, anything performance intensive, gaming, RDB optimization engines, etc follow this logic.

Generally you are right, but GC does not imply a managed language. For example, Go has a GC but it is compiled to native binaries.
 

Arbiter

Learned
Joined
Apr 22, 2020
Messages
407
Location
Poland
I wonder is there a single program written in Python that's useful for something. I'm not against Python in any way, just asking. We can keep talking about language features, but they don't really matter in the end. Only what you can produce with that language.
Python can be very powerful in data analyst tasks and machine learning if you are into those fields.

Yes, as an interface for C/C++ libraries. Python itself is not suitable for number crunching.
 
Joined
Dec 17, 2013
Messages
3,658
Pattern matching as in regular expressions? Python has a great re library that will do anything you need.

This is amusing. You insulted many people in this thread claiming that Java and C# are only suitable for cheap outsourced developers while Python is designed for 1ee7 haxx0rz. Yet I and Rincewind have proven that you understand neither simple concepts like default function arguments nor advanced ones like pattern matching. Is this thread a bad joke?

It is indeed amusing. Because I clearly got you pretty butthurt my friend. Let me guess, you are a cheap outsourced developer, always insecure about your skills, eh? :)

Also, I didn't really claim the above. What I actually said is that Python is what's everything cool is built in, by brilliant people with ideas. And then, once that cool stuff establishes itself, and those companies grow huge, then they often switch to languages with better performance and more idiot-proof features. That's the truth, bro, and if it hurts, well...

As far as default function arguments, I didn't come up agains that characteristic of lists in Python recently (I kinda vaguely remember something like that years ago), so I was just confused as to what you were doing, since it seemed like your method was basically replicating the functionality of the list's append method. That's why I called it spaghetti code. And pattern matching, I work with regex all the time, but never used pattern language on programs themselves. Oh well.


Lol, are you still so butthurt from the Elden Ring thread you have to come here and say silly stuff about Python to compensate? You will just cry some more... :)

My point is if you look at any language closely enough, you can find a ton of stuff to complain about. All the stuff you mentioned is fairly minor.
It is not minor, it shows the fact that Python designers confuse local variables (function arguments) with global variables (default values of function arguments are implemented as global variables and in Python those values may be mutable).

They don't confuse anything, local and global variables are generally distinct in Python, it's just a thing with lists in certain situations, I am too lazy to google why they did it this way right now, but again, once you get used to it, it's not a big deal. Every language has some silly shit like this.

The first example if it's true, ok so you get used to that, and adjust your code. If you are testing your code as you should, it won't ever cause any real issues.
By this logic assembly is a viable language because programs written in it work correctly as long as developers test them thoroughly.

Assembly is not unviable in most cases because of this, it's just really painful to code in. Python is the exact opposite. ;)

And if migrating from Python 2 from Python 3 was such a big deal, why has the language become even more popular since then?

Python is popular for the same reason PHP was popular in 2000s: it is easy to learn and therefore there is abundance of cheap developers. Are you claiming that PHP is a great language?

Migration from Python 2 to 3 was bad because for years some libraries only supported Python 2 while others only supported Python 3, making it impossible to combine them in a single Python program. Even Guido admitted that the transition was poorly handled: https://medium.com/codex/python-4-0-will-never-arrive-3d994dce54f1

Nope, this is nonsense from Python haters. It is very easy to learn, but so are lots of languages. Python is very easy to work in, which contrary to what people like you might think, is an extremely important benefit in real world programming. It also has a ton of libraries, great community and support, and so on. Great language bre.
As I said, I will prepare some code examples later this week.

I am already falling asleep...



I wonder is there a single program written in Python that's useful for something. I'm not against Python in any way, just asking. We can keep talking about language features, but they don't really matter in the end. Only what you can produce with that language.

Lol: https://www.botreetechnologies.com/blog/top-15-websites-built-with-python/
 

Rincewind

Magister
Joined
Feb 8, 2020
Messages
1,082
Location
down under
nobody hires C programmers to do anything beyond post on forums about how C programmers are still employed

I think C is still quite popular in the embedded world.

Partly because it translates so well to native opcodes without much work from the compiler, or just for legacy support.
Example is Tesla, where their entire low level stack is C (native) or C++ IIRC - depending what components.

I believe the primary reason for using C/C++ is that automotive software needs to be real time, hence you cannot use garbage collected languages.

Could be, I'm not too sure, but garbage collected and hard-realtime systems are not orthogonal concepts. There are GCs that are not the stop-the-world type; you can just let them run for a specified number of nanoseconds when you want. There's also GCs that work on a per-thread basis (Nim has both types, incidentally). From memory, I remember seeing some hard-realtime Java VMs specifically developed for such use cases (aviation and automotive industry).

The bigger problem is dynamic memory allocations; my understanding is that for really mission critical stuff memory fragmentation can be a real problem (suddenly you get an out of memory error, and your plane crashes... because it's dynamic, anything goes, it's next to impossible to reason about it). Therefore, the 100% safe way is to disallow dynamic memory allocation completely. That can be quite hard to achieve in high-level languages, and trivial to do in C.
 

NJClaw

OoOoOoOoOoh
Patron
Joined
Aug 30, 2016
Messages
7,126
Location
Pronouns: rusts/rusty
Pathfinder: Kingmaker
I'm Ridin' with Biden I'm Ridin' with Biden
Lol, are you still so butthurt from the Elden Ring thread you have to come here and say silly stuff about Python to compensate? You will just cry some more... :)
Can you stop being an insufferable retard for just a second? I said I love Python. I wrote my entire master thesis project in it. How can you be so unbelievably dumb to perceive even the most minuscule criticism as a personal attack? Interacting with you really is impossible and fundamentally useless.
 

TheImplodingVoice

Dumbfuck!
Dumbfuck
Joined
Oct 29, 2018
Messages
1,714
Location
Embelyon
I wonder is there a single program written in Python that's useful for something. I'm not against Python in any way, just asking. We can keep talking about language features, but they don't really matter in the end. Only what you can produce with that language.
There probably aren't many/any.

If you want to write an actual program you use C/C++ or Java. All other languages are useless.
 

Arbiter

Learned
Joined
Apr 22, 2020
Messages
407
Location
Poland
Pattern matching as in regular expressions? Python has a great re library that will do anything you need.

This is amusing. You insulted many people in this thread claiming that Java and C# are only suitable for cheap outsourced developers while Python is designed for 1ee7 haxx0rz. Yet I and Rincewind have proven that you understand neither simple concepts like default function arguments nor advanced ones like pattern matching. Is this thread a bad joke?

It is indeed amusing. Because I clearly got you pretty butthurt my friend. Let me guess, you are a cheap outsourced developer, always insecure about your skills, eh? :)

It is the opposite, I made a fool of you by proving to everyone in this thread that you fail to understand even basics like default function parameter values in Python, the simplest mainstream programming language in existence. This is not even bootcamp level. You should ask some intern to explain section 4.8.1 of Python tutorial to you: https://docs.python.org/3/tutorial/controlflow.html#default-argument-values

Also, I didn't really claim the above. What I actually said is that Python is what's everything cool is built in, by brilliant people with ideas. And then, once that cool stuff establishes itself, and those companies grow huge, then they often switch to languages with better performance and more idiot-proof features. That's the truth, bro, and if it hurts, well...

This is a blatant lie. New products are being built in at least several popular languages: Java/Kotlin/Scala, JavaScript/TypeScript, C#, Go (designed as Python replacement), Rust, etc. Python is just one of many.

It is Python which is idiot-proof because it lacks features present in more advanced languages.

As far as default function arguments, I didn't come up agains that characteristic of lists in Python recently (I kinda vaguely remember something like that years ago), so I was just confused as to what you were doing, since it seemed like your method was basically replicating the functionality of the list's append method. That's why I called it spaghetti code. And pattern matching, I work with regex all the time, but never used pattern language on programs themselves. Oh well.

You are lying, the syntax for default function arguments is the same regardless of argument type:
param_name = default_value_literal

This has nothing to do with lists, you simply fail to understand basics of Python syntax. I understand your confusion with lists, they are described in section 5.1 (https://docs.python.org/3/tutorial/datastructures.html#more-on-lists), i.e. after section 4.8.1 that you failed to understand.

;)

And if migrating from Python 2 from Python 3 was such a big deal, why has the language become even more popular since then?

Python is popular for the same reason PHP was popular in 2000s: it is easy to learn and therefore there is abundance of cheap developers. Are you claiming that PHP is a great language?

Migration from Python 2 to 3 was bad because for years some libraries only supported Python 2 while others only supported Python 3, making it impossible to combine them in a single Python program. Even Guido admitted that the transition was poorly handled: https://medium.com/codex/python-4-0-will-never-arrive-3d994dce54f1

Nope, this is nonsense from Python haters.
Nope, this is nonsense from Python haters.
Nope, this is nonsense from Python haters.

You have just called Guido van Rossum, the inventor of Python, a Python hater.

This is worthy of a signature. I am nominating you for the RPGCodex retard of the year award.

End of topic.
 
Last edited:

Orud

Learned
Patron
Joined
May 2, 2021
Messages
324
Strap Yourselves In
I learned a bit of Python to get the basics of programming, now I'm just finishing my Java Backend bootcamp. I can't really compare it to other languages since I haven't use others, but for now I enjoy Java.
I like modern Java, and I think it's still one of the better languages to learn early in your career/education. Far more Java concepts are re-usable in many other languages, than Javascript or Python.
 

Rincewind

Magister
Joined
Feb 8, 2020
Messages
1,082
Location
down under
Python is what's everything cool is built in [...]

by brilliant people with ideas. [...]

then they often switch to languages with better performance and more idiot-proof features [...]

That's the truth, bro
:hmmm:

This is starting to resemble our fortnightly backend dev meetings at work. There's one young dude in our group of ~10 who jumps at every single opportunity to peddle NodeJS to us older guys again and again. No matter that nobody gives a shit (we're Kotlin/Scala guys, basically), he just doesn't want to give up...
 

ScepticCat

Literate
Joined
Jun 12, 2022
Messages
11
Sometimes, I ask my second personality in a head "Why are people divided in different groups, nationalities and countries? Why can't we unite as a cohesive humanity, build starships, and find some aliens for kick their asses?". And then, my third personality replies: "Ha, look at an any programming language's thread".
 

Arbiter

Learned
Joined
Apr 22, 2020
Messages
407
Location
Poland
Sometimes, I ask my second personality in a head "Why are people divided in different groups, nationalities and countries? Why can't we unite as a cohesive humanity, build starships, and find some aliens for kick their asses?". And then, my third personality replies: "Ha, look at an any programming language's thread".

289552639_8281849445174073_3815101106181561702_n.png
 

ELEXmakesMeHard

Learned
Joined
Jun 19, 2021
Messages
422
I've been using SSIS, SAS, and Informatica, for ETL so far. Visual interface cuckery. This fall I'm making the switch to AWS CDK / infrastructure as code. Unclear what language I'm going to use so far. AWS is at such an early stage in our organization, and there's hardly any common standards so far -- just a bunch of small teams going with whatever approach they're most comfy with. Any opinions on the most practical language for AWS CDK? Mainly for transformation of data.

I've dipped my toes into .NET, Java, and Python so far. Need to make a decision on which one to go full autism on, soon.
 

Arbiter

Learned
Joined
Apr 22, 2020
Messages
407
Location
Poland
I've been using SSIS, SAS, and Informatica, for ETL so far. Visual interface cuckery. This fall I'm making the switch to AWS CDK / infrastructure as code. Unclear what language I'm going to use so far. AWS is at such an early stage in our organization, and there's hardly any common standards so far -- just a bunch of small teams going with whatever approach they're most comfy with. Any opinions on the most practical language for AWS CDK? Mainly for transformation of data.

I've dipped my toes into .NET, Java, and Python so far. Need to make a decision on which one to go full autism on, soon.

I recommend Java or other JVM languages like Kotlin or Scala. AWS SDK has good support for JVM.

AWS SDK support for Python is also good, but if your data transformations are not trivial then Python will cripple your performance so it is best to avoid it.

I have not used .NET with AWS so I cannot comment on SDK support. .NET itself is not popular nowadays, it is much harder to find .NET developers than Java or Python developers (at least in Europe) so I cannot recommend it. .NET also suffers from fragmentation: there is .NET, Mono and .NET Core with varying levels of support for different platforms. In a cloud env you will get the best bung for the buck if you use Linux and Linux is not a priority for .NET designers.
 

Rincewind

Magister
Joined
Feb 8, 2020
Messages
1,082
Location
down under
Any opinions on the most practical language for AWS CDK? Mainly for transformation of data.

Scala or Kotlin, naturally. Apache Spark, for example (another favourite tool of data scientists), is written in Scala, and although it supports other languges as well (Python, R, etc.), the native Scala interface is really nice.

You'll definitely want to look into at least the basics of functional programming and what the standard library has to offer (filter, map, flatMap, reduce, and friends).

One drawback I can think of when using JVM languages, though, is the relatively long startup time. But that depends on the infrastructure you're using; there are ways to keep the JVM in hot-standby mode in memory to reduce the startup delay to virtually zero.
 
Joined
Dec 17, 2013
Messages
3,658
Lol, are you still so butthurt from the Elden Ring thread you have to come here and say silly stuff about Python to compensate? You will just cry some more... :)
Can you stop being an insufferable retard for just a second? I said I love Python. I wrote my entire master thesis project in it. How can you be so unbelievably dumb to perceive even the most minuscule criticism as a personal attack? Interacting with you really is impossible and fundamentally useless.

You just keep getting more and more upset, just like in the Elden Ring thread, or the Shitmaker thread before that. Like this other guy: :)
It is the opposite, I made a fool of you by proving to everyone in this thread that you fail to understand even basics like default function parameter values in Python, the simplest mainstream programming language in existence. This is not even bootcamp level. You should ask some intern to explain section 4.8.1 of Python tutorial to you: https://docs.python.org/3/tutorial/controlflow.html#default-argument-values

Ok, since you seem to have problems understanding what I am writing here, let me break it down for you, again....

My issue was not with default values, it was with:
1. Why you were writing a method that called a function that did exactly what your method did, ie:

my_append(){
python_append()
}

I guess you were just using it to demonstrate, but it looked kinda retarded, and since everyting else you say also sounds a little retarded, I just optimized my response and called it spaghetti code, but don't get so upset. :)

2. It seemed what you were trying to show (in your own little retarded way) was that lists declared inside a Python method had scope outside the method, which is what I was talking about, but clearly went over your tiny head.

This is worthy of a signature. I am nominating you for the RPGCodex retard of the year award.

Well, I am sure it will be a tough battle against you, but I will try my best. ;)
 

Immortal

Arcane
Joined
Sep 13, 2014
Messages
4,152
nobody hires C programmers to do anything beyond post on forums about how C programmers are still employed

I think C is still quite popular in the embedded world.

Partly because it translates so well to native opcodes without much work from the compiler, or just for legacy support.
Example is Tesla, where their entire low level stack is C (native) or C++ IIRC - depending what components.

I believe the primary reason for using C/C++ is that automotive software needs to be real time, hence you cannot use garbage collected languages.

You probably know all this but

It's way more than that. GC aside, Managed languages are just slow and it's not just because of GC but having the intermediary JIT compilation of Bytecode / MSIL. It's totally inadequate for any kind of real time rendering / physics.. Look at Unity's approach to IL2CPP for example.

You could also make the argument that it's more easy to interface with hardware through unmanaged languages - that don't have that abstraction sitting between you and direct offsets in memory and don't need 40gigs of libraries to compile for a small embedded microprocessor, in Tesla's case though, it's mainly the execution time.

Tesla needs real time processing of pixel images to do "collision detection" / data interpolation and are heavily hardware integration focused.
Elon actually discusses this exact use case around their decision to use C / C++ - I forgot the link to the video though and could be misrepresenting - my memory is shit.

Tesla is hardly unique though, anything performance intensive, gaming, RDB optimization engines, etc follow this logic.

Generally you are right, but GC does not imply a managed language. For example, Go has a GC but it is compiled to native binaries.

Where did I say GC was restricted to managed languages?
 

Arbiter

Learned
Joined
Apr 22, 2020
Messages
407
Location
Poland
nobody hires C programmers to do anything beyond post on forums about how C programmers are still employed

I think C is still quite popular in the embedded world.

Partly because it translates so well to native opcodes without much work from the compiler, or just for legacy support.
Example is Tesla, where their entire low level stack is C (native) or C++ IIRC - depending what components.

I believe the primary reason for using C/C++ is that automotive software needs to be real time, hence you cannot use garbage collected languages.

You probably know all this but

It's way more than that. GC aside, Managed languages are just slow and it's not just because of GC but having the intermediary JIT compilation of Bytecode / MSIL. It's totally inadequate for any kind of real time rendering / physics.. Look at Unity's approach to IL2CPP for example.

You could also make the argument that it's more easy to interface with hardware through unmanaged languages - that don't have that abstraction sitting between you and direct offsets in memory and don't need 40gigs of libraries to compile for a small embedded microprocessor, in Tesla's case though, it's mainly the execution time.

Tesla needs real time processing of pixel images to do "collision detection" / data interpolation and are heavily hardware integration focused.
Elon actually discusses this exact use case around their decision to use C / C++ - I forgot the link to the video though and could be misrepresenting - my memory is shit.

Tesla is hardly unique though, anything performance intensive, gaming, RDB optimization engines, etc follow this logic.

Generally you are right, but GC does not imply a managed language. For example, Go has a GC but it is compiled to native binaries.

Where did I say GC was restricted to managed languages?

That is how I understood your comment: "It's way more than that. GC aside, Managed languages are just slow ...". If we interpreted that statement in different ways, we got that clarified now.
 

NJClaw

OoOoOoOoOoh
Patron
Joined
Aug 30, 2016
Messages
7,126
Location
Pronouns: rusts/rusty
Pathfinder: Kingmaker
I'm Ridin' with Biden I'm Ridin' with Biden
You just keep getting more and more upset, just like in the Elden Ring thread, or the Shitmaker thread before that. Like this other guy: :)
I give up. I swear I tried, but you're so entrenched in this cringy "trolololol" persona that it's impossible to have a reasonable conversation with you.

Just please take a step back and realize that I came here saying "I love Python" and your immediate reaction was "you're still butthurt, you're obsessed with me, cry some more". I don't know what being always so on the defensive means, but seeing you act like this every single time is kinda sad.
 

Tacgnol

Shitlord
Patron
Joined
Oct 12, 2010
Messages
1,870,198
Location
Pronouns: Shitlord/problematic
Codex 2016 - The Age of Grimoire Grab the Codex by the pussy RPG Wokedex Strap Yourselves In Shadorwun: Hong Kong Divinity: Original Sin 2 Pathfinder: Kingmaker
I wonder is there a single program written in Python that's useful for something. I'm not against Python in any way, just asking. We can keep talking about language features, but they don't really matter in the end. Only what you can produce with that language.

The wyre programs for the TES games I guess?

I can't think of many. It's mostly a few utilities that modders have written for various games.
 

ELEXmakesMeHard

Learned
Joined
Jun 19, 2021
Messages
422
I've been using SSIS, SAS, and Informatica, for ETL so far. Visual interface cuckery. This fall I'm making the switch to AWS CDK / infrastructure as code. Unclear what language I'm going to use so far. AWS is at such an early stage in our organization, and there's hardly any common standards so far -- just a bunch of small teams going with whatever approach they're most comfy with. Any opinions on the most practical language for AWS CDK? Mainly for transformation of data.

I've dipped my toes into .NET, Java, and Python so far. Need to make a decision on which one to go full autism on, soon.

I recommend Java or other JVM languages like Kotlin or Scala. AWS SDK has good support for JVM.

AWS SDK support for Python is also good, but if your data transformations are not trivial then Python will cripple your performance so it is best to avoid it.

I have not used .NET with AWS so I cannot comment on SDK support. .NET itself is not popular nowadays, it is much harder to find .NET developers than Java or Python developers (at least in Europe) so I cannot recommend it. .NET also suffers from fragmentation: there is .NET, Mono and .NET Core with varying levels of support for different platforms. In a cloud env you will get the best bung for the buck if you use Linux and Linux is not a priority for .NET designers.

Any opinions on the most practical language for AWS CDK? Mainly for transformation of data.

Scala or Kotlin, naturally. Apache Spark, for example (another favourite tool of data scientists), is written in Scala, and although it supports other languges as well (Python, R, etc.), the native Scala interface is really nice.

You'll definitely want to look into at least the basics of functional programming and what the standard library has to offer (filter, map, flatMap, reduce, and friends).

One drawback I can think of when using JVM languages, though, is the relatively long startup time. But that depends on the infrastructure you're using; there are ways to keep the JVM in hot-standby mode in memory to reduce the startup delay to virtually zero.

Thanks, very useful. :salute:

It appears that the majority of the teams (in my org) are using TypeScript. Do you think that's a worthwhile alternative (for AWS CDK & data transformation)? Or do you consider it to be a strictly worse alternative to Java/Kotlin/Scala?
 

Rincewind

Magister
Joined
Feb 8, 2020
Messages
1,082
Location
down under
It appears that the majority of the teams (in my org) are using TypeScript. Do you think that's a worthwhile alternative (for AWS CDK & data transformation)? Or do you consider it to be a strictly worse alternative to Java/Kotlin/Scala?
Use whatever the rest of the people are using so you can get help.

TypeScript itself is actually not that bad, a very big improvement over plain JavaScript, that's for sure. NodeJS sucks and the standard library is a bit shit and is lacking in a lot of areas. People usually go foraging for various libraries to patch up the gaps. Given that people are already using it where you work, most likely they've already settled for a set of libraries to use, so I think that would be easier for you overall. You'll definitely learn some interesting concepts from TypeScript, e.g. structural typing.
 

Tacgnol

Shitlord
Patron
Joined
Oct 12, 2010
Messages
1,870,198
Location
Pronouns: Shitlord/problematic
Codex 2016 - The Age of Grimoire Grab the Codex by the pussy RPG Wokedex Strap Yourselves In Shadorwun: Hong Kong Divinity: Original Sin 2 Pathfinder: Kingmaker
I have not used .NET with AWS so I cannot comment on SDK support. .NET itself is not popular nowadays, it is much harder to find .NET developers than Java or Python developers (at least in Europe) so I cannot recommend it. .NET also suffers from fragmentation: there is .NET, Mono and .NET Core with varying levels of support for different platforms. In a cloud env you will get the best bung for the buck if you use Linux and Linux is not a priority for .NET designers.

At least in the UK, .NET is super common in the public sector as every government institution has site agreements with M$. That impacts private software houses as a lot of them do development for public sector companies.

Right now if you're half way knowledgeable with .NET core you can pretty much name your price, as most of us crusty .NET devs are mostly still used to using standard. Not that .NET core has a massive upskilling requirement.
 

Azdul

Magister
Joined
Nov 3, 2011
Messages
1,169
... make less method calls, prefer memory control over garbage collection (or end up with unity's performance/resource need), etc... . And even that area has become more and more forgiving as time and processing power has grown (again, the fact that Unity is what it is, is a perfect example of this).
Processing power is growing - but RAM size grows much faster than CPU single-threaded performance.

Original Fortran added 20% overhead when compared to manually written assembly code.

Nowadays - I would say that even predictable 500% overhead would be perfectly acceptable - but if GC needs to defragment allocations of old generation objects - it will stop all threads of application for as long as it needs. If you give it more memory - you sometimes get exponentially longer pauses - just less often.

Unity killed many ambitious games (like Hellion) - not because less than optimal framerate - but because of this inherent nature of GC - and random pauses every few minutes.

And 'professional software' is not that much different. I've seen deployments where GC was disabled and instances were restarted one by one after midnight to free memory - because it was more predictable than letting GC do its job.

Some applications work around this problem by allocating memory in a way that makes GC job easier - or by using static allocations or object arenas. But if you are aware of lifecycle of every object and every memory allocation - it kind of defeats the purpose of having GC in the first place ...
 
Last edited:
Top Bottom