×Закрыть

Java или C#?

Здравствуйте форумчане ! Может конечно вопрос не к месту здесь, вы тут такие разные страшные темы обсуждаете, но думаю зайду да спрошу, всё же критика тоже результат!

Вот в этом году закончил университет (в июне получил диплом наконец то) специалист с информатики, бухал жестко на радостях до июля и теперь решил очухаться немного подучиться и искать работу (или с начала закодироваться).
В общем мы в университете учили только С\С++ да и то одни манипуляции с массивами были пару курсов, про контейнеры классы я вообще случайно узнал с книги Страуструпа, а IDE основная наша была это Borland 3.11 под MS-DOS чудесная вещь.

Но идти в «плюсы» я не имею намерения так как это для очень умных людей и в которых было много времени «плюсовать» на «плюсах».
Меня интересует вот что : судя с вакансий работодателям нужны Java и C#(.NET) немного интересовавшись данными платформами для себя ничего не мог выбрать, что из данного более перспективней и где меньше порог входа так сказать?

Говорят что Java более сложный чем C# так как на ней разрабатывается очень сложная серверная логика и надо ещё знать очень много чего в то время как на «Шарпе» нужен ASP.NET и «Шарп» сам по себе более простой в освоении чем Java, хотя вакансии Junior Java есть а на C# джуниоровских вакашек так и не видел в Днепропетровске ... Хочу пол года очень сильно углубиться в изучение что бы пойти на работу потом, но так и не могу для себя определиться ! Вы же в курсе что да как, помогите словом добрым.

Лучшие комментарии пропустить

Постараюсь ответить максимально кратко и по делу.

Ответить на вопрос что лучше — C# или Java — можно легко — на сегодняшний момент C# лучше. Как язык. Из-за синтаксического сахара, поддержки лямбд, динамических типов, большого набора сопутствующих технологий и самой лучшей на сегодняйший день IDE. Ну и плюс «бонус» — f#, ironpython, ironruby и т.д.

Если говорить о Java и .NET — а это было бы более корректней, то сдесь ситуация очень простая: здесь нет явного фаворита. Java берет свой мудростью и отпытом, .NET берет своей молодостью, динамическим развитием и легкостью.

Я знаю очень мало людей, которые перешли из Java в .NET или наоборот. Чаще — они просто совмещают деятельность с большим перекосом в одну из платформ. Как люди попадаю на ту или иную сторону? Обычно — случайно, какой первый проект попался — туда и поши, часто — по совету более опытного коллеги, который посоветовал — учи Java или учи .NET.

Работал в компании единственным дотнетчиком, где вокруг меня сидели сплошные джависты. Не нужно говорить, сколько всего о винде, .net и о себе я наслушался. Но! Средний уровень входа в средний java проект (который обычно уже лет 5-10 как разрабатывется и сапортится кем-то) — был около полугода. Учить надо было по больше части предметную часть и Product API, а не Java. Большинство проектов на .NET — новые. Не нужно говорить, что это гораздо лучше, чем писать 100500-й модуль к 15 летней системе.

За кроссплафторм я уже писал — Saying Java is good because it works on all operating systems is like saying anal sex is good because it works on all genders. Это один из любимых аргументов почитателей Java, но, на мой взгляд, он уже себя исчерпал, т.к.:

1) 90% новых проектов делают клиент-серверными, т.е. back-end (хоть на голом С++) + REST + тонкие клиенты под все попало.
2) те системы, которые делаются на java десятый год, как правило, до сих пор выполняются в ie6 под конкретным activex на зоопарке серверов и кроссплатформом там и не пахнет.

3) если это enterprise система, то к рабочим местам ставят конкретные требования и если рабочая машина клерка не оснащена последним фреймфорком и еще 100500 примочек к ней — одна единственная нужна программа не запустится. Так вот — часто стоимость одной такой лицензии может превышать стоимость софта и оборудования в разы (сам принимал участие в написании такой системы — есть мин требования, не нравится — давайдосвидания).

И вот те 5% компаний, которым реально нужен кросплатформ, вполне осознанно и верно выбирают java. Кстати, почему то к monotouch, phonegap, flash builder и т.д. в целом весьма прохладное отношение — почему же? Это ведь кроссплатформ! Ну и чтобы закрыть вопрос кроссплатформенности — частное всегда лучше общего.

.NET — это еще возможность менять домен хоть каждых 2 года — десктоп, веб, клауд, мобайл и т.д. — все это воспринимается рядовым дотнетчиком достаточно легко. Переход из домена в ломен в Java более проблематичный. Средний проект длиться намного больше.

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

А джавистам из этого треда я бы посоветовал чуть лучше разобраться в .net, чтобы перестать использовать аргументы пятилетней давности. За это время .net подрос. А работы хватит всем.

Джава это круто потому что:
— популярнее — больше комьюнити, вакансий, либ, проектов
— бесплатнее — можно построить абсолютно бесплатный open-source stack включая средства разработки
— во всяких big data, high load c# вообще не конкурент, т.к. у джавы здесь огромная экосистема: hadoop, hbase, cassandra, data grids, solr, elasticsearch, zookeeper
— намного больше всякого machine learning, nlp и т.д. софта
— в облаках широкий выбор paas вендоров: gae, heroku, jelastic, amazon, cloudfoundry
— кросплатформенней — java ее запускается на куче операционок от мэйнфреймов до дешевых линикс серверов, что позволяет всем миром пилить экосистему и разрабатывать коробочные продукты для более широкого рынка. Поэтому всяких erp, crm и т.д. на джаве намного больше
— .net отстает по либам, иначе чем обьяснить сотню N<yet another="" java="" lib="" name=""> либ? Отсюда кстати получается что большинство инноваций просходит в ява среде, а потом только мигрируют в .нет. Меня позабавило как в .нет некоторое время назад наконец открыли MVC, не говоря о том что ц# с самого начала был клоном явы начиная от структуры либ, синтаксиса языка, и заканчивая архитектурой vm
— все проекты на .нет про которые слышал — это просто преобразователи из sql в html — типичное формошлеперство. На джава работает и телеком, и большие финансы, и всякие бигдаты. Когда то была какая то биржа на .нете в лондоне, но и ту переписали на джаве, потому что падала и тормозила. Кстати недавно прочитал на msug что система регистрации вступительных заявлений в вузы работает на azure, а потом посмотрел по телеку сюжет как народ плевался что не мог зайти на сайт. Вот такие они высоконадежные облака от МС
— у МС в последнее время явный кризис менеджмента, балмер признан худшим ЦЕО, неясно куда все это закатится через пяток лет
— jvm намного чаще выбирают прогрессивные стартапы — twitter, foursquare, klout, и их мнение очень показательно
— v top 25 alexa много джава сайтов, и ниодного .нет, что как бы намекает что для нагруженных решений .нет не выбор

— Джава комьюнити намного креативнее. Все помнят клевые клипы к java zone. Видели ли вы что нибудь такое про .нет? Хотя нет, есть один: www.youtube.com/...h?v=8Px-GHPxB4I

Допустимые теги: blockquote, code, em, pre, i, li, ol, strike, strong, u, ul, a.
Ctrl + Enter
Допустимые теги: blockquote, code, em, pre, i, li, ol, strike, strong, u, ul, a.
Ctrl + Enter

Я тоже люблю оживлять забытые временем темы :)

Все таки кроме языка нужно знать еще библиотки и сторонние продукты. Редко все ограничивается одним языком. Например кроме Java люди используют Spring, Maven CXF, OSGi.. да кучу продуктов и библиотек. И если языки Java и C# похожи то библиотеки не очень.

Алексей, а как Вы решаете вопрос о том, у кого и как учиться? (самостоятельно, индивидуально с тренером, курсы, он-лайн обучение, практикантом в дивелоперской компании и др). В Днепропетровске кто-то обучает C#? Курсов по Java на порядок больше и цены на обучение ниже. В теме очень много комментариев, а значит, многие уже освоили либо Java, либо С#. Где и как вы учились?

В Днепропетровске кто-то обучает C#?

ISD, SoftServe например

Курсов по Java на порядок больше и цены на обучение ниже.

А шо уже бесплатных нет?

Спасибо, Вячеслав. Обе компании (ISD, SoftServe) производят приятное впечатление.
Что касается бесплатных ресурсов — их было, есть и будет в инете огромное множество. Но надо быть очень высокоорганизованным человеком, чтобы без наставника найти актуальную, качественную информацию. Как-то надо придумывать новые практические задачи, решать и проверять их самому.

Я думаю, с помощью лома можно будет сменить ориентацию любого джависта на шарповца. А этим ломом будет WindowsRT — полностью идентичная среда, вплоть до бинарной совместимости на: планшетах, смартфонах, ноутбуках, десктопах и серверах.

Скорее уж андроид (версии эдак десятой) захватит десктопы и ноуты отправив винды в историю.

в паралельном мире, пусть сначала его оптимизируют

Вот вам еще ржаки. Кому нужна будет Джава если приложения смартфона и сервера будут бинарно совместимы?

Под Windows RT не запустятся старые Windows-приложения; все приложения будут новыми, хотя Чу и сказал, что создание ПО для систем с Windows и для Windows RT не вызовет затруднений, например, компиляция приложений будет выполняться в одно нажатие.
pcmag.ru/...p/11/blog/2554

И что, на сервера будут арм ставить? или х86 на смартфоны?

Dell начала тестирование прототипов ARM-серверов

habrahabr.ru/post/144896

Apache Benchmarks for Calxeda’s 5-Watt Web Server

armservers.com/...att-web-server

Там же написано что для ксеона это былa не cpu bound задача(загрузка 15% непонятно на проц или на ядро), т.е. ксеон мог бы осилить еще минимум в 6 раз большие нагрузки, а arm server усе, все ядра на 100%

Что мешает на базе армов ставить ПО, которое не особо жрет процессор — всякие веб-сервера, SQL-сервера и пр. Даже та же 1C терминальный сервер — жрет около 10-15% 4-ядерного процессора. А для Windows RT будет 1С, так как есть все технологии, нужно будет перекомпилить только С++ код, на котором написана 1С-ка.

В результате приходим к тому, что 90% серверного ПО чудесно пойдёт на армах. Если туда добавят еще числодробилки типа тегровских, то и 100%.

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

Даже та же 1C терминальный сервер — жрет около 10-15% 4-ядерного процессора.

Теоретическое высказывание?

нужно будет перекомпилить только С++ код

На сколько я знаю, Win RT это новая платформа, со своим API и девочками. Так что просто перекомпилить не выйдет. Да и работает она только для Metro-style приложений.

Под Windows RT не запустятся старые Windows-приложения; все приложения будут новыми

Windows Retweet ©

если приложения смартфона и сервера будут бинарно совместимы

От только зачем запускать на серваке программу которая не использует более 1 гига оперативы, и как запустить на смартфоне программу которая только под кеш отгребает 32 гига?

Техники программирования (та и вся разработка) под телехвончики, десктопы и серваки — разная.

Есть разные версии. К примеру MS SQL может жрать как 32 гига, так и на 256 MB — express edition.

Тот же фотошоп, если работать с гигаписельными картинками — необходимо 16 Гб памяти, но для большинства достаточно 512 мб.

Я совсем про другое:

Техники программирования

Афигеть, уже появились техники программирования. Тоесть из-за того что все десктопное ПО на Java жуткое тормознутое угробище — виноваты техники программирования Java разработчиков. Для них масштаб 6-ядерного дестопа мал? Им нужен сразу кластер?

Тоесть из-за того что все десктопное ПО на Java жуткое тормознутое угробище

И даже IntelliJ IDEA ?

Тоесть из-за того что все десктопное ПО на Java жуткое тормознутое угробище — виноваты техники программирования Java разработчиков.

Ай маладца! Садись 5, хорошо поддел. :)
Но я таки про другое:

Серверное приложение должно обслуживать много пользователей в рамках одного процесса, и не особо предполагается его перезапускать. В то время как для десктопов важны другие моменты.

Нет, но маштаб задачи меняет методы ее реализации, к слову при сортировании до 10 елементов вам и пузырек нормально сделает, а когда 100 миллиардов, то прийдеться потанцивать и от распределения, типа данных итд... очень сильно могут методы решения варироваться, тоже и при нагрузке процесса, записать в файл-считать проблем нет, а если у вас 32 ядра, да еще и 1000 раз в секунду, да и по 100 запесей (простой логинг в высоонагруженой системе) то получить IO ботлнек можно нараз и таких проблем море...

Мечты дотнетоиндусов

с помощью лома можно

С помощью лома (утюга/кипятильника/паяльника) можно сделать что угодно :)

А этим ломом будет WindowsRT — полностью идентичная среда, вплоть до бинарной совместимости на

Предсказание: WindowsRT — это нечто мертворожденное! (Подождем годик, посмотрим какой из меня нострадамус :) )

Ой ребята вы запарили, гнать всю эту пургу ! Один тут мне еврей пять раз втирал свой этот английский, задрал уже, между прочим на английском я спокойно смотрю курсы по Java ! Одни в юриспруденцию предлагают, то дворником, охранником, спасибо что в БОМЖи податься не предложили хотя я давно сказал что выбрал Java но всем пофиг дай только по п*здеть, большинство что-то не поделило между .NET и Java и каждый пытается доказать свою правоту, хорошо что С++ сюда не вмешивали ибо это был бы крупномасштабный писец, я так понял вам только искру дай вы сами пламя раздуете в сильный дождь со снегом и градом ! Ну вы тут конечно реально люди в теме, но большинству из вас явно не хватает нормального общения и вы приходите сюда тупо разрядиться и написать немного бредовых предложений, да я согласен что и я тему создал явно не в трезвом состоянии, но я без пяти минут как окончил универ, конченный алкаш и просто никому не нужное быдло, но вы же другое дело, только и читаю возле каждого имени : Java Developer, php Dev, web dev, C++ Dev ... — это же о чем-то говорит !

Фига себе у вас бодуны жесткие :)

Лично у меня смотря как нажрусь, если я пил литр водки в день и это продолжалось не определённым циклом то и бодун у меня был соответствующий !

Я всегда подозревал что ты бухла жрёшь немерянно !

Ой ребята вы запарили, гнать всю эту пургу !

Молодой человек, отойдите в сторонку и не мешайте развлекатсо.

право перспективней, учи его и иди работать юристом.

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

BS, юристов — как собак нерезаных. Почти никаких перспектив, если «никого нету»

Похоже, дружище после этой темы зайдёт в глубокий запой, а после поймёт, что «программирование это не моё».

p.s. говорил вначале, учи английский.

А кем Вы потом хотите стать? Лет через 5-ть?
простой
Java или C# программист в Украине — довольно crowded специализация,

Если ситуация не изменится, то через 5 лет — вы с лёгкостью можете поменять выбор, каким бы он ни был. То есть, за пять лет вы выучите «контрвариантность лямбд в линке», но вобще говоря это все знают и так, особой разницы С#-Java нету, возьмут куда-нибудь если хешмап от дерева отличить сможете.

Если же изменится, то стоит найти, что у вас лучше получается сейчас и что будет вашим преимуществом при найме через 5 лет. Я уж не знаю что, умение понять заказчика, какое то хитрое понимание железа/бизнеса, умение намалевать графический интерфейс очень быстро, «данные на кончиках пальцев».

Важно только понять, что язык программирования *не* будет Вашим конкурентным преимуществом.

Джава это круто потому что:
— популярнее — больше комьюнити, вакансий, либ, проектов
— бесплатнее — можно построить абсолютно бесплатный open-source stack включая средства разработки
— во всяких big data, high load c# вообще не конкурент, т.к. у джавы здесь огромная экосистема: hadoop, hbase, cassandra, data grids, solr, elasticsearch, zookeeper
— намного больше всякого machine learning, nlp и т.д. софта
— в облаках широкий выбор paas вендоров: gae, heroku, jelastic, amazon, cloudfoundry
— кросплатформенней — java ее запускается на куче операционок от мэйнфреймов до дешевых линикс серверов, что позволяет всем миром пилить экосистему и разрабатывать коробочные продукты для более широкого рынка. Поэтому всяких erp, crm и т.д. на джаве намного больше
— .net отстает по либам, иначе чем обьяснить сотню N<yet another="" java="" lib="" name=""> либ? Отсюда кстати получается что большинство инноваций просходит в ява среде, а потом только мигрируют в .нет. Меня позабавило как в .нет некоторое время назад наконец открыли MVC, не говоря о том что ц# с самого начала был клоном явы начиная от структуры либ, синтаксиса языка, и заканчивая архитектурой vm
— все проекты на .нет про которые слышал — это просто преобразователи из sql в html — типичное формошлеперство. На джава работает и телеком, и большие финансы, и всякие бигдаты. Когда то была какая то биржа на .нете в лондоне, но и ту переписали на джаве, потому что падала и тормозила. Кстати недавно прочитал на msug что система регистрации вступительных заявлений в вузы работает на azure, а потом посмотрел по телеку сюжет как народ плевался что не мог зайти на сайт. Вот такие они высоконадежные облака от МС
— у МС в последнее время явный кризис менеджмента, балмер признан худшим ЦЕО, неясно куда все это закатится через пяток лет
— jvm намного чаще выбирают прогрессивные стартапы — twitter, foursquare, klout, и их мнение очень показательно
— v top 25 alexa много джава сайтов, и ниодного .нет, что как бы намекает что для нагруженных решений .нет не выбор

— Джава комьюнити намного креативнее. Все помнят клевые клипы к java zone. Видели ли вы что нибудь такое про .нет? Хотя нет, есть один: www.youtube.com/...h?v=8Px-GHPxB4I

Кстати, да, в джавамирке нету vender lock-in как в дудке.

“Saying that Java is nice because it works on all OS’s is like saying that anal sex is nice because it works on all genders” — Программисты .NET

Кстати, эта дебельная, не несущая смысла фраза, уже подзаколебала.

А миня падзокалебали ниграматние расрабочеки. Пайду расскажу ап этам на zadolba.li

«Saying that Java is nice because it works on all OS’s is like saying that anal sex is nice because it works on all genders» — Программисты .NET
Я кстати вначале вставил последний пункт:
— .нет разработчики подозрительно озабочены анальным сексом.
Но потом постеснялся и убрал, но как оказалось зря.

.нет разработчики подозрительно озабочены анальным сексом.

А ведь неспроста, ведь в Microsoft очень большое количество геев — ru.wikipedia.org/...ников_Microsoft

Вот блин ! А я всё думал чего когда я покупал в книжном книгу Троелсена C#(.NET 4.0) мне туда положили абонемент в местный ГЕЙ-КЛУБ ! И когда ставлю винду «семерку» то сразу фон такой голубенький и заставка голубая, вот сволочи ! Всё завязываю с этой пидарской технологией !!!

Всё завязываю с этой пидарской технологией !!!

Тада уж уходите из ИТ (привет от Тьюринга)

К вопросу о том, какие пидарасы изобрели майкрософт эксель бэйсик: Spolsky started working at Microsoft [...] where he designed Excel Basic and drove Microsoft’s Visual Basic for Applications strategy. [...] He is openly gay and has a boyfriend named Jared [...]

lurkmore.to/...871#mws_54J66eA

Ой ... А я как-то упустил из виду что Тьюринг ...

Всё, тогда я пошел водить самосвал за копейки но только не ....

“There is some sort of perverse pleasure in knowing that it’s basically impossible to send a piece of hate mail through the Internet without its being touched by a gay program. That’s kind of funny.”

Eric Allman, гей, создал sendmail.

Соавтор BSD — Marshall Kirk McKusick — гей. Он с вышеуказанным Аллманом — сексуальные партнёры (Аллман — пассив).

Вот и юзайте свой п*дарский линукс :)

А при чем тут линукс к bsd? Тем более в gmail используется свой почтовый сервер, а не sendmail.

У меня стоит опенбсд, в ней стоит кему, в кему стоит арч, в арче стоит сендмейл. Чем вам не связь бсд с линуксами?

И каким боком тут gmail? Для вас электронная почта — это только gmail? :)

У меня стоит опенбсд, в ней стоит кему, в кему стоит арч, в арче стоит сендмейл. Чем вам не связь бсд с линуксами?

OpenBSD создали не выше указанные гомосексуалисты, они создатели FreeBSD.

И каким боком тут gmail? Для вас электронная почта — это только gmail? :)

Ну так я намекал что я и не пользуюсь зашкваренными программами.

Вышеуказанные гомосексуалисты — создатели BSD, кодовая база которой послужила созданию целого семейства *BSD. Со всеми, так сказать, вытекающими для фряхи и опенбсд ;)

Ну так я намекал что я и не пользуюсь зашкваренными программами.

Спасибо, что ознакомили с этим фактом.

Почему Вас так волнует чья-то ориентация?

Поэтому нужно юзать православный линукс!

Только мультикс, бро, только хардкор.

Хардкор это инферно

Там нет ничего хардкорного.

А что хардкор тогда и почему?

Раз так, то хардкор — это героический режим ;)

Ну так инферно как раз написана эпическими героями для эпических героев, а миникс учителем информатики для школоты!

Не миникс, а мультикс. Миникс — это уже юникс :)

А, да, перепутал.

Ну тогда только Plan 9, в того кто скажет что это не хардкор я первым брошу камень

план9 это папа инферно

ну тогда ой. Не знаю куда уже хардкорнее. Оберон можно вспомнить еще

Да нет хардкора :) а что такого в Inferno, все идеи старые, реализации старые?

Вот и юзайте свой п*дарский линукс :)

А вдруг вы юзаете компьютер, который на заводе собирал гей? Он же этими руками...

Программисты дотнет сравнивают работу программы на ОС с сексом. Показательно.

— v top 25 alexa много джава сайтов, и ниодного .нет, что как бы намекает что для нагруженных решений .нет не выбор

А почему 25? Почему не топ 30? На 29-ом сайт микрософта, на 28-ом bing, оба на asp.net. А stackoverflow.com — 85-ое место, по твоему не нагруженное решение?

Тут нету логики, то что в 25 нету сайтов на asp.net, это не означает что asp.net не подходит для создания таких сайтов.

не говоря о том что ц# с самого начала был клоном явы начиная от структуры либ, синтаксиса языка, и заканчивая архитектурой vm

Слова человека, который C# и .NET и не видел. Синтаксис языка Си-подобен. Декларация наследования, деструкторов — различная, в Джаве нету poperties, нету delgates (в C# они были изначально). Другой синтаксис и семантика namespace. Enumerations — сделаны совершенно различно. И так далее.
en.wikipedia.org/..._Sharp_and_Java
.NET — библиотека стандартных классов хоть и содержит похожие неймспейсы и имена классов (такое понятие как Stream, Socket, Point и так далее, не изобрели разработчики Джавы, точно также как не они изобрели делить их по модулям, и использовать такое обозначение как — «io», «net», «math»), тем не менее библиотеки различаются, и не в пользу Java.
Пример.
msdn.microsoft.com/.../system.io.aspx
docs.oracle.com/...ge-summary.html
Именование классов в Джаве тут страшное, .NET-овский System.IO гораздо чище. К примеру, зачем класс который описывается таким понятием как Reader — был назван — DataInputStream? Хотя там же и есть классы нормально названые Reader/Writer. Что в неймпсейсе IO — делает сериализация, десериализация объектов?

Даже то как устроены простые типы — и главный предок object — различается.

А по поводу JVM vs .NET Framework производительности.
Во-первых, .NET компилирует IL в нейтив перед выполнением,
что в принципе означает, что .NET приложения — выполняются в нейтиве,
и интерпретация не имеет места вообще, это означать что все минусы производительности связаны с рефлексией, проверкой типов, сборщиком мусора и так далее, а не из за интерпретации.
Сановсикй/Оракловский JVM — насколько я знаю, компилирует только часто вызываемые фрагменты кода, и уступает производительности.
В добавок, в C# есть struct — user defined value types, которые могут размещатся в стеке, которые гораздо быстрее алокейтятся, и меньше занимают памяти по сравнению с C# или Java reference types. А также генерики которые не требуют постоянных boxing, unboxing.
Говорить что .NET Framework — превосходит HotSpot или что то другое я не буду,

но то что виртуалки Java уделывает во всем .NET Framework — это бред. Если высоко нагруженые приложения пишутся на PHP, то и на ASP .net это сделать тоже можно.

ваши аргументы типо не считаются :) патамушта джава она всирамно круче! джава — самый лучший в мире язык. лучше никогда не было, нет, не будет и быть не может вообще. миллионы мух не могут ошибаться!!!

