Java

Java is an object-oriented, compiled, high-level programming language developed by Sun Microsystems and Oracle.
Java is designed with general-purpose in mind, and the ability to write once and run anywhere due to it’s compilation into bytecode which can run on any Java virtual machine. Because of this, Java is among the most popular programming languages in the world. It’s architecture-neutrality means Java can be found in a lot of unconventional computers- such as smart fridges, cars, toys, and other embedded devices. Due to it’s popularity, Java has an incredibly large selection of API’s and extensions. Java is syntactically similar to the C languages, though quite different in some ways. Java is purely object oriented, and does not permit multiple-inheritance- using interfaces instead. Combine this all with automatic memory management and Java is a powerful, yet easy enough language for any programmer to learn. An example of a product developed with Java is the popular online game Runescape. First released in 2001, it recognized as the largest multiplayer roleplayer game.

Java is also language I know how to write with, and so thus it is the language I am most comfortable with on this list.

Java has several design goals within it’s philosophy: [1]
-Simple, Objected Oriented, and familiar
-Robust and Secure
-Architecture neutral and portable
-High performance
-Interpreted, threaded, and dynamic

 

Python

Python is a very unique interpreted high-level programming language with support for multiple paradigms. Python was developed to be very extensible, and a simple, clean syntax. Python was developed by Guido van Rossum and first released in 1991. It is currently developed by the nonprofit Python Software Foundation. The language and culture behind Python aims to make programming more readable, beautiful, and fun. Due to these unconventional design goals, Python has grown a very dedicated and passionate fanbase. A popular, free, and powerful modelling and animation software, Blender, was developed using C++ and Python. Furthermore, Blender also allows users to write Python scripts to influence the creations. Much like Java, Python also compiles into Bytecode on a virtual machine.

Python has a rather large design philosophy, including points such as:[2]
-Beautiful is better than ugly.
-Explicit is better than implicit.
-Simple is better than complex.
-Complex is better than complicated.
-Readability counts.

 

C#

C# is a powerful general-purpose multi-paradigm high-level programming language developed by Microsoft, first appearing in the year 2000. It is syntactically similar to it’s C cousins, and serves as an increment of C. C# Compiles into Common Intermediate Language, or IL, which is then compiled just-in-time to machine code. The common software framework .NET was developed with C#, so many windows-based applications utilize it in some capacity. C# has a large and dedicated community, it’s easy to learn for beginners and has all the power that experts need. The popular Game Engine Unity was developed with C++ and C#, and allows users to script their games with C#. Many popular titles and countless indie games have been created with the help of unity.

These are some of the design goals for C#:[3]
-C# is designed to be a simple, modern, general-purpose, object-oriented programming language.
-C and C++ Portability is very important.
-Internationalization support is very important.
-C# is designed to be suitable for embedded systems.

 

Lua

Lua is a lightweight, high-level, multi-paradigm programming and scripting language. It was designed in 1993 with a primary focus on embedded use in applications. Lua is designed to be simple and extensible, and light- as a result the full Lua interpreter is only 247kb compiled. Lua comes with a lot of metaprogramming features. Lua also compiles into bytecode to run through a virtual machine. Because of Lua’s extensible and simple metaprogramming features, Lua is the most common scripting extension used in video-game development. Since Lua is designed to be embedded, not a lot of things where developed exclusively with it- but it’s so useful that it has made it’s way into almost every game studio at some point or another. One game in particular which uses Lua is Dark Souls- a Japanese game renown for it’s unforgiving difficulty.

Lua was designed to be:[4]
-Simple
-Lightweight
-Portable
-Fast
-Easily Embedded

 

Rust

Rust is a multi-paradigm, low-level programming language designed by Grayden Hoare and Mozilla in 2010 with safety and performance in mind. Despite the fact that it is low-level, it borrows a lot of the features, functionality, and readability of higher-level languages and sits itself betwixt, in that weird grey-area where the abstraction can be easily debated. Rust prioritizes memory safety and management, and lacks any null pointers or automated garbage collection.  Features found in most of the higher-level languages mentioned. The Syntax of Rust is somewhat similar to C or C++. Rust compiles into LLVM bitcode, which is then compiled directly into Machine Code. Rust is invaluable as an embedded language due to its ability to write extremely low-level code. Therefore it is similar to Lua in the sense that not many products where developed with it, but much like Lua, countless digital products utilize and rely on Rust. Discord, a community-based instant messaging a voice lobby software utilizes Rust in multiple ways, the safety and speed of Rust allow their servers to function with over 11 million concurrent users. There’s even an NIC Discord with 150 students, which works with NISU! I even happen to be one of the moderators. Unfortunately due to COVID-19, many of the Rust employees at Mozilla were laid off.

Rust has three major design goals:[5]
-Safety
-Speed
-Concurrency

References:

Used for design philosophies:

  • https://www.oracle.com/java/technologies/introduction-to-java.html [1]
  • https://www.python.org/dev/peps/pep-0020/ [2]
  • https://www.ecma-international.org/publications-and-standards/standards/ecma-334/ [3]
  • https://www.lua.org/doc/hopl.pdf [4]
  • https://learning-rust.github.io/docs/a1.why_rust.html[5]

General information was gathered from related Wikipedia pages and sources:

  • https://en.wikipedia.org/wiki/Java_(programming_language)
  • https://en.wikipedia.org/wiki/Python_(programming_language)
  • https://en.wikipedia.org/wiki/C_Sharp_(programming_language)
  • https://en.wikipedia.org/wiki/Lua_(programming_language)
  • https://en.wikipedia.org/wiki/Rust_(programming_language)

Word Count: 930