А>Но var еще лучше. Основной программирующий контингент перешагнет через эту несообразность и не споткнется.
Var — сокращение от variable — переменная. А def преднасзначен для создания иммутабельных объектов. Mutable специально сделано таким длинным, чтобы штрафовать за использование переменных и поощрять функциональный стиль.
Здравствуйте, xvost, Вы писали:
X>Здравствуйте, matumba, Вы писали:
M>>Кстати, да. Не совсем понятно, в чём преимущество перестановки?
X>Возможность Name Completion
И это тоже, но насколько я помню Одерски говорил так:
Что для вас важнее как называется переменная или ее тип, с типом можно определиться потом, если он сам не будет выведен.
Назвали переменную, используете, если назвали переменную и знаете ее тип, пожалуйста — уточните, если вам это действительно нужно.
Здравствуйте, artelk, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
А>>1. Переименуйте Nemerle в C#+. Или C&&. Или AltSharp. Или CNext. Или C.Net. A>Голосую: N#
Мне нравится, если честно. Только интересно, не зарегистрировалал ли Майкрософт все названия типа буква-решетка для языков программирования?
Здравствуйте, Аноним, Вы писали:
А>Я как-то уже писал на эту тему: люди консервативны, а Немерль на устроителя революции не тянет (объективно, хотя бы потому, что это yet another .net language). Здравый маркетинговый смысл подсказывает: А>1. Переименуйте Nemerle в C#+. Или C&&. Или AltSharp. Или CNext. Или C.Net.
Я Владу предлагал Next# или N# в крайнем случае. Ему не нравится.
А>2. Верните синтаксис обратно к корням: А> а. Поддержите синтаксис объявления Type instance вместо instance : Type.
Тут ничего менять не надо. С этим как раз всё в порядке.
А> б. Замените def на var.
Тогда уже mutable на var. По этому поводу в своё время было много баталий в гугл группе. Главный аргумент — mutable использовать вообще плохо, лучше использовать def. А т.к. mutable режет глаз, то это как бы вынуждает как можно чаще пытаться использовать def. Если поменять mutable на var, то def использовать никто не будет. В общем, такой как бы воспитательный момент.
А> в. Расширение поменяйте с .n на .csp. Иконку сделайте один в один шарповскую, только слегка отличающуюся цветом.
.ns
А> г. whatever
Вернуть обратно синтаксис дженериков, заменить [] на <>. Убрать точку в конструкторе.
А>3. Спозиционируйте C#+ относительно C#, как C# спозиционирован относительно VB: язык для более продвинутых. Лохи боятся макросов? Сишарп! Крутые пацаны умеют обращаться с макросами, не простреливая ногу? Сишарпплюс! В результате, часть людей с шарпа захочет посмотреть на новый язык. Среди девелуперов, слава богу, пока еще многие не хотят казаться тупыми (особенно, если на самом деле слишком тупы, чтобы переварить сразу все фишки и плюшки). Но еще лучше, что для многих приплюсников этот язык мог бы стать первым из управляемых.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Аноним, Вы писали:
А>1. Переименуйте Nemerle в C#+. Или C&&. Или AltSharp. Или CNext. Или C.Net... А>2. Верните синтаксис обратно к корням: А> а. Поддержите синтаксис объявления Type instance вместо instance : Type. А> б. Замените def на var. А> в. Расширение поменяйте с .n на .csp. Иконку сделайте один в один шарповскую, только слегка отличающуюся цветом. А> г. whatever А>3. Спозиционируйте C#+ относительно C#, как C# спозиционирован относительно VB: язык для более продвинутых...
В общем и целом — согласен. С маркетинговой точки зрения было бы разумно сделать язык почти супер-сетом от C#. Это сразу сняло бы много страхов и психологических проблем.
Что касается конкретных предложений, то не все они разумны. Например, менять def на var — это ошибка. Можно было бы оставить var и ввести def для неизменяемых переменных и локальных функций.
Но все это разумно только для нового языка. Немерл уже есть. И он таков каков есть. В общем-то его дизайн разумен и продуман. Синтаксис не взят с потолка, а является следствием выбора более качественных решений или проблем которые поляки (как авторы изначальной версии) не смогли преодолеть (как, например, с квадратными скобками для описания параметров типов).
По сему сейчас менять что синтаксис и название не разумно.
Но, на мой взгляд, в следующей версии (или вместо следующей) стоит сделать альтернативный вариант языка который был бы почти полным суперсетом C#. Скажем так суперсет (C# — неудачные решения из C#). К таким неудачным решениям я бы отнес (в первую очередь) оператор приведения типов (сишный), тернарный оператор "с ? a : b", явное деление на стэйтменты и выражения и кое что еще. Все это мешает расширяемости — основной фишке языка.
Вот этому языку можно было бы дать и другое имя.
Учитывая технологии которые мы закладываем на новую версию можно было бы просто реализовать два диалекта — современный немерл и этот новый суперсет шарпа.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Ka3a4oK, Вы писали:
KK>Я вообще не понимаю зачем цепляться к синтакисису. Я одновременно пишу на Native C++, Nemerle и СиШарпом-ом затыкаю функционал которого нет в Nemerle(unsafe).
Интересно, а чем обоснован выбор C# вместо C++/CLI, который специально предназначен для затычки этого функционала? Пришлось бы писать на двух (с половиной) языках вместо трёх.
Здравствуйте, Don Reba, Вы писали:
DR>А какой другой язык стал популярным за счёт копирования мейнстримового? Может, Питон, Руби, F# или Скала об этом очень беспокоились?
Ну так они и не такие мейнстримовые, как C# и Java.
Re: Фобии
От:
Аноним
Дата:
14.05.11 05:37
Оценка:
а что мешает сделать так. Исходник при чтении преобразуется в зависимости от шаблона у одного в синтаксис со скобками у другого с табами и т д. У кого то вместо мутабле будет вар появляться. Причем файл на диске у всех будет иметь идентичный вид
Здравствуйте, Аноним, Вы писали:
А>а что мешает сделать так. Исходник при чтении преобразуется в зависимости от шаблона у одного в синтаксис со скобками у другого с табами и т д. У кого то вместо мутабле будет вар появляться. Причем файл на диске у всех будет иметь идентичный вид
1. Не все пользуются Студией.
2. Преобразователь на знает о соглашениях по форматированию.
Здравствуйте, Andy77, Вы писали:
A>Ну так они и не такие мейнстримовые, как C# и Java.
Сравнивать с языками за которыми стоят крупные корпорации как-то некорректно. Да и копировал из этих двоих только C# — Ява от предыдущих мейнстримовых языков отличается довольно радикально.
Здравствуйте, Аноним, Вы писали:
А>а что мешает сделать так. Исходник при чтении преобразуется в зависимости от шаблона у одного в синтаксис со скобками у другого с табами и т д. У кого то вместо мутабле будет вар появляться. Причем файл на диске у всех будет иметь идентичный вид
Исходник не всегда содержит корректную программу. Кроме того в нем есть комментарии расположение которых при столь радикальном переформатировании будет сложно соблюсти.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Don Reba, Вы писали:
DR>А какой другой язык стал популярным за счёт копирования мейнстримового?
С++, Java (в меньшей степени), C# (почти полная копия Явы и очень похоже на С++).
DR>Может, Питон, Руби, F# или Скала об этом очень беспокоились?
F# и Скала к мэйнстриму я бы не решился причислять. А Питон и Руби шли к популярности многие года. И они прошли "черным ходом", в том смысле, что они не пытались влезть в вотчину Майкрософт, где народ очень консервативен, сильно зомбирован брэндом и маркетингом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Don Reba, Вы писали:
DR>Сравнивать с языками за которыми стоят крупные корпорации как-то некорректно. Да и копировал из этих двоих только C# — Ява от предыдущих мейнстримовых языков отличается довольно радикально.
Дык и результат. Ява шла к популярности более десяти лет. И это с много мегабаксной конторой то за плечами.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Don Reba, Вы писали:
DR>Здравствуйте, Ka3a4oK, Вы писали:
KK>>Я вообще не понимаю зачем цепляться к синтакисису. Я одновременно пишу на Native C++, Nemerle и СиШарпом-ом затыкаю функционал которого нет в Nemerle(unsafe).
DR>Интересно, а чем обоснован выбор C# вместо C++/CLI, который специально предназначен для затычки этого функционала? Пришлось бы писать на двух (с половиной) языках вместо трёх.
Здравствуйте, VladD2, Вы писали:
VD>В последнее время частенько стали возникать вопросы связанные с тем что (и почему) останавливает людей от перехода на новый язык (в нашем случае — Nemerle).
Отсутствие Nemerle-мании еще не является Nemerle-фобией.
Вопросы стали возникать. Да согласен.
Частенько. Да заметно.
А у кого они стали возникать? Из контекста непонятно. Может быть у всех? У всей прогрессивной общественности? Не похоже.
Почему таких вопросов не возникает в связи с другими языками? И ни с новыми ни со старыми заметьте. Только с одним.
Нет в прошлой Вашей теме упоминались все новые языки. Но ведь обе эти темы про одно и то же.
Если забыть тот факт, что мы тут многие программисты, и рассмотреть с чисто человеческих позиций,
то мне Ваши посты кажутся черезмерно агрессивными и поэтому отталкивающими. И язык тут совершенно не при чем.
А теперь по поводу перехода. На моем текущем рабочем месте например этот переход невозможен чисто технически.
То есть перейти в буквальном смысле не рассматриваем. Вакансий для этого не видно пока.
Тогда как? После работы в качестве хобби? С нашей работой нужны активные хобби и желательно на свежем воздухе.
Вот и выходит что в моем конкретном случае отсутствие желания переходить вполне логичное.
И прошу заметить что не совсем корректно спрашивать что меня останавливает.
Вот если бы заказчик сменил платформу и выбрал новый курс и мне бы предложили или переходи на новый язык или до свиданья.
Именно тогда меня можно было спросить о том что меня останавливало. Но это в воображаемой ситуации.
Или например вдруг стало много вакансий на новом языке и зарплаты вдвое больше моей. Вот тогда бы то-же логично бы было у меня спросить чего же меня балбеса останавливает. Вдруг фобия. Щас полечим. Но в реальности ведь такого нет.
А в реальности(говорю конечно же только за себя) есть много вакансий со старыми языками.
И есть много интересных и не очень, но хорошо оплачиваемых задач.
И вариантов расти в рамках текущего языка — просто огромное количество.
А есть еще архитектурные проблемы они вообще часто ортогональны языку.
И там диапазон от очень плохо до очень хорошо просто бесконечен. А фобий нет.
Я думаю, что нужно правильно позиционировать язык. По-моему не нужно стремиться быть мейнстримом, перетащив за шкирку N-ое количество сомнительного уровня программистов на C#. Зачем? Мне кажется, что нужно пытаться найти свою индивидуальность, и у Nemerle она безусловно есть. Ну и что, что не так популярно. Ну, и хрен с ним.
Посмотрите на лиспарей и штангистов. Один из лозунгов лиспа: "made with alien technology", а хаскеллисты им вторят: "avoid success at all costs!". И ничего, живут.
Главное — это найти себя.
К тому же, палка о двух концах. Быть мейнстримом может быть плохо. Язык закостенеет и станет вам скучным. Радоваться надо, что язык не так популярен. Его можно развивать и улучшать дальше. Это же так здорово!
Здравствуйте, Аноним, Вы писали:
А>2. Верните синтаксис обратно к корням: А> а. Поддержите синтаксис объявления Type instance вместо instance : Type.
Тут корни как раз другие. "Type instance" — это определение переменной типа Type. В Nemerle ":Type" — это указание типа, которое может применяться как к переменным, так и к выражениям и может встречатся внутри других выражений.
Например:
Тут, вместо указания типа параметра, мы указали тип значений, возвращаемых из F. Тип параметра компилятор выводит сам.
Еще пример:
class C[T]
{
public Value : T { get { default(T) } }
}
Method[T]() : C[T]
{
C.[T]()
}
WriteLine( Method().Value : int );
Параметр генерик-типа тоже выводится.
Думаю, причину, по которой был выбран именно такой синтаксис, нужно явно описать и разместить это прямо на главной странице в разделе Type inference. А то первое впечатление, которое он вызывает и с которым я сталкивался, показывая код знакомым, варьирует от "фуу... Паскаль" до "нафига так выпендриваться? сделали бы как везде в нормальных языках (aka распространенных)".