Microsoft’s addition of the Bash shell and Ubuntu user space in windows 10 is a real win for developers working in dynamic, interpreted programming languages everywhere. Dozens of dynamic script interpreters are now immediately available on Windows desktops.
In this article, we’re going to write the classic “hello world” application in several different dynamically executed languages, install any necessary dependencies, and execute our interpreted code.
If you’d like to follow along this article and try out these examples, you can grab all of the source code from Git:
$ sudo apt update
$ sudo apt install -y git
$ git clone https://github.com/dustinkirkland/howdy-windows.git
$ cd howdy-windows
Now, let’s look at each language:
BashInstallation
None, bash is always installed in the default image, but just in case...
sudo apt install -y bash
Code: bash/howdy.sh
#!/bin/sh
echo " ====> Shell: Howdy, Windows!”
Compilation
None, bash is an interpreted language
Execution
$ chmod +x ./bash/howdy.sh
$ ./bash/howdy.sh
====> Shell: Howdy, Windows!
pythonInstallation
None, python is always installed in the default image, but just in case…
$ sudo apt install -y python
Code: python/howdy.py
#!/usr/bin/python
print(" ====> Python: Howdy, Windows!")
Compilation
None, python is an interpreted language
Execution
$ chmod +x ./python/howdy.py
$ ./python/howdy.py
====> Python: Howdy, Windows!
PerlInstallation
$ sudo apt install -y perl
Code: perl/howdy.pl
#!/usr/bin/perl
print(" ====> Perl: Howdy, Windows!\n");
Compilation
None, Perl is an interpreted language
Execution
$ chmod +x ./perl/howdy.pl
$ ./perl/howdy.pl
====> Perl: Howdy, Windows!
RubyInstallation
$ sudo apt install -y ruby
Code: ruby/howdy.rb
#!/usr/bin/ruby
puts " ====> Ruby: Howdy, Windows!"
Compilation
None, Ruby is an interpreted language
Execution
$ chmod +x ./ruby/howdy.rb
$ ./ruby/howdy.rb
====> Ruby: Howdy, Windows!
phpInstallation
$ sudo apt install -y php5-cli
Code: php/howdy.php
#!/usr/bin/php
<?php
print(" ===> PHP: Howdy, Windows!\n")
?>
Compilation
None, PHP is an interpreted language
Execution
$ chmod +x ./php/howdy.php
$ ./php/howdy.php
===> PHP: Howdy, Windows!
Node.jsInstallation
$ sudo apt install -y nodejs
Code: nodejs/howdy.js
console.log(' ====> NodeJS: Howdy, Windows!');
Compilation
None, Node.js is an interpreted language
Execution
$