|
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 5
|
|
C# глазами Java21.10.2010, 17:49. Показов 1664. Ответов 9
Метки нет (Все метки)
Оригинал с красивыми заголовками и работающими ссылками можно посмотреть на http://telamon.ru/articles/csharpfromjava.html
======================================== ============================= Есть два подхода к сравнению языков программирования: религиозная война и «a нам всё равно». Я постараюсь втиснутся между ними и начну с общего. Ключевой особенностью и Java, и C# является автоматическое управление памятью. Конечно, оба языка из-за этого совершенно не подходят для написания ядра операционной системы, но зато существенно упрощают разработку прикладных программ, потому что: остаётся меньше возможностей для memory leak; не надо писать код для освобождения памяти; можно написать f(g(x)) и не думать об освобождении памяти от результата g(x). Итак, мы имеем две массовых платформы для разработки программного обеспечения, на каждой из которых работают миллионы программистов; за каждой стоят мировые софтверные гиганты, но ни одна не имеет революционных преимуществ. Влияние Microsoft Исторически Java появилась раньше .NET и потихоньку захватывала рынок не только серверного ПО, но и GUI-приложений для корпоративных клиентов, потому что C++ сложноват для рисования формочек, Visual Basic не похож на язык для крутых девелоперов, а Borland инвестировал в Java больше, чем в Delphi. Но чем больше приложений на Java, тем меньше потребность в Windows, поэтому Microsoft решил не поддерживать Java, а создать .NET, чтобы стимулировать разработку программ для Windows. Кончено, какая-то кроссплатформенность у .NET есть, но, с точки зрения Windows, .NET стремится стать частью операционной системы, как Internet Explorer. Карьера .NET-разработчика предполагает тесные партнёрские отношения с Microsoft, включая использование среды разработки Visual Studio, базы данных MS SQL и системы контроля версий Visual SourceSafe. Нужно отдать должное маркетингу Microsoft, многие компании предпочитают думать о программном обеспечении не выходя за рамки видения Microsoft. Иногда из-за этого приходится откладывать в сторону любимую Java и брать в руки C#. Хорошая новость в том, что накопленный в Java опыт помогает и в .NET, а развитие .NET стимулирует прогресс Java. CVS vs. VSS Большинство Java-разработчиков привыкли к CVS, после этого переход на Visual SourceSafe в сочетании с реализацией интеграции с ним в Visual Studio и концепцией solutions-projects воспринимается весьма болезненно. Справедливости ради стоит отметить, что переход на CVS в большом проекте теоретически возможен, но вызовет крайне негативную реакцию людей, привыкших к VSS. В этом месте можно было бы немного помахать кулаками на тему «почему CVS лучше VSS», но я этого делать не буду, потому что CVS тоже не идеален, и есть такой проект как Subversion, который открыто позиционируется в качестве замены CVS. Microsoft тоже не считает VSS своим флагманским продуктом и готовит ему замену в виде Visual Studio 2005 Team System. Влияние VB.NET Программы на многих языках могут быть скомпилированы в байт-код для JVM, но практически абсолютно всё программное обеспечение для платформы Java написано именно на Java. Для .NET примерно с равной вероятностью проект может разрабатываться как на C#, так и на VB.NET, причём очень часто используются сразу оба языка. Понятно, что C# и VB.NET практически не имеют между собой отличий, кроме синтаксиса, но вносят раздробленность в сообщество разработчиков. Даже если использовать только на C#, то в результатах поиска по документации всегда будут путаться материалы, относящиеся к VB.NET. В десктоп-версии MSDN можно настроить фильтр по языку программирования, но всё равно, на мой вкус, документация по Java значительно удобней и понятней. Разработка GUI Разработка GUI на C# являет типичным примером RAD, как Delphi. На Java GU e for Java Developers http://msdn.microsoft.com/vstudio/java/gettingstarted/csharpforjava/ 2. J2EE fundamentals for .NET developers http://www-106.ibm.com/developerworks/java/library/j-roadmap1/
0
|
|
| 21.10.2010, 17:49 | |
|
Ответы с готовыми решениями:
9
Сайт глазами робота robots.tx глазами Я и хостер PHP глазами хакера |
|
3 / 3 / 7
Регистрация: 19.10.2009
Сообщений: 225
|
|
| 25.10.2010, 12:17 | |
|
По-моему, хорошо написано. Я уже три года на Java программирую и около года - на C#. С#, на мой взгляд, отличный язык, но я не стал бы утверждать, что он круче Java. Большинство его наворотов относятся к удобству программирования (индексирование, свойства и т.п.), некоторые совершенно, на мой взгляд, излишни (virtual, override и т.п.), многие при неправильном употреблении могут затруднить понимание кода (написание собственных операций приведения, перегрузка методов и т.п.). На мой взгляд люди, утверждающие, что C# лучше Java не правы. Просто он предоставляет больше свободы (повышая этим степень энтропии, то бишь беспорядка).
А вот что касается платформы - Java в этом смысле намного превосходит .NET по возможностям. Кроме того, многоязыковая поддержка в .NET ни к чему, кроме путаницы, не приводит - в этом я с автором статьи абсолютно согласен. Лично я убежден, что .NET Java не соперник, хотя многие со мной будут несогласны. Автор статьи абсолютно точно подметил, что .NET задумывался как часть Windows. Именно в таком ключе ее и надо воспринимать.
0
|
|
|
0 / 0 / 0
Регистрация: 11.02.2010
Сообщений: 111
|
|
| 25.10.2010, 12:44 | |
|
Для людей, переходящих с билдеров и вижуалов на дотнет, .NET канешь покажется супер бест. В джаве ведь тоже есть указатели на методы, поюзать их каждый может, но надо ли это? Спорный вопрос.....
Кстати, Coresh DRAW! , а что тебя заставило перейти на дотнет? - твоя компания направила тебя туда либо ты самостоятельно изучил и работу поменял?
0
|
|
|
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 12
|
|
| 28.10.2010, 13:36 | |
|
По теме:
http://xpoint.ru/forums/thread/26825.xhtml#261261
0
|
|
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
| 28.10.2010, 13:57 | |
|
2Даниил Алиевский:
По терминологии... Не отвечая на поставленный там вопрос. На всякий случай, если вдруг не знаешь, то функции, что ты описал -- currentTimeMillis() и System.identityHashCode() -- это т.н. недетерминированные функции (non-deterministic). Из названия становится понятно, почему у них такое поведение. К константности слова в памяти отношения не имеет.
0
|
|
|
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 12
|
|
| 28.10.2010, 14:06 | |
|
Собственно, можно определение понятия 'недетерминированный'? И пояснение, почему identityHashCode - недетерминированная функция?
Хотя вроде бы это оффтопик...
0
|
|
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
| 28.10.2010, 14:50 | |
|
Пожалуй, да, identityHashCode() -- детерминированная, а вот new -- нет. Определения не дам, боюсь быть неточным. Думаю, интуитивно определение этого понятия ясно.
0
|
|
|
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 12
|
|
| 28.10.2010, 14:54 | |
|
Не очень-то ясно. Функция { return new String('a'); } детерминированная или нет? Что интересно, когда я пытался аксиоматически определить понятие неизменяемости, мне потребовалось одновременно ввести понятие детерминированности метода. Но это все офф...
0
|
|
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
| 28.10.2010, 15:05 | |
|
Строго говоря, нет, недетерминированная. Хотя состояние возвращаемого объекта детеминировано и неизменяемо. У меня вопрос: в связи с чем возникла потребность 'разложить по полочкам' такие вещи? Думаю, придется вводить понятие презентации сущности. Напрмер, упомянутый на xpoint'е объект File -- representation файла. Эта representation неизменяема, хотя сама представляемая сущность изменяема. То, что возвращает new, тоже является презентацией. Она может быть неизменяемой, когда сам объект нет.
0
|
|
|
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 12
|
|
| 30.10.2010, 20:03 | |
|
Не очень хочется 'распыляться' по двум форумам. Давайте в xpoint.ru продолжим :-)
0
|
|
| 30.10.2010, 20:03 | |
|
Помогаю со студенческими работами здесь
10
Robots.txt глазами Яндекса Бэк линки глазами Гугла.... Уникальный дизайн глазами Яндекса index.php - глазами поисковика!!! ? Посмотрим на Yandex глазами пользователя Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|