А почему 25? Почему не топ 30? На 29-ом сайт микрософта, на 28-ом bing, оба на asp.net. А stackoverflow.com — 85-ое место, по твоему не нагруженное решение?
Тут нету логики, то что в 25 нету сайтов на asp.net, это не означает что asp.net не подходит для создания таких сайтов.
Бинг скорее всего на ц++ писан, microsoft.com вообще когда то поймали что он на апаче работает, а stackoverflow и 4 млн это похоже потолок.
Декларация наследования, деструкторов — различная, в Джаве нету poperties, нету delgates (в C# они были изначально). Другой синтаксис и семантика namespace. Enumerations — сделаны совершенно различно.
Это мелочи по сравнению с обьемами плагиата
Пример.
msdn.microsoft.com/.../system.io.aspx
docs.oracle.com/...ge-summary.html
Ниче что ты сравниваешь свежий .нет с 10-летней версией джавы?
К примеру, зачем класс который описывается таким понятием как Reader — был назван — DataInputStream? Хотя там же и есть классы нормально названые Reader/Writer.
А ты прочитать о различиях неосилил?
Что в неймпсейсе IO — делает сериализация, десериализация объектов?
А что не так?
Сановсикй/Оракловский JVM — насколько я знаю, компилирует только часто вызываемые фрагменты кода, и уступает производительности.
херово ты знаешь
В добавок, в C# есть struct — user defined value types, которые могут размещатся в стеке, которые гораздо быстрее алокейтятся, и меньше занимают памяти по сравнению с C# или Java reference types. А также генерики которые не требуют постоянных boxing, unboxing.
В jvm очень агресивный escape анализ, и не исключено что она на стеке выделяет больше .нет-а без всяких структур
но то что виртуалки Java уделывает во всем .NET Framework — это бред. Если высоко нагруженые приложения пишутся на PHP, то и на ASP .net это сделать тоже можно.
Ты правильно написал, производительность vm играет не решающее значение, а решающее значение играет инфраструктура и экосистена ПО, поэтому .нет тут лузер, под него ни одной топ nosql нету

Бинг скорее всего на ц++ писан, microsoft.com вообще когда то поймали что он на апаче работает, а stackoverflow и 4 млн это похоже потолок.

Ты хоть пробовал искать и проверять, прежде чем писать свои фантазии?

www.asp.net/get-started тут явно указано на чем бинг, ниже ещё ссылка на case study. Сайта микрософта работает на asp.net, для этого достаточно заглянуть в сорсы страницы, это факт который можно проверить, а не бред который ты где то прочитал и не проверив разносишь. Даже если какое то подразделение миксрософт использует Apache — это их дело, не нужно думать что все такие же пришибленные фанатики, и требовать от них такого же пришиблено фанатичного поведения.

Про стековерфлоу, в соседней теме уже давали ссылку

highscalability.com/...on-page-vi.html

Это мелочи по сравнению с обьемами плагиата

Плагиата чего? Cи-стайл кода или ООП? Ты читал сравнение по ссылке что я дал?

херово ты знаешь

Чудесная аргументация.

поэтому .нет тут лузер, под него ни одной топ nosql нету

Ты просто не компетентен, и несешь бред. Если есть необходимость в какой то технологии ещё можно адаптировать подключить. Тот же stackoverflow использует noSQL — иди почитай по ссылке. К тому же большая часть из них имеют более менее универсальное API, коннекторы/драйверы под разные языки или какой то протокол.

www.asp.net/get-started тут явно указано на чем бинг, ниже ещё ссылка на case study

Чувак, я не делаю нелепых выводов типа гугл работает на джаве потому что на джаве крутится AdWords frontend

Сайта микрософта работает на asp.net, для этого достаточно заглянуть в сорсы страницы, это факт который можно проверить, а не бред который ты где то прочитал и не проверив разносишь

Ну да, они коигда их поймали быстро спрятали хедеры в http response

Даже если какое то подразделение миксрософт использует Apache — это их дело, не нужно думать что все такие же пришибленные фанатики, и требовать от них такого же пришиблено фанатичного поведения.

Нет, это всего лишь показывает что .нет стек не достаточен, и все равно прийдется учить линукс, потому что виндузятники не осилили

Плагиата чего? Cи-стайл кода или ООП? Ты читал сравнение по ссылке что я дал?

Та всего, отсуствие указателей, байт код(до сих пор не пойму нахера он им здался если все равно все на одной платформе работает), garbage collection, отсутствие множественного наследования по совокупности фич цъ/.нет содраны под чистую, нету языка так же копирующего джаву как цъ.

Про стековерфлоу, в соседней теме уже давали ссылку

highscalability.com/...on-page-vi.html

и че?

Чудесная аргументация.

Это типа был намек что-бы ты загуглил, но ты в очередной раз неосилил:

«The Server VM contains an advanced adaptive compiler that supports many of the same types of optimizations performed by optimizing C++ compilers, as well as some optimizations that cannot be done by traditional compilers, such as aggressive inlining across virtual method invocations. This is a competitive and performance advantage over static compilers. Adaptive optimization technology is very flexible in its approach, and typically outperforms even advanced static analysis and compilation techniques.»

Т.е. hotspot adaptive compilation позволяет делать оптимизации которые тупая компиляция не позволяет. Учи матчасть.

Ты просто не компетентен, и несешь бред. Если есть необходимость в какой то технологии ещё можно адаптировать подключить.

Зачем тогда мс нужен если все на линуксе ранать?

Тот же stackoverflow использует noSQL — иди почитай по ссылке.

редис это не взрослая база, а вспомогательная тулза для кеширования и локальных операций, учи матчасть

К тому же большая часть из них имеют более менее универсальное API, коннекторы/драйверы под разные языки или какой то протокол.

Ну так а нахрена плодить зоопарк ос, платформ и языков, если можно взять джаву и там все будет? Что бы занести лишнюю денежку мс?

Та всего, отсуствие указателей, байт код(до сих пор не пойму нахера он им здался если все равно все на одной платформе работает), garbage collection, отсутствие множественного наследования по совокупности фич цъ/.нет содраны под чистую, нету языка так же копирующего джаву как цъ.

Не смог удержаться. Нет языка так же копирующего Эрланг как Джава!

Отсутсвие указателей? Да ну) А насколько мне помниться они были в ансейф моде. А Джава сильно скопипизженна с С++, вас это не смущает?)

У С++ и джавы больше различий, чем общего. А то, что создатели С# черпали вдохновение в том числе из джавы — неоспоримо :)

Может в Джаве даже не скопировали С++ ООП модель, или обобщения? Но по хорошему, мне нет никакой разницы, кто что скопировал, и кто чем вдохновлялся. А вам то какая разница?

Да мне тоже пофигу вобщем-то :) Just for the record, дженерики джавы и шаблоны С++ - разные вещи, а про ООП-модель вообще как-то странно звучит. Можно подумать, до джавы С++ был единственным ООП языком.

Ну ООП — понятие растяжмое. Вот скажем Смалтолк. Он ООП, но объектная модель на С++ не очень то похожа. А вот в Джаве — почти идентична.

А то, что создатели С# черпали вдохновение в том числе из джавы — неоспоримо :)

Вдохновение, в том числе, возможно, это никто не отрицает,

но также кроме Java — C++, Delphi, и другие.

А вот выше человек говорит не об этом, он заявляет что там ВСЁ содрано с Джавы, и синтаксис, и фичи, и библиотека, и даже виртуальная машина. Это можно оспорить?

А вот выше человек говорит не об этом, он заявляет что там ВСЁ содрано с Джавы, и синтаксис, и фичи, и библиотека, и даже виртуальная машина. Это можно оспорить?

Нельзя, это очевидно.

Чувак, я не делаю нелепых выводов типа гугл работает на джаве потому что на джаве крутится AdWords frontend

Где тут нелепость моих выводов? По крайней мере они основаны на чем то более, чем фантазия.
channel9.msdn.com/...Guthrie-Keynote
Scott Guthrie, на 51 минуте начинает отвечать на вопрос, bing — поиск и карты работают на ASP.NET MVC.

Что ещё ты тут придумаешь?

Ну да, они коигда их поймали быстро спрятали хедеры в http response

В добавок дописали имитацию ID-шек asp.net контролов, и замаскировали PHP за aspx страницами? Это бред. А если же ты утверждаешь что у них ASP.NET на Апачи, так это ещё чудесней! Или расскажи эту новость тем кто в этой теме жаловались что ASP.NET только на IIS работает.
И зачем этот разговор вообще? Ты утверждал что ASP .NET не походит для высокого «нагруженных» сайтов, в качестве мерила нагруженности ты взял рейтинг alexa.
Я же даю пример сайта с высокой позицией в этом рейтинге, и если ты на него зайдешь, и посмотришь сорсы — то увидишь что он на ASP.NET (хотя как ты это сделаешь, если ты не знаешь — что он из себя представляет). Это факт.

Ты признаешь что на ASP.NET тоже подходит для «нагруженных» решений? Или будешь дальше утверждать что, белое это черное?

Та всего, отсуствие указателей, байт код(до сих пор не пойму нахера он им здался если все равно все на одной платформе работает), garbage collection, отсутствие множественного наследования по совокупности фич цъ/.нет содраны под чистую, нету языка так же копирующего джаву как цъ.

Указатели присутствуют но не доступны в safe режиме. Но все равно, Джава не есть единственным и даже не есть первым в мире языком без множественного наследования, без указателей, и со сборщиком мусора. Safe typing, а также желание убрать из языка все опасные штуки — это любимая тема Никлаус Вирта — автора Pascal. И именно с написания компиляторов для языка Pascal начинал разработчик C# - Андерс Хейлсберг. И вот как раз в Delphi, разработкой которого он руководил — использование указателей не было обязательным, а обычные классы были самыми настоящими reference типами, а примитивные типы — value типами. А сборщики мусоров были ещё до Java во многих высоко уровненных языках, даже в Simula — предке всех ООП языков. А если бы зашел по ссылке что я дал — на таблицу со сравнением фич C# и Java, ты бы увидел что там есть много фич которых нету в Java, но есть в C# и есть в других языках.
Что бы уже закончить эту тему, — идешь сюда en.wikipedia.org/...mming_language — читаешь ’Influenced by’,
и C# - influenced by разные языки, и да в том числе Java,

C# объединяет разные идеи из разных языков в том числе и с Java, но также — C++, Eiffel, Java, Modula-3, Object Pascal. Там же приводится цитата Хейлсберга —

We all stand on the shoulders of giants here and every language builds on what went before it so we owe a lot to C, C++, Java, Delphi, all of these other things that came before us.

В добавок тебе стоит ещё зайти сюда — en.wikipedia.org/...mming_language — и тоже посмотреть на ’Influenced by’, за одно может узнаешь что то новое.

Если этого всего недостаточно, то что, может мне начать приводить каждую из 100 фич с примерами — где Java похожа на C#, а где нет?

до сих пор не пойму нахера он им здался если все равно все на одной платформе работает

А вот это показывает, что ты вообще не представляешь — какую роль может играть байткод, мало того, ты даже не знаешь на каких платформах работает .NET Framework.

Для начала — .NET Framework уже давно присутствует на Windows Mobile и XBOX360, сейчас появился на Windows Phone 7, чуть позже выйдет Windows 8 на ARM.

В добавок mono — может и не так хорош если верить тому что рассказывают Джависты в этой теме (кому как не Джавистам знать — насколько хорошо работает mono), тем не как минимум те простые приложения что я пробовал — работали без перекомпиляции. Кроме того даже на Windows — .NET компилирует программы с оптимизацией под процессор системы.

Но кроссплатформенность это не единственная причина — зачем нужен байткод. Промежуточный IL код .NET-ту нужен также для того что бы на базе .NET могли работать разные языки, при этом что бы с одного языка можно было использовать сборки написанные на другом языке. Так можно взять библиотеку написанную на VB.NET, или другом, и использовать её на С#, как будто это такая же сборка на С#. Тут проглядывают идеи COM.

Это типа был намек что-бы ты загуглил, но ты в очередной раз неосилил:

В этой цитате нет ни слова о том — о чем я говорил, о том что код компилируется предварительно в обязательном порядке. Интерпретация байткода — всегда будет медленнее чем выполнение уже скомпилированного в нейтив кода.

То что применяются интересные методики оптимизации — это чудесно. Вопрос был о другом. Хотя пускай оно бы там была, или пускай можно взять другую реализацию JVM — речь о том что .NET выполняется в нейтиве, а значит он не может работать значительно медленней или хуже PHP — на котором тоже пишут большие сайты, или Java.

Ну так а нахрена плодить зоопарк ос, платформ и языков, если можно взять джаву и там все будет? Что бы занести лишнюю денежку мс?

Это противоречит как твоим комментариям, так и комментарием других людей поддерживающих Джава в этой теме. Только что ты говорил — что чудесно что есть возможность работать на разных палтформах, и что есть кучу вендоров, а теперь ты говоришь — что зачем что-то плодить — если можно взят что-то единое готовое.
Мало того, непонятно причем это к тому что я сказал. Я сказал что подобный софт пишется из расчета — что бы его смогли использовать с разных языков и платформ, для этого делается свои API, протоколы. То есть ты говоришь что все эти люди — дураки?

Может и разработчики SQL, json и HTTP тоже должны были все сделать через Джаву? Или что ты пытаешься сказать?

nosql-database.org вот чудесный список — указаны также протоколы и API, у многих есть возможность работать с ними используя разные языки.

редис это не взрослая база, а вспомогательная тулза для кеширования и локальных операций, учи матчасть

Это разновидность NoSQL (en.wikipedia.org/...ey-value_store, прости что это не та — которую ты ожидал,
я не понимаю что по твоему означает «взрослая», какая им нужна была — такую и применили, и судя по всему им подходит с их миллионами пользователей.

В любом случае, речь шла о том что нету NoSql — повторюсь, вон список популярных — всех типов основных, и у многих есть возможность обращаться к ним не только с Джавы, но с любого языка. Так что если драйверов/конекторов/враперов — нету уже , то сделать их будет не сложно. К тому же pinvoke на C# не требует написание дополнительной прослойки — что бы работать с нейтив библиотеками, в отличии от JNI в Джаве.

Где тут нелепость моих выводов? По крайней мере они основаны на чем то более, чем фантазия.
channel9.msdn.com/...Guthrie-Keynote
Scott Guthrie, на 51 минуте начинает отвечать на вопрос, bing — поиск и карты работают на ASP.NET MVC.

Что ещё ты тут придумаешь?

Теме не менее что бы тянуть нагрузки там пашут 200 ц++ лбов. И кстати джава лбов в том числе — гуглить про покупку мс-ом powerset-a

Ты признаешь что на ASP.NET тоже подходит для «нагруженных» решений?

Если заткнуть все дырки с помощью других решений в том числе java based то поформошлепить можно и на .нет. Вопрос только зачем?

C# объединяет разные идеи из разных языков в том числе и с Java, но также — C++, Eiffel, Java, Modula-3, Object Pascal.

Ага, вопрос только какой процент заимствования из не джавы

Но кроссплатформенность это не единственная причина — зачем нужен байткод. Промежуточный IL код .NET-ту нужен также для того что бы на базе .NET могли работать разные языки, при этом что бы с одного языка можно было использовать сборки написанные на другом языке. Так можно взять библиотеку написанную на VB.NET, или другом, и использовать её на С#, как будто это такая же сборка на С#. Тут проглядывают идеи COM.

и где тут критичность байкода?

В этой цитате нет ни слова о том — о чем я говорил, о том что код компилируется предварительно в обязательном порядке. Интерпретация байткода — всегда будет медленнее чем выполнение уже скомпилированного в нейтив кода.

А комиляция медленее чем интерпретация. Зачем тратить ресурсы на компиляцию кода который один раз выполнится?

Только что ты говорил — что чудесно что есть возможность работать на разных палтформах, и что есть кучу вендоров, а теперь ты говоришь — что зачем что-то плодить — если можно взят что-то единое готовое.

Шота я не понял проблемы, в чем проблема юзать единую платформу которая замечательно работает на разном железе, пусть даже компоненты ее пилят разные вендоры

я не понимаю что по твоему означает «взрослая», какая им нужна была — такую и применили, и судя по всему им подходит с их миллионами пользователей.

Еще раз — редис вспомогательная БД, к ней нужно юзать какую то полнеценную, как стековерфлоу юзает скл сервер и вынуждены писать свои велосипеды для шардинга.

Так что если драйверов/конекторов/враперов — нету уже , то сделать их будет не сложно.

Не проблема, вопрос времени и ресурсов, иногда немаленьких, только нахера это делать вместо того что бы взять джаву где все это уже есть.

Расскажи как ты будешь писать меп редьюсы для парсинга логов на своем си шарп?

highscalability.com/...ow-architecture

Почитайте. Весь веб трафик SO обслуживает 2 веб сервера.

Расскажи как ты будешь писать меп редьюсы для парсинга логов на своем си шарп?

RavenDb отлично справляется. Если что NoSql документная БД полностью написанная на донетике.

highscalability.com/...ow-architecture

Почитайте. Весь веб трафик SO обслуживает 2 веб сервера.

Спасибо, и че?

RavenDb отлично справляется. Если что NoSql документная БД полностью написанная на донетике.

Когда она сможет масштабироваться как cassandra & hbase тогда и поговорим, а пока там решардинг заимплементить неосилили еще

Фанатики дотнета хуже хипстеров...

А фанатики Джавы хуже эмо... :p

Фанатики дотнета хуже хипстеров...

Обоснование (от Виталий Домников):

Ухты, это первый язык у котором есть замыкания но нет лямбд.

Нет лямбд — нет замыканий )

dou.ua/...ic/5902/#216308

Чувак типо «в теме», но при этом не понимает суть вопроса (хорошо видно из ветки обсуждения) — а это и есть «хипстеры» (по старому «понтогон»)

А фанатики Джавы хуже эмо... :p

Ваши обоснования. Или вы, так сказать ASP.net Developer, тоже понты поганять решили?

А при чем тут я? Комментарий про фанатиков, был в мою сторону.
Человек пишет бред в стиле — «C# кругом недоклон джавы, тормознутое г-но, возможно сделать ничего нагруженого», я пытаюсь ответить, предоставив ссылки и конкретные примеры в подтверждения — в ответ вы его поддерживает, и пишете мне про фанатиков дотнета.

Вы это серьезно?

А при чем тут я? Комментарий про фанатиков, был в мою сторону.

У меня для вас очень секретная новость, вы только не кому не рассказывайте: Вы не центр вселенной.

в ответ вы его поддерживает, и пишете мне про фанатиков дотнета.

Я поддержал не его, а его комментарий. Второе, у ДОУ есть особенность: он скрывает уже прочитанные комментарии, то есть к вам это не имеет ни какого отношения.

Мой ответ был Boris Roshal, так какя я не понял какое отношение к разговору имеют эмо, может вы объясните (раз уж поддержали его высказывание)

Я тоже открою тайну, под каждым комментарием стрелочка — отвечая кому человек написал комментарий. А то что середина ветки скрывается — не означает что нужно встревать в разговор игнорируя — о чем идеи речь в ветке с самого начала. Стоит раскрыть все комментарии и внимательно прочитать.

Я поддержал не его, а его комментарий

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

может вы объясните (раз уж поддержали его высказывание)

Объясняю, это был тот комментарий который заслуживает комментарий Viacheslav-ва, не более.

не означает что нужно встревать в разговор игнорируя

И вам того же :) Я ответил на реплику Boris Roshal, вы же «встряли» со своими «наездами», когда контекст разговора уже изменился.

Но я думаю будет вполне логично расценивать людей поддерживающие неадекватные заявления — неадекватами?

Скорее да чем нет. В совем комменте я показал адекватность коммента от Viacheslav и усомнился в адекватности коммента от Boris Roshal (который вы поддержали). Поэтому жду от вас подтверждения фразы

А фанатики Джавы хуже эмо... :p

Ой, простите не дочитал до конца (верста не способствует :) )

это был тот комментарий который заслуживает комментарий Viacheslav-ва, не более.

Я так понял вы сводите все к «сам дурак», не приводя аргументов.

Если мои размышления в dou.ua/...ic/5902/#217242 содержат неточность (или ошибку), укажите на нее.

Норот в бекграунде ждет, когда уже сия дискуссия в откровенное хамство перейдет :-)

Я так понял вы сводите все к «сам дурак», не приводя аргументов.

Фанатики дотнета хуже хипстеров...

— очень хороший аргумент наверно. Совсем не из серии «ты дурак/сам дурак». Причем аргумент такой существенный что был поддержать таким количеством джавистов.

Если мои размышления в dou.ua/...ic/5902/#217242 содержат неточность (или ошибку), укажите на нее.

Человек указал на то что в Джаве нету лямбд, а ты его назвали — позером? И зачем ему признавать что анонимный класс можно использовать как лямбду если вы не признаете что анонимный класс отличается от анонимной функции. Так что с таким успехом, я могу сказать, что я вижу трех хипстеров в той ветке, из них 2 хипстера от Джавы.

Не говоря уже о том, что «хипстер» != «позер», в определении американцев.

Человек указал на то что в Джаве нету лямбд, а ты его назвали — позером?

Нет и нет. Читайте внимательнее, разговор был не вокруг «лямбд».

Не говоря уже о том, что «хипстер» != «позер»

А я говорил что-то про «позерство»?

Причем аргумент такой существенный что был поддержать таким количеством джавистов.

И не только: C#/.NET developer ( dou.ua/...henko-valentin )

И это не аргумент, а высказывание. Высказывание в разговоре с вами, но при этом явно не направлено на вас (там нет обращения), и проблема в том что вы себя ассоциируете с «фанатиками дотНета»

тормознутое г-но, возможно сделать ничего нагруженого

А давай ка ответь за базар, где это я называл .нет тормознутым гавном? Фанатики .нет походу еще и параноики-шизофреники

А давай ка ответь за базар

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

где это я называл .нет тормознутым гавном?

->

Когда то была какая то биржа на .нете в лондоне, но и ту переписали на джаве, потому что падала и тормозила.

За слово «г-но» отвечает общий стиль и подача.

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

Ну так я к тебе и пришел

За слово «г-но» отвечает общий стиль и подача.

Когда то была какая то биржа на .нете в лондоне, но и ту переписали на джаве, потому что падала и тормозила.

Ты бредишь, биржа тормозила != .нет тормозной.

Ржунимагу! Всем спасибо за хорошее настроение.

Я, вообще то, всегда считал, что хипстеры — это субкультура.

в наше время обычно употребляется в смысле «обеспеченная городская молодёжь, интересующаяся элитарной зарубежной культурой и искусством, модой, альтернативной музыкой и инди-роком, артхаусным кино, современной литературой и т. п.»

А поскольку неясно, каким боком это относится к .нетчикам, я повесил столь же нелепый ярлык на джаваистов.

А за этого Виталия Домникова я не отвечаю.

Я, вообще то, всегда считал, что хипстеры — это субкультура.

А индусы — это нация (или национальность). Вот только на фразу «дотНетчик хуже индусов», вы же не ответите «джависты хуже русских»?

А за этого Виталия Домникова я не отвечаю.

Суть не в этом, это просто пример. Суть в том, что многие дотНетчики очень цепляются за внешние представление (конструкции языка, например) не вникая в суть (механизм); у джавистов (лично я такого не встречал).

А индусы — это нация (или национальность). Вот только на фразу «дотНетчик хуже индусов», вы же не ответите «джависты хуже русских»?

Чес слово, я вообще не знал что у слова «хипстер» есть другое значение. Кстати, индус — это не национальность. Житель Индии — индиец, а индус — это человек, исповедующий индуизм.

Суть не в этом, это просто пример. Суть в том, что многие дотНетчики очень цепляются за внешние представление (конструкции языка, например) не вникая в суть (механизм); у джавистов (лично я такого не встречал).

А я встречал (порядка ради, аспнетчиков, которые не знают, например, что такое ASP — конвейер я тоже встречал). От пару дней назад на Хабре джаваист с пятилетним опытом продемонстрировал недопонимание основных принципов ООП. Только в этой теме я насчитал троих хипстеров от Джавы, не будем показывать пальцем. Так что это всё фигня и субъективизм.

Правда в том, что Шарп сильнее как язык, а в Джаве гораздо лучше с мультиплатформенностью. А в остальном никаких существенных различий нет, языки похожи, назначение одинаковое, переход из одного стека в другой особых проблем не доставляет. Так что мы все в одной лодке, нечего холивариться.

Суть не в этом, это просто пример. Суть в том, что многие дотНетчики очень цепляются за внешние представление (конструкции языка, например) не вникая в суть (механизм); у джавистов (лично я такого не встречал).

Знаком более чем с половиной «дотнетчиков»?

Знаком более чем с половиной «дотнетчиков»?

«Многие» и «большинство» — это разные понятия :)

Блин, я просто умиляюсь от умозаключений некоторых персонажей — «дотнетчики не вникают в суть», «цепляются за представление», «дотнетчики хуже индусов», «дотнетчики хуже хипстеров». Складывается впечатление о проф. неполноценности этих людей, которые скатываются в откровенное хамство, при этом демонстрируя поверхностное понимание лямбд, замыканий, анонимных функций и прочей «херни», которая цитирую «никому не нужна». Дети, чесслово...

Ну был еще вариант «фуууу — нечистая реализация функционального программирования».

А что не правда? Единственно где чистая это в Haskell

Правда конечно. Просто считаю бесмысленным расценивать это как убийственный аргумент указывающий на «ненужность» соответствующих конструкций языка.

Это «нечисто» — но это удобно и практично. После долгой работы с .Net, на Java таких мелочей нехватает.

Без них можно вполне обходиться

Так никто же не говорит что нельзя.

Отсутствие таких вещей в Java не делает её УГ, как и наличие их в .Net так же не делает его уделом «индусов и хипстеров».

Как уже советовали тут — лучше знать оба языка.

А что значит «чистая»? В ML — нечистая? Почему?

Блин, я просто умиляюсь от умозаключений некоторых персонажей — «дотнетчики не вникают в суть», «цепляются за представление», «дотнетчики хуже индусов», «дотнетчики хуже хипстеров». Складывается впечатление о проф. неполноценности этих людей, которые скатываются в откровенное хамство, при этом демонстрируя поверхностное понимание лямбд, замыканий, анонимных функций и прочей «херни», которая цитирую «никому не нужна». Дети, чесслово...

