Lambdas Revisited
Java 8 was released in March 2014 with lambda expressions as its flagship feature. Many people have used them to write more concise and flexible code. Lambda expressions can be combined with the Streams API to express rich data processing queries. Many popular programming languages already had support for "lambdas" aka "closures". Interestingly, many of these languages run on the JVM and Java as the most prominent language running on the JVM did not want to be left behind. Java has provided support for lambdas using an elegant mechanism of "invokedynamics". In addition to this the streams API provided support for concurrent execution of instructions to suit new age parallel pipelined microprocessors. This session does a recap of Lambdas and Streams and their benefits with some practical examples. It then goes on to see how the community has taken these concepts. The excellent support provided by Eclipse for Lambdas will also be covered.
Outline/Structure of the Talk
- Background of Lambdas aka closures.
- Concurrency Challenges in Java
- Structure of Lambda Expressions
- Lambda Expression Types
- Local Variable Capture
- Type Inferrence
- Method and Constructor References
- Functional Interfaces and Invokedynamics
- Streams Overview
- Streams - Sources, Operations
- Practical Examples
- Lambda Expressions with Eclipse IDE
Learning Outcome
Attendees would get to know the reason for introducing Lambdas in Java 8 and the challenges they help to solve. Besides getting to know the structure of Lambda expressions, they would also learn about the way Java implements Lambdas using Functional Interfaces and Invokedynamics. The most prevalent use of Lambdas is in Streams API. Attendees would get to know how to effectively use Eclipse IDE to work with Lambdas.
Target Audience
Developers, Architects
Links
https://www.youtube.com/watch?v=ihIMOn3x36Y&t=38s
http://www.thistechnologylife.com/?p=241
http://www.thistechnologylife.com/?m=201601
http://www.thistechnologylife.com/?p=143
http://www.thistechnologylife.com/?m=201509
http://www.thistechnologylife.com/?m=201407
schedule Submitted 6 years ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Manoj NP / Sasikanth Bharadwaj - JDT Embraces Java 9 - An insider's perspective
Manoj NPCommitterEclipse JDT CoreSasikanth BharadwajSoftware EngineerCommitter, Eclipse JDT Core (IBM)schedule 6 years ago
20 Mins
Talk
Intermediate
Eclipse Java Development Tooling or JDT has its own Java compiler at its core, aptly called the JDT Core consisting of the Java compiler and various tools including java model, search infrastructure, content assist, Abstract Syntax Tree Tools etc. Java 9 is the latest entry in the Java world bringing along-with it a "module" of changes - so to speak. Any change in the language standards affects JDT directly. While some of the earlier language specification changes affected only the compiler, Java 9, in contrast, has a direct impact on user who uses Eclipse IDE for creating and managing Java Projects. Java 9 introduces the concept of "Modules" which affects JDT from the compiler level to the project dependency layer affecting a normal user. Support for this feature will be dealt with, in detail, in this talk.
This talk would start with a brief overview of the Java 9 features especially the "module" feature that have direct impact on Eclipse users, describe the JDT support for features, touch upon some of the design aspects, and would conclude with a demo of Eclipse JDT for Java 9. -
keyboard_arrow_down
Rajesh Sola - Gateway design with Eclipse Kura - Taking to new heights
90 Mins
Tutorial
Intermediate
This talk cum tutorial aims at introducing Eclipse Kura, OSGi based framework for IOT gateway design.It starts with kura architecture and key elements like bundles, services, web admin interface etc. and a tour of available APIs,services for hardware interfacing, wireless connectivity,cloud connectivity and industrial & automotive protocols.The next part proceeds with case study of building custom services,for eg:- adding client support for HTTP REST, InfluxDb in kura.Later few bridging scenarios will be covered on interfacing local networks with IOT Platforms like ThingSpeak, OpenSensors.io etc using these services and also storing data points in a time series at edge/gateway side using InfluxDb as an example.
-
keyboard_arrow_down
Gurpreet Sachdeva - Towards a More Secure JDK
20 Mins
Talk
Advanced
The last few years have seen new computing trends like increased use of mobile devices, big data and a world connected with internet. This has made Java applications vulnerable to threats and attacks. With time, holes get exposed in cryptographic algorithms and security protocols. They then need to be replaced with stronger alternatives. This session will show how safety mechanisms have been built into JDK to automatically protect applications from weak algorithms and protocols such as MD2, MD5, RC4, weak RSA/DSA keys and SSLv3. A wide variety of security controls have been made available which range from automatic defenses to user friendly APIs. Several new security controls have been introduced in Java 8 and Java 9 platforms like SHA-3 hash algorithms, OCSP stapling for TLS and DRBG SecureRandom implementation. This session will benefit Java developers by introducing them of the many defenses present and available in the Java ecosystem.
-
keyboard_arrow_down
Gurpreet Sachdeva - Refactor Code To Java8
45 Mins
Talk
Advanced
Java 8 was released quite a while ago and we are now close to release of Java 9. There are discussions of Java 10 features also. There are many who are still stuck with older versions for various reasons. Many people claim that their code supports Java 8 but they aren't really using the powerful features of Java 8 like lambda expressions, Streams API and the new Date / Time API. This session does a quick recap of the powerful and unique features of Java 8. Tips and techniques to identify areas of code fit for refactoring to Java 8, will be shown. Eclipse can be leveraged to refactor code to use features like lambdas and streams. Pros and Cons of these features would be covered so that an informed decision can be taken whether to refactor or not.
-
keyboard_arrow_down
Deepali Kishnani / Harkirat Singh Lamba - Natural Language Based Query Engine for Eclipse Modeling Framework
Deepali KishnaniSoftware EngineerDell EMCHarkirat Singh LambaAssociate Software EngineerDell EMCschedule 6 years ago
20 Mins
Demonstration
Beginner
Searching in big databases is the need of the hour. With ever growing applications and customer base, quicker search over the data helps you survive. Modeling Frameworks sit at the core of modern software. The increasing complexity of business requirements are reflected in the increasing complexity of the modeling framework. What if you could query the complex models within seconds? This is just one use case of VIATRA Query.
VIATRA Query is an Eclipse project. Initially conceived by the Budapest University of Technology and Economics, VIATRA is an Event-driven and Reactive Model Transformation Platform. We have used VIATRA Query to create a small search engine for Ecore models of EMF using Natural Language Based Rule Engine and would like to share our experience with it.
VIATRA Query enables the user to query the EMF models without having to manually traverse them. Complex queries can be converted into patterns. Parameters to models can be passed at runtime, something which is crucial to any query engine. The idea of creating a search engine using VIATRA Query opens up new and innovative ideas of working with Eclipse Modeling Framework. To know more about the algorithm behind this technology or how we made it work, please join us at the Eclipse 2017 Summit!
-
keyboard_arrow_down
Gunnar Wagenknecht - Eclipse Bundle Recipes
20 Mins
Talk
Beginner
The Eclipse Platform is based on OSGi and OSGi is a model to modularize Java applications at runtime. Unfortunately, not all Java libraries provide the necessary metadata required for OSGi. Thus, if developers want to consume a library, they have to generate the OSGi metadata themselves. This problem is solved by the Eclipse Bundle Recipes project. It provides a library of templates (the “recipes”) and tools that can be used to create OSGi bundles. You have a library that you'd like to use in your OSGi project? Then stop by in this session and see if the Eclipse Bundle Recipes (EBR) project already has a recipe for your. You will learn how easy it is to consume libraries from Maven repositories and turn them into OSGi bundles. We will also demonstrate how the recipes and build system can be deployed in to create bundles at large scale and consumed in your builds. Last but not least, we will also show you how to contribute recipes to the EBR project.