avva: (Default)
avva ([personal profile] avva) wrote2007-10-04 01:37 pm

языки (программ.)

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

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

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

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

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

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

[identity profile] intacto.livejournal.com 2007-10-04 06:22 pm (UTC)(link)
подтверджаю - так и кажется )

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

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

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

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

(no subject)

[identity profile] slobin.livejournal.com - 2007-10-04 12:29 (UTC) - Expand

(no subject)

[identity profile] kouzdra.livejournal.com - 2007-10-04 12:37 (UTC) - Expand

(no subject)

[identity profile] averros.livejournal.com - 2007-10-04 20:43 (UTC) - Expand

(no subject)

[identity profile] averros.livejournal.com - 2007-10-04 20:41 (UTC) - Expand

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

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

(no subject)

[identity profile] avva.livejournal.com - 2007-10-04 12:11 (UTC) - Expand

(no subject)

[identity profile] kouzdra.livejournal.com - 2007-10-04 12:29 (UTC) - Expand

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

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

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

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

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

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

[personal profile] ak_47 - 2007-10-04 15:19 (UTC) - Expand

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

[personal profile] ak_47 - 2007-10-04 15:37 (UTC) - Expand

(no subject)

[identity profile] avva.livejournal.com - 2007-10-05 00:05 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2007-10-08 07:53 (UTC) - Expand

(no subject)

[identity profile] panchul.livejournal.com - 2007-10-04 16:06 (UTC) - Expand

(no subject)

[identity profile] panchul.livejournal.com - 2007-10-04 18:25 (UTC) - Expand

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

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

[identity profile] xfyre.livejournal.com 2007-10-04 01:36 pm (UTC)(link)
да еще и реализаций, по-моему, сильно больше одной (это я про STL)
несовместимых друг с другом

что же да джавы - там просто все хорошо с выбором. иногда это запутывает :)

(no subject)

[personal profile] ak_47 - 2007-10-04 15:45 (UTC) - Expand

(no subject)

[identity profile] pappadeux.livejournal.com - 2007-10-05 22:19 (UTC) - Expand

(no subject)

[personal profile] ak_47 - 2007-10-05 23:52 (UTC) - Expand

(no subject)

[identity profile] msh.livejournal.com - 2007-10-04 22:39 (UTC) - Expand

(no subject)

[identity profile] ohtori.livejournal.com - 2007-10-07 22:44 (UTC) - Expand

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

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

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

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

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

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

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

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

[personal profile] ak_47 2007-10-04 03:48 pm (UTC)(link)
Имхо сложность языка служит в некотором роде фильтром, определяющим "среднее по палате" качество текстов на этом языке.

Это вы погорячились. Уж такого ужаса какой работяги на конвейере понаписали на С++ за 20 лет - это ещё надо поискать. :)

(no subject)

[personal profile] alll - 2007-10-04 15:56 (UTC) - Expand

(no subject)

[identity profile] jdevelop.livejournal.com - 2007-10-05 08:47 (UTC) - Expand

(no subject)

[identity profile] jdevelop.livejournal.com - 2007-10-05 09:00 (UTC) - Expand

(no subject)

[personal profile] alll - 2007-10-05 09:10 (UTC) - Expand

(no subject)

[identity profile] jdevelop.livejournal.com - 2007-10-05 09:12 (UTC) - Expand

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

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

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

[identity profile] bortengineer.livejournal.com 2007-10-04 06:48 pm (UTC)(link)
Гы-гы, [livejournal.com profile] anatolix'а опять в классики записали :)

(no subject)

[identity profile] plakhov.livejournal.com - 2007-10-05 07:09 (UTC) - Expand

(no subject)

[identity profile] vladfrost.livejournal.com - 2007-10-08 07:14 (UTC) - Expand

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

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

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


[identity profile] vladimirgin.livejournal.com 2007-10-04 01:23 pm (UTC)(link)
Согласен. Интересное предложение. Даешь Java/B! :)

(no subject)

[identity profile] loislo.livejournal.com - 2007-10-04 17:55 (UTC) - Expand

[identity profile] eterevsky.livejournal.com 2007-10-04 01:09 pm (UTC)(link)
Я активно занимался программированием класса с 8-го (1994), так что к Джаве отношусь как к новшеству. =)

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

Их действительно много, но не следует изучать все! Большей частью они морально устарели - пришли другие. Простейший пример: через 1-2 года никто уже не будет изучать Swing или AWT, а будут пользовать JavaFX - значительно более простой и мощный, при этом интуитивно понятный декларативный язык.

Первый курс - 2003 год, Java и тогда и сейчас кажется чем-то "новым", когда C++/C - язык дедов [=)

[identity profile] vladimirgin.livejournal.com 2007-10-04 01:25 pm (UTC)(link)
Это как раз одна из бед - что не успеваешь выучить и поиспользовать одно, как появляется что-то новое. За которое лихорадочно хватаются и пытаются тоже впихнуть в проект. Никакой преемственности и плавной эволюции, а просто череда небольших революций...

[identity profile] tlkh.livejournal.com 2007-10-04 01:23 pm (UTC)(link)
Полагаю, она превратилась в монстра потому что стандартные библиотеки были слишком плохие.
Если бы они были удачные, не потребовалось бы множества несовместимых переделок.

[identity profile] nchaly.livejournal.com 2007-10-04 01:49 pm (UTC)(link)
Новой кажется, наверное, если ею не заниматься вплотную.

Интересно, что судя по тому, что инсталл .net framework 2.0 занимал 22М, а 3.5 просит скачать больше 250М, то .net ждет похожая линия развития, вплоть до managed OS.

