DEV Community

John Rush
John Rush

Posted on

38 programming languages. Tried them all!

Hey there, code enthusiasts!

From classics like Fortran to newcomers like Swift,
I've tried them all and can say: what a time waste! Hopefully,
I'm not alone in this journey and we can waste time together.


By the end of this tour,
you'll either be laughing all the way back to your text editor...
or tearing up because now you can't decide which language to learn next.

But hey, at least it was fun!


And now...
let's jump right
into this treasure
trove of programming goodness! ⌨️💻🌐

Scratch: The Lego Land of Programming

Scratch allows you to build your coding skills like a child playing with Legos, and who doesn't love Legos?

Scratch Cat Meme

when green flag clicked
  // Scratch uses blocks instead of text-based code, making it beginner-friendly!
  say "Hello, world!" for 2 seconds

move (10) steps
// Motion blocks control movement - here we tell the sprite to take a walk!

turn cw (15) degrees
// Scratch's way of saying "Take a right turn!". CW stands for clockwise.

change color effect by (25)
// Jazz up your sprite with some colors! This block changes the hue.

if on edge, bounce
// No more falling off the stage! With this block, sprites always stay in sight.
Enter fullscreen mode Exit fullscreen mode

BASIC: The Grandpa of Beginner Languages

BASIC is the granddaddy of beginner programming languages that still has some groove left in it.

10 REM This is a BASIC program - it's super simple and fun!
15 REM The following line prints "HELLO WORLD" on the screen.
25 REM Let's do some math! We'll start by assigning values to variables A and B.
30 LET A = 42: LET B = 7
35 REM Now we will calculate the sum, difference, product, and quotient of A and B.
45 REM Time to display our results with a sprinkle of humor!
70 END

REM Some basics about BASIC:
REM - It stands for Beginner's All-purpose Symbolic Instruction Code.
REM - Line numbers are used to organize code statements in sequence.
REM - 'PRINT' command displays output on the screen.
REM - Variables can be assigned using 'LET', but you can also directly use variable names without it too!
Enter fullscreen mode Exit fullscreen mode

Basic Meme

Python: Indentation Nation

Python is as easy as pie, but don't eat too much or you'll get indigestion (from all those indents).

# Python is an interpreted high-level language, known for its readability and ease of use
print("Hello snek!")

# It uses dynamic typing - no need to specify variable types explicitly! How cool (and risky) is that?
fav_food = "mice"

# Don't forget about our beloved list comprehensions!
squares = [x**2 for x in range(11)]

# Indentation matters in Python. Tab or space? That's the real question.
if fav_food == "mice":
    print("Snek loves mice!")
    print("What kind of snek doesn't love mice?")

# Errors are raised as exceptions, but we can catch them with try-except blocks
    result = 5 / 0
except ZeroDivisionError:
    print("Sneks don't do math well.")

# One last thing: everything in Python is an object. Even functions!
def wiggle():
    return "Wiggle wiggle."

snek_wiggle_function = wiggle

Enter fullscreen mode Exit fullscreen mode

Python Meme

JavaScript: Web Dev's Necessary Evil

JavaScript can be ugly and messy at times, but hey, so are most of our bedrooms, and we still live in them.

// Semicolons are optional in JavaScript but let's use them for fun;
console.log("Hello world... Now with more semicolons;");

// Variables can be declared using var, let or const. Don't be a "var"barian!
let coolVar = 'Be cool, use "let";';

// Template literals: Because concatenation is too mainstream.
const coolerVar = `Even better with \`${coolVar}\``;

// Log our cooler variable to the console;

// Arrow functions: Shorter syntax & lexical this binding. Neat!
const addEmUp = (a, b) => a + b + ';';

// Call our arrow function;
console.log(`Adding 3 and 7 gives us ${addEmUp(3, 7)}!`);
Enter fullscreen mode Exit fullscreen mode

JavaScript Meme

Java: The Undying Language

Java is the language that refuses to die – it's like a zombie, but with better syntax.

