Re[8]: C# .NET vs Java 1.5
От: Cyberax Марс  
Дата: 22.12.05 14:23
Оценка:
Денис Цыплаков wrote:
> Я как раз считаю что реализацию даты в Яве наиболее удобная из всего что
> я видел
Она была бы самой удобной, если бы класс java.util.Date был
иммутабельным (как String).

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re: C# .NET vs Java 1.5
От: Денис Цыплаков Россия  
Дата: 22.12.05 14:29
Оценка: +2
Здравствуйте, Gregory_krovosos, Вы писали:

G_>Начать можно со такого вопроса — чего есть в C# + .NET такого чего нет в Java? Принимается все — начиная от конструкций языка и заканчивая технологиями и скоростями работы.


Наверное правильный ответ — ощущение того, что Java это охренительный рынок на котором все проблемы решаются. Причем решаются без привлечения Sun. Ты всегда знаешь, что никогда не попадешь в зависимость от отсутствия в платформе какой-то фичи. Или от ошибки в платформе. Все можно обойти, на все можно найти решение. Всегда есть другой путь. Или в крайнем случае можно разобраться и сделать самому, благо для деланья самим везде есть соотвествующие зацепочки. А если даже и нет, что все равно можно сделать.
Re[9]: C# .NET vs Java 1.5
От: Денис Цыплаков Россия  
Дата: 22.12.05 14:30
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Денис Цыплаков wrote:

>> Я как раз считаю что реализацию даты в Яве наиболее удобная из всего что
>> я видел
C>Она была бы самой удобной, если бы класс java.util.Date был
C>иммутабельным (как String).

Возможно. Но чем мешает мутабельность Date?
Re[10]: C# .NET vs Java 1.5
От: Cyberax Марс  
Дата: 22.12.05 15:23
Оценка:
Денис Цыплаков wrote:
>> > Я как раз считаю что реализацию даты в Яве наиболее удобная из всего что
>> > я видел
> C>Она была бы самой удобной, если бы класс java.util.Date был
> C>иммутабельным (как String).
> Возможно. Но чем мешает мутабельность Date?
Не совсем логично получается. Date как обертка над число миллисекунд —
это фактически "безразмерная" величина (одинаковая во всех часовых
поясах), но в класс Date добавили методы для разбора дат, установки
дней/минут/лет, которые зависят от локали. Потом они исправились, и
сделали класс Calendar

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[11]: C# .NET vs Java 1.5
От: Денис Цыплаков Россия  
Дата: 22.12.05 16:14
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Денис Цыплаков wrote:

>>> > Я как раз считаю что реализацию даты в Яве наиболее удобная из всего что
>>> > я видел
>> C>Она была бы самой удобной, если бы класс java.util.Date был
>> C>иммутабельным (как String).
>> Возможно. Но чем мешает мутабельность Date?
C>Не совсем логично получается. Date как обертка над число миллисекунд —
C>это фактически "безразмерная" величина (одинаковая во всех часовых
C>поясах), но в класс Date добавили методы для разбора дат, установки
C>дней/минут/лет, которые зависят от локали. Потом они исправились, и
C>сделали класс Calendar

А! это! Тут как раз самое интересно. Если подходить концептуально — то да, ты прав. Разработчики Явы пошли путем отделения данных от процессоров. Но не дошли а остановились. Момент это конечно спорный. Вроде как концептуально не красиво. Но не надо забывать что
1. Есть в Java классах тяжелое наследие JDK 1.0, помеченное как deprecated
2. Удобно когда класс с данными предоставляет некоторую базовую функциональность для доступа к себе. На мой взгляд в Яве классы данных нигде за эту самую базовость не выходят. Опять же в календарь венесены операции которые могут различаться в зависомсти от типа календаря (Грегорианский календарь не единственный). А в Date только что что неразрывно связано с датой.
3. Есть в дизайне Явовских классов некоотрая золотая середина. Но это аргумент сугубо субъективный. Я эту середину вижу, но не факт, что ее видит кто-то еще.

В любом случае то, что было перечисленно не тянет уезжание крыши. Ну никак.
Re[8]: C# .NET vs Java 1.5
От: anton_t Россия  
Дата: 22.12.05 17:19
Оценка:
Здравствуйте, Денис Цыплаков, Вы писали:

ДЦ>Здравствуйте, anton_t, Вы писали:


ДЦ>>> А к слову — что там с классом Date?


_>>Как без танцев с бубном вычислить разницу между двумя датами?



ДЦ>
ДЦ>   Date d1;
ДЦ>   Date d2;
ДЦ>   System.out.println(d1.getTime() - d2.getTime());
ДЦ>


ДЦ> в миллисекундах. Если надо в чем-то еще — дели, форматируй.

