Latest / DevQuestions with Tim Corey / 069 Why Should I Choose C# As My Programming Language?
Transcript
- 0:00SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_00: Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology.
- 0:12SPEAKER_00: If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered.
- 0:19SPEAKER_00: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:25SPEAKER_01: Why should I choose C sharp as my programming language?
- 0:29SPEAKER_01: Is C sharp the best choice for a developer?
- 0:32SPEAKER_01: And should I learn multiple programming languages or just the one?
- 0:37SPEAKER_01: These are questions that come up a lot when new developers are looking at C sharp or looking over what C sharp is.
- 0:44SPEAKER_01: So let's talk through should you choose C sharp and why?
- 0:49SPEAKER_01: The there's three reasons I think to choose any programming language.
- 0:54SPEAKER_01: The first reason is going to be your preference.
- 0:58SPEAKER_01: Yes, I know that sounds weird, but there's certain languages that you may love and certain languages you may hate, and that's okay.
- 1:07SPEAKER_01: Now it is a personal opinion because there's some people that love a language that you hate, and that's fine.
- 1:14SPEAKER_01: But if you're going to spend your professional life learning about growing in, becoming better at and conquering a given language, you probably shouldn't hate it.
- 1:30SPEAKER_01: Now, yes, there are times when you just need to make money, and that's fine, but ideally, you would like the language you use.
- 1:38SPEAKER_01: So the first thing is preference.
- 1:41SPEAKER_01: Personally, and again, this is personal to me, not to the industry.
- 1:47SPEAKER_01: Personally, I have used dozens of languages, and I did not like Java.
- 1:53SPEAKER_01: I just didn't like it.
- 1:54SPEAKER_01: And yet, Java is practically the same as C sharp when it comes to syntax.
- 1:59SPEAKER_01: It just didn't feel right to me as a developer.
- 2:02SPEAKER_01: There are a lot of people, in fact, probably more Java developers than C sharp developers that like Java.
- 2:09SPEAKER_01: Um, that's okay, that's absolutely fine.
- 2:13SPEAKER_01: I'm glad they do.
- 2:14SPEAKER_01: Enjoy.
- 2:15SPEAKER_01: That's not for me.
- 2:16SPEAKER_01: I personally like C sharp better.
- 2:19SPEAKER_01: I've gravitated towards that.
- 2:21SPEAKER_01: So preference is important.
- 2:25SPEAKER_01: So that's the first thing is can I see myself using this language?
- 2:29SPEAKER_01: Now you may not know right away, and that's fine.
- 2:32SPEAKER_01: And you may feel like none of the languages really are perfect yet, but give them a shot, figure out which one really kind of fits the way you like to do things.
- 2:42SPEAKER_01: So that's the first thing is preference.
- 2:44SPEAKER_01: Number two, though, is opportunity.
- 2:47SPEAKER_01: How much of an opportunity is there with a given language?
- 2:51SPEAKER_01: Now, this is a tricky one because I tell developers all the time, you don't need a million jobs, you need one job.
- 2:59SPEAKER_01: So if there are five jobs available in your area, well, you only need one of those.
- 3:07SPEAKER_01: So that could be plenty, or it could be just not enough because there's 500 developers in that given language in your community.
- 3:17SPEAKER_01: So it does depend a bit.
- 3:20SPEAKER_01: But what the opportunity is should be at least a consideration.
- 3:25SPEAKER_01: For instance, there is opportunities right now for COBOL developers and VB6 developers.
- 3:33SPEAKER_01: If you didn't know, I started with VB, well, I'm not sure it was six, but it was five or four, something like that.
- 3:40SPEAKER_01: But I started with Visual Basic um in the early days.
- 3:44SPEAKER_01: And so VB6, I used to do that 20 years ago.
- 3:47SPEAKER_01: Um, and so that was something I was very good at.
- 3:50SPEAKER_01: Well, there's opportunities today for VB6 developers.
- 3:56SPEAKER_01: Is that something I'd recommend for a new developer to learn?
- 3:59SPEAKER_01: No, it's not.
- 4:01SPEAKER_01: Because even though there's opportunities there, those opportunities are not growing, they're shrinking.
- 4:07SPEAKER_01: Yes, maybe there's more jobs available in the next few months and years as developers retire that used to do that and they still need someone to maintain this, but the overall industry for VB6 or COBOL is shrinking.
- 4:22SPEAKER_01: So you don't want to learn that and make that your um your platform or your new language to learn in depth.
- 4:30SPEAKER_01: So when it comes to opportunity, there can be two spectrums.
- 4:34SPEAKER_01: There's the very early adoption of a language and the tail end maintenance of a language.
- 4:40SPEAKER_01: Try to get more towards the beginning than the end because languages only last so long.
- 4:47SPEAKER_01: There is change over time.
- 4:49SPEAKER_01: You're gonna have to adapt that, you're gonna have to embrace the fact that what you learn today will not be the same thing as what you use 20 years from now.
- 4:58SPEAKER_01: If it is, then you're probably in that maintenance mode, and that's not a great place to be.
- 5:04SPEAKER_01: So, opportunity is something to evaluate as well.
- 5:08SPEAKER_01: So it's preference, there's opportunity, and the third one is platform.
- 5:13SPEAKER_01: The idea of where does this language work?
- 5:17SPEAKER_01: Let's say you love a language, but you find out it only deploys on Mac.
- 5:22SPEAKER_01: Well, if you don't like Mac, then that kind of comes back to number one, right?
- 5:28SPEAKER_01: Where your preference is to use Windows, your preference is to use Linux, but you have to work on Mac all the time because that's what your language runs on.
- 5:37SPEAKER_01: So if you're gonna build an Objective C, you should probably like Mac.
- 5:42SPEAKER_01: If you are going to build Winform applications, you should probably like Windows because that's what's gonna work on.
- 5:49SPEAKER_01: If you're a business choosing which language to build your application in, you need to think of that as well.
- 5:56SPEAKER_01: Where are my customers?
- 5:58SPEAKER_01: If my customers are all on Windows, that may be different than if your customers are on a mixed set of platforms.
- 6:05SPEAKER_01: Are my customers all on the web, or do they all have the web blocked for security reasons?
- 6:10SPEAKER_01: These are things you need to know in order to make an informed choice on which language to choose, which platform in that language to use when it comes to your software.
- 6:23SPEAKER_01: So preference, opportunity, and platform.
- 6:27SPEAKER_01: These are the three things to think through when choosing a language.
- 6:32SPEAKER_01: For me, my preference originally was VB6.
- 6:36SPEAKER_01: I loved VB6, I built tons of things in VB6.
- 6:40SPEAKER_01: I was a consultant working for a consulting company.
- 6:43SPEAKER_01: I was doing uh lots of stuff in vb6 primarily.
- 6:47SPEAKER_01: Again, I was doing other languages.
- 6:49SPEAKER_01: Um, I think I did about two dozen plus languages as a consultant in those early days.
- 6:55SPEAKER_01: But vb6 was my language of choice.
- 6:58SPEAKER_01: I loved it.
- 6:59SPEAKER_01: When.NET came around and I said, yeah,.NET's kind of the way to go, so I switched over to VB.NET because it was close to Visual Basic Six as far as syntax goes.
- 7:12SPEAKER_01: And in fact, that was Microsoft's kind of goal was to help the VB6 developers move over to.NET by giving them a language that was syntactically similar to VB6.
- 7:25SPEAKER_01: But that was my preference, but I began to see that the opportunities when it came to getting jobs were much greater in the C sharp area than they were in the VB area.
- 7:39SPEAKER_01: Yes, I liked VB a lot, but there were more C sharp jobs out there when it came to examples.
- 7:45SPEAKER_01: There were more C sharp examples out there, and even though in the earlier days of documentation, the Microsoft documentation was not good, and so you had to rely on books and blogs and other things, those were primarily in C sharp.
- 8:00SPEAKER_01: And so at some point I made the switch early on where I said, okay, I need to start looking at C sharp.
- 8:08SPEAKER_01: And so I started writing some C sharp.
- 8:10SPEAKER_01: Yes, it was different, yes, it wasn't my first preference.
- 8:14SPEAKER_01: I had done C programming and C programming, but I kind of like the VB syntax more.
- 8:22SPEAKER_01: But I started to use the C sharp syntax, and over time I grew to really like it.
- 8:28SPEAKER_01: I liked how it was a little more simple as far as use a curly brace instead of saying end if.
- 8:34SPEAKER_01: Um, those kind of things really started to resonate with me.
- 8:37SPEAKER_01: One character instead of six, and it really communicates the same thing.
- 8:41SPEAKER_01: So those kind of things uh really helped me switch over my preference because the fact the opportunity was more in the C sharp area rather than the VB area.
- 8:55SPEAKER_01: And as far as platforms go, I love Windows.
- 8:58SPEAKER_01: Um, and yes, I even I even use Windows ME, which was a horrible platform, um, as were a few others along the way.
- 9:07SPEAKER_01: Vista was pretty pretty bad.
- 9:10SPEAKER_01: Um, but yeah, I still kind of stuck with it, even though it wasn't great.
- 9:15SPEAKER_01: Um, I did at one point switch over to entirely a Mac, and I did love that platform for a long time as well, but I always had that initial love with Windows, and so I was fine with the fact that my software ran on Windows, compiled the Windows, was only only worked on Windows.
- 9:33SPEAKER_01: Now, when it comes to choosing C sharp today, C sharp is a widely used language, so it's pretty easy to get started with, it's getting easier.
- 9:44SPEAKER_01: In fact, one of the pushes with.NET 6 is the idea of a very, very minimal API so that you can have in one simple 20-line uh uh code file, you can have an entire API because they're taking a lot of the ceremony away from C sharp in order to make it a much quicker to get started, a quicker to get launched, a quicker to understand language that you can then add the complexity in when you need to, but you don't have to have a complexity for just simple stuff.
- 10:19SPEAKER_01: So they're making it even simpler to use.
- 10:22SPEAKER_01: The.NET Core, which is now just.NET, is a really powerful language that works across platforms.
- 10:30SPEAKER_01: It works on Mac, it works on Linux, it works on web hosts that are either Linux or Windows.
- 10:37SPEAKER_01: And that was a big thing too, because it used to be when you built a.NET Framework MVC site, you had to choose a hosting provider that handled Windows.
- 10:49SPEAKER_01: And traditionally, those hosting providers would be about twice the cost.
- 10:54SPEAKER_01: So you were paying a very real cost for your focus on a.NET framework MVC project over, say, a PHP app.
- 11:07SPEAKER_01: And so it didn't make sense all often to choose C sharp over PHP or another web language because those other languages ran on Linux and the cheaper boxes, whereas C sharp had to run on Windows.
- 11:22SPEAKER_01: Now it's not the case.
- 11:24SPEAKER_01: Now there is that feature parity where you can run on Linux or Windows.
- 11:28SPEAKER_01: We can run Docker instances of either Linux or Windows.
- 11:32SPEAKER_01: And so there's those barriers are kind of gone.
- 11:35SPEAKER_01: Those reasons for not choosing C sharp have gone away.
- 11:38SPEAKER_01: And it just kind of opens up the field.
- 11:41SPEAKER_01: So the preference for me, I prefer the C sharp language.
- 11:45SPEAKER_01: It does fit more in line with some common languages, uh Java, C, C, those type of languages, the curly brace languages, they all kind of have a similar syntax.
- 11:57SPEAKER_01: In fact, with modern C, if you look at a C code versus a C sharp code, unless you look at the top where there's using versus imports, you might not be able to tell the difference between the two because they're that closely uh connected.
- 12:14SPEAKER_01: So if you switch from C to C sharp, that can be an easier transition, not perfect, but easier.
- 12:22SPEAKER_01: And so um I personally think that's a great choice with C sharp.
- 12:28SPEAKER_01: The opportunity now we have, you know, again, across all platforms on web, mobile with Xamarin.
- 12:35SPEAKER_01: We now have the ability to and have had for a while, the ability to write native mobile apps using C C sharp.
- 12:43SPEAKER_01: They compile down into the native code.
- 12:45SPEAKER_01: That's awesome.
- 12:47SPEAKER_01: You can also create um not quite native apps, but apps that run across all platforms.
- 12:54SPEAKER_01: So the same app will run across your iOS and Android projects and deploy to the store.
- 13:00SPEAKER_01: Well, now with.NET 6, we'll have what's called Maui.
- 13:04SPEAKER_01: That's their uh code word for it, which is the ability to deploy the same application on desktops, cross desktops, so Mac desktop, Linux, and Windows, as well as those mobile platforms and even the web as well.
- 13:19SPEAKER_01: So, really cool stuff, lots of reasons, I think, to choose uh C sharp.
- 13:25SPEAKER_01: The opportunities are growing, not shrinking.
- 13:28SPEAKER_01: I had a person the other day say, Oh, well, the confusion between.NET Core and.NET Framework has just really helped everybody else because it drives people away.
- 13:37SPEAKER_01: And that's not what's been happening.
- 13:40SPEAKER_01: The the growth of ASP Net Core and now with just.NET has been phenomenal.
- 13:47SPEAKER_01: It's been great.
- 13:48SPEAKER_01: And a lot of times when you see um charts that say, okay, well, here's the market share for each of these things, they will separate ASP net core net from ASP Net Core.
- 13:59SPEAKER_01: Well, they're still C sharp, either way.
- 14:01SPEAKER_01: So you actually have two things in that chart, and usually they're like number six and number eight.
- 14:07SPEAKER_01: Well, combine those two, what do you get?
- 14:09SPEAKER_01: Um, so the growth of the market in.NET Core has been pretty tremendous, especially as people start seeing that yes, this is not the Microsoft of old, this is not the C sharp of old, this is the open source C sharp.
- 14:25SPEAKER_01: This is the um the idea that it's cross-platform, not just focused on Windows and so on.
- 14:32SPEAKER_01: It's really a powerful language that in as far as performance beats out meets or beats the uh performance of other languages consistently.
- 14:42SPEAKER_01: So, yes, there's from my preference, I would say C sharp, but also opportunities.
- 14:47SPEAKER_01: There's tons of opportunities for C sharp developers, and then platforms again.
- 14:52SPEAKER_01: It's pretty much any platform, it's one of the few languages that's really across everything.
- 14:59SPEAKER_01: If you want to deploy to an Internet of Things device, you can do that with C sharp.
- 15:04SPEAKER_01: If you want to deploy to Xbox, you can do that with C sharp.
- 15:08SPEAKER_01: Any web, any mobile, any desktop, you can do that with C sharp.
- 15:13SPEAKER_01: The possibilities are endless and growing.
- 15:16SPEAKER_01: So I think that should you choose C sharp?
- 15:21SPEAKER_01: I'm not gonna say yes.
- 15:22SPEAKER_01: I'm gonna say it's your preference.
- 15:26SPEAKER_01: But you will have opportunity, you will have the ability to go to any platform with C sharp.
- 15:34SPEAKER_01: So it really comes down to that first one, which is your preference.
- 15:39SPEAKER_01: Do you hate C sharp?
- 15:41SPEAKER_01: Then maybe you shouldn't work on C sharp for the rest of your life.
- 15:45SPEAKER_01: But if you hate C sharp just because what you've heard, maybe give it a shot instead, because I think you might be pleasantly surprised with the results.
- 15:53SPEAKER_01: But this is, and I want to stress this again, this is a personal choice.
- 15:58SPEAKER_01: One of the things I really don't understand, and something that really bothers me about the the technology industry as a whole, is this hate for people who do things differently than you do.
- 16:11SPEAKER_01: I don't get that.
- 16:12SPEAKER_01: Don't do that.
- 16:14SPEAKER_01: Please do not do that.
- 16:16SPEAKER_01: These are personal choices.
- 16:18SPEAKER_01: My personal choice is not necessarily the same as your personal choice, and that should be okay.
- 16:26SPEAKER_01: It should not be a challenge to you.
- 16:29SPEAKER_01: I am not saying you're stupid because you did not choose what I chose, and you are not saying I'm stupid because of what I chose that you didn't choose.
- 16:39SPEAKER_01: These things are about what works best for you.
- 16:43SPEAKER_01: We have multiple languages doing the same thing because we have different preferences, and that's okay.
- 16:49SPEAKER_01: We don't want to have just one preference.
- 16:52SPEAKER_01: If everything was the same, we'd have a lot of problems.
- 16:56SPEAKER_01: If we say, you know what, the color blue is the best color, therefore, that's all we're gonna paint everything.
- 17:03SPEAKER_01: That'd be horrible.
- 17:05SPEAKER_01: We want that diversity, we want those differences, and the same thing with programming languages.
- 17:11SPEAKER_01: Yes, languages seem to, and people get caught up in this word, they steal features.
- 17:16SPEAKER_01: They're not stealing features, they go, yeah, that was a great idea.
- 17:19SPEAKER_01: I want to do that too.
- 17:21SPEAKER_01: And so they do that in their language.
- 17:23SPEAKER_01: That's great.
- 17:24SPEAKER_01: It pushes the entire industry forward, it pushes us all to be better, to innovate, to grow.
- 17:31SPEAKER_01: So please, please, please don't look down on others because of their choice and don't think that your choice is the best choice.
- 17:41SPEAKER_01: Your choice may be the best choice for you, but you are one person.
- 17:46SPEAKER_01: Other people have different best choices, and that's perfectly fine.
- 17:49SPEAKER_01: All right.
- 17:50SPEAKER_01: So it's not a war, it's not a us versus them.
- 17:53SPEAKER_01: It's a this is what I've chosen.
- 17:56SPEAKER_01: If you've chosen it to, cool, I'll help train you.
- 17:59SPEAKER_01: And if it's not, excellent.
- 18:00SPEAKER_01: Grow in your language.
- 18:02SPEAKER_01: That's awesome.
- 18:03SPEAKER_01: All right.
- 18:03SPEAKER_01: Thanks for listening to this week's episode of DevQuestions.
- 18:08SPEAKER_01: If you have a question about being a developer, check out the previous episodes.
- 18:12SPEAKER_01: There's probably something there that we've covered before.
- 18:14SPEAKER_01: If not, leave a comment underneath the YouTube video if you watch on YouTube, or you can go to the podcast page on I amtimcorey.com and fill out the form to leave your suggestion for a future episode.
- 18:27SPEAKER_01: Have a great day.
- 18:28SPEAKER_01: And as always, I am Tim Corey.
- 18:30SPEAKER_00: Thank you for joining us for this episode of DevQuestions.
- 18:33SPEAKER_00: Tim is committed to making it easier for you to become a developer.
- 18:37SPEAKER_00: If you would like to help make more content like this possible, please like, subscribe, rate, and share DevQuestions.
- 18:44SPEAKER_00: You can also send your questions to questions at IamTimcorey.com.
- 18:49SPEAKER_00: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 18:56SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to imtimcorey.com and enroll in the course.