// Java is a popular high-level, object-oriented programming language.
public class HelloWorld {
  // The 'main' method serves as the entry point for our program execution.
  public static void main(String[] args) {
    // System.out.println() is used to print text to the console. It's an essential debugging tool!
    System.out.println("BRAINS! I mean... Hello World!");

    // Java loves its curly braces and semi-colons - don't forget them or it'll get cranky!

    // In Java, everything belongs to a class, even zombies. So embrace your inner zombie coder!

    // If you're looking for more excitement in life (and code), try out other languages like JavaScript or Python.
Enter fullscreen mode Exit fullscreen mode

Java Meme

C: The Old Reliable

C is like your old car from the '70s – it might not be as flashy as newer models, but it still gets you where you need to go.

#include <stdio.h> // C's most basic library, allowing I/O operations like printf

// main() is where your program starts execution, it's the heart of a C application
int main() {
   printf("Hello vintage world!\n"); // printf is used to display text on screen
   // Fun fact: C was created back in 1972 by Dennis Ritchie at Bell Labs!

   return 0; // Indicates successful execution to the operating system (OS)
C is a procedural language, which means you'll write programs using functions.
It's incredibly fast and efficient - even modern programming languages rely on it!
C lets you play with memory management directly, giving you great control & power,
but remember: "With great power comes great responsibility." Don't mess up! ;)
Enter fullscreen mode Exit fullscreen mode

C Meme

C++: Faster Than a Speeding Bullet

C++ gives you superpowers like speed and efficiency, just don't try flying or shooting lasers from your eyes.

using namespace std;

// C++ is a statically-typed language, which means that types are checked at compile time.
// It's an extension of the C programming language and supports object-oriented programming.

int main() {
    // 'cout' stands for "console output" and is used to display text on the screen.
    cout << "Hello turbo-charged world!" << endl;

    // In C++, you don't need to use 'return 0;' in the main function as it's implied by default.
    // However, adding it explicitly can be considered good practice!
Enter fullscreen mode Exit fullscreen mode

C++ is known for its high performance and ability to develop complex systems.

C++ Meme

SQL: Talk to Your Database Like a Pro

SQL lets you have deep conversations with your databases, but don't expect them to share their feelings.

-- SQL (Structured Query Language) is the go-to language for interacting with relational databases.
-- It allows you to create, read, update and delete data in a simple and intuitive way.

SELECT 'Hello, relational world!' AS greeting; -- Here we SELECT a string value as an alias called "greeting".

/* And now let's have some fun! */

CREATE TABLE cats (id INT PRIMARY KEY, name VARCHAR(50), age INT); -- Create a table named "cats" with columns id, name and age.

INSERT INTO cats (id, name, age) VALUES (1,'Mr. Whiskers', 3); -- Insert Mr. Whiskers into our cats table!

SELECT * FROM cats WHERE age > 2; -- Let's find all the cool adult cats that are older than 2 years old.

UPDATE cats SET age = 4 WHERE name = 'Mr. Whiskers'; -- Happy birthday Mr. Whiskers! Let's -- update your age in the database.

DELETE FROM cats WHERE name = 'Mr. Whiskers'; -- Oh no! Mr. Whiskers has found a new home, let's remove him from our table.

SELECT COUNT(*) FROM cats; -- Let's see how many cats are left in our table after Mr. Whiskers' departure.

/* Congrats! You've now experienced some SQL magic.
   With these basics, you can dive deeper into the world of relational databases and data manipulation! */
Enter fullscreen mode Exit fullscreen mode

PHP: The Web's Workhorse

PHP is the workhorse of the web; it may not be the prettiest or fastest horse, but it gets the job done.

// PHP is a server-side scripting language designed for web development.
// It can also be used as a general-purpose programming language.

/* The first thing you might notice is the "<?php" opening tag and "?>" closing tag.
  This tells the server to interpret everything between these tags as PHP code. */

echo "Hello World! I'm still relevant!";
// 'echo' is one of several ways to output data in PHP. It's fun, simple, and effective!

$x = 42;
$y = "Universe";
echo $x . ' - The answer to life, the ' . $y; // Concatenation with '.' operator

Enter fullscreen mode Exit fullscreen mode

PHP Meme

Swift: Apple's Darling

Swift is like a shiny new toy from Apple – we all want one even if we're not sure what it does yet.

// Swift - a modern, powerful language created by Apple for iOS and macOS development.
// It's known for being expressive, safe-by-design, and enjoyable to write.

print("Hello world fresh from Cupertino!") // Print function for displaying text

let greeting = "Swift is fun" // 'let' creates an immutable constant (like const in JS)
var mutableGreeting = "Swifter than you think!" // 'var' creates a mutable variable

print(greeting) // Prints: Swift is fun
mutableGreeting += " 😉" // String interpolation done using \(variable)
print(mutableGreeting)  // Prints: Swifter than you think! 😉

if greeting.count > mutableGreeting.count { 
    print("Long live constants!") 
} else {
    print("Change it up with variables!")

// In Swift, the curly braces {} around if-else blocks are mandatory. No more confusion!
Enter fullscreen mode Exit fullscreen mode

Swift Meme

Kotlin: Java's Trendy Cousin

Kotlin is like Java's hip cousin that makes you question why you're still hanging out with Java.

// Welcome to Kotlin - a modern, concise, and expressive language!
// It's the cool kid on the block for Android app development.

fun main() {
    // Here's our simple "Hello World!" program in Kotlin.
    println("Hey there cool kids!")

 * Fun fact: Kotlin is 100% interoperable with Java. That means you can have both
 * Java and Kotlin code in the same project without any issues! How awesome is that?

  * In Kotlin, functions are declared using 'fun' keyword.
  * Check out this funky example below:
 fun doTheFunkyThing(thing: String) = println("$thing just got funky!")

 * Goodbye semicolons! Unlike some of its older siblings (ahem...Java), 
 * you don't need semicolons at the end of each statement in Kotlin. Neat, huh?

  * Life's too short for boilerplate code.Kotlin's got you covered with features like data classes and extension functions,
  * making your code shorter and cleaner. Say goodbye to that boilerplate nightmare!

data class CoolKid(val name: String, val age: Int)

 * Null safety is one of Kotlin's shining stars.
 * You can't assign a null value to a variable unless you really want it (using '?').
 * Now embrace the power of avoiding NullPointerExceptions - no more billion-dollar mistakes!
val coolKidsClub: List<CoolKid?> = listOf(CoolKid("Alice", 25), null)

 * With Kotlin, you get both object-oriented programming and functional programming
 * in one neat package. Lambdas? Higher-order functions? Collections API?
 * Yup, we've got it all! Unleash the full potential of your code-fu skills.
val evenCoolerKids = coolKidsClub.filterNotNull().filter { it.age >= 18 }
Enter fullscreen mode Exit fullscreen mode

R: The Statistician's BFF

R is like a math nerd who loves statistics and data analysis – be nice, they'll help you pass your exams.

# R is a language for statistical computing and graphics, loved by data scientists.
cat("Hello, world of numbers!\n")

# R has built-in support for vectorized operations, making it fast and easy to manipulate data.
my_vector <- c(1, 2, 3)
doubled_vector <- my_vector * 2

# Data frames are the backbone of working with data in R - think spreadsheet-like tables!
my_data_frame <- data.frame(name = c("Alice", "Bob"), age = c(30, 25))

# The 'apply' family of functions allows you to apply a function to elements in vectors or data frames.
sum_of_ages <- sum(my_data_frame$age)

# Packages like ggplot2 make creating stunning visualizations almost as fun as playing with Lego bricks.
ggplot(my_data_frame) + geom_col(aes(x=name,y=age))
Enter fullscreen mode Exit fullscreen mode

Remember: "Life is short. Use R." 😉

R Meme

Go: Google's Speedy Offspring

Go is the programming language equivalent of an energy drink; it will get you going real fast!

package main

import "fmt"

// Go, also known as Golang, is a statically typed language that excels in concurrent programming.
// It's fast and efficient like C++ but with the simplicity of Python. Your computer will go bonkers!

func main() {
    // Here we have our entry point for any Go program - the main function.
    fmt.Println("Gopher speed!")

    // With just ten lines of code here, you can't unveil all its superpowers,
    // but never fear! You'll eventually find yourself using it to build robust systems!
Enter fullscreen mode Exit fullscreen mode

Dart: Fluttering Into Your Heart

Dart might sound like what you do at a bar on Friday nights, but it’s actually for building beautiful apps with Flutter.

// Dart is a versatile language developed by Google, used for web, server, and mobile applications.
// It's popular for building cross-platform apps using the Flutter framework.

main() {
  print('Hello from the dartboard!'); // This print function displays text to the console.

// Variables in Dart can be explicitly typed or inferred using `var`.
int age = 30;
String name = 'Dartman';
var weapon = 'Dartgun';

// Functions are easily defined with concise syntax and optional return types.
bool isHero(String heroName) => heroName == 'Dartman';

print(isHero(name)); // true
Enter fullscreen mode Exit fullscreen mode

Dart Meme

C#: Microsoft's Finest Creation

C# is to Java what Batman is to Superman – similar powers but way cooler gadgets (and Visual Studio).

using System;

// C# is a statically typed, object-oriented language developed by Microsoft.
// Unlike JavaScript, it has a clean syntax and strong typing support.
class HelloWorld {
    // The Main method serves as the entry point for console applications in C#.
    static void Main() {
        // Console.WriteLine allows you to print messages on the screen. Very useful!
        Console.WriteLine("Greetings from Gotham!");

        // With only 10 lines of code at our disposal, we can't conquer the world yet,
        // but hey! You could start an exciting career in software engineering with C#!
Enter fullscreen mode Exit fullscreen mode

Remember, every superhero starts somewhere. Learn other languages too and maybe one day you'll save Gotham City with your coding skills!

Visual Basic: The Forgotten Hero

Visual Basic used to save the day for many developers, but it now lives in the shadows like a retired superhero.

' Visual Basic is an easy-to-read, powerful language developed by Microsoft.
' VB.NET, a modern version of Visual Basic, is part of the .NET framework.

Module HelloWorld
    ' "Sub Main()" serves as the entry point for our program execution.
    Sub Main()
        ' Console.WriteLine() outputs text to the console window.
        Console.WriteLine("Hello from the Batcave! Alfred's serving tea.")

        ' Let's show some basic math operations and string concatenation!
        Dim batMath As Integer = 5 + 3 * (8 - 2)
        Console.WriteLine("Batman solved this: " & batMath.ToString())
    End Sub
End Module
Enter fullscreen mode Exit fullscreen mode

Visual Basic Meme

Perl: The Swiss Army Knife

Perl is like that old Swiss Army knife you have – super useful and versatile, but hard to master.

# Perl (Practical Extraction and Reporting Language) is a dynamic, versatile language known for its text processing abilities.

print "Hey there, pearl of wisdom!\n"; # Prints a string with a newline character at the end

my $name = "Larry Wall"; # Declare a scalar variable named 'name' holding the creator of Perl's name

print "Perl was created by $name.\n"; # Variable interpolation within double quotes makes it fun!

if ($name eq "Larry Wall") {  # Use 'eq' to compare strings in Perl
    print "You know your history!\n";

for my $i (1..5) {           # A C-style loop isn't always needed. This range operator is unique!
    print "$i\n";

@array = qw(Perl Python Ruby);      # Create an array using qw() - quote words syntax for elegance
$size = @array;                     # Get the size of an array just like that! No need for functions.
print "@array are popular languages. Total: $size\n";

Enter fullscreen mode Exit fullscreen mode

Ruby: Programmer's Best Friend

Ruby is like a gemstone – beautiful, valuable, and everyone wants one on their résumé.

# Ruby is a high-level, dynamic programming language with an elegant syntax.
# It emphasizes simplicity and productivity, making it a favorite among developers.

puts 'Hello shiny world!' # Puts (short for "put string") displays the text in the console.

def greet(name)           # Defining a function called `greet` that takes one argument, `name`.
  "Hi there, #{name}!"    # String interpolation allows you to insert variables directly into strings.

puts greet('Rubyist')     # Call the function with an argument and display the result.

3.times { puts 'Ruby rocks!' } # This demonstrates Ruby's powerful blocks feature.

(1..5).each do |num|      # Ranges are used to represent sequences. Here we loop through numbers 1 to 5.
  puts num * num          # Print each number squared using arithmetic operations within `puts`.
Enter fullscreen mode Exit fullscreen mode

Scala: The Sophisticated Cousin of Java

Scala is like that classy cousin who shows up to family gatherings with a glass of wine and talks about functional programming.

// Welcome to Scala! It's a blend of object-oriented and functional programming, running on the JVM.
object HelloWorld extends App { // 'object' creates a singleton instance. 'extends App' is for simple command-line programs.

  println("Hello, fancy world!")    // Unlike Java: no semicolons needed! Scala infers them.

  val greeting = "Have an awesome day!"   // 'val' declares an immutable variable. Think of it as a constant in other languages.

  def sayGoodbye(name: String): Unit = {   // Defining functions with 'def'. ': Unit =' means there's no return value (like void).
    println(s"Goodbye $name!")            // Using string interpolation with the '$'.

  sayGoodbye("Scala")                    // Calling our function without parentheses around arguments.

Enter fullscreen mode Exit fullscreen mode

Objective-C: The Apple Language Before It Was Cool

Objective-C was the go-to language for Apple developers before Swift came along and stole its thunder.

#import <Foundation/Foundation.h>

// Objective-C is an OOP language that extends C and adds a Smalltalk-style messaging system.

int main (int argc, const char * argv[]) {
    @autoreleasepool { // Memory management! This block helps manage memory resources efficiently.
        NSLog(@"Hello old-school Apple!"); // Logging messages in ObjC - say hello to NSLog!

    NSString *funFact = @"Objective-C can still party with Swift!";
    NSLog(@"%@", funFact); // %@ is the format specifier for objects like NSString. Let's print it!

    return 0; // Exiting gracefully, just like grandpa told us.
Enter fullscreen mode Exit fullscreen mode

Assembly: Where Men Are Separated From Boys

Assembly is the Chuck Norris of programming languages – you don't choose it; it chooses you.

section .data
hello db 'Hello, bare-metal world!',0xA  ; Define "hello" string with newline (0xA) at the end

section .text
global _start   
mov eax,4        ; Prepare syscall for write operation (sys_write = 4)
mov ebx,1        ; File descriptor: stdout (1); we're writing to console!
lea ecx,[hello]  ; Load address of our lovely message into ecx register
add edx,len      ; Calculate length of the string including newline character and store in edx register

int 0x80          ; Trigger interrupt. Magic happens! Hello world appears!

mov eax,1         ; Prepare syscall for exit operation (sys_exit = 1)
xor ebx,ebx       ; Set exit code to zero using xor trick; it means success!
int 0x80          ; Another interrupt. Goodbye cruel world...

len equ $-hello   ;
Enter fullscreen mode Exit fullscreen mode

This is Assembly language – where you talk directly with your CPU! It's like driving a stick shift instead of an automatic car. You have more control but also more responsibility.

In this snippet, we greet the "bare-metal world" by printing a message on the screen before leaving 😢. Assembly can be tough but provides unparalleled performance and understanding of how computers truly work under the hood.

Assembly Meme

Fortran: Still Punching Cards Strongly

Fortran is like your great-grandpa's pocket watch – still ticking after all these years!

! Welcome to the world of Fortran, where everything began.
! It's one of the oldest programming languages, created in 1957 for scientific computation.

PROGRAM HelloFortranWorld
    ! This line declares our program and its name.

    PRINT *, "Hello, timeless world!"
    ! Say hello to a classic example of fixed-format code. The "*" defines default format.

END PROGRAM HelloFortranWorld
    ! And this is how we close the program block.

! You might feel like a dinosaur while coding in Fortran,
! but it's still widely used in high-performance computing and engineering applications!
Enter fullscreen mode Exit fullscreen mode

Lua: The Unsung Hero of Game Development

Lua is like the understudy in a Broadway play – always there to support and never complains about being in the spotlight.

-- Lua is an embeddable scripting language, great for game engines or extending applications.
print("Hello from backstage!")

-- Variables are dynamically typed. You don't have to specify the type when you declare it.
local name = "LuaRocks"
local age = 25

-- Functions can be easily assigned to variables and passed around like any other value.
local function greet(person)
  print("Hey there, " .. person .. "! Lua loves ya!")

greet(name) -- Output: Hey there, LuaRocks! Lua loves ya!

-- Tables in lua act as arrays, dictionaries and objects all at once!
local band = { leadSinger = "John", drummer = "Paul" }

print(band["leadSinger"]) -- Output: John
Enter fullscreen mode Exit fullscreen mode

Lua Meme

Rust: Iron Man's Favorite Language

Rust offers safety without compromising on performance, just like Iron Man's suit.

// Rust is a systems programming language with built-in safety checks.
// It prevents common programming errors like null pointers or memory leaks.

fn main() {
    // println! is a macro (indicated by the exclamation mark) that prints to stdout.
    println!("Hello safer world!"); // You'll never forget a semicolon again!

    let x = 42; // Variables are immutable by default, which helps prevent bugs!
    let mut y = "Rustacean"; // But you can use `mut` to make them mutable if needed.

    match x { // Pattern matching in Rust is powerful and expressive!
        0..=10 => print!("Small "),
        _ => print!("Big "),      // The underscore (_) matches anything.

    y = "in action!";
Enter fullscreen mode Exit fullscreen mode

Julia: Beauty with Brains and Speed

Julia combines the elegance of Ruby with the power of C++ – it's like having your cake and eating it too!

# Welcome to Julia, a high-performance language for technical computing
println("Hello my boys!")

# You can do math like it's nobody's business
result = 3 * (5 + 2) / 7 # Don't forget the order of operations!

# Functions are your friends; they help break down complex tasks into simpler ones
function greet(name)
    return "Howdy, $(name)!" # String interpolation is as smooth as butter in Julia

greeting = greet("Partner")

# Arrays store multiple elements so you don't have to juggle variables all day long
fruits = ["apple", "banana", "cherry"]
push!(fruits, "orange") # Bang! The exclamation mark indicates that fruits has been modified in-place

for fruit in fruits # Loop through the array and enjoy each fruit one by one
    println("Yum, I love $(fruit)s!")

Enter fullscreen mode Exit fullscreen mode

Julia Meme

TypeScript: JavaScript's Superhero Alter Ego

TypeScript is like the Spider-Man to JavaScript's Peter Parker – same person, but way cooler with added powers.

// Welcome to TypeScript! It's a superset of JavaScript that brings static typing.
// This means you can catch errors before runtime, which is pretty cool, right?

console.log("Hello from your friendly neighborhood TypeScript!");

// You know what makes it more fun? Type annotations!
let myNumber: number = 42;
let myString: string = "Life, the Universe and Everything";

// But wait... there's more! Meet interfaces - they help define object shapes.
interface Superhero {
  name: string;
  power: string;

const batman: Superhero = { name: 'Batman', power: 'Rich' };
Enter fullscreen mode Exit fullscreen mode

TypeScript Meme

Shell Script: Automate All The Things!

Bash and PowerShell are like magic wands for developers – just wave them around and watch tasks get done!

# Bash is a Unix shell scripting language that allows you to automate tasks.
# It uses the # symbol for single-line comments, like this one.

echo "Hello, automated world!" # echo command prints text on the screen

DATE=$(date)  # You can assign output of a command to a variable using $()
echo "Today's date is: $DATE"

if [[ "$USER" == "root" ]]; then  # Conditional statements use double brackets [[ ]]
  echo "You are root!"           # And don't forget the semicolon ; before 'then'
  echo "Hi there, regular user ${USER}."   # Use ${VAR} format to embed variables in strings
fi   # Close your if statement with 'fi', which is just 'if' spelled backwards (Bash fun!)
Enter fullscreen mode Exit fullscreen mode

Groovy: Java in Party Mode

Groovy adds some fun to Java programming. It’s like taking Java out dancing on a Saturday night.

// Say hi to the groovy world!
println 'Hello groovy people!'

// Groovy is like Java's chill cousin, who just wants to have a good time.
def partyAnimal = 'Groovster'
println "Let's party with ${partyAnimal}!"

// Dynamic typing? No problemo in Groovy land!
def coolNumber = 42
coolNumber = 'Now I am a string!'
println coolNumber

// Closures are your new best friends. They're like mini-functions you can pass around.
def greetSomeone = { name -> println "Hey $name, let's get groovy!" }
greetSomeone('Funky Fred')

/* JavaScript might be the life of the web dev party,
   but when it comes to scripting and automation, Groovy knows how to boogie down! */
Enter fullscreen mode Exit fullscreen mode

F#: Functional Programming FTW!

F# brings functional programming to .NET, proving that even Microsoft can have a little Haskell-like fun.

// F# is a functional-first language, promoting immutability and function composition.
let greet name = printfn "Hello, %s!" name

// It seamlessly integrates with the .NET ecosystem, making it great for web development.
open System.Net.Http
let httpClient = HttpClient()

// Pattern matching is powerful in F#, allowing you to destructure data and handle cases elegantly.
type Shape = Circle of float | Rectangle of float * float
let area shape =
    match shape with
    | Circle r -> Math.PI * r * r // No parantheses needed when calling functions!
    | Rectangle (w, h) -> w * h // Using tuples for easy multi-value passing.

greet "functionally fabulous world!"
printfn "Area of circle: %A" (area (Circle 4.0))
printfn "Area of rectangle: %A" (area (Rectangle(3.0, 5.0)))

// On your coding journey's deathbed, don't regret not trying out F# as an alternative to JavaScript or PHP!
Enter fullscreen mode Exit fullscreen mode

Elm: The Purely Functional Web Champ

Elm is like a zen garden for functional web development – it's calm, peaceful, and everything is in its place.

-- Elm is a delightfully pure, functional language for front-end web development.
-- It compiles down to JavaScript, so it plays nicely with other web technologies.

import Html exposing (text) -- Import the 'Html' module and expose the 'text' function

main = -- The main function serves as an entry point for our Elm application
  text "Hello world from the land of purity!" 
  -- The 'text' function creates an HTML text node with the given content

{- Fun Fact: Elm's type system eliminates runtime errors,
   making your code more robust and easier to maintain. -}

{- Another Fun Fact: Elm has its own package manager and architecture,
   which makes building complex applications a breeze! -}
Enter fullscreen mode Exit fullscreen mode

Elixir: The Magical Potion for Concurrency

Elixir brings concurrency to the table with style. It's like if Harry Potter took up programming instead of wizardry.

# Elixir is a functional, concurrent language built on the Erlang VM (BEAM)
# It's great for fault-tolerant systems and hot code swapping!

IO.puts("Expecto Patronum! I mean... Hello World!")

# Pattern matching is one of Elixir's superpowers!
{a, b} = {42, "magic"}

# Immutability prevents side effects - no dark magic here.
x = 7
x = x + 1 # This will raise an error

# Anonymous functions with & syntax - just like wands without names!
sum = &(&1 + &2)
result = sum.(3, 4) # => result: 7

# Pipe operator |> directs output to next function - wizard-level chaining!
|> String.upcase()
|> String.split("")
Enter fullscreen mode Exit fullscreen mode

Elixir Meme

Haskell: A Lazy Language That Actually Works

Haskell is so lazy that it only does work when absolutely necessary. We could all learn something from this language.

{- Haskell is a functional programming language with strong, static typing.
   It's known for its lazy evaluation and love of mathematical purity. -}

import Data.Char (toLower) -- Let's import 'toLower' function from 'Data.Char'

main = putStrLn "Hello from the land of laziness!"

-- Here's a simple function to make strings lowercase using list comprehension.
lowercase :: String -> String
lowercase s = [toLower c | c <- s]

{- Fun fact: In Haskell, you can define infinite lists like this:
   primes = sieve [2..] where sieve (p:xs) = p : sieve [x | x <- xs, x `mod` p /= 0]
Enter fullscreen mode Exit fullscreen mode

Prolog: Logic Programming Unleashed!

Prolog makes you think in a completely different way about coding. Are you ready to take the red pill?

% Prolog, a logic programming language, is great for AI and symbolic reasoning.
% The syntax is unique - it's all about facts, rules & queries!

hello_world :- write('Welcome to the Matrix!\n'). % Define a rule: hello_world
?- hello_world.  % Query (or call) the rule to print "Welcome to the Matrix!"

% Fun fact: Prolog uses Horn clauses; Facts start with lowercase and end with a period.
likes(john, pizza).   % Fact: John likes pizza

% Define rules using ":-" where left side is head & right side are conditions
hungry(X) :- likes(X, pizza), time(lunch).    % Rule: X is hungry if X likes pizza during lunchtime

?- hungry(john).     % Query (or call) hungry/1 rule for john. Will return true or false.

/* Congrats! You've dipped your toes in Prolog. 
Now go conquer logic puzzles like Sherlock Holmes! */
Enter fullscreen mode Exit fullscreen mode

COBOL: Not Dead Yet!

COBOL might be older than your grandparents, but it still runs a significant portion of today’s critical systems.

PROGRAM-ID. HelloWorld.

* COBOL dates back to 1959
* Its syntax is more verbose and "English-like" compared to other languages, making it easier for some folks to read.


    DISPLAY 'COBOL says hi from yesteryear!' UPON CONSOLE. * This line prints a message on the console
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5       *> Super fun loop time: iterate through numbers 1 to 5
        DISPLAY 'Iteration: ', I UPON CONSOLE      *> Print the current iteration number in each loop cycle

    STOP RUN. * Gracefully stop the program after loops and laughs are done!
Enter fullscreen mode Exit fullscreen mode


MATLAB: The Matrix Master

In the world of matrix manipulation, no one can beat MATLAB at its game. It's like Neo from "The Matrix," but for math.

% MATLAB is short for Matrix Laboratory and is all about matrix manipulation.
disp('Hello from the mathematical world!')

% You can do simple calculations just like a calculator, but way cooler!
a = 2 + 3;
b = a * 4;

% Prepare to be mind-blown! Create a magic square - rows, columns & diagonals sum up to the same number.
magic_square = magic(3);

% Want some fun? Generate random numbers in MATLAB. Goodbye casino!
random_number = randi([1, 100]);

% Plotting graphs has never been so easy! Let's plot y=sin(x) from x=0 to x=2*pi
x = linspace(0, 2*pi);
y = sin(x);
title('Yeehaw! Look at that beautiful sine wave!')
Enter fullscreen mode Exit fullscreen mode


Pascal: Teaching Good Habits Since 1970

Pascal is like that strict teacher who makes you write neatly and use proper punctuation – annoying but necessary.

program HelloWorld;
(* Pascal is a highly structured, strongly typed language, great for teaching programming concepts *)
  (* The 'begin' keyword marks the start of a block in Pascal. It's like an opening brace in other languages *)
  WriteLn('Hello, disciplined world!');
  (* WriteLn is a built-in procedure to output text followed by a newline character *)

  Writeln('Any application that can be written in JavaScript will eventually be written in JavaScript.');
(* Every statement ends with a semicolon ';' and the 'end.' closes our program block. Notice the period! *)

   Now go explore more about this beautifully organized language!
   But remember, you might still end up needing to touch some JavaScript at some point ;)
Enter fullscreen mode Exit fullscreen mode

Clojure: Lisp with a Modern Twist

Clojure brings the power of Lisp to the JVM and offers a fresh perspective on functional programming.

; Welcome to Clojure, a functional Lisp dialect that runs on the JVM!
; It's all about immutability and simplicity. So let's dive in!

(defn greet [name] ; Defining a function called 'greet' with one parameter 'name'.
  (str "Hello, " name "!")) ; Concatenating strings using the 'str' function.

(println (greet "Clojurians")) ; Calling our greet function and printing the result.

(map #(* % 2) (range 1 6)) ; Anonymous functions (#()) are cool! Here we're doubling numbers from 1 to 5.

(reduce + [1 2 3]) ; Using higher-order functions like reduce for operations over collections.
Enter fullscreen mode Exit fullscreen mode

And there you have it!
A wild ride through the evolution of popular programming languages filled with jokes and memes.

Now go forth, brave coder; armed with knowledge (and laughs), conquer the iceberg of programming languages one line of code at a time!

And remember, if you need a dose of humor or a quick break from coding, just hop on Twitter and follow me @johnrushx.


Top comments (12)

prsaya profile image
Prasad Saya • Edited

How about PL/I (P-L-One)? I have worked with this one (in addition to Basic, COBOL, Fortran 77) on legacy platforms. In 80's and 90's (pre- Linux era) I have worked with COBOL on various platforms - Prime / PRIMOS, DEC VAX/VMS, Novell LAN, MS DOS, DG AOS/VS, IBM AS 400/OS 400, IBM mainframes, and various flavors of UNIX.

I have also studied Pascal, C, Python, Haskell, Golang, Java and JavaScript. Some of these I had used (and use) at work.

velydev profile image

I'd say C is like a sports car, still the fastest and most efficient. And with new proposals for memory safety (see one of them here), it's bound to become a bulletproof sports car.

volodyslav profile image

oh man you are crazy)

johnrushx profile image
John Rush

my University program was crazy.
each semester at least 10 programming languages.

volodyslav profile image

Fortunately, I'm self-taught and I chose Python and JavaScript. And that's enough for me😆

jaloplo profile image
Jaime López

Pascal brings me lovely memories of the different lab practices I coded in the university 😍

johnrushx profile image
John Rush

yeaaaah. the sorting algo was my first serious task in programming 20 years ago

gabrielfallen profile image
Alexander Chichigin

I've tried them all and can say: what a time waste!

A mandatory Alan Perlis quote:

johnrushx profile image
John Rush

nice one

johnrushx profile image
John Rush

follow me here and on twitter: johnrushx to keep me going, thx

flavius_the_0th profile image

Really fun read!

johnrushx profile image
John Rush

whats your fav?