ДЦ> Есть класс Calendar для арпифметики и т.п.

ДЦ> Я как раз считаю что реализацию даты в Яве наиболее удобная из всего что я видел


А вот когда я из этого количества миллисекунд попытался сделать нормальную дату и она получилась на 7 часов больше чем надо, это мне не показалось сколько-нибудь удобным.
Re[9]: C# .NET vs Java 1.5
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 22.12.05 18:00
Оценка:
Здравствуйте, anton_t, Вы писали:

_>А вот когда я из этого количества миллисекунд попытался сделать нормальную дату и она получилась на 7 часов больше чем надо, это мне не показалось сколько-нибудь удобным.


А всё потому, что диапазон /между двумя датами/ и сама дата это две большие разницы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[9]: C# .NET vs Java 1.5
От: Денис Цыплаков Россия  
Дата: 23.12.05 07:58
Оценка:
Здравствуйте, anton_t, Вы писали:

_>Здравствуйте, Денис Цыплаков, Вы писали:


ДЦ>>
ДЦ>>   Date d1;
ДЦ>>   Date d2;
ДЦ>>   System.out.println(d1.getTime() - d2.getTime());
ДЦ>>


ДЦ>> Я как раз считаю что реализацию даты в Яве наиболее удобная из всего что я видел


_>А вот когда я из этого количества миллисекунд попытался сделать нормальную дату и она получилась на 7 часов больше чем надо, это мне не показалось сколько-нибудь удобным.


Может быть в консерватории что-то подправить. Разница между датами и и собственно дата это разные величины. Если ты скажешь что именно надо и как делал — подскажу как надо.
Например так

 Date d1;
 Date d2;
 long delta = d1.getTime() - d2.getTime();
 long days = delta / 1000 / 60 / 60 /24;
 delta = delta - days;
 long hours = delta / 1000 / 60 / 60;
 delta = delta - hours; 
 long minutes = delta / 1000 / 60;
 delta = delta - minutes;
 long sec = delta / 1000;
 long mces = delta - sec;
 System.out.println ( "delta = " +  days + " дн " + hours + " ч " + minutes + " мин " + sec + " сек " + msec + " мс" );


Ну если с нуля и руками то так. А вообще-то можно и проще. Есть апачевские классы которые это дело сильно упрощают.
Re[10]: C# .NET vs Java 1.5
От: Денис Цыплаков Россия  
Дата: 23.12.05 08:09
Оценка:
Здравствуйте, Денис Цыплаков, Вы писали:

_>>А вот когда я из этого количества миллисекунд попытался сделать нормальную дату и она получилась на 7 часов больше чем надо, это мне не показалось сколько-нибудь удобным.


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


Joda-Time 1.2 - Replacing JDK Date and Calendar

Joda-Time 1.2 has been released. Joda-Time provides a Java library for date and time handling including the ISO8601 standard. It completely replaces the JDK Date and Calendar classes, while still providing good integration. This release fixes some minor bugs in v1.1 and adds two new calendars as well as some useful new methods on existing classes. It is open-source software under the ASF2 license.

This release fixes a number of minor bugs in v1.1. There are also some new features:

    * Islamic calendar system
    * Ethiopic calendar system
    * YearMonthDay/TimeOfDay factory methods to ensure exact field by field creation from Date/Calendar
    * simpler conversion of a month/week etc to an interval - dt.monthOfYear().toInterval()
    * convenient method for getting last day of month - dt.monthOfYear().withMaximumValue()


Release notes: http://sourceforge.net/project/shownotes.php?release_id=379940&group_id=97367
Download: http://sourceforge.net/project/showfiles.php?group_id=97367&package_id=104212

Hibernate and JSP integration are available from linked websites.

Major features of Joda-Time
---------------------------

    * Easy to Use - Calendar makes accessing 'normal' dates difficult, due to the lack of simple methods. Joda-Time has straightforward field accessors. And the index of January is 1!
    * Extensible - Joda-Time supports multiple calendar systems via a plugin mechanism, which is much more extensible than the subclasses of Calendar. Currently supported calendars are ISO8601, GregorianJulian, Buddhist (Thai), Coptic, Ethiopic and Islamic.
    * Comprehensive - Joda-Time includes classes for datetimes, dates without times, times without dates, intervals and time periods.
    * Advanced formatting - An advanced and extensible formatting mechanism is included, allowing input and output to string in a thread-safe manner.
    * Well documented. There is documentation in the form of a quick and full user guide, plus reference pages, FAQs and javadoc.
    * Tested. There is good test coverage, see the website, providing an assurance of quality.
