Вопрос по С++

dragonion

Добрый дракон
Re: C#

Вообще это то, что я прочитал в учебниках этих. Преподаватель мой из УАБД, где я и учусь в данный момент :). Вот пару строк из одной книжки:
WHEN YOU CREATE a new programming language, the first question you’re asked invariably is,
why? In creating C# we had several goals in mind:

- To produce the first component-oriented language in the C/C++ family. Software
engineering is less and less about building monolithic applications and more and more
about building components that slot into various execution environments; for example,
a control in a browser or a business object that executes in ASP+. Key to such
components is that they have properties, methods, and events, and that they have
attributes that provide declarative information about the component. All of these
concepts are first-class language constructs in C#, making it a very natural language in
which to construct and use components.
- To create a language in which everything really is an object. Through innovative use of
concepts such as boxing and unboxing, C# bridges the gap between primitive types
and classes, allowing any piece of data to be treated as an object. Furthermore, C#
introduces the concept of value types, which allows users to implement lightweight
objects that do not require heap allocation.
- To enable construction of robust and durable software. C# was built from the ground
up to include garbage collection, structured exception handling, and type safety. These
concepts completely eliminate entire categories of bugs that often plague C++
programs.
- To simplify C++, yet preserve the skills and investment programmers already have. C#
maintains a high degree of similarity with C++, and programmers will immediately feel
comfortable with the language. And C# provides great interoperability with COM and
DLLs, allowing existing code to be fully leveraged.
We have worked very hard to attain these goals. A lot of the hard work took place in the C# design
group, which met regularly over a period of two years. As head of the C# Quality Assurance team,
Eric was a key member of the group, and through his participation he is eminently qualified to
explain not only how C# works, but also why it works that way. That will become evident as you
read this book.
I hope you have as much fun using C# as those of us on the C# design team had creating it.
Anders Hejlsberg
Distinguished Engineer
Microsoft Corporation


Если надо, могу перевод на русский написать. Пишите :)
 

sayan

ॐ मणि पद्मे ह
Re: C#

Software
engineering is less and less about building monolithic applications and more and more
about building components that slot into various execution environments;
а я то думаю че мелкомягкие все больше и больше всего в кернел пихают, уже и iis запихнули туда. :)

.нет на 98 - свежо :), надо будет полистать всежие книги по 98й мож что интересное пишут там.
для .нет можно описать не только на с#, хоть на пайтоне пиши.
тут еще про моно упоминали - там уже что всё с .нет портировали?
вощем хорошоя замена СОМ на платформе виндовс и все.
 

dragonion

Добрый дракон
Re: C#

Я же тему и создал, чтобы поинтересоватся мыслями общественности! Хотя для себя кроме делфи, который сейчас знаю в некоторой степени изучу еще С# и конечно же С++. Насчет 98 винды вроде где-то читал что есть туда .нет платформа :) А вот на хр, висту и мобайл точно есть! + наверняка много. Как углублю свои знания в этом языке - напишу сравнение с С++ и Делфи со своей точки зрения.
 
Останнє редагування:

dragonion

Добрый дракон
Re: C#

С# и .NET
Для того, чтобы понимать значение .NET, полезно напоминать себе о природе многих из технологий Windows, которые появились в прошлом десять лет или так. Хотя они, возможно, наблюдаются абсолютно различными за поверхностью, все операционные системы Windows из Windows 3.1 (введено в 1992) через Windows Сервер 2003 имеют тот же близкий Windows программный ИНТЕРФЕЙС приложения в их ядре. Так как мы прогрессировали через новые версии Windows, огромные номера новых функций были добавлены в программный ИНТЕРФЕЙС приложения, но это было процессом развития и продления API вместо замены этого.

То же может быть сказано для многих из технологий и структур, которые мы использовали, чтобы развивать программное обеспечение для Windows. Например, COM (Составная Объектная Модель) происходил как OLE (Объектное Соединение и Внедрение). В то время, это было, к большой протяженности, просто средства, которыми различные виды Офисных документов могли быть связаны, таким образом, что, например, вы могли разместить, маленькие Excel электронную таблицу в вашем документе Word. (Распространяемый COM), и в конечном счете COM+ — искушенная технология, которая сформировала основу пути. Почти все компоненты связались, также как и осуществлялась транзакция, посылка сообщений услуг, и объектного объединения.

Microsoft выбрала этот эволюционный подход к программному обеспечению по очевидной причине, что это заботится об обратной совместимости. За эти годы огромное ядро стороннего программного обеспечения было записано для Windows, и Windows не сможет пользоватся успехом, который имеет, если каждый раз, когда Microsoft вводит новую технологию, то это нарушает базовый код работоспособности!

Пока обратная совместимость была важной особенностью технологий Windows она имеет еще и большой недостаток. Каждый раз, когда некоторая технология развивает и добавляет новые особенности, это заканчивается немного большим усложнением, чем это было.

Было ясно, что чему-нибудь придется измениться. Microsoft не мог идти всегда расширяя те же инструменты развития и языки, всегда делая их еще и еще сложнее для того, чтобы удовлетворить противоречивые требования хранения с новейшими техническими средствами и поддержания обратной совместимости с тем, что было вокруг того, когда Windows впервые стал популярным в начале 1990-х. Появляется новое решение, где вам придется начать с безупречной репутации, если вы хотите простой еще искушенной множеством языков, сред, и инструментов разработчика, которая делает это простым, чтобы разработчики записали современное программное обеспечение.