Ну хоть не про анальный секс и то хорошо

выучите оба языка.

В итоге каждый учит язык, на котором проще найти работу/больше платят/крутой прогер посоветовал, работают несколько лет набираясь опыта, а потом каждый отстаивает свой родной ЯП и технологии. Не видел ни одного дотНетчика, который сказал бы «Java круче чем .Net» и наоборот. Врятли ктото скажет «На Java/.Net я проработал Х лет и понял, что ошибся с выбором»

Врятли ктото скажет «На Java/.Net я проработал Х лет и понял, что ошибся с выбором»

Кстати, да, резонно. Пока есть работа на том и на том, о чем жалеть то? Жалеют восновном те, кто выбрал невостребованную технологию.

Я вообще не понимаю чего холиварится. Мы де факто работаем в одной области, и без особого труда можем перейти с одного языка/фреймвёка на другой.

Жалеют восновном те, кто выбрал невостребованную технологию.
Сильверлайт?

Сильверлайтовцы могут легко перекинуться на WPF.

Круче всего C++, но он для реальных программистов и, а не для индусоскриптокодерков.

MIX

круче всего вообще без языка, и вообще без компа. хардкор.

да, торговать на рынке — это круто!

ТОЛЬКО МАШКОДЫ, ГОВОРИТЕ ОТКРЫТО И СМЕЛО ПРЯМО В ЛИЦО: 48 65 6c 6c 6f 20 77 6f 72 6c 64 21 24 ba 00 01 b4 09 cd 21 b4 00 cd 21

Ты б еще брейнф*к приплел

Во так вот «Бывший студент» без плохого умысла опять разжег затертую до дыр «священную войну». Похлеще Крестового Похода уже :)

Хотите качественного ФП тогда Welcome to Haskell

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

Ну вот если хочешь сузить себе рынок до трех вакансий(еще у ипама хаскел студентов ищут) — ФП твой выбор!

Java лучше по причинам:
a) зарплатным
б) идеологическим

в) востребованности на рынке

То есть, скажем вакансий с H1B для java куда больше чем для .net из этого (а еще из компаний использующих java — Google, Amazon, Twitter, IBM, Bank of America) , можно сделать вывод что серьезных проектов требующих крутых специалистов в TEN. меньше.

Вот несмотря на ваши презрительные взгляды на C# - с вышеописанным не поспоришь.

Странно, а всегда казалось что в Google, Amazon, Twitter ищут людей умеющих решать задачи, а не кодеров на конкретном языке, и вроде как когда они интервьюируют, они позволяют писать код на любом удобном тебе языке и не спрашивают вопросы про синтаксис, откуда тогда привязка к Java для миграции?

Откройте вакансии google, там написано Java or C++. В amazon точно так же C++ or Java, вот и тешьте себя дальше фантазиями про то что кому-то нужны не инженеры с опытом в определенных технологиях, а люди умеющие решать задачи.

www.amazon.com/..._rd_i=203348011
www.amazon.com/..._rd_i=203348011

Не хочу Вас расстраивать, но таки да, основное внимание уделяется не технологиям, а computer science. Вопросов по технологиям часто вообще нет, особенно на начальном уровне.

Это для джуниоров. А когда нужен синьйор, чтобы уже вчера работал, то критерии другие ;-)

Да, больше для джуниоров. Но и для более высокого уровня часто основной упор на cs. Это видно из статей про собеседования и в Google, и в facebook, и в microsoft. Мне кажется для опытного дева перейти из шарпа в яву или наоборот не очень большая проблема, а математика/cs — намного более серьезный навык.

Скит, мягко говоря, неплохой сишарпер. Работает джавистом в гугле.

Мне кажется для опытного дева перейти из шарпа в яву или наоборот не очень большая проблема,

Это распространенное заблуждение. Освоить синтаксис языка — таки да, не должно занять много времени. Но синтаксис языка это процентов 10 от того что должен знать дев, для того чтобы вести «нормальную» разработку.

синтаксис языка это процентов 10

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

С практической точки зрения можно четко увидеть тенденцию уменьшения значения свойств языка программирования (конечно и потому что ЯП изменяются, смешиваются, «шлифуются до блеска»)

С практической точки зрения имеет смысл говорить о семантической мощности ЯП. Которая да, нередко требует синтаксической поддержки. Но если язык уже обладает выразительной возможностью — то введение ее в синтаксис существенного не добавит.

Как показывают некоторые соседние топики — большенство заседателей доу, предпочитает заниматся не «разработкой» (в широком смысле этого слова), а «кодированием» (тоже в широком смысле). А если приоритет кодирование, то семантика и синтаксис языка будут иметь приоритет в глазах программистов.

Неплохо бы было определение что есть «разработчик», а что есть «кодер». А то к последнему традиционно сложилось слегка негативное отношение которое врятли он заслуживает.

А так да — человеку который не работает с кодом — до синтаксиса, семантики и удобства языка дела столько же сколько до количества и размера гаек в его машине.

а что есть «кодер»

Из других профессий:
переписчик книг (до печ станка)
стенограф,

«валяльщица-вязальщица»

А то к последнему традиционно сложилось слегка негативное отношение которое врятли он заслуживает.

Снобизм, да, присутствует. Особенно у юных, когда соц. статус беспокоит :)

У юных даже споры идут:

кто кручее(важнее) в рок-группе, бас-гитарист, ритм-гитарист или ударник? Фронтмен, вот кто главный!

Профессией дворника тоже пугают, хотя никто не желает жить в загаженых подъезде и дворе.

А так да — человеку который не работает с кодом

Писатель, журналист — работают с «кодом». Но они — не «переписчики книг». Разработчики, да.

до синтаксиса, семантики и удобства языка дела столько

И обычно, «переписчик книг» смутно представляет проблемы кода. «Писатель» да, расширяет, обогащает язык, а не «переписчик».

столько же сколько до количества и размера гаек в его машине.

Как-то встретил — если бы Форд предложил свои грузовики биндюжникам — то потерпел бы полный провал.

Но он предложил их владельцам морских портов.

Конечно и метла, и перо, и ЯП — должны быть удобны, повышать эффективность труда.

И уважение к качественному труду должно быть, будь то труд дворника, кодера, или президента компании.

Вопрос в другом, что кодеры не понимают глубоко своих проблем.
Например в разговоре о C# vs Java (как ЯП) они видят круть в пропертях, а не, скажем в ковариантности обобщенных типов.

«Нам не нужны грузовики, нам нужны большие и сильные лошади!»

То есть кодеры — редко могут самостоятельно осмыслить свой труд, чтобы повысить его эффективность. Хотя только кодированием и заняты.

Например в разговоре о C# vs Java (как ЯП) они видят круть в пропертях, а не, скажем в ковариантности обобщенных типов.

Или же в своей ИДЕ

Да фиг с ними, пропертями, по мойму в НетБинсе был инструмент, который автоматически создавал геттеры-сеттеры на все поля. А вот ЛИНКа, лямбд и событий Джаве таки сильно не хватает.

Кстати о лямбдах, может раскажите уже как выстрелить в ногу лямбдой? Мне сильно интерестно.

Ну это к дотнетчикам, у джавистов нету лямбд

Это я знаю, просто вы вчера распостранялись, как же страшно использовать лямбды, и какой это жуткий недостаток С#.

Я такого за собой не помню.

Ни того что это страшно, ни того что это жуткий недостаток C#

Вот чем мне не нравятся холивары, что приходится отдуваться и за тех парней.

Как в советской школе:

Ты слушаешь Металлику?? Да как ты можешь, фаны рока наркоманы и алкоголики!

Блин, ай эм сори. Вышенаписанное было не Вам, а Viacheslavу.

сидим и думаем как дальше жить без лямбд и линка... Я вообще бы предпочел вместо лямбд темлиты на уровне JVM иметь а не компилятора.

таки сильно не хватает.

А почему — сильно? Вот какие критерии нехватки вы используете?

Кстати о лямбдах, может раскажите уже как выстрелить в ногу лямбдой?

О их страшной опасности был не мой тезис.

Но выстрелить себе в ногу можно и ими.

Хорошо видно это в JavaScript:

function makeArmy() {

var shooters = [];

for(var i=0; i<10; i++) {
var shooter = function() { // функция-стрелок
alert(i); // выводит свой номер
};
shooters.push(shooter);

}

return shooters;

}

var army = makeArmy();

army[0](); // стрелок выводит 10, а должен 0
army[5](); // стрелок выводит 10...

// .. все стрелки выводят 10 вместо 0,1,2...9

Если в C# так нельзя выстрелить себе в ногу, то там, фи, какие-то недолямбды

Врятли ошибусь если скажу, что это довольно «классический» вопрос на интервью на C#.

Здесь подробнее описано + будущее этого вопроса на C# 5 habrahabr.ru/post/141270

Лямбды приобретают опасность когда их используют в контексте, у которого есть сохраняемое состояние между вызовами лямбды.

То есть — в ООЯ — когда происходит захват контекста с объектом, у которого по определению — есть состояние.

Бороться можно, и жить можно, и польза от лямбд есть :)
Просто такой вот казус от смешения идей из разных парадигм.

«спина болит, шерсть клоками и хвост отваливается»

Смотри внимательно, в этой теме, комментарий от пользователя Viacheslav, в котором он пишет что «Java лучше C#», потому что «г)разнообразие IDE».

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

Ну удобные проперти не исключают ковариантности (начиная с .Net 4).

А насчет остального — на мой взгляд просто приведен пример между Junior и Senior.

В моей терминологии — «кодер» это человек который большую часть времени пишет код, скажем 80% времени, причем может писать хорошо (как писатель) или плохо (как вязальщик-валяльщик), а «разработчик» — это например архитекторы, аналитики, внедренцы — которые непосредственно код пишут когда других способов решения пользовательской проблемы уже нет, или там для прототипирования решения для «кодеров».

Ну удобные проперти не исключают ковариантности

Я не говорил что исключают :)

А насчет остального — на мой взгляд просто приведен пример между Junior и Senior.

Можно и так. Сложно представить программиста который не начинал с простого кодера. Бывают наверное.

В моей терминологии — «кодер» это человек который большую часть времени пишет код, скажем 80% времени

Ну, с определениями сложно спорить.

Но я потому и показал аналогии качественного отличия, а не приводил определения. Просто сразу прикинул что уйдет больше времени чем написание аналогий, и все равно можно будет нарваться на — «так что, Гослинг с Хейслбергом тоже кодеры?»

а «разработчик» — это например архитекторы, аналитики, внедренцы

Вот-вот, из определения 80% вытекает неверная, ИМХО, градация и дальше.

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

Разработчик отвечает и за то ЧТО написано. А кодер только за — КАК написано.

Вот как раз если разработчик умеет писать ЧТО-ТО, но очень плохо — КАК, ему дорога в архитекторы и аналитики. Впрочем, тоже спорно, уважаемый мной Gaperton как-то привел мнение, что через пару лет, аналитики которые не пишут кода начинают генерировать такооооой мыслительный бред.

Ну как Феллини говорил что все его фильмы — это заслуга его монтажера. Потому что он сам — просто снимает что взбредет в голову. (думаю лукавил, а просто указывал на важность труда монтажера)

То есть, если говорит о лямбдах — то ты «кодер» — низшее существо, а если о ковариантности — то настоящий «разработчик»? А чем в этом плане отличается лямбда от ковариантности? И то и то состоит как из семантики так и из синтаксиса. И то и то — «фича» языка.

Как я упоминал, программист работает с кодом. Любой, что кодер, что разработчик. Поэтому не имел ввиду такое противопоставление.

А имел ввиду бОльшую важность ковариантности в сравнении с лямбдами.

Это как: «сколько вам надо для полного счастья»?

Или — спросим о мечте ребенка и взрослого.

Кодер для меня — не есть нечто презрительное.

Неплохо бы было определение что есть «разработчик», а что есть «кодер».

Мое сугубо личное мнение — разработчик решает бизнес задачу, где кодирование это определенная часть процесса; в то время как кодер получает на вход тз, а на выход дает рабочий код. Причем в негативном смысле под кодером подразумевают джуна, который на вход получает готовую умль с композицией класов, и расписанными алгоритмами, и которому только и нужно — вбить текст в редактор.

Мое сугубо личное мнение — разработчик решает бизнес задачу, где кодирование это определенная часть процесса;

Даже не обязательно бизнес-задачу.

Бизнес-задача может быть большой в реализации, и ее могут реализовывать несколько человек.

А вот так:
Кодеру — напиши тут синглтон.

Разработчику — обеспечь единственность сущности. Разработчик (если непонятно из контекста) в ответ вопрос — какое окружение ее инициализации и работы?

То есть кодер будет отвечать только за правильно написанный код синглтона.

Разработчик берет на себя ответственность за работу доверенной ему сущности.

под кодером подразумевают джуна

Да, «переписчик книг». Для джуна вполне естественно. Все так начинали. Ничего зазорного не вижу и сейчас, если требуется.

Синтаксис и семантика связаны. Лямбды и проперти имеют как синтаксическую так и семантическую составляющую.

Мы обсуждаем два языка, и тут важен и синтаксис, и семантика, и даже стандартная библиотека классов.

И можно прикинутся «разработчиком» как пишет в своем комментарии товарищ рядом, сказать свое «фи» по отношению к «кодерам», и размышлять о хитрых алгоритмах. Но когда нужно будет что то реализовать — нужно будет иметь дело с синтаксисом в любом случае. И вот тут, лично я бы хотел как раз сконцентрироваться на семантике и алгоритмах, а не на синтаксисе, и вот тут важно что бы синтаксиса было меньше,

и он был проще. Что бы можно было легко писать и читать. И вот по этой причине лямбды и проперти — тоже важны, в том числе и синтаксисом.

Синтаксис и семантика связаны.

Не всегда. Не обязательно.
Либо у нас расхождение в терминах.
Мой рецепт термина «семантика»:

Берем русское слово «смысл», отсекаем его значения цель, необходимость, польза — то что остается и будет семантикой.

И тогда

Мы обсуждаем два языка, и тут важен и синтаксис, и семантика,

семантику для тьюринг полного языка нет смысла обсуждать. Утрировано говоря холивары о ЯП часто именно этим и нелепы — они: «а какой из тьюринг-полных языков полнее?» = «а что из стопроцентного — стопроцентнее?»

Что бы можно было легко писать и читать.

Да, синтаксическая поддержа повышает удобство.
Семантически цикл написать можно и так:
int i=0;
LABEL:

if (i < 9) { ++i; goto LABEL;}

А наличие синтаксиса в виде операторов for, while, дает ощутимые удобства.

И вот по этой причине лямбды и проперти — тоже важны

Важны и зубная щетка и автомобиль.

В жизни много чего важно. Это не значит что нет приоритетов.

важно что бы синтаксиса было меньше

Неправда ваша :) Ужимание синтасических конструкций тоже может привести к усложнению чтения кода. Способы уменьшения известны — увеличение числа операторов, увеличение числа выражений на их основе,
увеличение влияния контекста семантику операторов и выражений,

макросы, метапрограммирование, DSL.

И уже известно, что есть трудноуловимая грань — когда усушка синтаксиса приводит к письму и чтению «контекстно зависимых иероглифов»

К Ифку́илю —

Пример из Вики:
Короткая фраза у́кшшоул э́йхнуф приблизительно переводится как Что-то заставило группу бегущих клоунов начинать спотыкаться или Группа клоунов начинает спотыкаться на бегу. Этот смысл составляется так:

ru.wikipedia.org/wiki/Ифкуиль

В языках программирования, как искусственных происходит нередко тоже самое — из-за желания сократить синтаксис.

А что нужно еще освоить что бы вести разработку? и почему это так длолго приходит со временем, а не гуглиться? то есть если вы умете водить скажем Жигули вы на Форд не пересядете? что поменяеться кроме пары дней-недель привыкания к новой машине?

Ага, только водите вы не «жигули», а атомною подводную лодку, скажем, советского происхождения. Что поменяется если вы пересядете в атомную подводную лодку амереканского происхождения ? «„Принципы“» то у них одни и теже. Загуглите за неделю разницу?

А что не гунлиться и не спрашиваеться у более опытных колег? как работать с БД, какие есть сериализации, параметры компилятора или JVM, или примеры реализации делегата на Java? Когда вы приходите на работу вам скорее всего дадут какой-то код в котором что-то надо сделать и описание того что надо сделать :) какие аспекты языка в данном случае не гугляться если человек с соображалкой понимает как это надо делать?

Человек «с соображалкой», который не знает особенностей языка, платформы, принятых подходов, и рабочих фреимворков часто сходу продюсит код, который потом заносится в экземпляры Бкода. За примером далеко ходить не надо — зайдите в соседний топик где флайман свой код привел, и его потом бывалые жависты «гнобили» по полной программе. А вот эти «особенности языка, платформы, принятых подходов, и рабочих фреимворков» — не гуглиться за один день, а вбивается за месяцы и годы практики.

А почему флайман это представитель репрезентативной выборки? какие особенности языка, платформы, принятых подходов нельзя нагуглить, или найти в существующем коде команды? можно примеры этих сложностей, просто периодически приходилось то на одном языке не много писать, то на другом, и просто может я что-то делаю не так, все гуглилось и доков и примеров кода полный инет

Я и не говорю что нагуглить нельзя. Сколько вы гуглить будете ? Мне, например, для овладением технологией ГВТ (методом гугления, проб и ошибок) до состояния «окей, теперь можем чтото писать» понадобилось около месяца. При этом я себя «экспертом» никак назвать не мог, и по ходу дела постоянно натыкался на подводные камни и различные ошибки. Сколько вам понадобится времени, для того чтобы овладеть данной технологией до состояния «эксперт», когда вы сходу по ТЗ будете продуктивно писать «хороший» код?

Что значит хороший код, и что значит по ТЗ? ТЗ предполагает решение определеной задачи и нужно придумать способ, это не зависит от языка, от языка зависит реализация, она может быть проще или сложнее, понятно что хаки и ньюансы нагуглить сложно, но это хаки и ньюансы а не разработка, и опять же к примеру проблемы с производительностью и прочие моменты и умение их диагностировать и решать не зависит от языка, а ньюансы опяже же гугляться, можете привести пример чего-то что не гуглиться для человека который умеет разрабытывать код на шарпе к примеру и решил писать на жаве?

*facepalm*
Толи я мысль внятно изложить не могу.
Толи лыжи не едут.

Толи Богдан прав.

Наверное я еще глупый, ну смотрите что для вас

продуктивно писать «хороший» код

и почему если вы уже умеете писать хороший код и понимаете как и почему это на шарпе например вы не сможете писать на Java? в чем концептуальное отличие? в названии классов фреймворков, сигнатуры методов? чем принципиально работа с БД, файловой системой, устройствами, ведом отличаеться кроме названии и синтаксиса самих методов? Если у вас таже БД к примеру то с абстрактной точки зрения тот же Оракл что для Шарпа что для Java он Оракл, какое-то устройство на IO тоже устройство, Веб-сервис получает такие же HTPP/SOAP/SSL запросы что и для шарпа что концептуально меняеться кроме имет, иерархии классов, и сигнатуры методов?

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

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

Про фреимворки логично спрашивать, если хочеться чтобы человек сразу начал с ними продуктивно работать, а не «втыкал» некоторое время.

Ну у нас просто особенности разаботки другие, там часто нужно придумаеть решение или фичу, а к нам приходят дяди с своими придумонастями и просят реализовать что б подешевле, обсуждение то шло про Гугль и Амазон про их интервью

Я думаю, дело не столько в особенностях, а том, что гугль просто может себе это позволить.

Я не тешу, очень много друзей с опытом на C# переходили туда на работу и получали оферы, на интервью вообще спрашивали язык на котором ты хочешь писать псевдокод или логику, да в чем проблема освоить одно зная другое если все просто гуглиться? но вот понимание того как улучшить серч или как организовать безопасное соендинение в облаке это уже не гуглиться, а придумываеться

Постараюсь ответить максимально кратко и по делу.

Ответить на вопрос что лучше — C# или Java — можно легко — на сегодняшний момент C# лучше. Как язык. Из-за синтаксического сахара, поддержки лямбд, динамических типов, большого набора сопутствующих технологий и самой лучшей на сегодняйший день IDE. Ну и плюс «бонус» — f#, ironpython, ironruby и т.д.

Если говорить о Java и .NET — а это было бы более корректней, то сдесь ситуация очень простая: здесь нет явного фаворита. Java берет свой мудростью и отпытом, .NET берет своей молодостью, динамическим развитием и легкостью.

Я знаю очень мало людей, которые перешли из Java в .NET или наоборот. Чаще — они просто совмещают деятельность с большим перекосом в одну из платформ. Как люди попадаю на ту или иную сторону? Обычно — случайно, какой первый проект попался — туда и поши, часто — по совету более опытного коллеги, который посоветовал — учи Java или учи .NET.

Работал в компании единственным дотнетчиком, где вокруг меня сидели сплошные джависты. Не нужно говорить, сколько всего о винде, .net и о себе я наслушался. Но! Средний уровень входа в средний java проект (который обычно уже лет 5-10 как разрабатывется и сапортится кем-то) — был около полугода. Учить надо было по больше части предметную часть и Product API, а не Java. Большинство проектов на .NET — новые. Не нужно говорить, что это гораздо лучше, чем писать 100500-й модуль к 15 летней системе.

За кроссплафторм я уже писал — Saying Java is good because it works on all operating systems is like saying anal sex is good because it works on all genders. Это один из любимых аргументов почитателей Java, но, на мой взгляд, он уже себя исчерпал, т.к.:

1) 90% новых проектов делают клиент-серверными, т.е. back-end (хоть на голом С++) + REST + тонкие клиенты под все попало.
2) те системы, которые делаются на java десятый год, как правило, до сих пор выполняются в ie6 под конкретным activex на зоопарке серверов и кроссплатформом там и не пахнет.

3) если это enterprise система, то к рабочим местам ставят конкретные требования и если рабочая машина клерка не оснащена последним фреймфорком и еще 100500 примочек к ней — одна единственная нужна программа не запустится. Так вот — часто стоимость одной такой лицензии может превышать стоимость софта и оборудования в разы (сам принимал участие в написании такой системы — есть мин требования, не нравится — давайдосвидания).

И вот те 5% компаний, которым реально нужен кросплатформ, вполне осознанно и верно выбирают java. Кстати, почему то к monotouch, phonegap, flash builder и т.д. в целом весьма прохладное отношение — почему же? Это ведь кроссплатформ! Ну и чтобы закрыть вопрос кроссплатформенности — частное всегда лучше общего.

.NET — это еще возможность менять домен хоть каждых 2 года — десктоп, веб, клауд, мобайл и т.д. — все это воспринимается рядовым дотнетчиком достаточно легко. Переход из домена в ломен в Java более проблематичный. Средний проект длиться намного больше.

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

А джавистам из этого треда я бы посоветовал чуть лучше разобраться в .net, чтобы перестать использовать аргументы пятилетней давности. За это время .net подрос. А работы хватит всем.

Типичные пунктики типичного додиезфила (ничего личного ;-) )
Кроме этого

самой лучшей на сегодняйший день IDE

Вот на этом пункте пожалуйста по подробнее.

Вот на этом пункте пожалуйста по подробнее.
Он имел ввиду. С такими то конструкторами интерфейса. Формошлепы такие формошлепы
Может специально сделать видео — разница между watch и интеграцией с дебагером в VS2010 и Eclipse последней версии? А аргумент «формошлепы» — это уровень детского сада, и известен он ещё со времен «C/C++ vs Delphi». Если у вас нету нормальной GUI, с нормальным дизайнером — то это вам в минус, а не плюс.

А когда говорят о Visual Studio, как о одной из лучших IDE, подразумевают IntelliSense, интеграцию с дебагером, разные варианты навигации по коду, и так далее.

Сделайте. только чур не с эклипсом сравнивать, а с идеей.

А когда говорят о Visual Studio, как о одной из лучших IDE

Для тебя крутость ИДЕ основная причина писать под неправославный дуднет?

Причины были изложенны ниже. Но ИДЕ — это конечно важный аргумент. Ненависть к JS во многом произростает из за отсутсвия для неё нормальной ИДЕ.

Мне хватает Sublime Text 2 с головой

Да ради Ктулху, а мне не хватает. И судя по разговорам не мне одному. Не стоит принижать роль ИДЕ.

Да какая нахрен IDE уже все давно на SATA-III перешли :D ...

Не основная, но причина. И мне не стыдно за это. Я не хочу тратить время на реализацию того что я задумал, а не на борьбу с IDE. И что за цирк с фразами в стиле «неправославный дуднет» и в таком стиле, или один раз написанное корректно название вражеского языка/платформы — страшный позор на весь род? И 10 лет несчастий?

самой лучшей на сегодняйший день IDE
Вот на этом пункте пожалуйста по подробнее.
Это у них такая аксиома.

Коротко по данному посту. У автора дотнет головного мозга

Ответить на вопрос что лучше — C# или Java — можно легко — на сегодняшний момент C# лучше. Как язык. Из-за синтаксического сахара, поддержки лямбд, динамических типов, большого набора сопутствующих технологий и самой лучшей на сегодняйший день IDE. Ну и плюс «бонус» — f#, ironpython, ironruby и т.д.

Джава лучше, так как
а) меньше возможностей выстрелить себе в ногу
б)меньше индусов
в)одна парадигма
г)разнообразие IDE
д)нету привязки к одну вендору