Re[15]: C# .NET vs Java 1.5
От: Nikolay_Ch Россия  
Дата: 23.12.05 08:45
Оценка:
E.>Давай не будем так хвастливо гордится НЕакадемическим шарпом и .NET. ...
E.>К слову идея Окон тоже содрана из Мас OS. И много примеров можно привести...
E.>
Ничто не ново.
Окна — мак тоже передрал. Весь интерфейс вообще начался от IT&T (по-моему) или что-то в это роде в лохматых 60-х.
А по-поводу того, что мечется. То пусть. Чем больше мечется, тем больше рождается чего-то нового.
MS вообще своими метаниями двигает прогресс вперед. Пусть при этом много отпадает в виде шелухи. Но не замечать
того, что благодаря MS движение только ускоряется — это значит невидеть дальше кончика своего носа
Нельзя застаиваться. Нельзя останавливаться. Хотя многим этого хочется, но этого не будет. Во-многом благодаря MS.
Re[10]: C# .NET vs Java 1.5
От: WolfHound  
Дата: 23.12.05 14:51
Оценка: 1 (1)
Здравствуйте, Денис Цыплаков, Вы писали:

ДЦ> Может быть в консерватории что-то подправить. Разница между датами и и собственно дата это разные величины. Если ты скажешь что именно надо и как делал — подскажу как надо.

ДЦ> Например так
Теперь сравни с .NET
    DateTime d1 = DateTime.Now;
    Thread.Sleep(1212);
    DateTime d2 = DateTime.Now;
    TimeSpan d = d2-d1;
    Console.WriteLine("delta = " + d.Days + " дн " + d.Hours + " ч " + d.Minutes + " мин " + d.Seconds + " сек " + d.Milliseconds + " мс");
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: C# .NET vs Java 1.5
От: Cyberax Марс  
Дата: 23.12.05 19:01
Оценка:
WolfHound wrote:
> DateTime d1 = DateTime.Now;
> Thread.Sleep(1212);
> DateTime d2 = DateTime.Now;
> TimeSpan d = d2-d1;
> Console.WriteLine("delta = " + d.Days + " дн " + d.Hours + " ч " + d.Minutes + " мин " + d.Seconds + " сек " + d.Milliseconds + " мс");
Неправильно, на самом деле. Во-первых, а если я захочу астрономические
дни (23 часа 56 минут сколько-то секунд)? А еще надо учитывать leap
second, из-за которой в минуте может быть 61 секунда (или 59 секунд).

А как быть с переходом на зимнее/летнее время? Типа по "настенным часам"
разница будет 2 часа, а здесь получится 3 часа.

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

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[12]: C# .NET vs Java 1.5
От: WolfHound  
Дата: 23.12.05 19:36
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Неправильно, на самом деле. Во-первых, а если я захочу астрономические

C>дни (23 часа 56 минут сколько-то секунд)? А еще надо учитывать leap
C>second, из-за которой в минуте может быть 61 секунда (или 59 секунд).
Может сначала возьмешь рефлектор и посмотришь как реализован TimeSpan?..
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: C# .NET vs Java 1.5
От: Cyberax Марс  
Дата: 23.12.05 19:57
Оценка:
WolfHound wrote:
> C>Неправильно, на самом деле. Во-первых, а если я захочу астрономические
> C>дни (23 часа 56 минут сколько-то секунд)? А еще надо учитывать leap
> C>second, из-за которой в минуте может быть 61 секунда (или 59 секунд).
> Может сначала возьмешь рефлектор и посмотришь как реализован TimeSpan?..
Посмотрел. Как я и думал — обычное деление, без учета временных зон.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[10]: C# .NET vs Java 1.5
От: anton_t Россия  
Дата: 24.12.05 10:54
Оценка:
Здравствуйте, Денис Цыплаков, Вы писали:

ДЦ> Может быть в консерватории что-то подправить. Разница между датами и и собственно дата это разные величины.


Вообще-то я знаю.

ДЦ>Если ты скажешь что именно надо и как делал — подскажу как надо.

ДЦ> Например так

ДЦ>
ДЦ> Date d1;
ДЦ> Date d2;
ДЦ> long delta = d1.getTime() - d2.getTime();
ДЦ> long days = delta / 1000 / 60 / 60 /24;
ДЦ> delta = delta - days;
ДЦ> long hours = delta / 1000 / 60 / 60;
ДЦ> delta = delta - hours; 
ДЦ> long minutes = delta / 1000 / 60;
ДЦ> delta = delta - minutes;
ДЦ> long sec = delta / 1000;
ДЦ> long mces = delta - sec;
ДЦ> System.out.println ( "delta = " +  days + " дн " + hours + " ч " + minutes + " мин " + sec + " сек " + msec + " мс" ); 
ДЦ>


