22 February 2026
BreakPointLocator: The Pattern That Can Save Your Team Weeks of Work
22 January 2026
In 2009, Final Interfaces were a concept, and many years later Java got Sealed Types
19 January 2026
Java Proposal: The Glue Classes - Explicit, Modular Type Extension
This post was rewritten to be usable as a prompt !
Objects.requireNonNull(some);
final A a = some.getA();
Objects.requireNonNull(a, "explanation");
validate(a);
final B b = a.getB();
Objects.requireNonNull(b, "explanation");
b.process(param1);
Same code written using glue:
some..ensureNotNull()//
.getA()..ensureNotNull("explanation")..ensureValid()//
.getB()..ensureNotNull("explanation")//
..process(param1..ensureNotNull());
10 January 2026
13 July 2010
Javarsovia 2010 z drugiej ręki
Odczucia
- Z niecierpliwością czekam na następną Javarsovie, co moim zdaniem samo z siebie świadczy o tym jak bardzo byłem zadowolony z uczestnictwa.
- Afterparty także pobiło moje oczekiwania, tylko prelegentów na niej trochę brakowało.
- Dodatkowo byłem pod wrażeniem liczby uczestników.
- Na pewno niewybaczalnym jest fakt, że nie wygrałem Asusa.
- Tak wiele się działo, że brakowało mi czasu, aby dokładnie zapoznać się ze stoiskami sponsorów.
12 July 2010
GUI in GridBagLayout
Basically, I do not like GridBagLayaout, but from my point of view it's the most effective way to build and maintain GUI. So before explaining my point of view, let's eliminate other path.
20 February 2010
Forwarding exceptions as language potential
Each of Java programmer knows how exhausting a handing exception can be. So sooner on later he/she founds the situation when he/she exactly knows that he/she is handling the exception that will never occur. Some thoughts about this can be found here.
14 February 2010
The '!' logical-complement operator (fixed)
It's high time to clear doubts about: The '!' logical-complement operator. With little help of someone who can express himself more clearly, subject should be easier to follow.
Some time ago I used to know all operators priorities in C++, using a minimal number of braces resulted with a quite compact code in logical cases. It was really easy to read that again, but only for me, what I did not see as a problem. When I started to work on the same code with others there were no turn back and I had to make conditions more readable...
18 December 2009
The logical-complement operator !
Maybe I'm weird but I really do not like syntax for this operator.
15 October 2009
4 October 2009
I just killed Eclipse
I like enum-s more than most people do.
They are really nice to use and synchronization-safe. But as I found, they have their limits as well.
After generating 1,8Mb Java code for one enum Eclipse dying after most try of refactorization ;), Java was not happy at all about it as well with error:
The code for the static initializer is exceeding the 65535 bytes limit30 March 2009
27 March 2009
26 March 2009
'final' without explicit type proposal
OVERVIEW
FEATURE SUMMARY:
MAJOR ADVANTAGE:
It allows people to concentrate on logic during operating on heavy generics and to use values which are more intuitive for them than variables.
MAJOR BENEFIT(s):
- It allows to avoid duplicating unnecessarily types of declaration.
- It increase a concentration on 'what I've got' than on 'what type is that' (we decrease size by one to obtain last element index, not because we can do this = it's int), while for variables we still keep concentrate on: 'what type is that' / 'what I can put there'.
- Editing existing code to get some value from method chain is easier.
- That method can be itself multi-thread with this, but it's a far future.
- Using of Generics is easier.
MAJOR DISADVANTAGE:
- Certainly, some people will overuse this solution.
- Consider operator is easier to read.
- It might be a problem if a person does not know how to give proper names for values.
ALTERNATIVES:
Normal variables.
20 March 2009
Glue classes proposal 0.9
OVERVIEW
FEATURE SUMMARY:
MAJOR ADVANTAGE:
MAJOR BENEFIT(s):
- New functions can be easy localized (critically important while introduce new peoples into project).
- Security: glue class do not see anything protected.
- Light binding new functions with existing classes.
- Number of used classes reduction.
- Allow to assign methods and functions(static methods) to arrays, classes, interfaces, …
- It's proof against same method occurs in class and delegator as well like in two delegators.
- Allow to link gained(.jar) logic with new one, witch is impossible before final developer implements his classes.
- Allow to project compact interfaces and do not worry about additional logic.
MAJOR DISADVANTAGE:
Do not know any ;) sorry.
ALTERNATIVES:
Utils classes, more work on project, duplicated code...
15 March 2009
Return 'this' proposal
GENESIS
It's a simplified 'This' type problem, which seems to be too much complicated as for now and need more analyses. Construction is designed not to interact with possibility that 'This' type will be introduced.
OVERVIEW
FEATURE SUMMARY:
It allows the method to return reference to 'this' object.
MAJOR ADVANTAGE:
Simplification of return this; statement.
'void' can be easy replaced with 'this'.
MAJOR BENEFIT(s): It would prevent NullPointerException, and make some 'builder' like interfaces look really clear and simple.
MAJOR DISADVANTAGE:
Returned value cannot be changed while inheritance.
ALTERNATIVES:
Self-bounded generics, This type.
14 March 2009
Read-only & Partial arrays proposal
Instrukcje
Tworzenie tablic do odczytu pozwoliło by zwiększyć szybkość jak i bezpieczeństwo pisanych programów. Była by to zwykła tablica tworzona na podstawie już istniejącej bez możliwości modyfikacji jej stanu.
Tablice częściowe tworzone na tablicach do odczytu pomogły by zmniejszyć ryzyko popełnienia błędu dostępu do niewłaściwego obszaru tablicy oraz zmniejszyło by zużycie pamięci.
12 March 2009
Glue classes proposal beta
OVERVIEW
Notice that it's beta specification: it's not described in full details, half validated (translation), and it's provided for you to pre-analyse. I still need some time to provide syntax which fully supports generics. Multi-glue classes are under consideration as well, but this may occur to be to complex to handle by any earth living programmer.
FEATURE SUMMARY:
Glue classes allow to link utils direct with objects.
MAJOR ADVANTAGE:
Forgotten functionality can be not such big deal now.
MAJOR BENEFIT(s):
- New functions can be easy localised (critically important while introduce new peoples into project).
- Security: glue class do not see anything protected.
- Light binding new functions with existing classes.
- Number of used classes reduction.
- Allow to assign methods and functions(static methods) to arrays, classes, interfaces, …
- It's proof against same method occurs in class and delegator as well like in two delegators.
- Allow to link gained(.jar) logic with new one, witch is impossible before final developer implements his classes.
- Allow to project compact interfaces and do not worry about additional logic.
MAJOR DISADVANTAGE:
Do not know any ;) sorry.
ALTERNATIVES:
Utils classes.
11 March 2009
Consider operator proposal
OVERVIEW
FEATURE SUMMARY:
Consider operator extends language with full value support and assign value to name and return it.
MAJOR ADVANTAGE:
It introduces natural division in variables and values.
MAJOR BENEFIT(s):
- If we need to get a value, we can do that quite simple (without splitting expression or duplicating code).
- Decrease number of potential bugs (value cannot be assigned).
- It can help in splitting code to proper parts; nowdays, we need to declare variable regardless we need it or not (or make it final).
- Decrease size of unnecessary code.
- Method can be itself multi-thread with this, but it's far future.
MAJOR DISADVANTAGE:
Possibility to be unclear at start.
ALTERNATIVES:
Some time 'final' variables can be used, but it's more like for-each, life is better with it.
10 March 2009
Delegation proposal
OVERVIEW
FEATURE SUMMARY:
This change allow to delegate methods, interfaces and classes.
MAJOR ADVANTAGE:
It would be a first step for programmers to have something instead of inheritance, allowing to write better code.
MAJOR BENEFITS:
Java looks incomplete without something so base as delegating. Others are:
- Code more immune for changes(if interface changes, there will be not so much to change, or I would say, changes will be on the right place, but not on all projects)
- Decreasing costs of code modification.
- Explicit defining MethodModifiers
MAJOR DISADVANTAGE:
Changes cost.
ALTERNATIVES:
It's nothing that cannot be implemented in a simple way, but this change does not increase delegation complex, unreadablity, and costs of support with each method.