Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Интегрированная среда разработки (https://javascript.ru/forum/library-toolkit-framework/44651-integrirovannaya-sreda-razrabotki.html)

EuLeEr 28.01.2014 08:02

Интегрированная среда разработки
 
Коллеги , только потрогал стэк разработки HTML, CSS3, JavaScript.
Приблизительно понял , что из себя он представляет по лекциям от Microsoft, которые стали использовать Javascript, точнее библиотеку WinJS, для разработки metro-приложений на windows 8.
Захотелось овладеть способами создания web-приложений, не использующих технологии Microsoft.
Понятно, что требуются базовые навыки для работы в фронт-енд, понятно, что какая-то часть знаний JavaScript необходима для серверной разработке в node.js. Как программист клиент-серверных приложений .Net и предметно-ориентированных в виде 1С давно привык к подсказке intellisence и хорошей справке, как по используемому языку, так и по среде разработке.
Например, если я хочу создавать веб-приложения на платформе node.js и клиентскую часть реализовывать в вышеупомянутом стэке - кстати, даже не знаю, насколько это разумная мысль - есть ли какая-либо среда разработки с более менее проработанной справкой по HTML, CSS3, JavaScript и intellisence. Например, включение c файл контента сакральной :yes: строки <link rel="stylesheet" type="text/css" href="style.css"/> копипастом из другого файла вызывает у меня некоторое уныние, как и необходимость постоянно шастать в интернет за справкой по синтаксису.
Погуглил немножко, а потом решил , что разумнее обратиться к сообществу, поскольку в окружении нет веб-разработчиков, то к вам, как мне показалось, одному из авторитетнейших JS-сообществ Runet.
Буду благодарен за практические советы.
Спасибо !

Nodeveloper 02.02.2014 02:33

Во-первых, сам язык javascript достаточно сложный, скрывает в себе множество подводных камней, не присущих статически-типизируемым, компилируемым языкам, поэтому, скорее всего, опыт программирования на других языках окажется для вас совершенно бесполезным при переходе на js. Даже простые, всем известные, циклы и условные переходы не так просты, как кажется на первый взгляд. Поэтому, при разработке на js больше внимания следует уделить не синтаксису, а логике программы, в чем intellisence — плохой помощник.
Во-вторых, динамическая природа языка, прототипное наследование, отсутствие типизации на уровне синтаксиса делает невозможным создание хоть сколько-нибудь полезного механизма автодополнения. Представьте, что поля и методы экземпляра класса могут поменяться в процессе работы, или, что переменная this внутри метода класса может быть переопределена вызывающим кодом, что является нормальными практиками в мире js.
Однако, не все так плохо. Есть целых три IDE, которые могут хоть чуть-чуть помочь вам в освоении новой платформы:
1. JetBrains WebStorm
2. Aptana Studio
3. Brackets IDE
Две последних являются бесплатными.

Тем не менее, я все-же рекомендую отказаться от изучения js с нуля, и сосредоточиться на изучении одного из языков, которые компилируются в javascript на сервере, а клиент исполняет только скомпилированный, не предназначенный для чтения человеком код.
Это поможет вам не тратить, по моим наблюдениям, 2-3 года жизни только на то, чтобы пройти путь от полного нуля до junior-а в мире javascript, а сразу же после изучения синтаксиса и стандартной библиотеки, писать крупные, масштабируемые проекты, используя один язык, и одни и те же модули на сервере и на клиенте.

На этом поле есть много вариантов, из которых мне особо хочется отметить 3 штуки:
1. Google Dart — новый язык, который может как исполняться в DartVM на сервере, так и компилироваться в javascript. Может похвастаться своей IDE на базе эклипса. Из плюсов — compile-time типизация.
2. JetBrains Kotlin — еще один язык, который может быть скомпилирован в javascript. На сервере, kotlin компилируется в Java байткод, т.е. работает внутри Java VM. Из плюсов — совместимость со всем Java-стеком технологий.
3. Microsoft Typescript — еще один компилируемый в javascript язык. Основное отличие от простого javascript-а — поддержка compile-time типизации. Для Visual Studio 2012, 2013 есть плагин, который поддерживает этот язык.

nerv_ 03.02.2014 00:05

Цитата:

Сообщение от Nodeveloper
Тем не менее, я все-же рекомендую отказаться от изучения js с нуля, и сосредоточиться на изучении одного из языков, которые компилируются в javascript на сервере, а клиент исполняет только скомпилированный, не предназначенный для чтения человеком код.

и рвать на себе волосы при отладке :)

Nodeveloper 03.02.2014 19:43

Цитата:

Сообщение от nerv_
и рвать на себе волосы при отладке

Все три названных мной языка поддерживают дебаг прямо в своих IDE.
Кроме того, современные браузеры поддерживают SourceMap-ы, так что особой проблемы с дебагом нет.

EuLeEr 04.02.2014 08:02

Спасибо огромное за развернутый ответ, уже намечается относительная определенность !:)


Часовой пояс GMT +3, время: 09:49.