Imba یک زبان برنامهنویسی برای پروژههای تحت وب است که در نهایت به کدهای خوانای JS کامپایل میشود که با سینتکسی با الهام از زبان Ruby به صورت اپنسورس عرضه شده است.
گفته میشود که Imba بهترین قابلیتهای زبان روبی و همچنین لایبرری ریئکت را گرفته و یک زبان به مراتب بهتر و سریعتر ابداع کرده است و پیش از این هم گفتیم که کدهای نوشته شده با این زبان به جاوااسکرپیت کامپایل میشوند به طوری که کلیهٔ کامنتها، فاصلهگذاریها، استایل کدنویسی و … پس از فرایند کامپایل حفظ خواهند شد. علاوه بر این، امکان استفاده از لایبرریهای جاوااسکرپیت در این زبان و بالعکس نیز وجود دارد. در ادامه، نمونه سورسکدی که در ایمبا نوشته شده را مشاهده خواهید کرد:
let dpr = window:devicePixelRatio or 1
tag sketchpad < canvas
# receive the touch / click
# create two paths for each touch
def ontouchstart t
t.capture
t.data = [Path2D.new, Path2D.new]
# triggered when a touch moves
# loop through the paths and draw them
def ontouchupdate t
t.data.forEach do |path,i|
let x = t.tx + i + i * Math.random * 3
let y = t.ty + i + i * Math.random * 3
path.lineTo(x * dpr,y * dpr)
context('2d').stroke(path)
def render
ویرایشگر کدی هم که برای استفاده از این زبان توصیه میشود، Sublime Text است چرا که در حال حاضر پلاگینی برای ساپورت زبان ایمبا در ویرایشگر سابلایم در گیتهاب عرضه شده است.