Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++, C#, C?

Сергей Коломиец, http://www.cil.com.ua/

Рассмотрим сначала, без лишних слов, два примера:

namespace HW; 
using System; 
class HW { 
	static void Main(String[] args) { 
		Console.WriteLine("Hello World!"); 
		} 
	} 
  
package HW; 
import java.lang.* 
class HW  { 
	public static void main(String[] args) { 
		System.out.println("Hello World!" 
		} 
	} 

Ну что, найдете 10 отличий? С трудом: Как видим, тенденция сближения различных языком программирования здесь проявляется как нигде отчетливо. Первый пример написан на новом языке C#, разработанном фирмой Microsoft, второй - на старой доброй Java.

Язык C# был выпущен в середине 2000 года группой программистов компании Microsoft под руководством небезызвестного в програмистских кругах человека Anders Hejlsberg. Того самого, кто создал Turbo Pascal и Delphi.

Хотя это и не признается официально, но язык C# явно создавался как альтернатива и как прямой конкурент Java. Это отчетливо видно как из приведенных примеров, так и из более детального анализа структуры двух языков.

Главная особенность нового языка (как и основное его достоинство) - это обилие средств для разработчика приложений - простой доступ к компонентам и низкоуровневым библиотекам платформы Win32, возможность использования системы обмена сообщениями с объектами и компонентами на базе XML и протокола SOAP.

Основой языка является, несомненно, C++. Однако, некоторые детали были позаимствованы из языка Java, как то пространства имен etc. Еще одно перекочевавшее из Java достоинство, это система автоматического управления памятью. На систему возложены функции выделения памяти для различных классов, и ее освобождения после прекращения использования классов. Реализация интерфейсов в C# идентична реализации в языке Java.

Следующие возможности были взяты из старых языков программирования, например, из Паскаля. Первая - четкая типизация переменных. При описании переменной необходимо указать ее тип, чего не было в С++. Вторая - автоматическая инициализация переменных. Вот этой возможности и нет в Java.

Технологии COM+ и Windows API полностью поддерживаются C#. Так как язык C# сам не содержит библиотек классов, то в нем появилась возможность использования библиотек других систем программирования, разработанных фирмой Microsoft, как, например, Visual Basic.

Но, не все хорошо, как кажется на первый взгляд. Первый, самый значительный недостаток - полное отсутствие кроссплатформенности, то есть программы на C# могут быть использованы только в системах на основе Win32.

Второй недостаток - в среде исполнения, роль которой играет IL Common Language Runtime. Виртуальная машина Java имеет достаточную производительность, и неизвестно, будет ли выше эффективность первой. Ну, и третье - Java обладает значительно большим количеством средств для разработки многопоточных приложений.

Системные требования: пока доступна версия только под Windows 2000. Обязательно наличие IIS, Internet Explorer 5.5 и библиотеки MDAC 2.6. Пакет можно загрузить с сайта Microsoft: http://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml

Каковы же перспективы этого хорошего начинания? Java, на сегодняшний день является стандартом, и этого не может отрицать даже Microsoft. И последним понадобится много времени, сил и денег для продвижения своего C# в качестве нового открытого стандарта. А для этого необходимо устранить вышеприведенные недостатки, что, конечно, сводит шансы на продвижение к минимуму.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
95K
31 января 2015 года
Дмитрий Конопинский
1 / / 31.01.2015
Мне нравитсяМне не нравится
31 января 2015, 19:53:17
"Но, не все хорошо, как кажется на первый взгляд. Первый, самый значительный недостаток - полное отсутствие кроссплатформенности, то есть программы на C# могут быть использованы только в системах на основе Win32."
Кросплатформенность пожалуй единственное достоинство С#, хоть и не реализовано еще в полной мере
2 достоинство - очень мало кода надо писать и можно быстро состряяпать маленькую программулину + он довольно простой в сравнении с С/С++ за счет сборщика мусора дин памяти, хотя говорят не всегда корректно работает
2.
95K
31 января 2015 года
Дмитрий Конопинский
1 / / 31.01.2015
Мне нравитсяМне не нравится
31 января 2015, 19:47:31
"Следующие возможности были взяты из старых языков программирования, например, из Паскаля. Первая - четкая типизация переменных. При описании переменной необходимо указать ее тип, чего не было в С++" - автор с дуба рухнул? В С++ четкая жесткая типизация, которую он унаследовал от С, за исключением некоторых моментов
3.
37K
18 февраля 2008 года
StreamProger
0 / / 18.02.2008
Мне нравитсяМне не нравится
18 февраля 2008, 11:39:18
Хороший прикол. Вообще то к сведениям автора C# поддреживает не только SOAP, но и TCP/UDP, причем на достаточно приличном уровне. C# и не нужны собственные библиотеки, они все общие почитай о .NET.
4.
16K
23 февраля 2006 года
AntiPod
2 / / 23.02.2006
Мне нравитсяМне не нравится
13 сентября 2007, 10:17:35
Спасибо за статью .... :))) Давно так не ржал, так сказать пособие для чайников как стать еще большим чайником :)))
5.
Аноним
+1 / -0
Мне нравитсяМне не нравится
25 декабря 2005, 19:28:11
Даа статью очень одаренный человек писал.
6.
Аноним
Мне нравитсяМне не нравится
7 декабря 2005, 09:26:58
C# - очень удобное средство быстрой разработки. И в принципе столь же быстрое(исполнение) как С++(если его конечно не оптимизировать). Так что если С# появится под НИКС подобные системы, то...
7.
Аноним
Мне нравитсяМне не нравится
12 ноября 2005, 09:57:00
1. И правда, человек написавший эту статью не воткнул в тему .NET отсюда и бред C#.
2. Бреда и правда много
3. Под виндой 98 все прекрасно работает после установки .Net рантайма. Лично проверено.
8.
Аноним
+2 / -0
Мне нравитсяМне не нравится
20 октября 2005, 21:08:20
Не может нет работать на 98 тем более на голой!
9.
Аноним
+1 / -2
Мне нравитсяМне не нравится
20 октября 2005, 21:07:36
Время покажет! C# это мощь без условно ребяра! всё что было сказано про бред поддерживаю, и где вы только такой информации набрали, поди бабушек на лавочке подслушивали!
10.
Аноним
Мне нравитсяМне не нравится
21 сентября 2005, 02:18:30
1. На голой 98 с установленым .нет рантаймом все отлично работает.
То что требуется IIS - откровенный бред.
2. Моно дотнет для Линукса уже почти догоняет Майкрософтовский. Кстати, там есть функционал которого в Майкрософтовсоком нет.
3. Человек не столько не разобрался в том что такое С# сколько не понял что такое .НЕТ
Одна только заявочка что С# использует библиотеку от Вижуал Бэйсика чего стоит!

