Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Java 1.5 code name "Tiger"


Автор: AntonSaburov 2.12.2003, 12:46
Почитал я немного про JAVA 1.5, прослезился и решил написать.

Оригинал интервью можно посмотреть здесь
http://developer.java.sun.com/developer/community/chat/JavaLive/2003/jl0729.html

Что нового намечается в JAVA 1.5 ?

Данная информация получена из интервью двух ведущих разработчиков платформы JAVA - Джошуа Блока (Joshua Bloch) и Нила Гафтера (Neal Gafter)

Хотелось бы выделить несколько на мой взгляд ключевых моментов. Итак:

1. В новой релаизации JAVA (кодовое название Tiger) будет введена возможность типизирования списков. Т.е. если вы используете java.util.List для хранения строк (String), то можно будет описать список как хранилище строк (запись такая - List<String>) и компилятор будет сам отслеживать корректность обращения к элементам списка - приведение типа в этом случае не потребуется.

2. Будет введен аналог оператора foreach, который введен например в C#. Точный формат записи не приведен, но я думаю, что скорее всего синтаксис будет очень похож. Будет служить как и в C# для перебора массива, списка без использования индексов или итераторов для доступа к элементам.

3. Будут введены типы ENUM - т.е. теперь для перечисления констант не надо будет заводить класс.
Учтите, что теперь слово enum станет зарезервированным и использовать его для имен нельзя. Исправляйте свои коды.