Этот свежий запуск - то, чем являются C# и .NET везде. Грубо, говоря, .NET - framework—an API— для программирования на платформе Windows. Наряду с .NET Структурой, C# - язык, который проектировался на пустом месте, чтобы работать с .NET, также как и, чтобы воспользоваться всем прогрессом в средах разработчика и в нашем понимании объектно-ориентированных принципов программирования, которые имеют место над прошедшим временем 20 лет.

Перед тем, как мы будем продолжать, мы должны сделать ясным, что обратная совместимость не была потеряна в процессе. Существующие программы будут продолжать работать, и .NET проектировался со способностью работать с существующим программным обеспечением. Теперь, коммуникация между программными компонентами на Windows почти полностью имеет место, используя COM. Принимая во внимание это, .NET имеет способность обеспечить обертки вокруг
существования компонентов COM таким образом, что .NET компоненты могут говорить с ними.

Верно, что вам не нужно изучать C# для того, чтобы записать код для .NET. Microsoft расширил C++, обеспечил другой новый язык под названием J#, и сделанные существенные изменения в Visual Basic, чтобы превратить его в более мощный язык Visual Basic .NET, для того, чтобы позволить код, записанный в любом из этих языков, чтобы иметь целью .NET среду. Эти другие языки, однако, затрудняют наследственную эволюцию за эти годы вместо того, чтобы быть записанным от запуска с сегодняшней технологией в уме.

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

При написании использовался некоторый материал из книги C.Nagel, et al - Professional C Sharp 2005. 2005
 
Останнє редагування:

Vano

New Member
Re: C#

Кому интересно тут есть учебник по C# на русском языке и там же его компилятор SharpDevelop версии 2.0 .
 

quant

yeah
Відповідь: C#

вот уж не думал что на microsoft.com можно найти что-то бесплатное :)
 

quant

yeah
Відповідь: Вопрос по С++

в С++ есть аналог паскалевской константі nil - такой что указывает в никуда, значения NULL ?
 

GrAndSE

Тёмный
Модератор
Re: C#

Хочется сказать свою субъективную оценку касательно этого языка. Впервые о таковом услышал где-то года четыре назад, или все пять. Если не ошибаюсь в каком-то журнале прочитал, что мол появился новый такой язык, которому Microsoft сулит большое будущее.
Один мой знакомый довольно лестно отзывался о языке в плане написания. Есть некоторые приятные возможности для работы, особенно в пресловутом ООП, которые эту самую работу делают более приятной. Но не в плане быстродействия. Насколько я помню, то всё семейство .нет переходит к тому-чтобы изготавливать не *.exe, а то что уже было когда-то давным давно предложено, т.е. некий "промежуточный код для интерпретирования". Хотя вроде бы как есть возможность и готовый *.exe получить. Но я не работал не знаю. (Как уже было упомянуто выше, никакого .NET в Linux не намечается :) ) Таким вот способом и добивается эта исполняемость на любой версии и ряд других возможностей. Ну а поскольку написать хороший интерпретатор это искусство. А "мелкомягкие" что-то не шибко хорошо с ним управляются. По крайней мере возникает такое ощущение по взгляду на линейку их продуктов - каждая новая версия всё более ресурсоёмка, перегружена множеством зачастую бесполезных функций, которые днем с огнём не выловишь и не выведешь. Ну это конечно моё субъективное мнение, но не у одного меня оно такое.
В принципе, написать хороший интерпретатор можно. Ну писали же интерпретаторы под Java (немножко неправильное слово, тут целая схема перелопачивания *.java в *.class с оптимизацией и последующим выполнением имеется в виду... имя всему этому если не ошибаюсь JIT), которые умудрялись обходить в некоторых задачах откомпилированный считающимся "хорошим" компилятором код С/С++, несмотря на неоднократно раскритикованную медлительно java. А с учётом таких разработок, как сердце оконной системы ОС Plan 9 bitblt, созданное Робом Пайком и многих других (кои нужно вспоминать, а память штука дырявая, либо же искать статьи, а если честно мне не особо хочется это делать), то можно "поверить" и в динамически гинерирующийся код, концепция которого и положен как раз в такого компилятора java кода, о котором я писал выше. Да что там поверить, восхититься и тихо плакать в подушку видя в снах такие вершины искусства программирования.
Но я повторюсь, что не верю в Майкрософт. Да в принципе они ничего такого и не показывают. Насколько мне известно, с .NET готовая программа получается что-то наподобие того же Visual Basic по скорости. Кому довелось поработать, особенно с графикой, тот наверняка поймёт о чем я. Ну а поскольку вся эта платформа позиционируется, как единственный возможной и правильный путь написания "правильных" программ под Windows, то становится тогда понятными некоторые возможные причины столь большой требовательности Vista. :) Ну это только догадки,а что там в голове и недрах Майкрософта мне не ведомо.
Для меня это лишь очередные заморочки Майкрософта, которому хочется сделать всё по своему. Теперь и программистов под Виндовс пытаются заставить плясать в нужном ритме. Что из этого выйдет. я сказать не могу. Наверное, всё таки все у них выйдет. Так что подозреваю, что в скором времени знание .NET для программиста под windows будет обязательным.
Ну а лично для себя я буду тихонечко ночами мечтать, о хорошем и красивом коде, написанном на привычных мне Java, C/C++, Object Pascal (ой пардон, а можно ли Free Pascal так назвать? думаю пока-что да), и тешиться свободой выбора :)
 
Останнє редагування:
Зверху