Здравствуйте, WFrag, Вы писали:
WF>Вот-вот. Это и есть "подход Java". Там, где в приличных языках требуется пара строчек, в Java используются жуткие генераторы, инструментация байт-кода, монструозные технологии и прочая дребедень
где с делегатами нужно пара строчек, с анонимными классами четыре от силы. только вот "namespace {}" vs "package" уже выравниывет LOC. ну надумана проблема, несерьезно совершенно. кстати, ниче сложного и жуткого в инструментации байт кода не вижу. ей есть вполне достаточно применений которые никакими делегатами добится невозможно без изменения половины кода приложения. и рефлекшены напорядок быстрее работают если обертка сгенерирована..
хотя, конечно, не без греха — много софта понаписали что без бутылки не разберешься. но это скорее от излишнего усердия всяких фрэймворкописателей. но по сравнению с COM и его гемороем даже EJB кажутся простыми и понятными слава богу мне как Жаба программеру никогда не приходится с этой помойкой иметь дело (впрочем, я вообще UI не трогаю — не люблю это дело).
с другой стороны, на самом деле тотже Resin + JSP намного легче и проще IIS + ASP.NET. маленькое и простенькое приложение без тучи стародавних и ненужных фич IIS, в основном все на вообще на JSP делается даже без Жаба кода...
Здравствуйте, n0name2, Вы писали:
N>где с делегатами нужно пара строчек, с анонимными классами четыре от силы.
Да, только нужно еще и интерфейс описать. Который скорее всего больше нигде использоваться и не будет.
Например, есть некая древовидная структура, нужно из нее вытащить некоторые данные. Хорошим решением было бы что-то вроде (псевдо-код на непонятно чём ):
Где processHierarchy — функция обхода всего дерева. Вызывает второй параметр для каждого элемента их дерева (например, для каждого листа).
Вместо этого приходится писать полностью функцию обхода дерева для конкретного случая. Потому что вводить интерфейс/анонимный класс неохота — код будет еще страшнее, куча левых сущностей.
Здравствуйте, n0name2, Вы писали:
N>бедный админы новела, мне их жаль искренне. серьезная контора никогда не будет вкладывать деньги в разработку софта базовая платформа которого может исчезнуть в любой момент по мановению Билли.
А как это, стандарт ECMA отзовут, что-ли? CLI как платформа уже состоялась, проблема сейчас — портируемая GUI библиотека. Но и это будет.
Здравствуйте, SilverCloud, Вы писали:
SC>А как это, стандарт ECMA отзовут, что-ли? CLI как платформа уже состоялась, проблема сейчас — портируемая GUI библиотека. Но и это будет.
зачем отзывать то? выпустят новую версию с существенными отличаями от ECMA. не только GUI, главное это нечто вроде ASP.NET портируемого. я пока не вижу особенного рвения стандартизировать всю платформу .НЕТ. а CLI сам по себе никому по большому счету не интересен, нужно решение top to bottom...
Здравствуйте, Gregory_krovosos, Вы писали:
G_>Причем тут — матрица или не-матрица? Ясно, что создание большого объекта в куче займет больше времение чем операция sub esp, <большой_размер_объекта>
Так для этого и делаются структуры. Многие вычисления приходится перекладывать на стек, иначе а. фрагментация памяти б. медленно
Здравствуйте, n0name2, Вы писали:
N>вообще, есть десяток реализаций DOM/SAX для Java, есть и более продвинутые/быстрые API (StAX, etc). а для .NET кто-то это делает? или MS демотивирует — мол есть наша им и пользуйся?
Это как ра и показывает, что все никако не могут один раз сделать, а делают поделки.
Здравствуйте, WFrag, Вы писали:
WF>Здравствуйте, Dimonizhe, Вы писали:
D>>Подход Жабы, что те кто надо используют "жуткие генераторы, инструментация байт-кода, монструозные технологии". А тем кому не надо — клиент-сайду например, не парятся с изучением конструкций нужных в 1% случаев.
WF>1%? Как считали? Мне функций высшего порядка и замыканий постоянно не хватает, хотя на "функциональных" языках я практически и не писал. А вот анонимные классы я редко использую, потому что мситаю, что они читабельность сильно ухудшают.
Ура, наконец-то я в живую увидел этот один процент.
Здравствуйте, SilverCloud, Вы писали:
SC>Здравствуйте, n0name2, Вы писали:
N>>бедный админы новела, мне их жаль искренне. серьезная контора никогда не будет вкладывать деньги в разработку софта базовая платформа которого может исчезнуть в любой момент по мановению Билли.
SC>А как это, стандарт ECMA отзовут, что-ли? CLI как платформа уже состоялась, проблема сейчас — портируемая GUI библиотека. Но и это будет.
Задолбала эта мантра — будет в следующей версии, в следующем сервис паке, будет....будет....будет....будет.... Когда будет тогда и поговорим.
А сейчас говорите — нет, и неясно когда появиться.
Здравствуйте, slskor, Вы писали:
G_>>>>... чего есть в C# + .NET такого чего нет в Java? RB>>>ставит Java на место догоняющего. Это характерно, или так получилось??? G_>>Именно. Ведь .NET появился позже и обязан был по этой причине дать что-то новое.
S>В библиотеке классов Java много путаницы. Начинающих знакомиться с Java класс Date просто сводит с ума S>На мой взгляд, .NET имеет более продуманную библиотеку классов. Тот самый случай, когда чужой опыт и ошибки были учтены.
ИМХО перед проектировщиками java.* и System.* ставили разные приоритеты. В первом случае гибкость и простота имплементации во втором удобство использования. И те и другие по большей части своей цели добились. Хочется конечно и того и другого и лучше без хлеба но так не бывает...
Здравствуйте, TK, Вы писали:
TK>Скорее всего в яве не плодят дополнительных сущностей не потому, что структуры — те же классы, только на стеке, а потому, что ява это больше академический язык и начинающему студенту тяжело будет понять что такое структура, в чем она отличается от класса и почему в других языках появилась необходимость в данной конструкции.
TK>Да и по куче других отличий. TK>Возьмем те-же делегаты, что проще использовать для обработки событий? делегат или хитрую конструкцию из интерфейса, адаптера и класса наследника адаптера переопределяющего один/два метода. Понятно, что делегат проще, компактнее в записи и т.п. но, для ява программиста это означает, что нужно запомнить еще одну сущность. а это, может не укладываться в учебные планы, да и бедному ява программисту придется выделить лишний кусок своей драгоценной памяти из скудных запасов... отсюда мы и имеем — застой в платформе и цепляние за устоявшиеся стереотипы.
TK>)
Давай не будем так хвастливо гордится НЕакадемическим шарпом и .NET. Не будем забывать как майкрософт мечется, боясь не успеть ухватить сочный куш. Майскрософт вообще редко изобретает что-то новое и умное — в основном передирают зарекомендовавшие себя идеи — что и произошло с платформой .NET — идея Javы же родилась еще в начале 90-х — тогда это была еще не Java, а Oak — но главное идея. Майсрософт же попыталась поддерживать Java в своей студии — Visual J++ Схватилась — не пошло — потом бросила это дело и давай придумывать то же самое, но свое, но с опозданием на 5-6 лет по сравнению с Javой — молодцы — копировать умеем. Благо денег полно — можем очень быстро и много кода напедалить и обернуть в красивую обертку в которой ни одной новой идеи.
К слову идея Окон тоже содрана из Мас OS. И много примеров можно привести — но вопрос не об этом. Вопрос в том как долго платформа .NET будет соответсвовать современным каконам — ведь в любую технолигию нужно развивать — расширять — дополнять новыми идеями — будет ли майкрософт успевать копировать новые идеи? (чтиобы скопировать идею Java им понадобилось 5 лет — это много или мало?)
Здравствуйте, E., Вы писали:
E.>Давай не будем так хвастливо гордится НЕакадемическим шарпом и .NET. Не будем забывать как майкрософт мечется, боясь не успеть ухватить сочный куш. Майскрософт вообще редко изобретает что-то новое и умное — в основном передирают зарекомендовавшие себя идеи — что и произошло с платформой .NET — идея Javы же родилась еще в начале 90-х — тогда это была еще не Java, а Oak — но главное идея. Майсрософт же попыталась поддерживать Java в своей студии — Visual J++ Схватилась — не пошло — потом бросила это дело и давай придумывать то же самое, но свое, но с опозданием на 5-6 лет по сравнению с Javой — молодцы — копировать умеем. Благо денег полно — можем очень быстро и много кода напедалить и обернуть в красивую обертку в которой ни одной новой идеи.
А вот Вирт утверждает, что Java содрана с оберона. Выходит, что Sun "молодцы — копировать умеем. Благо денег полно — можем очень быстро и много кода напедалить и обернуть в красивую обертку в которой ни одной новой идеи."?
E.>К слову идея Окон тоже содрана из Мас OS. И много примеров можно привести — но вопрос не об этом.
Окна не только в винде и маке есть. Однако в воровстве идей ты обвиняешь только майкрософт.
E.>Вопрос в том как долго платформа .NET будет соответсвовать современным каконам — ведь в любую технолигию нужно развивать — расширять — дополнять новыми идеями — будет ли майкрософт успевать копировать новые идеи?
Небольшой пример: генерики появились в яве только после того, как майкрософт заявил их появление в дотнет.
E.>(чтиобы скопировать идею Java им понадобилось 5 лет — это много или мало?) E.>
.Net это ответ на Java, но с чего ты взял, что чистая копия?
Здравствуйте, ihatelogins, Вы писали:
I>Здравствуйте, jdev333, Вы писали:
J>>имхо, микрософт может не управиться в конкурентное время с платформой J>>как я понимаю до сих пор нету аналога серверов приложений, а они уже сейчас сами по себе отходят на второй план — посмотрите что делают SAP, Oracle, IBM, BEA и др. (уже) — портал + warehouse + integration broker + app_server- переход к сервисной архитектуре (не путать с веб-сервисами)
I>Очень похоже на маркетинговый бред.
Вспоминает анекдот. Дура то дура, а свои $200 в день имею. Бред — не бред, а сегмент рунка — громадный.
Здравствуйте, Денис Цыплаков, Вы писали:
ДЦ>Здравствуйте, GarryIV, Вы писали:
GIV>>Про Date ты прав на 100% — крыша уехала мигом
ДЦ> А к слову — что там с классом Date?
Как без танцев с бубном вычислить разницу между двумя датами?
Здравствуйте, anton_t, Вы писали:
_>.Net это ответ на Java, но с чего ты взял, что чистая копия?
если бы была чистой копией, то не сливала бы с позором серверной JVM в два раза на простейшей пузырьковой сортировке привет структурам в качестве прититивов...
_>Как без танцев с бубном вычислить разницу между двумя датами?
import java.util.*;
import static java.lang.System.*;
import static org.apache.commons.lang.time.DurationFormatUtils.*;
public class Test2 {
public static void main(String[] args) {
out.println(formatDurationWords(new GregorianCalendar().getTimeInMillis() - new GregorianCalendar(2004, 1, 1).getTimeInMillis(), true, true));
}
}