ALK. C&C++. Мова програмування C#

04.09.2015

нова мова програмування від Microsoft: C#

C# is a modern, object-oriented language that enables programmers to quickly build a wide range of applications for the new Microsoft .NET platform, which provides tools and services that fully exploit both computing and communications.

Дуже оригінально, чи не правда? Що б реально подивитися мова програмування, я візьму програму «Hello, world!» з C# Language Reference:

Все-таки, що це дуже сильно нагадує. я так думаю, що читач цих рядків уже здогадався, що. Так — Java, і ніяких сумнівів. Отже, що є в наявності:

  • Прибрали селектор ->. втім, це, можливо і правильно: і «точка» і «стрілка» виконують, в принципі, одні і ті ж функції з точки зору ООП, так що в цьому є натяки на концептуальність. В принципі, це стало можливим завдяки тому, що в C# є типи «значення» (такі як, int, char, структури і перерахування) і типи «посилання», якими є об’єкти класів, масиви.
  • Точно так само, як і в Java, перенесли метод main всередину класу.
  • Точно так само, як і в Java, в програмах на C# тепер немає необхідності в деклараціях без дефініцій, тобто компілятор багатопрохідний.
  • Звичайно ж, не змогли обійтися без автоматичного збирача сміття, так що в C#, так само як і в Java, не потрібно піклуватися про видалення пам’яті з-під об’єктів. Тим не менш, введена така можливість, під назвою «unsafe code», використовуючи яку можна працювати з покажчиками безпосередньо.
  • З’явився тип object зі зрозумілими наслідками: всі типи (включаючи типи «значення»!) є нащадками object .
  • Між bool і integer немає кастингу за замовчуванням. Тип char — це Unicode символ (так само, як і в Java).
  • Є підтримка цих багатовимірних масивів (а не масивів масивів).
  • На відміну від Java, C# вижив оператор goto .
  • З’явився оригінальний оператор foreach. який дозволяє обійти контейнер.
  • Є ще два цікавих оператора: checked і безконтрольно. Вони дозволяють виконувати арифметичні операції з перевіркою на переповнення і без нього.
  • Підтримка багатопоточності за допомогою оператора lock .
  • Відсутня множинне спадкування — замість нього, як і в Java, введена підтримка інтерфейсів. До речі сказати, структури тепер зовсім не теж саме, що і класи. Зокрема, структури не можуть бути наслідувані.
  • Введена підтримка властивостей (property). Зовсім не розумію, чому це так популярно?
  • На мовному рівні введена підтримка відгуку на події.
  • Введені визначаються користувачами аттрібути, наскільки я розумію, для підтримки систем автодокументации.

Принципове, на мій погляд, на відміну від Java — наявність компілятор в машинний код. Тобто, можна припустити, що програми на C# виконуватимуться швидше, ніж написані на Java (я знаю про те, що в GNU Compiler Collection входить компілятор Java, але це трохи не те).

Взагалі, можна говорити про те, що Microsoft врахувала традиційні нарікання у бік Java в своєму новому мовою. Наприклад, залишена від C++ перевантаження операторів.

Компанія Microsoft стверджує, що створила мову для написання переносних web-додатків і намагається всіляко показати свою собственнную активність у цьому напрямку. Зокрема, компанія Microsoft направила запит на стандартизацю C#.

В принципі, зрозуміло, навіщо все це потрібно. Компанії Microsoft, безсумнівно, знадобився свій мова програмування такого ж класу, як і Java. Пускати ж Java до себе в Microsoft ніхто не збирався, ось і вийшов C#. Зрозуміло, що в даному випадку мова програмування сам по собі є досить малу цінність, тому що Java хороша своєю переносимістю, а переносимість їй забезпечує потужна і велика бібліотека, використовуючи яку немає необхідності викликати якісь системно — або апаратно-залежні шматки коду. Тому на даний момент нічого певного сказати про долю C# не можна — хоча б тому, що у нього поки що немає подібної бібліотеки.

Тим не менш, в найближчі кілька років буде дуже цікаво стежити за розвитком C# і Java. В принципі, ще недавно здавалося, що вже неможливо витіснити Java зі своєї ніші інструменту для відносно простого створення портативних додатків, але ось, Microsoft зважилася на цю спробу. Враховуючи те, що в свій час було очевидно верховенство Netscape на ринку броузерів, очікувати можна всього.

Резюме

Звичайно ж, чекати того, що прямо зараз C# набере якусь популярність досить нерозумно. По-перше, поки що цей компілятор входить тільки в MS Developer Studio 2000, якої ще немає, і не факт, що власники Developer Studio 98 будуть раді тому, що їм доведеться купувати DevStudio 2000 для роботи з новою мовою програмування. По-друге, Java існує вже достаочно довго, що б навколо неї утворився досить сильний конгломерат зацікавлених в її благополуччя фірм і компанії Microsoft буде дуже складно щось змінити в цьому. По-третє, нічого не зрозуміло з переносимістю додатків, написаних на цій мові програмування — адже крім заяв MS більше нічого немає. Я обов’язково спробую спробувати компілятор C# як тільки він потрапить до мене в руки, але поки що я зі скепсисом ставлюся до подібних заяв.

Короткий опис статті: мова програмування c

Джерело: ALK :: C&C++ :: Мова програмування C#

Також ви можете прочитати