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

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

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

Интересно, те, кто сейчас начинают учиться программированию - им тоже Джава кажется чем-то незыблемым и всегда существовавшим, как мне казался C++?
Page 1 of 6 << [1] [2] [3] [4] [5] [6] >>

Date: 2007-10-04 11:50 am (UTC)
From: [identity profile] breqwas.livejournal.com
В институт поступил в 2002, тогда же начал писать на чём-то кроме паскаля. Подтверждаю: именно так, Ява кажется чем-то довольно старым. Пусть и не таким старым как С++, но достаточно для того чтобы не думать о её возрасте.

Date: 2007-10-04 11:57 am (UTC)
From: [identity profile] ex-simanyay.livejournal.com
Да, по ощущениям и С++, и Джава как будто бы всегда были.

Date: 2007-10-04 11:57 am (UTC)
From: [identity profile] kouzdra.livejournal.com
Забавно - всего 10 лет разницы в возрасте, а для меня даже чистый С не является языком "который существовал всегда". Отчасти, конечно дело в запаздывании СССР - С на матмех приволок Цейтин в 1982 году.

Вообще - интересное ощущение - я в ускоренном темпе прошел всю историю языков - начиная Алгола-60 и Фортрана (в школе) и воспринимаю это совсем по другому. В частности Java я не воспринимаю как что-то сколько-нибудь новое - как язык она (за исключением С-образного синтаксиса) очень близка к Simula-67 (которая в современных терминах называлась бы Object Algol-60)...

Date: 2007-10-04 11:58 am (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
Как все же она умудрилась из интересного и многообещающего языка так быстро превратиться в неподъемное чудовище, обросшее сотней неповоротливых фреймворков и чудовищных аббревиатур? А чем, если отвлечься от пропаганды SUN, она была многообещающа?

Date: 2007-10-04 12:02 pm (UTC)
From: [identity profile] http://users.livejournal.com/malfet_/
В 96ом, будучи первокурсником я все пытался понять, зачем нужны языкам стандарты, и есть ли на самом деле такой язык как C++ или это просто C with classes. А в 93ем в C++ по моемому еще шаблонов не было.

И позвольте с Вами не согласиться: в Java конечно есть монструозные библиотеки, но синтаксис и семантика языка остались простыми и понятными,а вот в C++ есть слишком много конструкций, корректных с точки зрения языка, но способных оказать медвежью услугу использующему их программисту.

P.S. Я боюсь вы спутали Орфея с Морфеем

Date: 2007-10-04 12:07 pm (UTC)
From: [identity profile] avva.livejournal.com
Я не спутал, просто описка.

Простота синтаксиса Java сильно пострадала с новыми generics, но в целом он, конечно, остался намного проще C++. Но дело не в этом, а в том, что реальное использование языка, куда ни глянешь, завязано на дикие кучи всякого навороченного, простите, дерьма.

Date: 2007-10-04 12:07 pm (UTC)
From: [identity profile] http://users.livejournal.com/malfet_/
Ну хотя бы тем, что это первый ООП язык близким к Си синтаксисом и сборщиком мусора. Ну и платформонезависимость тоже многого стоит.

Date: 2007-10-04 12:07 pm (UTC)
From: [identity profile] msh.livejournal.com
А мне кажется, что сейчас у выпускников отношение к джаве не просто как к чему-то старому и всегда существовавшему, а как к чему-то устаревшему, идущему в комплекте к работе в страховой компании с 8 до 18, в зале из 20x20 кубиклов, в галстуке. Ну типа кобола, что-то, что делают только потому, что надо кормить семью и платить mortgage

А угораздило ее понятно как - джава была слишком проста и орды послушных джава-программистов было легко накормить чем угодно. Это не C++, где STL десять лет внедряли и до сих пор у двух программистов - три мнения и пять вариантов hashtable

Date: 2007-10-04 12:11 pm (UTC)
From: [identity profile] avva.livejournal.com
Ну мне в 95-м она казалось очень многообещающей:

1) автоматическая работа с памятью

2) виртуальная машина, не надо перекомпилировать для разных платформ, и вместе с тем не очень медленная

3) объект есть объект суть объект, можно перестать морочить себе голову с object semantics vs. reference semantics vs. pointer semantics.

4) упрощение тех областей OOP, где C++ сильно перемудрил и привел к созданию огромного количества нечитаемого кода (operator overloading, multiple inheritance итд.)


Ну т.е. "C++ для людей".

Date: 2007-10-04 12:12 pm (UTC)
From: [identity profile] emdin.livejournal.com
Мне кажется, да. Но я еще до фреймворков не добрался. -)

Date: 2007-10-04 12:13 pm (UTC)
From: [identity profile] http://users.livejournal.com/malfet_/
Это увы да. Остается только надеяться, что Python не станет следующей Java.
Просто, IMHO, для ООП языка ссылки вместо указателей и сборщик мусора - это очень важные концепции.

Date: 2007-10-04 12:18 pm (UTC)
From: [identity profile] yan.livejournal.com
NB: Когда мы заканчивали школу, то даже давно уже существовавший Фортран не казался чем-то вечным или даже старым. Наверно, потому, что тогда у нас программирование не было настолько массовой и общедоступной профессией.

АЛГОЛ-60 или АЛГОЛ-68?

Date: 2007-10-04 12:19 pm (UTC)
From: [identity profile] alex-vinokur.livejournal.com
Может быть речь идет об АЛГОЛе-68? АЛГОЛ-60, по-моему, после 70-х уже не использовался.