е) больше разнообразных проектов

легкостью

Та ладно? Та же ВМ только в профиль

Большинство проектов на .NET — новые.

А вы не слышали о поддержке гуано кода на нет 2.0 например ?

те системы, которые делаются на java десятый год, как правило, до сих пор выполняются в ie6 под конкретным activex на зоопарке серверов и кроссплатформом там и не пахнет.

Вы серьезно?

Кстати, почему то к monotouch, phonegap, flash builder и т.д. в целом весьма прохладное отношение — почему же?

Монотач не нужен, можно обойтись обджектив-си например, флеш не нужен, так как будущее за HTML5

А джавистам из этого треда я бы посоветовал чуть лучше разобраться в .net,

Спасибо, сами кушайте своё

использовать аргументы пятилетней давности.

Где вы такое видели?

Коротко по данному посту. У автора дотнет головного мозга
С таким успехом можно сказать, что у тебя — Java головного мозга.

а)меньше возможностей выстрелить себе в ногу
б)меньше индусов
в)одна парадигма
г)разнообразие IDE
д)нету привязки к одну вендору

е) больше разнообразных проектов

a) Без примеров, эта высоко художественная метафора не несет особого смысла.
б) Замерял? И чего же так? Такой совершенный язык, и такой популярный, с такими огромными перспективами, а индусов меньше... парадокс. Наверно потому что Джава, это элитарный язык магически отталкивающий «индусов». Он наверно уже практически собрал всех лучших инженеров вокруг себя. Все значимые умы. Только индусы и разные отбросы все ещё пишут на C# и других языках.
в) Только одна парадигма? Назови её пожалуйста. И также объясни пожалуйста, в чем проблема с 10 парадигмами, если они не мешают программисту пользоваться любыми 2 или 3 на выбор.
г) И в этом разнообразии, у самой популярной IDE (Eclipse), до сих пор нету нормального watch и дебага (если сравнивать с visual studio). К тому же, С# - это как минимум Visual Studio, SharpDevelop, MonoDevelop, не говоря уже о более простых-мелких. Разнообразие IDE — это дело комьюнити, разработчик языка выпускает свою IDE, если у людей есть потребность они делают свою IDE, если нету — то используют доступные. Важно не разнообразие, важно наличие хотя бы одной удобной, или хотя бы достаточно для того что бы в ней нормально работать, если их несколько это конечно чудесно, но не столь важно, это не обои на рабочий стол — менять каждые пол часа.
д) Конечно, привязка сразу к четырем, лучше чем привязки к одному, лучше иметь четыре зависимости, чем одну. И что, Oracle уже отдал Джаву полностью в руки комьюнити?
Так или и иначе разработчик привязан к кому то, чему то, если конечно он не пишет все с нуля. В чем проблема собственно? Если технология не развивается или развивается не в том направлении, это не означает что все перестает работать, никто не запрещает использовать предыдущие версии, а если новые не устраивают — думать о переходе на что то другое. И это явно не Микрософт продался Ораклу, тем самым поставив под вопрос судьбу своего языка и платформы. С C# и .net пока что все хорошо, что язык, что платформа — развиваются во всех возможных направлениях.
Даже свободы для комьюнити больше — никто никого не судит (возможность свободно использовать С# официально обещана Микрософтом, и это обещание не подлежит отзыву, и в отличии от Java, C# - ISO стандарт. В тоже время — Оракл судится Гуглом из-за Джавы.

e) Заявление человека, который кроме Java — ничем не интересуется, основанное на его личном опыте — Java программиста?
Java язык высокого уровня, близок к C#. Технические возможности сопоставимы -
все зависит только от желания, удачи, заказчика. Оба языка присутствуют, на десктопе, на вебе, на мобильных устройствах. Для C# есть даже такое — netduino.com, прошу предоставить аналог на Java (хотя не удивлюсь что тоже есть).

А вы не слышали о поддержке гуано кода на нет 2.0 например ?
В самом языке версии 2.0, нету ничего такого, что бы делать его «гуано» кодом,
проблема в тех кто писали, и на Джаве есть такие люди тоже. Особенно среди тех кто считает что анонимные классы Джавы — отличная замена лямбдам. И считающих что LINQ c method chaining-гом — никому не нужно и не приносит пользы.
Спасибо, сами кушайте своё
И человек с таким подходом и отношением, рассказывает нам об отличиях одного языка от другого. Не читал, но осуждаю.
Монотач не нужен, можно обойтись обджектив-си например, флеш не нужен, так как будущее за HTML5
Предлагаю для начала почитать книжку про обджектив-си, что бы насладится всей логичностью и удобством его синтаксиса. Только вот вопрос, похожий на тот что люди уже задавали в этой теме, если ничего больше не нужно, почему же люди пишут, на monotouch, на адобе AIR, и даже на С++ под iOS? Кстати, а вот можно на iOS писать на Джаве? Ой, оказывается нет — stackoverflow.com/...os-applications Что ж такое, а как же кросплатформеность? А как же поддержка комьюнити? Мерзкий C# при помощи mono — умеет заранее компилироватся в нейтив, а Java — не умеет? Теперь я понимаю, откуда исходит «можно обойтись обджектив-си» — наверно мы очень близко подошли к больной теме.
А по поводу флеша и html5, вам нужно срочно связаться с Гуглом,
им нужна ваша консультация, как сделать удобный upload в gmail без флеша.
Эх какой знатный баттхерт
Итак:

1)

Без примеров, эта высоко художественная метафора не несет особого смысла

Хотя бы используя те же делегаты, лямбды, замыкания можно себе прострелить себе ногу

2)

Замерял? И чего же так? Такой совершенный язык, и такой популярный, с такими огромными перспективами, а индусов меньше... парадокс. Наверно потому что Джава, это элитарный язык магически отталкивающий «индусов». Он наверно уже практически собрал всех лучших инженеров вокруг себя. Все значимые умы. Только индусы и разные отбросы все ещё пишут на C# и других языках.

Порог входа в сишарп настолько низок, что индусы так и прут

3)

Только одна парадигма? Назови её пожалуйста. И также объясни пожалуйста, в чем проблема с 10 парадигмами, если они не мешают программисту пользоваться любыми 2 или 3 на выбор.

Да у джавы одна парадигма, обьектно-ориентирована. А проблема в том, что имея две парадигмы можно себе выстрелить в ногу
4)

И в этом разнообразии, у самой популярной IDE (Eclipse), до сих пор нету нормального watch и дебага (если сравнивать с visual studio). К тому же, С# - это как минимум Visual Studio, SharpDevelop, MonoDevelop, не говоря уже о более простых-мелких. Разнообразие IDE — это дело комьюнити, разработчик языка выпускает свою IDE, если у людей есть потребность они делают свою IDE, если нету — то используют доступные. Важно не разнообразие, важно наличие хотя бы одной удобной, или хотя бы достаточно для того что бы в ней нормально работать, если их несколько это конечно чудесно, но не столь важно, это не обои на рабочий стол — менять каждые пол часа.

Может на голом эклипсе и нету

5)

И что, Oracle уже отдал Джаву полностью в руки комьюнити?

Про openjdk не слышал? Или в вашем мирке ничего кроме црешетки не существует?

В тоже время — Оракл судится Гуглом из-за Джавы.

Как бы оракл проиграл, и суд признал, что языки не могут быть запатентованы

Заявление человека, который кроме Java — ничем не интересуется, основанное на его личном опыте — Java программиста?

Почему же ничем. Кроме джавы еще скалой, ерлангом и хаскелем например

Java язык высокого уровня, близок к C#

Скорее наоборот

Предлагаю для начала почитать книжку про обджектив-си, что бы насладится всей логичностью и удобством его синтаксиса.

Почитайте книги по Perl насладитесь, в обджектив-си еще нормальный синтаксис

Кстати, а вот можно на iOS писать на Джаве?

А зачем?

А по поводу флеша и html5, вам нужно срочно связаться с Гуглом,

им нужна ваша консультация, как сделать удобный upload в gmail без флеша.

У меня на рабочей станции нету флеша, и это мне не мешает пользоваться жмейл

Хотя бы используя те же делегаты, лямбды, замыкания можно себе прострелить себе ногу

Я то думал, что вы про ансейф... Демонстрация прострела ноги лямбдой в студию. Кстати, а если вам дадут в руки пистолет — вы прострелите себе ногу?

Порог входа в сишарп настолько низок, что индусы так и прут

Полный бред. Абсолютно одинаковый порог входа (да-да, я учил и использовал Джаву до Шарпа).

Да у джавы одна парадигма, обьектно-ориентирована. А проблема в том, что имея две парадигмы можно себе выстрелить в ногу

Элементы функциональщины отлично прижились в Шарпе. Причём именно элементы, полноценного ФП в Шарпе нет. И напомните, не в Джаве ли со следующей версии появятся Лямбды?

Остальное не по делу.

Полный бред. Абсолютно одинаковый порог входа (да-да, я учил и использовал Джаву до Шарпа).

Я думаю, если бы ты haskell учил бы, то тоже проблем не испытывал.

Спасибо конечно, но Шарп и Джава действительно абсолютно одинаковы по сложности изучения. Просто Шарпа, как языка, немного больше.

В J2EE даже джуниор должен знать зоопарк фреймворков, вот и при более простом языке больший порог вхождения.

В .net джун точно так же должен знать зоопарк фрейвёрков. WPF для десктопщиков, ASP.net, ASP.net MVC, WCF для вебдевов, XNA для геймдевов, ADO.net, LINQ и Entity всем. А лучше всё сразу.

Все же зоопарк поменьше чем в java :)

Мы кол-во названий считаем?) Если нет, то повторяюсь, объём материала и его сложность одинаковы.

Выбор очень простой: более мощный язык или более кросплатформенный. Остальное несущественно.

В результате джуны пишут код на этом зоопарке, который делает 8000 запросов к базе на одной страничке.

Вы это серьезно? Или так толсто троллите?

А ну покажите вакансии XNA джунов?

А почему именно джунов? XNA это фреймворк ориентированный на инди-геймдев и XBOX, и последнее время на Windows Phone 7. Искать нужно на геймдев фирмах. Аутсорс в нашей стране разве вообще таким занимается серьёзно (XBOX игры)? Тем не менее это не означает что его никто не использует.

Вот вам интересная вакансия кстати, к вопросу о разнообразии

careers.stackoverflow.com/...neer-xbox-skype

Ах да, это же теперь подразделение Микрософт, наверно не считается.

Даже искать не буду, в Украине геймдев и так не развит, а уж для новичков... Впрочем мидловские вакансии на XNA я встречал. Но вы не отвлекайтесь, а отвечайте на мой ответ.

Демонстрация прострела ноги лямбдой в студию. Кстати, а если вам дадут в руки пистолет — вы прострелите себе ногу?

По сравнению с C++ - фигня.

Хотя бы используя те же делегаты, лямбды, замыкания можно себе прострелить себе ногу

Тебе уже ответили ниже.

Порог входа в сишарп настолько низок, что индусы так и прут

Хаха, да-ааа, давненько я не слышал читал подобного. Времена и языки меняются, бредовые заявления религиозных фанатиков — нет, раньше это был Delphi vs C++, теперь C# vs Java, только вот Java на роль C++ не очень подходит. И чуть выше было обвинение в «формошлеплстве», из той же серии, и «выстрел в ногу», не аргументы, а набор клише.

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

А ещё могу рассказать историю из жизни. Как то раз на работе, я со своим более старшим коллегой — сидел исправлял баг в проекте на С++, над которым до нас работали настоящие индусы, которые на самом деле писали на Джаве в основном.
Долго не могли понять в чем дело, и что творится с памятью. Пока не заглянули в код метода, который вызвался за 40 строчек, до места бага. И увидели мы там, код индуса, который возвращал наружу из метода указатель на объект из стека.
Вот это и есть настоящий «выстрел в ногу», только не себе, а тем кто потом с твоим кодом будет работать, и причина его, в том что человек не знает куда направлять ствол ружья. А фичи C#, по сравнению с этим, водяные пистолетики, и фичи Джавы тоже.

Собственно — там где ты эту фразу подхватил, готов поспорить, про С++ речь и шла, но это уже совсем другая история.

Да у джавы одна парадигма, обьектно-ориентирована. А проблема в том, что имея две парадигмы можно себе выстрелить в ногу

Ну что за садистские наклонности, хватит над ногой издеваться. Пожалуй лучший язык тогда — это бейсик, в самом своем простом варинте, там нечем ногу прострелить, можно только заковырять.
en.wikipedia.org/...mming_languages

А вот вики говорит, что у Джавы, четыре парадигмы, когда у C#, всего лишь на одну больше (какой ужас, страшные лямбды). Только смотри, сильно не переживай, а то ещё прострелишь себе ногу, парадигмой. Да, за знание парадигм — два с минусом.

Почитайте книги по Perl насладитесь, в обджектив-си еще нормальный синтаксис

Я уже читал. И по этому прежде чем использовать Perl, я сначала попробую найти альтернативу, тоже самое с Objective-C. В данном случае xamarin предлагает альтернативу на основе mono и C#, а где альтернатива на Java?

Зачем? Ну а зачем тогда Джаве кроссплатформеность, зачем на .NET-те тогда IIS?

У меня на рабочей станции нету флеша, и это мне не мешает пользоваться жмейл

Да, глупые разработчики из Гугла, зачем же они тратят время и пишут код который проверяет наличие flash, и в случае его присутствие делает закачку через него? Хотя я готов признать (я же не религиозный фанатик), что возможно я не прав по этому пункту, если конечно все браузеры реализуют HTML5 File API, и с ним действительно будет проще. Или может уже реализовали?

Почитайте книги по Perl насладитесь

ээээй! Perl не трогать! или напомнить о регулярных выражениях в java?

И что, Oracle уже отдал Джаву полностью в руки комьюнити?

Так или и иначе разработчик привязан к кому то, чему то, если конечно он не пишет все с нуля. В чем проблема собственно?

А в том собственно отсутствие проблемы, что Oracle не обладает монопольным положением в развитии того что находится НАД JVM.
Не в языке или реализации JVM дело. Ничего такого уникального, и на порядки лучшего чем где-то в них нет.
А в том что вобщем-то стихийно (конечно и благодаря Sun) возникло вокруг языка Java и JVM.

Вот что такого уникального в Linux? Какие такие архитектурные лучшести он предлагает чем Unixы до него? А вот же ж — явление получилось шире чисто технологического. Java метит на такое же явление.

В тоже время — Оракл судится Гуглом из-за Джавы.

Oracлу же придется либо начать брать деньги за JVM, либо отдать в руки комьюнити.
OpenOffice — отдали, посчитав что никак на нем заработать не могут.

Хотя, если их ПО будет зависимо от стандартизированной JVM — то будут развивать и поддерживать бесплатно.

Или основать с IBM и Гуглом какую-то foundation, снабжая ее патентами, деньгами и рабочим временем своих штатных сотрудников.

Частично уже такое есть — JCP комитет

C# при помощи mono — умеет заранее компилироватся в нейтив, а Java — не умеет?

Самому интересно, когда появится примочка к JVM позволяющая компилировать в натив. Но, как понимаю, пока была невостребована, вот поэтому ни Sun, ни Oracle с IBM, ни Гугль (у которых даже JIT компиляции в Далвике не было до Андроид 2.2) — не заморачивались

Теперь я понимаю, откуда исходит «можно обойтись обджектив-си»

Терзают меня смутные сомнения что и на С# с нативной компиляцией приложений для Apple осей — пренебрежительно мало.

Для C# есть даже такое — netduino.com

У ARM вообще аппаратная штуковина есть — Jazelle. Не знаю правда насколько востребована. Как и о Micro .NET — не знаю :)

А в том собственно отсутствие проблемы, что Oracle не обладает монопольным положением в развитии того что находится НАД JVM.

Можно подробней пожалуйста, где есть монополия Oracle, а где нету?
Язык? Основная (самая популярная реализация) реализация JVM? Стандартная библиотека классов? И тоже самое относительно С#?
Насколько я понимаю, так или иначе существует какой то орган отвечающий за новые версии языка, новые версии библиотеки. Нет? За все отвечает «комьюнити»? Как? Голосованием? Я могу проголосовать? JCP? Насколько реально повлиять? Можно ли добиться того что в новую версию Java — добавят делегаты, лямбды, проперти?

Когда я смогу увидеть это все на такой платформе как Android?

Я не вижу тут проблемы! Это все выглядит как аргументы членов религиозного культа, в первую очередь, комментарии Viacheslav-ва.
Ну есть какая то «монополия» где то, и что? Язык работает, IDE есть, спецификация языка меня устраивает, в чем проблема?
Никто не запрещает разрабатывать mono или аналоги. Как это влияет на разработчика?
Разработчик Java так или иначе все равно зависит от Oracle, от Apache Software Foundation, от разработчиков Eclipse или IntelliJ IDEA (JetBrain между прочим, разработчик полезного софта в том числе и для .NET-чиков).
Возможно даже, поддержка со стороны такой фирмы как Микрософт — наоборот преимущество. И Микрософт в ближайшее время язык, платформу — не бросит,

оно все приносит деньги, и аутсорс фирмам, и разработчикам библиотек и инструментов, и предприятиям. Испортить это все — будет глупо с их стороны.

Java метит на такое же явление.

Это явление называется — религия. Я не понимаю, почему это стоит серьёзно обсуждать. Вот и аргументы Viacheslav-ва, в основном религиозные.

Oracлу же придется либо начать брать деньги за JVM, либо отдать в руки комьюнити.

Оракл который будет пытаться выдавить денег из патентов,

всякие IBM, Google желающие помочь, потому что у них много чего на Джаве написано. Это все понятно. Но чем это все лучше C# и .NET?))

Самому интересно, когда появится примочка к JVM позволяющая компилировать в натив. Но, как понимаю, пока была невостребована, вот поэтому ни Sun, ни Oracle с IBM, ни Гугль (у которых даже JIT компиляции в Далвике не было до Андроид 2.2) — не заморачивались

В .NET её тоже нету, в таком виде как на моно, вернее есть, но оно не собирает рабочий EXE со статически скомпилированными либами, оно компилит фрагменты, и собирает в кеше, только ради производительности. А у моно есть полная компиляция — www.mono-project.com/AOT
Вот никто не заморачивался, а в итоге на iOS Джавы нет.

Может в Sun думали, что достаточно иметь Micro Edition и продавать лицензии всяким Нокиям? А комьюнити не пошевелилось, так может все таки Джава зависела от Sun, и зависит от Oracle, больше чем люди думают?

А тот же Андроид — совсем другая история — сомневаюсь что теперь Oracle или какие нибудь fundations будут иметь влияние на эту систему, и на фичи в Далвике.

Вот кстати, а разница между стандартной JVM и Андроидом, случайно не по более будет чем между .NET и mono? Тем не менее Андроид используется часто как аргумент за Джаву.

Терзают меня смутные сомнения что и на С# с нативной компиляцией приложений для Apple осей — пренебрежительно мало.

xamarin.com/monotouch — собственно это коммерческий продукт на базе моно, как раз использует AOT. Продают за 400 долларов для одного девелопера. Я думаю хоть какая то работоспособность минимальная — гарантируется.

monotouch.info/MonoTouch/Apps — вот какой то список опубликованных, не знаю насколько он правдивый (сайт любительский).

У ARM вообще аппаратная штуковина есть — Jazelle.

Подтверждение — что разнообразие тут зависит от желания и фантазии.

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

Сложно представить нечто в котором учавствуют более 7ми человек и без — управления выстроенного иерархически

Я могу проголосовать? JCP? Насколько реально повлиять?

Вы не можете. Как и держатель акций в 0,0X % процента — ничего не может. Так что тоже — норма жизни.

Можно ли добиться того что в новую версию Java — добавят делегаты, лямбды, проперти?

Можно. Если имеющие вес в голосовании решат. Но так как имеющих вес интересуют не забавки для программистов — то такие вещи в Java появляются очень медленно.

Что гарантирует другой важный фактор — сохранение инвестиций. Не только финансовых, а интеллектуальных. Не придется переписывать нечто написанное 5 лет тому.

Разработчик Java так или иначе все равно зависит от Oracle, от Apache Software Foundation, от разработчиков Eclipse или IntelliJ IDEA (JetBrain между прочим, разработчик полезного софта в том числе и для .NET-чиков).

Даже вы набрали списочек. А разработчик .NET зависит только от одной MS. И все.

Возможно даже, поддержка со стороны такой фирмы как Микрософт — наоборот преимущество.

Поддержка со стороны любой крупной компании, с хорошим менеджментом и техническими специалистами высокого уровня — благо, ИМХО.

Будь то MS, Oracle, IBM. Не понял вашего — «наоборот». То вы сами говорите что Oracle цепко держит JVM, то уже у JVM нет поддержки «такой фирмы»

Это явление называется — религия. Я не понимаю, почему это стоит серьёзно обсуждать.

То что влияет на нашу жизнь, на ИТ мир — нужно обсуждать. Названия дела не меняют — если оно влияет, то влияет. Другое дело что если обсуждение скажем только свойств языков программирования Java и C# - то вопросы об ораклах, «религиях» будут неуместными

Да, у меня слово религия не является ни ругательством, ни чем-то негативным. Религии они разные бывают, и религия выполняет очень много функций, чтобы так просто от нее отмахнуться.

Так вот — если религия появляется, то есть какие-то причины ее привлекательности. Минимум — старая религия перестала удовлетворять запросы людей.

Вот никто не заморачивался, а в итоге на iOS Джавы нет.

Но там есть массовый .NET? Если и .NET там применяется теоритечески, то iOS можно исключить из обсуждения темы.

так может все таки Джава зависела от Sun, и зависит от Oracle, больше чем люди думают?

Хорошо, давайте проясним виды зависимости.

Возьмем С++. Представим что нет GNU C++, а есть только два, и оба пропиетарных, закрытых, но распространяемых бесплатно. Используй для чего угодно только не декомпилируй, не реинжинируй.

Есть комьюнити которое пишет С++. Создает на нем проекты. Придумывает виды согласования между программами на С++. И т.д.

Как это комьюнити в своих идеях зависит от хозяев компилятора? А никак.

Берем .NET.

Как комьюнити .NET свободно от WCF, WPF, Entity Framework? Оно полностью зависит от того что думает MS в этом вопросе.

Абсолютной свободы да, нет ни у кого. Ни у С++ников, ни у Джавистов, ни у питонщиков.

Но между комьюнити .NET и Java принципиальное различие в том что у первых зависимость не только от среды выполнения кода.

А комьюнити не пошевелилось

Почему комьюнити не любит перечить Apple, вот интересно...

Может потому что Apple решает, а не комьюнити — будет крутится у них флеша или не будет? То же и с любым другим не их продуктом. Они даже было десктопную джаву чуть не прикрыли.

Вот кстати, а разница между стандартной JVM и Андроидом, случайно не по более будет чем между .NET и mono?

Поболее. Но для программиста не имеет сущетсвенного значения. Главное что Android и Далвик в нем — имеют внушительного владельца. В отличие от mono.

Тем не менее Андроид используется часто как аргумент за Джаву.

Потому что программист не видит разницы.

Продают за 400 долларов для одного девелопера.

Я сомневался не в том что продают, а в том — как много покупают.

Мне, как программисту программировавшему и на C# совершенно непонятно, какой смысл его использовать на подозрительно-сырой, прослоечной платформе, если есть ObjectiveC?

P.S.

Да, и я редко ввязываюсь в холивары из-за радикалов с обеих сторон.

Я умеренный поклонник Java.

И вообще считаю что тот кто работает на каком-то инструменте, знает его недостатки лучше любого критикующего.
Питонщики должны рассказывать о недостатках Python.
Джависты о недостатках Java

Дотнетчики о недостатках .NET

Но холивары вынуждают становится огульным, фанатичным апологетом.

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

Холивары — это все же меряние пипи*ками. А не выяснение и сравнение достоинств и недостатков обсуждаемых вещей.

Ну стремление похоливарить все равно у народа не отнять. А так согласен практически со всем.

Несогласен только с тем что программисты на языке X знают о недостатках языка X. Это верно только в случае если они выглядывали за границы. Причем не просто почитали статью или написали Hello World, а минимум полгодика пописали на альтернативном языке — тогда появляется возможность сравнивать преимущества и недостатки.

Ну стремление похоливарить все равно у народа не отнять.

Это конечно, даже если я встреваю, хотя потом меня начинает раздражать неконструктивность холивара :)

Несогласен только с тем что программисты на языке X знают о недостатках языка X. Это верно только в случае если они выглядывали за границы

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

Конечно к начинающему это не относится. Часто даже вредное ощущение у начинающего — «это ж неудобно!» — говорит о том что не освоил еще. Да и в голове обычно пусто пока, воплощать еще нечего.

минимум полгодика пописали на альтернативном языке

Это конечно, выход за границы — ускоряет и собственное развитие, и дает видение со стороны.

Как и с иностранным языком — ты вдруг начинаешь видеть родной язык по другому. Замечать в нем то что казалось очевидным и удобным.

И что, Oracle уже отдал Джаву полностью в руки комьюнити?

ДжДК уже давно под GPL. Кто хочет — берет и модифицирует как хочет.

Джава лучше, так как
а) меньше возможностей выстрелить себе в ногу
б)меньше индусов
в)одна парадигма
г)разнообразие IDE
д)нету привязки к одну вендору
е) больше разнообразных проектов

