Смотря что имеется в виду под "программированием под Ubuntu".
VB практически отпадает в любом случае, Delphi - Lazarus, можно и на PHP писать, в том числе GUI приложения, хотя, имхо, и извращение это при всём уважении к PHP. Можно и на С++ с GTK+ или Qt (фреймворки, последний точно с визуальным редактором "форм", а первый "родной" для Ubuntu, второй - для Kubuntu, хотя и в нём можно создавать gtk-look приложения).
"Аналог" VB в линуксах, пожалуй, Python (язык) c PyGTK или PyQt ("обертки" к соответствующим фреймворкам), лично я его c PyQt выбрал пока для десктопных приложений, в будущем, возможно, для веб-серверовов на Python перейду с PHP (c Django вместо symfony), из плюсов:
- язык достаточно простой для освоения, и в тоже время достаточно мощный для разработки приложений любой (наверное) сложности с использованием ООП, ФП и прочих современных и не очень парадигм и методик
- полно различных исходников (многие приложения, апплеты, плагины и т. п. в Ubuntu написаны именно на python, даже искать и качать ничего не надо, прямо в ОС полно "исходников", то есть рабочих скриптов, и сам транслятор в составе ОС идёт)
- несколько IDE на разный вкус (NetBeans и Eclipse, имхо, лучше всего, особенно если и с PHP сразу прощаться не планируется, и на С++ хочется/придётся писать)
- код компактнее и читабельнее, чем на С/С++ (читай - быстрее приложения разрабатывать и проще поддерживать)
- возможность писать кроссплатформенные приложения без дополнительных усилий, если не привязываться к особенностям конкретных ОС и/или анализировать среду выполнения (ради интереса проверял с PyQt на простеньких программах, работающих с MySQL - запускались и работали и под виндой, и под Ubuntu без единой строчки для совместимости)
- довольно много литературы на русском языке, развитое комьюнити
Минуса пока два знаю:
- язык интерпретируемый (точнее компилируется в байт-код, который интерпретируется) и поэтому, естественно, медленнее С++
- в настоящий момент идёт переход с ветки 2.х на 3.х, которые не совсем друг с другом совместимы в обе стороны и сторонних библиотек/фреймворков для 3.x ещё достаточно мало (в частности проблемы с gtk), так что для разработки серьёзных приложений есть диллема - выбирать "отточенный" 2.6 (или 2.5), но имея в виду возможную миграцию на 3.х или сразу начинать писать на 3.х, но частенько "изобретая велосипед"
Как варианты еще можно рассмотреть Ruby и Java, тоже кроссплатформенные и т. п., но про них ничего не скажу, опыта кроме нескольких консольных приложений и пары веб-страничек (без фреймворков) нет, руби во многом похож на питон по концепции, джава на с++ (в том числе и, имхо, излишней "многословностью")