ДЦ> Ну если с нуля и руками то так. А вообще-то можно и проще. Есть апачевские классы которые это дело сильно упрощают.


Я же просил — без танцев с бубном.
Re[14]: C# .NET vs Java 1.5
От: anton_t Россия  
Дата: 24.12.05 11:01
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>WolfHound wrote:

>> C>Неправильно, на самом деле. Во-первых, а если я захочу астрономические
>> C>дни (23 часа 56 минут сколько-то секунд)? А еще надо учитывать leap
>> C>second, из-за которой в минуте может быть 61 секунда (или 59 секунд).
>> Может сначала возьмешь рефлектор и посмотришь как реализован TimeSpan?..
C>Посмотрел. Как я и думал — обычное деление, без учета временных зон.

А при чём тут временные зоны?
Re[15]: C# .NET vs Java 1.5
От: Cyberax Марс  
Дата: 24.12.05 11:05
Оценка:
anton_t wrote:
>> > C>Неправильно, на самом деле. Во-первых, а если я захочу астрономические
>> > C>дни (23 часа 56 минут сколько-то секунд)? А еще надо учитывать leap
>> > C>second, из-за которой в минуте может быть 61 секунда (или 59 секунд).
>> > Может сначала возьмешь рефлектор и посмотришь как реализован TimeSpan?..
> C>Посмотрел. Как я и думал — обычное деление, без учета временных зон.
> А при чём тут временные зоны?
Представьте, что сейчас 00:00 в 04:00 происходит переход на летнее
время, так что после 04:59 часы снова покажут 04:00, но уже ЛЕТНЕГО
времени. Как мне в этом случае логичнее представить TimeSpan — как 4
часа или как 5 часов?

Или еще один вариант. 31 декабря, leap second — в последней минуте будет
61 секунда.

В общем, единственная надежная величина, на которую можно полагаться —
это секунда (а также милли-, микро- и прочие секунды).

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[16]: C# .NET vs Java 1.5
От: anton_t Россия  
Дата: 24.12.05 11:13
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Представьте, что сейчас 00:00 в 04:00 происходит переход на летнее

C>время, так что после 04:59 часы снова покажут 04:00, но уже ЛЕТНЕГО
C>времени. Как мне в этом случае логичнее представить TimeSpan — как 4
C>часа или как 5 часов?

C>Или еще один вариант. 31 декабря, leap second — в последней минуте будет

C>61 секунда.

C>В общем, единственная надежная величина, на которую можно полагаться —

C>это секунда (а также милли-, микро- и прочие секунды).

Ну так никто не запрещает получить количество секунд из одной даты, количество из другой и потом делать с ними что душа пожелает. Однако если надо быстро по-простому — пожалуйста — TimeSpan.
Re[17]: C# .NET vs Java 1.5
От: Cyberax Марс  
Дата: 24.12.05 14:49
Оценка:
anton_t wrote:
> C>В общем, единственная надежная величина, на которую можно полагаться —
> C>это секунда (а также милли-, микро- и прочие секунды).
> Ну так никто не запрещает получить количество секунд из одной даты,
> количество из другой и потом делать с ними что душа пожелает. Однако
> если надо быстро по-простому — пожалуйста — TimeSpan.
Это не "по-простому", а просто небольшой сахарок над секундами, то же
самое делается классом из десяти строк.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[11]: C# .NET vs Java 1.5
От: Денис Цыплаков Россия  
Дата: 26.12.05 07:12
Оценка:
Здравствуйте, anton_t, Вы писали:

ДЦ>> Ну если с нуля и руками то так. А вообще-то можно и проще. Есть апачевские классы которые это дело сильно упрощают.


_>Я же просил — без танцев с бубном.


Гм. Ну я уже не знаю. Если это танцы с бубном. Видимо
разница между .Net и Явой в философии мышления. Это как
разные биологические виды. То что кажется нормальным разработчикам
одной платформы не нравится разработчикам другой. И наоборот.

Например разработчики пишушие на Яве могут гнуть пальцы
А сколько для .Net есть
лог подсистем, библиотек O/R мапинга, библиотек XML Persistence, встраиваемых RDBMS

На что разработчики .Net могут отвечать нет и не надо. Или есть одно от MS. MS о нас заботится и делат одно супер правильное решение. Оно же самое верное.

В ответ разработчики .Net могут спросить — а есть для Java IDE которая позволяла бы рисовать GUI и нормально писать код — на что Ява разратчики смутятся и скажут нет. Ну рисовать GUI можно в NetBeans — но писать код в ней невозможно. Ужасная IDE почти так же неудобно кодировать как в Visual Studio. Визарды какие-то нелепые и т.п.

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.