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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> почему нет? operator overloading, Verbatim literals 
:(
    Опции темы
niasilil
Дата 13.3.2008, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Операции с матрицами и векторами как удобно было бы делать если можно было определить свое значение оператора. Кому бы это помешало?!

Verbatim literals - это же вообще безобразие. Почему нет?!

Чего вам лично не хватает в Java? И самое главное - почему это до сих пор не реализовано? 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
serger
Дата 13.3.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я думаю, чем меньше изначально засорен язык конструкциями, тем лучше. А вот хорошая стандартная библиотека намного важнее.


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
w1nd
Дата 14.3.2008, 01:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


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

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



На переопределение операций я соглашусь только в том случае, если компиляторы и ide будут явно указывать на факт переопределения (т. е. соответствующая метаинформация будет внедрена в классы), а также появятся дополнительные возможности по их отладке (это уже больше за счёт ide). Иначе придётся работать только в одиночку smile

Чего не хватает:
  • нормальных шаблонов;
  • множественного наследования;
  • указателей на методы (имеется в виду не указатели в классическом понимании, а конструкция, создающая однозначную ссылку на метод, проверяемую компилятором);
  • деструкторов;


Это сообщение отредактировал(а) w1nd - 14.3.2008, 01:52


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
serger
Дата 14.3.2008, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



> множественного наследования;
> деструкторов;

поясните пож.


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
powerOn
Дата 14.3.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(w1nd @  14.3.2008,  01:51 Найти цитируемый пост)


  • нормальных шаблонов;
  • множественного наследования;
  • указателей на методы (имеется в виду не указатели в классическом понимании, а конструкция, создающая однозначную ссылку на метод, проверяемую компилятором);


полностью согласен. плюс лично мне бы ещё хотелось увидеть параметры по умолчанию.





--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Kangaroo
Дата 14.3.2008, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


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

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



w1nd, 
powerOn, 
а можна, пожалуйста, одно-два предложения по каждому пункту? В общих чертах понятно, но хотелось вас послушать - почему, зачем и т.д.


--------------------
Lost....
PM MAIL MSN   Вверх
Platon
Дата 14.3.2008, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Я бы согласился с пунктами: множественное наследование и деструкторы (для teal-tme это была бы хорошая фишка).
"Указатели на методы", "нормальные шаблоны" не понял
PM MAIL ICQ   Вверх
AlexeyVorotnikov
Дата 14.3.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(w1nd @ 14.3.2008,  01:51)
Чего не хватает:

  • нормальных шаблонов;
  • множественного наследования;
  • указателей на методы (имеется в виду не указатели в классическом понимании, а конструкция, создающая однозначную ссылку на метод, проверяемую компилятором);
  • деструкторов;

Welcome to C++


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
Platon
Дата 14.3.2008, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Java  - вычещенный C++, надо только вернуть приятные фичи.
PM MAIL ICQ   Вверх
AlexeyVorotnikov
Дата 14.3.2008, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Platon @ 14.3.2008,  11:17)
Java  - вычещенный C++, надо только вернуть приятные фичи.

Если вернуть эти приятные фичи, получится опять C++

Это сообщение отредактировал(а) AlexeyVorotnikov - 14.3.2008, 11:27


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
powerOn
Дата 14.3.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(powerOn @  14.3.2008,  09:32 Найти цитируемый пост)
нормальных шаблонов;

Generic - это не шаблон, это механизм контроля типов. Нормальный шаблон в моем понимании это когда на каждый параметризированный класс создается отдельный класс файл полностью содержащий информацию о типах параметров. Мне бы хотелось что бы как минимум была возможность в runtime получать информацию о параметризованном типе. 

Цитата(powerOn @  14.3.2008,  09:32 Найти цитируемый пост)
множественного наследования;

Например есть у вас абстрактные классы, которые содержат логику управления слушателями: MouseListenerSupport, PropertiesListenerSupport и т.д. Каждый из этих классов имеет свои особенности реализации. Вам нужно что бы класс A поддерживал и MouseListenerSupport и PropertiesListenerSupport.
В данном случае, для меня логично использовать множественное наследование: A extends MouseListenerSupport, PropertiesListenerSupport. А приходится использовать делегирование: инкапсулировать экземпляры MouseListenerSupport и PropertiesListenerSupport в класс A и делегировать им соответствующие методы. Получается не код, а мясо, где его быть не должно (хотя свои плюсы в делегации тоже есть).

Цитата(powerOn @  14.3.2008,  09:32 Найти цитируемый пост)
указателей на методы (имеется в виду не указатели в классическом понимании, а конструкция, создающая однозначную ссылку на метод, проверяемую компилятором);

