powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Пятничный "что нового узнали за неделю" треп.
25 сообщений из 104, страница 3 из 5
Пятничный "что нового узнали за неделю" треп.
    #38135498
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманустраняющие необходимость каких-либо паттернов и т.п..
rofl, да и вообще best practice хорошим языкам тоже ни к чему.

ЛагманАлсо таки checked exceptions надо убрать из языка
Во-первых спорный вопрос. Во-вторых обратная совместимость и всё такое. И в-третих кому надо, наследуются от RuntimeException и не парятся. Так зачем менять платформу ради того что и без изменений решается?


Лагман, и сделать очень короткий синтаксис для замыканий.
Пофиг на синтаксис. Если оно решит проблему ссылок на методы и свойства, будет круто.
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135553
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Blazkowiczbest practice
Не улавливаю прямой связи с паттернами например, я о том что тупо код короче и закорючек поменьше.
Ну впрочем надежда на реализацию ссылки на метод ).

BlazkowiczТак зачем менять платформу
Кто может наследуется, а кто использует стандартные классы пишет кучи catch (..) { throw new RuntimeException }. Я вот изнасиловал эклипс (для домашнего проекта) и жизнь стала гораздо легче и приятнее )
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135564
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманНе улавливаю прямой связи с паттернами например

Паттерны это типовые подходы. Синтаксис их вообще никак не устраняет.


Лагман, я о том что тупо код короче и закорючек поменьше.

Это можно сказать про любой современный функциональный или скриптовой язык.
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135566
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

так я и не говорил о синтаксисе, в свете "procedure of object"
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135695
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaОзверинПоведайте о новых технологиях, приемах и так далее.
Поделитесь дзеном, только не на 50 страниц, а кратенько, если не сложно.
Внедрил движок правил Drools Expert, правда руки успели добраться только до небольшой его части Decision Tables , в целом описание правил в EXCEL понравилось, можно легко находить общий язык с базинесюзерами. Предметная область была продажа медиа контента, цель внедрения движка правил избавиться от 15 реляционных таблиц(и сопутсвующей тучи java кода и JPA аннотаций) которые использовались для описания запутанной структуры договоров с правообладателями контента. Жалко уже не увижу как будет подниматься репозитарий правил , Drools был мой дембельский аккорд.

Взлетело хоть?)
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135701
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманну т.е. lombok :3

Код: java
1.
2.
3.
4.
5.
@Slf4j
public class Controller {

    public void someMethod() {
        log.debug("someMethod started");



Это правда? Без внедрений логгера и статических полей? lombok - на уровней байт кода меняет что ли?
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135774
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагман"procedure of object"
+1
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135842
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинЛагманну т.е. lombok :3

Код: java
1.
2.
3.
4.
5.
@Slf4j
public class Controller {

    public void someMethod() {
        log.debug("someMethod started");



Это правда? Без внедрений логгера и статических полей? lombok - на уровней байт кода меняет что ли?

Чего-то не прочел, кодогенератор же.
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135886
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Лагман"procedure of object"
+1

Несмотря на то, что рефлексия в java носит слегка иной характер(вызовы через jni), тем не менее, можно ускорить method.invoke() значительно, что по времени приблизиться к прямому вызову(в первом приближении на "подготовительном" setAccessible(true) )
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135904
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
если я правильно уловил мысль, то...
Я бы в первую очередь заботился об удобстве программирования (.... я о том что тупо код короче и закорючек поменьше.....).
Т.к. Java претендует!? не только на серверную платформу, но и на быструю разработку ГУИ.
В ГУИ скорость не важна. Важна способность компилятора помогать не писать рутинный код.
IMHO
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135921
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Озверин,
если я правильно уловил мысль, то...
Я бы в первую очередь заботился об удобстве программирования (.... я о том что тупо код короче и закорючек поменьше.....).
Т.к. Java претендует!? не только на серверную платформу, но и на быструю разработку ГУИ.
В ГУИ скорость не важна. Важна способность компилятора помогать не писать рутинный код.
IMHO

Java не заботится в первую очередь об удобстве, скорее это надежность. Именно по этой причине в java избавили от опасных указателей, исключив достаточно сложно "арифметику" этих самых указателей.
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135940
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинЧего-то не прочел, кодогенератор же.
Посмотрел демо. Не взлетит.
hashCode далеко не всегда такой тривиальный, в случае mutable свойств. Вот в первом примере как узнать использованы ли в hashCode mutable свойства или нет?
Спрятал свойства - молодец. А дебажить потом как? А свойства с firePropertyChanged оно тоже генерит?
Ну, и так далее. Полагаю, по остальным фичам тоже не всё идеально.
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38135950
Фотография schwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинPetro123пропущено...

+1

Несмотря на то, что рефлексия в java носит слегка иной характер(вызовы через jni), тем не менее, можно ускорить method.invoke() значительно, что по времени приблизиться к прямому вызову(в первом приближении на "подготовительном" setAccessible(true) )
О чем спор вообще? Это уже все работает с прошлого лета...
java -versionopenjdk version "1.8.0-ea"
OpenJDK Runtime Environment (build 1.8.0-ea-lambda-nightly-h193-20120624-b45-b00)
OpenJDK Client VM (build 24.0-b07, mixed mode)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class Lambda {
  public static interface Predicate<T> {
    boolean test(T arg);
  }

  public static void main(String[] args) {
    String s1 = "";
    String s2= "asdasasds";
    Predicate<String> p = String::isEmpty;
    System.out.printf("%s - %s\n", s1, p.test(s1));
    System.out.printf("%s - %s\n", s2, p.test(s2));
  }
}



javapjavap -c Lambda$1.class
Compiled from "Lambda.java"
class Lambda$1 implements Lambda$Predicate {
Lambda$1();
Code:
0: aload_0
1: invokespecial #3 // Method java/lang/Object."<init>":()V
4: return

public boolean test(java.lang.String);
Code:
0: aload_1
1: invokevirtual #4 // Method java/lang/String.isEmpty:()Z
4: ireturn

public boolean test(java.lang.Object);
Code:
0: aload_0
1: aload_1
2: checkcast #1 // class java/lang/String
5: invokevirtual #2 // Method test:(Ljava/lang/String;)Z
8: ireturn
}
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136073
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я могу ошибаться, но Лагман вроде говорил об этом:
Delphi:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
объявляем
type
1.  TNotifyEvent = procedure(Sender: TObject) of object;

объявляем в классе:

  private
2.   TNotifyEventMyClick               : TNotifyEvent;
  public
3.   property OnClickMy: TNotifyEvent read TNotifyEventMyClick
  

подписываем класс на данное событие

3. ClassA.NotifyEventMyClick :=  ClassB.ПроцедураС_синтаксисом_of object

Вызываем событие у подписчика:
4        If Assigned(FonEvDblClick_GarCardMain) then
5            OnClickMy(Self);


итого - 5 строк кода для программиста
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136100
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123я могу ошибаться, но Лагман вроде говорил об этом:
По сути тот же observer. Только синтаксис другой, как делегаты в C#.
Petro123итого - 5 строк кода для программиста
Не всё в этой жизни меряется строками.
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136103
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
да....да...
Но всегда были люди, предпочитающие коробку автомат в автомобиле))
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136115
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Но всегда были люди, предпочитающие коробку автомат в автомобиле))
Совершенно не равноценная аналогия.
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136120
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Blazkowicz,
да....да...
Но всегда были люди, предпочитающие коробку автомат в автомобиле))

