Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java 1.5 code name "Tiger", что нового 
:(
    Опции темы
Domestic Cat
Дата 13.9.2004, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



30 сентября - дата target release для Java 1.5. что ожидается нового?

язык
---------
1. Generics. Почти то жe saмоe, что и templates в С++.
В Java мы привыкли ка такому:
Код

ArrayList list = new ArrayList();
list.add(new Integer(3));
Integer integer = (Integer) list.get(0);


Кастинг в Интегер раздражаеt, да i впринципе возможно dобавить в лист Float и получить в результате
ClassCastException.

В Java 1.5 можно будет делать так:
Код

ArrayList<Integer> list = new ArrayList<Integer >();
list.add(new Integer(3));
Integer integer = list.get(0);


Предположим, мы хотим распечатать содержание любой Collection, в том числе и list:
Код

void printCollection(Collection<?> c)
{
     for (Object e : c)
          System.out.println(e);
}

Здесь введена wildcard "?".
Пусть, мы хотим печатать содержимое коллекшнов содержащих объекты классов, наследующих от Integer:
Код

public void printCollection(List<? extends Integer> list)
{
     for (Integer e : c)
          System.out.println(e);  
}

Сам ArrayList декларируется так:
Код

class ArrayList<E>
{
//....
}

Интерфейс Collection объявлен следующим образом:
Код

interface Collection<E>
{
      public boolean containsAll(Collection<?> c);
      public boolean addAll(Collection<? extends E> c);
}

Можно использовать и более сложные конструкции:
Код

static List<List<? extends Shape>> history = new ArrayList<List<? extends Shape>>();
public void drawAll(List<? extends Shape> shapes)
{
    history.addLast(shapes);
    for (Shape s: shapes) { s.draw(this); }
}


Более подробно см. тут:
http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf

Мое отношение: негативное smile.gif
- Может приводить к запутанному коду.
+ Хороши для контейнеров.

2. Улученный for:
Код

void cancelAll(Collection<TimerTask> c)
{
   for (Iterator<TimerTask> i = c.iterator(); i.hasNext(); )
       i.next().cancel();
}

Есть то же самое что и
Код

void cancelAll(Collection<TimerTask> c)
{
   for (TimerTask t : c)
       t.cancel();
}


http://java.sun.com/j2se/1.5.0/docs/guide/...ge/foreach.html

Мое отношение: непонятное smile.gif
- Менее читабелен
+ Меньше набивать

3. Autoboxing / unboxing
Код

public class Frequency {
  public static void main(String[] args) {
     Map<String, Integer> m = new TreeMap<String, Integer>();
     for (String word : args) {
         Integer freq = m.get(word);
         m.put(word, (freq == null ? 1 : freq + 1)); <-------- !!!!
     }
     System.out.println(m);
  }
}

Здесь оно и сидит. Вместо "нoрмальных" getValue , new Integer, используется 1 : freq + 1.

http://java.sun.com/j2se/1.5.0/docs/guide/...autoboxing.html
Мое отношение: негативное smile.gif
- Плохой перформанс
- Менее читабелен
+ Меньше набивать

4. Enum. Аналог C++.

Код

public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }


http://java.sun.com/j2se/1.5.0/docs/guide/...uage/enums.html

Мое отношение: Положительное smile.gif
+ не нужно больше длииннющих списков public sttaic final.

5. Переменное количество аргументов. Аналог C++.
Код

public static String format(String pattern,
                               Object... arguments);
String result = MessageFormat.format(
   "At {1,time} on {1,date}, there was {2} on planet "
   + "{0,number,integer}.",
   7, new Date(), "a disturbance in the Force");
//....
System.out.printf("%s failed: %s%n", className, ex);

Huh? Не знаю что и сказать.
http://java.sun.com/j2se/1.5.0/docs/guide/...ge/varargs.html
Мое отношение: Наверное, это хорошо smile.gif
+ Проще, чем передавать массив
- ?
6. Static import
Код

import static java.lang.Math.PI;
//....
double r =cos(PI * theta);

http://java.sun.com/j2se/1.5.0/docs/guide/...tic-import.html
Мое отношение: отрицательное smile.gif
- И как потом разобраться откуда взялась PI?
-------------------
Изменениям подверглись множество базоvых пакетов, скажем в JDBC добавлен RowSet. См.
http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html
Каково ваше отножение к изменениям в языке? Хорошо это или плохо?
Добавлено @ 17:01
-------------------------------------------------------------------



sad.gif А это уже было. Как бы теперь убить энтот топик?



--------------------

PM   Вверх
Guest
Дата 13.9.2004, 17:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











