Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Аргумент «для C# есть Решарпер» — вообще непонятно о чём. А для JS есть куча редакторов, IDE, линтеров и т.п. и т.д. + нативная поддержка практически везде, где только можно, включая уже и серверные решения, и создание мобильных приложений.
Уверен, скоро и десктопный софт можно будет писать.
Автокомплит есть практически в любом редакторе,
а каким образом возможность рефакторинга зависит от инструмента — я не очень понимаю.
Отсутствие строгой статической типизации в JS — это один из крупнейших плюсов языка и нимколько не мешает проверке кода. Просто она проводится другими инструментами и способами.
Вдобавок ко всему, Решарпер привязывает разработчика к Visual Studio, а значит — к ОС Windows. Нельзя при желании перейти на *nix или OSX, или ещё что-нибудь, а отсутствие выбора — это плохо.
показать методы, которые гарантированно есть у данного объекта, с полным перечнем аргументов, принимаемых методомДело в том, что в JS нельзя гарантированно знать (до выполнения кода), какие методы есть у какого-либо объекта. И это огромный плюс.
Юнит-тесты? А зачем писать сотни юнит-тестов, если можно просто взять другой языкС этого я и начал — если не устраивает (или не знаете/не понимаете) один язык — просто возьмите другой.
Дело в том, что в JS нельзя гарантированно знать (до выполнения кода), какие методы есть у какого-либо объекта. И это огромный плюс.
Основной смысл — если берёте язык, используйте его так, как он устроен. Если это не устраивает — просто возьмите другой язык.
Я пишу на JS достаточно крупные вещи, «миллионов строк» там, конечно, нет, но если у вас в одном каком-то модуле написана простыня на миллион строк — тут дело точно не в JS.
Если разработчик путается в языке — возможно, ему стоит заниматься задачами на других языках.
Про Решарпер — приведите пару примеров того, что есть в нём и нет в других инструментах?
Если речь про большой проект — то вовсе не надо держать в голове каждую строку каждого метода, надо держать в голове сами методы, объекты и связи между ними, а это уже от языка вообще не зависит.
Про поиск по проекту — конечно же, в любом нормальном редакторе есть поиск по файлам проекта. Почему вы считаете, что это уникальная фича? Попробуйте, для разнообразия, поработать в Sublime Text 2, например.
А 100000 методов и 10000 классов C# вы в голове удержите? Тут уже нет никакой зависимости от языка.
которая вызывает все остальные неприятные для вас следствия — это динамическая типизация.
Странно в таком случае использовать JS, ведь это одна из основных фишек языка.
К слову, в том же ST2 очень легко работает переход к опрределению метода, никаких проблем с этим не возникает.
order.Invoice.Items.Add(...)
order.OrderInvoice.InvoiceItems.AddInvoiceItem(...)
function Render(iRenderableObject){
...
}
function A(){};
function B(){};
A.prototype = new B();
B.prototype.test = function(){}
var foo = new A();
Конечно не подскажет, ведь iRenderableObject на момент написания кода — это просто имя переменной, не больше. Что вы туда передадите, то там и окажется.
Поэтому с JS приходится думать, а не просто выбирать что-то из списка автокомплита.
function Render(param:iRenderable, key:Number){
...
}
Saltarelle: open source C# — JavaScript компилятор