Кстати, я вот заказывал по C#, меня обломили, теперь заказал Страуструпа, написано, что заказ передан в Болеро, а от них уже пару дней ни ответа, ни привета. Хотя знакомый вчера заказал по Джаве книжку, сегодня ему уже пришел сертификат...
Да, подписать Майкрософт на это дело было бы неплохо. Хотя соглашусь с предыдущими комментаторами: C# и .Net не являются коммерческими продуктами. Да и если верить Джоэлю Спольски, VisualStudio тоже вынужденно коммерческий продукт - дабы не убивать конкуренцию среди систем разработки ПО, чтобы программисты всегда имели выбор.
Я знаком с руби, хотя и не имел опыта работы. Каких-то существенных преимуществ в его объектной модели по сравнению с таковой в PHP5 не заметил. Ну да, там всё - объекты, и что с того? Главное - грамотная структуризация приложения, а PHP это позволяет делать.
Ну, высоконагруженные проекты - разговор отдельный совершенно :)
По поводу UTF8. Вы, видимо, имеете ввиду внутреннюю работу с юникодом? Будет в 6-й версии. Хотя обычно без этого спокойно можно обойтись, pcre понимает UTF8, ну и есть iconv и mbstring, и я не вижу ничего плохого в том, что это модули. Хотя, естественно, было бы удобнее работать с юникодом, не задумываясь :)
1. PHP давным давно работает без проблем с UTF8.
2. В PHP5 совершенно нормальная объектная модель, ничем не хуже других языков. Вы вообще знакомы с PHP5?
3. Какой смысл собирать PHP с тремя модулями??? Причем тут понты? Сессии, GD, iconv и прочие вещи просто жизненно необходимы при серьезной работе.
Ну я не конкретно этот пример имел в виду (естественно, что в тернарном операторе ничего непонятного нет), а вообще стремление "выжать все из языка". Часто это совершенно неоправданно.
Лингвист крут, когда знает общие особенности групп языков, а не все слова и выражения конкретного языка. Так же и в программировании: крут не тот, кто знает все фичи языка, а тот, кто умеет делать качественный продукт, независимо от языка. Качественный не только для пользователей (то есть отсутствие ошибок, удобство в работе), но и внутренне - а это в первую очередь удобочитаемость кода.
Вам повезло. Хотя... Я вот тоже никогда не жалуюсь, когда вижу что-то не понятное сходу, да, я затрачу время, но пойму, конечно, но неприятный осадок от "оптимизаторства", часто на ровном месте, все равно остается.
Что такое "красивый код"? У каждого свои представления о красоте. Для написавшего он будет красив, а для читающего - полная лабуда, в которую надо вникнуть, потратив на это энное количество минут или даже часов. Поэтому, если код пишется просто для себя, то можно, конечно, любоваться и говорить "Ай да я, ай да сукин сын", а когда идет работа в команде, и твой код будет кто-то потом ковырять и дорабатывать, то залог успеха - писать по всем понятным стандартам и не вы..ваться :))
По-моему, код в первую очередь должен быть понятным, в том числе самому через пару лет. "Изящность" взамен понятности допустима, скажем, в высоконагруженных системах, или в каких-нибудь демках типа 4Kintro на ассемблере (интересно, щас их кто-нибудь пишет еще?). Да и то, если это дает реальный прирост производительности.
А чтобы получить еще более шокирующую пользователей Хабра статистику, нужно провести опрос "Знаете ли вы, что такое Веб 2.0?" ;)
По поводу UTF8. Вы, видимо, имеете ввиду внутреннюю работу с юникодом? Будет в 6-й версии. Хотя обычно без этого спокойно можно обойтись, pcre понимает UTF8, ну и есть iconv и mbstring, и я не вижу ничего плохого в том, что это модули. Хотя, естественно, было бы удобнее работать с юникодом, не задумываясь :)
2. В PHP5 совершенно нормальная объектная модель, ничем не хуже других языков. Вы вообще знакомы с PHP5?
3. Какой смысл собирать PHP с тремя модулями??? Причем тут понты? Сессии, GD, iconv и прочие вещи просто жизненно необходимы при серьезной работе.
Есть оператор if, им и надо пользоваться в данном случае.