Tag Archives: programming languages

Hands on overview of the Kotlin programming language

Presenting Hands on overview of Kotlin programming language by Dhananjay Nene. Brought to you by PuneTech, TechJam Pune, and SICSR. The event is free for anybody to attend, but registration is required

Agenda

  • 4:30 – 5:00 pm Networking
  • 5:00 – 7:00 pm Introduction to Kotlin
  • 7:00 – 7:15 pm Q&A and Closure

We will start exactly on time, so please plan to reach a bit early.

Abstract of the Talk – Hands on overview of Kotlin programming language

This session will cover an introduction to the Kotlin programming language and lots of hands on examples of how Kotlin helps write concise, safe and expressive code. It will also refer to how naturally Kotlin interoperates with existing Java libraries and frameworks and how Java and Kotlin frameworks and libraries can work smoothly with each other. The session will focus on core programming rather than any specific areas such as Android or Web or other specialised types of programming.

The audience is presumed to be reasonably aware of Java programming.

About Kotlin

Kotlin is one of the hottest new programming languages in recent times. One of the fast growing languages of 2017, it has the potential to become the preferred language for Android app development, for backend development on the JVM, and even has to potential for use in the frontend (browser). It is a concise and modern language with many advanced features like null safety, extension functions, infix notation. It has full Java compatibility (so you can use all Java libraries without any significant impedence mismatch), good IDE support (Android Studio, and IntelliJ), improves code readability, reusability, and development speed.

Kotlin has been announced as an official Android Development language by Google, and it has been adopted by a number of high-profile companies like Amazon Web Services, Pinterest, Coursera, Netflix, Uber, Square, Trello, Basecamp, and others.

About the Speaker – Dhananjay Nene

Dhananjay is a Software Engineer with over 26 years of experience in programming. He has worked with Citicorp  and AT&T in the pre millennial times. After that as a consultant he has worked on providing solutions to a number of diverse problems including building interactive educational software for pre teen children, building administration suites for workflow authoring applications, creating applications that compute electromagnetic wave signal strengths, financial supply chain services and building frameworks and applications which process in excess of a million financial transactions per hour.

For the last year he has spent most of his time on GST and he wrote, and helps manage, Vayana GSP—one of India’s leading GSPs. GSPs are the licensed systems that allow ERPs and accounting softwares to interface with the GST Network. The Vayana GSP is written in Kotlin.

Apart from programming, he has been involved with the cloud for more than a decade including all aspects of operations management and operation automation. He has switched across a number of roles including those of a developer, chief architect, chief technology officer and head of product development. He continues to be passionate about programming and design and all that comes under the umbrella of software engineering.
Dhananjay has done his post graduation from IIM-Ahmedabad, and has been involved in Senior Management positions, and has managed team sizes in excess of 120 persons.

Specialties: Software Architecture, Technology Research, OO Modeling and Design, Programming

Fees, Registration, Logistics

This event is free and open for anybody to attend. Please register here.

The event is in Room 707, on the 7th floor, from 4:30pm to 7:00pm, on Saturday, 6 January, at SICSR, Model Colony. Note: This is Symbiosis Institute of Computer Studies and Research, near Om Supermarket Circle. There are 2 or 3 different Symbiosis institutes on the same road, so read the signs carefully to ensure that you’re entering the correct one.

Turing100 Lecture: Talk on Life & Work of 2008 Turing Award Recipient Barbara Liskov

In 2008, Barbara Liskov was given the Turning Award for contributions to practical and theoretical foundations of programming language and system design, especially related to data abstraction, fault tolerance, and distributed computing.

Ajay Deshpande, Chief Architect at Persistent Systems will give a talk on the life and work of Barbara Liskov, on 31st August, from 2pm to 5pm at Dewang Mehta Auditorium, Persistent (SB Road).

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This is year 2 of the the Turing 100 @ Persistent lecture series. The series started in 2012 to celebrates the 100th anniversary of Alan Turing’s birth by having a monthly lecture series, and the success of the talk series in year 1 has resulted in the series being continued in 2013. Each lecture is be presented by an eminent personality from the computer science / technology community in India, and covers the work done by one Turing award winner.

The lecture series has featured, or will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet) Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Latest schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

All the slides and videos of all the talks in the last year are available here.

Fees and Registration

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 31 August.

This event is free and open for anybody to attend. Register here

Event Report: Java 7 Launch Event in Pune

(This article by guest writer Amit Naik, an architect at BMC Software, Pune, is a report of the Java 7 Launch event that happened in Pune last weekend.)

Harshad Oak started things off by pointing out that Java has a bit of ups & downs in the past couple of years. Hopefully Java 7 will reverse the trend. He also encouraged people to join the Pune Java User Group to stay connected with other Java users in Pune.

