Файл: История возникновения и развития языка программирования Си (С++) и Java..pdf
Добавлен: 16.02.2024
Просмотров: 34
Скачиваний: 0
Microsoft .NET начал посягать на домен Java. Команда Microsoft представила делегатов - указатель на типобезопасную функцию, который значительно упрощает обработку событий. Java нужен был конкурент, и быстрый, поэтому в версии 1.1 в Java появились внутренние классы, способ достижения аналогичного эффекта, но в более ограниченном и трудоемком режиме. В официальном документе Java сделан вывод: «Связанные ссылки на методы просто не нужны ... Они умаляют простоту и единство языка Java». Между тем, до сих пор усилия Java по принятию связанных ссылок на методы продолжаются.
Когда Java достигла версии 1.4, Sun решила, что необходим новый подход, чтобы конкурировать со стратегией Microsoft .NET. ВС долго и трудно, и фирменные версии 1.4, как «5» в попытке двигаться вперед .NET 2.0
Это сопровождалось решением о внедрении дженериков, способ достижения дополнительной безопасности типов. К сожалению, безопасность типов достигается за счет набора текста. Поскольку инженеры приняли дженерики, их часто слышали, как они ругались, когда они наносили еще один оператор List <Foo> foos = new ArrayList <Foo>.
Университеты быстро приняли Java; студентам больше не нужно было изучать тонкости ручного управления памятью и указателей, вместо этого они могли полагаться на Java, чтобы выполнять тяжелую работу и сосредоточиться на решении проблем. К сожалению, это привело к созданию лиги разработчиков, известной как «Паттернисты» (Шаблонисты), у которой был только молот, и все было гвоздем. Под их руководством соглашения об именах Java стали все более нелепыми. Когда имена классов, такие как RequestProcessorFactoryFactory, стали обычным явлением, некоторые разработчики начали сомневаться в целесообразности бесконечной башни абстракции.
Поскольку разработчики поняли, что они просто тасуют тысячи строк кода каждый день, им нужно было слово, чтобы оправдать свое существование. Это слово было рефакторингом. Шаблонисты радовались; они не только могли использовать фабрики, синглтоны и посетителей для решения проблем, но они могли неоднократно менять свое мнение и оправдывать это модным словом!
Целая индустрия развивалась, чтобы удовлетворить шаблонистов. Травмы RSI становились все более распространенным явлением среди ветеранов Java, поэтому была создана новая среда разработки. IntelliJ и Eclipse были созданы с целью минимизации ущерба для разработчиков. Расширенное завершение кода и рефакторинг означали, что разработчикам нужно было просто нажимать комбинации клавиш вместо того, чтобы вводить подробные конструкции кода для отсутствующих возможностей языка.
Java стала толчком для Enterprise, наняв некоторых ведущих астронавтов архитектуры, чтобы предложить синергетический подход к расширению возможностей корпоративного программного обеспечения. Результатом была не что иное, как революция; бобы родились. Бины, по-видимому, являются компонентной архитектурой на стороне сервера для модульного конструктора корпоративных приложений.
Снизив сопротивление угловым скобкам за счет использования дженериков, Java продвинулась вперед и вскочила на подножку XML. Используя XML, разработчики смогли выразить краткие концепции в виде огромных, подробных угловатых кошмаров. Преимущество этого заключается в том, что файлы XML (в отличие от других файлов) могут быть легко прочитаны другими компьютерами. Считалось, что стоит заплатить небольшую цену за то, что она не читается людьми. Такие службы, как Ant и JBoss, лидируют с исполняемым XML и мощными дескрипторами развертывания.
Между тем, в галактике, далеко от астронавтов архитектуры, новое поколение программистов решило, что делать дерьмо важнее, чем набирать дерьмо весь день. Это привело к появлению таких фреймворков, как Rails, которые предназначены для решения проблем и позволяют решать проблемы. Этот подход популяризируется как соглашение о конфигурации. Rails получил положительные отзывы, и, по крайней мере, некоторые бывшие наркоманы Java отказались от привычки к Ruby. Первые признаки ослабления сцепления Java стали очевидными.
В августе 2006 года начался проект Java 7. Многие разработчики настаивают на возможности, известной как лямбда-выражения, которая, несомненно, упростит многие из распространенных задач кодирования, которые Java делает настолько болезненными. К сожалению, четыре года спустя комитет по Java все еще спорит о нюансах этой функции, и возможно, что это будет отброшено. Отсутствие движения в Java 7 привело к появлению новых, более сексуальных языков, таких как Clojure и Scala, предназначенных для работы в экосистеме Java, но без необходимости использования самого языка.
Последний гвоздь в гроб начали забивать в апреле 2009 года, когда Oracle объявила о планах приобретения Sun. Во главе с «Ларри, Принцем тьмы», Oracle - это машина для приобретения, которая специализируется на корпоративном ПО и зарабатывании денег. Когда юристы Oracle обнаружили ряд патентов на программное обеспечение, они выбрали большую цель и начали борьбу. Цели достигают не большего, чем Google (ведущая рекламная организация), поэтому юристы Oracle набросились и началась битва.
Где это оставить Java? С момента своего скромного начала 15 лет назад Java поднялась на вершину кучи популярных языков программирования под руководством Sun. В Oracle неясно, выйдет ли когда-нибудь следующая версия Java, не говоря уже о тех функциях, которые жаждут разработчики. Это начало конца для Java?
Заключение.
Изучение истории языков программирования явило собой интересное занятие. Как видно создание таких разных языков имеет много общего - а именно они так или иначе видоизменялись под натиском все более высоких требований. А также так или иначе сопровождались ad-hoc решениями ввиду ограничений мощностей платформ тех времен. Однако невозможно не заметить тренд к переходу от объектно-ориентированных подходов к функциональным. С другой стороны несмотря на веяние этой моды и наличие таких, довольно взрослых, языков как Haskell, Lisp и Scala - OOP все еще остается необходимым в наше время подходом программирования.
Это следует из того, что
Чего не скажешь о JavaScript, который обрел буквально взрывную популярность в наши дни. Долгое время предполагалось что это связано с отсутствием альтернатив в таком популярном сегменте как web-разработка.
Однако доступ языкам Java, C и других к web’у как и бесчисленное множество Desktop приложений написанных на Electron позволяют делать выводы что в обществе востребован простой, OOP - функционально взвешенный язык.
Библиография.
[1] http://lambda-the-ultimate.org/node/4022
[2] 'The main features of CPL' (Barron et al, 1963)
[3] https://vimeo.com/132192250
[4] https://vimeo.com/256731302
[5] https://www.bell-labs.com/usr/dmr/www/chist.html
[6] A. Snyder, A Portable Compiler for the Language C, MIT: Cambridge, Mass., 1974.
[7] https://devblogs.microsoft.com/oldnewthing/?p=99855
9) Приложение