Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
d1sc0nn3ct
Зарегистрирован: 28.07.2006 Сообщения: 3
|
Добавлено: Пт Июл 28 2006 08:21 Заголовок сообщения: C# или C++, вот в чем вопрос. |
|
|
Вобщем хочу занятся програмированием, стоит выбор между C# и C++, просветите что выбрать лучше.
После изучения буду создавать приложения по криптографии, 3Д и БД.
Купил тут книженцу по C# и вычснил что код у проги можно сказать открытый, выходит для крипто он не катит вобще. Я хотел бы услышать от бывалых бойцов в чем разница между ними, для чего создан C++ и для чего C#. Какие приложения следуюет создавть точнее подо что они заточены и какие особености.
Заранее Спасибо! ![Smile](images/smiles/icon_smile.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Dragner
Зарегистрирован: 27.07.2006 Сообщения: 760 Откуда: Владивосток
|
Добавлено: Пт Июл 28 2006 10:04 Заголовок сообщения: |
|
|
Я конечно может и не прав, но изучи ассемблер, а потом задай себе вопрос! "Какой язык учить? C# или C++?" ![Embarassed](images/smiles/icon_redface.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
d1sc0nn3ct
Зарегистрирован: 28.07.2006 Сообщения: 3
|
Добавлено: Пт Июл 28 2006 11:34 Заголовок сообщения: |
|
|
Цитата: | Я конечно может и не прав, но изучи ассемблер, а потом задай себе вопрос! |
И что, я асемблер и так знаю, не в совершенстве конечно но знаю и не раз програмил на нем, и основным языком он не являетса для написания win32 приложений, по этой причине то я и спросил в чем различия у этих версий, дабы опеределить для себя их возможности и направления а так же не выбрать то на чем лучше не програмить 3д и криптографию.
Мое мнение - C# не подходит для криптографии т.к. код после компиляции у него открыт.
А на асаембере я не собираюсь писать проги под win32, и я ника кне могу понять твою фразу, причем тут асемблер, зная хорошо как и что работает в железе уже понятно как работает асемблер и куда он лезет, который к C++ вобще не относитса!
p.s. мое мнение, ты написал бредовую строчку про асемблер которая к теме не относитса. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Пт Июл 28 2006 15:09 Заголовок сообщения: Re: C# или C++, вот в чем вопрос. |
|
|
d1sc0nn3ct писал(а): | ...в чем разница между ними, для чего создан C++ и для чего C#. Какие приложения следуюет создавть точнее подо что они заточены и какие особености.... |
си плас плас - это язык в который вошли рекомендации сей и как инструментарий позволяющий формализовать ООА.
си бимоль - более позднии веянья. в основу которых положено: простота (меньше затрат на подготовление кадров юзающих сей продукт), нацеленность на байт код (не зависимый от аппаратной части).
соответственно, если Вы хотите быть в ногу со времнем для форточек - тодысь стоить более пристально псмотреть на си бимоль. Если идёт речь о многоплатформенности, о строгости ООП, об оптимизации - то думаю стоит копнуть си плас плас, тем более что после него си шарп гораздо просче юзать, чем наоборот...си бимоль менее требовательный язык - студенческий если хотите. Пока встречаються курьёзы на этом поприще, но милкософт потехонечку лечится - может когда до ума и доведут сие детище...
с уважением
(круглый) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Сб Июл 29 2006 03:33 Заголовок сообщения: |
|
|
2 kolobok0:
Почему "си бемоль", когда там диез нарисован? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Пн Июл 31 2006 11:19 Заголовок сообщения: |
|
|
Mytilus Galloprovincialis писал(а): | 2 kolobok0:
Почему "си бемоль", когда там диез нарисован? |
да без разницы... поделка, она и в африке поделка... или по другому..как лошадь коровою не обзывай - всё равно молока не даст...
с уважением
(круглый) _________________ (круглый) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Пн Июл 31 2006 14:08 Заголовок сообщения: Re: C# или C++, вот в чем вопрос. |
|
|
kolobok0 писал(а): |
си плас плас - это язык в который вошли рекомендации сей и как инструментарий позволяющий формализовать ООА. |
C++ есть ОО надстройка над Си и ничего больше. Настоящий ООП в Java.
Цитата: |
си бимоль - более позднии веянья. в основу которых положено: простота (меньше затрат на подготовление кадров юзающих сей продукт), нацеленность на байт код (не зависимый от аппаратной части). |
Точнее си-диез - есть извращение скопированное с Java, причем взято все самое плохое, например: необязательно обрабатывать исключения. Смысла в его создании не было и нет,... и не будет...
Цитата: |
соответственно, если Вы хотите быть в ногу со времнем для форточек - тодысь стоить более пристально псмотреть на си бимоль. Если идёт речь о многоплатформенности, о строгости ООП, об оптимизации - то думаю стоит копнуть си плас плас, тем более что после него си шарп гораздо просче юзать, чем наоборот...си бимоль менее требовательный язык - студенческий если хотите. Пока встречаються курьёзы на этом поприще, но милкософт потехонечку лечится - может когда до ума и доведут сие детище...
|
Вот если речь идет о многоплатформенности, строгости ООП, и даже оптимизации, стоит обратить внимание на Java. Остановимся подробнее на каждом пункте:
1. Многоплатформенность: Ну типа байткод Java на любой платформе работать будет, а Си/Си++ перекомпилить надо, вероятно с изменениями кода, т.к. некотроы типы данных отличаются на некоторых платформах.
2. Строгость ООП: Ну типа в Java все строго. А в Си++: множественное наследование, необязательно обрабатывать исключения, арифметика указателей и еще много чего, что строгости программам не прибавляет.
3. Оптимизация: Напишем мы программку на Си, чтоб она заработала на процессоре I386, мы ее компилим под проц I386, таким образом она не использует всех преимуществ процессора Pentium4, т.е. надо будет сделать версию для Pentium4. Рассмотрим пример Java. Скомпилированный байткод будет работать как на I386, так и на Pentium4, причем использовать все его расширения.
Резюмируем: микрософт мастдай!!! Джава рулит!!!
Вернемся к криптографии: Не самая лучшая идея использовать для кодирвоания криптоалгоритмов Java или С#, дело даже не в том что код можно восстановить, его в любом случаем можно восстановить, а в том что типы данных этих языков... ну неудобно там побитовые операции делать. Лучше, на мой взгляд, использовать чистый Си.
Теперь БД: Ну типа есть куча драйверов для практически всех СУБД для Java. А в Oraqle вообще можно писать хранимые процедуры на Java. _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Ср Авг 02 2006 15:07 Заголовок сообщения: Re: C# или C++, вот в чем вопрос. |
|
|
Kefir писал(а): | C++ есть ОО надстройка над Си и ничего больше. Настоящий ООП в Java. |
лозунги - это хорошо...
Цитата: | Точнее си-диез - есть извращение скопированное с Java, причем взято все самое плохое, например: необязательно обрабатывать исключения. Смысла в его создании не было и нет,... и не будет... |
по поводу коровы - см. выше. и не только с джавы...ышо с васика. объясняю смысл - завоевание рынка.
Цитата: |
Вот если речь идет о многоплатформенности, строгости ООП, и даже оптимизации, стоит обратить внимание на Java.
|
очень интересно. обычно когда начинают рассказывать о плюсах - такое впечатление, что люди не смотрели что до этого было создано в мире
Цитата: |
1. Многоплатформенность: Ну типа байткод Java на любой платформе работать будет, а Си/Си++ перекомпилить надо, вероятно с изменениями кода, т.к. некотроы типы данных отличаются на некоторых платформах.
|
явно у человека никогда не стояла задачи по оптимизации Явы. увы и ах - это реалии жизни. А посему за время существования этого языка - так основной плюс и НЕ БЫЛ реализован. Пожелания - не бум выдавать за факты ? OK ?
Цитата: |
2. Строгость ООП: Ну типа в Java все строго. А в Си++: множественное наследование, необязательно обрабатывать исключения, арифметика указателей и еще много чего, что строгости программам не прибавляет.
|
можно конечно же отсебятину пороть, но вернёмся к учебнику Гради Буча (надеюсь серьёзность данного труда в ООА и ООП не вызывает у Вас соменния ?) итак...
стр. 118 (второе издание, перевод с англиского)
"наследование - это такое отношение между классами, когда один класс повторяет структуру и поведение другого класса (одиночное наследование) или других (множественное наследование) классов."
рекомендую учить матчасть. т.е. ООА
Исходя из этого - С++ ближе к ОО чем си шарп или Ява. Аминь..
Так же добавлю... В ООА НЕТ понятий обработки исключений и работы с указателями. Это плюсы или минусы языка - да, возможно. Но это относиться к ОО как жигули к самолёту...
Цитата: |
3. Оптимизация: Напишем мы программку на Си, чтоб она заработала на процессоре I386, мы ее компилим под проц I386, таким образом она не использует всех преимуществ процессора Pentium4, т.е. надо будет сделать версию для Pentium4. Рассмотрим пример Java. Скомпилированный байткод будет работать как на I386, так и на Pentium 4, причем использовать все его расширения.
|
круто, справедливо...Правда есть одно маленьчкое НО ! Фишка в том, что псевдо код действительно НЕ нужно перекомпилять. А вот создать движок явовский под данную платформу - придёться. Вы можете сказать дескать - он уже существует. И удете правы. Но давайте пристальней взглянем на сам движок... Что это ? Это некий транслятор в машинный код некоего АБСТРАКТНОГО языка. Кхм... Надо заметить язык который АБСТРАКТНЫЙ - универсальный. В этом по идее его должен быть плюс. НО! фишка в том, что любой мало-мальский программист знает, что универсальность (как и оптимизация по скорости, как и оптимизация по размеру) - это не волшебство, это решение чётких задач за счёт (!) чего то другого (!) Вот где собака порылась...А теперь напишим ассемблерный код для AVR микроконтроллера (к примеру) который будет выводить ТОЛЬКО целые размером с байт. И сравним этот код с кодом из любой библиотеки более верхнего уровня - далее надеюсь понятно...
Цитата: | Резюмируем: микрософт мастдай!!! Джава рулит!!! |
опять лозунги. наверное это должно быть красиво...или с придыханием произноситься ? честно говоря - возбуждаюсь только на девушек...наверное это мой минус...
Цитата: | Вернемся к криптографии: Не самая лучшая идея использовать для кодирвоания криптоалгоритмов Java или С#, дело даже не в том что код можно восстановить, его в любом случаем можно восстановить, а в том что типы данных этих языков... ну неудобно там побитовые операции делать. Лучше, на мой взгляд, использовать чистый Си.
|
полная чушь... возьмём например RSA... это где Вы там биты рассмотрели то ?
Цитата: | Теперь БД: Ну типа есть куча драйверов для практически всех СУБД для Java. А в Oraqle вообще можно писать хранимые процедуры на Java. |
Оракл пишеться не так уважаемый Oracle - так правильно... Дык он поддерживает и си бимоль и чаво ? А родной язык PL/SQL - вообщето побогаче будет. Хотя смысл писать то, что мона реализовать на SQL оракловом ? Не ну конечно же ради того чтоб было - это наверное круто...но не возбуждает...
с уважением
(круглый) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Ср Авг 09 2006 14:34 Заголовок сообщения: Re: C# или C++, вот в чем вопрос. |
|
|
Цитата: | Цитата: |
1. Многоплатформенность: Ну типа байткод Java на любой платформе работать будет, а Си/Си++ перекомпилить надо, вероятно с изменениями кода, т.к. некотроы типы данных отличаются на некоторых платформах.
|
явно у человека никогда не стояла задачи по оптимизации Явы. увы и ах - это реалии жизни. А посему за время существования этого языка - так основной плюс и НЕ БЫЛ реализован. Пожелания - не бум выдавать за факты ? OK ?
|
Да, есть некотрые проблемы (при работе с файловой системой например), но дело обстоит гораздо лучше чем в Си++
Цитата: |
Цитата: |
2. Строгость ООП: Ну типа в Java все строго. А в Си++: множественное наследование, необязательно обрабатывать исключения, арифметика указателей и еще много чего, что строгости программам не прибавляет.
|
можно конечно же отсебятину пороть, но вернёмся к учебнику Гради Буча (надеюсь серьёзность данного труда в ООА и ООП не вызывает у Вас соменния ?) итак...
стр. 118 (второе издание, перевод с англиского)
"наследование - это такое отношение между классами, когда один класс повторяет структуру и поведение другого класса (одиночное наследование) или других (множественное наследование) классов."
рекомендую учить матчасть. т.е. ООА
Исходя из этого - С++ ближе к ОО чем си шарп или Ява. Аминь..
Так же добавлю... В ООА НЕТ понятий обработки исключений и работы с указателями. Это плюсы или минусы языка - да, возможно. Но это относиться к ОО как жигули к самолёту...
|
Я не сказал что Си++ необъектноориентированный язык, я сказал что он менее строгий чем Java.
Цитата: |
Цитата: |
3. Оптимизация: Напишем мы программку на Си, чтоб она заработала на процессоре I386, мы ее компилим под проц I386, таким образом она не использует всех преимуществ процессора Pentium4, т.е. надо будет сделать версию для Pentium4. Рассмотрим пример Java. Скомпилированный байткод будет работать как на I386, так и на Pentium 4, причем использовать все его расширения.
|
круто, справедливо...Правда есть одно маленьчкое НО ! Фишка в том, что псевдо код действительно НЕ нужно перекомпилять. А вот создать движок явовский под данную платформу - придёться. Вы можете сказать дескать - он уже существует. И удете правы. Но давайте пристальней взглянем на сам движок... Что это ? Это некий транслятор в машинный код некоего АБСТРАКТНОГО языка. Кхм... Надо заметить язык который АБСТРАКТНЫЙ - универсальный. В этом по идее его должен быть плюс. НО! фишка в том, что любой мало-мальский программист знает, что универсальность (как и оптимизация по скорости, как и оптимизация по размеру) - это не волшебство, это решение чётких задач за счёт (!) чего то другого (!) Вот где собака порылась...А теперь напишим ассемблерный код для AVR микроконтроллера (к примеру) который будет выводить ТОЛЬКО целые размером с байт. И сравним этот код с кодом из любой библиотеки более верхнего уровня - далее надеюсь понятно...
|
Я и не спорю что на ассемблере будет быстрее. Что касается необходимости JRE, то для того чтобы программа написанная на Си++ заработала на некоторой платформе, нужен компилятор Си++ для этой платформы, который так же из универсального синтаксиса Си++ делает бинарный код. Так что в Си++ есть все те же проблемы что и у Java
Цитата: | Цитата: | Вернемся к криптографии: Не самая лучшая идея использовать для кодирвоания криптоалгоритмов Java или С#, дело даже не в том что код можно восстановить, его в любом случаем можно восстановить, а в том что типы данных этих языков... ну неудобно там побитовые операции делать. Лучше, на мой взгляд, использовать чистый Си.
|
полная чушь... возьмём например RSA... это где Вы там биты рассмотрели то ?
|
А DES?
Цитата: |
Оракл пишеться не так уважаемый Oracle - так правильно... Дык он поддерживает и си бимоль и чаво ? А родной язык PL/SQL - вообщето побогаче будет. Хотя смысл писать то, что мона реализовать на SQL оракловом ? Не ну конечно же ради того чтоб было - это наверное круто...но не возбуждает...
|
Вот это как раз возбуждает!!! _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Kefir
Зарегистрирован: 16.04.2005 Сообщения: 443 Откуда: Пермь
|
Добавлено: Ср Авг 09 2006 14:52 Заголовок сообщения: |
|
|
Да, кстати про RSA, раз уж Вы заговорили...
Как известно криптостойкость алгоритма RSA основана на сложности файторизации целых чисел. Возьмем простой алгоритм Диксона, одним из этапов данного алгоритма является решение СЛАУ над полем классов вычетов по 2. Нет его конечно можно реализовать с использованием целочисленной арифметики, но используя побитовые операции получится гораздо быстрее. Кстати задачи решения СЛАУ возникают и в большинстве других алгоритмов факторизации включая квадратичное решето и решето числового поляю. _________________ Самоловских Виталий aka Kefir |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|