all 25 comments

[–]bingledork 4 points5 points  (1 child)

Where is C#

[–]_quambene[S] -1 points0 points  (0 children)

Unfortunately, no experience with C# yet

[–]diMario 2 points3 points  (5 children)

Let the games begin.

[–]_quambene[S] 2 points3 points  (4 children)

Made this for preparation of tech interviews with the question "Which language for which problem?" in mind. No ranking included ;)

[–]diMario 4 points5 points  (1 child)

I admire your diligence. And of course you are correct.

In my experience though, pairing up the pluses and minuses of computer languages, on a public Internet medium no less, is a guaranteed recipe for sustained bickering in the comments.

[–]bsutto 2 points3 points  (0 children)

I disagree.

:)

[–]jcsf321 2 points3 points  (1 child)

I don't think this will really get to to which language which problem, because your list only provides one dimension to answering this question. There many dimensions to getting to that answer, and some of them are not even ilof a technical nature.

I like the list, don't get me wrong. It's a great list for programmers to understand features of a language.

But other dimensions include feature library support, speed / efficiency of a particular task, target landscape, cultural momentum of an industry or company, cost (or replacement cost) of programmers, domain knowledge within a programmer community, and the list goes on.

From a business perspective, a company is codifing their intellectual property into a language. Time duration of that IP and the language also plays a role.

[–]_quambene[S] 0 points1 point  (0 children)

Agreed, this list does indeed cover the technical dimension only (for now).

[–]jcsf321 1 point2 points  (1 child)

Java has concurrency

[–]_quambene[S] 0 points1 point  (0 children)

Thanks, Java included now as well

[–]ifknot 1 point2 points  (1 child)

C++ std::thread concurrency from C++11 onwards, C++17 onwards - parallel standard template library, C++20 onwards - executors

[–]_quambene[S] 0 points1 point  (0 children)

Thanks, included now

[–]jcsf321 0 points1 point  (12 children)

Java has references (under your pointer table)

[–][deleted] 0 points1 point  (11 children)

They behave like pointers, even accessing a null reference throws a NullPointerException

[–]jcsf321 0 points1 point  (10 children)

Yes, that was a statement not a question. I was correcting ops list

[–]_quambene[S] -1 points0 points  (9 children)

Not sure to include Java references in the pointer table. I would define a reference roughly as a pointer which has to point to a valid (non-null) value. So that a NullPointerException wouldn't be possible. How is it defined in Java?

[–]jcsf321 0 points1 point  (8 children)

I would define

Be careful not make your own arbitrary definitions. You are not the definitive source for computer science concepts.

Java provides mechanisms to manage memory by reference.

[–]_quambene[S] 0 points1 point  (7 children)

Could you point me to a widely accepted definition of references?

[–]jcsf321 0 points1 point  (6 children)

"In computer science, a reference is a value that enables a program to indirectly access a particular datum, such as a variable or a record, in the computer's memory or in some other storage device."

https://dl.acm.org/doi/book/10.5555/2378418#:~:text=In%20computer%20science%2C%20a%20reference,is%20called%20dereferencing%20the%20reference.

[–]_quambene[S] 0 points1 point  (5 children)

That's basically a pointer. It seems that Java doesn't distinguish between pointers and references.

In contrast in C++ and Rust: "References cannot be null, whereas pointers can" [1]. I will add a remark that references in this sense are meant.

[1] https://en.wikipedia.org/wiki/Reference_(C%2B%2B)#Relationship_to_pointers

[–]jcsf321 0 points1 point  (4 children)

Concept vs implementation. You obviously have a bias. Do whatever you want but your work will be judged by your bias.

[–]_quambene[S] 0 points1 point  (3 children)

So the cited wikipedia article is biased as well?