Перефразирую. Код на Яве читать проще, ООП роднее и понятнее. На Эрланге надо думать по-другому. За 2 недели можно выучить синтаксис, но не вывихнуть себе мозг.
Про должную сноровку разработчиков. Я бы как раз не стал выбирать эрланг именно по этой причине. Питон и Ява более понятны пхп-разработчикам и специалистов на них гораздо больше. Проект на Эрланге может встать на пол года из-за ухода / болезни и т.п. 1-2 вменяемых разработчиков, которым замену просто так не найти.
Про непотопляемость. Вот этого я никак понять не могу. Какая нагрузка будет у коробочного решения? Компания из 1000 пользователей? 1-2 клика в секунду в пике нагрузки? На это хватит любого, даже коряво настроенного, сервера. Тут нагрузка играет крайне малую роль. А размах такой, что с аналогичными трудозатратами можно писать демонят на чём угодно. На Сях, Питоне, Яве, вкомпилированными модулями для Пхп и т.д. и т.п.
Во-первых, фундамент психологии — это идеи дарвинизма. Я вообще считаю, что от исследования Дарвина можно считать рождением психологии как науки. До этого «психология» лежала где-то на границе философии и «шаманства» навроде алхимии. Соответственно, Дарвин очень сильно повлиял на психологию в целом и на её последующее развитие. Собственно, два основных направления — психоанализ и бихевиоризм практически выросли из дарвинизма. Гуманистическая психология (кстати, как раз её представителем является Олпорт) постаралась, на мой взгляд, сохранить связь с философией. Но не учитывать достижения двух других фундаментальных направлений было невозможно, так что в результате она превратилась во что-то странное. Типа «модерен алхимии». Т.е. как раз отличительная черта гуманистов в том, что они могли начинать распутывать человеческую психику с середины, беря, например, факт что человек курит или ложится спать в одно и то же время и пытались найти ему какое-то своё объяснения с некоторым уклоном в философию. И не утруждали себя лишними попытками найти глубокие причины или последствия таких действий. За это я и недолюбливаю гуманистов. У них факты висят в воздухе сами по себе. Но это я всё к тому что ставить под сомнение эволюционный отбор во многом значит ставить под сомнение психологию в целом. А без такого фундаменты мысли повисают в воздухе на уровне imho.
Во-вторых, в эволюционном отборе побеждает не наиболее сильный (хотя скорее это просто очень расплывчатое понятие), а наиболее приспособленный. Те 6 видов млекопитающих, которые прятались по норам от больших и страшных динозавров в итоге оказались более приспособленными чем они. Бихевиористы на ваши утверждения вообще сказали бы что высшая психическая деятельность играет ничтожную роль в жизни индивида.
По поводу делать. Тут я придерживаюсь мнений Девида Юма. То что я могу прилечь посреди улицы на 10 минут (и даже если сделаю это сто раз) значит только то, что я могу лежать посреди улицы по 10 минут. Это никак не влияет на то как я буду вести себя в очереди. И это особенность эмпирического познания в целом. Оно крайне ограничено. Суть его в том, что если вы много раз наблюдаете что событие А происходит за событием Б вы начинаете считать, что событие А есть следствие события Б. Однако, на самом деле может оказаться что это два независимых события. Т.е. по сути нельзя однозначно распространять результаты опыта на общий случай. А когда проведение множества идентичных экспериментов становится невозможным по какой-либо причине эмпирическое познание откровенно пасует. В один день вам удалось полежать на улице 10 минут, в другой вы этого сделать не смогли, в третий пролежали только 5 минут. Какие можно из этого сделать выводы? Воля становится слабее / сильнее? Или во второй день были заморозки? Или в первый день вы вышли в одежде, которую вам (подсознательно?) не жалко? Обо всём этом можно гадать. А результаты эксперимента сведутся к строчке 10 мин, 0 мин, 5 мин. И как вы их потом трактовать будете? От этого зависит намного больше, чем от самого эксперимента.
По поводу бизнеса и профита. Может получится, может не получится. Это уже управление рисками скорее. Выше риск — выше доходность. Так почти в любом деле. Я предпочитаю пословицу «тише едешь — дальше будешь». Но это разговор об этом чаще всего путь к холивару. Вопрос в другом. С чего вы взяли, что надо править систему принятия решений, а не систему ценностей? Ведь вот какая штука. Если вы раскачаете свою психику до того что сможете принимать решения однозначно, молниеносно и без колебаний и даже будете их исполнять. Что дальше? Ну получится у вас бизнес и будет много денег. Вы уверены что эти достижения принесут вам радость? Или чего вы там пытаетесь добиться? Вы уверены, что не лучше будет уйти в монастырь или там остаться на ненапряжной нормально оплачиваемой работе и по вечерам с вредным пивом, вредными сигаретами и добрыми друзьями обсуждать новый дизайн какой-нибудь машины? Почему вы пытаетесь исправить способности достигать, а не систему ценностей? Представляете как будет обидно, когда вы достигните чего-то о чём всегда мечтали, но окажется что это лишь муть из рекламы и зомбоящика, на которую вы смотрели сколько-то лет назад. Стоит ли ускорять движение в неизвестном направлении?
Интересно, какую книжку вы прочитали? Такие опусы обычно рождаются после 1-3 книжек по какой-нибудь попсовой психологии. По НЛП в том числе, ага. По моим впечатлениям основная идея более всего похожа на теорию функциональной автономии Олпорта. Только она скорее носила описательный характер. Т.е. скорее позволяла предположить, почему человек курит, нежели говорила что дурак такой, курит.
На самом деле теорий на эту тему предостаточно, но это всё детали. Меня больше всего во всех подобных опусах удручает некоторая категоричность. Т.е. вот все люди, дураки такие, понимание мира не развивают, курят некоторые даже. А бабло / эффективность / (вставить нужное) уплывают мимо вот прям из под носа. А надо то только руку протянуть, сделать так-то, выкинуть рекламу и зомбоящик из головы, думать самому и т.д. и т.п. И вот оно — … Счастье? Или что там у вас? И все забыли про дедушку Фрейда, который говорил, что преступление пытаться избавить человека от невроза не предложив ему альтернативный вариант поведения взамен. Почему-то все считают, что в психику можно лезть руками и ногами, не поняв при этом причин возникновения тех или иных привычек / комплексов / стереотипов. А это всё-равно что проводить операцию без диагноза. Болит правый бок — отрежем в правом боку первое, что попадётся под скальпель. Но с телом проще. Там причины и следствия обычно более очевидны.
Можно научить свою психику делать исключительно то, что вам заблагорассудится. Вопрос — чем это закончится? Зачем менять шило на мыло? В обоих случаях результат мало предсказуем. Только скорее психика сформировавшаяся в «естественных» условиях будет всё же более стабильной. Она же по сути прошла локальный эволюционный отбор размером во всю предыдущую жизнь человека. А куда приведёт искусственно созданная или переделанная система — кто знает? Может и правда можно у пьяных гопников после поражения сборной России по футболу со счётом 7:0 в час ночи в подворотне просить мобильник домой звякнуть. Может и правда ничего страшного не произойдёт. Я эксперимента никогда не ставил. А мои стереотипы говорят что они злые будут и побьют. И я не хочу эти стереотипы менять. Мне кажется что в данном разе они мне жизнь спасут. А может на самом деле всё это враньё и гопники добрые. Не знаю.
Погрепайте 'NavPageNomer' тогда по компонентам. К счастью, у меня уже нету под руками полной декодированной версии, так что про page_nomer наверняка ничего не скажу. Но, по-моему, было в районе версии 6.5. Сейчас уже до 8 дошли (или выше?), так что могли случайно исправить на что-то более человеческое.
Гм. По-моему это извращение. Если уж и так понятно, что у клиента есть сильверлайт (ведь без него эта штука не заведётся), то почему бы не писать на IronPython прямо под него. Это конечно тоже извращение на любителя, но всё же в меньшей степени.
Одной строкой без опозновательных знаков писать скорее в принципах Перла. shift и всё тут. В идеологии Питона главное понятность. Хотя, если захотеть, можно конечно и в Питоне огород нагородить.
Кстати, если вам так уж важна одна строчка, то более питонично написать:
for i in range(1, 10): print i
Этот способ понятнее, эффективнее и тоже в одну строчку. Если же упражняться в извращениях, то надо писать:
import sys
map(lambda a: sys.stdout.write(str(a)), range(1, 10))
Как адепт Питона должен сказать, что он во многом задумывался именно как легко читаемый язык. Т.е. по идее человеку со стороны должно быть не трудно понять что происходит в программе в общем. И плюс принцип «явное лучше не явного». На том же Перле может получиться более короткий код, но обычно менее понятный для непосвящённых.
По личным впечатлениям. Не пишите на на Ruby и C++. Плюсы по понятности для человека со стороны не сильно хороши, а в Ruby глаза всё время спотыкаются о @, :, !, = и т.п. (Ах да, по-моему по поводу Питона автор ещё писал, что старался избавить его от лишних нечитаемых символов. В Руби этого добра навалом.) Опять таки по личным впечатлениям из языков, которых я не знаю лучше всего читаются Java и C#.
Теперь, наконец по сути. ) Всё зависит от того, что вы там собираетесь писать. И на Питоне можно написать всеобще понятное:
for i in range(1,10):
print i
и всеобще непонятное:
frame = sys._getframe(1)
if '__module__' in frame.f_locals and not '__module__' in frame.f_code.co_varnames:
# и т.д.
Если вы собираетесь писать про общечеловеческие алгоритмы, то на каком языке вы будете писать for, while, if и т.п. не сильно важно. Подавляющее большинство поймёт. Если же вы станете пользоваться нестандартными библиотеками конкретного языка, то вас могут понять даже не все, кто его знает. Так что для статей типа «Подпольная библиотека языка X» нужно использовать язык X, а для статей типа «Алгоритм пирамидальной сортировки» используйте что вам нравится. if, for, while все понимают одинаково. )
Скорее всего вы правы. Но лично для меня это за преимущество не идёт. Так, приятная мелочь. А вот с точки зрения более глобального программирования там всё куда более мрачно. Честно говоря я уже давно не следжу за этим языком, но раньше ООП было в зачаточном состоянии (судя по слухам Moose'ом его худо-бедно очеловечели, да и то довольно своеобразно), аргументы передавались в один расплющенный массив (до сих пор после этого не нарадуюсь питоновскому синтаксису func(var1=1, var2=2)), можно было менять местами метод и объект… Ну и т.д. С точки зрения синтаксиса это всё очень страшно.
С другой стороны, однажды мне посчастливилось видеть один сайтик, написанный профессионалом. Действительно всё было более-менее просто, логично и красиво. Но остальные то 99% скриптов, которые попадались мне на глаза, — это каша какая-то. Почему-то вспоминается фраза (не помню откуда): «Единственный способ нанести вред пращей, не научившись пользоваться ей почти профессионально, — повеситься».
bash — чисто для скриптов. Лучше иметь представление, чтобы если что можно было поковырять исходники скриптов или написать какую-нибудь мелочь для себя.
Perl — просто очень специфический. Явные преимущества у него могут усмотреть только его адепты. Я, честно говоря, ни разу его не использовал с того момента, как выучил Питон до терпимого уровня. В Perl всё менее явно.
Ну вот разве что научитесь работать с регулярками. ) У меня после непродолжительного опыта общения с Перлом до сих пор коллеги с разных мест работы время от времени просят помочь составить регулярку.
По поводу записи файлов уже моднее использовать with:
with open("/home/user/testfile.txt", "w") as myfile:
print>>myfile, "I want to drink some beer with Guido"
На целую строчку короче и файл сам закрывается. :) Правда работает только начиная с 2.6.
Так вы же говорите проблема после второй строчки. На новую строчку ничего переносить и не должно. Последовательность такая:
>>> while x <= 3: (жмём enter)
… (жмём tab) print x (жмём enter)
… (жмём tab) x += 1 (жмём enter)
… (жмём enter)
Да я вот тут сижу и думаю. Там чтобы в mro вникнуть нужно сначала протно проникнутся единством и противоположностью type и object. ) А это ещё целая статья всякой жести. ) Ладно, наверное всё же начну с mro.
На правах оффтопа. У меня тут появилось немножко свободного времени на писательство. Будет ли интересна тема MRO (method resolution order)? В принципе эта штука представляет скорее академичекий интерес, т.к. те кто пользуются множественным наследованием и так всё знают, а остальным оно вряд ли прегодится. Но вдруг. )
Про непотопляемость. Вот этого я никак понять не могу. Какая нагрузка будет у коробочного решения? Компания из 1000 пользователей? 1-2 клика в секунду в пике нагрузки? На это хватит любого, даже коряво настроенного, сервера. Тут нагрузка играет крайне малую роль. А размах такой, что с аналогичными трудозатратами можно писать демонят на чём угодно. На Сях, Питоне, Яве, вкомпилированными модулями для Пхп и т.д. и т.п.
Во-вторых, в эволюционном отборе побеждает не наиболее сильный (хотя скорее это просто очень расплывчатое понятие), а наиболее приспособленный. Те 6 видов млекопитающих, которые прятались по норам от больших и страшных динозавров в итоге оказались более приспособленными чем они. Бихевиористы на ваши утверждения вообще сказали бы что высшая психическая деятельность играет ничтожную роль в жизни индивида.
По поводу делать. Тут я придерживаюсь мнений Девида Юма. То что я могу прилечь посреди улицы на 10 минут (и даже если сделаю это сто раз) значит только то, что я могу лежать посреди улицы по 10 минут. Это никак не влияет на то как я буду вести себя в очереди. И это особенность эмпирического познания в целом. Оно крайне ограничено. Суть его в том, что если вы много раз наблюдаете что событие А происходит за событием Б вы начинаете считать, что событие А есть следствие события Б. Однако, на самом деле может оказаться что это два независимых события. Т.е. по сути нельзя однозначно распространять результаты опыта на общий случай. А когда проведение множества идентичных экспериментов становится невозможным по какой-либо причине эмпирическое познание откровенно пасует. В один день вам удалось полежать на улице 10 минут, в другой вы этого сделать не смогли, в третий пролежали только 5 минут. Какие можно из этого сделать выводы? Воля становится слабее / сильнее? Или во второй день были заморозки? Или в первый день вы вышли в одежде, которую вам (подсознательно?) не жалко? Обо всём этом можно гадать. А результаты эксперимента сведутся к строчке 10 мин, 0 мин, 5 мин. И как вы их потом трактовать будете? От этого зависит намного больше, чем от самого эксперимента.
По поводу бизнеса и профита. Может получится, может не получится. Это уже управление рисками скорее. Выше риск — выше доходность. Так почти в любом деле. Я предпочитаю пословицу «тише едешь — дальше будешь». Но это разговор об этом чаще всего путь к холивару. Вопрос в другом. С чего вы взяли, что надо править систему принятия решений, а не систему ценностей? Ведь вот какая штука. Если вы раскачаете свою психику до того что сможете принимать решения однозначно, молниеносно и без колебаний и даже будете их исполнять. Что дальше? Ну получится у вас бизнес и будет много денег. Вы уверены что эти достижения принесут вам радость? Или чего вы там пытаетесь добиться? Вы уверены, что не лучше будет уйти в монастырь или там остаться на ненапряжной нормально оплачиваемой работе и по вечерам с вредным пивом, вредными сигаретами и добрыми друзьями обсуждать новый дизайн какой-нибудь машины? Почему вы пытаетесь исправить способности достигать, а не систему ценностей? Представляете как будет обидно, когда вы достигните чего-то о чём всегда мечтали, но окажется что это лишь муть из рекламы и зомбоящика, на которую вы смотрели сколько-то лет назад. Стоит ли ускорять движение в неизвестном направлении?
На самом деле теорий на эту тему предостаточно, но это всё детали. Меня больше всего во всех подобных опусах удручает некоторая категоричность. Т.е. вот все люди, дураки такие, понимание мира не развивают, курят некоторые даже. А бабло / эффективность / (вставить нужное) уплывают мимо вот прям из под носа. А надо то только руку протянуть, сделать так-то, выкинуть рекламу и зомбоящик из головы, думать самому и т.д. и т.п. И вот оно — … Счастье? Или что там у вас? И все забыли про дедушку Фрейда, который говорил, что преступление пытаться избавить человека от невроза не предложив ему альтернативный вариант поведения взамен. Почему-то все считают, что в психику можно лезть руками и ногами, не поняв при этом причин возникновения тех или иных привычек / комплексов / стереотипов. А это всё-равно что проводить операцию без диагноза. Болит правый бок — отрежем в правом боку первое, что попадётся под скальпель. Но с телом проще. Там причины и следствия обычно более очевидны.
Можно научить свою психику делать исключительно то, что вам заблагорассудится. Вопрос — чем это закончится? Зачем менять шило на мыло? В обоих случаях результат мало предсказуем. Только скорее психика сформировавшаяся в «естественных» условиях будет всё же более стабильной. Она же по сути прошла локальный эволюционный отбор размером во всю предыдущую жизнь человека. А куда приведёт искусственно созданная или переделанная система — кто знает? Может и правда можно у пьяных гопников после поражения сборной России по футболу со счётом 7:0 в час ночи в подворотне просить мобильник домой звякнуть. Может и правда ничего страшного не произойдёт. Я эксперимента никогда не ставил. А мои стереотипы говорят что они злые будут и побьют. И я не хочу эти стереотипы менять. Мне кажется что в данном разе они мне жизнь спасут. А может на самом деле всё это враньё и гопники добрые. Не знаю.
Кстати, если вам так уж важна одна строчка, то более питонично написать:
for i in range(1, 10): print i
Этот способ понятнее, эффективнее и тоже в одну строчку. Если же упражняться в извращениях, то надо писать:
import sys
map(lambda a: sys.stdout.write(str(a)), range(1, 10))
По личным впечатлениям. Не пишите на на Ruby и C++. Плюсы по понятности для человека со стороны не сильно хороши, а в Ruby глаза всё время спотыкаются о @, :, !, = и т.п. (Ах да, по-моему по поводу Питона автор ещё писал, что старался избавить его от лишних нечитаемых символов. В Руби этого добра навалом.) Опять таки по личным впечатлениям из языков, которых я не знаю лучше всего читаются Java и C#.
Теперь, наконец по сути. ) Всё зависит от того, что вы там собираетесь писать. И на Питоне можно написать всеобще понятное:
for i in range(1,10):
print i
и всеобще непонятное:
frame = sys._getframe(1)
if '__module__' in frame.f_locals and not '__module__' in frame.f_code.co_varnames:
# и т.д.
Если вы собираетесь писать про общечеловеческие алгоритмы, то на каком языке вы будете писать for, while, if и т.п. не сильно важно. Подавляющее большинство поймёт. Если же вы станете пользоваться нестандартными библиотеками конкретного языка, то вас могут понять даже не все, кто его знает. Так что для статей типа «Подпольная библиотека языка X» нужно использовать язык X, а для статей типа «Алгоритм пирамидальной сортировки» используйте что вам нравится. if, for, while все понимают одинаково. )
С другой стороны, однажды мне посчастливилось видеть один сайтик, написанный профессионалом. Действительно всё было более-менее просто, логично и красиво. Но остальные то 99% скриптов, которые попадались мне на глаза, — это каша какая-то. Почему-то вспоминается фраза (не помню откуда): «Единственный способ нанести вред пращей, не научившись пользоваться ей почти профессионально, — повеситься».
Perl — просто очень специфический. Явные преимущества у него могут усмотреть только его адепты. Я, честно говоря, ни разу его не использовал с того момента, как выучил Питон до терпимого уровня. В Perl всё менее явно.
Ну вот разве что научитесь работать с регулярками. ) У меня после непродолжительного опыта общения с Перлом до сих пор коллеги с разных мест работы время от времени просят помочь составить регулярку.
>> from __future__ import with_statement
with open("/home/user/testfile.txt", "w") as myfile:
print>>myfile, "I want to drink some beer with Guido"
На целую строчку короче и файл сам закрывается. :) Правда работает только начиная с 2.6.
>>> while x <= 3: (жмём enter)
… (жмём tab) print x (жмём enter)
… (жмём tab) x += 1 (жмём enter)
… (жмём enter)
while x <= 3:
print x
x += 1
www.ibm.com/developerworks/ru/views/linux/libraryview.jsp?sort_by=Relevance&show_abstract=true&show_all=false&search_flag=true&topic_by=Python
На правах оффтопа. У меня тут появилось немножко свободного времени на писательство. Будет ли интересна тема MRO (method resolution order)? В принципе эта штука представляет скорее академичекий интерес, т.к. те кто пользуются множественным наследованием и так всё знают, а остальным оно вряд ли прегодится. Но вдруг. )