И все мы знаем, что профессионалы то используют механику ;) (пусть даже и электронную, как в формула 1)
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136129
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет деления на прикладников. Если я еду отдыхать в Московские пробки))). То мне механика не нужна.
Т.е. если я пишу ГУИ (прикладной код без всякого DSL), то мне нужно коротко писать.
Чтобы мысль не растеклась по дереву))
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136148
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123нет деления на прикладников. Если я еду отдыхать в Московские пробки))). То мне механика не нужна.
Т.е. если я пишу ГУИ (прикладной код без всякого DSL), то мне нужно коротко писать.
Чтобы мысль не растеклась по дереву))

Так это вы начали обобщать. но вовремя двинулись к крамоле , вроде: каждый язык реализует цель и под задачи - нужные инструменты ;)
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136335
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,

Круто было бы писать как в js, что-то типа

setter = object.setX; setter.invoke(arg1, arg2, ..)

Понятно что метод можно завернуть, но, если даже мы сделаем класс для оборачивания сеттера, внутри будет поиск метода по имени с валидацией его сигнатуры только в рантайме
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136337
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманКруто было бы писать как в js, что-то типа
setter = object.setX; setter.invoke(arg1, arg2, ..)
Понятно что метод можно завернуть, но, если даже мы сделаем класс для оборачивания сеттера, внутри будет поиск метода по имени с валидацией его сигнатуры только в рантайме
http://earthly-powers.blogspot.com/2012/07/java-8-lambda-and-method-references.html
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136387
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманОзверин,

Круто было бы писать как в js, что-то типа

setter = object.setX; setter.invoke(arg1, arg2, ..)

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

Да само собой круто, но нафига?:)
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136409
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинЛагманОзверин,

Круто было бы писать как в js, что-то типа

setter = object.setX; setter.invoke(arg1, arg2, ..)

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

Да само собой круто, но нафига?:)

Я не в том плане, что это не нужно, а в том, что можно использовать groovy, google guava, jruby и так далее. Все это можно в одном проекте с одним комплиятором(насчет gg - не уверен).
Если уж и ускорять, сам процесс разработки, то как то более глобально: может за счет более плотной интеграции с другими языками, может за счет "встроенных" шаблонов .
...
Рейтинг: 0 / 0
Пятничный "что нового узнали за неделю" треп.
    #38136416
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинДа само собой круто, но нафига?:)
Например, Query Language и binding с compile time проверками.
...
Рейтинг: 0 / 0
25 сообщений из 104, страница 3 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Пятничный "что нового узнали за неделю" треп.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]