А еще интересно, как там ситуация со священными войнами. В начале были стычки С-Паскаль и довольно сильные. Потом - С++-Джава. Потом - .net-java и .net-c++ (c++ похоже упорно лезет в финал). Потом "новые" языки типа руби-против всех остальных. А сейчас поутихло или это только кажется? Или кажется, что было?

[identity profile] al-zatv.livejournal.com 2007-10-04 02:16 pm (UTC)(link)
а кстати да, интересное наблюдение. мне тоже кажется что flame wars утихают.

(no subject)

[identity profile] ygam.livejournal.com - 2007-10-04 17:30 (UTC) - Expand

(no subject)

(Anonymous) - 2007-10-04 20:34 (UTC) - Expand

[identity profile] mi-b.livejournal.com 2007-10-04 02:06 pm (UTC)(link)
а я старше совсем чуть-чуть и помню, как C++ был новинкой для девелоперов в 1989 и первый беленький русский перевод Строустрапа помню

[identity profile] alexclear.livejournal.com 2007-10-04 03:25 pm (UTC)(link)
и первый беленький русский перевод Строустрапа помню

Ораньжевенький, издательство "Радио и Связь", 1991.

(no subject)

[identity profile] mi-b.livejournal.com - 2007-10-04 15:50 (UTC) - Expand

(no subject)

[identity profile] dbg.livejournal.com - 2007-10-04 17:26 (UTC) - Expand

(no subject)

[identity profile] dmpogo.livejournal.com - 2007-10-04 15:36 (UTC) - Expand

[identity profile] dmpogo.livejournal.com 2007-10-04 02:31 pm (UTC)(link)
Разве эсто срок ? Я сейчас дописываю статью, начатую в 1995-м. Вытащил файл - последняя ревизия в 97-м.

[identity profile] ilyabo.livejournal.com 2007-10-04 02:47 pm (UTC)(link)
ладно вам, не все фреймворки такие уж неповоротливые.
ak_47: (Default)

[personal profile] ak_47 2007-10-04 04:08 pm (UTC)(link)
Джава превратилась в чудовище лишь по одной главной причине: из-за жадности и узколобости фирмы САН. САН, вместо того чтобы стандартизировать язык и базовую библиотеку, решила выжать из Джавы столько денег сколько сможет. Поэтому с самого начала она не соглашалась на разделение языка, библиотеки и виртуальной машины. САН заявила что всё это Джава, единая и неделимая в трёх лицах и только САН и никто другой имеет право контролировать Джаву. А все остальные пусть платят отчисления.

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

Я знаю что вы, Авва, не любите С++. Но тем не менее С++ уже 20 лет остаётся одним из самых популярных языков и сходить со сцены совершенно не собирается. Своим долгожительством С++ обязан в первую очередь комитету по языку, который раз за разом отказывался портить язык в угоду сиюминутных задач. У С++ тоже хватает проблем, никто не идеален. Но в целом ситуация с языком гораздо более здоровая чем у Джавы.

[identity profile] avva.livejournal.com 2007-10-04 05:21 pm (UTC)(link)
Я сейчас пишу на C++, между прочим :-)

(в том числе)

(no subject)

[personal profile] ak_47 - 2007-10-04 19:12 (UTC) - Expand

(no subject)

[identity profile] loislo.livejournal.com - 2007-10-04 18:05 (UTC) - Expand

(no subject)

[personal profile] ak_47 - 2007-10-04 19:18 (UTC) - Expand

[identity profile] its-probably-me.livejournal.com 2007-10-04 04:13 pm (UTC)(link)
Да-да-да! То ли дело Haskell
[Error: Irreparable invalid markup ('<scala/erlang/etc>') in entry. Owner must fix manually. Raw contents below.]

Да-да-да! То ли дело Haskell<Scala/Erlang/etc> который легок, не оброс неповоротливыми фреймворками и на котором так хорошо писать для души что-нибудь возвышенное, потому что за деньги на нем писать не особо удастся.

(Anonymous) 2007-10-05 10:34 pm (UTC)(link)
При все моем уважение к Хаскеллу и подобным и любви к его модели, на нем возвышенного писать не удается
Все серьезные проекты, которые я знаю уровня теорем прувера первого порядка или прувера для весьма специфического класса логик в нужный момент были переведены на С или С++.

[identity profile] panchul.livejournal.com 2007-10-04 04:40 pm (UTC)(link)
Я помню начало Java. В 1995-м я сидел на 12-м этаже здания сразу около штаб-квартиры Интела (оттуда открывался феноменальный вид на Силиконовую Долину). В здании находилась компания Microtec Research, где я тогда работал. В дверь зашел чувак, который оказался моим новым начальником и который до этого работал менеджером в Sun-е. Он мне сразу и рассказал про весь hype с Java-ой. До этого я видел статью про Java в Dr.Dobb's Journal то ли в 1993-м, то ли в 1994-м, где Java описывалась как один из экспериментальных языков наряду с Dylan, Eiffel и подобными, не имеющими никакого будущего. Потом я все удивлялся: кому нужен урезанный C++, да еще и на виртуальной машине, повторяющей паскалевский p-код? А мой приятель звонил мне в 1995-м и говорил "ты ничего не понимаешь, это не просто язык, это вирус (язык для писания интернет-вирусов)!"

[identity profile] moon-aka-sun.livejournal.com 2007-10-04 05:04 pm (UTC)(link)
Забавно, да. В мои времена и С не было. А когда потом появился, очень забавно распечатывался на друкарках мозаиковых. Особенно фигурные скобки смешно выглядели.

[identity profile] panchul.livejournal.com 2007-10-04 06:26 pm (UTC)(link)
Вместо фигурных скобок в 1980-х на СМ-4 применялось типа (* и *) или что-то в таком духе

(no subject)

[identity profile] averros.livejournal.com - 2007-10-04 20:51 (UTC) - Expand

Page 1 of 2