• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Hi Ben :: Regarding your book :: A Functional approach to Java

 
Ranch Hand
Posts: 603
  • Number of slices to send:
    Optional 'thank-you' note:
Hi ben,
1. how is your functional programming book different from other books like Java 8 in action

2.what are the positive takeaways from the book

3.Could you give me some insights about the book -> A Functional approach to Java

4.can you explain any concept from your book with a java 8 example


Thanks and Regards,
Deepak Lal

 
Marshal
Posts: 79392
377
  • Number of slices to send:
    Optional 'thank-you' note:

Deepak Lal wrote:. . . different from other books like Java 8 in action . . .

I presume you mean Urma Fusco and Mycroft's book. Excellent book. I have a copy and also a copy of its newer edition.
Urma Fusco and Mycroft introduce the new features of java8/9 and say relatively little about functional pogramming.
 
Author
Posts: 28
9
  • 2
  • Number of slices to send:
    Optional 'thank-you' note:
Hi Deepak!

Deepak Lal wrote:
1. how is your functional programming book different from other books like Java 8 in action



In another post, I compared it to Pierre-Ives Saumont's "Functional Programming with Java". In essence, it approaches its topic more from the Java side of view and how a "typical OO/imperative-focused " Java dev can utilize the new tools since Java 8+ to incorporate FP(-akin) techniques.

Compared to "Java 8 in Action", my book doesn't use an exercise/answer or recipe-like style, as I don't like that very much in books I read myself.
I like to discuss features under the focus of the benefits of functional principles, and present the pros and cons, and if available, what's on the horizon in upcoming JDKs.



2.what are the positive takeaways from the book



Hopefully, the readers will see the benefits of a more functional approach, even in a language like Java that's, let's be honest, not the best choice for functional programming if you can choose any language you want.
But a functional mindset is the first step to benefiting from functional concepts and principles even without needing to go fully functional.
Things like immutability with Records, declarative data processing with Streams, or improved null-handling with Optionals are great features, even in non-functional code.



3.Could you give me some insights about the book -> A Functional approach to Java



I'm not sure I understand the question or how to answer it...
The page in my signature has the table of contents and what you'll learn.
The book's repository is split into the same parts/chapters as the book and shows how I approach the topics.


4.can you explain any concept from your book with a java 8 example



I think a full-blown example might be too big for a post, but I try to explain how to improve null-handling with Optionals
Think of this code for loading content from a database:



It's a lot of lines for a mix of null- and data-checks, and you still have to check the returned content.

With Optionals, on the other hand, you have a scaffold a value can traverse and be transformed in a fluent code.
This leads to less code that's even more straightforward and easier to reason with:



The code does the same as before, but uses an Optional to wrap up the content.
The JDK now does all the check in the different operations of the Optional pipeline, with little noise thanks to method references.

You still have to check for the existence of the content, but now you have a declarative jump-off point instead of a "dead end" if-null-check.

This is a way how approached many topics.
First, discuss a problem and how it's done without any of the Java 8+ features or functional principles in mind.
Next, how can we improve it.
And last, what new problems might arise, or what you have to look out for.





 
Deepak Lal
Ranch Hand
Posts: 603
  • Number of slices to send:
    Optional 'thank-you' note:
Thank you for the clarifications Ben !!!
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic
vceplus-200-125    | boson-200-125    | training-cissp    | actualtests-cissp    | techexams-cissp    | gratisexams-300-075    | pearsonitcertification-210-260    | examsboost-210-260    | examsforall-210-260    | dumps4free-210-260    | reddit-210-260    | cisexams-352-001    | itexamfox-352-001    | passguaranteed-352-001    | passeasily-352-001    | freeccnastudyguide-200-120    | gocertify-200-120    | passcerty-200-120    | certifyguide-70-980    | dumpscollection-70-980    | examcollection-70-534    | cbtnuggets-210-065    | examfiles-400-051    | passitdump-400-051    | pearsonitcertification-70-462    | anderseide-70-347    | thomas-70-533    | research-1V0-605    | topix-102-400    | certdepot-EX200    | pearsonit-640-916    | itproguru-70-533    | reddit-100-105    | channel9-70-346    | anderseide-70-346    | theiia-IIA-CIA-PART3    | certificationHP-hp0-s41    | pearsonitcertification-640-916    | anderMicrosoft-70-534    | cathMicrosoft-70-462    | examcollection-cca-500    | techexams-gcih    | mslearn-70-346    | measureup-70-486    | pass4sure-hp0-s41    | iiba-640-916    | itsecurity-sscp    | cbtnuggets-300-320    | blogged-70-486    | pass4sure-IIA-CIA-PART1    | cbtnuggets-100-101    | developerhandbook-70-486    | lpicisco-101    | mylearn-1V0-605    | tomsitpro-cism    | gnosis-101    | channel9Mic-70-534    | ipass-IIA-CIA-PART1    | forcerts-70-417    | tests-sy0-401    | ipasstheciaexam-IIA-CIA-PART3    | mostcisco-300-135    | buildazure-70-533    | cloudera-cca-500    | pdf4cert-2v0-621    | f5cisco-101    | gocertify-1z0-062    | quora-640-916    | micrcosoft-70-480    | brain2pass-70-417    | examcompass-sy0-401    | global-EX200    | iassc-ICGB    | vceplus-300-115    | quizlet-810-403    | cbtnuggets-70-697    | educationOracle-1Z0-434    | channel9-70-534    | officialcerts-400-051    | examsboost-IIA-CIA-PART1    | networktut-300-135    | teststarter-300-206    | pluralsight-70-486    | coding-70-486    | freeccna-100-101    | digitaltut-300-101    | iiba-CBAP    | virtuallymikebrown-640-916    | isaca-cism    | whizlabs-pmp    | techexams-70-980    | ciscopress-300-115    | techtarget-cism    | pearsonitcertification-300-070    | testking-2v0-621    | isacaNew-cism    | simplilearn-pmi-rmp    | simplilearn-pmp    | educationOracle-1z0-809    | education-1z0-809    | teachertube-1Z0-434    | villanovau-CBAP    | quora-300-206    | certifyguide-300-208    | cbtnuggets-100-105    | flydumps-70-417    | gratisexams-1V0-605    | ituonline-1z0-062    | techexams-cas-002    | simplilearn-70-534    | pluralsight-70-697    | theiia-IIA-CIA-PART1    | itexamtips-400-051    | pearsonitcertification-EX200    | pluralsight-70-480    | learn-hp0-s42    | giac-gpen    | mindhub-102-400    | coursesmsu-CBAP    | examsforall-2v0-621    | developerhandbook-70-487    | root-EX200    | coderanch-1z0-809    | getfreedumps-1z0-062    | comptia-cas-002    | quora-1z0-809    | boson-300-135    | killtest-2v0-621    | learncia-IIA-CIA-PART3    | computer-gcih    | universitycloudera-cca-500    | itexamrun-70-410    | certificationHPv2-hp0-s41    | certskills-100-105    | skipitnow-70-417    | gocertify-sy0-401    | prep4sure-70-417    | simplilearn-cisa    |
http://www.pmsas.pr.gov.br/wp-content/    | http://www.pmsas.pr.gov.br/wp-content/    |