Collection Streams, introduced in Java 8, requires a software developer to start thinking in declarative paradigm. For one who has been accustomed to the imperative paradigm, writing declarative code is not immediately intuitive. My goal from this talk to help the attendees make the transition to the new paradigm easy and start harnessing the power of Streams.
– Solving a problem declarative style
– External Iteration and Internal Iteration
– Stream as a Builder
– Intermediate Operations (filtering, slicing, mapping)
– Terminal Operation (reduction and collection)
– Reduction (finding, matching)
– Collection (Collectors, grouping and downstream)
As hardware keeps becoming massively parallel and as modern software development methodologies like Agile keep maturing, programming languages and their runtime environments are attracting unprecedented focus. Programming languages are expected to act as brokers between the solutions to business problems and the hardware environments where these solutions are realised. The one programming paradigm that has been receiving a lot of oxygen in the recent past is that of Functional Programming. In fact, Java’s introduction of lambdas offers quite a significant hint about the times to come.
Functional programming is good old concept. Functional programming languages have existed for around six decades now. It is important to appreciate why functional programming is picking up steam in the current times. Functional languages offer programmers a plethora of features that making programming a very pleasurable experience. What makes the functional paradigm so different from the imperative paradigm? Why is functional programming getting lucrative today? We intend to present a study of popular functional languages – their history, their hallmark features, the state-of-the-art features and where the functional paradigm, as a whole, is poised to go. We also intend to do some live-coding in languages purely functional languages to elucidate certain characteristics of functional languages.
Areas covered during the talk:
● What is Live stream?
● Some video domain terminology like RTSP, HLS, DVR, Player, Transcoding, Adaptive bitrate etc
● Architecture of the application
● Challenges faced while scaling the application
● Load stats and success stories
● How we used prediction.io for generating recommendations: Recommendation system on Grails
● Use of hadoop and spark for realtime processing
● Better understanding of Video domain based and live streaming applications
● Getting started with Micro services
● How one can quickly move away from Monolith
● Spending less and still not using the Monolith approach
● How one can scale the application quickly to handle load
● On demand scaling : Auto scaling