вообще говоря темплаты это и прада хорошо. Хотя все прекрасно пишется и без них. Лишнее приведение типа ни на что не влияет кроме колл-ва писанины,зато гораздо понятнее.
Но просмотрев весь мессаг понял что разбираться с сорцами теперь будет на порядок сложнее. sad.gif(. Тут я полностью согласен с автором.
Т.к. я чайник, то по сорцам лазить приходится очень много.
А еще я понял что все летит к чертикам, т.к. еще не устаканился сам язык ... а это ой как плохо (для меня) ... sad.gif((.

  Вверх
sergejzr
Дата 13.9.2004, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



AntonSaburov, ElectricalStorm, Domestic Cat спасибо!

Довольно интересно smile.gif Меня радуют все это штуки. Довольно неудобным было например использование в контейнерах Object с последующим кастингом в то, что нужно smile.gif

В принципе так же хорошо, что операторы не тронули smile.gif

Так же нахожу такое очень удачным smile.gif. Просто привыкнуть надо. Код даже ИМХО более читабельным становится smile.gif
Код
for (String word : args)



ПС:
Всё же жду не дождусь, что Sun выпустит компилятор в exe smile.gif Кстати почему они до сих пор этого не сделали? biggrin.gif



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Zandr
Дата 14.9.2004, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 433
Регистрация: 16.7.2004
Где: Новосибирск

Репутация: 9
Всего: 13



sergej.z А зачем им в exe? Solaris jar'ы уже понимает как исполняемые, и хватит smile.gif
PM MAIL   Вверх
redrick
Дата 16.9.2004, 03:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



где-то кто-то когда-то выссказал такую мысль : Java придумали и она позиционироваллась как наследник C++, из которого выбросили все, что мешало. Но что происзодит сейчас ? Темплейты, STL потихоньку возраждаются в Java =) Так мне показалось. Лично мне это приятно - начинал с C и C++ (так что они привычнее просто в силу просиженного на них времени).

Но вот можно и с другой стороны посмотреть : http://www.computerra.ru/hitech/35042/

- все к этому идет наверное по большому счету. Трудно не согласиться с автором. Впрочем это уже практически оффтоп =)


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
AntonSaburov
Дата 16.9.2004, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Цитата(redrick @ 16.9.2004, 04:10)
Java придумали и она позиционироваллась как наследник C++,

Это не верно. JAVA поначалу имела достаточно определенный сегмент и не собирались С заменять, но идеология оказалась настолько сильной, что она распространилась на совершенно неожиданные области.

Цитата(redrick @ 16.9.2004, 04:10)
Трудно не согласиться с автором.

Эту статью уже как-то обсуждали. Автор НИКОГДА не программировал на JAVA - о чем можно говорить.
PM MAIL WWW ICQ   Вверх
redrick
Дата 16.9.2004, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



здесь я имел ввиду лишь то, что Java разрабатывалась, насколько я понимаю, на основе C++, т. е. это была стартовая точка.

в статье лично я даже и не заметил угроз Java (разве что чисто декларативные в начале). Скорее наоборот - Java относится к C++ приблизительно как гипотетические языки будущеего к сегодняшним (упрощение жизни программиста ценой ресурсов). Для того чтобы рассуждать на такие темы автору имхо совсем не надо программировать на Java - достаточно спецификацию почитать (и, конечно обладать достаточным опытом и знаниями в IT сфере).


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
Domestic Cat
Дата 16.9.2004, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Ну, опять про Грема. Прочти http://www.paulgraham.com/javacover.html
- высечь его надо adv/pitka.gif и отправить ООП учить.


--------------------

PM   Вверх
Gretchen
Дата 20.9.2004, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 25.8.2004
Где: München

Репутация: 1
Всего: 4



Цитата(Domestic @ 16.9.2004, 15:24)
Ну, опять про Грема. Прочти http://www.paulgraham.com/javacover.html 
- высечь его надо  adv/pitka.gif  и отправить ООП учить.

4. No one loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their languages. I've never heard anyone say that they loved Java.

Да уж, потрясающая аргументация.

Если в этой статье заменить Java на C#, то и разницы никто и не заметит.

И вообще, может мне только кажется, но почему постоянно всплывают подобный статьи именно про Java. И всегда авторы прикрываются мнением настоящих бывалых хакеров.

Это сообщение отредактировал(а) Gretchen - 20.9.2004, 17:00
PM MAIL ICQ   Вверх
redrick
Дата 20.9.2004, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



вощем мужик этот довольно противоречивый. По отношению к Яве(и другим технологиям) я его не понимаю, а вот рассуждения по поводу будущего языков программирования мне показались интересными - ну по крайней мере на уровне чтения статьи.

Да и потом - вроде как действительно авторитетный товарищ, но что то вот промахивается бывает =)


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
Domestic Cat
Дата 20.9.2004, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



