Jump to content

What language should I choose

Joshcanread

Personally I would go for C#, with the .NET Core/Framework implementation.

This ticks all the boxes here (obviously, otherwise they wouldn't allow for it to be used) and also because I am quite familiar with it already.

Plus I find the unit and integration testing to work quite well.

 

It can even be quite modular, due to MEF.

 

But what you should choose will probably depend on personal experience... But to be honest, the list of recommended languages don't have wildly different syntax.

Well.. Somewhat.. I mean, Java and C# are quite similar in syntax, but Javascript is loosely typed and VB, Pascal and Python use a more loose way of setting up your code (indents are not proper replacements for curly brackets!)

"We're all in this together, might as well be friends" Tom, Toonami.

 

mini eLiXiVy: my open source 65% mechanical PCB, a build log, PCB anatomy and discussing open source licenses: https://linustechtips.com/topic/1366493-elixivy-a-65-mechanical-keyboard-build-log-pcb-anatomy-and-how-i-open-sourced-this-project/

 

mini_cardboard: a 4% keyboard build log and how keyboards workhttps://linustechtips.com/topic/1328547-mini_cardboard-a-4-keyboard-build-log-and-how-keyboards-work/

Link to comment
Share on other sites

Link to post
Share on other sites

I would choose C# or Python.

But, given the very loose requirements, you could use nearly any popular general purpose language.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

I would recommend python because if you are new to programming, it's great to learn general computer science with very nice learning curve. I found C# too coupled to .net which is very microsoftish/windows. Python also is supported by a lot of open source communities. 

Workin professionals also thrive for python.

See https://insights.stackoverflow.com/survey/2019

 

Also, once you get to know python, it's a great tool to support a lot of other work you do.

Analyzing data sets, advanced plots, eventually machine learning and generation algorithms.

It's very popular and efficient for all kind of tasks with its simple syntax compared to c#.

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, noyo87 said:

efficient

Efficient has multiple meanings.

If one wants to write something original and fast in python, one actually writes C++...

Python is great for developer efficiency, but at great cost. How often do you actually see python in deployment? Most often, it's used to quickly explore ideas which, if useful, are then recreated in a more robust manner on a different platform. Another really common industry use is as a user scripting language, which again, amounts to the developer writing code in another language (take Blenders python scripting engine, for example). The third common use is for one-off data exploration when developing ideas.

C# is amazingly efficient in both development time (once the developer learns the FCL), and in performance (it can actually be quite fast for most tasks if the developer is able to put in the required effort), especially compared to python. And, it is actually robust enough that there are many, many deployed applications and websites that use it.
 

 

6 hours ago, noyo87 said:

.net which is very microsoftish/windows.

This is a very old argument. And I'll admit it used to be a really good argument.

However, that's not necessarily the case anymore, and as time goes on will become less and less the case. According to GitHubs 2019 surveys, .NET Core is the fifth fastest growing platform, actually beating pythons growth rate. In fact, Microsoft actually recommends that library writers target .NET Standard (which will allow interaction with all "versions" of .NET), and that application developers target .NET Core if at all possible. https://docs.microsoft.com/en-us/dotnet/core/about

 

Heck, the most common use case for C# doesn't even run on Windows anymore: Most companies using it for web backends, which is C#'s most common use case, are running it on AWS Lambdas, Dockers, or Linux based server architectures.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

Me too i would go C#. Extremely fast developpement, specially when GUI is involve. The biggest plus would be that it's a C language and from there you can quickly pick up tons of other languages easily.

 

And i totally agree with the last statement of @straight_stewie With the rise of .NET Core the multiplatform is here. Now .NET framework 4.8 was the last version of .NET ever. It has been officially killed in favor of .NET Core 3.0 which makes all application 100% cross platform so you will be cross platform by default.

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, straight_stewie said:

Python is great for developer efficiency, but at great cost.

What cost is this exactly? Python maybe slower to time to market is much faster. 

3 hours ago, straight_stewie said:

How often do you actually see python in deployment?

 

In the dev-ops world a lot, i have a a handful of useful CLI tools for doing things like adding IP addresses into the allowed list, creating users, updating required test scores for pipelines to pass. also youtube is developed in python.

 


 

 

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

14 minutes ago, vorticalbox said:

In the dev-ops world a lot, i have a a handful of useful CLI tools for doing things like adding IP addresses into the allowed list, creating users, updating required test scores for pipelines to pass. also youtube is developed in python.

That was exactly my point. There aren't really any deployed consumer applications written in python. Youtube is the only considerable exception to this.

You have python applications that help you to create and manage applications/application resources built on other technologies. So the obvious question is, why is the actual application that you are working on not developed in python?

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, straight_stewie said:

You have python applications that help you to create and manage applications/application resources built on other technologies. So the obvious question is, why is the actual application that you are working on not developed in python?

because the company I work for uses nodejs :( 

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

Assuming it's your first language, to learn the things they list, Pascal, Java or C#.

  • Pascal will be the most 'clean', for learning what they list. It's also easy to take those concepts onward to whatever language.
  • Most practical for future use, I'd put Java 1st, and C# 2nd, but it doesn't really matter which of those you use.
  • Java seems to have the most online examples, a la the most popular reference "Copy&Pasting from Stackoverflow".
  • Java is a little more verbose, but that's of value for production use, which usually has a longer term maintenance commitment. That can help with a first language, as it's more obvious to see what you've written. When you return to code you've previously written and go 'wtf is this', you'll get why this is desirable. 

 

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/4/2020 at 4:18 PM, straight_stewie said:

That was exactly my point. There aren't really any deployed consumer applications written in python. Youtube is the only considerable exception to this.

Doubt someone will start learning to code only in languages that are deployed at the high end (which in reality is a distributes system with multiple technologies used). Like in my company we have a lot of Python microservices and everything is deployed to Google Cloud and scales nicely, although it has nothing close to the scale of sites like YT.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, riklaunim said:

Doubt someone will start learning to code only in languages that are deployed at the high end

Plenty of people start out by learning languages that are "deployed at the high end" like C, C++, C#, PHP, Java, Javascript... Perhaps most people even.

I'm not arguing that python isn't valid or isn't useful. I was just arguing about the semantics of the word "efficient" when applied to Python.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

15 minutes ago, Erik Sieghart said:

Yet it's continually the language of choice in many areas due to its easy of deployment, intuitive use, and relative simplicity. You can bundle an entire python program all up in a nice little box and ship it on its way, maybe into a Docker and have a quick little script doing exactly what you want in less than an hour

16 minutes ago, Erik Sieghart said:

Because while theoretically you could write write a program that is elegant, efficient, and masterful in C,

 

Which is precisely equivalent to the point I made when I said:

On 2/4/2020 at 5:39 AM, straight_stewie said:

Python is great for developer efficiency

On 2/4/2020 at 5:39 AM, straight_stewie said:

If one wants to write something original and fast in python, one actually writes C++...

 

Besides that:

22 minutes ago, Erik Sieghart said:

You know what C and C++ has? Memory management, pointers, the ability to get in trouble much easier. Well, you may say, "Modern day C++ has these other things that..." And yeah I don't really care (for the record I have written in these languages). I don't want to write boiler plate code, and you shouldn't either. I don't have time for it.

If that's your schtick do what makes you happy. But you know how big applications are created and maintained? By lots of developers. Developers of different skill levels.

Which is specifically why I listed C# as my recommendation, rather than C or C++:

It avoids all of those difficult and error prone things well enough that beginners need not even know that they are a thing, but yet, still allows one to delve into pointer arithmetic and some memory management if they want to or if it becomes necessary. This is a feature that python does not have unless you drop down an abstraction level, which, see my self-quote above.

Again, I will reiterate: I never said that python isn't a "grown-up" language. I just used more words than necessary to say what I've said in this reply.

 

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

7 hours ago, straight_stewie said:

Plenty of people start out by learning languages that are "deployed at the high end" like C, C++, C#, PHP, Java, Javascript... Perhaps most people even.

PHP or JavaScript can be picked due to popularity and low barrier to entry. Not including Python on such list is bit silly. Never seen someone recommending PHP because Facebook uses a fork of PHP. And looking it from a broader perspective - the goal is to pick a language for a course and not for some project or senior/full stack developer focus. Some courses may even use more custom programming languages to better showcase the topics they contain.

Link to comment
Share on other sites

Link to post
Share on other sites

If you a noobie start with C++, i know it`s easier to go with python and start scripting, but you gotta understand how memory works and how a computer handles processes, also understand few simple OOP principles (or later with Java). 

After you understand some of that, go with C. You will learn more about arguments, types of data etc. Then go with python, you can script fast, debug fast, and make cool quick projects with different frameworks. Then go with Java/VB as you desire and work organized.

 

Pascal should stay dead and deleted. In my country at the CS exam you can choose from Pascal, C and C++. And Pascal sucks.

If you are going to do web Development than JS will just inject into your skull without you knowing so don`t worry.

Link to comment
Share on other sites

Link to post
Share on other sites

It really depends... All are good options depending on what you're aiming for. I started with Java then moved to C# as soon as possible, it was really good for teaching me about what is good practice and what is not.. I find myself writing code that follows the style used in C# so I'd go down the same route again but JavaScript could have been a better option because I use JS way more than C#. <- my point is it depends on what you want to do and what you're looking to achieve - there's is no right answer.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, qxZap said:

If you a noobie start with C++, i know it`s easier to go with python and start scripting, but you gotta understand how memory works and how a computer handles processes, also understand few simple OOP principles (or later with Java). 

After you understand some of that, go with C. You will learn more about arguments, types of data etc. Then go with python, you can script fast, debug fast, and make cool quick projects with different frameworks. Then go with Java/VB as you desire and work organized.

 

Pascal should stay dead and deleted. In my country at the CS exam you can choose from Pascal, C and C++. And Pascal sucks.

If you are going to do web Development than JS will just inject into your skull without you knowing so don`t worry.

No, you don't need to learn C++ to understand how memory works - for example a 30 second explanation can explain enough about memory for the majority of apps. I really disagree with this advice & it seems you might have forgotten how difficult it can be to get into programming. I think it's more valuable to focus on concepts, approaches, best practice rather than spending forever fixing niggly issues and getting confused. I've spent a lot of time training people and in my experience, new devs get stuck on everything and anything so reducing the complexitly (until they are able to handle it) is a huge value.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×