Рубрика:
Разработка /
Принципы программирования
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АЛЕКСАНДР МАЙОРОВ, Tutu.ru, руководитель отдела Frontend-разработки, alexander@majorov.su
TypeScript для PHP-разработчика
Рекомендации для PHP-разработчиков, нуждающихся в разработке больших сложных веб-приложений на клиентской стороне. Почему TypeScript может оказаться отличным выбором?
Когда-то JavaScript был маленьким. И его воспринимали как язык для маленьких... Для маленьких задач. От него требовалось совсем не много. Что-то показать или скрыть, анимировать котиков. По мере развития технологий и распространения интернета, по мере развития браузеров и их возможностей также развивался и браузерный язык – JavaScript. В какой-то момент возможности браузера стали позволять реализовывать сложную логику приложения на клиентской стороне. И заказчики стали хотеть больше. А фронтендеры и не сопротивлялись. Сами того не замечая, они все больше и больше перетягивали логики с бэкенда на фронтенд.
Однажды фронтендеры проснулись и осознали, что их код стал настолько сложным и большим, что поддерживать его уже нелегко. Поддерживать сложные веб-приложения, написанные на JavaScript, все труднее и труднее. При этом сам язык обладает рядом недостатков (хотя есть и много достоинств), из-за которых очень сложно отслеживать утечки памяти, какие-то ошибки…
Ко всему прочему в мир фронтенда стали подтягиваться разработчики из других областей, ранее писавшие на других языках программирования. Каждый нес в мир JavaScript свои знания. Кто-то нес функциональный подход и говорил, что он самый правильный, кто-то утверждал, что классическая школа объектно-ориентированного программирования лучше. Прелесть языка JavaScript в том, что он позволяет не просто писать, используя эти подходы, но даже смешивать их.
Появилось очень много различных фреймворков и библиотек. Фронтенд-мир, наверное, единственный, в котором появилось такое большое количество различных библиотек, подходов и инструментов. При этом фреймворки пытались устранить какие-то недостатки языка. Но устранить их все на уровне фреймворков невозможно. Стали появляться различные инструменты, позволяющие писать не на JavaScript, а на чем-то другом и все это компилировать в наш родной JS.
Список всевозможных трансляторов и диалектов можно найти на странице [1]. Там вы увидите более 340 различных языков программирования, которые компилируются именно в JavaScript. Среди них можно отметить следующие:
- CoffeeScript семейство – 12 диалектов.
- CoffeeScript идеологически совместимые – 25 вариантов.
- 16 вариантов статически типизированных: TypeScript, Dart, Typecast.js, AtScript...
- Существующие языки. Компилируемые в JS: PHP, Java, Ruby, Python, Erlang, Perl, Lua, Scala, C#, F#, Lisp, Scheme, OCaml, Haskell, Smalltalk, C/C++, Go...
Лучше всех популяризировать «Не JavaScript» получилось у Ruby-разработчиков. Они смогли показать всему миру, что можно писать фронтенд, вообще не написав ни строчки кода на JS, благодаря CoffeeScript. Он стал революционным для своего времени. И у него есть много интересных достоинств. Но все же CoffeeScript не является языком JavaScript, уж простите. Это другой язык, со своими нюансами и проблемами при отладке.
Когда на CoffeeScript пишут Ruby-разработчики, то это нормально. Для них это родной язык, можно сказать. Но когда на «кофе» пытаются писать PHP-разработчики, к примеру, или C#, Java-разработчики, то это должно вызывать больше вопросов, чем понимания. Зачем еще одни язык, когда можно использовать существующие знания и писать на чем-то, что более близко как синтаксически, так и идеологически?
Моя мысль, подтвержденная реальным применением на боевых проектах нашей компании, такова: TypeScript для PHP-разработчика такой же родной язык, как CoffeeScript для Ruby-программиста. А следовательно, если хотите разрабатывать сложные приложения на JavaScript, вы просто должны писать их на TypeScript. И далее мы будем рассматривать, почему стоит писать именно на TS.
Статью целиком читайте в журнале «Системный администратор», №7-8 за 2015 г. на страницах 95-99.
PDF-версию данного номера можно приобрести в нашем магазине.
- Список трансляторов и диалектов – http://goo.gl/EAabNP.
- Исходные тексты TypeScript – https://github.com/Microsoft/TypeScript.
- Онлайн-версия компилятора для демонстрации возможностей – http://www.typescriptlang.org/Playground.
- Официальный сайт Hack – http://hacklang.org.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|