а) во-первых спорно касательно C# vs Java, во-вторых я так понимаю предполагается что команда с завидной регулярностью стреляет себе в ногу. Так это наверно не проблемы языка, а неумение с ним обращаться.
в) а в чем преимущество? в том что вместо двух рук у тебя одна? Если в том что становится непонятно, что написал твой товарищь — то это опять же проблема или знаний или организации работы с кодом. Разные парадигмы вполне могут дополнять друг друга.
г) а в чем преимущество? в том что на проекте зоопарк IDE? И идеевец сев за машину товарища эклипсовца начинает вспоминать маты? Память тренирует вроде как. В отличии от разных парадигм — разные IDE не дополняют друг друга.

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

Почему тогда большинство сложных программ на С++ так или иначе содержат утечки памяти? Может быть никто не умеет управлять памятью? Все таки это проблема языка, в С# ситуация выражается в куче неподдерживаемого лапшеобразного кода.

в) а в чем преимущество? в том что вместо двух рук у тебя одна? Если в том что становится непонятно, что написал твой товарищь — то это опять же проблема или знаний или организации работы с кодом. Разные парадигмы вполне могут дополнять друг друга.

Лично я не согласен с предыдущим оратором, но фп в решетках крайне херовое, например делегаты это такой костыль, потому что неудосужились сделать функции first class object’s. Кроме того, нету каррирования, нормальных монад (ну, кроме легкореализуемого maybe), алгебраических типов, higher rank type и прочего.

г) а в чем преимущество? в том что на проекте зоопарк IDE? И идеевец сев за машину товарища эклипсовца начинает вспоминать маты? Память тренирует вроде как. В отличии от разных парадигм — разные IDE не дополняют друг друга.

Это вообще смешно, на джаве стандарт де-факто это build системы вроде gradle, maven, ant делающие разработку независимой от IDE, но у дотнетоиндусов такого и в помине нету.

но у дотнетоиндусов такого и в помине нету

У них вроде есть NAnt

Copy paste :)

Ну, у них NCopy Npaste.

Все таки это проблема языка, в С# ситуация выражается в куче неподдерживаемого лапшеобразного кода.

Ну пример пожалуйста «лапшеобразного» C# и эквивалентный по функциональности божественный Java.

Лично я не согласен с предыдущим оратором, но фп в решетках крайне херевое, например делегаты это такой костыль, потому что неудосужились сделать функции first class object’s. Кроме того, нету каррирования, нормальных монад (ну, кроме легкореализуемого maybe), алгебраических типов, higher rank type и прочего.

Так вам хаскель надо, а не C#. C# это ООП язык + облегчающие жизнь и сокращаюшие объем кода функциональные фичи. Кстати даже в JDK 8 еретеки начинают вставлять лямбды. Думаю вам стоит написать жалобу в Оракл — ибо негодится поставлять людям не «чистый» язык и стоит отложить релиз еще лет на 20 что бы скрестить яву с хаскелем наиболее «православно».

Это вообще смешно, на джаве стандарт де-факто это build системы вроде gradle, maven, ant делающие разработку независимой от IDE, но у дотнетоиндусов такого и в помине нету.

этот поток сознания я вобще не понял.

Ну пример пожалуйста «лапшеобразного» C# и эквивалентный по функциональности божественный Java.

Маленькие куски кода нерепрезентативны, на haskell можно многое написать в 3-4 раза короче чем на C#, но код проектов редко превращаются в лапшу.

Так вам хаскель надо, а не C#. C# это ООП язык + облегчающие жизнь и сокращаюшие объем кода функциональные фичи. Кстати даже в JDK 8 еретеки начинают вставлять лямбды. Думаю вам стоит написать жалобу в Оракл — ибо негодится поставлять людям не «чистый» язык и стоит отложить релиз еще лет на 20 что бы скрестить яву с хаскелем наиболее «православно».

Я о том что нечего приводить как аргумент за c# наличие там фп, потому что его наличие в оном можно описать фразой «возбудим и не дадим».

этот поток сознания я вобще не понял.

Бедненький, не знаете что такое build frameworks.

Маленькие куски кода нерепрезентативны, на haskell можно многое написать в 3-4 раза короче чем на C#, но код проектов редко превращаются в лапшу.

То есть, я так понял, у вас есть статистика — C# - 99% говонокода, Java — 1%, Haskel — минус 100% говонокода и плюс 30 см пенис.

Бедненький, не знаете что такое build frameworks.

Да от такие от тупые люди пошли. Если что — речь была не о билд. фреймворках, а об IDE. Или это как в анекдоте — «а если бы у рыбы была шерсть у неё бы были блохи»?

Да от такие от тупые люди пошли. Если что — речь была не о билд. фреймворках, а об IDE. Или это как в анекдоте — «а если бы у рыбы была шерсть у неё бы были блохи»?

Нет, тупые как раз только вы, ибо черным по белому написанно что фрейморвки вроде maven, ant, gradle делают возможным использование разных IDE у разных разрабов, потому что билд становиться независимым от IDE, и индус может использовать хоть nano. Теперь я разжевал достаточно подробно?

Я правильно понимаю — единственная задача IDE билдить?

P.S. Не обижайтесь. насчет тупых это я о себе — это же я не знаю что такое build frameworks. Вот и уточняю, заодно сожалея что не нашелся кто-то кто бы объяснил.

Наверное, товарищ имеет ввиду Continuous Integration, который в .net мире представлен msbuild, teamcity, cruisecontrol.net, TFS и т.д.

Может и это — хотя речь то об IDE шла.

Та я уже отчаялся доказать явистам что вне java есть жизнь. Так — тролю по чуть-чуть.

Плохо тролите. За что вам работодатель зп платит ?

А как тролинг и ЗП связаны?

Маленькие куски кода нерепрезентативны, на haskell можно многое написать в 3-4 раза короче чем на C#, но код проектов редко превращаются в лапшу.

То есть мы так и не узнаем, что же это за мифическая лапша?

Назовем это аргумент «суслик». Вот показать тебе его отказываются, но вот он есть. Причем он убийственен.

Я о том что нечего приводить как аргумент за c# наличие там фп, потому что его наличие в оном можно описать фразой «возбудим и не дадим».

В пример приводят не фп, а конкретно лямбды, и конкретно делегаты, и LINQ с method-chaining-ом использующие это все, которые на деле помогают писать меньше кода и быстрее, при этом код не становится труднее читать.

Даже в c# 2.0 по сравнению с Джавой — позволяет экономить 2-3 строчки кода на каждом объявлении обработчика событий, для кнопочек на форме.

Где действительно можно получить тяжело читаемый код, так это на Андроиде, как раз благодаря анонимным классам и листенрам и отсутствию делегатов.

Кстати ещё интересно, почему на Андроиде, везде вместо Enum-ов, используются интовые константы, интересно чем они разработчикам Андроида в Джаве не угодили.

C# это ООП язык + облегчающие жизнь и сокращаюшие объем кода функциональные фичи.

ООП язык с функциональными фичами это скала, никак не решетка.

ООП язык с функциональными фичами это скала,

А мне больше нравитсо Ruby.

делающие разработку независимой от IDE, но у дотнетоиндусов такого и в помине нету.

Не спец, но вроде MSBuild — это их ANT, но все знакомые собирают или ANT-ом, или Make-ом.

Лично я не согласен с предыдущим оратором, но фп в решетках крайне херовое, например делегаты это такой костыль, потому что неудосужились сделать функции first class object’s.

И конечно в Джаве это все есть.

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

Но, можно мне глупому объяснить, где разница между делегатами и функциями как first class object, и за одно продемонстрировать пример реализации для C#, но при этом учитывая то, что язык должен по прежнему оставаться static и strong typed? Делегат по сути является типом описывающим функцию член, делегат можно как передавать в функцию, так и возвращать, что не так?

Это вообще смешно, на джаве стандарт де-факто это build системы вроде gradle, maven, ant делающие разработку независимой от IDE, но у дотнетоиндусов такого и в помине нету.

en.wikipedia.org/wiki/MSBuild — Спокойно работает в связке с TeamCity. У меня на работе к примеру используется. Так что обломись.

все, кроме, пожалуй

б)меньше индусов
ибо их здесь легионы...

Ответить на вопрос что лучше — C# или Java — можно легко — на сегодняшний момент C# лучше. Как язык. Из-за синтаксического сахара, поддержки лямбд, динамических типов

То что у языка больше возможностей, не всегда лучше. Для синьора, который работает в команде __только__ с синьорами — возможности языка являются гигантским плюсом. Но в реальном мире, разргебать код какого-то падавана или чего хуже ситха — то еще удовольствие.

большого набора сопутствующих технологий

В основном стянутых (не полностью) с Джавы. :) Это троллинг, если че.

Ну и плюс «бонус» — f#,

Scala, Clojure?

ironpython, ironruby и т.д.

Рылли? Вот про использование ДжРуби я еще слышал, но про Ирон* — только про «поигратсо».

Не нужно говорить, что это гораздо лучше, чем писать 100500-й модуль к 15 летней системе.

Писать 100500 модуть к системе которой 1,5 года лучше? Даникапли! Тут важно как система написана, а не сколько ей лет.

на мой взгляд, он уже себя исчерпал, т.к.:

Вы привели примеры про клиентскую часть. А что с серверами? Покупать винду и нанимать админа, ради одной апликухи? Отказать клиентам у которых серваки на линуксах? Все аргументы про переносимость — это как раз про сервера.

Ответить на вопрос что лучше — C# или Java — можно легко — на сегодняшний момент C# лучше. Как язык.

Богаче, да. Как язык. Я бы не отказался от многих плюшек в Java.

Например хотел бы обобщенной ковариантности и контравариантности, и LINQ.

(проперти, делегаты — то мелочь, недостойная холивара, ИМХО)

90% новых проектов делают клиент-серверными

сервера, сервера, вот в чем вопрос.

На клиенте:

ie6 под конкретным activex

Да, есть такое дело. Curl не взлетел, а начал пытаться делать WUI такой же сложности как GUI. И тут, на блочной верстке сдобренной JavaScript как развернешься! так браузер и «виснет».

То бишь я бы не относил это к проблемам джавы, или к успехам .NET

.NET — клауд

Windows Azure. Или виртуализация Windows.

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

Вполне согласен с советом.

Может призвание — рельсовик вообще.

многие проекты делают пол клауд, а вот тут возникает проблема безалтернативности микрософтовскому облаку и ценообразованию от микрософта. на джава предложений больше и дешевле

Чистый холивор, такой холивор.
Вбросившему:
а) учить англицкий.

б) осваивать гугл.

в) бросить пить :)

Дайте топикастеру пачотный орден троля 85 лвл. Заслужил!

Становитесь скрам-мастером. Сможете управлять десятками учивших Java/C#.

Якщо коротко, то:
С# - ентерпрайз. Хай то буде web чи десктоп, але framework один і дуже добре перевірений. В США люблять .net, тому в аутсорсі є багато вакансій.
Java — також ентерпрайз і його теж люблять на заході. +Android. Але в java така купа різних бібліотек від різних розробників на всі випадки життя, що очі розбігаються.

Мій вибір C# через стабільний розвиток мови і бібліотек, однорідність платформи і відсутність намагань з боку Microsoft розвивати недо-кросплатформеність.

В США люблять .net,

Кто? Микрософт?

Мій вибір C# через стабільний розвиток мови і бібліотек

А как же золотое правило микрософта : обратная совместимость не нужна ?

відсутність намагань з боку Microsoft розвивати недо-кросплатформеність

Огромный минус

Бізнес любить .net і з цим нічого не поробиш. Це той самий випадок як наш бізнес любить 1С.
Про сумісність. На днях портував солюшен з 50 проектами в ньому з .net 1.1 на .net 4.0. Жодних проблем зі зворотньою сумісністю.
Про «величезний мінус». Назвіть мені хоча-б один приклад кросплатформеної програми на java, яку зібрали один раз і можна запускати всюди.
Як там? Write once run everywhere?

“Hello, world!” :)

Ну всьо. Ви зруйнували моє світосприйняття. Піду повішусь в туалеті)

Любое джава приложение

У вас колись виникала потреба писати такі програми? Ця кросплатформеність такий самий рудимент як і розрекламована багатомовність .net

У вас колись виникала потреба писати такі програми?

Тот продукт который сейчас разрабатываю поставляют и как СааС и как “коробку”.

СааС на солярках, коробку ставят в основном на линукс или винду.

Ця кросплатформеність такий самий рудимент як і розрекламована багатомовність .net

Вот “многоязычность” — это таки спорный аргумент, надо ли оно. Кстати, “языков” под ДжВМ если и меньше, то не значительно меньше.

Не менше а мабуть більше. Тільки хто на них пише.

В отличии от дотНет, таки много кто: Скала/Груви — очень много; те кто хотят РоР, получили ДжРуби и тд.

А вот про Ф№ и Ирон* я не слышал (но я особо и не искал).

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

Перечитайте мой коммент, он про другое

Любое джава приложение

Ну не надо недооценивать кривизну рук. Все-таки «практически любое».

Назвіть мені хоча-б один приклад кросплатформеної програми на java

Tomcat

tomcat.apache.org/...download-70.cgi

Навіщо тоді це:

zip (pgp, md5)
tar.gz (pgp, md5)
32-bit Windows zip (pgp, md5)
64-bit Windows zip (pgp, md5)
64-bit Itanium Windows zip (pgp, md5)

32-bit/64-bit Windows Service Installer (pgp, md5)

?

Навіщо тоді це:

А вы скачайте и посмотрите чем они отличаютсо. В версиях под винду есть доп лаунчеры, которые совсем не обязательны.

Потому что сервис в виндовс и демон в юникс — не кроссплатформенны.

От і я про це. Кожна ОС має ряд особливостей. Не дивлячись на те, що з Божою поміччю програми таки запускаються на кількох платформах одночасно, але обмеження системи обійти іноді неможливо. Тому ідеальний варіант розробляти програми з урахуванням кінцевої платформи і на тій мові, яка для цього розроблялась, а не намагатись придумувати пістолет, з якого можна стріляти всіма речовинами

Тому ідеальний варіант розробляти програми з урахуванням кінцевої платформи і на тій мові, яка для цього розроблялась

Чим він ідеальний?
Алгоритм quicksort — він що, для кожної платформи свій?
Протокол HTTP?

Нарахування знижки покупцю?

От і я про це. Кожна ОС має ряд особливостей.

В даному випадку навіть ця — сервіси та демони не критична.

Як вже сказали — Tomcat можно запустити і як звичайну программу. І буде — працювати.

Як стартує Tomcat — програміст того не знає, і його те не цікавить. То головняк сістемного інженера.

а не намагатись придумувати пістолет

Вже зробили, чимало років тому. Java називаєця.

Але не тільки вона, PHP, Python, Ruby — теж достатньо кросплатформені.

Не бачив жодної прикладної програми на PHP під windows чи mac os. На python так, в лінуксі чимало програм написані з pyqt чи pygtk. Інтерпретатор можна запустити будь-де. Питання чи потрібні такі зусилля на підтримку таких можливостей? Чи використовуються масово сервери windows на яких працює Tomcat?

Не бачив жодної прикладної програми на PHP

Ну так, на пхп 90% это шлак в виде гостевух

В кожної мови своя ніша. Я думаю добре що існує PHP. Менше поганого коду в наших проектах на C#/Java

Питання чи потрібні такі зусилля на підтримку таких можливостей?

Це питання до замовника ПО, а не до програмістів.

Якщо він платить за це — то потірбно.

Чи використовуються масово сервери windows на яких працює Tomcat

Розумієте, ніяких величезних зусиль кросплатформеність не потребує. Тільки для — розробників ВМ.

Нам, програмістам на Java те обходится майже задарма. (про інфраструктуру Java вже писав)

I про Tomcat на Windows — да, використовуєця. Не рідкість в інтранеті.

Це чудово. І дякуємо sun/oracle за чудовий інструмент. Але кожна ОС має «рідний» SDK і від цього нікуди не дітись. Я не відкидаю кросплатформеність як феномен. Це прекрасно. Але чомусь не дивлячись на існування MonoTouch чи Qt для Android пишуть на java i c++, а для ios на objective-c

Але чомусь не дивлячись на існування MonoTouch чи Qt для Android пишуть на java i c++, а для ios на objective-c

Пристрії на Android та ios мають вельми специфічні вимоги до ПО.

В майбутньому думаю для них взагалі будуть писати на JavaScript.

До речі, це другий величезний кросплатформений світ — Web.

Але кожна ОС має «рідний» SDK

Я вам навів приклади, повторю:
Алгоритм quicksort — він що, для кожної платформи свій?
Протокол HTTP?

Нарахування знижки покупцю?

Щодо GUI — так, вони специфічні.

Хоча програмісти на Java працюють в IDE і тим не переймаюця. Ні в Windows, ні в MacOS X, ні в Linux. Ви нам зла бажаєте, щоб ми ще й про рідні SDK думали?

Web — це єдиний напрямок розробки який дозволяє створювати дійсно кросплатформені програми і не задумуватись про особливості кінцевої платформи. Особливо якщо створювати сайти з адаптивним HTML або веб-сервіси

Web — це єдиний напрямок

Java теж.

А ось Web — у кожного браузера своя специфіка. Особливо у IE :) І пишеця чимало JavaSсript кода щоб ті особливості оминути. Але й тут є проблема — навіть JavaSсript код буває браузерно-залежним.

Особливо якщо створювати сайти з адаптивним HTML або веб-сервіси

А на сервері що буде крутитись? Якщо Java — то ось и став яку завгодно ОС, і не треба ніякі рідні SDK читати.

І матимо — на клієнті кросплатформеність забеспечує weб-браузер, на сервері — JVM.

Повна незалежність від ОС. З обох боків.

До чого тут рідні SDK?

Особливо у IE

Десятый ИЕ более-менее браузер

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

А где ваши F#, IronRuby, IronPython ?

те кто хотят РоР, получили ДжРуби

А не Grails ?

Я взагалі-то й кажу що такі мови не мають популярності. Хай то буде scala чи f#.

В каком это вузе и на какой специальности «специалисты с информатики» за 5 лет

учили только С\С++ да и то одни манипуляции с массивами были пару курсов, про контейнеры классы я вообще случайно узнал с книги Страуструпа, а IDE основная наша была это Borland 3.11 под MS-DOS чудесная вещь.

Напишите скорее об этом в dou.ua/...ums/topic/5851

Или может все-таки было что-то еще, только вы не заметили?

Ну вообщем спасибо что так много по записывали здесь,
Я для себя избрал Java долго думал и понял что на C# так просто не устроиться в Днепропетровске да и вакансий на позицию Junior C# не видел, сейчас читаю Хорстманна и Эккеля разбираюсь с паттернами и клиент-серверной архитектурой !
Вопрос в другом :
Какие фирмы в Днепропетровске более лояльны к Джуниорам или в которые вы бы посоветовали пойти для начинающего ?

Спасибо !

Ой чё то я дофига написал, это у меня с будуна !
сейчас читаю Хорстманна и Эккеля разбираюсь с паттернами и клиент-серверной архитектурой
Алексей, я вам по-доброму завидую. Паттерны проектирования, Хорстманн и Эккель — «с бодуна»...

я думаю вам лучше идти сразу в менеджеры , ну не потянете вы программежж

Трагедия нашей действительности: в «менеджеры» направляют тех, кто не способен работать (создавать добавленную стоимость). В итоге они не дают нормально работать тем, кто способен :)

Если Java то готовьтесь писать только под WEB. С дектопом там все очень уныло, не смотря на наличие технологий, типа JavaFX. Причину этого сам не понимаю, но так уж сложилось.

Под .NET есть выбор — десктоп или веб, количество вакансий одинаково, как и оплата. Так как разработка в 99% случаев ведется в VS, то довольно большое количество кода можно написать визуально (мышкой). Этакий современный VB/Delphi.

Можно, конечно устроится писать ядро системы или внутренние библиотеки, там все равно веб или дектоп, Java или .NET, но это полностью на любителя.

Все еще сравниваете Delphi и C#? Тогда мы идем к вам.

en.wikipedia.org/...nders_Hejlsberg
А в чем проблема?

Хотя я не считаю — что «программирование мышкой», это такой отличительный признак
Delphi или C#. В чем виноваты языки, если к ним в комплект были написаны удобные GUI библиотеки с дизайнерами.
В смысле моя ссылка к тому, что там есть общие моменты, но не только VCL — WinForms.

Этакий современный VB/Delphi.

Как минимум звучит немного пренебрежительно. Мол да ничем он, по сути, не лучше. Начало здесь. Да и во всем топике прослеживается.

Ай, ай, я не разобрался — о чем речь, согласен.
Но моя ссылка тогда ещё более в тему.
Как то странно со стороны Хейлбсерга — дизайнить язык,

который ни чем особо не лучше его предыдущего =)

Я к тому что сравнивать два языка не стоит,
зато стоит признать C# идеологическим наследником Delphi =)))

Я бы всех Delphi-стоф агитировал переходить на C#)

Я бы всех Delphi-стоф агитировал переходить на C#

Полностью согласен — я могу только понять что только из крааааайней бедности продолжают жить и развиваться проекты на Delphi

Я бы всех Delphi-стоф агитировал переходить на C#

Из относительной свободы в полное рабство? Зачем?

А проще переводить проект. Ведь наверняка он гуевый.

Перевести дельфистам его на Swing или SWT — будет куда сложней.

О реальности не стоит забывать, в этих академических спорах :)

Гениев среди программистов не больше чем в других инженерных профессиях.

Delphi был отличным языком вплоть до 2005 года, когда появился .NET 2.0. Тогда эти две платформы были равноценны и если бы не идиотская политика Borland и CodeGear (чего только стоит добавление unicode или x64 через 7 лет когда они появились в остальных языках) то эти две платформы были бы на равных (да, Delphi — это не только язык но и инфраструктурная платформа). А так Delphi умер, с фичами разработчики опоздали на 7 лет, а 7 лет в IT-мире это довольно много.

Так что Java vs C# в один-один повторяют аргументацию 2000 года C++ vs Delphi, те крупноформатность и большое количество фреймворков против удобства и детерминированности средств разработки. Ну тоесть когда ты нанимаешь человека со знанием ASP.NET — это означает что он знает ASP.NET, а не кучу других фреймворков + немного спринг. В C# есть стандарт и он узаконен кампанией разработки, но вы получаете инструмент с детерминированной логикой, а не зверинец непонятно кем и как написанного кода.

То же самое и с Андроидом, Андроид хорош не тем что Java, а тем что Гугл и Гугл дает православные библиотеки и средства разработки для правильной разработки. Конечно ничего не мешает сделать полностью по своему, но фрики есть везде, а продукт рассчитан на большинство.

Вот в этом году закончил университет .... специалист с информатики .... и теперь решил ... немного подучиться и искать работу

о поиске работы надо было думать на курсе 3ем — 4ом, но лучше поздно, чем никогда

работу и курсы для начинающих C# разработчиков в Днепре предлагает ISD:

www.isd.dp.ua/.../vacancies.html

Ой ребята, давно так весело не было на ДОУ !

Если у вас есть предрасположенность к XML — JAVA ждет вас.

практически тоже самое можно сказать и про си шарп

Да, но немного по другому :

Если у вас есть предрасположенность только к Windows — C# ждёт вас !!!
Если у вас есть предрасположенность к XAML — C# ждёт вас !!!
Если у вас есть предрасположенность к поиску ключа для Visual Studio 2010 Ultimate — C# ждёт вас !
Если у вас есть предрасположенность к крепкому алкоголю — С++ ждёт вас !

Это да, XML в мире Java представляет собой недоDSL для компоновки бинарных пакетов.

Вот тут да, инфраструктурном миру Java пора соорудить нормальный DSL для этой цели.

До такой задачи правда никто не дорос. Даже MS мечется, то OLE, то СОМ, то что-то там с WinRT. Но ей легче, она владелица ОСи и всего стека ПО. Как и Apple.

А перед миром Java стоит задача — создание кроссплатфоренного решения. Пока — XML... ытить его в кочерыжку

Если у вас есть предрасположенность к XML — JAVA ждет вас.

Виталий Домников, пишу вам из далекого 2012 года ...

И как там? В Java появились замыкания?

В Java появились замыкания?

Угу уж лет как 7 назад (или больше точно не скажу)

Ухты, это первый язык у котором есть замыкания но нет лямбд.

Или то что анонимный класс может захватывать переменные верхнего скопа вы называете замыканиями?

У меня для вас плохие новости, сэр )

Или то что анонимный класс может захватывать переменные верхнего скопа вы называете замыканиями?

А что же тогда правильное замыкание? ... сэр.

То что есть в Java — это такая же вундервафля, как и реализация generic’ов.

Вроде и под определение подходит, а выглядит как педальная ракета.

Нет лямбд — нет замыканий )

>>>как педальная ракета.

Блин ну я балдею от ваших комитариев !!! Просто респект ! И со смыслом и РЖАЧЬ ... Класс

Так чтобы понять что мы говорим об одном и том же, дайте определения понятий:

«лямбда» и «замыкание».

это специальный синтаксис для объявления анонимных функторов. А данном случае подразумевается что лямбда это объект, который можно использовать как функцию.

А не анонимный класс, в котором есть метод, который вы называете лямбдой.

А не анонимный класс, в котором есть метод, который вы называете лямбдой.

Давайте различать синтаксис и семантику.

Вы описали синтаксическую реализацию.

