Записки реликта - June 29th, 2009 [entries|archive|friends|userinfo]
Latimeria chalumnae

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

June 29th, 2009

Будни быдлокодера: террариумизм [Jun. 29th, 2009|12:40 am]
Поселил Ubuntu 9.04, Eclipse и JBoss в виртуальную машину (VirtualBox) с почти 400 мегабайтами памяти и наблюдаю, как им там живётся. Живётся им, прямо скажем, хреновато. Всё-ж таки, имея дело с Жабой, даже в игрушечном тестовом окружении, надо закладываться на гиг памяти, не меньше.

Испытываю (впервые с момента приобретения своей нынешней десктопной машины, кажется) сильное желание допихать в хост-систему два-три лишних гигабайта ОЗУ, да.

Кстати, JBoss из репозитария в Убунте бутафорский (прямо так в описании пакета и написано: учебная сборка, не работает), не ожидал.
LinkОставить комментарий

Будни быдлокодера: бытовое гегельянство [Jun. 29th, 2009|02:17 am]
Сходу предупреждаю — рассуждения абсолютно дилетантские, см. тему, если что.

Есть очень чёткое ощущение такой гегелевской триады.
тезис: LAMP,
антитезис: J2EE,
синтез: Python и всякие штуки на нём типа Django.

А также —
тезис: Bugzilla,
антитезис: Jira,
синтез: Trac.

И т.д., и т.п.

Это я к чему? Есть две одинаково неприятные крайности: наколеночные говноскрипты (кто сказал "PHP"?) и то, что [info]haron@lj чрезвычайно метко обозначил как "ёбаный энтерпрайз". Вопрос в том, можно ли осознать прелесть срединного пути, не наигравшись вдоволь с обеими этими крайностями?

Ну, вот есть хороший демотивирующий пример из соседней области ­— идея "объектов". Я вот учу людей программированию, да? И вижу, что вопреки раздающимся со времён Smalltalk'а воплям про естественность этой идеи на самом деле она абсолютно контринтуитивна для большинства людей. Программа как последовательность инструкций, циклы, ветвления, вызовы функций — всё это можно объяснить практически любому (на идее "возвращаемого значения" часто начинаются проблемы, но это отдельный разговор). А вот как только речь заходит об объектах, начинается путаница. Чаще всего человек просто не понимает, ни зачем это, ни что такое "методы", ни откуда в теле методов доступ к полям, и т.д., и т.п. И даже многократное успешное объяснение концепций ООП не гарантирует их удержания в голове ("А экземпляр класса и его потомок — это одна и та же вещь или разные?" — спросил меня недавно студент, меньше чем полгода назад довольно бодро рассказывавший на экзамене про наследование, инкапсуляцию и полиморфизм).

Единственный1 надёжный способ понять, зачем нужны объекты — попытаться написать большую программу в процедурном стиле, задолбаться и задуматься о том, как бы можно было упорядочить весь этот безобразный код и разбить его на малозависимые части.

Возможно, так и здесь — понимание, зачем это надо, приходит только к тем, кто уже набил шишки и об одну крайность, и об другую, а до этого неизбежно "ой, но ведь PHP — это же так просто!", "ой, но ведь ASP.NET — это ведь так мощно!" (к сожалению, не сохранил ссылку на феерический тред на каком-то дотнетовском форуме, где товарищ, которому надо было всего-то навсего разобрать GET-запрос, мутно и мучительно рассуждал об этом в терминах "объектов" и "классов", и, кажется, так и не решил в результате свою проблему — очень показательно, да)?

Мне бы, из чисто эстетических соображений, хотелось бы, чтобы инструменты для веба развивались бы примерно в этом направлении. Интересно, много ли тех, кому хочется примерно того же?


1На самом деле, видимо, ещё два способа объяснять, что такое объекты. Но я не пробовал ни тот, ни другой.

Во-первых, объекты очень легко (и, заметим, без прибивания к языку гвоздями специального "объектного" синтаксиса) описываются в функциональных языках, благодаря такой штуке, как замыкания. В SICP, например, это очень хорошо описано. Но я не пытался учить человека без хорошей математической подготовки сразу функциональному программированию и, честно говоря, вряд ли рискну, пока не увижу, что это удалось кому-то другому.

Во-вторых, объекты очень легко (и опять же без введения специально под них дополнительного синтаксиса) реализуются в параллельных языках с передачей сообщений, таких, как Erlang. Правда, там не очень понятно, зачем нам метафора объекта, когда у нас есть гораздо более богатая и естественная идея процесса.
Link3 комментария|Оставить комментарий

navigation
[ viewing | June 29th, 2009 ]
[ go | Previous Day|Next Day ]