際際滷shows by User: nainostrebor / http://www.slideshare.net/images/logo.gif 際際滷shows by User: nainostrebor / Fri, 19 May 2023 15:24:14 GMT 際際滷Share feed for 際際滷shows by User: nainostrebor KotlinForJavaDevelopers-UJUG.pptx /slideshow/kotlinforjavadevelopersujugpptx/257920536 kotlinforjavadevelopers-ujug-230519152414-36d36a48
Kotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax. This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways.]]>

Kotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax. This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways.]]>
Fri, 19 May 2023 15:24:14 GMT /slideshow/kotlinforjavadevelopersujugpptx/257920536 nainostrebor@slideshare.net(nainostrebor) KotlinForJavaDevelopers-UJUG.pptx nainostrebor Kotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax. This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/kotlinforjavadevelopers-ujug-230519152414-36d36a48-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Kotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax. This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways.
KotlinForJavaDevelopers-UJUG.pptx from Ian Robertson
]]>
22 0 https://cdn.slidesharecdn.com/ss_thumbnails/kotlinforjavadevelopers-ujug-230519152414-36d36a48-thumbnail.jpg?width=120&height=120&fit=bounds presentation White http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Lambda Chops - Recipes for Simpler, More Expressive Code /slideshow/lambda-chops-recipes-for-simpler-more-expressive-code/80471470 lambdachops-171004204510
While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.]]>

While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.]]>
Wed, 04 Oct 2017 20:45:10 GMT /slideshow/lambda-chops-recipes-for-simpler-more-expressive-code/80471470 nainostrebor@slideshare.net(nainostrebor) Lambda Chops - Recipes for Simpler, More Expressive Code nainostrebor While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/lambdachops-171004204510-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy&#39;s null-safe navigation operator, we&#39;ll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We&#39;ll also look at some of the limitations of lambdas, and some techniques for overcoming them.
Lambda Chops - Recipes for Simpler, More Expressive Code from Ian Robertson
]]>
604 4 https://cdn.slidesharecdn.com/ss_thumbnails/lambdachops-171004204510-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Science andartofbackwardscompatability /slideshow/science-andartofbackwardscompatability/66232978 scienceandartofbackwardscompatability-160920213434
One of the most common pitfalls developers face on larger projects is backward compatibility. This session shows how to ensure that new versions of a library do not break either source backward compatibility, binary backward compatibility, or behavioral backward compatibility. After reviewing what each type of compatibility means and why it is important, the presentation covers requirements for each type, along with ways to meet these requirements. The main areas of interest are API evolution and evolving classes in a way that does not break wire compatibility for Java Serialization. The session also presents techniques for verifying backward compatibility through regression tests.]]>

One of the most common pitfalls developers face on larger projects is backward compatibility. This session shows how to ensure that new versions of a library do not break either source backward compatibility, binary backward compatibility, or behavioral backward compatibility. After reviewing what each type of compatibility means and why it is important, the presentation covers requirements for each type, along with ways to meet these requirements. The main areas of interest are API evolution and evolving classes in a way that does not break wire compatibility for Java Serialization. The session also presents techniques for verifying backward compatibility through regression tests.]]>
Tue, 20 Sep 2016 21:34:34 GMT /slideshow/science-andartofbackwardscompatability/66232978 nainostrebor@slideshare.net(nainostrebor) Science andartofbackwardscompatability nainostrebor One of the most common pitfalls developers face on larger projects is backward compatibility. This session shows how to ensure that new versions of a library do not break either source backward compatibility, binary backward compatibility, or behavioral backward compatibility. After reviewing what each type of compatibility means and why it is important, the presentation covers requirements for each type, along with ways to meet these requirements. The main areas of interest are API evolution and evolving classes in a way that does not break wire compatibility for Java Serialization. The session also presents techniques for verifying backward compatibility through regression tests. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/scienceandartofbackwardscompatability-160920213434-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> One of the most common pitfalls developers face on larger projects is backward compatibility. This session shows how to ensure that new versions of a library do not break either source backward compatibility, binary backward compatibility, or behavioral backward compatibility. After reviewing what each type of compatibility means and why it is important, the presentation covers requirements for each type, along with ways to meet these requirements. The main areas of interest are API evolution and evolving classes in a way that does not break wire compatibility for Java Serialization. The session also presents techniques for verifying backward compatibility through regression tests.
Science andartofbackwardscompatability from Ian Robertson
]]>
139 3 https://cdn.slidesharecdn.com/ss_thumbnails/scienceandartofbackwardscompatability-160920213434-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Supercharging reflective libraries with InvokeDynamic /nainostrebor/supercharging-reflective-libraries-with-invokedynamic invokedynamic-141001111816-phpapp02
Reflection is a powerful tool but has traditionally carried with it a performance penalty. This session shows how a combination of InvokeDynamic and bytecode generation can be used to transform a traditional reflection-based library into one in which there is almost no performance penalty. To do so, the presentation starts with a brief need-to-know overview of JVM bytecode and the InvokeDynamic protocol. It then walks through creating a simple JSON marshaling library by using ASM bytecode generation and InvokeDynamic and shows how hand-rolled marshaling code can be rivaled in performance. Techniques for testing this code, including security policies, are also covered.]]>