4. Будет введен autoboxing/unboxing. Т.е. теперь для того, чтобы поместить в тот же список число int его не надо будет приводить к объекту Integer (многие наверно сталкивались с таким - list.put(new Integer(5)). Теперь это будет делаться автоматически.

5. Будет введена возможность описывать функции с переменным количеством аргументов, которые будут автоматически паковаться в массив и передаваться вызываемой функции.

6. Разработчики JAVA собираются некоторые константы перевести из классов в enum, но это будет сделано только там, где это реально надо. Но будьте бдительны smile.gif

7. Будет введен класс StringBuilder. В отличии от StringBuffer, который является тредсейфным и потому достаточно медленно работает, StringBuilder будет не тредсейфным, что значительно ускорит работу со строками.

8. Будут введены новые возможности ВВОДА/ВЫВОДА - в частности функция printf. (Тайная мечта многих программистов - сложно выводить что-либо на консоль тем, кто учился на C, Pascal, Fortran и прочая).

9. Будет введена поддержка функциональности "WebService" и вообще метаданных. Разработчики бещают, что набор аттрибутов дял метаданных будет сопоставим с .NET

10. Ожидаемая бетта (или где-то в конце этого года. Будем ждать.

10. Не будет введено ключевого слова const,

11. Не будет делегатов - считают, что много сложностей и что немаловажно, при таком подходе вызов метода "уходит" из под контроля объекта, который вызвал делегат. Вообщем не хотят. Может это и правильно.

12. Также не будут вводится дефолтовые параметры для конструкторов


Вот в принципе и все, что мне лично хотелось бы перечислить.
Спасибо за внимание.

Автор: Sun 2.12.2003, 14:43
Достаточно приятные изменения smile.gif
Видно что прилагаются усилия к популяризации языка, хотя и достаточно косметические. Интересно, будут ли внесены изменения в саму виртуальную машину, чтобы сделать ее более производительной? Или проблемы производительности и дальше придеться решать наращиванием аппаратной мощности?

Автор: AntonSaburov 2.12.2003, 14:56
В Java Specification Request есть такое пункт:

C8) Good performance of generic code. Code written to use the generics feature should not be a lot slower or a lot more memory-intensive than non-generic code. Using ten percent more space or time than non-generic code may be acceptable; using twice the space or time is not.

Так что не думаю, что станет гораздо быстрее. Скорее наоборот smile.gif

Автор: foRaver 2.12.2003, 19:37
спасибо, я думаю эти изменения только улучшат авторитет языка и будут реальным противником для C#, хотя в этом кажется никто никогда не сомневался ! smile.gif

Автор: AntonSaburov 3.12.2003, 11:28
Еще по поводу фактически теплэйтов для JAVA (1-й пенкт в самом первом сообщении)

Ознакомился я тут с документом:
"Adding Generics to the Java Programming Language:
Public Draft Specification, Version 2.0"

Документ описывает как надо синтаксически строить типизированные классы, методы, эксепшены и выражения. Весь документ привести достаточно проблематично - там более 20 страниц.

Самое главное - тем, кто работал с теплэйтами в С++ будет не сложно понять синтаксис. Например:

Vector<String>
Collection<Integer>

Но Vector<int> - по спецификаци не проходит. Низя smile.gif. Но скорее всего для вставки в объявление Vector<Integer> будет использован autoboxing и потому вставлять целое, думаю, можно будет прямо так - add(101) - число будет автоматом приводится к Integer.

Вот еще пример:
Код

interface ConvertibleTo<T> {
   T convert();
}

class ReprChange<A extends ConvertibleTo<B>,
                             B extends ConvertibleTo<A>> {
   A a;
   void set(B x) { a = x.convert(); }
   B get() { return a.convert(); }
}


Короче, документ достаточно интересный, но опубликовать его реально можно только с разрешения SUN и мне бы не хотелось ругаться с такой уважаемой фирмой.

Автор: Sun 3.12.2003, 11:44
Забавная ситуация. Сначала компания Sun стремилась сделать Java как можно проще и не внесла кучу фичек из C++, а теперь идет обратным путем, делая Java все больше похожим на С++. Интересно что на очереди? Перегрузка операторов? Препроцессор? Множественное наследование? cool.gif

Автор: ElectricalStorm 4.2.2004, 15:49
вот примеры использования

JDK 1.5 has some very useful enhancements.
Autoboxing

1. Java's distinction between primitive types and their equivalent Object types was painful. Fortunately, with the advent of autoboxing, that will become a fading memory.

Код

// automatically convert one type to another
Integer integer = 1;
System.out.println(integer);

// mix Integer and ints in the same expression
int i = integer + 3;
System.out.println(i);


Sample output:
1
4

2.Collections
The collections framework is greatly enhanced by generics, which allows collections to be typesafe.

Код

LinkedList<String>  stringList  = new LinkedList<String>();
stringList.add("of");
stringList.add("course");
stringList.add("my");
stringList.add("horse");

Iterator<String> iterator = stringList.iterator();
  while(iterator.hasNext())
     System.out.print(iterator.next() + " ");


Sample output:
of course my horse


3.Enhanced for loop
Код

int array[] = {1, 2, 3, 4};
int sum = 0;
for (int e : array)  // e is short for element; i would be confusing
   sum += e;
System.out.println(sum);


Sample output:
10

4.Enums

Java programmers rejoice with the availability of enums.

Код

enum Suit { clubs, diamonds, hearts, spades };
for (Suit suit : Suit.values())
   System.out.println(suit);


Sample output:
1
2
3
4

Here is a more complex example.
Код

enum Coin {
   penny(1), nickel(5), dime(10), quarter(25);
   Coin(int value) { this.value = value; }
   private final int value;
   public int value() { return value; }
};
for (Iterator<Coin> i = Arrays.asList(Coin.values()).iterator();
    i.hasNext(); ) {
   Coin coin = i.next();
   System.out.print(coin + " ");
}


Sample output:
penny nickel dime quarter
Importing Static Members

5.No longer is it necessary to write

Math.abs(x) Math.sqrt(x) Math.max(a, b)
We can now import once and write it like this:

Код

double x = 16.0, a = 2.2, b = 3.3;
System.out.println(abs(x));
System.out.println(sqrt(x));
System.out.println(max(a, b));


Sample output:

16.0
4.0
3.3

6. Variable Arguments
This is just using ellipses as syntactic sugar for arrays.

Код

public class Test {
 // main() looks different, doesn't it?
 // try changing the runtime arguments above and rerun
 public static void main(String... args) {
    System.out.println(args.length + " arguments");
 }
}

Sample output:

3 arguments
Word Frequency Counter


7.Based on Josh Bloch's word frequency counter, corrected so that it works.

Код

import java.text.*;
import java.util.*;

public class Freq {
   public static void main(String args[]) {
      Map<String, Integer> m = new TreeMap<String, Integer>();
      for (String word : args) {
          Integer count = m.get(word);
          if (count==null)
              count = 0;
          m.put(word, count + 1);
      }
      System.out.println(m);
   }
}

Автор: ElectricalStorm 4.2.2004, 15:50
Самое главное забыл smile.gif
взято вот отсюда http://zamples.com/JspExplorer/samples/samplesJDK1_5.html

Автор: Sardar 4.2.2004, 18:57
У меня сложилось впечатление, что сам байткод не изменится.
Пункты:
1 - автоматизировали приведение к типу
3 - по моему результатом будет класс
4 - обьекты оболочки по прежнему будут создаватся, что плохо ИМХО
Переменное количество аргументов в функциях - интересно а сам массив где будет создаватся, в стеке?
Пример с ConvertibleTo - что то мощное... и возможно ведущее к ошибкам компиляции...
Теперь компилятор будет больше делать рутинной работы.

Но сердце радуется любым улучшениям языка, глубоко меня изменившего biggrin.gif.

Автор: foRaver 6.2.2004, 18:30
И ещё несколько довольно приятных нововведений: теперь JRE весит всего 88 Mb (до этого 126 Mb), J2SDK - 306 Mb (до этого 425 Мb). Вот так вот.

Чуть не забыл: отличия между Java 1.5 и предыдущими версиями (в плане синтаксиса и т.п) можете посмотреть сдесь: http://java.sun.com/developer/technicalArticles/releases/j2se15/#ease
(очень даже меня это порадовало biggrin.gif)

Автор: DarkDS 7.2.2004, 00:39
Цитата(foRaver @ 6.2.2004, 18:30)
И ещё несколько довольно приятных нововведений: теперь JRE весит всего 88 Mb (до этого 126 Mb), J2SDK - 306 Mb (до этого 425 Мb). Вот так вот.

Чуть не забыл: отличия между Java 1.5 и предыдущими версиями (в плане синтаксиса и т.п) можете посмотреть сдесь: http://java.sun.com/developer/technicalArticles/releases/j2se15/#ease
(очень даже меня это порадовало biggrin.gif)

Хммм.. И где ты такие большие СДК находил? У меня вот 1.3.1_10 весит всего 60 метров.

Автор: DarkDS 7.2.2004, 00:44
С java.sun.com - download:
Цитата

Java™ 2 SDK, Standard Edition 1.4.2_03
Windows Platform
        Windows Offline Installation, Multi-language (j2sdk-1_4_2_03-windows-i586-p.exe, 48.30 MB) 

Автор: foRaver 11.2.2004, 17:31
Цитата(DarkDS @ 7.2.2004, 00:39)
Хммм.. И где ты такие большие СДК находил? У меня вот 1.3.1_10 весит всего 60 метров.

Это у тебя 1.3.1_10 весит, а столько у меня 1.4.2_03 весило. В этой версии было добавленно больше классов, поэтому так и весит. Далеко за примером ходить ненадо: стояло у меня на компе.

Вот только ещё одня очень хорошая особенность J2SDK 1.5 это быстродействие! Да, именно: быстродействие. Программы просто летають по сравнению с предыдущими вериями. К томуже SUN видимо изменили библиотеки AWT и Swing, потомучто программы с GUI выглядят теперь совершенно по другому. Более приятно, так сказать inlove.gif

Na самом деле, лучший способ убедиться в моих словах, просто поставить себе J2SDK 1.5 и не мучаться. Я очень рад на самом деле и советую другим thumbs-up.gif

Автор: DarkDS 11.2.2004, 19:02
Цитата(foRaver @ 11.2.2004, 17:31)
Это у тебя 1.3.1_10 весит, а столько у меня 1.4.2_03 весило. В этой версии было добавленно больше классов, поэтому так и весит. Далеко за примером ходить ненадо: стояло у меня на компе.

АХа... Только при данлоаде с Сана он предлагает скачать всего _48_ метров (посмотри на пост выше)

Автор: foRaver 11.2.2004, 22:02
хм, странно... попробуй поставить с помощью полной онлине инсталляции.. может добьёшcя эффекта, но своим глазам я доверяю.

Автор: Domestic Cat 13.9.2004, 16:54
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/language/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/language/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/language/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/language/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/language/static-import.html
Мое отношение: отрицательное smile.gif
- И как потом разобраться откуда взялась PI?
-------------------
Изменениям подверглись множество базоvых пакетов, скажем в JDBC добавлен RowSet. См.
http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html
Каково ваше отножение к изменениям в языке? Хорошо это или плохо?
Добавлено @ 17:01
-------------------------------------------------------------------



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

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

Автор: sergejzr 13.9.2004, 18:37
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

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

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

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

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

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

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

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

Эту статью уже как-то обсуждали. Автор НИКОГДА не программировал на JAVA - о чем можно говорить.

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

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

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

Автор: Gretchen 20.9.2004, 16:56
Цитата(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. И всегда авторы прикрываются мнением настоящих бывалых хакеров.

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

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

Автор: Domestic Cat 20.9.2004, 22:27
А я не согласен и с самой статьей - про то, какими будут языки через сто лет.
Собственно, и статьи то никакой нет. Есть несколько утверждений, вокруг которых
Грем накручивает болтологию:
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. "Возможно, не будут использоваться числа". К сожалению, за тысячи лет
человечество не изобрело ничего лучшего, как дискретная запись информации - книги,
пластинки, магнитные или оптические поверхности, итп. Связано это с нашим восприятием мира
(дискретным). Понятно, что есть "непрерывные" поля (электромагнитное, гравитационное).
Есть математические объекты - непрерывные функции. Но все равно, такая функция нафик не
нужна, пока мы не подставим в нее дискретное значение и получим дискретный ответ.
Не будет никаких "принципиально новых" языков.

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

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

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

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

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

Если хочется пообсуждать на тему "JAVA это хорошо или плохо" открывайте новый топик.

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

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

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

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

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

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)