В недавней панельной дискуссии на Lang.NEXT Андерс Хейлсберг заявил, что программы JavaScript не обслуживаются.
Почти стыдно сосредоточиться на нескольких строках интересного обсуждения. Если вы знаете несколько языков программирования, это видео будет для вас увлекательным и поучительным.
Если вы не знакомы с группой, Андерс Хейлсберг, Гилад Браха, Мартин Одерски и Питер Альваро являются одними из самых влиятельных языковых экспертов. Андерс Хейлсберг принес нам Turbo Pascal, Delphi и C #, не говоря уже об идее .NET в целом. Гилад Браха изобрел новояз и в настоящее время является главным разработчиком Google Dart. Мартин Одерски — человек, который изобрел язык программирования Scala. Питер Альваро, возможно, менее известен, но как аспирант, работающий над пересечением баз данных и распределенных систем, у него есть много интересных вещей, которые он может сказать и привносит в чат иную перспективу.
Как отмечает модератор Эрик Мейер, панель имеет широкий спектр взглядов на языковой дизайн и, в частности, на роль набора данных.
Посмотрите видео, и я обещаю, что вы будете развлечены и проинформированы о разнообразии точек зрения — если бы только качество звука было лучше, не на что было бы жаловаться. Если у вас нет времени на просмотр всего видео и вы действительно хотите знать, что было сказано о JavaScript, перейдите примерно к 11 минутам или прочтите учетную запись ниже:
Андерс Хейлсберг:
«… новый кроссплатформенный язык под названием JavaScript и система типов исчезли вместе с водой. Теперь мы все можем задаться вопросом, как мы делаем среднюю и крупномасштабную разработку.
Эрик Мейер:
«… Вы хотите сказать, что не можете писать большие программы на JavaScript?»
Андерс Хейлсберг:
«Нет, я думаю, ты сможешь, но не думаю, что ты сможешь их поддерживать».
Смех в этот момент говорит о мнении и отношении публики и группы.
Андерс Хейлсберг:
«… Я попробовал провести рефакторинг в большой программе на JavaScript. Этот x такой же, как этот x там? Боюсь, я не могу вам сказать».
Отсюда обсуждение продолжается, чтобы объяснить, что это причина, по которой Google создает Dart:
Гилад Браха:
«… вы можете писать их (большие программы на JavaScript), но после этого вы будете соответствующим образом наказаны».
Эрик Мейер:
«… но если вы посмотрите на JavaScript, он был определен независимо от HTML»
Гилад Браха:
«Это правда, но сочетание двух плохих вещей не делает их лучше».
Отсюда разговор переходит к другим интересным темам, в основном с присущими строгой типизации и слабой типизацией.
Итак, что мы можем сделать вывод — является ли JavaScript злом?
До некоторой степени да, но решение не обязательно в новом языке. Хорошие инструменты, которые помогут вам выяснить, действительно ли этот x такой же, как этот x там, по сути так же хороши, как введение новых языковых конструкций. Если вы можете написать большую программу, вы можете поддерживать ее, если инструменты для этого достаточно хороши — в случае с JavaScript они практически отсутствуют.
Если у вас есть молоток, то каждый винт выглядит как гвоздь.
Если у вас есть группа языковых фанатов, то для решения каждой проблемы нужен новый язык.
По мнению Андерса Хейлсберга, идеи, которые он выразил в ходе обсуждения, должно быть очень трудно поддерживать в мире Microsoft, где JavaScript теперь является первоклассным языком наряду с элегантным C #.
Когда-то Microsoft играла роль лидера в разработке и реализации языков. Даже если вам не нравится строгая типизация и вы предпочитаете другую языковую парадигму, вы должны восхищаться C # и системой .NET как разумным подходом к программированию. Учитывая нынешнее пренебрежение Microsoft к языкам и языковым разработкам, неудивительно, что Андерс Хейлсберг искал новый дом — вопрос только в том, где есть подходящая база, способная поддерживать что-то столь же масштабное и амбициозное, как .NET.
JavaScript — это не зло — он просто другой, и он никуда не годится. Нам нужно научиться жить с этим.