Side-by-side, interactive cheatsheets for Visual Basic programmers
comparing Visual Basic to other languages. Every example runs live in your browser — no setup, no installation.
Choose your own path by reordering languages
The language that proved programmer happiness and raw power aren't a tradeoff, Ruby's open classes, expressive blocks, and radical object model influenced a generation of languages and frameworks — and still has no peer for writing code that reads like elegant prose.
Fast, opinionated, and built for the cloud era, Go trades Ruby's expressiveness for simplicity and raw speed.
The language of the web, JavaScript is unavoidable, powerful, and capable of running almost anywhere.
this binding: a call-site-determined design that arrow functions exist to work aroundThe closest major language to Ruby, Python shares Ruby's readable syntax and expressive idioms — a smaller leap than most, and dominant in data science and machine learning.
Demanding but deeply rewarding, Rust proves memory safety and bare-metal speed aren't in opposition.
JavaScript with a type system, TypeScript is able to catch whole classes of bugs before they ship, without abandoning dynamism.
The same runtime, the same libraries, the same LINQ — a different way of writing them down. Visual Basic and C# compile to identical CLR bytecode, so nothing you know about List(Of T), Async/Await or the base class library is lost. What changes is the punctuation, a handful of semantics that genuinely differ, and a set of features C# has that Visual Basic never grew.
End If, End Sub and Next, and a semicolon ends each statement instead of the line breaktotal and Total are two names, and nothing corrects you/ between two integers truncates, where Visual Basic reserved \ for that and always made / floating-pointIs swaps meaning: C#'s is is the type test that was TypeOf ... Is, and reference comparison becomes ReferenceEqualsWith blocks, the My namespace and On Error have no counterpart at all — each needs rewriting rather than translatingThe language Rubyists most often encounter in enterprise work, Java makes explicit what Ruby hides — types, access modifiers, checked exceptions, and the full machinery of a statically typed object system.
The shell every Rubyist already uses, Bash rewards understanding — the more you know, the fewer Ruby scripts you'll write for things the shell does natively.
${var:-default}, ${var^^}, ${var//old/new} — a mini-language for string manipulation$(( )) — integer math without spawning a subprocessThe disciplined ancestor of modern programming — structured, strictly typed, and the language that taught a generation how to think algorithmically.
begin...end blocks instead of Ruby's implicit block delimitersvar block before any code runs:= for assignment, = for comparison — the reverse of every other languagediv for integer division; / always returns a real numberFunctional-first on .NET, F# combines immutability by default, expressive pattern matching, and the pipe operator into a language that makes data transformation feel natural.
|> pipe operator makes data pipelines read top-to-bottom — the idiomatic alternative to Ruby's method chaininglet bindings cannot be reassigned without the explicit mutable keywordOption and Result types replace nil and exceptions for expected failure pathsThe Erlang VM with a Ruby-inspired syntax, Elixir makes fault-tolerant, massively concurrent systems approachable — and beautiful.