Then, we moved on to the main speaker: Chuk-Munn Lee (chuk-munn.lee@oracle.com). Fun fact – Chuk-Munn is a fan of Futurama and called out the fact that he is wearing a “Bender the Robot” T-Shirt.

These are the highlights of Chuk-Munn’s presentation:

The last Major release of Java – Java 6 was in 2006-7 and no major releases since then. JavaSE7 has a lot of gestation period. The big release of 7 is now broken down into 2 incremental releases Java 7 and Java 8 to get something out of the door faster and make it more manageable.

Reading is more important than writing for Programming Languages. Programs should be a Joy to read. Counter example PERL a Write-Only Language, or Looks Same Before and After AES Encryption. A Camel is a horse designed by committee. Very difficult to read and maintain. So very difficult to collaborate in large teams or large codebases where readability is important. This is where Java shines but it has sometimes got too much boilerplate code needed.

Applications in the commercial world compete on the basis of features – same should not apply to programming languages. In languages you want fewer features but they should work consistently. So it is difficult to add new features to Java consistently.

The main features new in Java 7 can be grouped into these categories:

Small Language Changes (Project Coin)

  • Binary Literals with underscores for clarity
  • Strings in Switch statements
  • Inferring types with <>
  • Varargs Warnings @SafeVarargs fixes problem of Heap Pollutions JLSv3 4.12.2.1
  • Multi-Catch – very useful in reducing boilerplate code if used properly!
  • Copying Streams – try-with-resources

NIO2

  • NIO2 (JSR -203) java.io.File does not work consistently across platforms, missing basic operations like copy, move, etc.
  • Path Class (Async I/O)
  • Features – Filesystem and Filestore support
  • Symlink support
  • Basic File operations
  • File attributes and Permissions support enhanced
  • Other interesting features
    • Watch files directories

Invokedynamic

Java may or may not be the first choice of everybody but JVM is massively popular and many, many languages are adopting it. The VM spec is from 1997 – fairly generic and not specifically wired to Java except for the 4 key bytecode instructions – invokespecial (constructor invocation), invokestatic (statics), invokeinterface (interface), invokevirtual (methods)

Java 7 is introducing a new instruction for Java 7 invokedynamic that will allow for late binding in languages such as JavaScript to be natively supported on the JVM.

Other Features

  • New Fork-Join framework
    • ForkJoinPool and ForkJoinTask along with fork keyword to natively support fork-join semantics
      natively on the VM
  • New decorators for Swing – Jlayer and LayerUI
  • Infiniband support – using a sockets direct protocol (SDP) over the wire
  • Utility methods for java.util.Objects

That was end of the main presentation.

Time for Audience Q/A

(All Questions/Answers paraphrased to best of my recollection)

  • Java 7 seems like an underwhelming release. Why?
    • There was a very long gap between Java 6 and Java 7 because of the inability to move things thru to conclusions fast enough in the JCP. All the big features were not done yet so it would have taken a lot longer to get everything finished. Oracle polled the community and the result was two releases – one with all the finished features and one with all the big features -Java 8- to follow shortly thereafter.
  • Will Oracle make Java more “restrictive” in terms of licensing etc.?, What is Oracle’s commitment to Java?
    • A very large part of Oracle’s internal codebase is on Java so Oracle has excellent commitment to Java and will move it forward Will it make it more restrictive license wise – this question has been comin up over the years and the answer is always NO. Most of Java is under a GPL-like license anyway so cannot be really made more restrictive.
  • With the departure of Apache Software Foundation from the JCP and the Lawsuit over Android against Goolge what is the future of JCP and the Java community?
    • Cannot comment on the lawsuit. If the situation with the ASF worries you personally then you should consult a lawyer. I (Chuk-Munn) ask myself this question – does it personally affect me in any manner? If not then I do not worry about it.
  • Is the support for dynamic languages increasing or decreasing with Java 7?
    • Increasing with the introduction of invokedynamic etc.

The PPT that was used by Chuk-Munn Lee is available from here (see attachment at the end of that page)

About the Author – Amit Naik

Amit Naik works as an Architect with BMC Software. He builds performant cloud solutions with a focus on heterogeneity and monitoring across different virtualization and provisioning vendors in the cloud computing space. His main focus is the Architecture and Design of BMC solutions with emphasis on building highly-scalable systems with REST and other SOA interfaces.

Amit has a Bachelor’s degree from College of Engineering Pune and a Master’s degree from Purdue Univ., West Lafayette. He has more than 15 years of experience in the IT industry, much of it in the USA, across a variety of Technical and Techno-Managerial roles.