Привет, неизвестный путник!



Добро пожаловать в C#.NStar! Это ультра-высокоуровневый, кортежно-ориентированный, Си-подобный язык программирования. Как видно из названия, он - прямое продолжение лучшего из языков сегодняшнего дня - C#. И пусть он развивается не так быстро, как Lineedge, но стабильно и целенаправленно. Редко какой месяц Red-Star-Soft ни разу не вносили в него правок (один такой был, только когда нужно было за лето успеть выпустить линейку). И в отличие от линейки, где подписка, пусть и не для всех без выбора, C#.NStar полностью бесплатен! (А вот обфускатор не бесплатен, но где вы видели бесплатные обфускаторы, кроме, может быть, самых низкопробных? - прим. ред.)

Наш стиль

1. У нас почти вся типизация статическая, а не как в каком-то Python. Также мы активно используем статически типизированные списки, вследствие чего, пока переменная примитивного типа не попадает в активное использование в регистрах, она занимает ровно столько, сколько занимает ее значение. Особенно это касается типа bool - благодаря Элд Хаспу он занимает ровно один бит. (Это касается только "чистого" .NStar, а не .NStar поверх .NET - прим. ред.)
2. У нас не бывает StackOverflow, потому что в принципе нет стека. Вы можете занять рекурсией всю оперативную память, так же как и чем угодно другим. Просто и красиво. (На момент написания этих строк в некоторых вспомогательных функциях, например, в функции закрытия скобки или в функции проверки совместимости типов, все же был стек, но, учитывая специфику этих функций, переполнить его было бы маловероятно - прим. ред.)
3. Мы говорим твердое "нет" "свободному" и "гибкому" коду, потому что его легко писать, но очень трудно читать, а читается код несравнимо чаще, чем пишется. И это несмотря на то, что мы понимаем, что язык для новичков и все такое, но именно поэтому сразу с самого начала приучаем новичков к единственому способу что-либо сделать. Так как новичка намного легче приучить к этому, чем "продвинутого", уже привыкшего к "гибкому" коду. При этом мы помогаем, но не принуждаем: если пользователь - профессионал, он сможет отключить предупреждения и сообщения. У нас код короткий, но не свободный и не гибкий.
4. У нас нет goto. Серьезно. Для выхода из нескольких блоков (и даже из нескольких методов) у нас будут конструкции, а как попало прыгать по коду не выйдет. Также у нас нет массивов - только списки и кортежи. Мы понимаем, что неэкономно, но у нас не "сишечка" (язык Си), а ультра-высокоуровневый язык - мы делаем ставку на удобство, а не на экономию.

Наша ссылка на последний EXE

CLICK HERE



Наши главные достижения

1. У нас уже можно, благодаря оператору CombineWith, писать длинные действия одним выражением.
2. У нас можно предельно кратко описать список: (a, b, c, d, e). Аналогично с двумерным, трехмерным и т. д. списком.
3. У нас с самой первой версии можно объявлять локальные функции и классы. Более того, у нас в принципе нет нелокальных функций и классов, кроме всей программы, которая является одной большой функцией.
4. У нас до смешного просто написать программу, выводящую собственный код: return Q();. Для особо "принципиальных" можно немного иначе:
var s = @"var s = @"""";return s.Insert(10, s.Replace(""\q"", ""\q\q""));";return s.Insert(10, s.Replace("\q", "\q\q"));
(к сожалению, только со второй версии). Если вам захочется написать программу, выводящую собственный код и делающую что-то еще, никаких проблем!
5. У нас нет конкатенаций строк в цикле, выражение с конкатенациями автоматически преобразуется в string.Join.

Наши главные планы

1. Лямбды - этот инструмент-легенда, добавляющий в язык киллер-фичу оригинального C# и возможность творить самому подобные фичи.
2. Суперполиморфизм, с которым можно делать такое, что оригинальному C# и не снилось!
3. Оптимизация рекурсии, позволяющая в некоторых случаях сделать глубину рекурсии потенциально бесконечной.
4. Язык программирования языков программирования, превращающий LALR(1)-грамматику в готовый транслятор.
5. И самое главное - прямая трансляция, с которой можно: 1 - исполнять программу лишь немного медленнее, чем в оригинальном C# (он же тоже ультра-высокоуровневый!), и 2 - сразу после появления использовать все новые возможности этого оригинального C#, кроме явно удаленных, параллельно с возможностями от Red-Star-Soft. И когда это будет реализовано, вот тогда наступит истинная цифровая революция!

Преимущества C#.NStar

1. Он берет все лучшее из C#.NET. (goto - это не лучшее.) А значит, у него есть перспективы по определению. Так как, надеюсь, C#.NET представлять не надо. А взяв, добавляет к нему свое. И получается нечто...
2. Он предлагает ноувю парадигму - кортежно-ориентированное программирование (КорОП), резко отрицающее ООП. В нем объекты не запрещены, но очень нежелательны. Зато по максимуму кортежей, а когда их вложенность становится трудночитаемой, появляется const typename. It's beautiful, isn't it?

Ссылки

Просмотреть все версии C#.NStar
Сообщить об ошибке


Назад, на главную страницу всего сайта