Нафига козе боян?
Я не прошу в ответах кидать сюда ссылки на другие сайты где можно почитать длинные, пространные и замудрёные статьи о точканете. Я хочу услышать ПРОСТОЙ и по-возможности КОРОТКИЙ ответ на вопрос озвученный выше. Заранее благодарю.:)
Окей! Пусть я буду троллем!:D Мне от этого ни жарко ни холодно. Но что же вы тогда повелись на троллинг?
Вовсе нет. Все эти люди, просто вначале изучают доступную литературу по интересующей теме, копают её ручками, и потом не задают ненужных, или глупых, или совсем уж идиотских вопросов. Вот и весь секрет их кастовости.
Ну вот, подтверждение догадок, что Java хороша только для серверных приложений. Тоже неплохо, но этот момент был упущен, когда говорилось, что Java производительнее, чем C.
Странный вопрос. Моя IDE должна запускаться не дольше 10 секунд и не тормозить настолько, чтобы это мог заметить человек. Это моё скромное мнение. Но дело ведь не в скорости, а в функционале. Для нужного функционала можно и потерпеть, но есть ли смысл терпеть для функционала, который нужен абстрактному программисту, а не мне?
IDE (точнее, редактор) запускаю часто, потому как работаю на трёх компах. Производственная необходимость.
Нет, это не подтверждение. прочитай внимательно мой пост. Я описал, что оптимизация в этих двух версиях выполняется с разными приоритетами и соответственно приводит к разным результатам. Твои слова ничем не подтверждаются пока что.
Странный вопрос. Моя IDE должна запускаться не дольше 10 секунд и не тормозить настолько, чтобы это мог заметить человек. Это моё скромное мнение. Но дело ведь не в скорости, а в функционале. Для нужного функционала можно и потерпеть, но есть ли смысл терпеть для функционала, который нужен абстрактному программисту, а не мне?
IDE (точнее, редактор) запускаю часто, потому как работаю на трёх компах. Производственная необходимость.
Ты видимо таки не открывавал крупные солюшены в VS. Они открываются гораздо больше минуты.
10 секунд - это завышенное и необосновенное требование.
Различие между IDE и редактором в том, что IDE кроме всего прочего, собирает кучу статистики и проектах, регулярно интексируют ресурсы, в результате позволяя умные автокомплит, рефакторинги, инспекции кода и прочее прочее прочее.
И нужно это не абстрактным программистам, а всего лишь тем, для кого все эти фичи иде - важно и часто используемы. Возможно, к тебе это не относится, да :)
Если тебе такой функционал не нужен -- ты можешь во первых, не ставить (удалить) кучу плагинов ненужных, отключить переинтексирование проектов при старте и получить прирост производительности. Или использовать обычные редакторы.
Я лично предпочитаю поставить мощный проц и не париться.
А я предпочитаю побольше памяти воткнуть, как правило процессор уже не является узким местом, а вот подкачка способна уложить юзабилити чего-либо на лопатки.
Так я отфильтровал всю "саентологию" и получил.
Естественно. Я не использую VS, меня вполне устраивает Code::Blocks, как альтернатива.
Почему необоснованная? Вот мне пришла какая-то идея при выключенной IDE, например, как отловить баг. Пока грузилась IDE, я всё забыл. Может это звучит глупо, но на практике такое бывает.
Ок. Возьмём Python. Для языков с утиной типизацией безупречный автокомплит невозможен в принципе. Далее. В сам язык уже включены такие штуки, как профилирование, расшифровка байт-кода и прочее.
Рефакторинг - это хорошо, но, например, в NetBeans, когда я смотрел его в последний раз, рефакторинг был на уровне "найти и заменить" для Python. И зачем оно такое?
Это "во первых" иногда реализуемо только на уровне правки исходников. Шучу.
На счёт редакторов. Я предпочитаю легковесные IDE. Простых редакторов мне не хватает.
и твое ПО будет нормально работать только на таких процах. В принципе, иногда это правильная стратегия. Ну, или можно бегать и тестить на слабом компе периодически.
У меня 32-разрядная винда, больше 4 гигов не воткнуть :) 4 Гига есть. Проц тоже ничего вроде :)
У меня скорей тормозит изза того, что локально Oracle, JBoss, Eclipse, Idea, SQL Developer, Chrome и всякая мелочь работает одновременно.
У меня тоже 32битная и 4Гб (2008й сервер по дримспарку полученный) и я все чаще думаю поставить еще 2Гб.
Неужели опять разжевывать почему 32битная винда (Windows Server 2008 SP2) умеет использовать до 64Гб памяти?
Позже. Но хотя ты прав, Windows Server 2003/2008 x86 на версии Standard умеют только 4Гб (ограничение лицензии).
А я так и делаю! И делаю я так применительно к программированию в C Builder. И всегда нахожу ответы на поставленые вопросы без помощи форумов et cetera. Вот только точкаНет мне не интересен как объект пристального изучения т.к. я не собираюсь его использовать для практических программистких целей, и следовательно я не вижу смысла в его подробном изучении и трате на него времени. Я просто хотел получить ответ на вопрос: "нафига козе (винде) боян (точкаНет фреймворк)?" И как следствие я задался вопросом "а что это такое вообще?". Если бы я не имел необходимости постоянно обновлять этот самый фреймворк для того, чтобы работала прога которую я часто использую (Paint.NET) я бы даже и не задался этим вопросом. Так-то!
Во-первых, если автору не интересен .NET, то зачем тема? Во-вторых, как он может быть неинтересен, если автор понятия не имеет, что это? В-третьих, УК Иктомы видимо тоже подозревает, что автора подловили скинхэды и теперь терморектальными методами пытаються за[COLOR="Silver"]в[/COLOR]ставить автора изучать .NET и другие ужасные и сложные штуки. Млин, автор, помилуй форум, иди играй в Worms и не мешай людям работать.
Тляха, ну а что мешало вкратце ознакомится с данной темой? Хоть бы и на MSDN.
УКи, предлагаю его забанить, дабы не мешать диалогу уважаемейших Зоркуса и Хардкейса. Они говорят интересные вещи. И я готов слушать их буквы всю свою биографию, ибо реально много интересного для себя узнал.
Я использую VS и SharpDevelop 3.2 (для Nemerle) но меня сожалению не устраивает не первая ни вторая (хотя для второй аддон я сделал сам).
Почему необоснованная? Вот мне пришла какая-то идея при выключенной IDE, например, как отловить баг. Пока грузилась IDE, я всё забыл. Может это звучит глупо, но на практике такое бывает.
Счастливый человек. Если мне пришла идея как исправить баг в компиляторе, я честно загружаю исходники в SD (минута) долго ищу нужное место, исправляю и пересобираю компилятор в две стадии (около 10-15 минут с прогоном тестов). В тяжелом случае, это когда надежды несовсем оправдались, приходится подгружать VS2008 и запускать компилятор из-под нее с расстановкой бряков в нужных местах (их еще и найти нужно!).
На счёт редакторов. Я предпочитаю легковесные IDE. Простых редакторов мне не хватает.
А мне IDE привычней, хотя да, я могу и в блокноте компилер править.
и твое ПО будет нормально работать только на таких процах.
А вот это спорное утверждение.
Вот. Нормальное поведение. Я бы тоже может VS использовал, но его, например, запускать в Linux как-то противоестественно. А приходится работать и в этой ОС. Потому ищу более универсальные решения. SharpDevelop всё-таки заточен на C# потому радости от него мне тоже мало.
Да. Потому я вначале пишу идею в тетрадку. И запоминается, и лучше осмысливается.
С другой стороны, зачем мериться, кто более несчастный? Я тебе могу рассказать, как баги в проектируемом железе отлаживаются, когда плата разведена, всё распаяно и залакировано и вдруг начинает глючить. Но смысл?
Ну и мне IDE нужно. Я разве другое сказал? Но не люблю именно тежеловесные IDE. Быдлокодер же.
Спорное, если придираться к словам. С каждой строкой кода, написанного (и протестированного) с использованием мощного компьютера, мы увеличиваем вероятность того, что на более слабом компе он будет работать плохо, или даже совсем заткнётся. Такой мой опыт, да и логично вроде бы. Ну, можно делать эмулятор слабого компа, можно замерять потребляемые ресурсы, но это всё не даёт полной уверенности.
Поставь себе VS + обязательно ReSharper, ребята из JetBrains хлеб с икрой не зря едят. Именно он делает из VS - полноценную IDE. (ну, как IDEA, вы знаете..:) )
Ну и мне IDE нужно. Я разве другое сказал? Но не люблю именно тежеловесные IDE. Быдлокодер же.
ОК. Тогда к чему этот спор? "Не люблю я" - отличный аргумент. Не используй.
Спорное, если придираться к словам. С каждой строкой кода, написанного (и протестированного) с использованием мощного компьютера, мы увеличиваем вероятность того, что на более слабом компе он будет работать плохо, или даже совсем заткнётся. Такой мой опыт, да и логично вроде бы. Ну, можно делать эмулятор слабого компа, можно замерять потребляемые ресурсы, но это всё не даёт полной уверенности.
Ну не так ведь проверяются требуемые аппаратные характеристики, не так. "Я писал прогу на компе такой то конфигурации, у меня не тормозило, потому запишем в рекомендуемые требования".
Ну вот я лично пишу серверное ПО, да, открою страшную тайну. Которое тестирую, ты не поверишь! на серверах.
Цикл разработки продукта (точнее, солюшена) включает в себя несколько стадий (перекрывающихся) - Dev, QA, PSR, UAT, Production, как и в любом enterprise солюшене, как ты знаешь.
Вот сначала я тестирую свой код локально. Потом делаю некоторые проверки на QA, а там, где важна производительность -- например, мощный шедулер, там делается полноценный PSR (performance, stability,reliability test).
Выполняется он на кластере серверов (Business logic + database ноды)с заданной конфигурацией, скрупулезно записанной.
Запускается код (обычно шедулеры), и с помощью спец. инструментов мониторинга (например, JConsole для Java и Oracle Grid Control ты сам понял для чего), захватывается куча параметров. Количество рабочих потоков, общее время выполнения, среднее время выполнения определенных тасков, среднее/пиковое потребление памяти, CPU, IO throughput.
Все это собирается и анализируется. Потом узкие места отдельно смотрятся профайлером, или смотрятся планы SQL запросов, тюнится все это дело. Потом делается следующий цикл PSR.
И вот на основе этих данных, и составляются аппаратные требования (соответственный бюджет), который уходит руководству.
Как-то так. Разумеется, это для серверных тяжелых приложений. Но общую идею я думаю все уловили.
Аргументы против тежеловесных IDE приводились. Кратко: в них толкают всё что надо и не надо. Это приводит к тому, что они становятся неоправданно (моё мнение) требовательными к ресурсам. Но когда после этого мне говорят, что я выступаю вообще против IDE, то я уточняю, что не нравятся именно такие. А ты прочитал последнюю фразу и рад.
Опять ты расписал всю свою технологию на пол-страницы, когда я её же объяснил в двух предложениях ранее. Серверные приложение - это одно. А когда ты пишешь код для определенных пользователей, то тебе лучше быть в шкуре этих пользователей. Вот и всё.
Ты поставил тормозную ОС, тормозную IDE, ещё всякой ерунды. У тебя всё виснет. Ты затратился на новое железо, но у тебя всё равно всё виснет и тормозит. А у меня ничего не виснет и не тормозит на древнем железе. Хотя я и использую современный софт. И после этого ты пытаешься с помощью умных слов мне внушить, что твоя стратегия лучше? Она не лучше, она - другая.
И в моей стратегии для Java пока нет места в настольных системах. И ты же сам раскрыл почему. Потому что она не заточена под такие системы. А вот .Net заточен. Вот и вся разница для пользователя.
Я поясню:
- есть такое понятие как плагин
- есть такое понятие как современное железо
Опять ты расписал всю свою технологию на пол-страницы, когда я её же объяснил в двух предложениях ранее. Серверные приложение - это одно. А когда ты пишешь код для определенных пользователей, то тебе лучше быть в шкуре этих пользователей. Вот и всё.
Я расписал на полстраницы, но ты так и не понял сути. А суть - в инженерном подходе к тестированию производительности и оптимизации.
Что ты понимаешь под "быть в шкуре пользователя", и как конкретно, ты определяешь аппаратные требования к приложению?
И в моей стратегии для Java пока нет места в настольных системах. И ты же сам раскрыл почему. Потому что она не заточена под такие системы. А вот .Net заточен. Вот и вся разница для пользователя.
Я не раскрыл. Ты не привел конкретных аргументов, чем Java не подходит для построения сложных клиентских приложений. Мы их пишем на Swing+JWS+J2EE на сервере уже не один код, а тут оказывается, что на яве вообще нельзя их писать.
- есть такое понятие как плагин
- есть такое понятие как современное железо
Плагин - есть. И, например, FireFox начнёт тормозить, долго запускаться, когда на него навешаешь кучу плагинов. А эти IDE на Java имеют долгий старт и без всяких плагинов. На счёт торможения - не помню уже. Возможно, что после отключения плагинов оно заканчивается.
А современное железо - это нипойми что. Это комп, который весит менее 1 кг вместе с монитором? Или это комп, который занимает несколько комнат? А может это комп, который работает в диапазоне температур от -50 до 100 градусов цельсия?
Что ты понимаешь под "быть в шкуре пользователя", и как конкретно, ты определяешь аппаратные требования к приложению?
Почему не понял. Суть, если без забугорных сокращений, в следующем: ПО тестируется, затем, если тесты неудовлетворительны, то производят профилировку, находят слабые места, оптимизируют, снова тестируют и т.п.
Аппаратные требования определяю не я, а заказчик. Но так как мне нет смысла (по конкретным экономическим соображениям) закупать кучу железа, софта, нанимать тестеров и т.п. , то я поступаю тупо и эффективно. Я работаю на компе, который немного слабее того, на котором будет работать заказчик.
Ну как же, ты сам и сказал, что для настольных приложений не делается та же оптимизация, что и для серверных. Спрашивается, почему? Какие будут минусы и плюсы? Плюс будет в более быстром старте (хотя, как показывает практика, всё равно не быстром), а минусом будет более слабая оптимизация (на неё не выделили время). И тут мы проигрываем приложениям на C/C++ и даже на C#.
Во первых, не все IDE для Java написаны на ней целиком.
Во вторых, Microsoft Visual Studio так же запускается с открытием сложного проекта достаточно долго.
В третьих, IDE такая вещь, которой позволительно ИМХО запускаться дольше, чем 10 секунд.
Ну, т.е. я не понимаю о чем мы спорим. Ну да, меня долгий старт IDE раздражает. Так же, как и долгая загрузка скажем, GIMP-a, или современных игр почти всех. Да хоть бы того же Left4Dead2, в который иногда играю.
Но Java-то причем? Подавляющее большинство медлительности UI-я от того, что люди не умеют его писать. Которым либо:
- Пофигу
- Не понимают (не имеют знаний/опыта), как писать так, чтобы работало нормально( например, что long-running операции нельзя пускать в том же треде, в котором обрабатываются события пользовательского интерфейса).
- Которые полагаются на свои экспертные оценки производительности и не пренебрегают профайлерами.
А современное железо - это нипойми что. Это комп, который весит менее 1 кг вместе с монитором? Или это комп, который занимает несколько комнат? А может это комп, который работает в диапазоне температур от -50 до 100 градусов цельсия?
Это, например, процессор класса Core2Duo 1.8 Gg+, память 2-4 гига.
Хорошее железо - это процессор Core2Quad/Phenom.
Топовой - Core i5/i7.
Аппаратные требования определяю не я, а заказчик. Но так как мне нет смысла (по конкретным экономическим соображениям) закупать кучу железа, софта, нанимать тестеров и т.п. , то я поступаю тупо и эффективно. Я работаю на компе, который немного слабее того, на котором будет работать заказчик.
Тут есть большой минус. Кроме тестирования своей программы, ты вероятно еще много вещей делаешь в одно время. Почта, мессенджеры, IDE, много всего наверное. И ты, работая так, тупо теряешь в собственной производительности. Ты вынужден отказываться от мощных, но ресурсоемких инструментов, например, ты тратить больше времени на рутинные операции.
Возможно, мой взгляд - взгляд enterpise разработчика из довольно крупной компании, но я бы писал на мощном компе, а тестил на виртуальных машинках, которым можно задать любые параметры. У нас кажется так и тестируют десктопные клиенты.
Ну как же, ты сам и сказал, что для настольных приложений не делается та же оптимизация, что и для серверных. Спрашивается, почему? Какие будут минусы и плюсы? Плюс будет в более быстром старте (хотя, как показывает практика, всё равно не быстром), а минусом будет более слабая оптимизация (на неё не выделили время). И тут мы проигрываем приложениям на C/C++ и даже на C#.
Я описал разницу между JVM server и JVM client.
Да, оптимизация разная. Почему? потому что в каждом случае разные цели. А какие цели? А поищи в этом треде или нагугли.
А теперь, мое заключение. Внимательно читай :)
Я согласен, что очень сложные, крупные, десктопные приложения, такие как современные экшены, где сложная графика и требуется плотная интеграция с видеокартой, приложения типа фотошопа или офиса на яве будут тормозить.
Я так же думаю, что критические части таких приложений пишутся на C/C++.
Я согласен, что под Windows С#/.NET в качестве десктопных клиентов скорее всего работает быстрее из за специальной оптимизации Microsoft и из-за заточенности под десктопные программы.
Я НЕ согласен с тем, что на Java нельзя написать сложную, нормально работающую десктопную программу.
Я согласен, что очень сложные, крупные, десктопные приложения, такие как современные экшены, где сложная графика и требуется плотная интеграция с видеокартой, приложения типа фотошопа или офиса на яве будут тормозить.
Я так же думаю, что критические части таких приложений пишутся на C/C++.
Я согласен, что под Windows С#/.NET в качестве десктопных клиентов скорее всего работает быстрее из за специальной оптимизации Microsoft и из-за заточенности под десктопные программы.
Я НЕ согласен с тем, что на Java нельзя написать сложную, нормально работающую десктопную программу.
Такой вывод мне видится верным.
По хорошему, тут должны быть легко подключаемые/отключаемые плагины. И при установке IDE должен быть выбор. Ну, в общем, во многих IDE так и делается.
На счёт тетриса ты ошибаешься :) В одном (или даже не одном) дистрибутиве Code::Blocks IDE шёл стандартный плагин с простенькими игрушками, типа тетриса и змейки. Пошутили разработчики.
В каком универе и каком году сие было?
Мы работаем в такой динамичной отрасли, что и универ мог быть вменяемым, и год не шибко далёким. Просто оно всё меняется быстрее, ведь универ чуть реже чем всегда - организация инертная. Подобная ситуация была всегда. Вспоминается, как родителям в институте говорили, что при разработке проектов не следует пользоваться транзисторами КТ315 из-за их дороговизны, рулят транзисторы МП42 (в то время уже изрядно устаревшие). Про микросхемы вообще речи не было, хотя это уже была вполне актуальная элементная база к тому моменту. Ну, кто в теме, тот понял.:)
Ну а дискуссии насчёт IDE как-то забавно читать. Ясно же, что каждый выбирает инструмент по задачам своим. Поэтому предлагаю впредь воздерживаться от подобных дискуссий. ;) Что же до десктопных приложений, то скажу то же самое: по задачам и инструмент. Как пользователь графических редакторов могу заверить, что разница в том, на чём написаны эти инструменты, проявляется только на достаточно больших картинках или при невеликом количестве памяти (например, всё это есть у меня). Я в таких трудных случаях предпочитаю написанный на С++ Photoshop по одной простой причине: он грамотно свопит, альтернативы этого не умеют. Запускаются все три известных мне инструмента примерно одинаково долго, и это для меня не особенно важно, работаю-то я всё равно дольше. Удобство использования инструмента в моём случае целиком связано с прямотой рук разработчиков и от средств разработки не зависит.
Разработка ПО на маломощном ПК - необоснованная практика. Исходить стоит из того, что у разработчик сам использует ПО с высокими требованиями; возможности заказчика следует учитывать только при тестировании. Впрочем, об этом уже было сказано.
P.S. Автор топика, видимо, самозабанился. Будет троллить - накажу.
Ребята с Орла ничемне хуже ребят с Алматы. Факт.
Смотри более ранние мои посты.
Для того и спрашиваю, чтобы узнать что это.
КГ/АМ
Я не забанился. Я уехал на выходные в деревню :D
Я не забанился. Я уехал на выходные в деревню :D
Я искренне рад тебя видеть. Что вы можете рассказать [COLOR="Silver"]суду[/COLOR] по существу вопроса?
Да с год назад. xD МГИЭМ.
Дело не в "скорости" - дело в применимости платформы. Для синтеза аппаратуры есть специальные языки типа VHDL и среды типа Xilinx ISE. А для моделирования соответствующие эмуляторы и средства типа LabView (которая кстати умеет работать с компонентами на .NET, насчет Java не знаю).
Тут немного Остапа понесло, то есть меня. Корректнее было бы сравнивать архиваторы на Java с архиваторами на C, браузеры на Java с браузерами на C, редакторы 3Д-графики (тут интересен рендеринг). Но я не встречал таких программ на Java.
Кстати, даже если прога на Java стартовала бы пол-часа (из-за той самой фантастической оптимизации), то при рендеренге она бы могла дать выигрыш. Так что может такие программы и есть.
Возможно. Тут можно долго спорить, на счёт того, а нужно ли программисту ПО с высокими требованиями и какому программисту. Тут тоже можно провести профилировку и заметить, что большую часть времени занимает печатание и обдумывание, а не игры со свистелками. Но у всех по разному, безусловно.
Там что-то непонятно - это чисто Java-версия или порт для Java. Смущает, что внизу упоминается про порт.
И да, ты уже потестил, рвёт Java-версия всех остальных? Удивляет, что на сайте я таких тестов не нашёл. Казалось бы, они непременно должны были бы быть, если бы рвала.