 Let's talk programming languages. When someone learns a programming language, and they enjoy it, and they use it a lot, all of a sudden every other programming language in the world becomes horrible to them. They can do nothing but talk bad about other languages. I guess it's the same with Linux distros. Once you find a Linux distro, you like all other Linux distros are horrible. And I don't feel this way when it comes to programming languages. It aggravates me when I have a programming language that I'm writing something in and someone criticizes it. I used to use Python a lot. I barely ever use it anymore. But it's a very, very popular programming language. And really when I first started using Python, one of the things I thought was so cool about it, they're like, oh yeah, because it's all about indentation. It forces you to keep your code clean. And I thought that was cool at first. I can't stand it now. If I have code that I want to copy and paste, but the tabbing is different than mine, it messes things up. Auto tabbing, auto indentation scripts don't work on it because it doesn't know where to indent because it uses the indentation. So if your indentation is messed up, it's very hard to automatically fix it. But I still think Python is a great language. And what do I care if someone else writes something in it? So when it comes to it, what do I think are good programming languages that I would recommend and which ones are horrible ones that I would not recommend? And again, as I just stated, I think all programming languages are great if used properly. And basically what it comes down to is, can you use it to accomplish your task? And that's pretty much it. If it accomplished your task and it does it efficiently, great. You know what? If I do something in Python and it takes two seconds to run, where I could have written it in C and it would have taken a tenth of a second, you know, it all depends. How many times am I going to have to loop through that? Like am I using this program all the time in a loop that's going to now increase my end product to be much, much slower? Recently I was watching a video by Luke Smith and he talked about Python being slow and I'm not disagreeing with him. But he talked about how there was a page he'd go to where it compares projects in different programming languages and something that takes like two seconds in C took several minutes in Python. And yeah, so if that's the case, you probably don't want to write that in Python. But a majority of the time, and I try to say this all the time, is that it's more important to be a good coder than it is to pick an efficient programming language. It's not always the case. I'm just saying in general. So if someone is a horrible programmer, it doesn't matter if they're writing C, their code might run horribly where if you're a good programmer, you can take JavaScript or Python and write it more efficiently to where it runs better. And here's an example of lots of times I've written code and it runs horribly and then I go back and redo it and I get phenomenal increase in efficiency. So as mentioned before, I like doing most of my things in Bash, Bash shell programming, scripting, whatever you want to call it. When it comes to interfaces, I like using HTML for my interface. And again, HTML is not a programming language. Some people argue it isn't. It just is not. It's in no way a programming language. But when you're using HTML, you do end up using JavaScript a lot, which is a programming language, which can be run in a shell using Node.js. But most commonly it's used in a browser and I use it for manipulating my interfaces. But I use HTML if I'm going to have a GUI at all, anything more than what's in the shell, I usually use HTML, which I almost just went into weird owls, white and nerdy because I'll write HTML for them all, even make a homepage for my dog. Anyway, that just popped into my head. Anyway, HTML is plain text. I love doing stuff in plain text as much as possible. And I can write a Bash script that outputs HTML and then you just need an HTML interpreter, which is a web browser. And you can run that script on a server or locally and have the output go to your web browser and you have this interface now for your Bash scripts or your Python scripts. It doesn't matter what language it is. If you can do a Hello World, you can output HTML and use it as an interface. But when it comes to JavaScript, you can do a lot with JavaScript and HTML5 now. A lot of people criticize it. For example, years ago I made a first person shooter in HTML5 and it was really, I was doing it while I was learning HTML5 and there were a lot of things I did wrong with it and even the final state of it. A basic thing, I've done video game programming for a long time and obviously I've always known that you need clock ticks in there to where, you know, if you don't have these clock ticks that limit your cycles, you might get, it's like you're playing really old DOS games on new hardware. The games will run too fast because back then they didn't put clock ticks in. They just wanted the games to run as fast as they could and hardware was slow. So they went fine and then you got faster hardware and the games ran too fast. Now with emulation, you can slow it down and stuff, but you want to use clock ticks. It says, you know, don't run faster than 60 frames a second or 30 frames a second or whatever you want to set to, whatever your opinion on that is. I didn't do that in my game. So I got to a point where the game would, if I wrote it one way, I would click jump on my desktop machine and it worked fine. But then I'd go to a slow machine and I go flying off into the sky. And if I reversed it now on my desktop, I'm jumping and I'm barely making any ground and that was just my fault. But for example, of rewriting something when I first started writing that, you know, it's a first person shooter and I wanted to have teleporters like in DOOM. So I set up certain objects that when you touch them, they were teleporters and they would teleport you to another section of the map. But I had issues where lots of times I would touch those teleporters and nothing would happen or it would take a long time for something to happen. That's because I had the script constantly looping through, checking every object on the map to see if I was in contact with that, which was just stupid. Whether I'm writing that in C or Java script, maybe if I wrote it in C, it would have worked. But what I ended up doing was putting all the teleporters in an array and only checking that array for teleportation. Rather than every object on the map, I fixed my code. It doesn't matter that I was writing in JavaScript. If the code ran on my hardware and it ran like I wanted it to. And again, my test for things like that is I go to Walmart, where I go to the display tablets that are under $200. And if the program runs fine tablet that's under $200, then I'm writing the code efficient enough. But again, it's more important for you to write efficient code than it is for you to pick a faster program in language. In general, again, it depends on your project. But let's get back to what programming languages I don't recommend. Things I recommend avoiding. So as far as languages, I would avoid anything that's proprietary obviously. And something that's not cross-platform. A lot of languages like Java's a big one about how they're the universal program which runs on anything. I can get bash script, I know that Windows now has the Linux subsystem. But even back in the day, there was a bash binary single file that you can install on a, just copy it to a Windows system and you had your bash functionality there. So you just had to install that interpreter just like you would with Python. But like, Perl, Python, Bash, things in C. All that stuff, you can be compiled or if you have the interpreter on your system, it runs on pretty much any operating system. You get into things where you might use tools that are specific to an operating system. But for the most part, most program languages are cross-platform. So in that aspect, for the most part, unless you're using something like Visual Basic. Visual Basic is one of the first programming languages I used. And I don't recommend it because it really only runs on Windows. Yeah, you could probably get it running through Wine and maybe someday it will have it to where it will run natively on Linux. But it just, it isn't designed to do that and you should avoid that. Because you don't want to be locked in. Whatever you write, you should have the goal of, unless it's operating, like you're doing something specifically for a certain operating system. If you're doing general stuff, your code should run cross-platform. Maybe it needs to be recompiled if it's a compiled language. But for most part, you should be able to drop it on another operating system and have it work. So you want to avoid that. I also would recommend, and this isn't necessarily a language thing, but avoid what you see is what you get, interfaces. So for example, Visual Basic, you go in there, you draw your program and you create. I've done videos in the past on QT Creator and QT Designer to where you draw the interface for your code rather than writing out the code for your interface. And notice that these are bad, but it tends to make your code more bloated. And as I say, if you want to be a programmer, learn to write code. You're going to get better at writing code. And your code really does get bloated when you use these interfaces. And I did an example of that, of making a simple little number pad where when you do it in one of these, drawing the program, what you see is what you get creating an interface, you have all these, it's just basically every button has its own little section of code where if you actually write out the code, you just create an array and put it in a loop. And like three or four lines of code, you can create a number pad without having all that different code for each button. So you get more efficient code, but if you're going to be a programmer, sit down and write code. That's my advice to you. Now, if you don't want to be a programmer and you just want to, as a hobby and for your own personal use, you want to create an interface, you want to create a program for something, then what you see is what you get, you're not really taking it serious. It's just something you're doing so that you can do it, maybe make something for yourself. But if you really want to learn how to program, and especially if you're going to be writing software that you're going to send out for other people to use, sit down and write the code. You'll become a better coder. You'll write more efficient code and you'll learn more, which is kind of the point, right? To progress in what you're doing. Anyway, that's my advice. I don't recommend necessarily any one program language over the other, although some languages are better for certain tasks. Just avoid the proprietary stuff. Another thing with the proprietary stuff is you write this whole program, five years, 10 years down the road, is your program going to work anymore? Or are they going to abandon that software or come out with new stuff? I'm pretty sure that the stuff I wrote in Visual Basic back in high school 20 years ago isn't going to run on Windows Vista. I would have to rewrite it all, recreate it all, and maybe I'm wrong. I haven't used Visual Basic in years, but that would be my assumption since Windows is horrible about backwards compatibility with its own programs. But avoid proprietary stuff just so you're not locked in. You don't want your code to end up being somebody else's, because even if you open source your code, if it's dependent on proprietary stuff, it can break at any time. And there's nothing you can do where even if an open source language is abandoned or modified in the future, you could always theoretically go in there and keep up the backwards compatibility, which even if you're not, if the language is popular at all, even if they move on and the official project doesn't have backwards compatibility, someone out there is probably working on a backwards compatibility version of it. And so you don't even have to do any work. Anyway, write your own code, avoid the proprietary stuff as always, and I hope that you have a great day.