Re: АЛГОЛ-60 или АЛГОЛ-68?

Date: 2007-10-04 12:23 pm (UTC)
From: [identity profile] kouzdra.livejournal.com
На Минск-22 в родной школе был именно Алгол-60. Соотвественно и первым языком у меня был как раз он. Сам Минск-22 - это тоже песня :)

Date: 2007-10-04 12:24 pm (UTC)
From: [identity profile] onodera.livejournal.com
Мне кажется, что Джава не несколько лет старше дотнета. Года на 4-5 максимум. Это притом, что в 93-м я был второклассником.

Re: АЛГОЛ-60 или АЛГОЛ-68?

Date: 2007-10-04 12:26 pm (UTC)
From: [identity profile] slobin.livejournal.com
Нет. Симула-67 -- это именно Алгол-60++. То есть программа на Симуле является корректной программой на Алголе-60. (Есть, кажется, одна тонкость с передачей параметров по имени, когда это не совсем так).

... Много ты поймёшь из полуслов! ...

Date: 2007-10-04 12:27 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
Как все же она умудрилась из интересного и многообещающего языка так быстро превратиться в неподъемное чудовище, обросшее сотней неповоротливых фреймворков и чудовищных аббревиатур?

Ответ тривиальный - ООП и его реализация в Java способствует этому. Было бы странно, если было бы наоборот.

Date: 2007-10-04 12:27 pm (UTC)
From: [identity profile] iratus.livejournal.com
C++ в более или менее современной форме - не такой уж старый язык.
Т.е практическое применение С++ как языка программирования вне академического мира начинается году в 87-88. А массово лишь в начале 90-х, с появлением Турбо С++ (91-й год) и других дешевых компиляторов. Так что твое ошущение в 93-м году о том какой С++ старый язык было относительно ложным

Date: 2007-10-04 12:29 pm (UTC)
From: [identity profile] kouzdra.livejournal.com
Я повторюсь - Вы будете смеяться - все перечисленное (кроме VM) присутствовало в исторически первом ОО-языке:

http://staff.um.edu.mt/jskl1/talk.html

Не прошло и четверть века... :)

Впрочем с функциональными языками ситуация похожая - ML придумали в конце 70-х - и только сейчас оно входит в mainstream

Date: 2007-10-04 12:29 pm (UTC)
From: [identity profile] slobin.livejournal.com
Угу. А ещё в моду снова входит передача параметров по имени в стиле Алгола-60. Теперь это называется упрощённым синтаксисом для замыкания без параметров, но выглядит и работает точно так же. ;-)

... Nec tempora mutantur, sed mutamus tempora ...

Date: 2007-10-04 12:30 pm (UTC)
From: [personal profile] alll
Имхо сложность языка служит в некотором роде фильтром, определяющим "среднее по палате" качество текстов на этом языке. И с учётом этого Java стоит сравнивать не C++, а с Visual Basic, PHP, Python и т.д.

Опять же, относительная простота языка ведёт к попыткам перейти от ремесленных методов к промышленным. Десяток инженеров-технологов и тысяча работяг на конвейере вместо сотни мелких ремесленников.

Синтаксис языка

Date: 2007-10-04 12:31 pm (UTC)
From: [identity profile] alex-vinokur.livejournal.com
Если синтаксис запоминать, то он сложен.
Необходимость запоминать синтаксические конструкции возникает для языков с эклектичной концепцией.
Если же концептуальное устройсво языка эффективно и красиво (а C++ - именно такой язык), то понимание синтаксиса должно ассоциироваться с концепцией (т.е., упрощая, выводиться из нее).
В этом смысле, синтаксис C++, как правило, естественен.

Date: 2007-10-04 12:34 pm (UTC)
From: [identity profile] plakhov.livejournal.com
Java поощряет создание оберток к оберткам к оберткам к оберткам.

Как учат классики, "любая проблема дизайна может быть решена введением нового уровня абстракции, кроме проблемы слишком большого количества уровней абстракции". Вот это, собственно, и произошло.

Я был первокурсником в 97м, и помню Джаву молодой. Но, впрочем, и STL тоже.

Date: 2007-10-04 12:36 pm (UTC)
From: [identity profile] loislo.livejournal.com
Просто все гибнет под весом несогласованых библиотек.
Поначалу они были только стандартные и представляли собой единую систему. А потом эту систему раздули и растащили в разные стороны библиотеками для нестандартных фич и конструкций. Ну и эволюция несовместимости самого языка. Джава казалась хорошей поскольку исходно могла больше, чем мог стандартный C++ со стандартными библиотеками.

Нужен новый язык, с новым базовым набором библиотек покрывающий всю ф-ность стандартной джавы и захватывающий большую часть сторонних билиотек в осмысленном, систематизированом виде. Можно и на старом движке но нужно отказаться от обратной совместимости.

Просто так на это нет смысла идти, так что надо иметь еще фичи упрощающие жизнь современному девелоперу, в джаве такой стала сборка мусора и др. фичи.


Re: АЛГОЛ-60 или АЛГОЛ-68?

Date: 2007-10-04 12:37 pm (UTC)
From: [identity profile] alex-vinokur.livejournal.com
У меня тоже первым языком был АЛГОЛ-60. Думаю, это был удачный выбор (сделанный нашими преподавателями).
Page 1 of 6 << [1] [2] [3] [4] [5] [6] >>

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. 24th, 2026 03:06 pm
Powered by Dreamwidth Studios