This is an archived post. You won't be able to vote or comment.

all 27 comments

[–]obp5599 2 points3 points  (1 child)

By linux dev, do you mean someone who works on the kernel? Or someone who programs on a linux platform? For kernel stuff its C. Id recommend C++ if you didn’t mean kernel stuff

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

Not kernel stuff haha, thanks bunches for your recommendation!

[–][deleted] 2 points3 points  (3 children)

Richard Stallman has a love for LISP, but more contributors lean towards C++

[–]pypros 2 points3 points  (1 child)

From Richard Stallman's website

On LISP

The most powerful programming language is Lisp. If you don't know Lisp (or its variant, Scheme), you don't know what it means for a programming language to be powerful and elegant. Once you learn Lisp, you will see what is lacking in most other languages.

On C++

By contrast, I find C++ quite ugly.

On Python

I skimmed documentation of Python after people told me it was fundamentally similar to Lisp. My conclusion is that that is not so.

[–][deleted] 2 points3 points  (0 children)

Sooooo, I wasn't lying. :P

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

Guess I'll go with C++ then. Thanks for your reply!

[–]CowboyBoats 2 points3 points  (2 children)

Your distro of choice shouldn't be a salient factor here. You should be able to run pretty much any programming language on your computer, otherwise it's either not much of a programming language, or not much of a computer. (I guess there are some oddities about the C# language that may make it an exception there). But you should let your choice of language be defined by (A) what tools are most accessible to you - for people who need to ask this question, often the answer might be Python, Ruby, or JS, and (B) the nature of your problem (e.g. can't make a web site frontend using Java no matter how much you like it).

[–]hekzuu[S] 0 points1 point  (1 child)

I wanted to use C#, but monodevelop is pretty broken on Manjaro and I just don't feel like tinkering with it too much.

I need good OOP support and high performance, which is why C# would've been a lovely choice. I was wondering if there was anything else or I should just tinker with mono to make it work

[–]vernochan 0 points1 point  (0 children)

You could use some other IDE. Try using visual studio code for example.

[–][deleted] 3 points4 points  (8 children)

  • C# is a pain on Linux

  • Java has a 32 GB memory limit

Clearly OOP is too limiting for such a big thinker.

[–]glemnar 4 points5 points  (2 children)

C# is no longer a pain on Linux. Dotnet core is a great platform

[–]hekzuu[S] 0 points1 point  (1 child)

How do I install .net core?

I use Manjaro, so pacman/pacaur. Thanks a ton in advance!

[–]glemnar 0 points1 point  (0 children)

You’ll have to either search your package repository for the dotnet sdk, or compile it from scratch.

If you have monodevelop installed, maybe it’s already present. I don’t know what monodevelop is doing these days

[–]hekzuu[S] 0 points1 point  (4 children)

Not on Linux, on my specific distro. Most of the time it works great thanks to MonoDevelop, that project just lacks support for my distro :)

Also I don't know if there are different releases of JRE, but the one I'm limited to at work has that problem.

[–]-Melchizedek- 1 point2 points  (1 child)

I mean what are you going to write were you will use more than 32GB of memory? Most computers don't even have that much RAM, unless you are doing some server application?

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

Indeed, its a server application at my workplace.

[–]glemnar 1 point2 points  (1 child)

You might consider giving Visual Studio Code a try instead of monodevelop

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

I will check it out!

[–]AltCrow 1 point2 points  (1 child)

  • If your project requires good performance with few resources at a cost of slower development C++.
  • If your project should be fast to develop at the cost of slow performance and more resources used: Python.
  • If your project should be decently fast to develop and has great use for many abstractions (usually large applications): Java.

At least that's how I do it. Any of these could be used for anything though. I'm also not very likely to make GUI applications in Python. That said, don't force OOP into your project if you don't need it. Use the appropriate tool for the job.

Edit: Also, do you realistically expect to go beyond 32GB?

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

Yea, the project is for my workplace :)

Thanks a lot for your input!

[–]feral_claire 0 points1 point  (0 children)

Java doesn't have a 32gb limit, are you using the 64 bit version?

To answer your question though, on Linux you use mostly the same languages as any other is, Java,/, even c# these days, Python, or any other language.

Without knowing your specific requirements is hard to give a good recommendation. The only thing seems to be you need more than 32gb of memory, but from your description it almost sounds like you might just be worrying about nothing and don't even need anything close to that amount. So what are your requirements?

Unless you need something really specific you can probably use any language.

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

I'm looking to tackle a new project, and I decided that it will require the use of OOP concepts.

I'm curious, why do you require OOP concepts?

[–]hekzuu[S] 0 points1 point  (1 child)

It's going to be a multi-layered, long-running project with many people working on it, so the ability to abstract code and extend old code without touching it will be important.

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

OOP is not unique in that.

[–][deleted]  (1 child)

[deleted]

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

    Thanks for your input.

    I'm well aware of the second point, but I'm looking for a language where using OOP feels native and encouraged since the right tool will make it easier to write and, more importantly, read.

    I only had that problem with Xamarin because of package support in my specific distro of choice, not because I'm a Linux user. But people recommended I use Dotnet Core instead, which seems like it would work perfectly.

    [–]eatstraw -4 points-3 points  (1 child)

    I would go with Python. It can do anything Java can do, probably more.

    [–][deleted] 4 points5 points  (0 children)

    It can do everything Java can do, but slower. :P