Интересно, зачем такие статьи публикуют?
11.
Аноним
Мне нравитсяМне не нравится
15 июля 2005, 03:13:21
На голой винде неможет никак работать, темболее на 98-это полный бред!!!
12.
Аноним
Мне нравитсяМне не нравится
22 апреля 2005, 10:17:31
Видно писающийся не доконца разобрался с С#
13.
Аноним
Мне нравитсяМне не нравится
9 октября 2004, 16:42:27

Цитата:
Основой языка является, несомненно, C++. Однако, некоторые детали были позаимствованы из языка Java, как то пространства имен etc.



По-моему в C++ концепция простанства имен присутсвует с незапамятных времен. Читайте Бьярна Страуструпа, батенька.

Цитата:
Следующие возможности были взяты из старых языков программирования, например, из Паскаля. Первая - четкая типизация переменных. При описании переменной необходимо указать ее тип, чего не было в С++.


Опять же, наверно Вы говорили про PHP или Perl? Как это в С++ нет строгой типизации? Хммм. Рррр.

13.1.
95K
31 января 2015 года
Дмитрий Конопинский
1 / / 31.01.2015
Мне нравитсяМне не нравится
31 января 2015, 19:49:28
Да я тоже офигел, в С/С++ типизация жестче некуда ))
14.
Аноним
Мне нравитсяМне не нравится
29 августа 2004, 21:04:15
кроссплатформенность и мультиязычность - разные вещи, asshole.
15.
Аноним
Мне нравитсяМне не нравится
26 июля 2004, 14:41:31
Первый, самый значительный недостаток - полное отсутствие кроссплатформенности - как енто отсутствие?!.. ведь идеей платформы .net как раз и является повсеместность и гипер-кросс-платформенность!.. сейчас, канеш, ещё рано говорить о переносимости, но известен такой linux-проект, как MONO... да и сама майкрософт разрабатывает UNIX.NET для фриБЗД...

Обязательно наличие IIS, Internet Explorer 5.5 и библиотеки MDAC 2.6 - бред... прекрасно работает и на 98ой голой винде...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог