Здравствуйте, anton_t, Вы писали:
_>Здравствуйте, jdev333, Вы писали:
J>> а у Eclipse — не расширяемая? J>> видимо, SAP, сделавший свою DevStudio на Eclipse, — это сон ?
_>Приятно, наверное, что-то придумать, а потом с довольным видом опровергнуть...
ну и сказать о том, что в одной IDE есть что-то (что и в др. есть) хорошее, тоже, видимо, приятно
Здравствуйте, VladD2, Вы писали:
VD>Сейчас в Лонгхорне (новой версии Виндовс) ведется работа над тремя подсистемами: VD>1. Графической — Авалон.
Вот это хотел бы пощупать...
VD>2. Файловой — WinFS. Собственно это нманого больше чем файловая система. Это система хранения инфомации. Дастаточно сказать, что NTFS будет поддерживать транзакции и фичи обеспечение отказоустойчивости, а хранение данных приложений будет осуществляться в ОО-виде, и храниться они будут в MS SQL Server.
АААА.... Какой ужас!!! Представляю себе быстродействие файловой системы и сколько будет кушать памяти обертка работы с ней...
VD>Gregory_krovosos сравнивал Шарп с Явой как языки и как рантайм подсистемы. Так что мой вопрос остается в силе. Что полезного в Яве в этом смылсе, чего нет в дотнете?
Дотнета нет ни под одной другой осью кроме семейства Windows.
[RSDN@Home][1.2.0][alpha][619]
[Лучше изучить лишнее, чем ничего не изучить. [Сенека Старший]]
Здравствуйте, kuj, Вы писали:
kuj>Здравствуйте, Gregory_krovosos, Вы писали:
G_>>Начать можно со такого вопроса — чего есть в C# + .NET такого чего нет в Java? Принимается все — начиная от конструкций языка и заканчивая технологиями и скоростями работы. kuj>enumerations, fixed, using, unsafe, Interop...
Здравствуйте, n0name2, Вы писали:
I>>run-time generics
N>это как? чем от обычных отличаются?
Не знаю, что имеется ввиду под run-time generics, но то, что в Java не компилируется код
public class test2
{
public static void main(String[] args)
{
int i = 1;
LinkedList<int> list = new LinkedList<int>();
list.add(i);
int num = list.get(0);
}
}
по-моему, плохо. Что бы создать список из целых чисел, нужно в куче создать кучу объектов
I>>anonymous methods/iterators (yield return)...
N>анонимные классы есть, итераторы делаются с помощью простейшей библиотеки зачем их тащить в язык?
как ты спомощью библиотеки сделаешь следующее:
using System;
using System.Collections.Generic;
namespace test
{
public class Class1
{
List<int> list = new List<int>();
public IEnumerable<int> test()
{
foreach (int var in list) {
if (var % 2 == 0)
yield return var;
}
}
}
}
N>всякая ерунда для операций с COM на жабе ненужна вовсе...
_>public class test2
_>{
_> public static void main(String[] args)
_> {
_> int i = 1;
_> LinkedList<int> list = new LinkedList<int>();
_> list.add(i);
_> int num = list.get(0);
_> }
_>}
_>
по-моему, плохо. Что бы создать список из целых чисел, нужно в куче создать кучу объектов
есть десяток реализаций List который хранит int как примитив. но, они не быстрее стандартного ArrayList, я проверял. видимо — hotspot оптимизирует этот случай достаточно хорошо. в чем проблема использовать int []? вставка и поиск делаются простейшими утилитами.
_>как ты спомощью библиотеки сделаешь следующее:
легко RIFE Continuations. но именно в данном случае гораздо эффективнее бежать по массиву и к счетчику прибавлять двойку. и вообще — closures ИМХО гораздо более элегантны.
_>А зря. Legacy — великая вещь
как раз в Жабе все с этим в порядке — бинарная совместимость сверху вниз, самый старый API до сих пор отлично работает и т.д. а такая ерунда как COM нужна для Жабы раз в пять лет да и то лишь потому что заказчик хочет чего-то странного...
все вышеперечисленное (мелкие фенечки языка, которые смотрятся скорее как костыли к кривым концепциям) ерунда по сравнению с фундаментальными приемуществами Жабы. да и на уровне мелких фич полно гораздо более полезных вещей (по сравнению с итераторами и т.п.) которых нет в ДотНете.
Здравствуйте, n0name2, Вы писали:
N>все вышеперечисленное (мелкие фенечки языка, которые смотрятся скорее как костыли к кривым концепциям) ерунда по сравнению с фундаментальными приемуществами Жабы. да и на уровне мелких фич полно гораздо более полезных вещей (по сравнению с итераторами и т.п.) которых нет в ДотНете.
Да-да-да. Это крошечное бревно в моем глазу — полная ерунда по сравнению с фундаментальной соринкой в твоем.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, n0name2, Вы писали:
N>Здравствуйте, anton_t, Вы писали:
N>есть десяток реализаций List который хранит int как примитив. но, они не быстрее стандартного ArrayList, я проверял. видимо — hotspot оптимизирует этот случай достаточно хорошо. в чем проблема использовать int []? вставка и поиск делаются простейшими утилитами.
Мда... Ты в курсе какова сложность вставки в середину списка, а какова в середину списка?
_>>как ты спомощью библиотеки сделаешь следующее:
N>легко RIFE Continuations. но именно в данном случае гораздо эффективнее бежать по массиву и к счетчику прибавлять двойку. и вообще — closures ИМХО гораздо более элегантны.
При чём тут веб? При чём тут прибавление к счётчику двойки? А closures давно в Java есть?
_>>А зря. Legacy — великая вещь
N>как раз в Жабе все с этим в порядке — бинарная совместимость сверху вниз, самый старый API до сих пор отлично работает и т.д. а такая ерунда как COM нужна для Жабы раз в пять лет да и то лишь потому что заказчик хочет чего-то странного...
N>все вышеперечисленное (мелкие фенечки языка, которые смотрятся скорее как костыли к кривым концепциям) ерунда по сравнению с фундаментальными приемуществами Жабы.
Что конкретно имеется в виду под "Фундаментальными Приемуществами"? А "мелкие фенички языка" это наверное поддержка генериков на уровне рантайма, а не обёртка в них старого когда?
да и на уровне мелких фич полно гораздо более полезных вещей (по сравнению с итераторами и т.п.) которых нет в ДотНете.
Здравствуйте, anton_t, Вы писали:
_>Мда... Ты в курсе какова сложность вставки в середину списка, а какова в середину списка?
а часто в середину надо? раз в полгода? какова сложность итерации списка/массива?
_>При чём тут веб? При чём тут прибавление к счётчику двойки? А closures давно в Java есть?
при том, что для более простых случаев yield вообще не нужен, все гораздо проще и эффективнее делается. и вообще — когда в последний раз вам надо было свой итератор писать? closures на уровне анонимных классов обычно делают.
_>Что конкретно имеется в виду под "Фундаментальными Приемуществами"? А "мелкие фенички языка" это наверное поддержка генериков на уровне рантайма, а не обёртка в них старого когда?
1. открытый код (соот-но можно делать свои реализации JVM с минимальными усилиями и их потом продавать). например, можно легко сделать версию JDK с поддержкой тогоже yield и распространять ее за 5 баксов.
2. открытые стандарты. думаю пояснять ненадо.
3. платформонезависимость (моно это совершенно несерьезно). рынок линуха, соляриса особенно серверный — весьма и весьма большой. да и парк железа не интеловского (sun fire, ibm power, cell вот скоро будет) огромен, особенно в больших западных конторах.
4. огромное кол-во разнообразного софта, библиотек, аппликэйшн серверов и т.д. скажем, есть несколько альтернативных JVM, компилятор в нативный код, десятки серверов приложений, расширения языка и т.д... майкрософт при всех его возможностях физически не может произвести на свет объем софта сравнимый с тем что порождает open source community (причем качество во втором случае часто выше).
5. Java полностью бесплатна и работает на бесплатном софте. в некоторых случаях это очень существенно (сколько будут стоить лицензии на 1000 блейд серверов?), несмотря на то что майкрософт пытается доказать что стоимость владения линухом якобы выше (что полный бред).
_>да и на уровне мелких фич полно гораздо более полезных вещей (по сравнению с итераторами и т.п.) которых нет в ДотНете.
_>Каких?
ну, например (наиболее очевидное)
1. NIO (селекторы, буферы) — это совсем не асинхронные потоки. позволяет использовать хитрые фичи современных storage систем достаточно эффективно.
2. java.util.concurrent — чрезвычайно полезная библиотека для создания многопоточных приложений
3. garbage collector — автоматическая настройка параметров под заданные цели (занимать 1/N времени процессора, пауза не более M миллисекунд), очень много разных ручных настроек позволяющих полностью контролировать процесс.
4. независимость веб приложений от IIS, скажем, почти все жабные веб сервера живут в одном процессе с собственно HTTP сервером. в результате во многих случаях тотже Resin (продается за 500 баксов) делает IIS + .NET в разы.
5. IntelliJ IDEA (решэйпер это пока что жалкое подобие, как и студия 2005)
6. 64bit — я так понимаю что windows server 64bit до сих пор в глубокой бете, а большой хип а Жабе я использую уже больше года.
можно пройтись еще по web app frameworks, middleware и т.д. и т.п.
Здравствуйте, n0name2, Вы писали:
N>Здравствуйте, anton_t, Вы писали:
_>>Мда... Ты в курсе какова сложность вставки в середину списка, а какова в середину списка?
N>а часто в середину надо? раз в полгода? какова сложность итерации списка/массива?
А если всё-таки надо и часто?
_>>При чём тут веб? При чём тут прибавление к счётчику двойки? А closures давно в Java есть?
N>при том, что для более простых случаев yield вообще не нужен, все гораздо проще и эффективнее делается. и вообще — когда в последний раз вам надо было свой итератор писать? closures на уровне анонимных классов обычно делают.
yield делает сложное более простым. С чего вы взяли, что ты сможешь сделать проще и эффективнее без yield, чем с yield? Последний раз на прошлой неделе писал, а что?
_>>Что конкретно имеется в виду под "Фундаментальными Приемуществами"? А "мелкие фенички языка" это наверное поддержка генериков на уровне рантайма, а не обёртка в них старого когда?
N>1. открытый код (соот-но можно делать свои реализации JVM с минимальными усилиями и их потом продавать). например, можно легко сделать версию JDK с поддержкой тогоже yield и распространять ее за 5 баксов.
Во-первых эта JDK не будет соответствовать стандарту, а во вторых продавать не сможешь — другие возьмут твою JVM и будут продавать за 3 бакса.
N>2. открытые стандарты. думаю пояснять ненадо.
И чем же они открытее стандартов на .NET и C#?
N>3. платформонезависимость (моно это совершенно несерьезно). рынок линуха, соляриса особенно серверный — весьма и весьма большой. да и парк железа не интеловского (sun fire, ibm power, cell вот скоро будет) огромен, особенно в больших западных конторах.
Ну рынок вообще-то существует МЕЖДУ конторами, а не В НИХ.
N>4. огромное кол-во разнообразного софта, библиотек, аппликэйшн серверов и т.д. скажем, есть несколько альтернативных JVM, компилятор в нативный код, десятки серверов приложений, расширения языка и т.д... майкрософт при всех его возможностях физически не может произвести на свет объем софта сравнимый с тем что порождает open source community (причем качество во втором случае часто выше).
А что, под .NET может писать только Microsoft? Что же тогда делаю я?
N>5. Java полностью бесплатна и работает на бесплатном софте. в некоторых случаях это очень существенно (сколько будут стоить лицензии на 1000 блейд серверов?), несмотря на то что майкрософт пытается доказать что стоимость владения линухом якобы выше (что полный бред).
Не знаю как соотносятся стоимости влядения винды и линуха, но утверждение Microsoft не более голословно, чем твоё.
_>>да и на уровне мелких фич полно гораздо более полезных вещей (по сравнению с итераторами и т.п.) которых нет в ДотНете.
_>>Каких?
N>ну, например (наиболее очевидное)
N>1. NIO (селекторы, буферы) — это совсем не асинхронные потоки. позволяет использовать хитрые фичи современных storage систем достаточно эффективно.
В .NET своих "хитрых фич" хватает.
N>2. java.util.concurrent — чрезвычайно полезная библиотека для создания многопоточных приложений
И что в ней семафоры-мьютексы разные? Так они и в .NET есть.
N>3. garbage collector — автоматическая настройка параметров под заданные цели (занимать 1/N времени процессора, пауза не более M миллисекунд), очень много разных ручных настроек позволяющих полностью контролировать процесс.
Подозреваю, что такими "улучшениями" можно такого наворотить...
N>4. независимость веб приложений от IIS, скажем, почти все жабные веб сервера живут в одном процессе с собственно HTTP сервером. в результате во многих случаях тотже Resin (продается за 500 баксов) делает IIS + .NET в разы.
А разве веб-сервер и http-сервер не синонимы?
N>5. IntelliJ IDEA (решэйпер это пока что жалкое подобие, как и студия 2005)
Ждём Resharper 2.0.
N>6. 64bit — я так понимаю что windows server 64bit до сих пор в глубокой бете, а большой хип а Жабе я использую уже больше года.
А какая разница под чем Java крутится. Она же платформенно-независимая?
N>можно пройтись еще по web app frameworks, middleware и т.д. и т.п.
Здравствуйте, jdev333, Вы писали:
J>имхо, микрософт может не управиться в конкурентное время с платформой J>как я понимаю до сих пор нету аналога серверов приложений, а они уже сейчас сами по себе отходят на второй план — посмотрите что делают SAP, Oracle, IBM, BEA и др. (уже) — портал + warehouse + integration broker + app_server- переход к сервисной архитектуре (не путать с веб-сервисами)
Здравствуйте, anton_t, Вы писали:
_>А если всё-таки надо и часто?
тогда возьми одну из 100 реализаций List с примитивным int в качестве элемента. тамже есть с double, и всеми прочими. только она работать будет скорее всего чуть медленнее чем LinkedList<Integer>.
_>yield делает сложное более простым. С чего вы взяли, что ты сможешь сделать проще и эффективнее без yield, чем с yield? Последний раз на прошлой неделе писал, а что?
пример конкретной задачи, если не сложно. про count%2 уже понял — делается элементарно.
_>Во-первых эта JDK не будет соответствовать стандарту, а во вторых продавать не сможешь — другие возьмут твою JVM и будут продавать за 3 бакса.
зависит от того какой license agreement будет у твоей JVM.
N>>2. открытые стандарты. думаю пояснять ненадо.
_>И чем же они открытее стандартов на .NET и C#?
тем что они не контролируются Sun а являются результатом согласия community. кроме того, не уверен что на технологии .NET есть открытый и четкий стандарт с версиями, обратной совместимостью, тестами и т.д.
_>Ну рынок вообще-то существует МЕЖДУ конторами, а не В НИХ.
тем не менее спрос на nonmicrosoft/nonintel весьма широкий.
_>А что, под .NET может писать только Microsoft? Что же тогда делаю я?
без исходного кода платформы возможности девелоперов весьма ограничены. кроме того — политика мс подавляет конкурирующие сторонние решения.
_>В .NET своих "хитрых фич" хватает.
ну и? ты просил я перечислил... NIO не просто хитрая фича а то что позволяет держать тысячи TCP соединений особенно не напрягаясь.
N>>2. java.util.concurrent — чрезвычайно полезная библиотека для создания многопоточных приложений
_>И что в ней семафоры-мьютексы разные? Так они и в .NET есть.
нее... там намного более хитрые вещи чем тривиальные мьютексы.
N>>3. garbage collector — автоматическая настройка параметров под заданные цели (занимать 1/N времени процессора, пауза не более M миллисекунд), очень много разных ручных настроек позволяющих полностью контролировать процесс.
_>Подозреваю, что такими "улучшениями" можно такого наворотить...
без них я вообще не представляю себе работы. т.к. одно приложение ориентировано на throughput, второе на низкие задержки и т.д.
N>>4. независимость веб приложений от IIS, скажем, почти все жабные веб сервера живут в одном процессе с собственно HTTP сервером. в результате во многих случаях тотже Resin (продается за 500 баксов) делает IIS + .NET в разы.
_>А разве веб-сервер и http-сервер не синонимы?
я имел в виду собственно бизнес логику и логику формирования страниц. короче — IIS + .NET это два процесса и коммуникации м/у процессами а Resin/Tomcat/whatever это один процесс.
N>>5. IntelliJ IDEA (решэйпер это пока что жалкое подобие, как и студия 2005)
_>Ждём Resharper 2.0.
к тому времени уже demetra выйдет... так со многими продуктами — NHibernate, или там NLucene — порты старых версий, основные усилия на Java версии сосредоточены.
N>>6. 64bit — я так понимаю что windows server 64bit до сих пор в глубокой бете, а большой хип а Жабе я использую уже больше года.
_>А какая разница под чем Java крутится. Она же платформенно-независимая?
памяти если надо больше 4гб, то без 64х бит тяжело.
N>>можно пройтись еще по web app frameworks, middleware и т.д. и т.п.
_>Давай пройдёмся.
N>я имел в виду собственно бизнес логику и логику формирования страниц. короче — IIS + .NET это два процесса и коммуникации м/у процессами а Resin/Tomcat/whatever это один процесс.
Здесь ты не прав. Начиная с IIS6 (Windows Server 2003) asp.net интегрируется непосредственно в iis и исполняется в том же процессе.
N>>>6. 64bit — я так понимаю что windows server 64bit до сих пор в глубокой бете, а большой хип а Жабе я использую уже больше года.
Здравствуйте, n0name2, Вы писали:
N>Здравствуйте, anton_t, Вы писали:
_>>А если всё-таки надо и часто?
N>тогда возьми одну из 100 реализаций List с примитивным int в качестве элемента. тамже есть с double, и всеми прочими. только она работать будет скорее всего чуть медленнее чем LinkedList<Integer>.
И ради этого мне придётся тянуть стороннюю библиотеку. Да ещё и медленнее работать будет.
_>>yield делает сложное более простым. С чего вы взяли, что ты сможешь сделать проще и эффективнее без yield, чем с yield? Последний раз на прошлой неделе писал, а что?
N>пример конкретной задачи, если не сложно. про count%2 уже понял — делается элементарно.
Каой задачи?
Про count%2 — даже элементарнее чем в моём примере?
_>>Во-первых эта JDK не будет соответствовать стандарту, а во вторых продавать не сможешь — другие возьмут твою JVM и будут продавать за 3 бакса.
N>зависит от того какой license agreement будет у твоей JVM.
Добро пожаловать в соседнюю ветку про GPL
N>>>2. открытые стандарты. думаю пояснять ненадо.
_>>И чем же они открытее стандартов на .NET и C#?
N>тем что они не контролируются Sun а являются результатом согласия community. кроме того, не уверен что на технологии .NET есть открытый и четкий стандарт с версиями, обратной совместимостью, тестами и т.д.
И всё-таки я не понял, чем стандарты на Java открытее чем эти:
Ну и что? "За двумя зайцами погонишься — ни одного не поймаешь."
_>>А что, под .NET может писать только Microsoft? Что же тогда делаю я?
N>без исходного кода платформы возможности девелоперов весьма ограничены.
Reflector тебе в руки.
N>кроме того — политика мс подавляет конкурирующие сторонние решения.
Хочется тебя огорчить — любая коммерческая организация стремится обойти конкурентов.
N>>>2. java.util.concurrent — чрезвычайно полезная библиотека для создания многопоточных приложений
_>>И что в ней семафоры-мьютексы разные? Так они и в .NET есть.
N>нее... там намного более хитрые вещи чем тривиальные мьютексы.
Здравствуйте, n0name2, Вы писали:
_>>yield делает сложное более простым. С чего вы взяли, что ты сможешь сделать проще и эффективнее без yield, чем с yield? Последний раз на прошлой неделе писал, а что? N>пример конкретной задачи, если не сложно. про count%2 уже понял — делается элементарно.
Вот класс элемента дерева с поддержкой обхода всех детей:
public class TreeNode
{
public IEnumerable<TreeNode> Children
{
get
{
return _children;
}
}
private List<TreeNode> _children = new List<TreeNode>;
// внимание, пошел трюк:public IEnumerable<TreeNode> AllChildren
{
get
{
foreach(TreeNode child in Children)
{
yield return child;
foreach(TreeNode descendant in child.AllChildren)
yield return descendant;
}
}
}
}
Покажи мне, как это здорово делается на Java.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Alexey Axyonov, Вы писали:
AA>Здесь ты не прав. Начиная с IIS6 (Windows Server 2003) asp.net интегрируется непосредственно в iis и исполняется в том же процессе.
хмм... тут недавно один маркетолог из MS заходил на tss.net и тужился протолкнуть бенчмарк в котором утверждалость что .NET 2.0 в два раза быстрее IBM WebSphere. его быстро обломали ответным бенчмарком в котором Resin раза в два — три обходит .NET 2.0 (причем, даже MSовские инженеры это воспроизвели), он сильно удивился и начал напирать на то что мол процессы разные и т.д. вроде там все было только под NET 2.0 on Windows Server 2003. если я неправ, то значит просто IIS + ASP.NET тормоз, а альтернативы ему на .NET не существует.
N>>>>6. 64bit — я так понимаю что windows server 64bit до сих пор в глубокой бете, а большой хип а Жабе я использую уже больше года.
AA>Сведения с сайта MSDN Subscriptions.
а это не бета случайно? и сколько это счастье стоит на два физических процессора?