avva: (Default)
[personal profile] avva
Я задумался недавно - как часто задумываюсь наедине с собой, бессонной ночью, ворочаясь на кровати, в те часы, когда все наносное, вся суета существования растворяется в темноте и на поверхность выходят самые беспощадные вопросы, самые жестокие дилеммы и все нескончаемые споры - о Джаве. Как все же она умудрилась из интересного и многообещающего языка так быстро превратиться в неподъемное чудовище, обросшее сотней неповоротливых фреймворков и чудовищных аббревиатур?

Так и не решив этот вопрос, моя измученная душа нашла, наконец, свой упокой в объятиях Морфея.

А сегодня я подумал: почему, собственно, "так быстро"? Джаву придумали в 93-м, а всерьёз обсуждать стали в 94-м. Это 13 лет назад. Как по-разному воспринимается время "до нас" и "при нас"! В 93-м году, будучи первокурсником, я воспринимал C++ как давно существующий, совершенно стандартный язык; казалось, что он был всегда (я знал, когда его придумали, но я говорю об ощущениях). А C++ тогда существовал в более-менее современном виде 10-11 лет. Меньше, чем возраст Джавы сейчас; но Джава и сейчас кажется недавним новшеством.

Интересно, те, кто сейчас начинают учиться программированию - им тоже Джава кажется чем-то незыблемым и всегда существовавшим, как мне казался C++?

Date: 2007-10-06 08:26 pm (UTC)
From: [identity profile] raindog-2.livejournal.com
Любопытство взыграло. А вам не будет сложно привести пример? Я очень плохо знаком с Perl и мне интересно, что именно вы имеете в виду. Если не сложно, был бы благодарен.

Конкретный пример, на который я ссылался - у нас 2 линии perl заменили три здоровенных Java-класса. Это было на прошлой работе, полный код я привести не могу - он proprietary, но могу подробно описать. Речь шла о протоколе связанном с цифровыми камерами, серверная часть. Так получилось, что еам нужно было срочно (за несколько часов) протестировать новый протокол и задача была - прочесть данные в текстовом формате, отпарсить это, немного заменить кое-что, затем перекодировать в бинарный протокол и послать по TCP/IP по определенному адресу. Perl позволяет очень эффективно такие задачи благодаря
- regular expressions на уровне языка
- встроенный функции pack и unpack. Они очень удобны для сериализации - десериализации данных, т.е. бинарных протоколов
- операторы map{} и grep{} которые позводяют удобно работать с массивами
- и пр.

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

Обычные операции, для которых (лично мне) удобен Perl - прочесть файл, что-то поменять или посчитать статистику, сгенерировать какие-нибудь тестовые данные, и пр.

Особая ценность Perl - в библитотеке CPAN. Это единая распределенная библиотека Perl, с некоторой автоматизацией доступа. Аналоги для других языков имеются, но по широте покрытия CPAN уникален. Пожалуй, это самый яркий пример code reusability, который я видел.

***

Но в общем, я перечитал то, что написал раньше, и создается неправильное впечатление, что я ругаю Java или доказываю, что другие языки лучше. Нет, я совсем не имел это в виду. В любом языке есть слабости, и их обсуждение никоим образом не значит, что язык негодный. Собственно, за последние 10 лет я написал на Java больше кода, чем на чем бы то ни было, так что у меня с ней непростые, но не плохие отношения :)

Date: 2007-10-06 08:29 pm (UTC)
From: [identity profile] alexshubert.livejournal.com
В любом случае, послушав вас, я заинтересовался Perl и в ближайшее время полезу смотреть. Как только EJB дочитаю :)

Date: 2007-10-06 08:29 pm (UTC)
From: [identity profile] alexshubert.livejournal.com
В любом случае, послушав вас, я заинтересовался Perl и в ближайшее время полезу смотреть. Как только EJB дочитаю :)
Спасибо.

February 2026

S M T W T F S
1 2 3 4 5 67
8 9 10111213 14
15 16 17 18192021
2223 2425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 07:29 am
Powered by Dreamwidth Studios