Если программист семантически использует нечто как лямбду, то она и есть — лямбда.

Вот об чем вопрос — семантически лямбда или нет.

Семантическая составляющая анонимного класса Джавы — содержит ещё один объект со своим скоупом и своим временем жизни. Нет? И синтаксис тут тоже важен, потому что если попытаться с синтаксисом Джавы сделать аналог LINQ method chaining-га с такими «лямбдами» — будет тяжело читаемое нагромождение кода.

Это же костылище :)

если попытаться с синтаксисом Джавы сделать аналог

Или не будет, если синтаксис позволяет упрятать это нагромождение в библиотеку.

А вот отсутствие ковариантности и контравариантности обобщенных типов — в библиотеку не упрятать.

Проперти вообще потому мелочь. Устная, никак не отраженная в синтаксисе ЯП Java договоренность о JavaBeans — вполне удобна.

Понимаете теперь почему нечто в синтаксисе есть более важное, а есть — менее?

А данном случае подразумевается что лямбда это объект, который можно использовать как функцию.

То есть вызывать? Послать объекту сообщение(я) apply or/and call — терминами ООП?

А не анонимный класс, в котором есть метод, который вы называете лямбдой.

Я не называл ничего, пока. Но по вашему определению SAM — это лямбда.

это специальный синтаксис для объявления анонимных функторов.

Будь мы хорошо знакомы, я б вам сказал...

Более цензурная версия: «Вам шашечки или ехать».

Ок, «лямбда» мы определили, теперь дайте определение понятия «замыкание».
Очень интересно как вы, из вашего определения лямбды, покажете что

Нет лямбд — нет замыканий )

А зачем нужны лямбды в ООП языке?

Ну да, я вас понимаю.

Java разработчику проще вместо одной лямбды написать фабрику, которая будет инстациировать IoC контейнер, который будет резолвить по интерфейсу нужный нам класс.

Если программа состоит из одной лямбды, то конечно все эти фабрики с контейнерами — лишние.

А вот когда программа состоит из десятков тысяч строк кода, написанными десятками программистов в разное время — то создавать фабрики, контейнеры, и прочая и т.д. придется на любом языке программирования.

А какие конкретно нужно создавать контейнеры фабрики и прочее что бы православно запрограммировать: users.filter(_.name == ’Vasya’)

для вывода строки «Hello word!» лучший язык программирования тот в котором есть оператор:

HW!

Вот так я вижу годами эти холивары.
И «убийственные» примеры —

«а смотрите как кратко пишется быстрая сортировка! То то, знай наших!»

users.filter(_.name == ’Vasya’)

Это единственная строчка в законченном программном продукте?

Понимаете, споры о строчках напоминают споры об оптимизации циклов обхода массива:
int i = 0, i < arr.len, ++i
или

int i = arr.len, i >=0, —i

Великие темы для многолетних дискуссий.

Я все еще не услышал какие такие фабрики и контексты и прочее вы рожаете что бы отфильтровать юзеров в списке.

А откуда взялись эти юзерсы в программе?

Вы их захардкодили?

Думается что они хранятся где-то между сеансами запуска кода фильтрации.

Значит их еще нужно получить откуда-то.

И будет код который их получает.
А хранятся они вероятней всего совсем в другом виде чем представлены в коде.
И значит будет код который трансформирует это внешнее представление в объект user с полем name.

Вот этот то код и придется оформлять в виде фабрики, контейнера, или еще чего-нить такого.

Мало того, строчка кода будет скорей:

users.filter(_.name == cleverUser.name)

то есть никакого Васи в коде у нас не будет.

И скорей всего что фильтров по name нам нужно будет больше, и на вхождение подстроки в поле name, и на длину.

То есть вся красота, простота этой строчки — users.filter(_.name == ’Vasya’) быстро улетучится.

Как и красота оператора HW!

Как однако далеко способен зайти энтерпрайз головного мозга.

И скорей всего что фильтров по name нам нужно будет больше, и на вхождение подстроки в поле name, и на длину.

А если все таки нужно просто отфильтровать по name?

Как однако далеко способен зайти энтерпрайз головного мозга.

Ок, проверим мозги :D

Контекст у нас в обоих случаях задан:
users — данные

filter — обработка этих данных.

То есть нам нет смысла «захватывать контекст». Он уже есть.

И какая разница между:

users.filter(_.name == ’Vasya’)

и

users.filter("name == ’Vasya’")

?

Потеря проверки типа на этапе компиляции. Собственно это и происходит в языках с динамической типизацией.

Но мы хотим проверять наличие поля еще на этапе компиляции.

Значит задача — каким либо образом уведомить компилятор что у объекта должно быть такое поле. А он, в свою очередь должен знать что в коллекции на этапе выполнения будут именно объекты с полями name.

А если все таки нужно просто отфильтровать по name?

Так вот _.name — это не столько захват контекста, сколько уведомление системы автоматического вывода типов что в коллекции обязательны объекты с name.

Как делается сейчас такое в Java, в которой нет АВТ как в Scala и Haskell?

Например — метамодели в JPA -
Динамические типобезопасные запросы в JPA 2.0

www.ibm.com/.../j-typesafejpa

то есть строчка в Java будет где-то такой:

users.filter(User_.name, new Equals(’Vasya’))

Т.е. что бы отфильтровать список юзеров ты будешь подымать JPA? Оо! А не проще анонимный обьект класса Predicate создать? Ну или циклик сделать простенький? Это не слишком энтерпрайзно?

Т.е. что бы отфильтровать список юзеров ты будешь подымать JPA?

Опа, оказывается и у тебя одной строчкой дело не ограничивается?

«Чтобы отфильтровать список юзеров ты будешь дергать базу данных??»

А если мы ее дергаем, то как, захардкоденными запросами и парсингом?

Все равно уже что-то будет за кадром, перед нашим великолепием users.filter

А не проще анонимный обьект класса Predicate создать?

Я указал не на JPA, а на то что:
1. Строчка users.filter(_.name == cleverUser.name) — это не о лямбдах. А о проверке типа.
2. В JPA есть один из подходов такой проверки, когда компилятор требует явного их указания, а не умеет выводить сам.

3. анонимный обьект класса Predicate — это само действие. А в строчке users.filter нам нужно как-то уведомить компилятор о том что мы ожидаем наличие поля name. Можно да, и так:

new OnlyWithName("Vasya«)

или так:

users.filterName

что есть не так универсально как _.name или User_.name

Ну или циклик сделать простенький?

Мне редко доводится работать с простеньким.

программы вывода «Hello world!» давно остались в прошлом.

Это не слишком энтерпрайзно?

А что собственно в этом слове такого?

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

У вас это ругательство, как понимаю?

Ну может быть, если вы пишите ПО для численных методов в математике.

Опа, оказывается и у тебя одной строчкой дело не ограничивается?

А я пытался обойтись одной строчкой?

Я указал не на JPA, а на то что:
1. Строчка users.filter(_.name == cleverUser.name) — это не о лямбдах. А о проверке типа.

2. В JPA есть один из подходов такой проверки, когда компилятор требует явного их указания, а не умеет выводить сам.

Ок, предположим JPA ты юзать не будешь, тогда что ты будешь делать? Писать новый суперфреймворк что бы отфильтровать список обьектов?

Мне редко доводится работать с простеньким.
программы вывода «Hello world!» давно остались в прошлом.

Но в твоих програмках наверное водится код который фильтрует списки время от времени?

А что собственно в этом слове такого?

Оно просто стало нарицательным для жизненной позиции в которой вместо простенького ифа или цикла городят тонны тормозных и глючных но зато содержащих все паттерны фреймворков.

Писать новый суперфреймворк

Если я не буду юзать какой-нить JPA то мне все равно придется что-то писать для получения данных о юзверях.
В реальном мире.

В мире сферических коней в вакууме да, все будет само собой.

Но в твоих програмках наверное водится код который фильтрует списки время от времени?

Конечно. Единственно универсальное у меня правило для таких случаев — использовать побольше тот подход, что заложен в средстве получения этого users. «Пусть безобразно, зато — единообразно»

Оно просто стало нарицательным для жизненной позиции в которой вместо простенького ифа или цикла городят тонны тормозных и глючных но зато содержащих все паттерны фреймворков.

Я в курсе. Что простенько бывает только когда курсач пишешь.

А когда программистов пару десятков, то изобретать простенькие лисапеды — получается наааамного накладней.

Конечно чувство меры должно быть и тут. Золотая середина так сказать.

Но мой тезис был о том, что из потребности строчки
users.filter
реальные потребности и сложности разработки ПО никак не видны.
Никак не видна вся программа. И тем более не видны требования по ее изменению в будущем. А она будет меняться, ой будет.

Опять же, «студенты» верят в незыблемость ТЗ.

Для простенького же есть масса скриптовых языков. И не нужны для простенького ни Java ни Scala, ни C#, ни С++

Конечно. Единственно универсальное у меня правило для таких случаев — использовать побольше тот подход, что заложен в средстве получения этого users. «Пусть безобразно, зато — единообразно»

Не, ну если ты всю жизнь занимался тупым формошлеперством в котором вся логика помещается в where clause, то вопросов больше не имею.

Ну если ты только и пишешь простенькое, потому что сложное тебе не доверяют, то и у меня вопросов к тебе нет.

А с чего ты взял что я пишу простенькое? У меня как раз логика посложнее чем where clause в sql-e и все туда не помещается и приходится писать много разной бизнес логики, и лямбды делают код намного короче и читабельнее.

А с чего ты взял что я пишу простенькое?

С того же что ты о моем формошлепстве.

Если ты телепат, то почему бы и мне не побыть?

У меня как раз логика посложнее

И ты всю ее харкодишь. Никаких JPA, никаких контейнеров, ни-ни тянуть фреймворки — все вручную! Все по новому каждый раз!

приходится писать много разной бизнес логики

Никаких Drools — все сам! Все ifы каждый раз, и ’Vasya’ в коде.

и лямбды делают код намного короче и читабельнее.

Намного — это насколько? Если ты сидишь на кодинге только крохотной части — то да, может быть.
А для программного продукта в целом? Где все равно универсальный базис будет упрятан в чужую или свою библиотеку?

А лямбды да, не только от фреймворков, а вообще избавят от потребности в серверах приложений и базах данных. (рубистов правда от рельсов ничего не избавляет. И Liftеров и Akkистов, но они не шарят в лямбдах просто. Да и что там за NHibernate и Entity Framework? А Boost? «Ни асилили силу лямбд»)

Я вообще-то за лямбды, раз они и так используются. И за многое за, и из C# и из Scala — раз оно все равно используется и без синтаксической поддержки со стороны ЯП.

Но против — когда голословно утверждают что это в разы поднимет производительность труда программиста.

Вот если б в Java не было анонимных классов, тогда да, ой неудобств было б.

А кто любит удобства — пусть пишет на языке что ему нравится. Делов то для профи уйти c Java?

С того же что ты о моем формошлепстве.

Если ты телепат, то почему бы и мне не побыть?

Не побыть потому что я не даю явных предлогов в отличие от тебя.

И ты всю ее харкодишь. Никаких JPA, никаких контейнеров, ни-ни тянуть фреймворки — все вручную! Все по новому каждый раз!

Та нет? Откуда такие странные фантазии? Надеюсь не личный опыт?

Никаких Drools — все сам!

Друлс я не юзаю,

Все ifы каждый раз, и ’Vasya’ в коде. Намного — это насколько? Если ты сидишь на кодинге только крохотной части — то да, может быть.
А для программного продукта в целом? Где все равно универсальный базис будет упрятан в чужую или свою библиотеку?

А лямбды да, не только от фреймворков, а вообще избавят от потребности в серверах приложений и базах данных. (рубистов правда от рельсов ничего не избавляет. И Liftеров и Akkистов, но они не шарят в лямбдах просто. Да и что там за NHibernate и Entity Framework? А Boost? «Ни асилили силу лямбд»)

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

Но против — когда голословно утверждают что это в разы поднимет производительность труда программиста.

Я тоже против, а что, кто-то утверждает что именно в разы повышает продуктивность?

А кто любит удобства — пусть пишет на языке что ему нравится. Делов то для профи уйти c Java?

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

Откуда такие странные фантазии? Надеюсь не личный опыт?

Ты уже сам себе противоречишь :)

То меня обвиняешь в энтерпрайзе мозга, то вот что я все пишу сам. Определись то :D

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

Ну а что остается то, кроме троллинга на троллинг :)

Ты довел мою позицию до абсурда, а я твою.

Всего то.

что тебя спросили как отсортировать ... опять двойка

А я проходил собеседование?

Какая жалость что не прошел :D

кроме космических кораблей

Код я пишу не на форумах, а в IDE Eclipse,

На форумах мне интересней о космических кораблях пофилософстовать.

Если ты еще кода не написался, что тебе его везде хочется видеть — даю еще лет 5, для взросления.

Ты уже сам себе противоречишь :)

То меня обвиняешь в энтерпрайзе мозга, то вот что я все пишу сам. Определись то :D

Я не обвиняю, я спрашиваю! Почувствуй разницу!

Ну а что остается то, кроме троллинга на троллинг :)
Ты довел мою позицию до абсурда, а я твою.

Всего то.

Твоя позиция была абсурдна изначально.

А я проходил собеседование?

Какая жалость что не прошел :D

Не не прошел, а опять показал глубину полета твоей мысли

На форумах мне интересней о космических кораблях пофилософстовать.

Если ты еще кода не написался, что тебе его везде хочется видеть — даю еще лет 5, для взросления.

Я вообще код не просил писать, но обычно пару строк кода могут показать больше чем простыни демагогии.

Твоя позиция была абсурдна изначально.

И в чем же ее абсурдность если И ты используешь фреймворки а не пишешь все с нуля?

Если и ты используешь паттерны, и т.д.?

Я вообще код не просил писать, но обычно пару строк кода могут показать больше чем простыни демагогии.

Тут у нас просто разное видение.
Я предпочитаю понимать суть, фундаментальное. И ею же и делиться. Остальное можно прочесть «в справочнике», как отвечал в байке Эйнштейн Эдисону.

Или нагуглить.

А то что многим не хочется понимать, а хочется готовых рецептов, чтобы бац, и в код их, то меня не волнует.

«Готовый ответ — это медвежья услуга» — согласен с этим со школы.

Так же меня не волнует когда меня пытаются экзаменовать. Экзамен считаю совсем другим видом деятельности чем поиск сути, иерархии, зависимостей, условий — абстрагирование.

Многие заметили по жизни — что есть очень успешно сдающие экзамены, при том что знания у них плохонькие.

И в чем же ее абсурдность если И ты используешь фреймворки а не пишешь все с нуля?

Если и ты используешь паттерны, и т.д.?

Не понял к чему тут мои фреймворки, но мы ж с лямбд начали?

Тут у нас просто разное видение.

У тебя нету никакого видения, т.к. я задал простой вопрос ответ на который показал бы твою правоту или не правоту, а ты начал пургу нести.

о мы ж с лямбд начали?

И я показал что твой пример был не о лямбдах.

У тебя нету никакого видения

Или у тебя глаз.

Просто как вариант — не рассматривал?

т.к. я задал простой вопрос

А я тебе дал широкий ответ чтобы ты сам смог ответить на десятки таких простых вопросов.

а ты начал пургу нести.

Ниасилевшему помочь не могу.

Мне нравится когда человек поднимается новый качественный уровень

Ты не смог пока :)

Это типичный энтерпрайз головного мозга, для простой задачи фильтрации списка обьектов решаемой в 3-и строки намесить столько всякой чепухи.

Это типичное студенчество, не видеть проблему:
1. целиком

2. не понимать идей стоящих за кодом

и как итог — неумение провести ни анализ ни синтез, а ожидание готовых ответов настолько, что даже подсказки не помогают.

Code monkey — удел начинающего. Все в порядке.

строки намесить столько всякой чепухи

Чепуха — это те строчки кода что выводят «Hello world».

Сережа, это я ставил проблему а не ты, поэтому не тебе судить кто там ее не видел целиком. Не можешь написать или сообразить как написать три строчки кода — вон из професии. днепр ждет тебя.

Мне без разницы какую убогую проблему ты ставил.

Мне интересней что кроется за классом таких проблем.

вон из професии

Это не сугубым кодерам выносить такой вердикт.

Пусть работодатели да заказчики решают :)

Ты еще ни утомился проходится по моей персоне? Ведь это результат соревнования мозгов :) После которого тебя понесло :D

Тебе просто еще нужно скилы наращивать, со временем, надеюсь разберешься.

Могу только посочувствовать твоим работодателям.

Их деньги, на кого хотят на того и тратят.

Чего им сочувствовать, у них очень простой выход — вон с работы :)

Но какое это отношение имеет к тому что

_.name решает указанную мной проблему типизации, а не захват контекста? ;)

Но какое это отношение имеет к тому что

_.name решает указанную мной проблему типизации, а не захват контекста? ;)

А какое это имеет отношение к дискуссии?

Только энтерпрайз, только хардкор

это скала

Но не Java ) В этом собсно и вопрос.

Скала мне нравится.

Скала мне нравится.

Чем эта запись

users.filter(_.name == ’Vasya’)

Лучше такой:

users.filter(new OnlyVasyas())

users.filter(new OnlyWithName("Vasya"))

?

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

Java разработчику проще вместо одной лямбды написать фабрику, которая будет инстациировать IoC контейнер, который будет резолвить по интерфейсу нужный нам класс.

Вы хоть сами поняли что написали?

Я понял, вот только то что вы предлагаете это даже не оверинжениринг ... это оверкоммонсенс

Ой, те же люди, и о том же пишут.
Мы вроде ещё с этой веткой не разобрались (в том смысле что я так старался, а в итоге ни серьёзных контраргументов, ни согласия):
dou.ua/...ic/5872/#215097

Там уже были примеры зачем нужны лямбды.

Если хочется настоящих лямбд можно юзать скалу, црешетка по прежнему не нужна. Ах да в той теме еще упоминались структуры. Теперь расскажите, как часто вы в типичном аспнет приложении юзаете струтуры?

Если хочеться настоящих лямбд, функторов и монад, то надо сразу «чистый» хаскель юзать. Скала не годится ибо не «чиста».

Хаскелль наше все

Учите Haskell — работа будет искать вас а не вы её

стране нужны хаскель жуниоры? где опыт то преобретать?

я говорю о коммерческом опыте разработке по. как правило именно такой опыт и интересует работодателей

Какая то рабская позиция: «Учить то, что нужно работодателям».

Зато можно ланос в кредит взять

нормальная позиция. у вас есть позиция получше?

Да, делать то что мне нравиться и получать за это денюшку )

позиция просто супер. и как скоро меня начнут искать работодатели после того, как я куплю книжку по хаскелю?

отсчет надо вести не с момента покупки а с момента понимания, а до этого может пройти не детерминированное количество времени.

Да и я это писал не в контексте хаскеля, а in general

А вы сделайте какойто крутой проект на хаскеле, засветитесь и тогда будут искать

Вот-вот. Взрослые дяди не раз говорили, что лучшее резюме — профиль на гитхабе.

отличная идея. крутой проект от жуниора. может быть он будет на столько крутым, что и работодатель не понадобится, т.к. от денег будет тошнить

Например, так linux начинался и еще over 5000 проектов :)

А мне Priora больше нравиться ...

Покажите хоть одну уа вакансию.

вообще если смотреть предложения работы — то вакансий для джуниора куда больше на Джаве.

Тема достойна места в палате мер и весов!

рядом с такими эталонами холивара как:
windows vs linux;
windows vs mac;
android vs ios;
facebook vs google+;
мова vs язык;
русский миръ vs загнивающий запад;

alien vs predator :)

безусловно, в этом вся прелесть :)

23 сениор vs 21 тимлид
зеркалка и теннисный стол vs велосипед и бесплатные обеды
зажравшиеся девелоперы vs кисо-эйчары
...
...
абстрактный класс vs интерфейс

Я голосую за абстрактный класс ! Интерефейс говн*о !

Ну что похоливарим ?

однозначно интерфейс и DI !абстрактные классы в ф топку :-)

Хлопцы, а ниче что абстрактные классы и интерфейсы используетсо для разного?

Та то хлопцы нахватались баззвордов и пытаются троллить

не надо общих ниче не значащих фраз. Если для отделения интерфейса от реализации используются абстрактные классы то это скорее костыли в системе.

«Абстрактный класс фигня мне не понравилось !!!!!!!!!!! остоётся токо ждать лутшего.Это для меня гoвно плохо зделан тупо.Немогли зделать всё как в Интерфейсе!!! И методы и наследование.Не рекоминдую такой класс!!!»

©

©

Копирайт ваш или это что-то известное?

Сей опус является кавером на известный в определённых кругах высер на тему неимоверной крутизны видеоигры Crysis. Подробности погрепайте тут — lurkmore.to/Crysis (Раздел «Известность в интернетах»)

Копирайт мой.

Как хорошо, что современному поколению 23-х летних синьйоров хватает времени всякую фигню читать.

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

Ну да, чоужтам, дослужился до командира — сиди, командуй :) Почитывай баш, лурку, и левой пяткой поднимай томкаты с нжинксами. А вы, поди, на работе только работу работаете или ещё и в теннис поиграть успеваете?

Старенькая, 2009г но ИМХО по прежнему меткая статья:
«Эволюция Java»

ko.com.ua/...ciya_java_44830

три отрывка

разработчики Java сражались сразу на всех фронтах, да еще и сами с собой. Можно, конечно, считать, что такой подход затормаживает прогресс, но логику никто не отменял — потребители заинтересованы в стабильности своих инвестиций в технологии, и кто хочет действительно массового признания своей hi-teck-продукции, тот или должен уберечь ее потребителей от революций, или так проводить революции, чтобы не просто не «до основанья», а и вовсе чтобы ни одна пылинка не упала.


Как язык программирования Java — lingua franca современного компьютинга, в каком-то смысле и вовсе псевдокод. Это значит, что фрагменты Java-кода может прочесть фактически любой мало-мальски грамотный программист, даже не учивший Java. Достигается это во многом благодаря не только изначально хорошо продуманному синтаксису, но и принципу, которого придерживались и продолжают придерживаться разработчики языка — «читаемость важнее синтаксического подслащивания».
...
Некоторые горячие головы берутся утверждать, что такая особенность языка приводит к его «неуклюжести», что языки новой волны позволяют в одну строку кода «утрамбовать» несоизмеримо большую функциональность. Впрочем, упреки, касающиеся эстетики, в мире языков программирования будут всегда, так что можно на них не обращать внимания.

Java-инфраструктуры давно стали отдельным огромным миром, в котором можно найти чуть ли не все, что может потребоваться. Как ни странно, но эта особенность Java-программирования, которую можно смело называть «software engineering в прямом смысле», часто подвергается критике. Говорят, что такое «компонентное изобилие» развращает программистов. Вот только говорящие это молча пользуются всеми доступными благами инженерии, ничуть не возмущаясь тем вопиющим фактом, что, например, развращенные конструкторы и производители автомобилей упорно не хотят каждый подшипник, вал и микросхему делать самостоятельно и «с нуля».

Почему ДОУ уже не тот?

PFfffffffffFFFFFFFFFFFFF

Еще как тот :D

Ооо ... И вы уже здесь мистер Сеньйор !!!

Java это web + mobile (android) + desktop (windows, linux, mac). С# - web + desktop (только windows). Мертворожденную Windows Phone можно не принимать в рассчет, так что mobile под c# отпадает. Имхо, Java универсальнее.

Если джава универсальнее, зачем тогда нужен Сшарп ??? Почему вакансий на ДОУ и не только тут по .НЕТ (веб, десктоп, мобайл и т.д.) почти в 2 разы больше, чем на джаву ?

Зачем этот .НЕТ только на Виндовс, если джава на каждой ОС запустится ?

А что, на рынке не может быть двух конкурирующих продуктов? Всегда только один?

Может хоть 10 быть, не пойму, почему все так рвутся на джаву, ее рекомендують, если в результате больше народа изучает .НЕТ, больше на него вакансий и т.д. Но кого не спросишь — все говорят джава лучше ...

Но кого не спросишь — все говорят джава лучше ...

Думается у каждого свой критерий этого — лучше.

Во-первых на Java пишется куда более разнообразное ПО, чем на .NET. Что расширяет возможности выбора области разработки, если не сейчас (начинающий программист), то в будущем
Во-вторых .NET без сопутствующих продуктов от MS — врядли всерьез можно использовать. А кроме них — ничего в подмогу и нет (например есть IIS и все. для Java есть и JBoss, Tomcat, Jetty, ..., ...). Значит, судьба разработчика на .NET зависит от видения тенденций MS. Java — куда более независима от Oracle.

В-третьих — считается (верно или нет — другой вопрос) что финансово Java программисту можно расти ощутимо дальше, чем .NET программисту

если в результате больше народа изучает .НЕТ

Очень сомневаюсь.

P.S.
Да, главное забыл:

Положение ОСей в серверном сегменте. Кто доминирует, в каких сегментах, и т.д. Если бы MS сделала .NET кроссплатформенным — то думаю да, Javе бы туго пришлось. Но такого не будет, MS это крайне невыгодно.

можно подробнее про разнообразие проектов на жаве?
если для десктопа что-то и пишут на жаве — то явно не от хорошей жизни.
ну а если вы о том, что для веба каждый крупный вендор предлагает по своему веб серверу и по несколько веб Фреймворков — то вы несмомненно правы насчёт того, что жава разнообразнее. А насчёт того, что жава в меньшей мере зависит от оракла, чем дот нет от Майкрософта — так жава не только от оракла зависит. там целая туча вендоров и если кто-то хочет менять стандарт — то кто-то может вставить палки в колеса.