Пока в практике не нуждался в таком, но идея мне нравится. Думаю она бы нашла свое применение.

Цитата(powerOn @  14.3.2008,  09:32 Найти цитируемый пост)
параметры по умолчанию.

Это просто удобно. Кто на С++ раньше писал меня поймут. Код бы выглядел гораздо легче. ИМХО.



--------------------
user posted image нет времени думать - нужно писать КОД!

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


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



AlexeyVorotnikov, я был бы не против вернуться к C++, если бы там синтаксис был почище, а именно отсутствие изобилирующих знаков "->", "&", "*", возможность работать только с cpp файлами, а не с .h и .cpp, возможность прямо указывать интерфейс, абстрактный класс, просто класс. Нравятся inline функции, считаю, что любой getter/setter должен быть inline.
В общем не надо передергивать.

Это сообщение отредактировал(а) Platon - 14.3.2008, 11:36
PM MAIL ICQ   Вверх
Mayk
Дата 14.3.2008, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



В яву деструкторы сложно  вписать, так как в яве по существе нет 
value type'ов,  разрушающихся при выходе из scope'а и 
оператора delete явно уничтожающего объект.
Иными словами в яве попросту не существует мест, откуда следует вызывать деструктор. 

Так что не хватает не деструкторов, а чего-то наподобие using'а в c#


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Platon
Дата 14.3.2008, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Цитата(powerOn @  14.3.2008,  12:33 Найти цитируемый пост)
Это просто удобно. Кто на С++ раньше писал меня поймут. Код бы выглядел гораздо легче. ИМХО.

Поддерживаю, удобная фишка, многие, кто пробовал на Java писать спрашивали, а как там делать пареметры по-умолчанию? И удивлялись, что надо дофига конструкторов/методов делать.
PM MAIL ICQ   Вверх
w1nd
Дата 14.3.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


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

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



Цитата(AlexeyVorotnikov @  14.3.2008,  11:26 Найти цитируемый пост)
Если вернуть эти приятные фичи, получится опять C++

Не совсем так. Точнее, совсем не так. Java - не язык, но ещё и runtime. И имеет свои особенности, которых нет в C++. Добавление некоторые языковых конструкции - это ещё не возврат к C++.

Цитата(powerOn @  14.3.2008,  11:33 Найти цитируемый пост)
Generic - это не шаблон, это механизм контроля типов. Нормальный шаблон в моем понимании это когда на каждый параметризированный класс создается отдельный класс файл полностью содержащий информацию о типах параметров. Мне бы хотелось что бы как минимум была возможность в runtime получать информацию о параметризованном типе. 

Ещё я просто зол на generics smile Очень уж негибко реализованы. Вот примеры:

Код
public abstract class Clazz<T extends Clazz<T>> { // Вполне законный трюк, им пользуются и разработчики java
        
    public void doSomething(T t) {
    }
        
    public void test() {
        doSomething(this); // А вот тут компилятор ругается, хотя для этого нет повода
    }
        
}


Код
public class B {
}
    
public class Clazz {
        
    public void test() {
        LinkedList<? extends B> c1;
        LinkedList<B> c2;
            
        c1.addLast(c2.getFirst()); // Этот номер не пройдёт, ибо тип элементов c1 якобы не определён, ага
        doSomething(c1); // И этот номер не пройдёт по той же липовой причине
    }
        
    public void doSomething(List<B> c) {
        ...        
    }
        
}


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

Цитата(Mayk @  14.3.2008,  11:38 Найти цитируемый пост)
Так что не хватает не деструкторов, а чего-то наподобие using'а в c#

Именно нечто подобное я и имел в виду smile 

Цитата(powerOn @  14.3.2008,  11:33 Найти цитируемый пост)
Пока в практике не нуждался в таком, но идея мне нравится. Думаю она бы нашла свое применение.

Просто мне крайне не нравится, когда в коде создаётся много анонимных классов - читаемость никакая. Например, я сделал для себя класс, который создаёт слушатели событий и биндит их на определённым образом аннотированные методы. Методы при этом задаются только строкой, что не очень удобно.

А ещё было бы неплохо заполучить хоть какой-то подобие макросов. Вот зачем:

Код

// Так просто жутко неудобно.  
SwingUtilities.invokeLater(
    new Runnable() {
        public void run() {
            ...
        }
    }
);

// А вот так было бы значительно удобнее
swingInvokeLater { 
    ...
}


А ещё хотелось бы конструкторов для runtime-аннотаций, чтобы нижеследующий пример работал:

Код
public class Bean {

    @InitFromPreferences("/prefs/user/option") private String option;

}



Это сообщение отредактировал(а) w1nd - 14.3.2008, 12:47


--------------------
user posted imageuser posted image
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.1256 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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