Здравствуйте, 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 и т.д. и т.п.