Вплив Microsoft, C / C + +, Програмування, статті

Історично 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 GUI, як правило, робиться за допомогою Swing. Хоча Swing вельми об’ємний і складний, хороша продуманість і розширюваність архітектури в поєднанні з доступними вихідними кодами дозволяє розробляти GUI будь-якої складності.


Розробка веб-додатків


Я з’їв собаку на розробці веб-додатків на Java, але ніколи не використовував ASP.NET, тим не менш, я цілком допускаю, що ASP.NET має певні і досить суттєві переваги при створенні невеликих сайтів. Однак, ці переваги виділяють веб-додатки в окремий сегмент, дуже багато . NET-розробники спеціалізуються або тільки на GUI, або тільки на веб. На Java веб-додатки можна створювати без використання будь-яких специфічних технологій начебто JSP, JSTL або Struts: extends HttpServlet– І вперед!


Звичайно, ринок розробки сайтів Java без бою не віддасть, можна очікувати новин від JavaServer
Faces
або від Fabrique. У кожному разі, робити веб-сторінки– Це не самий складний клас завдань для сучасних мов програмування.


Is everything object?


В Java дуже популярний лозунг “Everything is object”, в C # це не так. Перше, що кидається в очі – наявність структур в C #. Очевидно, що є мотиви використовувати структури для підвищення продуктивності, але мені здається, що сучасні комп’ютери досить продуктивні, щоб не додавати ще одну сутність в мову.


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


Якщо вже зайшла мова про delegate, То потрібно згадати і проevent– Вони дійсно скорочують розмір коду при розробці GUI, хоча і ціною відступу від ідей ООП.


Певною мірою C # менш лаконічний, Не вдаючись в подробиці, обмежуся згадкою ключових слів virtual,
override, ref, out іparam, не мають аналогів в Java.


Вплив платформи на самосвідомість програмістів


Безумовно, найбільше на якість програмного забезпечення впливає якість самих розробників, а не мова програмування. Тим не менш, мій досвід говорить про те, що в переважній більшості проектів на Java для build management використовується Ant, а в. NET дуже часто білди робляться вбудованими засобами Visual Studio, хоча аналогічні інструменти існують і для. NET. Крім цього, в C # немає чітких правил найменування класів і їх розміщення на диску, Що часто вносить додаткову плутанину (звичайно, кваліфіковані програмісти успішно борються з цією проблемою).


У С # немає checked exceptions, є навіть пояснення чому. Таке рішення має свої резони, але якщо компілятор не контролює обробку checked exception, то потрібно більше розповідати про обробку помилок через інші комунікаційні канали, інакше з’являться програмісти, які взагалі не знатимуть, що таке exception.


Тигри рвуться вперед


Є області, в яких Java домінує безумовно, наприклад, ігри для мобільних телефонів або технологія JavaCard. Однак, боротьба між C # і Java за частку на ринку буде йти ще довго, обидві платформи будуть вдосконалюватися, наприклад, в Java 5 і. NET 2.0 з’явиться підтримка generics.


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


Подяки


Величезне спасибі Дмитру Жемерова, Завдяки якому вам не довелося читати всю ту нісенітницю, яку я написав спочатку, компанії DataArt, яка дала мені можливість займатися вивченням C # в робочий час, колегам з компанії DataArt, які надавали мені інтелектуальну та моральну підтримку, а також компанії JetBrains, Яка дуже вчасно почала робити ReSharper, який дозволяє отримувати на C # багато видів задоволення, звичні користувачам IntelliJ IDEA. Особлива подяка Олексію Пчелінцева за турботу про буквуЕ.


Посилання



  1. The C# Programming Language for Java Developers

    • msdn.microsoft.com/vstudio/java/gettingstarted/csharpforjava/

  2. J2EE fundamentals for .NET developers

    • www-106.ibm.com/developerworks/java/library/j-roadmap1/

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*