What's new

Closed Language descriptions

Status
Not open for further replies.

Strawberrry

Forum Veteran
Elite
Joined
Aug 2, 2016
Posts
1,600
Solutions
4
Reaction
632
Points
564
When you think of programming, you might think that there is only one language to use, or that one is the best. The truth is that there is no language that does better than all other languages - if that were the case, then people would only use that language and none other. There are languages for many applications, and while it's mostly true that you can do anything in any language, it's a lot easier to do certain things in certain languages. I wouldn't, for example, write a web application in Java because it's much easier with Javascript or php. While it's true that Java does have libraries and APIs for web development, that's not what it's made for, and there are better options.

You can think of programming languages as a toolkit with hammers, screwdrivers, and wrenches. If you need to put a nail into a board, you use a hammer, or if you want to use a screw instead, you use a screwdriver. While it is certainly possible to try to hammer in a nail with a screwdriver or even a wrench, the obvious choice in this scenario is the hammer, which was designed to use on the nail. There will be situations however where you'd like to use a screw instead of a nail, even though a screw and a nail are fundamentally similar (combining two pieces of wood, in this case), and a hammer just won't do. But do you use a screwdriver or a drill? Maybe you decide that you'd actually like to use a nut and bolt to attach the two for a stronger connection. Maybe you decide you want to glue the two together instead, and that's good enough. At that point it's your choice to weigh the pros and cons of each decision - one choice might be a lot easier to do, but will be lower quality and / or will be missing certain features that the others wont. Will using glue last as long as using a nail or a screw? Does it need to last as long? Maybe you decide on using a bolt instead, but you know that using a bolt will be a lot more time consuming. Maybe you know that the bolt is made from iron and you don't want a rusty project - after all, your kids will be playing with this thing. The screws are made from steel, so rust wont be a problem, but there's always a chance that a screw will splinter the wood.

This is actually a perfect anology. There are a multitude of tools at your disposal for programming, and it's your job to mix and match as you see fit. That said, you don't need to learn all of them at once. Start with one language, learn it to your heart's content, and after you've become proficient with it, feel free to explore.

Below is a list of languages that is by no means a complete list of what's available, and is also not an absolute description. If you're interested in anything, please do some research - these are just general pointers.

Python
Python is definitely and absolutely the place to start learning how to program. Python is a fast language built off of a multiplatform library called SDL that has a huge userbase. A totally flexible and easy to learn language, Python is also very powerful language for a multitude of reasons, including intense algorithmic work and all sorts of different graphics and game libraries. It's super functional and can interact with web browsers, systems, and networks in all kinds of different ways. With thousands of user-built libraries to help you on your task at hand, Python is used (sometimes exclusively) as a side language by many professionals to perform easy and complicated tasks alike. Python also sees use in web development with Django and in the last few years has been increasing its web development usefulness with libraries like urllib2 and splinter.

C++
C++ Is a language that is quite fast, which is why it's commonly used in game engines for memory-heavy things like physics and lighting. C++ Is also used widely in system programming and system applications because it's good for that kind of thing and sub processes need to be executed quickly. C++ was used for just about everything in the 90s 2000s and as a result saw an explosion of popularity around that time. Since then it's grown quite a lot and sits nicely as an industry standard into a great many things.


C
C is an incredibly fast and powerful language that is also used often in system programming, but it really shines where there requires heavy processing and/or algorithmic work, like compilers or system sub processes. As a semi-small language (compared to something like Java), it's a great language to use when resources are low, like in RasberryPi or other small linux distributions. Like C++, C is often used for hardware configuration and system processing, and has been used in most applications since programming was even a thing. C is like the king of programming languages because it's so old and has held up so well throughout the years. Many of the programs you use are written with some combination of C, though because it is lower level, it's not a great first language to learn if you want to start learning.


Java
Java is (read: was) your bread and butter in the programming world for a long time. Then oracle bought the copyright from Sun Microsystems and pretty much ceased active development, not including frequent security updates and a few other development platforms for stock holders. Java was used very commonly all the time (and still is in very large, enterprise-grade software), but in today's day and age, there are normally better alternatives. Java is a bit on the slow side, especially compared to something like C. Although unlike C, is very capable (but absolutely disgusting to code in) in regards to Graphical User Interfaces, which is one of the reasons it's still so widely used. It's also used because Java is multiplatform, where a better alternative like C# is only available on windows operating systems. Java is not a good starter language, but it's the kind of language that is similar enough to other languages that if you know it, you probably know a bunch of others as well (neglecting of course small syntax differences)

.NET (C#, F#, Visual Basic, ASP.NET, others)
From wikipedia, ".NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large class library known as Framework Class Library (FCL) and provides language interoperability (each language can use code written in other languages) across several programming languages". Basically .NET is a super library that is used across multiple languages (listed above, but not limited to those) that allows people to do a variety of different things, including a super great GUI builder. C# in particular is a good language to learn (after python) because it is used professionally, but in itself is not a hard language to grasp. Many of the .NET languages could be considered General Purpose programming languages, and the .NET library allows for lots of different applications like web development, networking, game design, and application development. I also think C# is used in some gaming consoles.


Web Development (Js, PHP, CSS, HTML)
Web development uses all four of the base languages that are required to have a good website. While html isn't technically a programming language, HTML5 IS, but then we're just getting technical. HTML is the framework for the webpage that you see - the bare bones of a website is all HTML. CSS is a sprucer-upper - all of the font, colors, text sizes, headers, font-families, and object placement is done with CSS. Javascript is used for creating more complicated apps and buttons that to different things on the webpage. All vanilla javascript is client-side stuff, which means that it can't interact with the server. On the other hand we have PHP which is completely server side - all data management, server requests, DNS settings and other things of that sort are done with PHP.

There's also this thing called full-stack development which uses a multitude of different languages, many of the javascript-based, to create a web page or web application. I'd encourage you to take a look at that because there's more information online than I can put into this description.


Objective C / Swift
Swift is a programming language that is currently being developed by Apple, and is working to replace Objective C as the primary Mac OSX and iPhone programming language. Having worked with it in the past, it's easy to learn and often compared to python with regards to syntax. The APIs are rich and the documentation is fruitful. I personally don't like swift because I think Apple sucks at creating developer-friendly APIs and their reliance on closed-source inner libraries leaves something to be desired. That's just my opinion however (and probably an incredibly controversial one at that), and I encourage you to learn swift (NOT objective C) if you want to start learning how to program for osx. Because many of the APIs from Apple are locked behind their copyright, you can only really use Swift and ObjC to create apple applications, though there are some other languages like GO that are able to interact with those APIs.

GO
GO is a language developed by Google to be minimalist, fast, maintainable, and modern tool for use in all sorts of things. GO is often compared to python because both of them are (easy?) to learn and have a similar sales pitch. GO is a new language and currently sounds like a lot of fun to learn because of the new things it brings to the table, like real time garbage collection and fancy goroutines. For the same reasons it's currently used for the most part in Networking and Server Code, though because of the lack of libraries (relative to python, in this instance), it doesn't shine as well at creating something like a desktop application.
 
Status
Not open for further replies.

Similar threads

Back
Top