Benjamin Winterberg
winterbe.com · Personal blog · on HN since 2014
Benjamin Winterberg writes Java tutorials, covering Java 8 streams and concurrency, Java 11 features and Nashorn.
What HN saysCommenters thank him for the tutorials and cite his Java 8 concurrency guide and Java 11 release summary as helpful.
15HN people shared it
9linked it in comments
22stories submitted
53story points
4 years agolast shared
2014people per year2026
Most-shared posts
- 1Java 8 Tutorial4 people · 14 points · first shared 2014 · discussion on HN
- 2An in-depth look at the Java 8 Stream API4 people · 5 points · first shared 2014 · discussion on HN
- 3Java 11 Tutorial3 people · 2 points · first shared 2018 · discussion on HN
- 4Building Isomorphic Webapps on the JVM with React.js and Spring Boot2 people · 3 points · first shared 2015 · discussion on HN
- 5Java 8 Concurrency Tutorial: Threads and Executors2 people · 2 points · first shared 2015 · discussion on HN
- 6Java 8 Nashorn Tutorial2 people · 1 points · first shared 2014 · discussion on HN
- 7Show HN: The GitHub Matrix1 people · 4 points · first shared 2014 · 3 comments on HN
- 8Java 8 API by Example: Strings, Numbers, Math and Files1 people · 3 points · first shared 2015 · discussion on HN
- 9Avoiding Null Checks in Java 81 people · 3 points · first shared 2015 · discussion on HN
- 10Java 8 Concurrency API: Synchronization, Locks and Semaphores1 people · 3 points · first shared 2015 · discussion on HN
- 11Fixing Java 8 Stream Gotchas with IntelliJ IDEA1 people · 3 points · first shared 2015 · discussion on HN
- 12Searchable Javadoc – A proposal for JEP-2251 people · 2 points · first shared 2014 · discussion on HN
- 13Java 8 Concurrency API: Atomic Variables and ConcurrentMap1 people · 2 points · first shared 2015 · discussion on HN
- 14Integrating React.js into Existing JQuery Web Applications1 people · 2 points · first shared 2015 · discussion on HN
- 15Functional Programming in Kotlin with Sequences1 people · 2 points · first shared 2018 · discussion on HN
What HN people wrote when they linked it
hitekker · 2015-11-16
Thanks for your hard work here!
Side note: http://winterbe.com looks quite similar to angel.co. Or does angel.co look quite similar to your website? :-)
hn_throwaway_99 · 2021-10-20
As someone who originally would have strongly agreed with you, I think there is actually huge benefits to thinking in this "streaming" mindset.
That is, the first place I really encountered code like this was when Java introduced streams [1]. I wasn't used to programming like this when I first experienced this code, and at first I found it harder to read; it felt obfuscated.
As I got more used to it, though, I started to love it. There are tons of operations in programming like this, where you're really just performing a successive series of transformations on a set of data. Obviously functional programmers are familiar with this, but this is also the paradigm for shell programming, where you're just piping stdout to the next small little program in the chain.
The thing is, now I really feel a bit of a "switch" in my brain when I read code like this. That is, whenever I see this, I'm just like "OK, doing a whole bunch of data processing from some input set to a final output". Over time, when done correctly, I actually find this easier to read, with less verboseness, because my brain already has tons of context about what's going on.
1. Some Java streams examples, https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/
emdashcomma · 2023-03-21
Here are some resources I've found helpful and have read or are on my backlog to catch up with these developments:
- https://github.com/wesleyegberto/java-new-features (terse, includes links to JEPs, good jumping off point)
- https://github.com/winterbe/java8-tutorial (quick tour through features of Java 8)
- https://winterbe.com/posts/2018/09/24/java-11-tutorial/ (same for Java 11)
Books:
- Java 8 in Action / Modern Java in Action (Raoul-Gabriel Urma, Alan Mycroft, Mario Fusco; 2014 and 2018 respectively)
- The Well-Grounded Java Developer (Martijn Verburg, Benjamin Evans, Jason Clark; 2022) - not specifically focused on new features but does cover them in the context of going deeper into Java and the JVM.
winterbe · 2018-09-25
I wrote a user friendly version of the release notes. Maybe this is useful to someone:
https://winterbe.com/posts/2018/09/24/java-11-tutorial/
jat850 · 2017-01-18
I've spent the past 4-5 days going over and over this page:
http://winterbe.com/posts/2015/04/07/java8-concurrency-tutorial-thread…
Talks about some other useful topics as well. It's probably not news to everyone, but the third part covers a fair bit of CM/CHM.
amake · 2016-10-27
As of Java 8, the Nashorn JavaScript engine is included by default, and it does support JSON parsing.
[1] http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/
Brabon · 2016-03-01
Yeah, I can't imagine why someone would want to write stuff that looks like this.
http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/
bewe42 · 2015-12-10
Start with this: http://winterbe.com/posts/2014/03/16/java-8-tutorial/
sev · 2014-03-18
For those who may not have seen it, here's a good primer/tutorial for Java 8:
http://winterbe.com/posts/2014/03/16/java-8-tutorial/