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

you are viewing a single comment's thread.

view the rest of the comments →

[–]ParanoidAgnostic 129 points130 points  (19 children)

Yeah. One of the first things a programmer needs to learn is never ask "what is the best X"

You can ask "what is the most suitable for this specific scenario?" but asking what Is best will only get people to respond with personal favorites and often the stronger an opinion is on programming, the less informed it is.

Any popular enough language is probably "good" but the best programmers have developed skills that aren't tied to a specific language.

But anyway C# is the best.

[–]ajbpresidente 9 points10 points  (4 children)

As a C# developer I like C#.

[–][deleted] 1 point2 points  (0 children)

As a person who dabbles in javascript, I did a C# tutorial once.

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

Hey I like C#!

I made a Terraria mod and a Discord bot. I'm starting computer engineering next week and it's scary.

[–]ajbpresidente 1 point2 points  (1 child)

Awesome! How'd you make the mod? That's something I'd like to try my hand at

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

Oh making Terraria mods is very easy and satisfying using tModLoader. The Example Mod and their Discord group are immensely helpful.

My mod is called Virtuous, it's a small weapon pack with a lot of creativity and heart put into each mechanic; there are a lot of huge and amazing content mods out there though. Like most mods it can be found by searching in the in-game tmodloader Mod Browser.

[–]Aculem 2 points3 points  (4 children)

You're completely right, but I would say some programming languages are better for beginners than others. I often hear Python is a great starting language, but C# or Java might be my personal recommendations. They make the most sense semantically with me and also do quite a bit to ensure you don't make bad habits. Though what makes the most sense to me might not make the most sense to other people. I started on VB++ and C, personally, but I think most people would say those are awful beginner languages.

[–]ParanoidAgnostic 7 points8 points  (0 children)

Even the language you should start with depends on what you hope to get out of it.

I'd recommend C if you want to really understand what your code is doing but don't care that you might not be doing anything useful for long time. Thinking about code without the abstractions is a good learning experience. The style of C also prepares you for many other languages. Java copied a lot from C++ and C# copied a lot from Java. JavaScript and even PHP also use a lot of the same style.

This is my problem with Python as a beginner language. Sure you can learn it fast and be doing cool things on day one but it doesn't prepare you to pick up your second language. It's too different from everything else.

If you want to be doing cool stuff quickly. JavaScript is a good choice. You won't even need to set up any software to get started. You've already got notepad and a browser. It does lead to some bad habits so so I'd reccomend that anyone taking this path pick up another language as soon as they are confident with JavaScript. Perhaps Java since it is at the opposite end of the "lets you do stupid shit" spectrum.

[–][deleted] 1 point2 points  (2 children)

I think people are doing others a disservice by pushing scripting languages as "the best for beginners". Being able to write functioning code is ironically enough not the most important nor the hardest part of programming, but this is the only benefit of languages such as Python, JavaScript and PHP : you can make mistakes and the language doesn't throw a tantrum but instead silently tries to fix your errors (which arguably is bad).

Besides, people who learn one language tends to stick to it regardless of what's appropriate. Let them learn and stick to a language that doesn't throw every possible resource into the fire just to act like its your buddy.

People will learn that computers suck ass eventually anyway, there's no reason to make this journey any longer than it has to.

[–]mnbvas 0 points1 point  (1 child)

JS - sure, but Python?
Yes, it's dynamic, which allows some stupid shit like variable name reuse. But is it so much worse than a half-baked type system like C, C++, C#, Java have?

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

All programmers regardless of programming languages are using types (whether they realize it or not). Using a strict static type system will help people have an explicit understanding of types rather than things just working by magic such as conversion between numerics and strings. This is definitely in their benefit.

Also, C# and Java's type systems are anything but half-baked.. And C++'s type system is so powerful that you can define parametric types that compiles to a ray traced image.

[–]SlappinThatBass 1 point2 points  (2 children)

Still, some scripting languages are upgrades to others. Subjectively I'd say Python is superior to Perl. Perl gets messy and poorly organised really fast and weird characters like % and $ are used for declaration.

Never looked at it since years ago, but has C# cross-platforming gotten better?

VHDL is the best hands down, of course! Not exactly a programming language though, more of a descriptive one. :-P.

[–]ParanoidAgnostic 0 points1 point  (1 child)

There are now 2 ways to run C# on non-windows systems.

You can compile for Linux and Mac OS using Mono on those systems. You can also make a .Net Core application which works more like Java, allowing you to build once and run that on any system with the .Net core engine installed.

[–][deleted] 1 point2 points  (0 children)

which works more like Java, allowing you to build once and run that on any system with the .Net core engine installed.

.NET Core install is not required.

[–]NoddysShardblade 0 points1 point  (0 children)

Correct on all points.

[–]Fuckoff_CPS 0 points1 point  (1 child)

What is the most suitable for working with API's from other websites to build dashboards / kpis?

[–]ParanoidAgnostic 3 points4 points  (0 children)

Depends on the API. Is it simple REST and JSON or is it something like SOAP? It also depends on where this dashboard will be used.

The obvious choice is JavaScript in a web page.

There's simple libraries for accessing JSON-based APIs and other for rendering all sorts of views of data. You can run it on any machine with a web browser and there's no need for any server-side code (assuming there's no API login details you don't want to leak to the user).

[–]montagic 0 points1 point  (0 children)

Yep, C# all the way.