Reflection is a powerful tool but has traditionally carried with it a performance penalty. This session shows how a combination of InvokeDynamic and bytecode generation can be used to transform a traditional reflection-based library into one in which there is almost no performance penalty. To do so, the presentation starts with a brief need-to-know overview of JVM bytecode and the InvokeDynamic protocol. It then walks through creating a simple JSON marshaling library by using ASM bytecode generation and InvokeDynamic and shows how hand-rolled marshaling code can be rivaled in performance. Techniques for testing this code, including security policies, are also covered.]]>
Wed, 01 Oct 2014 11:18:16 GMT /nainostrebor/supercharging-reflective-libraries-with-invokedynamic nainostrebor@slideshare.net(nainostrebor) Supercharging reflective libraries with InvokeDynamic nainostrebor Reflection is a powerful tool but has traditionally carried with it a performance penalty. This session shows how a combination of InvokeDynamic and bytecode generation can be used to transform a traditional reflection-based library into one in which there is almost no performance penalty. To do so, the presentation starts with a brief need-to-know overview of JVM bytecode and the InvokeDynamic protocol. It then walks through creating a simple JSON marshaling library by using ASM bytecode generation and InvokeDynamic and shows how hand-rolled marshaling code can be rivaled in performance. Techniques for testing this code, including security policies, are also covered. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/invokedynamic-141001111816-phpapp02-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Reflection is a powerful tool but has traditionally carried with it a performance penalty. This session shows how a combination of InvokeDynamic and bytecode generation can be used to transform a traditional reflection-based library into one in which there is almost no performance penalty. To do so, the presentation starts with a brief need-to-know overview of JVM bytecode and the InvokeDynamic protocol. It then walks through creating a simple JSON marshaling library by using ASM bytecode generation and InvokeDynamic and shows how hand-rolled marshaling code can be rivaled in performance. Techniques for testing this code, including security policies, are also covered.
Supercharging reflective libraries with InvokeDynamic from Ian Robertson
]]>
1388 3 https://cdn.slidesharecdn.com/ss_thumbnails/invokedynamic-141001111816-phpapp02-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
https://cdn.slidesharecdn.com/profile-photo-nainostrebor-48x48.jpg?cb=1684509817 http://www.artima.com/weblogs/index.jsp?blogger=ianr https://cdn.slidesharecdn.com/ss_thumbnails/kotlinforjavadevelopers-ujug-230519152414-36d36a48-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/kotlinforjavadevelopersujugpptx/257920536 KotlinForJavaDeveloper... https://cdn.slidesharecdn.com/ss_thumbnails/lambdachops-171004204510-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/lambda-chops-recipes-for-simpler-more-expressive-code/80471470 Lambda Chops - Recipes... https://cdn.slidesharecdn.com/ss_thumbnails/scienceandartofbackwardscompatability-160920213434-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/science-andartofbackwardscompatability/66232978 Science andartofbackwa...