| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Если переходить с Delphi то на Java или же на C#? |
| Автор: prgmdelphi 1.7.2014, 14:45 |
| Добрый день. Давно пишу на Delphi в основном desktop+БД, также вел с нуля разработку достаточно крупного проекта от проектирования до внедрения на предприятия клиентов. В начале моего пути развития как программиста (а это начало 2000чных) были тогда сомнения что же выбрать С++ или Delphi?! Выбрал последнее и ни дня не жалел. Но мир меняется, меняются и технологии в разработке ПО, WEB вытесняет Desktop и много чего еще другого происходит. В последнее время встал у меня вопрос, чтобы подстраховать свое будущее решил изучить одну из экосистем: JAVA или же C#. Но вот что выбрать, с учетом все же разработок корпоративных приложений, берут сомнения? Что можете посоветовать? |
| Автор: Ilya81 1.7.2014, 15:53 |
| В backend сейчас доминирует Java, перспективы C# здесь реальны только под Microsoft Azure, который пока что в стадии развития. Для desktop-приложений, ориентированных на Windows, C# популярнее. Что касается Web, ASP (C#) и JSP (Java) здесь конкурируют, кто популярнее, сказать сложно. Для мобильных устройств покуда доминирует Android, Java намного популярнее, C# может прижиться лишь в случае успехов Xamarin или если Windows Phone вернёт какую-то долю. |
| Автор: Stolzen 1.7.2014, 17:15 | ||
Не сложно, достаточно посмотреть кол-во открытых вакансий * hh.ru/search/vacancy?text=java+web - Найдено 1 306 вакансий * hh.ru/search/vacancy?text=c%23+web - Найдено 680 вакансий З.Ы. hh умный и java script на java не выдает |
| Автор: prgmdelphi 1.7.2014, 20:06 |
| Ilya81, спасибо за ответ. Не могли на примерах рассказать - под какие задачи, как правило, в РФ выбирают C#, а под какие Java. Просто хочу понять практические секторы применения, а то до сих путаюсь. Вот думал, что те же клиент-банки пишут в Java, а нет в соседнем топики говорят мол на C# т.к. в банке стоят Windows Server-а, то велика вероятность того, что уже установлен .Net Framework, развёрнут IIS и крутится SQL Server |
| Автор: Ilya81 2.7.2014, 06:53 | ||
В последние годы это несколько менее распространённое решение, чаще выбирают Solaris (вариант - один из дистрибутивов Linux) + OracleDB + Java/JSP + WebLogic. Если ж по какой-то причине Windows, то, естественный выбор IIS и SqlServer, а расширения базы данных для SqlServer тоже пишутся на C#. |
| Автор: prgmdelphi 2.7.2014, 14:02 |
| А правильно ли это утверждение - если мы написали сайт на asp.net mvc, и разместили к примеру его на хостинге nic.ru, то nic.ru должен крутить сервер IIS на компе с Windows, чтобы этот asp нормально отработал? |
| Автор: Ilya81 2.7.2014, 14:38 |
| Фактически да. IIS существует только для Windows. Теоретически ASP .Net возможно развернуть и под другими ОСями на основе Apache+XSP+Mono, я даже как-то подобное делал, но на практике это почти не применяется. |
| Автор: prgmdelphi 2.7.2014, 21:09 |
| Посмотрел ролики по ASP.NET Web Forms - идея построения web-морды, основанная на компонентах, чем-то похоже на Delphi. Но народ пишет, что ASP.NET Web Forms отходит и на смену пришел ASP.NET MVC, а разве с помощью ASP.NET Web Forms нельзя организовать логику MVC. Условно говоря 2 нижних слоя (бизнес логику/контроллер и ORM) пишем как сервер на том же C#, а затем делаем связку верхнего слоя (интерфейса) с ASP.NET Web Forms, в чем плюс ASP.NET MVC? P.S. Кстати установил MS Visual Studio 2013 и в меню Project->Web Site не нашел ASP.NET MVC? |
| Автор: Ilya81 3.7.2014, 07:37 | ||
| Web Forms был идеей совместимости между различными browser'ами в те времена, когда не было jQuery и иже с ним. Но по быстродействию и объёму передаваемых данных он крайне неоптимален, поэтому ASP .Net перешёл на более явный способ обеспечения совместимости между различными browser'ами. Добавить code behind можно и MVC, но нужно ли - что там писать, что не приведёт к запутыванию структуры проекта и снижению его maintenability.
![]() |
| Автор: diadiavova 3.7.2014, 10:36 | ||||||
Ну это не совсем так. Вот если винформы отходят, то их не обновляют уже аж с 2005-го года, а вебформы живут и развиваются. Просто у вебформ и мвц немного разные задачи и то, что под аспнет существует и то и другое - скорее преимущество аспнет.
Наверно, если очень сильно захотеть, то видимо можно, хотя мне, честно говоря, сложно представить себе как это могло бы выглядеть. В вебформах и в мвц по-разному обрабатываются запросы к серверу. В мвц при обработке запроса сначала определяется класс контроллера, который должен его обрабатывать, метод действия и вычисляются параметры. Дальше создается экземпляр контроллера, вызывается соответствующий метод и возвращенный им объект определяет какое представление надо создать, создается экземпляр представления, ему передаются данные, полученные из метода действия и уже на основе этих данных формируется результат, который и будет отправлен в ответ на запрос. В вебформах же в ответ на запрос создается экземпляр формы и ему передается запрос, который там же и обрабатывается. При таком раскладе разделить логику и представление как минимум затруднительно, поскольку представление вместо обработанных данных получает данные запроса, которые само же и должно обработать. Я уже не говорю о том, что сами веб-контролы несут в себе значительную часть логики, которая должна быть реализована в контроллере. Но если есть идеи как реализовать то, о чем ты пишешь - было бы интересно ознакомитсья
Там в последней версии просто выбираешь аспнет, и на следующем экране уже выбор конкретного типа проекта(если не ошибаюсь). |
| Автор: Bulat 3.7.2014, 12:03 | ||||||
Все зависит лишь от количества специалистов, если проект/бизнес создается долгие годы: 1. Его нужно создать 2. Поддерживать 3. Менять/улучшать/дорабатывать Раб сила - эжто самый первый и главный параметр. При этом уровень и квалификация этой самой раб. силы уже не всегда имеет значение!
Покажите мне этих умных людей!!! Я с удовольствием пойду к ним работать и даже не попрошу свой бешеный гонорар в сорок баксов!!! За так... за бутерброд с чаем!!!
Еще пару тем заведешь, тебе еще и другие языки распиарят |
| Автор: Ilya81 3.7.2014, 12:12 | ||
Это вопрос не ко мне, я пока что специализируюсь на C#, так сложилось, ну а покуда от C# совсем массово не откажутся, смысла переквалифицироваться не вижу. Но JSP и WebLogic вряд ли менее популярны, чем ASP. А вот ASP под Linux на Apache - в России я вообще таких решений не встречал. |
| Автор: Bulat 3.7.2014, 12:58 | ||
А зачем ASP под Linux, когда уже есть PHP/Perl/Python/C ?? |
| Автор: Ilya81 3.7.2014, 13:38 |
Например, чтоб можно было Web-узел, уже написанный на ASP развернуть на сервере, на котором уже установлен Linux. Для мелких Web-узлов, думаю, PHP вне конкуренции (разве что Ruby может быть в Web когда-нибудь потеснит всех остальных), а вот крупные порталы по мне на PHP только в сочетании с C++. А предпочтительнее ASP или JSP, чтоб не нужно было там со всякими php.h заморачиваться и можно было б отлаживать всё напрямую. Это если применительно к Web, где в нём C (если не считать вроде как уже вымершего CGI) или Perl - не знаю. |
| Автор: Bulat 3.7.2014, 14:04 | ||
Это когда это CGI умер?? А чо недавеча я с ним бодалсо в одном коммерческом прожэкте??
Wine... Хотя в совокупе это получицца такие танцы с бубном, что проща переписать под тот жа CGI |
| Автор: Ilya81 3.7.2014, 14:28 | ||||
Последний действующий узел на CGI я видел у Российской Национальной библиотеки 5 лет назад. Хотя, на исключаю, что где-то в .htaccess вместо cgi ставят что-то другое.
Если через Wine, то возможно, да и быстродействие оставит, мягко говоря, желать лучшего. А вот Mono уже несколько лет назад функционировал вполне хорошо. На глаз быстродействие Web, однако, оценить сложно, но для сравнения Gtk-приложения на Mono показывают вполне хорошее быстродействие, XWT - что-то наравне с Java. Впрочем, если говорить о приложениях для Linux (а не про Web-узлы), то тут C и C++ куда больше подойдут. |
| Автор: Bulat 3.7.2014, 14:32 | ||
и не только .htaccess.... mod_rewrite и "красивые" ссылки плавно обрабатываются каким-нить cgi-скриптом, но внешне и комар носа не подточит |
| Автор: Ilya81 3.7.2014, 14:54 | ||
Поискал, действительно, интересно, оказывается и CGI используется в AJAX'е. А я думал, что там PHP или Ruby, ну, естественно, помимо JSP и привычного мне AjaxHelper'а. |
| Автор: prgmdelphi 4.7.2014, 08:37 |
| Возьмем ОС Windows. 1. C# позволяет используя ASP.NET Web Forms (пусть даже если он и вымирает) создавать быстро интерфейс Web-страниц используя механизм компонентов. Возможно ли в Java с использованием ее фреймворков сделать такое? Если нет, то что в этом случае зачастую что будет использовано Java-командой: HTML5, jQuery или что? 2. C# позволяет используя ASP.NET MVC создавать удобную связку web-страниц с серверной частью. Возможно ли в Java с использованием ее фреймворков сделать такое? Если нет, то что в этом случае зачастую что будет использовано Java-командой? |
| Автор: Stolzen 4.7.2014, 15:56 | ||||
Да, на джаве оч много подобных фреймворков. Можно гуглить "component-based web frameworks java" и найти много всего. Из популярного (из того, что сам использовал) - ZK и GWT, под оба есть плагин в эклипсе с дизайнерами и прочим. Еще часто компоненты используют чисто на стороне клиента и используют какой-нибудь ExtJS (http://stackoverflow.com/a/2934270/861423 список популярных). Добавлено через 1 минуту и 2 секунды
Да, с помощью GWT, ZK, JSF и прочего. Добавлено через 2 минуты и 12 секунд ЗЫ. Только в случае с джавой условие "Возьмем ОС Windows" отпадает как ненужное и даже, зачастую, вредное |
| Автор: prgmdelphi 4.7.2014, 21:27 |
| Что на Java практически ничего не делают под Windows? |
| Автор: Stolzen 4.7.2014, 21:48 |
| Если речь о декстопных приложениях, то вопроса о платформе обычно не стоит - write once, run anywhere Но как правило на джаве больше пишут сервер-сайд, а он почти весь на никсах |
| Автор: prgmdelphi 5.7.2014, 01:41 |
что вы имели ввиду под этой фразой? |
| Автор: LSD 7.7.2014, 07:14 |
Приложения которые работают на стороне сервера, а не клиента. КО |
| Автор: Ilya81 7.7.2014, 08:11 |
Очень много даже что делают. По-крайней мере немало приложений под Windows, определённо написанных на Java. Я не знаток Java вообще, так что точно не знаю, на чём делают пользовательский интерфейс, лишь немного знаю AWT и Swing. |
| Автор: Bulat 7.7.2014, 20:14 |
ага, почти весь... приезжай в мою нынешнюю контору, ежели духа хватит... |
| Автор: prgmdelphi 8.7.2014, 12:13 |
| Определенно уже могу сказать, что переход с Delphi на C# менее болезненнее, чем на Java. В C# под .Net зачастую в вакансия требуются люди с хорошим опытом в построении UI-интерфейса - а после Delphi этого опыта хоть отбавляй. В целом даже по языку Delphi ближе к шарпу. И все я это понимаю, но живут во мне сейчас 2 противоречивых мнения: мозги прекрасно понимаю, что с C# будет проще и быстрее по времени, а значит и быстрее я ухожу от Delphi и перехожу на C# и новую работу-проект - но душа как-то не лежит. Что касаетсяJava, то к ней душа ближе, как бы хотелось ей заняться, более перспективна, востребована и нормально оплачиваема. Но в тоже время понимаю, что порог вхождение гораздо дольше (из-за кучи фреймворков), а т.к. на текущей работе близится не за горами конец - значит есть вероятность остаться без желаемого дохода - т.е. со старой потребуется уйти, а устроиться на нормальную новую по Java не получиться из-за отсутствия нужного объема знаний и опыта. И вот не знаю и мучаюсь с выбором. |
| Автор: Stolzen 14.7.2014, 15:53 |
| Занимайтесь чем, к чему душа лежит. В зарплате, конечно, потеряете (в любом случае), но максимум на первый год, потом догнать не сложно будет. |