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

Поиск:

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


Штурман
****


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

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



Почитал я немного про JAVA 1.5, прослезился и решил написать.

Оригинал интервью можно посмотреть здесь
New Java Language Features in J2SE 1.5

Что нового намечается в 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. Также не будут вводится дефолтовые параметры для конструкторов


Вот в принципе и все, что мне лично хотелось бы перечислить.
Спасибо за внимание.
PM MAIL WWW ICQ   Вверх
Sun
Дата 2.12.2003, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


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

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



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


--------------------
Account removed
PM MAIL   Вверх
AntonSaburov
Дата 2.12.2003, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



В 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
PM MAIL WWW ICQ   Вверх
foRaver
Дата 2.12.2003, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 561
Регистрация: 6.7.2003
Где: Düsseldorf

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



спасибо, я думаю эти изменения только улучшат авторитет языка и будут реальным противником для C#, хотя в этом кажется никто никогда не сомневался ! smile.gif
PM MAIL WWW ICQ YIM   Вверх
AntonSaburov
Дата 3.12.2003, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


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

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



Еще по поводу фактически теплэйтов для 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 и мне бы не хотелось ругаться с такой уважаемой фирмой.

PM MAIL WWW ICQ   Вверх
Sun
Дата 3.12.2003, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


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

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



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


--------------------
Account removed
PM MAIL   Вверх
ElectricalStorm
Дата 4.2.2004, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот примеры использования

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);
   }
}



--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
ElectricalStorm
Дата 4.2.2004, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Самое главное забыл smile.gif
взято вот отсюда http://zamples.com/JspExplorer/samples/sam...plesJDK1_5.html


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
Sardar
  Дата 4.2.2004, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



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

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


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
foRaver
Дата 6.2.2004, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 561
Регистрация: 6.7.2003
Где: Düsseldorf

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



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

Чуть не забыл: отличия между Java 1.5 и предыдущими версиями (в плане синтаксиса и т.п) можете посмотреть сдесь: Java 1.5 in a Nutshell (not O'Reillie) from Sun
(очень даже меня это порадовало biggrin.gif)
PM MAIL WWW ICQ YIM   Вверх
DarkDS
Дата 7.2.2004, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

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



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

Чуть не забыл: отличия между Java 1.5 и предыдущими версиями (в плане синтаксиса и т.п) можете посмотреть сдесь: Java 1.5 in a Nutshell (not O'Reillie) from Sun
(очень даже меня это порадовало biggrin.gif)

Хммм.. И где ты такие большие СДК находил? У меня вот 1.3.1_10 весит всего 60 метров.
PM MAIL   Вверх
DarkDS
Дата 7.2.2004, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

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



С 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) 

PM MAIL   Вверх
foRaver
  Дата 11.2.2004, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 561
Регистрация: 6.7.2003
Где: Düsseldorf

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



Цитата(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
PM MAIL WWW ICQ YIM   Вверх
DarkDS
Дата 11.2.2004, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

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



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

АХа... Только при данлоаде с Сана он предлагает скачать всего _48_ метров (посмотри на пост выше)
PM MAIL   Вверх
foRaver
Дата 11.2.2004, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 561
Регистрация: 6.7.2003
Где: Düsseldorf

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



хм, странно... попробуй поставить с помощью полной онлине инсталляции.. может добьёшcя эффекта, но своим глазам я доверяю.
PM MAIL WWW ICQ YIM   Вверх
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   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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