Common lines of code in different languages for quick reference and comparison: Java, JavaScript, Objective-C, Python, Ruby, Scala, Swift.
This document shows common code constructions in some popular languages. You can use it as a quick reference or to see languages side by side, to compare their differences and similarities.
If you see something that could be improved, added or fixed please let me know. I will gladly consider your suggestions.
This document was edited using the wonderful Classeur.
Instructions to install language interpreter and write a minimal runnable program.
To edit files you may use editors like Atom or Sublime Text.
Java
- Install Java JDK (latest version: 8).
- Create HelloWorld.javafile with the content shown below.
- From the command line, compile the file with javac HelloWorld.java(a file calledHelloWorld.classwill be created.
- Execute the compiled file with java HelloWorld.
In a Java program you need at least to declare a class and a function called main (which is the program entry point). Any statement must go inside a function. And any function must go inside a class.
public class HelloWorld {
  public static void main(String... args) {
    System.out.println("Hello world!");
  }
  
  // More functions here
}JavaScript
You may execute JavaScript from the console of your browser. Find out how to open the console in your favourite browser. In Chrome it's Alt+Cmd+J.
You can include JavaScript files from an HTML file. When the HTML is loaded by the browser, the JavaScript files will be executed.
You can also execute scripts from the command line. To do that:
- Install node.js.
- Create hello_world.jsfile with the content below.
- Execute the script with node hello_world.js.
"use strict"  // start your scripts with this to avoid bad practices
console.log("Hello world!");  // semicolon is not mandatory but recommendedKotlin
Kotlin can be used standalone or (most probably) integrated in a Java project in Eclipse or IntelliJ IDEA. You can also try it here online.
Objective-C
Read about how to use Xcode to create iOS apps. Consider also using Swift instead of Objective-C, since it's a clearer and more modern language, and also easier to use from the command line.
Python
- Download and install Python (version 2 is recommended).
- Create a file hello_world.pywith content below.
- Execute the script with python hello_world.py.
print "Hello world!"Ruby
- Download and install Ruby.
- Create a file hello_world.rbwith content below.
- Execute the script with ruby hello_world.rb.
puts "Hello world!"Scala
- Download and install Scala.
- Create a file HelloWorld.scalawith content below.
- Execute the script with scala HelloWorld.scala.
println("Hello world!")Swift
Read about how to use Xcode to create iOS apps. If you installed Xcode, you may also run Swift code from the command line:
- Create a file HelloWorld.swiftwith content below.
- Execute the script with swift HelloWorld.swift.
// You usually need to import Foundation.
// Or import UIKit if you want to use UI classes.
import Foundation
print("Hello world!")Basic variable declaration and initialization using some common types (numbers, strings, booleans). Here you can also see name conventions (camelCase, snake_case) and line comments.
Some languages are statically typed:; every variable has a permanent type, specified when it's declared. In some languages like Kotlin, Scala or Swift you don't need to specify the type; it is inferred from the value you assign to it in the initialization.
Java
int age = 18;
final String name = "John Smith"; // Constant (final)
double height = 1.75;
boolean hasChildren = false;JavaScript
var age = 18;
var name = "John Smith";  // Also with ''
var height = 1.75;
var hasChildren = false;Kotlin
var age = 18
val name = "John Smith"     // Constant (val)
var height : Double = 1.75  // Explicit type is optional
var hasChildren = falseObjective-C
int age = 18;
NSString* name = @"John Smith";
double height = 1.75;
BOOL hasChildren = NO; // also `false`Python
age = 18
name = "John Smith"    # Also with ''
height = 1.75
has_children = FalseRuby
age = 18
name = 'John Smith'  # With "" you can interpolate
height = 1.75
has_children = falseScala
var age = 18
val name = "John Smith"     // Constant (val)
var height : Double = 1.75  // Explicit type is optional
var hasChildren = falseSwift
var age = 18
let name = "John Smith"     // Constant (let)
var height : Double = 1.75  // Explicit type is optional
var hasChildren = falseBasic usage of functions and properties. I added this section as an introduction for the following ones.
Java
User user = database.find(email, pwd);
System.out.println("Hello " + user.getName());JavaScript
var user = database.find(email, pwd);
console.log("Hello " + user.name);Kotlin
var user = database.find(email, pwd)
println("Hello " + user.name)Objective-C
User* user = [database find:email pass:pwd]; // Call syntax is quite Weird
NSLog(@"Hello %@", user.name);  // Sometimes you use this C-style syntaxPython
user = database.find(email, pwd)
print "Hello " + user.nameRuby
user = database.find(email, pwd)
puts "Hello #{user.name}"Scala
val user = database.find(email, pwd)
println("Hello " + user.name)Swift
// From 2nd parameter you write `parameter:argument`
let user = database.find(email, pass:pwd)
print("Hello \(user.name)")Common operations using strings.
Java
int length = name.length();             // Length
String text = name + " is " + age;      // Concatenate
boolean b = name.contains("Smith");     // Find
b = name.indexOf("Smith") >= 0;         // Index
String first = name.substring(0, 4);    // Substring
char c = name.charAt(4);                // Char at
String[] parts = text.split(" ");       // SplitJavaScript
var length = name.length();          // Length
var text = name + " is " + age;      // Concatenate
var b = name.indexOf("Smith") >= 0;  // Find/Index
var first = name.substring(0, 4);    // Substring
var c = name[4];                     // Char at
var parts = text.split(" ");         // SplitKotlin
val length = name.length                 // Length
var text = "$name is $age"               // Interpolate
text += ", height: " + height            // Concatenate
var found = name.contains("Smith")       // Find
found = name.indexOf(" ") >= 0           // Index
val firstName = name.substring(0, 4)     // Substring
val c = name(4)                          // Char at
val parts = text.split("\\s".toRegex())  // Split (explicit regex)
text = parts.joinToString(" ")           // JoinObjective-C
int lenght = [name length];                                     // Length
NSString* text = [NSString stringWithFormat:
  @"%@ is %@", name, @(age)];                                   // Interpolate
text = [text stringByAppendingString:@" years old"];            // Concatenate
BOOL b = [name rangeOfString:@"Smith"].location != NSNotFound;  // Find/Index
NSString* first = [name substringToIndex:4];                    // Substring
NSString* last = [name substringWithRange:NSMakeRange(5, 10)];  // Substring
NSArray<NSString*>* parts = [text componentsSeparatedByString:@" "]; // SplitPython
length = len(name)                # length
text = name + " is " + str(age)   # Concatenate
found = "Smith" in name           # Find
found = name.find(" ") >= 0       # Index
first_name = name[0:4]            # Substring (also `name[:4]`)
last_name = name[-5:]             # Substring
c = name[4]                       # Char at
parts = text.split(" ")           # SplitRuby
length = name.length                # length
text = "#{name} is #{age}"          # Interpolate
text += ", height: " + height.to_s  # Concatenate
found = name.include? "Smith"       # Find
index = name.index(" ")             # Index (truthy if found)
first_name = name[0...4]            # Substring
last_name = name[-5..-1]            # Substring
c = name[4]                         # Char at
parts = text.split(" ")             # Split
text = parts.join(" ")              # JoinScala
val length = name.length               // Length
var text = s"$name is $age"            // Interpolate
text += ", height: " + height          // Concatenate
var found = name.contains("Smith")     // Find
found = name.indexOf(" ") >= 0         // Index
val firstName = name.substring(0, 4)   // Substring
val c = name(4)                        // Char at
val parts = text.split(" ")            // Split
text = parts.mkString(" ")             // JoinSwift
let length = name.characters.count                    // Length
var text = "\(name) is \(age)"                        // Interpolate
text = String(format: "%@ is %@", name, String(age))  // Interpolate
text += ", height: " + String(height)                 // Concatenate
let range = string.rangeOfString("Smith")             // Index
let found = range != nil                              // Find
// About substrings
//   http://stackoverflow.com/questions/24029163
//   http://stackoverflow.com/a/24046551/1121497
let parts = text.componentsSeparatedByString(" ")     // SplitHow to declare and call functions.
Java
We use the static modifier here (it's for class functions). See Classes and objects for more info.
public class Example {
  static double triangleArea(double base, double height) {
    return base * height / 2;
  }
  static void sayHello() {
    System.out.println("Hello!");
  }
  public static void main(String[] args) {
    double area = triangleArea(10, 15);
    sayHello();
  }
}JavaScript
function triangleArea(base, height) {
  return base * height / 2;
}
function sayHello() {
  console.log("Hello!");
}
var area = triangleArea(10, 15);
sayHello();Kotlin
fun triangleArea(base: Double, height: Double): Double {
  return base * height / 2
}
fun sayHello(): Unit {
  println("Hello!")
}
fun main(args: Array<String>) {       
  val area = triangleArea(10.0, 15.0)
  sayHello()
}Shorter way to define functions:
// For one-liners, return type is inferred
fun triangleArea(base: Double, height: Double) = base * height / 2
// If return type is Unit you can omit it
fun sayHello() {
  println("Hello!")
}Objective-C
In Objective-C you call functions using the texts to the left of the colons (i.e. triangleAreaWithBase and height), and inside the function you refer to the arguments using the names to the right of the colons (i.e. b an h).
+ (double) triangleAreaWithBase:(double)b height:(double)h {
  return b * h / 2;
}
+ (void) sayHello {
  NSLog(@"Hello!");
}
// Put this code inside some function
double area = [self triangleAreaWithBase:10 height:15];
[self sayHello];Python
Blocks of code in python are recognised by indentation. There's no end keyword or { } symbols to delimit them.
def triangleArea(base, height):
  return base * height / 2
def sayHello():
  print "Hello!"
area = triangleArea(10, 15)
sayHello()Ruby
In Ruby parenthesis for functions are optional. Even for declaring or calling functions with multiple parameters.
def triangleArea(base, height)
  return base * height / 2
end
def sayHello
  puts 'Hello!'
end
area = triangleArea(10, 15)
sayHelloScala
def triangleArea(base: Double, height: Double): Double = {
  return base * height / 2
}
def sayHello(): Unit = {
  println("Hello!")
}
val area = triangleArea(10, 15)
sayHello()Shorter way to define functions:
// For one-liners, return type is inferred
def triangleArea(base: Double, height: Double) = base * height / 2
// If return type is Unit you can omit it
def sayHello() {
  println("Hello!")
}Swift
func triangleArea(base: Double, height: Double) -> Double {
  return base * height / 2
}
func sayHello() {
  print("Hello!")
}
let area = triangleArea(10, height:15)
sayHello()When calling a function in Swift, you need to specify the name of all parameters except for the first one. This is the default, but it's configurable:
// Here we declare external parameter names
func triangleAreaExplicit(b base: Double, h height: Double) -> Double {
  return base * height / 2
}
// Here the call will be similar to other languages
func triangleAreaImplicit(base: Double, _ height: Double) -> Double {
  return base * height / 2
}
let area2 = triangleAreaExplicit(b: 10, h:15)
let area3 = triangleAreaImplicit(10, 15)TODO
To do:
- conditions and flow control (if/else, while, for)
- Classes and objects
- Arrays/lists
- Maps/dictionaries
- Dates
- Pass functions as arguments
- primitives/classes and wrapping
Java
JavaScript
Objective-C
Python
Ruby
Scala
Swift
crack!! 👍