А я не согласен и с самой статьей - про то, какими будут языки через сто лет.
Собственно, и статьи то никакой нет. Есть несколько утверждений, вокруг которых
Грем накручивает болтологию:
1. "Языки и машины через 100 лет станут иными. Машины станут быстрее, отпадет нужда в
императивных языках". (Я даю в своем "переводе").
- Ну и ничего нового тут нет. Да, станут компьютеры быстрее. Ну а языки - вряд ли.
Фактически Грем клонит к одному единственному языку "будущего" - Лиспу.
Ну не верю я в то, что лисп так уж хорош. Лисп существует уже 45 лет,
и его медленность перестала играть особое значение лет эдак 10 назад.
Не такой уж это хороший язык. Кстати, вряд ли какой другой язык имеет столько рас шифровок:

Lost In a Sea of Parentheses
Lost in Stupid Parenthesis
Lots of Infuriating & Silly Parenthesis
Lots of Irritating Single Parentheses
Lots of Irritating Superfluous Parentheses
Lots of Isolated Silly Parentheses

Посмотри сколько людей пишут не на функциональных а на императивных языках. имхо потому, что
императивный язык проще для понимания.
Как то я читал книжку где утверждалось, что лисп станет популярным с появлением
компьютеров с несколькими процессорами. Ан нет, не стал.
2. "Возможно, не будут использоваться числа". К сожалению, за тысячи лет
человечество не изобрело ничего лучшего, как дискретная запись информации - книги,
пластинки, магнитные или оптические поверхности, итп. Связано это с нашим восприятием мира
(дискретным). Понятно, что есть "непрерывные" поля (электромагнитное, гравитационное).
Есть математические объекты - непрерывные функции. Но все равно, такая функция нафик не
нужна, пока мы не подставим в нее дискретное значение и получим дискретный ответ.
Не будет никаких "принципиально новых" языков.

Вот и все. "Лисп когда-нибудь станет великим и могучим." Ергх. Вся статья.



--------------------

PM   Вверх
LSD
Дата 20.9.2004, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Domestic @ 20.9.2004, 22:27)
Посмотри сколько людей пишут не на функциональных а на императивных языках. имхо потому, чтоимперативный язык проще для понимания.

Проще не значит лучше. VB проще чем Java.
Функциональные языки требуют чтобы программист перед началом работы формализовал задачу. Функциональные языки заставляют идти от проблемы, а не от средства. Это есть очень даже гут, но не все могут и хотят это делать (даже пожалуй большинство). Простой примерчик: мне недавно понадобилось написать одну небольшую програмку на Pascal-е, и я с удивлением обнаружил, что оказывается возможность объявлять переменные непосредственно перед использованием очень расслабляет. Поскольку в Pascal-е все локальные переменные определяются в одном месте, то лучше видно какие переменные лишние, я обощелся всего двумя переменыыми для счетчика цикла. В Java я бы использовал 6 переменных.

Несмотря на это я не верю в то что когда нибудь, функциональные языки заменят императивные.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
AntonSaburov
Дата 21.9.2004, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Модератор: Давайте не отвлекаться от темы. А то достану "плюсомет" (кто сталкивался с ФИДО знает, что это такое smile.gif ) - буду предупреждения раздавать. Только для нашего форума более правильно будет "минусомет".

Если хочется пообсуждать на тему "JAVA это хорошо или плохо" открывайте новый топик.
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 5.10.2004, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Цитата(Zandr @ 14.9.2004, 06:48)
sergej.z А зачем им в exe? Solaris jar'ы уже понимает как исполняемые, и хватит smile.gif

Чтобы код не интерпретировать каждый раз smile.gif


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
GriKo
Дата 9.10.2004, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 7.6.2003
Где: Израиль

Репутация: нет
Всего: нет



foRaver ,
а зачемже добиваться худшего эффекта? =)
ALL
у меня создаётся какоето детско-кривовато-нелепое мнение на счёт некотырвх обновлений... когда жава была в апогее своей популярности, все хором кричали о том что к Ц и ЦПП она буквально не имеет никакого отношения, она оригинальна и не зависима практически во всём, многоплатформена и нуждается только в виртуальной машине...
ну, скажите, зачем теперь ей сдался enum? разве если его не будет - станет намного хуже?
Цитата
... foreach, который введен например в C#...

а без него тоже жава уже не жава?
на счёт восьмого пункта... про ФОРТРАН сказать ничего не могу, но в ПАСКАЛЕ printf'а в жизни никто не видел...
а "< и >" как синтаксис Цешного темлейта?

ну и зачем? и почему всё прёт от ЦПП и Цшарп? всем понятно что язык должен совершенствоваться... но отчего то что заимствуется из "других языков" и оно "лучшее", потомучто другое заимствовать смысла не имеет, идёт только от Ц?
давайте тогда всётаки договоримся, что Саны не такие уж и независимые... и в следующий раз, перед тем как бить кулаками в грудь и кричать про всевеликий "индепенденс" задумаемся, а так ли это?

Добавлено @ 17:29
redrick и ребята... извените... =( не дочитал топик до конца и принялся гнать своё мнение... а тема на счёт этого уже поднималась...
ещё раз прошу прощения...

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1108 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.