Мне до лампочки, что вас задело :) Я даю достаточные обоснования в статьях, плюс отсутствие близких результатов. Вы можете ничего не искать, на столько длиных РНК вообще никто не сворачивал. А детские результаты с кучкой свернутых спиралек, мне уже не интересны.
И кстати, забавно, что сразу после такого решения — все эти глуппые вопросы на собеседовании идут лесом… вот и покурите, какие действительно вопросы имеют смысл :)
Спасибо. Все перехожу на typescript, жаль что синтаксис не C#, но это мелочи — главное есть поддержка ООП.
Кстати, многое сказано в этой статье habrahabr.ru/post/173813/ Почему вам стоит использовать TypeScript
Основные недостатки JavaScript:
Динамическая типизация, которая вызывает множество регрессионных ошибок.
Отсутствие модульности. Нет ни модулей, ни классов, прототипное ООП рвет мозг тем, кто пишет на C++\Java\C#.
Неочевидное поведение во многих местах.
Ну и пробовали пользоваться? Я так понимаю переводит C# на JS? На сколько серьезный код может перевести?
Возможно это и выход, мне то до лампочки — пусть там JS гавно код генерирует с объектного C#, по сути действительно JS может притендовать на уровень машиного языка, а не на высокоуровневый язык.
Я заодно пропадут вакансии с бредо собеседованиями на программирование на JS :)
P.S. Кстати вот вам и критерий — пусть попробуют обратный конвертер написать с JS на C# — поржем :)
Ну, и в C# аннонимные методы предоставляют доступ к свойствам текущего класса (как в данном примере), но зато там есть хотя бы ограничение — аннонимные методы не имеют доступа к параметрам ret, out — т.е. тем которые были переданны по ссылке.
Иначе, позволительно изменить любую переменную в любом классе. Так вот аннонимные методы, особенно в вариации JS, в которой нет ограничений как в C# — стимулирует разработчика писать гавно — код, без объектной декомпозии. Уже становится не важно, какому классу принадлежит переменная — мы можем работать с ними как с глобальными переменными, а именно это вытравливали в C# из-за нарушения объектности и «мрака» работы с ссылками.
вразумительных ответов на мою аргументацию до сих пор нет, есть 15 минусов кармы — так это неучи, они даже тут пару фраз связать не могут, чтобы мне что-то возразить :) Все пока я спать — пишите в личку.
Не так, лямды — это как в С++ есть смешение объектного подхода со структурным в силу историчности. C# долго «отмывали» от структурного подхода, но теперь загадили лямдами. Поэтому если человек использует лямбы в C# — значит он отказался от ООП. Но может и не отказываться, просто убрав бред using System.Linq
Вот давайте вы напишите сами вначале свой пример кода — а я уже потом объясню почему он не компилируется. Я же оталкивался от ваших слов «и он бы сделал *a = json» — если a private — вы получили бы ошибку компиляции.
где хоть что-то близкое к моим реультатам?
Кстати, многое сказано в этой статье habrahabr.ru/post/173813/ Почему вам стоит использовать TypeScript
Основные недостатки JavaScript:
Динамическая типизация, которая вызывает множество регрессионных ошибок.
Отсутствие модульности. Нет ни модулей, ни классов, прототипное ООП рвет мозг тем, кто пишет на C++\Java\C#.
Неочевидное поведение во многих местах.
TypeScript отличается от JavaScript возможностью явного определения типов (статическая типизация), поддержкой использования полноценных классов
… т.е. общепризнано, что JS не поддерживает ООП, и вот попытались сделать надстройку над языком — поюзаем… звучит неплохо.
Возможно это и выход, мне то до лампочки — пусть там JS гавно код генерирует с объектного C#, по сути действительно JS может притендовать на уровень машиного языка, а не на высокоуровневый язык.
Я заодно пропадут вакансии с бредо собеседованиями на программирование на JS :)
P.S. Кстати вот вам и критерий — пусть попробуют обратный конвертер написать с JS на C# — поржем :)
function ClassExample()
{
this.a = 1;
this.SetUTC = function SetUTC(argUTC)
{
var rd = new RequestData()
rd.OnJSONProcessing = function (argJSON)
{
this.a = argJSON;
}
}
}
Объясните почему это не будет работать? Почему с якобы с private переменными работает, а с public нет?
Иначе, позволительно изменить любую переменную в любом классе. Так вот аннонимные методы, особенно в вариации JS, в которой нет ограничений как в C# — стимулирует разработчика писать гавно — код, без объектной декомпозии. Уже становится не важно, какому классу принадлежит переменная — мы можем работать с ними как с глобальными переменными, а именно это вытравливали в C# из-за нарушения объектности и «мрака» работы с ссылками.
using System.LinqВот этот пример я обсуждал, напишите его полностью тогда уж