Да действительно память подводит уже) в 2001 году мы использовали Adobe SVG Viewer под IE, который позволял запрограммировать на JS интерактивное взаимодействие пользователя с SVG графикой. Пример тут www.itosweb.com/success/opera/main.html, правда не знаю, найдете ли вы Adobe SVG Viewer ;-)
Вообще-то идея достаточно стара: лет десять уже как SVG известен миру. Подобную ботву (интеркативные графики) мы делали еще в 2001 году, правда тогда SVG работал исключительно под IE5.
Идея интересная, фактически на фрилансе существует прослойка, которая зарабатывает на посредничестве и предложенная схема работы призвана направить посредничество в цивилизованное русло. Только есть несколько но:
1. при открытой схеме интерес посредника тает на глазах: если все учасники знают бюджет проекта — каждый будет стараться максимизировать свою прибыль от участия.
2. Дележка шкуры неубитого медведя — это bad. Более того, нужно проработать механизмы защиты заинтерисованных сторон от злоупотребления доверием как со стороны заказчика, так и со стороны исполнителей.
3. Исключение из группы в ходе проекта — эта мысль не прокатит. Представим ситуацию: вы дизайнер — сделали макеты, отдали в верстку, заказчик говорит: что-то фиговый у нас дизайнер, давайте его выкинем нахер. Согласно пункту №1, быстро набирается нужное число голосов и дизайнер остается с носом. Аналогично возможна такая ситуация с любым участником.
4. Предложенная идея подразумевает необходимость очень четкого автоматизированного процесса разработки. К сожалению, это большая редкость в IT-сфере. Можно было бы предложить какую-нибудь agile методологию, но они плохо работают на проектах с fixed price.
Вообщем, пока что это скорее утопия, чем идея для реализации.
Между прочим, подтасовка «старого волка» в помощники молодому программисту является отличным способом передавать опыт и знания, а также великолепным средством аудита состояния той части проекта, которая доверена молодым и перспективным. ;-)
35-летний программист — неудачник — это, конечно, сильно сказано ;-) Однако, хочу немного остудить ваш пыл в этом вопросе на своем примере.
Мне 30 и я рядовой javascript'ер. Тем не менее, я при всем старании не могу назвать себя неудачником: я был веб-разработчиком на LAMPе, бизнес-аналитиком, ПМом, бизнес-консультантом в паре IT-контор, которые не знали как поставить свою работу, я даже организовывал свою контору, которую оставил через год по одной простой причине: это не моё.
Моё — это делать красивый качественный код. Мне нравится этим заниматься. Когда я открываю подаренный в наследство JS в 3000 строчек кода и делаю из него JS в 700 строчек, добавляя при этом пару новых фишек в функциональность — это драйв, меня прет от такой работы, потому что я знаю, что в моем коде — полный порядок: тесты написаны, дубликаты убраны, фичи расставлены по свои местам, и практически любая новая задача в рамках проекта решается в три строчки кода.
Пример неудачника у меня тоже есть: я смотрю на своего Технического Директора и понимаю, насколько он уплыл в проектных абстракциях от реальности. Настолько далеко, что даже очевидные вещи ему приходится доказывать фактами. Каждый диалог с ним на технические темы — это мучение для него, потому что становится отчетливо видно, насколько он «съехал» с темы технических фишек. И мне его искренне жаль, потому что я знаю — он ненавидит свою работу. Вот это действительно Неудачник.
P.S. И еще.
> Современному рынку нужны развивающиеся умы, а не загнивающие деды.
Поверьте мне на слово, что Вы, извините, даже пёрнуть не успеете, как Вам будет 30, а потом и 35. Просто однажды утром подойдите к зеркалу и влядитесь в свое отражение. Вы рассуждаете как 20-летний мальчика, имхо, пора чуточку повзрослеть. ;-)
> Мне 25, но в моей области меня не завалят ни на одном собеседовании. Я сам кого хочешь завалю.
Верите-нет, я Вас завалю. Одним простым вопросом. Специфичным, конечно, но из области веб-разработки ;-)
Если бы Вы немножко покопались в данном вопросе, то узнали бы, что к утечкам памяти приводят не замыкания сами по себе, а кривой сборщик мусора в trident aka IE, который не освобождает память, занимаемую DOM-элементами, если на DOM-элемент повесить обработчик события, который является замыканием, в скопе которого есть ссылка на этот DOM-элемент. Решается этот момент тривиально: путем явного удаления обработчиков сотыбий для DOM-элементов при unload текущей страницы.
Замыкания использовать можно и нужно, потому что они позволяют существенно сократить объем программы, а, как известно, при прочих равных условиях большую ценность имеет та программа, в которой меньше кода.
Более того, поняв суть замыканий, можно писать офигенно элегантные вещи на том языке, который поддерживает концепцию «замыканий» и, как следствие, «продолжений».
Если Вы в своей практике не желаете развивать «менее квалифицированных специалистов», то грош цена Вам и вашей компании как работодателю.
Одним словом, если Вы не любите замыкания, то Вы просто не умеете их готовить. ;-)
P.S. Nothing personal, меня просто взбесила Ваша фраза «Если бы я встретил как работодатель программиста, который такие функции пишет — этот программист пошёл бы искать другую работу. Почему понятно, надеюсь?»
Ну и в каком месте в вашей программе будут проблемы с памятью? Вызов a1(s)(s) создает, выполняет и уничтожает функцию-замыкание вместе с ее скопом. В чем проблема?
> Программа должна быть прозрачной кристально и не быть рассчитанной на очень хорошего специалиста
Ну так… давайте будем избегать ООП — там тоже не совсем прозрачно и далеко не каждый понимает, что происходит на самом деле, когда в коде встречается foo.bar().
> О замыканиях, по хорошему, знают только те кто прошёл школу Perl, а таких нынче нету.
О замыканиях, по-хорошему, знают только те, кто прошел школу Lisp, а вот таких, действительно нынче нету. Но это не значит, что замыкания — плохой инструмент. Он просто слишком хорош для современных программистов.
Потому что ярлык «бета» снимает всякую ответственность за качество софта: даже если вдруг одним прекрасным утром вся ваша переписка исчезнет из Gmail, и Вы начнете критиковать гугл и возмущаться, другие пользователи скажут «Это же Beta, чувак!».
Вообще-то у вас уже давно такая милая Беларусь (нет такой страны «Белоруссия») с единственным отличием: в России правит бизнес. В Беларуси правит Лукашенко.
В России политики есть продолжение экономики. В Беларуси экономики нет. Есть только политика, бумажная ВВП и фейковая отчетность о планах, выполненных на 115%.
Где были ваши глаза, когда посадили Ходорковского? Чего вы теперь возмущаетесь и кричите? Все было схвачено еще в 1993 году. Расслабьтесь и наслаждайтесь жизнью.
> потому что если робот и зарегистрируется, он не сможет ответить на e-mail подтверждения регистрации.
Опасное заблуждение.
1. при открытой схеме интерес посредника тает на глазах: если все учасники знают бюджет проекта — каждый будет стараться максимизировать свою прибыль от участия.
2. Дележка шкуры неубитого медведя — это bad. Более того, нужно проработать механизмы защиты заинтерисованных сторон от злоупотребления доверием как со стороны заказчика, так и со стороны исполнителей.
3. Исключение из группы в ходе проекта — эта мысль не прокатит. Представим ситуацию: вы дизайнер — сделали макеты, отдали в верстку, заказчик говорит: что-то фиговый у нас дизайнер, давайте его выкинем нахер. Согласно пункту №1, быстро набирается нужное число голосов и дизайнер остается с носом. Аналогично возможна такая ситуация с любым участником.
4. Предложенная идея подразумевает необходимость очень четкого автоматизированного процесса разработки. К сожалению, это большая редкость в IT-сфере. Можно было бы предложить какую-нибудь agile методологию, но они плохо работают на проектах с fixed price.
Вообщем, пока что это скорее утопия, чем идея для реализации.
P.S. с арифметикой у меня все в порядке, я просто экстраполировал уровень зарплаты до фактического уровня скиллов ;-)
Мне 30 и я рядовой javascript'ер. Тем не менее, я при всем старании не могу назвать себя неудачником: я был веб-разработчиком на LAMPе, бизнес-аналитиком, ПМом, бизнес-консультантом в паре IT-контор, которые не знали как поставить свою работу, я даже организовывал свою контору, которую оставил через год по одной простой причине: это не моё.
Моё — это делать красивый качественный код. Мне нравится этим заниматься. Когда я открываю подаренный в наследство JS в 3000 строчек кода и делаю из него JS в 700 строчек, добавляя при этом пару новых фишек в функциональность — это драйв, меня прет от такой работы, потому что я знаю, что в моем коде — полный порядок: тесты написаны, дубликаты убраны, фичи расставлены по свои местам, и практически любая новая задача в рамках проекта решается в три строчки кода.
Пример неудачника у меня тоже есть: я смотрю на своего Технического Директора и понимаю, насколько он уплыл в проектных абстракциях от реальности. Настолько далеко, что даже очевидные вещи ему приходится доказывать фактами. Каждый диалог с ним на технические темы — это мучение для него, потому что становится отчетливо видно, насколько он «съехал» с темы технических фишек. И мне его искренне жаль, потому что я знаю — он ненавидит свою работу. Вот это действительно Неудачник.
P.S. И еще.
> Современному рынку нужны развивающиеся умы, а не загнивающие деды.
Поверьте мне на слово, что Вы, извините, даже пёрнуть не успеете, как Вам будет 30, а потом и 35. Просто однажды утром подойдите к зеркалу и влядитесь в свое отражение. Вы рассуждаете как 20-летний мальчика, имхо, пора чуточку повзрослеть. ;-)
> Мне 25, но в моей области меня не завалят ни на одном собеседовании. Я сам кого хочешь завалю.
Верите-нет, я Вас завалю. Одним простым вопросом. Специфичным, конечно, но из области веб-разработки ;-)
Если бы Вы немножко покопались в данном вопросе, то узнали бы, что к утечкам памяти приводят не замыкания сами по себе, а кривой сборщик мусора в trident aka IE, который не освобождает память, занимаемую DOM-элементами, если на DOM-элемент повесить обработчик события, который является замыканием, в скопе которого есть ссылка на этот DOM-элемент. Решается этот момент тривиально: путем явного удаления обработчиков сотыбий для DOM-элементов при unload текущей страницы.
Замыкания использовать можно и нужно, потому что они позволяют существенно сократить объем программы, а, как известно, при прочих равных условиях большую ценность имеет та программа, в которой меньше кода.
Более того, поняв суть замыканий, можно писать офигенно элегантные вещи на том языке, который поддерживает концепцию «замыканий» и, как следствие, «продолжений».
Если Вы в своей практике не желаете развивать «менее квалифицированных специалистов», то грош цена Вам и вашей компании как работодателю.
Одним словом, если Вы не любите замыкания, то Вы просто не умеете их готовить. ;-)
P.S. Nothing personal, меня просто взбесила Ваша фраза «Если бы я встретил как работодатель программиста, который такие функции пишет — этот программист пошёл бы искать другую работу. Почему понятно, надеюсь?»
> Программа должна быть прозрачной кристально и не быть рассчитанной на очень хорошего специалиста
Ну так… давайте будем избегать ООП — там тоже не совсем прозрачно и далеко не каждый понимает, что происходит на самом деле, когда в коде встречается foo.bar().
> О замыканиях, по хорошему, знают только те кто прошёл школу Perl, а таких нынче нету.
О замыканиях, по-хорошему, знают только те, кто прошел школу Lisp, а вот таких, действительно нынче нету. Но это не значит, что замыкания — плохой инструмент. Он просто слишком хорош для современных программистов.
В России политики есть продолжение экономики. В Беларуси экономики нет. Есть только политика, бумажная ВВП и фейковая отчетность о планах, выполненных на 115%.
Где были ваши глаза, когда посадили Ходорковского? Чего вы теперь возмущаетесь и кричите? Все было схвачено еще в 1993 году. Расслабьтесь и наслаждайтесь жизнью.