Цитата:
Изначально опубликовано George Nordic
Хм...
Мне кажется, Х++ - скорее скриптоподобный

, чем с-подобный язык...
Кстати, а в чём отличие скриптовых языков от интерпретируемых?
Насколько я знаю за скриптовые языки считаются интерпретируемые языки в которых отсутствует типизация переменных - т.е. типы переменных деляться на две ветки - VARIANT и агрегатные. С этой точки зрения X++ типичный интерпретируемый язык в котором проверка синтаксиса программы почему то названа громким словом "компиляция".

Под си-подобными языкоми я имею ввиду языки унаследовавшие синтаксис C/C++, а в этом X++ ничуть не хуже своих соплеменников типа явы или перла.
Цитата:
В основе которого положена теория рефакторинга,
Рефакторинг в основу языка не заложен, он заложен в код который на языке программируют. Причём X++ это или C++ значения не имеет.
Цитата:
в которой как раз рекомендуется использовать switch/case для читабельности кода.
Вот я (и не только я) как раз и не считаю что в сиподобных языках switch чем то лучше if / else в плане читабельности кода - пример приведен постом выше. Главное отступы и пробелы в нужных местах. Если кому то ломы писать на пару символов больше в условиях else if ( a == SomeConst ) когда можно просто написать case SomeConst: пусть вспомнит что за это есть плата - в каждом case приходится писать на одну инструкцию больше (имею ввиду break).
Поэтому еще раз повторяю - в сиподобных языках у конструкции switch нет никаких преимуществ перед конструкцией if / else, ни по читабельности ни даже по кол-ву символов которые нужно писать в коде для реализации того или иного решения.
Посмотрите еще раз на извращение с switch ( true ) -

- прикольное конечно же решение не спорю, но вводить ф-ю (пусть даже глобальную) ради того чтобы написать
PHP код:
switch ( true )
{
...
case in(a, 5, 10):
...
break
вместо
PHP код:
else if ( 5 <= a && a <= 10 )
{ ... }
- ОНО ТОГО НЕ СТОИТ

Минус switch-а состоит в ограниченности применения - хотя с помощью switch ( true ) можно добится любого поведения, но ценность switch-а для читаемости кода и состоит именно в том что он сообщает программисту что далее идут проверки на строгое равенство выражения в switch() с константами.
P.S.
И еще одно - согласно принципам рефакторинга (немногое что я успел вычитать в ссылке, которую давал mazzy) конструкции switch( ... ) в коде надо устранять заменяя полиморфизмом в ООП.