ну а если вы насчёт того, что вдруг программисты на дот нет станут не востребованы — то тут вы тоже ошибаетесь. невостребованными моментально они не станут. а переквалифицироваться для хорошего программиста — не проблема совсем

можно подробнее про разнообразие проектов на жаве?

От энтерпрайза до науки.

От типических до уникальных.

что для веба

о-о-о, далеко не только для веба. Далеко не только.

Вообще, вопрос:
а где вообще применяется эта ваша Java,

я отношу к вопросам первокурсника, или к троллингу.

Нелепость какая, не знать о массовости и разнообразии ее применения.

Может еще и про С++ спросите, а какие такие разнообразные проекты на нем пишутся?

если для десктопа что-то и пишут на жаве — то явно не от хорошей жизни.

Если к серверной части нужен именно десктопный клиент, то зачем мучиться писать его на другом языке? Зачем порождать сложности с сопровождением этого цельного продукта?

так жава не только от оракла зависит. там целая туча вендоров и если кто-то хочет менять стандарт

Стандарт на то и стандарт чтобы НЕ менялся.

Зависимость от многих вендоров означает как раз именно устойчивость, неизменность.

Что это за стандарт, который постоянно меняется :D

Нонсенс, абсурд какой-то :)

Давайте пусть каждый производитель электроприбора придумывает свою вилку. Зато какова новизна, каков прогресс будет!

Итак мобильщики сколько лет утомляли — свой вход для зарядки, и свой выход для подключения к компу. Вот здорово то если бы для Java — а каждый вендор свою JVM, свои расширения языка!

программисты на дот нет станут не востребованы

Пока у MS дела будут идти хорошо, или хотя бы неплохо — востребованы конечно будут. Ничего такого пугающего для карьеры программиста на C#.NET в ближайшие 5 лет не вижу.

переквалифицироваться для хорошего программиста — не проблема совсем

Еще меньше проблем — НЕ переквалифицироваться :)

От энтерпрайза до науки.

От типических до уникальных

да точно тоже самое пожно написать и про си шарп.

.

о-о-о, далеко не только для веба. Далеко не только.

а я ведь и не говорил, что только для веба.

ну до недавнего времени жава была только для сервер сайда.

Стандарт на то и стандарт чтобы НЕ менялся.

Зависимость от многих вендоров означает как раз именно устойчивость, неизменность..

да ладно вам. это же для разработчиков в первую очередь и интересно, чтобы язык обрастал современными абстракциями.

Еще меньше проблем — НЕ переквалифицироваться :)

опять же это всё здорово, но от этого никто не застрахован. и жависты тоже. сегодня у дот нета определённо положительная динамика. новых проектов становится всё больше.

да точно тоже самое пожно написать и про си шарп.

Где там шарп в науке применяется? Где С# аналоги для NLP(OpenNLP), machine learning(Weka, Mahout), graph processing(neo4j)?

Я не сомневаюсь что есть куча дохлых проектов, типа sharpnlp который неактивный уже 6 лет.

Вы поделия с codeplexа не сравнивайте с применяемыми не первый в год в серьезных компаниях.
У них может быть и будет большое и светлое будущее, и авторам их — респект и уважуха.

Но все же, не аргумент.

Упомяну об околонаучности.
Когда научный коллектив получает грант — ему не до уплаты лицензий за типово-бизнесовое ПО. Ему и так наверняка понадобится нечто уникальное. Так вот разработка на Java потому и выйдет дешевле, что можно обойтись без массы платных лицензий.
Например, не сохранил правда ссылки — ПО для адронного коллайдера. Все крутится на Linux. Обсчеты статистики и прочей теор физики написаны — на C++. Интегрирующая и интерефейсная части — Java.

А теперь попробуем обосновать выбор вместо Java — C#

1. В научной среде на Java и С++ пишут чаще (а еще чаще на чистом С) т.к. эти языки постарше, а не потому, что нет денег на лицензии (все серьезные образовательные и исследовательские учреждения могут позволить себе их купить или при желании получить с 99-100% скидкой).
2. Приводить в качестве преимущества Java пример коллайдер — моветон. Еще давайте вспомним запуски аполлона или Health systems (хотя нет, там тоже сейчас на .net многие переходят).

3. Из любой java библиотеке можно сделать .net пакет с помощью ikvm. Я могу долго рассказывать о weka, научных разработках Microsoft Research на С++, использованию крутых open source java библиотек в продакшине в .net проектах и т.д. Другой вопрос, что это не имеет никакого отношения к реальному 99% миру разработки, который мыслит другими категориями и понятиями.

а не потому, что нет денег на лицензии

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

Health systems (хотя нет, там тоже сейчас на .net многие переходят

Вот как раз у меня тут другая информация. А так немножко связан с темой — то как раз в этом секторе приоритетные расходы не ПО, а мед оборудование и медикаменты. Поэтому как раз в healthcare стараются снизить стоимость владения.

Из любой java библиотеке можно сделать .net пакет с помощью ikvm

А зачем, если можно — НЕ делать, а запускать под JVM?

Из потенциальной возможности не следует выгода от использования этой возможности.

Не допонимаю я ход ваших мыслей.

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

Коммерческие фирмы не платят за софт? За бугром расходы на софт — как у нас расходы на туалетную бумагу и теннисные мячики.

Вот как раз у меня тут другая информация. А так немножко связан с темой — то как раз в этом секторе приоритетные расходы не ПО, а мед оборудование и медикаменты. Поэтому как раз в healthcare стараются снизить стоимость владения.

Снизить стоимость владения чего? Софт для лайфхелф мега дорогой, но точно не дороже потраченных денег на исследованя и разработку оборудования и препаратов.

А зачем, если можно — НЕ делать, а запускать под JVM?

Писать прослойку для взаимодецсвия с различными патформами вместо того, чтобы получить за 5 минут api на .net — несомненно, «верное» решение.

Коммерческие фирмы не платят за софт?

Платят конечно.

Писать прослойку для взаимодецсвия с различными патформами вместо того, чтобы получить за 5 минут api на .net

Ох ты, а .NET не прослойка???

Нет, .NET это фреймворк

может пошутили, но я серьезно

фреймворк — это способ реализации прослойки.

Как и драйвер — прослойка, как и веб-браузер.

Все что повышает уровень абстракции — прослойка. А уж реализована она в виде ВМ, или как CLR — дело второе.

Напомню — прослойка в виде JVM MS вполне устраивала, пока они могли вносить в нее нужные им изменения. Когда SUN в судебном порядке отобрала такое право — вот и возникла потребность в эквивалентной прослойке. А так MS не ставили целью полную кроссплатформенность, то и способ реализации выбрали другой. Что позволило им достичь некоторых возможностей, проблематичных для классической ВМ.

Ну и просто — учли тенденции, да и Хейлсберг -величина не меньше Гослинга.

да точно тоже самое пожно написать и про си шарп.

Нельзя :)
Есть целые классы ПО, которые не пишутся на C#.

Потому что эти классы ПО, связаны с другими классами ПО, которые НЕ написаны на C#, или не предоставлены MS. Ниже будет про инфраструктуру.

это же для разработчиков в первую очередь и интересно, чтобы язык обрастал современными абстракциями.

Ну если разработчики ради развлечения программируют — то пусть себе развлекаются «современными абстракциями». Только они ведь зарплату еще хотят, не?

Целью создания языков программирования является повышение эффективности труда программиста. Если этой цели способствуют «современные абстракции» — то используются они. Если — подчеркнутый минимализм, суровая комитетная стандартизация — то будут использованы они.

Но, тенденцию последнего десятилетия я бы охарактеризовал так:
изменения в ЯП для цели повышения эффективности труда программиста стали столь сложны, что приводят к обратному эффекту (хотя программисты да, получают кайф от ежедневного решения головоломок). А потому на первое место выходит инфраструктура, ее развитость.
А поддержка и развитие инфраструктуры — очень дорогостоящее дело. Куда более дорогое чем разработка и поддержка транслятора ЯП.
Это, инфраструктуру могут себе позволить либо очень крупные корпорации, либо огромное комьюнити.
Вот и получаем что .NET держится только на MS. Его комьюнити и близко не создает на .NET инфраструктуру.

А вот инфраструктура Java, кроме того что поддерживается несколькими корпорациями, так еще и развивается комьюнити.

И мне понравилось в статье на ibm.ru
«О Java пора говорить не как об объекто-ориентированном языке, а как об инфраструктурно-ориентированном»

Вот о С# такого не скажешь. И вся платформа — это инфраструктура только для продуктов MS,

Теоретические возможности .NET не рассматриваю. Как и «да все тоже самое можно написать и на ассемблере»

но от этого никто не застрахован

Конечно никто не застрахован.

Но исходя из моих рассуждений выше — у Java более устойчивое положение.

сегодня у дот нета определённо положительная динамика

А завтра? И какая динамика у Java — отрицательная?

Новых проектов становится все меньше?

насчёт того, что язык программирования не должен развиваться — бред полнейший.

язык программирования — это всего-лишь инструмент. и было бы здорово, если бы инструмент был современным. можно ведь огромную яму выкопать лопатой, но есть и экскаваторы ведь.

у дот нета отличная инфраструктура. благодаря тому, что у дот нета один вендор. а с жавой у IBM своя инфраструктура, у Oracle тоже своя и у других вендоров соответственно тоже своя.

опять же насчёт динамики создания новых проектов по той же жаве я не могу судить ни в абсолютных величинах, ни в относительных

насчёт того, что язык программирования не должен развиваться — бред полнейший.

Никто ничего никому не должен.

Как в биологической эволюции — если какие-то признаки не дают преимуществ — они НЕ будут накапливаться.

язык программирования — это всего-лишь инструмент

И далеко не единственный сейчас при создании конечного программного продукта.
И далеко не единственный — у конечного программиста.

Если да, посадить всех программистов в Notepad — то многие языки окажутся очень неудобными.

и было бы здорово, если бы инструмент был современным

Современность ради современности — сродни искусству ради искусства.

Но — кто оплатит то пожелания и забавы программистов?

у дот нета отличная инфраструктура

Microsoft only.

У 1С — тоже отличная инфраструктура. Только внутри себя.

а с жавой у IBM

IBMовская JVM строжайше совместима.

своя инфраструктура

Слепленная с помощью универсальных и кроссплатформенных средств.

у других вендоров соответственно тоже своя.

А у НЕвендоров?

Ну вот возьмем часто упоминаемый maven. Он обеспечивает инфраструктуру независимую от вендоров.

Или разнообразные стандарты из «Java EE» которые разные вендоры — стремятся соблюдать (не все так радужно конечно)

Но ИМХО, .NETчики даже не представляет как это — жить в многовендорном мире.

опять же насчёт динамики создания новых проектов по той же жаве я не могу

О динамике я люблю часто так говорить:

Вторая капля в пустой стакан добавляет 50% воды!

Так вот стотысячный новый проект в мире Java да, покажет хиленькую динамику.

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

Если сугубый .NETчик, то неудивительно. За вас ее продумала MS, от вас ее и спрятала, и дала легкие и удобные инструменты работы с ней. В этом прелесть программирования что под Windows, что под макооси.

А как кратко ответить собственно на вопрос, не придумывается :)

да нет. я вот понимаю инфраструктура продуктов ibm, ифраструктура oracle. но вот инфраструктура жавы — это для меня загадка.

инфраструктура продуктов ibm, ифраструктура oracle

это частные случаи :)

Утрировано, инфраструктура Java позволяет слепить систему из кусков от ibm и oracle. Добавив туда еще парочку от других производителей.

И это не зависит от операционной системы. И работать будет всюду где есть реализация JVM

А вот слепить нечто на линуксе на .NETе прикрутив туда фичи от Apple — не получится.

То есть инфраструктура Java не просто кроссплатформена — она реализована на более высоком уровне абстракции чем инфраструктура от MS. Того кстати и приводит в шок и трепет программистов.

Добавлю совсем поэтически:
Инфраструктура Java является операционной средой более высокого уровня чем привычные ОСи.

Примерно как они сами, в свою очередь над микрокодом микросхем.

И такая операционная среда есть только в Java мире. В этом то и ее могучесть и незаменимость.

Инфраструктура Java единственна, как единственен Internet

Сергей, вы написали много уже и много мимо. Спорить, естественно, с вами не буду, но, плз, не сбивайте молодняк своей предвзятостью и не пониманием платформы .NET. Если уже сравниваете — сравнивайте Java (язык ) и C# (язык) и Java (платформу) и .NET.

P.S. Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders.

Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders.

А че, кроссплатформенность это совсем не преимущество уже?

не сбивайте молодняк

Молодняку нужны не язык и не платформа.

А ориентиры в Профессии.

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

Saying that Java is good because it works on all platforms ...

Хорошая шутка :)

Только как всякая аналогия — ничего не доказывает.

можно подробнее про разнообразие проектов на жаве?

Hadoop, cassandra, hive, pig например. Плюс всякие екомерцы

Для десктопа за деньги на джаве пишут в основном под Eclipse RCP. Это может быть какой-то специфический CAD сам по себе или плагин для Eclipse для интеграции какого-то специфического CAD или плагин для интеграции какой-то ALM платформы в eclipse, например.

Разработка под eclipse дарит программисту с одной стороны множество инструментов и хорошую архитектуру, что можно оспорить.

С другой стороны набор фреймверков достаточно большой, обратная совместимость порождает множество способов сделать одно и тоже, нужно въезжать в osgi и xml конфиги, таки есть баги и неочевидность, вакансий на Украине мало в отличии от.

Короче, весело :)

Если джава универсальнее, зачем тогда нужен Сшарп
На самом деле не Сшарп, а CLR .NET нужен был Майкрософту. нужна была своя вирт машина или среда выполнения, универсальная для всего стека их продуктов. VB уже такой перестал являться, и усовершенствованию не подлежал.
Зачем этот .НЕТ только на Виндовс, если джава на каждой ОС запустится ?
Затем что .НЕТ хорошо интегрирован с остальными продуктами от MS. Будь то IIS или «шарыпойнт».
Просто «нечто запустится на каждой ОС» — неинтересно никому.
Почему вакансий ... почти в 2 разы больше чем на джаву
Причин думается несколько. Например — а на джаву и так понятно что полно вакансий в компаниях, можно и не публиковать их.
Или — на джаву больше предложение, начинающие программисты чаще идут в нее, чем на .НЕТ.

Я так понимаю, если .НЕТ хорошо интегрирован в продукты от МS, .НЕТ и язык программирования вобрали в себя лучшие качества даже от Джавы, плюс к этому всему, я заметил что на .НЕТ лучшие материалы и справочники (например MSDN) и так, как 90 % и выше рынка занято продуктами от MS — значит лучший выбор будет — .NET и C# из разными прибамбасами ?

и так, как 90 % и выше рынка занято продуктами от MS

Какого именно рынка, вот в чем вопрос.

значит лучший выбор будет — .NET и C# из разными прибамбасами

Десктопные приложения все равно на C# пишутся редко.

Уже не один год спрос на веб-приложения. Которым требуется серверная часть. И если Java ограничения на серверную ОСь не накладывает, то использование .NET — принуждает использовать решения от MS.

Выбор тут даже не за программистом, а за — заказчиком. Если он считает что ему что-то из юниксов лучше и дешевле, то и придется писать серверную часть на Java, PHP, Python, Ruby, Erlang’е, ...

То есть ограничения .NETа не в нем самом, а в том как его и куда его распространяет владелец — MS.

А MSDN да, хорош. И многое, многое в .NET и C# - вполне хорошо сделано. Было бы бесплатно серверное ПО от MS — тогда конкуренция с Java была бы на равных.

очень сильное заблуждение насчёт десктопных приложений. можете погуглить в вакансиях win forms и wpf

и их число сопоставимо с вакансиями на ASP.NET? ;)

естественно таких вакансий меньше, но не потому, что на дот нете пишется меньше десктопных приложений, а потому, что десктопных приложений сейчас пишется в принципе меньше, потому что для предприятий всё-таки удобнее иметь крутое веб приложение и десктопное им надо только в самом крайнем случае

Десктопные приложения все равно на C# пишутся редко.

Вот в фирме где я работаю, как минимум два десктопных приложения разрабатываются на C#. В добавок, nVidia FX Compser и Autodesk 3D Studio Max (последних версий), хоть возможно и не написаны полностью на C#, но используют .NET. Это из крупных, по мелочи я думаю тоже примеры можно найти. И попрошу не забывать, какая ОС самая распространенная на настольных компьютерах.

По поводу выбора для серверной части, никто не принуждает ни к чему.
Есть — www.mono-project.com/ASP.NET , и оно работает.
К тому же, серверная часть, это не клиентская. Можно выбирать систему под

ту технологию/язык — которая хочешь, пользователя это ни как не затронет. Единственный аргумент тут — «ааааа поганый злой микрософт со своей монополией заставляет нас пользоватся виндой». Я к тому, что в чем проблема — пользоваться IIS и windows? А не хочется, в перед — ставь Апачи — прикручивай ASP.NET, а потом выкладывай на CodePlex, что бы другие пользовались.

И попрошу не забывать, какая ОС самая распространенная на настольных компьютерах.

Я помню. На ней и сижу. Только десктопных приложений на .NET у меня не больше чем на Java,

Есть — www.mono-project.com/ASP.NET , и оно работает.

А как часто используется практически, вот в чем вопрос.

Много чего на свете «работает».

Я к тому, что в чем проблема — пользоваться IIS и windows

Именно в этом и проблема. Для многих заказчиков.

Как и преимущество — для других заказчиков.

Единственный аргумент тут — «ааааа поганый злой микрософт со своей монополией заставляет нас пользоватся виндой»

Его для многих — достаточно.

А не хочется, в перед — ставь Апачи — прикручивай ASP.NET, а потом выкладывай на CodePlex

А зачем прикручивать ASP.NET и выкладывать на CodePlex?

Как это удовлетворяет нужды потребителя ПО? Он платит деньги за решение.

Одно дело работает, а второе дело как работает. Не верю, чтоб аспнет под моно работал также как и под виндой

Да я тоже не верю, и немало наслышан и о глюкавости Mono и о его тормознутости в сравнении с настоящим .NET. Что неудивительно. Вспомним — Java Harmony — тоже разрабатывалось вольным сообществом.

Я пробовал запускать под ней. Это млин не для слабонервных.

Как Гослинг подметил — чтобы написать с нуля аналог нынешней JVM — требуется пара сотен программистов высочайшей классификации. Не вижу чем CLR .NET проще.

Просто верю-не_верю — не аргумент :)

Нормально работает, я несколько раз разворачивал сайты под моно. Но, как правильно заметил Богдан в топике про 1С, нет поддержки Ентити. Не критично, но очень печально.

Как раз слышал. Когда по душам а не в холиваре — сплошной негатив: глючное и тормознутое поделие. Как Java Harmony когда жива была.

Глючный ага, наверное потому на Habr была статья в которой Mono работало быстрее Java на Linux в разы. Еще глючный настолько, что перевод Dalvik на Mono сделанный Xamarin работает быстрее Java в разы.

Не холивора ради tirania.org/s/71de890b.png вот скриншот. Пишите на Java, пишите, но не надо унижать другие инструменты если вы о них ничего не знаете. :)

что перевод Dalvik на Mono сделанный Xamarin работает быстрее Java в разы.

Далвик, ДжВМ, Джава, Моно, дотНет, Ц№ — это все разные сущности.

Не холивора ради tirania.org/s/71de890b.png вот скриншот.

Посмотрите на скриншот и скажите почему эксперимент не корректный.

Хоть кто-то, покажите мне адекватный комментарий дотНетчика в этой теме (бо я начинаю терять веру в людей, а мо я просто не внимательный). Адекватный — значит написанный не в хамском стиле с позиции «обиженного» и содержащий аргументы, а не только высказывания.

Мейби

нормальные дотнетчики работу работают, а не холиворят по форумам, пытаясь доказать непонятно что, непонятно кому %-)

Адекватные дотнетчики предпочитают не встревать в такие холивары.

По мойму таких хватает) Если честно, то неадекватных фанатиков Джавы в этой теме в три раза больше, чем неадекватных фанатиков дотнета.

По мойму таких хватает)

Аргументы (ссылки), а не высказывания, пожалуйста.

Да ладно, лень мне сцылки делать, сами почитайте. Вот скажем Вячеслав и РеалитиХакер в этой теме демонстрируют полную неадекватность. По хорошему, адекатен здесь только Sergiy Skynin, а про всех остальных этого уже не скажешь.

РеалитиХакер

А давай ка пример где я демонстрирую неадекватность?

По мойму таких хватает) Если честно, то неадекватных фанатиков Джавы в этой теме в три раза больше, чем неадекватных фанатиков дотнета.

За то джависты не пропагандируют анальный секс!

Mono работало быстрее Java на Linux в разы

И что? А программа на плайн Си — еще быстрее.

Стабильность работы, надежность частенько намного важнее.

Я ведь и не спрашивал о скорости, зачем вы мне о ней рассказываете?

если вы о них ничего не знаете.

Уже ответил, — я знаю о Mono от тех кто на нем пишет или писал, и в частных, доверительных беседах. Для меня такая информация важней тестов по быстродействию.

Я разрабатываю игры с помощью Mono, мало того, что с помощью Java я не смогу добиться такой мультиплатформенности(а игра наша работает и на iOS/Android и на десктопах и в вебе), так проблем никаких со стабильностью не наблюдаю, что я делаю не так?

Цитата Steve Jobs о Java тут в тему:

«Java’s not worth building in. Nobody uses Java anymore. It’s this big heavyweight ball and chain.» Конечно про Nobody uses это он загнул, когда язык, преподается, как паскаль у нас в универах, понятно, что эти старые кости будут тащить до сих пор. Но некоторые вещи положено хоронить и Java одна из них, так же как похоронили Delphi в свое время, хотя тоже удобная и хорошая платформа была.

что я делаю не так?

Я не знаю ни кто вы, ни что вы и на чем пишите. У меня нет причин ни не доверять, ни — доверять вам. То есть эта информация «Я разрабатываю Х на Y» — пуста.

Мало того, если я не пишу игры, и у меня не стоит задача iOS/Android/десктоп — то и бесполезна.

Steve Jobs

Не вижу причин доверять его мнению в этом вопросе. Его бизнес построен не на разработке ПО.

За то есть причины рассказывать сказочные сравнения Java и C#

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

В разработке игр Java используют для написания серверов и там есть конкретные преимущества

Странно, тормознутая Java(в сравнении с Mono), убогая по языку, в сравнении с C# - имеет какие-то преимущества...

вы плохо с C# знакомы.

Действительно, на C# писал гораздо меньше чем на Java. Не впечатлило. в C# 4.0 да, есть много интересных вещей. Хотя в Scala — их еще больше.

я знаю обе стороны

Может даже одинаково хорошо, в отличие от меня.

За то есть причины рассказывать сказочные сравнения

Скорее я рассказываю почему остаюсь на Java.

За всех постеров в теме отвечать не берусь.

Я нигде не говорил, что Java тормозная, не надо на меня вешать того, что я не говорил. Зато вы наговорили про стабильность очень много, сами не попробовал, мне Вася из соседнего подъезда пишущий на Cи тоже говорил, что эта Java ваша сплошной глюк. :) Но я не бегу на форум рассказать всем об этом.

Честь вам и хвала, я не доказывал, что Java плохой язык, но такое ощущение, что вам идеологично противен C# ^^

Зато вы наговорили про стабильность очень мног

То что слышал о Mono из источников которым — доверяю.

Я нигде не говорил, что Java тормозная

...

Mono работало быстрее Java на Linux в разы. Еще глючный настолько, что перевод Dalvik на Mono сделанный Xamarin работает быстрее Java в разы.

что вам идеологично противен C# ^^

Я не знаю какой-то особой идеологии за C# Вот у Scala — да, есть такая. У С# есть фичи, «вкусности» и фенечки. Что такое идеология C#, отличная от Java — не знаю.

Давайте без телепатии :)

Вот про Scala я могу сказать тоже самое, что для меня это все фенечки. :) Это все вопросы субъективности, вы со своей колокольни смотрите.

Не малое количество игр сделанных с помощью Mono(а именно Unity3D, которая его использует) для iOS/Android(где производительность важнее, чем на десктопе), говорят, что возможно стоит усомнится в пряморукости ваших источников, это как вы про эволюцию говорили. Было бы глючное, оно бы такими темпами не развивалось. Нейтив конечно лучше чем обертки, но в данной ситуации разработчики выбирают гибкость. Такую же гибкость предлагает кстати Adobe Air(ActionScript), но он не такой популярный, как Unity3D, потому что на мобилках глючит и тормозит.

Это все вопросы субъективности, вы со своей колокольни смотрите.

Я не считаю что в этом случае — субъективности. ну C# vs Scala

Но знаю, что с очень немногими программистами можно об этом поговорить. С вам вот уже получается не выйдет :)

Не малое количество игр

У Спольски есть замечательная статья «5 миров». Мир геймдева меня не интересует, хотя имею опыт, и действительно, применение там какой-нибудь технологии говорит о ее возможностях.

Scala есть и под .net кстати, но у .net есть F#. Я с функциональными языками особо не знаком, в играх их не применяют пока особо, потому о Scala со мной точно не поговоришь. :)

