Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Java -> C#, миграция


Автор: KasMP 24.4.2010, 17:27
Здравствуйте, мои хорошие товарищи-программисты smile smile !

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

А кто знает что-то более конкретное  smile  smile ?
  • Много ли отличий на так называемом базовом уровне структуры программы и идеологии? (чувствую, что плохо вопрос формулирую... но лучше не получается... речь не про синтаксис, а про содержание и смысловое наполнение всего)
  • Что читать желающим мигрировать? (именно не с целью изучения а С#, а быстрого выделения различий)

Автор: NightmareZ 24.4.2010, 18:13
Цитата(KasMP @  24.4.2010,  17:27 Найти цитируемый пост)
Много ли отличий на так называемом базовом уровне структуры программы и идеологии? (чувствую, что плохо вопрос формулирую... но лучше не получается... речь не про синтаксис, а про содержание и смысловое наполнение всего)


Достаточно.

Цитата(KasMP @  24.4.2010,  17:27 Найти цитируемый пост)
Что читать желающим мигрировать? (именно не с целью изучения а С#, а быстрого выделения различий)


http://books.iqbuy.ru/categories_offer/9785887822198/platforma-net-dlya-java-programmistov-biblioteka-programmista-pol-gibbonz

Автор: KasMP 25.4.2010, 18:36
Цитата(NightmareZ @  24.4.2010,  18:13 Найти цитируемый пост)
http://books.iqbuy.ru/categories_offer/978...sta-pol-gibbonz 

Я так понимаю, ты сам читал эту книгу smile . Какие у нее сильные и слабые стороны smile ?

Автор: Vasay 25.4.2010, 19:17
Цитата

Какие у нее .... слабые стороны 


Цитата

Издательство: Питер (2003)



Автор: KasMP 25.4.2010, 20:47
Vasay, не первый раз вижу тебя на форуме - ты заинтересован во всех этих делах и наверняка успел сформировать какое-то свое мнение smile . Я внимательно (всеми ушами smile ) и с замиранием сердца его слушаю smile smile.

Автор: diadiavova 25.4.2010, 21:32
Цитата(KasMP @  24.4.2010,  18:27 Найти цитируемый пост)
Что читать желающим мигрировать? (именно не с целью изучения а С#, а быстрого выделения различий)

Можно начать отсюда
http://msdn.microsoft.com/ru-ru/library/ms228358(v=VS.90).aspx

Автор: Vasay 25.4.2010, 22:45
KasMP, 

Не совсем понятно, что Вы хотите сравнить - языки программирования Java и C#

Или, же платформы .NET и Java. Если платформы, то Вас больше интересует разработка десктоп приложений или WEB? 

Автор: LSD 26.4.2010, 17:18
Цитата(KasMP @  24.4.2010,  18:27 Найти цитируемый пост)
Все мы слышали, что C# весьма похож на Java и что человек, знающий Java и мыслящий на уровне идеологий, техник, абстракций, структур и т.д., довольно легко может перейти к C#.

Может во времена .NET 1.0-2.0 это было и так, но сейчас ситуация другая. Конечно Java программисту легче перейти на C#, чем программисту Fortran, но избавляться от Java привычек придется долго.

Автор: NightmareZ 26.4.2010, 20:00
Цитата(KasMP @  25.4.2010,  18:36 Найти цитируемый пост)
Какие у нее сильные и слабые стороны?


+ интересная

- устаревшая

Автор: neutrino 28.4.2010, 12:03
Советую для начала немного пописAть на шарпе. 
Потом еще немного пописAть
И еще немного.

После этого можно взять какую-нибудь хорошую книгу (Рихтера, например) и изучать тонкости.

Но прежде всего, надо начать писAть.

Автор: KasMP 10.5.2010, 17:07
Цитата(diadiavova @  25.4.2010,  21:32 Найти цитируемый пост)
Можно начать отсюда
http://msdn.microsoft.com/ru-ru/library/ms...8(v=VS.90).aspx 

Спасибо большое! Честно говоря, мне сейчас для старта больше и не надо smile smile  ... Надо только немного работы с консолью и большими файлами, а дальше алгоритмически искусный анализ большого содержимого этих файлов smile.

Цитата(Vasay @  25.4.2010,  22:45 Найти цитируемый пост)
KasMP, 

Не совсем понятно, что Вы хотите сравнить - языки программирования Java и C#

Или, же платформы .NET и Java. Если платформы, то Вас больше интересует разработка десктоп приложений или WEB?  

smile Какой внимательный вдумчивый подход smile .
Vasay, web-приложения меня (сейчас) вообще не интересуют, платформы мне тоже без большой разницы. Я хочу сравнивать именно языки.

Цитата(LSD @  26.4.2010,  17:18 Найти цитируемый пост)
Может во времена .NET 1.0-2.0 это было и так, но сейчас ситуация другая. Конечно Java программисту легче перейти на C#, чем программисту Fortran, но избавляться от Java привычек придется долго. 

Java-привычки  smile  ? И к чему же такому "плохому" приучает Java smile ?

neutrino,  smile . Спасибо smile .

P.S.. Чувствую я, отличий много. А откуда тогда растут ноги у фраз про то, что C# и Java - чуть ли не родные братья и т.п.? Чем они близки?

Автор: KasMP 10.5.2010, 17:25
Все же уточню, что если сейчас мне не надо много, то в перспективе представление о разного рода идеологических отличиях мне очень важно.

Еще хорошо бы знать, что стандартные библиотеки .NET Framework не содержат каких-нибудь специальных удобных функций (набора функций) для разбора и анализа больших файлов в формате xml (если я буду это знать, то я спокойно сосредоточусь на алгоритме и его изложении самыми примитивными конструкциями языка).
Развейте мои сомнения, пожалуйста smile  smile .

Автор: KelTron 11.5.2010, 06:03
Цитата(KasMP @  10.5.2010,  17:25 Найти цитируемый пост)
 в формате xml 

Смотри на LINQ to XML

Автор: diadiavova 11.5.2010, 10:34
Цитата(KasMP @  10.5.2010,  18:07 Найти цитируемый пост)
Чувствую я, отличий много. А откуда тогда растут ноги у фраз про то, что C# и Java

Учитывая что это разные языки/технологии, понятно, что отличия есть и их много, но они действительно очень похожи, другой вопрос, что, как уже было сказано, первые версии шарпа сильнее смахивали на яву, технологии на месте не стоят: и шарп изменился и ява(как я полагаю) тоже.
Цитата(KasMP @  10.5.2010,  18:25 Найти цитируемый пост)
Развейте мои сомнения, пожалуйста

smile
Если файл настолько большой, что его нельзя сразу в память загрузить, то тут поможет XmlReader. Не так удобно как дом или линк ту хмл, но и самому (спокойно) писать не придётся smile 

Автор: LSD 11.5.2010, 16:26
Цитата(KasMP @  10.5.2010,  18:07 Найти цитируемый пост)
Java-привычки  smile  ? И к чему же такому "плохому" приучает Java smile ?

Ну во первых именовать методы и переменные с маленькой буквы, в C# методы с большой очень раздражают по началу smile
Ну и плюс пытаешься делать все как в Java. Та же модель обработки событий в C# совсем другая. GUI работает по другому. Да и весь framework сильно отличается. Некоторые вещи которые в Java принято делать с помощью интерфейсов, в C# делаются делегатами. Ну вообщем много подобных мелочей.

Автор: Vasay 12.5.2010, 00:17
KasMP, 

Цитата

Я хочу сравнивать именно языки.

http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp

Автор: KasMP 12.5.2010, 01:50
Цитата(KelTron @  11.5.2010,  06:03 Найти цитируемый пост)
Смотри на LINQ to XML

Цитата(diadiavova @  11.5.2010,  10:34 Найти цитируемый пост)
Если файл настолько большой, что его нельзя сразу в память загрузить, то тут поможет XmlReader. Не так удобно как дом или линк ту хмл, но и самому (спокойно) писать не придётся

Ура! Теперь я знаю, куда смотреть smile .
Если я правильно понимаю, то LINQ to XML порожден LINQ, а LINQ - набор расширений для .NET Framework 3.5 (т.е. это далеко за пределами стандартной библиотеки, за которые выходить нельзя). А вот XmlReader весьма интересная штучка smile smile .

Цитата(diadiavova @  11.5.2010,  10:34 Найти цитируемый пост)
Учитывая что это разные языки/технологии, понятно, что отличия есть и их много, но они действительно очень похожи, другой вопрос, что, как уже было сказано, первые версии шарпа сильнее смахивали на яву, технологии на месте не стоят: и шарп изменился и ява(как я полагаю) тоже.

Да, скорее всего... Все живет, все меняется smile .

Цитата(LSD @  11.5.2010,  16:26 Найти цитируемый пост)
Ну во первых именовать методы и переменные с маленькой буквы, в C# методы с большой очень раздражают по началу

О! Вот уж что-что, а привычки именовать что-то по каким-то правилам у меня выживаются с трудом...
Цитата(LSD @  11.5.2010,  16:26 Найти цитируемый пост)
Ну и плюс пытаешься делать все как в Java. Та же модель обработки событий в C# совсем другая. GUI работает по другому. Да и весь framework сильно отличается. Некоторые вещи которые в Java принято делать с помощью интерфейсов, в C# делаются делегатами. Ну вообщем много подобных мелочей. 

Да ладно, все преодолимо smile . По крайней мере у меня такие вещи довольно легко и безболезненно впитываются в сознание и испаряются обратно smile  smile .

Vasay, спасибо.
Обращает на себя внимание то, что и в этой статье, и в msdn, почти ничего не пишут о потоках, работе с файлами и т.п.. Складывается впечатление, что базовое устройство практически идентичное, а вот наборы разного рода специальных вещей, адаптированных к чему-нибудь, резко отличаются. 


P.S.. А еще на винграде есть хорошая традиция направлять на истинный путь тех, кто задает вопросы, ответы на которые лежат на поверхности msdn, wikipedia, google... Честно говоря, я сильно удивлена, что вы в мягкой (или не очень) форме не отправили меня во все эти места. Разбалуете  smile ...

Автор: diadiavova 12.5.2010, 02:59
Цитата(KasMP @  12.5.2010,  02:50 Найти цитируемый пост)
т.е. это далеко за пределами стандартной библиотеки, за которые выходить нельзя

В каком смысле? Что есть "стандартная библиотэка"? Есть разные версии фреймворка, если надо ограничиться версиями 1 или 2, тогда да, вопрос только в том. надо ли это на самом деле.

Автор: KelTron 12.5.2010, 05:24
Цитата(diadiavova @  12.5.2010,  02:59 Найти цитируемый пост)
если надо ограничиться версиями 1 или 2

LINQ можно спокойно использовать даже ограничившись 2 версией, просто пару лишних dll - ок вместе с программой надо будет таскать.

Автор: KasMP 12.5.2010, 07:09
Цитата(diadiavova @  12.5.2010,  02:59 Найти цитируемый пост)
В каком смысле? Что есть "стандартная библиотэка"?

Упс... Выражение "стандартная библиотека .NET Framework" не порождение моего разума (точнее, порождение, но не моего smile ; так дословно сказали люди, которых я считала умными и знающими). Оказывается, http://www.google.ru/search?hl=ru&source=hp&q=стандартная+библиотека+.NET+Framework+&btnG=Поиск+в+Google smile .
Цитата(diadiavova @  12.5.2010,  02:59 Найти цитируемый пост)
вопрос только в том. надо ли это на самом деле. 

Если сказано не выходить за пределы, то не надо выходить за пределы ;) .
Цитата(KelTron @  12.5.2010,  05:24 Найти цитируемый пост)
LINQ можно спокойно использовать даже ограничившись 2 версией, просто пару лишних dll - ок вместе с программой надо будет таскать.

Да дело не в том, что мы не сможем унести файлы, а в изначальной формулировке задачи.

Ладно, весь этот оффтоп будет мало интересен тем, кто будет читать эту тему с целью мигрировать smile . Так что я закругляюсь smile .

Автор: diadiavova 12.5.2010, 11:03
Цитата(KasMP @  12.5.2010,  08:09 Найти цитируемый пост)
Оказывается, выражение действительно не существует

Вопрос не в том, существует оно или нет, а в том, что под ним понимается. Библиотеки, поддерживающие линк, являются частью фреймворка, но только начиная с версии 3.5, так что счтать их сандартными или нет - тебе решать smile 
Цитата(KasMP @  12.5.2010,  08:09 Найти цитируемый пост)
Если сказано не выходить за пределы, то не надо выходить за пределы

Опять таки пределы чего? smile 

Автор: KasMP 13.5.2010, 11:31
Цитата(diadiavova @  12.5.2010,  11:03 Найти цитируемый пост)
Вопрос не в том, существует оно или нет, а в том, что под ним понимается.

Да понятно, что главное - суть, а не то, как ее назвать. Расшифровывать понятие отказались, но уточнили, что LINQ to XML и XmlReader в него входят.
И все-таки неправильное использование терминов - явно не положительный показатель профессионализма...
Цитата(diadiavova @  12.5.2010,  11:03 Найти цитируемый пост)
Библиотеки, поддерживающие линк, являются частью фреймворка, но только начиная с версии 3.5, так что счтать их сандартными или нет - тебе решать smile 

Главное, что LINQ to XML и XmlReader доступны.
Надо сказать, все твои ссылки очень полезны, в меру подробны, в меру кратки. Дай еще что-нибудь по чтению файлов (текстовых, очень-очень больших), пожалуйста.

Автор: diadiavova 13.5.2010, 11:41
Цитата(KasMP @  13.5.2010,  12:31 Найти цитируемый пост)
Дай еще что-нибудь по чтению файлов (текстовых, очень-очень больших), пожалуйста. 

В основном всё тут.
http://msdn.microsoft.com/ru-ru/library/system.io(VS.90).aspx
В первую очередь видимо следует обратить внимание на стримридер, а вообще там много чего есть на разные случаи.

Автор: sergioK 8.6.2010, 11:33
Цитата(LSD @ 11.5.2010,  16:26)
Цитата(KasMP @  10.5.2010,  18:07 Найти цитируемый пост)
Java-привычки  smile  ? И к чему же такому "плохому" приучает Java smile ?

Ну во первых именовать методы и переменные с маленькой буквы, в C# методы с большой очень раздражают по началу smile


а имя файла не такое как имя класса не раздражает  smile 

Автор: PashaPash 9.6.2010, 11:17
Цитата(sergioK @  8.6.2010,  11:33 Найти цитируемый пост)

а имя файла не такое как имя класса не раздражает  smile 

Это возможность, а не общепринятное правило. В RL есть возможность выпрыгнуть из окна. Раздражает?

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

Автор: sergioK 9.6.2010, 12:15
Цитата(PashaPash @ 9.6.2010,  11:17)
Цитата(sergioK @  8.6.2010,  11:33 Найти цитируемый пост)

а имя файла не такое как имя класса не раздражает  smile 

Это возможность, а не общепринятное правило. В RL есть возможность выпрыгнуть из окна. Раздражает?

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

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

это с позиции SE -  с точки зрения кодера - это да флуд.

Автор: PashaPash 9.6.2010, 13:56
Цитата(sergioK @  9.6.2010,  12:15 Найти цитируемый пост)

нет не флуд, если взять "хорошие привычки явы" и пользовать их в C# то качество кода может  возрасти .

Возрасти по сравнению с чем? С продуктом кодера на C#, никогда не читавшего гайдлайны? В C# тоже принято правило один файл - один класс. Студия даже классы переименовывает при переименовании файла. Какие еще "хорошие привычки" можно перенести? smile

Автор: sergioK 9.6.2010, 19:28
Цитата(PashaPash @ 9.6.2010,  13:56)
Цитата(sergioK @  9.6.2010,  12:15 Найти цитируемый пост)

нет не флуд, если взять "хорошие привычки явы" и пользовать их в C# то качество кода может  возрасти .

Возрасти по сравнению с чем? С продуктом кодера на C#, никогда не читавшего гайдлайны? В C# тоже принято правило один файл - один класс. Студия даже классы переименовывает при переименовании файла. Какие еще "хорошие привычки" можно перенести? smile

первое что приходит в голову - это try/catch
плюс запись в лог у жавника это в крови  smile 
еще уметь настаивать  руками  

на яве приучаешься грамотно писать . мелкософт позволяет много вольностей что не всегда хорошо
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)