и аналогично с миби, киби и т.п. Только оно не прижилось, так что под гигабайтом все нормальные люди понимают два в тридцатой, хотя гигагерц - десять в девятой. Язык до Киева доведет, но тут уж ничего не поделаешь.
Закон о защите прав потребителей не следует понимать формально. Если хотят считать по миллиарду байт, то пусть пишут "млрд байт", а не "гигабайт", которое (несмотря на наличие гиби-номенклатуры) стало устоявшимся определением 2^30 байт.
Мне противно видеть многочисленные сноски и звездочки в рекламе. Была бы моя власть - заставил бы всех писать честно или не писать вовсе. Слишком много инфодерьма в нашем мире, уже пора начать разгребать.
Те, кто (уже) сидят на старом софте имеют, стало быть, машину, да еще и с макосью на ней. Вопрос: что экономически целесообразней - делать новую ось и цепляться за поддержку древнего софта, который нужен 9% юзеров, убивая таким образом радость для разработчиков и остальных >50% пользователей? Или допустить, что 9% пользователей старого софта могут выбирать: либо сидеть на старой проверенной оси и старом проверенном софте, либо мигрировать в новую ось и обновить древний софт? Мне кажется, что эппл правильно делает, что выкидывает мусор. Так она не завоюет 98% юзеров, чего достигла винда. Но сделает более счастливыми тех, кого завоюет. Отсюда возникает ощущение надуманной элитарности, а на самом деле все просто: они не гонятся за мегабабками любой ценой, а имеют свой взгляд на вещи.
И, да, кому-то такой взгляд не нравится - что ж, никто вас не задерживает.
Согласен. Я сам на макбуке, реклама "писи против мака" мне нравится, но это реклама - можно закрыть и забыть. А писюк моего брата с бсодом на иконке будет как-то странно выглядеть. Впрочем, все равно он скоро на мак съедет, так что наплевать...
К Питону у меня никакого особенного отношения нет (кроме одного: yaml - это структура, а не язык, нечего свешивать безногие блоки :-P).
Важно то, что о чем я напишу ниже имеет значение в перспективе трех-пяти и более лет. Для локальной задачи "сделать скрипт/программку/проект" эти детали не важны. С учетом того, что даже "проект" живет не долго, с точки зрения кода, как продукта, эти отличия вообще не важны. Они важны с точки зрения расходов на (само)обучение и фонового гемморроя, который как радиация — если заехали в чернобыль на день, ничего не будет, но если там жить — разницу заметите.
Так вот. Во-первых, там, где у питона есть специальные фичи, в рубине есть их отсутствие, зато лучшее обобщение. Например, это уникодовые строки. Двоякость строк в питоне породила (недавно успешно преодаленную) эпопею по переделыванию Джанго. В Рубине переделывать никого не надо — к строке приделали прокси chars и это решение мне кажется куда более правильным, чем двоякость строк как в Джаве, Питоне или Си++ (там вообще голову отключили). Дело в том, что работать с операционной системой удобно, когда строка - это то бинарный поток, то ASCII-данные. То смесь и того и другого. Потому что многие протоколы именно так и работают. Тот же HTTP с multipart/form-data. Важно лишь в определенные момент точно знать, что там не ASCII, а любой человеческий текст (а не компьютерный протокол). И в этот момент вы залезаете в гидрокостюм str.chars и готовы отпарсить его прямо в гамаке.
В Питоне используется ущербная концепция "все должно быть однообразно и сразу правильно". Если бы акцент был на "сразу правильно", то никто бы ничего не сделал на питоне, ибо правильность проверяется эмпирически. Зато питон сделан как вещь в себе и некоторые поспешные концептуальные решения приводят к грубейшим нарушениям его же правил (вспомнить то же переписывание Джанго на предмет уникод-строк: согласно священному правилу это невозможная ситуация!) Рубин делался совсем по другому принципу: украсть все хорошее, что уже придумано. Пусть, с overlapping-ом, пусть с некоторыми inconsistency. В перле есть отличные фичи - синтаксис регэкспов и короткие переменные для админских скриптов - заюзаем их, когда надо. В смолтоке можно вызывать несуществующие методы - берем. Все объект, и даже классы - окей. Goto бывает полезен, но опасен? Сделаем callcc, binging. Два вида исключений: raise и throw. Потому что есть два идеологических подхода, поэтому предоставим людям самим выбрать, что им больше подойдет (все юзают raise, но вот в мербе оказалось полезным заиметь throw).
И еще один очень тонкий момент: в Питоне скорость устраивает даже Яндекс (они если че, на Си++ перепишут). А рубин в текущей и ближайших реализациях бобука не устраивает совсем. Однако, народ так борется за скорость, что делает рубиниус по образу и подобию Smalltalk-80/Self-93, а они всего в 2-5 раз медленнее Си++. Чувствуете куда оно едет?
Ну и совсем высокоуровневое измышление: концепция "однообразно и правильно сразу" ущербна с точки зрения естественного отбора. В конкурентной борьбе выживают более приспособленные, т.е. более гибкие и быстро адаптирующиеся существа. Питон, предлагая идти некоей единой дорогой, статистически убивает себя. Да, некоторые решения могут быть гениальными, но в среднем, шансы выжить без диверсификации уменьшаются до нуля. Например, два механизма исключений в Руби не могли бы его разорвать на части, но один и неправильный сыграл бы плохую роль. С другой стороны, два вида строк в Питоне сильно портят нервы, но если бы это был один, но гибкий и простой тип, то он шансы были бы лучше.
Ну и замечу, что Питон совершенствуют _интенсивно_ (качественно), создавая угрозу существующему коду, существующим практикам, а рубин совершенствуют _экстенсивно_ (количественно): когда какой-нибудь рубиниус отдебажат и портируют на него все corе- и нужные мне библиотеки, я смогу просто поменять компилятор в PATH без угрозы моему мировоззрению, опыту и привычкам.
Глобально, это не хорошо и не плохо, что один язык помрет раньше, другой - позже. Это естественный процесс, которым нельзя управлять, его можно лишь осознавать. И, возможно, раннее мигрирование сэкономит нервные клетки, т.к. с возрастом мы становимся менее обучаемыми...
Объективное "усредненное" значение лады имеет смысл для тех, кто ладу продает.
Когда я кричу "переезжайте на макось!" я знаю, что я ее продаю. И не кричу так, когда продать не могу или не хочу. Своему папе я "продал" iMac — сделал ему приятное на день рождения. А тут-то кого к чему призывать?..
Виндоус ИксПи - объективно лучшая ОС в мире по совокупности параметров, усредненных по мнению всех юзеров. На ней работает 90% мировых программ и юзеры без проблем зашаривают между собой инфу (у меня дома Lexmark Z22 не виден в маке потому что таких дров под мак нету нигде, в винде - виден). Не усредняйте, да не усреднимы будете :-)
Судя по последним событиям, питоны, джавы, перлы и пхп переживают начало конца. Из известных мне языков, только рубин находится "еще там", в недостигнутом горизонте, а другие языки либо померли, либо уже "здесь, с нами" и начинают отходить.
Каков критерий этого суждения?
Еще нигде я не видел, чтобы единственной общепризнанной проблемой языка была его скорость. Она не такая ужасная, чтобы им нельзя было пользоваться и накапливать опыт — опыт уже накоплен довольно большой, но пока что заявлений "чтобы я поменял в руби, если бы начал с нуля", кроме как от автора языка (да и то, о том, что почти никого не волнует) не звучало.
Еще раз: единственное, на чем сфокусировано все сообщество - рубиниус, руби 2.0, jruby. Все остальное внимание размазано по всяким интеграциям с системами и библиотеками и там проблема не в дизайне языка, а в том, что просто надо писать код.
Перл6 — это уже труп, Джава уже сильно пообтаскалась и собирается омолаживаться за счет других языков на своей виртуальной машине (Скала, JRuby, что-то еще), скоростью Питона многие довольны, но хотят прикрутить такие фичи, что уже боязно за питон. ECMAScript сдувает. В браузерах под напором Адоби будет почти Джава в том момент, когда сама Джава устареет. Си++ стоит на месте: много поводов съехать на джаву, си#, Дэ, но много чего держит всех на месте. Прогресса тут пока нет, есть устойчивое равновесие. Ио, смолток, селф, лисп/ским, эрланг имеют свои прелести, но и очень существенные недостатки по части "экологичности" (об этом нужно отдельно длинно писать). Потому они и не стали суперпопулярными и вряд ли станут. Зато идеи из Self-93/Smalltalk-80 мигрируют в более экологичные языки. Сейчас они идут лишь в рубин.
А вот тут вот я бы поспорил. Для меня лучшая система для всех моих задач — макось. Для одного моего знакомого лучшая система по совокупности параметров — линукс дебьян. И ему, и мне насрать, что думает о нашем выборе остальное человечество, и на каком месте в абсолютном рейтинге стоят наши оси, музыка, кино, подружки, друзья, марки коньяка или презервативов. И нравятся ли вообще кому-нибудь еще. Каждый дрочит по-своему. (Сколько людей, кроме меня, пишут rich-text документы в программе Wolfram Mathematica? А по-моему, лучше программы еще никто не придумал.)
И возраст важен не мак/писи-мира, а тебя самого. Сколько лет прожито, сколько осталось, и сколько еще бессмысленных комментов можно понаписать на хабре? (Это я уже рефлексирую.)
PS. Оценки хорошо/плохо — это бич косьюмерского общества. Который ведет его в могилу.
Пошто человка минусуют? Он прав, новая Макось — это апгрейд, а не "совсем новая ось" и это очень хорошо. Вон висту сделали — юзеры плюются на кучу проблем. Опера 9.5 имеет переписанный с нуля рендеринг — глюки ужасные.
А когда я поставлю Леопард, увижу, что там все то же самое, что и в тайгере, но немного лучше. Увижу ту же самую 10.х, но на 0.1 больше. (Для меня это — spaces, новый finder, stacks, dtrace, textedit.)
Когда текущая концепция оси себя изживет, ребятам из Эппла нужно будет подумать о концепции 11.х, а это совсем другая история.
PS. А что там с виндоусом — тяжело сказать. Они тащат за собой кучу барахла, иногда добавляя существенно важные фичи. Но старое барахло слишком сильно воняет. Десятая макось дала миру NEXTStep в облике Cocoa, сохранив старый API для приложений из 9-ки. Но народ стал бодро писать проги под кокоа, и старый API быстро ушел за кулисы. Потом эппл пересела на интеловские камни и дала две вещи: галочку "universal binary" и виртуальную машину Rosetta. Розеттой уже почти никто не пользуется, а галочкой - довольно часто. Но она в миллион раз меньше воняет, чем win32api. Линукс плавно съезжает с 2.4 на 2.6. Все системы эволюционируют плавно, но каждый по-разному: кто-то больше ошибок прошлого тянет за собой, кто-то меньше.
гиби - 2^30
гига - 10^9
и аналогично с миби, киби и т.п. Только оно не прижилось, так что под гигабайтом все нормальные люди понимают два в тридцатой, хотя гигагерц - десять в девятой. Язык до Киева доведет, но тут уж ничего не поделаешь.
sylvio: согласен.
Мне противно видеть многочисленные сноски и звездочки в рекламе. Была бы моя власть - заставил бы всех писать честно или не писать вовсе. Слишком много инфодерьма в нашем мире, уже пора начать разгребать.
"После вставки, например, в PowerPoint, сохраняется возможность редактирования элементов, в том числе размера шрифта."
Если это одна из главных фич, то они так и не поняли о чем ведут речь сигналы http://gettingreal.37signals.com/
И, да, кому-то такой взгляд не нравится - что ж, никто вас не задерживает.
Важно то, что о чем я напишу ниже имеет значение в перспективе трех-пяти и более лет. Для локальной задачи "сделать скрипт/программку/проект" эти детали не важны. С учетом того, что даже "проект" живет не долго, с точки зрения кода, как продукта, эти отличия вообще не важны. Они важны с точки зрения расходов на (само)обучение и фонового гемморроя, который как радиация — если заехали в чернобыль на день, ничего не будет, но если там жить — разницу заметите.
Так вот. Во-первых, там, где у питона есть специальные фичи, в рубине есть их отсутствие, зато лучшее обобщение. Например, это уникодовые строки. Двоякость строк в питоне породила (недавно успешно преодаленную) эпопею по переделыванию Джанго. В Рубине переделывать никого не надо — к строке приделали прокси chars и это решение мне кажется куда более правильным, чем двоякость строк как в Джаве, Питоне или Си++ (там вообще голову отключили). Дело в том, что работать с операционной системой удобно, когда строка - это то бинарный поток, то ASCII-данные. То смесь и того и другого. Потому что многие протоколы именно так и работают. Тот же HTTP с multipart/form-data. Важно лишь в определенные момент точно знать, что там не ASCII, а любой человеческий текст (а не компьютерный протокол). И в этот момент вы залезаете в гидрокостюм str.chars и готовы отпарсить его прямо в гамаке.
В Питоне используется ущербная концепция "все должно быть однообразно и сразу правильно". Если бы акцент был на "сразу правильно", то никто бы ничего не сделал на питоне, ибо правильность проверяется эмпирически. Зато питон сделан как вещь в себе и некоторые поспешные концептуальные решения приводят к грубейшим нарушениям его же правил (вспомнить то же переписывание Джанго на предмет уникод-строк: согласно священному правилу это невозможная ситуация!) Рубин делался совсем по другому принципу: украсть все хорошее, что уже придумано. Пусть, с overlapping-ом, пусть с некоторыми inconsistency. В перле есть отличные фичи - синтаксис регэкспов и короткие переменные для админских скриптов - заюзаем их, когда надо. В смолтоке можно вызывать несуществующие методы - берем. Все объект, и даже классы - окей. Goto бывает полезен, но опасен? Сделаем callcc, binging. Два вида исключений: raise и throw. Потому что есть два идеологических подхода, поэтому предоставим людям самим выбрать, что им больше подойдет (все юзают raise, но вот в мербе оказалось полезным заиметь throw).
И еще один очень тонкий момент: в Питоне скорость устраивает даже Яндекс (они если че, на Си++ перепишут). А рубин в текущей и ближайших реализациях бобука не устраивает совсем. Однако, народ так борется за скорость, что делает рубиниус по образу и подобию Smalltalk-80/Self-93, а они всего в 2-5 раз медленнее Си++. Чувствуете куда оно едет?
Ну и совсем высокоуровневое измышление: концепция "однообразно и правильно сразу" ущербна с точки зрения естественного отбора. В конкурентной борьбе выживают более приспособленные, т.е. более гибкие и быстро адаптирующиеся существа. Питон, предлагая идти некоей единой дорогой, статистически убивает себя. Да, некоторые решения могут быть гениальными, но в среднем, шансы выжить без диверсификации уменьшаются до нуля. Например, два механизма исключений в Руби не могли бы его разорвать на части, но один и неправильный сыграл бы плохую роль. С другой стороны, два вида строк в Питоне сильно портят нервы, но если бы это был один, но гибкий и простой тип, то он шансы были бы лучше.
Ну и замечу, что Питон совершенствуют _интенсивно_ (качественно), создавая угрозу существующему коду, существующим практикам, а рубин совершенствуют _экстенсивно_ (количественно): когда какой-нибудь рубиниус отдебажат и портируют на него все corе- и нужные мне библиотеки, я смогу просто поменять компилятор в PATH без угрозы моему мировоззрению, опыту и привычкам.
Глобально, это не хорошо и не плохо, что один язык помрет раньше, другой - позже. Это естественный процесс, которым нельзя управлять, его можно лишь осознавать. И, возможно, раннее мигрирование сэкономит нервные клетки, т.к. с возрастом мы становимся менее обучаемыми...
Когда я кричу "переезжайте на макось!" я знаю, что я ее продаю. И не кричу так, когда продать не могу или не хочу. Своему папе я "продал" iMac — сделал ему приятное на день рождения. А тут-то кого к чему призывать?..
Виндоус ИксПи - объективно лучшая ОС в мире по совокупности параметров, усредненных по мнению всех юзеров. На ней работает 90% мировых программ и юзеры без проблем зашаривают между собой инфу (у меня дома Lexmark Z22 не виден в маке потому что таких дров под мак нету нигде, в винде - виден). Не усредняйте, да не усреднимы будете :-)
Каков критерий этого суждения?
Еще нигде я не видел, чтобы единственной общепризнанной проблемой языка была его скорость. Она не такая ужасная, чтобы им нельзя было пользоваться и накапливать опыт — опыт уже накоплен довольно большой, но пока что заявлений "чтобы я поменял в руби, если бы начал с нуля", кроме как от автора языка (да и то, о том, что почти никого не волнует) не звучало.
Еще раз: единственное, на чем сфокусировано все сообщество - рубиниус, руби 2.0, jruby. Все остальное внимание размазано по всяким интеграциям с системами и библиотеками и там проблема не в дизайне языка, а в том, что просто надо писать код.
Перл6 — это уже труп, Джава уже сильно пообтаскалась и собирается омолаживаться за счет других языков на своей виртуальной машине (Скала, JRuby, что-то еще), скоростью Питона многие довольны, но хотят прикрутить такие фичи, что уже боязно за питон. ECMAScript сдувает. В браузерах под напором Адоби будет почти Джава в том момент, когда сама Джава устареет. Си++ стоит на месте: много поводов съехать на джаву, си#, Дэ, но много чего держит всех на месте. Прогресса тут пока нет, есть устойчивое равновесие. Ио, смолток, селф, лисп/ским, эрланг имеют свои прелести, но и очень существенные недостатки по части "экологичности" (об этом нужно отдельно длинно писать). Потому они и не стали суперпопулярными и вряд ли станут. Зато идеи из Self-93/Smalltalk-80 мигрируют в более экологичные языки. Сейчас они идут лишь в рубин.
И возраст важен не мак/писи-мира, а тебя самого. Сколько лет прожито, сколько осталось, и сколько еще бессмысленных комментов можно понаписать на хабре? (Это я уже рефлексирую.)
PS. Оценки хорошо/плохо — это бич косьюмерского общества. Который ведет его в могилу.
А когда я поставлю Леопард, увижу, что там все то же самое, что и в тайгере, но немного лучше. Увижу ту же самую 10.х, но на 0.1 больше. (Для меня это — spaces, новый finder, stacks, dtrace, textedit.)
Когда текущая концепция оси себя изживет, ребятам из Эппла нужно будет подумать о концепции 11.х, а это совсем другая история.
PS. А что там с виндоусом — тяжело сказать. Они тащат за собой кучу барахла, иногда добавляя существенно важные фичи. Но старое барахло слишком сильно воняет. Десятая макось дала миру NEXTStep в облике Cocoa, сохранив старый API для приложений из 9-ки. Но народ стал бодро писать проги под кокоа, и старый API быстро ушел за кулисы. Потом эппл пересела на интеловские камни и дала две вещи: галочку "universal binary" и виртуальную машину Rosetta. Розеттой уже почти никто не пользуется, а галочкой - довольно часто. Но она в миллион раз меньше воняет, чем win32api. Линукс плавно съезжает с 2.4 на 2.6. Все системы эволюционируют плавно, но каждый по-разному: кто-то больше ошибок прошлого тянет за собой, кто-то меньше.
Кому мышку? (Я в питере, oleganza at gmail)