Scala есть и под .net кстати

<sarcasm>NScala ?</sarcasm>

www.scala-lang.org/node/10299 все такие умные джависты, .net же неотмира сего, все это подделки, надо обосрать его. Оффициальные разработчики Скалы сделали ее и для JVM и для .NET

И зачем для дуднета? Будто много дуднетчиков используют мертворожденный эфшарп, в основном же сишарп и цпп под дотнет. Порт скалы на дуднет тоже мало кто будет юзать

:) C++ .net тоже не особо юзают, это бред по-моему. :)

С++ под дотнет не очень популярен. Чаще Бейсик. А Ф# - штука хорошая. Взлетит — не взлетит, судить не берусь, но юзабельна вполне.

F# не мертворожден, расскажите это OCaml шикам.

Clojure тоже сделали для CLR (а не для .NET или С# как вы тут спорите), т.к эти языки в определенных задачи позволяют подняться на один уровень абстракции, если у вас есть библиотека на Сlojure или Scala, было бы неплохо охватить аудиторию шарперов, которые заглядываются на функциональщину и джавистов, охватить поверх среды, а не языка какого-то.

Эти языке в купе с Groovy уже прозвали nextgen просто вместо того, чтоб тратить десятилетия на разработку своих VM и нормальных GC, они потратили на фичи в языке (в Scala сомнительны, в Clojure очень качественно многое проработано).

Если бы эти языки компились в c#/java от них толку мало было бы, это были бы dsl. Они же работают с байткодом.

www.myclojureadventure.com вот у парня хороший блог о Clojure поверх CLR.

со мной точно не поговоришь

Вы даже не поняли о чем. Что не о Scala :D

Ладно, все нормально.

приблизительно уже понял, что о субъективизме. Я лично всегда считал, что у каждого языка своя задача, вот в Java у нас часто задача — это серверная часть. Во многом с вами по Java согласен, но в написании самих игр(не серверной части) Java не прижилась(да можно говорить о Minecraft, но это единичные случаи). C# прижился. Вот даже есть такая штука, как Delta Engine

deltaengine.net — он только начал развиватся, но уже нашел единомышленников. И он еще больше охватывает платформ, чем Unity3D и в отличии от Unity, который сам написан на С++ является чисто C# разработкой.

приблизительно уже понял, что о субъективизме.

Да, о нем :)

Я лично всегда считал, что у каждого языка своя задача

Это общая фраза, ничего не значащая.

Как понимаю сугубо толерастная.

Вот какая такая особенная задача у Java которая не сходится с особенной задачей C#? и наоборот.

Не по факту их распространения, на который влияет много чего никак не связанное ни с свойствами ЯП, ни с свойствами реализации транслятора.

Или, какие такие особенные задачи должны решать Python и Ruby? ;)

Вот Си и С#-Java — да имеют — разные цели начиная с целей их авторов.

А Java и C# - это языки для одной и той же задачи, одной и той же области применения, одного и того же уровня и т.д.

Да можно сравнивать спору нет, но кроме синтаксиса у языка есть еще коммюнити, которое часто определяет направление развития(вот как с руби в сторону веба — Ruby on Rails и прочее). Что касается вопроса, что выбрать — нужно выбирать на чем приятней работать. На C# потенциально можно писать то же, что и на Java, а в некоторых областях и лучше чем на Java, так же как в некоторых областях Java лучше C# в силу наличия библиотек и т.п.

PS я выбрал C# изначально не из-за геймдева, а из-за синтаксиса.

Да можно сравнивать спору нет, но кроме синтаксиса у языка есть еще коммюнити

И таких критериев — много.

Холивары тем и неконструктивны, что сравнивается все подряд со всем подряд.

PS я выбрал C# изначально не из-за геймдева, а из-за синтаксиса.

А я из-за распространенности, и разнообразия реализуемых на Java проектов.

Цитата Steve Jobs о Java тут в тему:

“Java’s not worth building in. Nobody uses Java anymore. It’s this big heavyweight ball and chain.”

Вы буквы наговорите, а фразы там нарежут ©

Вы контекст этой фразы приведите, пожалуйста.

Джава ещё долго никуда не денется. Даже если мелкософт сделает .net кросплатформенным — джаву будут использовать для поддержки старых продуктов. Статус Кобола нашего века Джаве обеспечен.

Ну да, для казуалочек хватит и Mono...

Wasteland 2 — это идейный продолжитель серии Fallout от оригинальных разработчиков Fallout делается на Mono. Крутая казуалочка.

Да я забыл еще сказать, Unity умеет билдить игру на Playstation 3, XBOX 360 и Nintendo Wii. Только там дорогая лицензия.

Wasteland 2 — это идейный продолжитель серии Fallout от оригинальных разработчиков Fallout делается на Mono. Крутая казуалочка.

Взаимоисключающие параметры детектед. Во первых это Fallout — идейный продолжитель Wasteland, а во вторых, как оно может быть казуалкой, если всё в серии РПГ?

Я отвечал человеку, который сказал, что Mono годится для казуалок, а вот и нет. То был сарказм.

Ну да, а успешные гейм проекты нашего времени не используют моно. Вот когда на моно будут делать игры как Crysis тогда и поговорим

Вы еще скажите, что Crysis написан на Java. ^^ Crysis SDK — это ад для разработчиков, которые с ним работают впервые, тот же Unity в разы удобнее, пусть там не будет мега-пупер шейдеров, которые впринципе редко нужны, особенно при такой мультиплатформе.

Вот UDK поприятней, там и саппорт лучше и доков больше и коммюнити шире, но Unreal Script тоже еще та головная боль.

Вы еще скажите, что Crysis написан на Java

Ой так толсто, худеть надо. Crysis на С/С++

Crysis SDK — это ад для разработчиков, которые с ним работают впервые,

Я как-то ставил никакого ада не ощутил

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

Хороший движек Crysis, я не спорю, прямой конкурент UDK, но если UDK еще для маленьких проектов годится, то Crysis — это монстр, который оправдан только в крупных проектах и это проблема Crytek, хотя они рьяно пытаются адаптировать движек для мелких студий, как это сделали Epic, у них этого пока не получилось, а в это время Unity уже давно вырвался в лидеры с большим отрывом среди мобильной разработки и частично среди Desktop инди проектов. В XBOX Arcade — там C# тоже рулит, потому что XNA — это отличное решение. Если бы XNA работала каким-то хитрым образом на андроиде и айфоне я бы уже давно перешел на нее.

И все равно

unity3d.com/...unity/game-list

Одни ноунеймы
Видать таки сишарп не предназначен для серьезных игр, как бы не хвалили Unity3D

Другое дело UDK

en.wikipedia.org/...al_Engine_games

Хорошие игры, не жалко купить лицензию и поиграть

CryEngine 3

www.incrysis.com/...ic.php?id=34460

Frostbite engine

u.wikipedia.org/...rostbite_Engine

Исходя из этого ваше юнити никому не нужно кроме фанатиков сишарпа которые думают что сишарп годится для гейм девелопмента

Для вас геймдевелопмент просто — это только проекты уровня BattleField. Frostbite — это inhouse разработка EA/DICE. В списке там нету игр других кроме EA. Но куда тем играм к World of Warcraft с его прибылью, на фоне его все те игры это фанатские разработки, надо писать кастомные движки. Это ваша логика.

Вы просто забыли, что кроме проектов уровня Battlefield и Unreal есть еще мобильная разработка, социальные игры, ММО. И еще есть такой нюанс, что Unity моложе в несколько раз и там дело вовсе не в C#, там можно и на питоне писать код и на Javascript(все с использованием библиотек .NET Mono). Так что это не удел фанатиков C#, а просто адекватных разработчиков, которые выбирают удобство и гибкость, вместо погони за полигонами. Цель Crytek дать заработать на очередных видеокартах, а не сделать хорошие игры.

Более того скажу, вы сами в много игр играли сделанных на Unity даже незная об этом. И в инете и на компе. :)

А расписать кучу крутых игр еще можно на движке Quake 1-3, Doom 3, Source и так далее.

Для вас геймдевелопмент просто — это только проекты уровня BattleField

Которые приносят намного больше прибыли чем ваше юнити триде

Но куда тем играм к World of Warcraft с его прибылью,

А шо у них сишарп используется? или может быть моно?

есть еще мобильная разработка, социальные игры, ММО

Рассадники деградации

Цель Crytek дать заработать на очередных видеокартах, а не сделать хорошие игры.

Crysis вышел довольно хорошим

Более того скажу, вы сами в много игр играли сделанных на Unity даже незная об этом

Нет, все они не были сделаны на движке юнити

А шо у них сишарп используется? или может быть моно?

Кстати, а что у них там? Как дополнительный они юзают LUA, а как основной?

Crysis вышел довольно хорошим

Трешак. Хотя да, по сравнению с Кризис 2 — он довольно хороший.

Кстати, а что у них там?

C/C++ клиент, UI на LUA, аддончики тоже LUA. Серверная часть скорее всего Java + Oracle или C# + MSSQL(менее вероятно)

Судя по вакансиям, они набирают и джаваистов и дотнетчиков, так что фиг его знает.

Логика у тебя, что у женщин. :) Судя по твоей логике, ты с мобильных игр не вылазишь, деградировал окончательно. Помнится, когда UDK появлялся, точно такие же красавчики, как ты рассказывали, что UDK ваш фигня, есть же движ Quake и кидали списки игр, а потом когда Crytek делали свой движек, точно такие же форумные вояки говорили, зачем они делают свой движек, если уже есть UDK.

Только стоят эти движки серьезных денег в то время, как на Unity можно хоть бесплатно более простые проекты писать и за 2 штуки баксов сложные(покупка pro license). Даже лицензия с исходным кодом стоит дешевле, чем UDK. А у UDK royalty еще к тому же, если не заплатишь единоразово около 700 тысячи долларов 25%. У кризиса не лучше.

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

Wasteland 2 — это идейный продолжитель серии Fallout от оригинальных разработчиков Fallout делается на Mono.

Прикольно, а ссылочку, интересно же.

Там про Unity engine, она написана на моно?
Тут
unity3d.com/...em-requirements
ничего про это не сказано.
Тут вот
answers.unity3d.com/...monoc-or-c.html
пишут:
“The Unity runtime is written in C/C++.”
“The editor application’s UI is written in C#”
то есть на Ц№, только УИ.

Если я чего-то не так понял, объясните.

Вся разработка происходит на Mono, можно писать любые библиотеки на Mono и цеплять их к проекту, на C/C++ и строки кода не надо писать ни для логики ни для уи ни для алгоритмов, хотя можно с помощью экспорта C функций в C# добавлять сишный код. Ясное дело, что низкий уровень написан на C/С++, а по другому как? Даже Нотч свой майнкрафт, когда писал, там не чисто Java. Что бы увидеть Сишный код в юнити надо хорошо забашлять.

Вся разработка происходит на Mono

Вот пока что я не увидел подтверждения, что так делают.

можно писать любые библиотеки на Mono и цеплять их к проекту,

Да хоть на джаваскрипте. И шо?

Повторюсь:

Wasteland 2 — это идейный продолжитель серии Fallout от оригинальных разработчиков Fallout делается на Mono.

Подтверждения, пожалуйста.

Ну и не увидел ты, какая мне разница. Хочешь увидеть — установи Unity3D и посмотри, у меня нету времени объяснять это троллям. :)

у меня нету времени объяснять это троллям. :)

Вот почему когда у посетителей ДОУ заканчиваются аргументы они просто называют опонента троллем?

А это аргумент — я не хочу видеть очевидного и вырезаю выгодные мне цитаты, которые доказывают мое мнение, хотя в контексте все наооборот?

хотя в контексте все наооборот?

Что наоборот? По ссылке было всего лишь про АПИ, а это не значит что игра написана на моно.

выдрал, что тебе понравилось, даже по той ссылке, что ты дал все отвечено

Unity is written in C++, with the following exceptions:

we expose a .NET api so that you don’t have to go trough the pain of writing your game in c++, but you can write it in Javascript or c# or boo.

The editor application’s UI is written in C#, using mostly the same API that we expose to game developers. (We have access to a few API’s that we don’t expose (yet), but not that many)

Пишешь ты игру на Mono, и пишешь хоть на яваскрипте хоть на boo — они оба заточены под библиотеки Mono и есть доступ к .net BCL. А то, что сама оболочка Unity3D написана на C++ - это желание разработчиков, обусловленное производительностью в 3D аппликухах.

we expose a .NET api so that you don’t have to go trough the pain of writing your game in c++

Они предоставляют АПИ. Но это не значит что Wasteland 2 написан на «моно», это просто догадка (без аргументов).

А то, что сама оболочка Unity3D написана на C++ - это желание разработчиков, обусловленное производительностью в 3D аппликухах.

Что возвращает нас к началу дискуссии, вы, вроде, оппонировали висказыванию что моно — это только для казуалок, в смысле для игр не требующих производительности.

Unity — это не игра, это движек. Используя этот движок ты не пишешь на С++, ты пишешь игру на Mono. Используя Unity3D ты только можешь писать на Mono, значит Wasteland написан на Mono. И после этого ты что-то про тролля спрашиваешь? :) Перекручиваешь аргументы как хочешь даже не подрудившись углубится в мат часть. Джеронимо.

PS может тебе еще рассказать, как openGL для java работает? При том, что сам opengl на C написан.

И после этого ты что-то про тролля спрашиваешь? :)

И как вы дискретку сдали?

Используя Unity3D ты только можешь писать на Mono, значит Wasteland написан на Mono.

Из того что НЕКОТОРЫЕ игры (на движке Юнити) на написаны на дотНете (точнее могут быть написаны), НЕ значит что конкретная игра (Вестерленд) написана на моно.

Перекручиваешь аргументы как хочешь даже не подрудившись углубится в мат часть.

Нет аргументов, есть ваши предположения.

Слушай, зачем мне тебе чето доказывать? Хочешь попробуй установи Unity3D и напиши игру не на Mono, но я тебе сразу скажу, у тебя не получится этого, потому что писать можно только на Mono, вот такая особенность движка.

А ты читал, что я игры пишу на Unity3D, видимо я настолько тупой, что уже работая фиг знает сколько на Unity все еще строю догадки, как я их разрабатываю :)

Веселый ты парень однако.

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

И че? Соседи из добл Файн моай используют, в котором язык луа — так что теперь всем на луа переходить?

Но некоторые вещи положено хоронить и Java одна из них, так же как похоронили Delphi в свое время

Из похорон Delphi не следуют похороны любой другой экосистемы. Ни Java, ни .NET.

Можно даже принципиальную разницу указать:
1. Delphi ничуть не старше Java, но области их применения сразу стали разными.

2. Delphi был одним из источников прибыли компании его разработавшей. Java — прибыли особо не приносит, и применяется компанией ее содержащей для разработки других продуктов.

Не холивора ради tirania.org/s/71de890b.png вот скриншот.

Осталось выяснить работает ли там что-то помимо structs & generics, а то в деталях может скрываться огромный бегемот.

как 90 % и выше рынка занято продуктами от MS

Откуда такие цифры?

речь наверняка о доли windows в десктопных операционках

речь наверняка о доли windows в десктопных операционках

От можно подумать я этого не знал. Отойдите и не мешайте троллить мелюзгу :)

Откуда такие цифры?

можно начать отсюда: en.wikipedia.org/...erating_systems

а дальше по ссылкам на источники данных

можно начать отсюда: en.wikipedia.org/...erating_systems

OSX + iOS > 14% + остальное, 90% винды не получаетсо.

C# - это Unity3D, а там и iOS, Android и Mac/PC/Linux, еще и Web/Flash. Покажешь мне какой фреймворк или движек на Java так умеет?

А зачем писать движок на яве? Можно ведь взять UDK или CryEngine SDK которые уделывают унити триде. Ах, да для андроида существует AndEngine например. Для iOS вроде есть нативные движки. Для веба есть WebGL, HTML5 + JS. Флеш не нужен например

Один код работает сразу на всех платформах, давай на AndEngine сделай такой.

ну , положим в Unity3d поддерживается аж 3 языка — ява, сишарп и вроде какой-то диалект питона.
Так что тут выбор равнозначен. Хотя литературы, уроков , видеогайдов и прочего по юнити на яве намного больше.

Не ява, а JavaScript — это писец на сколько разные вещи, а заточен этот юнити как раз под C# не смотря на то что и на Питоне можно что-то состряпать в нем !!!

Ну это Воо некое подобие «Питона», тоесть на Воо скорее всего пишут пидарасы, так что не советую вам использовать Воо !!!

Нет конечно, просто если нужно заниматся разработкой на Unity3D то использовать только C# (если всё с нуля) а всякие модификации JS-а, Python-а нужно знать как бонус на той случай когда прийдется поддерживать левое гoвно написанное на всяких Boo и по возможности всё нахрен переписать на C#, я на реальном примере знаю как тормозят скрипты JS-a в Unity3D и как удобно менять\добавлять\править функционал при использовании C# ! В общем ТОЛЬКО C# и ничего больше ...

Да я же не хотел здесь войны миров, я думал что здесь есть люди которые знают обе технологии или перешли с одной на другую и могут немного рассказать что да как и почему ! И всё.

Почему бы Вам не взять две книги в руки и не определиться самому? Ващ вопрос выглядит следующим образом — какой язык мне изучать, английский или немецкий? Какой хотите, такой изучайте. Это индивидуально.

Я начал изучать Java потому что начал изучать Java. И вопрос выбора у меня не стоял, потому что я не задавался такими вопросами и не искал лёгкий путь.

Повторюсь, что все программисты, которые пишут на Java или C#, будь они из Германии, Норвегии, Америки и т.д. общаются в интернете на английском языке. Поэтому, если Ваш уровень английского языка не позволяет Вам свободно читать в интернете английские комментарии (литературу на английском языке), то лучше озадачитесь этой проблемой.

Забейте на Java(у) и на C#.

Как раз читаю:
“We have over three thousand physicists here. CERN single-handedly employs more than half of the world’s particle physicists — the brightest minds on earth — Germans, Japanese, Italians, Dutch, you name it. Our physicists represent over five hundred universities and sixty nationalities.”
Langdon was amazed. “How do they all communicate?”

“English, of course. The universal language of science.”

так что, хотите в этой кухне вариться, начинайте изучать английский язык как второй родной язык.

Мой знакомый Java Dev говорит что C# сложнее чем Java в освоении и понимании !!! Так что учи Java ....

А можно узнать чем (или в чём) «Шарп» сложнее Java ?

Я не знаю я д*ибил !!!

Если так ставить вопрос, то C# дествительно как язык сложнее, труднее в освоении и мощьнее. Рантайм (CLR) сам по себе более технологичен, и дает серьезные преимущества в отношении многопоточности, параллелизма например. Есть механизм делегатов и событий, построенный замечательно. Анонимные методы, лямбда выражения, удобная рефлексия, поддержка из коробки очень большого количества технологический штук... То есть освоение C# как языка сложнее.

Что касается Java — язык то проще.. Но что вооще нам нужно от языка? Всем известно, что имеется огромное множество библиотек и реально действующих проектов. Очень эффективных. Со сложными архитектурами. Воспитанных временем и доказавших стабильность. В общем, если учитывать необходимось изучать сторонние библиотеки, и подходы, всякие гибернэйты и спринги... учитывая их разнообразие... Ява ни чем не уступает, если помнить об этих вещах... Мультиплатформенность...

А вообще язык — вторичная вещь. У разработчика, вне всякого сомнения, должен быть основной инструмент, но превращяться в зависимого от языка зомби — не есть гут.

В любом случае, изучать нужно не язык, а как это работает. То есть Нужно изучать как работает CLR или JVM, а язык — всего навсего инструмент использования платформы...

На вопрос что использовать для первой работы ответ прост. То, что больше нравится или в чем чуть больше опыта. Особенно, если нравится юникс, то зачем C#? или если хочется разрабатывать под Windows, то зачем Java?

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

Земляк, без обид, но вменяемость ответа, как правило, зависит от вменяемости вопроса.
Пропей крепкий зеленый чай, отоспись пару дней и возвращайся. И ты будешь удивлен обилию «конкретных и полных ответов».

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

Правильно говорите, надо писать топорно, а лоб.

Учите C#, нам лучше будет

И это чем же вам то лучше будет ? Кадров особонно Джаверов никогда не хватало, по этому конкуренции один человек вам никак не состовит !

Может человек не хочет попасть на один проект с алкоголиком?

Ахахахахха ... Я чуть со стула не упал ! Всё может быть ... Я как-то тоже с алкашами не очень хотел бы работать !

Это лично его дело, что он делает вне рабочее время. Может алкоголь его муза, которая делает его более креативным человеком.
Я не курящий человек и не хочу работать с людьми от которых несёт запахом табака.

И чо?

Здесь про не рабочее время никто не говорит ! И чё ?

И ни чо. Хочет — пусть употребляет, это его личное дело. Тут никто с этим и не спорил. Это не отменяет того, что лично я бы не хотел видеть в команде человека, который каждый день в г0вно вечером. По вполне очевидным причинам.

Какие причины, перечислите пожалуйста. Вы с этим человеком разделаете ночью одно ложе? :D

Внезапно на продакшене был найден серьезный баг, а человек, который разрабатывал этот функционал не в состоянии говорить или сутра с бодуна голова болит.
Проводили тим билдинг — кто-то ужрался и началась «веселуха».

Приехал заказчик, а от одного из разработчиков несет перегаром.

Повторюсь, я не люблю, когда на меня дышат сигаретным запахом, хотя сам курил больше десяти лет. Достаточно было бросить и почувствовать сигаретную вонь. Но я не делаю с этого проблемы.
Если человек приходит на работу вне трезвом виде, это плохо. Но если человек расслабляется после работы алкоголем, не вижу в этом ничего плохо. Я далеко не алкоголик, но иногда тоже позволяю себе выпить чтобы снять напряжение.
Обратите внимание, сколько выдающихся личностей для креатива или снятия умственного напряжения (усталости) употребляли алкоголь или наркотики. Ничего, люди с удовольствием читают или слушают их произведения.

Поэтому повторюсь, главное, чтобы одно не мешало другому.

Вообще, не понимаю, почему все накинулись на бедного парня. Подумаешь, увидели его один раз пъяным. :D

Внезапно на тебя напала, извиняюсь, срачка, что делать с этой веселухой?

Боязнь конкуренции — неуверенность в своём уровне? я правильно понял?

Почему сразу боязнь, индусов и так хватает

Ну другой причины я не вижу. Ибо сообществу одного из языков выгодно что бы людей было больше.

И больше г-но кода? Чтоб джава докотилась по количеству г-но кода до пхп?

1) Ваш майбутний роботодавець може потенційно бути користувачем ДОУ. Навряд він захоче взяти на роботу джуніора, який вирішив стати програмістом з бодуна.

2) Зверху зправа є пошук. Вбиваємо туди «java c#» і бачимо 100500 ідентичних тем.

Изучайте английский язык

Спасибо за ответ, я учу инглишь, понимаю что без него никуда !

тема в мусор. Уже неоднократно поднималась здесь, используйте поиск.

Ааааа ... Я тебя видел в ДНУ, ты бухал где только можно было, на лентах, в столовой, в маршрутке. Поздровляю конечно с окончанием, но я думал ты хотел работать больше на ликёро-водочном заводе а не прогером, хотя я видел программиста-алкаша однажды ! Учи Python классная вещь ... И дай свой скайп !!!

Ну выпивал немного, с кем не бывает ! Я бы дал скайп если бы ты хотя бы имя своё сказал или фотку бы нормальную поставил, а то когда тебе пишет сообщение жигули 15-й модели судя по фото то так и хочется закодироваться ! Может и я тебя знаю !

Python\php\ruby\perl — не подходят как кандидаты, то мало вакансий, а PHP я просто не люблю, боюсь я его !

Вот мой скайп idea-fx ... Пиши поговорим !
Тебя сейчас здесь разорвут за «холивар» растопчат как таракана и опустят ниже плинтуса !
Судя с практики здесь не любят таких вопросов, и очень бурно реагируют !!!

Та да, может ты и прав, как-то не по теме я тут гавкнул ! А как удалить тему ?

Да просто тут многих достало что каждый год приходит разное «нубло» и спрашивает одно и тоже : что лучше, где быстро и просто можно накосить бабла и купить Toyota Camry последнего поколения при этом нихера не делать .... И по этому многие игнорируют такие темы, хотя бывает когда заходят разные люди и по грустному опыту обливают грязью разные платформы и языки и хвалят то что как бы по ихнему мнению должно быть лучше ...
я знаю одного чувачка dou.ua/...itry-savchenko в его профиле есть скайп можешь с ним поговорить он любит потрандеть хоть он и лысый но это не значит что тупой ...

А тему не закрывай, мало-ли что, вдруг кто-то прийдёт и скажет для тебя что-то полезное что просто перевернёт твое мировозрение - такое бывает!!!

хоть он и лысый но это не значит что тупой
Это 5! :)))
Когда впервые побрил голову — отношение со стороны людей резко изменилось :)))

Дарма Ви так про РНР. Судячи з Вашого посту, Ви навряд знаєте хоча б основи цієї мови. До того ж велика частина користувачів ДОУ — пишуть на РНР. Частина колишніх РНРшників перейшли в джавісти (я особисто кількох таких знаю). Ви просите в них допомоги з вибором, при цьому їх же ображаючи.

Подписаться на комментарии