Tag Archives: trends

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.

Interview with Mahendra Palsule – Editor at TechMeme

(Mahendra Palsule is one of Pune’s most well-known people in the technology news / social web space in the world today due to his role as Editor at TechMeme, which is one of the most influential technology news websites. BlogAdda has a great interview of Mahendra where they cover his blogging, his work, personal life and other things. We have excerpted here, with permission, portions of that interview that are related to his work, for the benefit of PuneTech readers.)

Q: 19 years in IT industry and counting. You have been a witness to the fall and the rise of the industry. What have been your prominent observations in this period? Based on these observations and your experience, what changes do you predict in the next 10 years?

A: In the early days of my career, the entire IT industry in India was purely services-based. I always lamented the lack of product-based companies in India. Seeing the proliferation and rise of many Indian product-based companies and startups, is the most fulfilling observation in all these years.

Predictions for the future are always a dangerous game with many unknowns, but here are some I’d dare to make:

The Indian startup ecosystem will mature significantly in the coming years, making life a bit easier for entrepreneurs who undergo a difficult struggle today.
Indian IT outsourcing companies will face significant challenges and opportunities in several areas – getting qualified labor in India, diversifying geographically outside India, capitalizing on the growth of SaaS, etc.
In terms of overall online space, we are already witnessing a shift to a personalized experience. This will only get bolstered further in the coming years, with relevance filtering, giving you an optimal experience in everything you do online.
User behavior online will increasingly tend to share more publicly, leading to continued discussions and concerns about privacy.
User behavior online will increasingly tend to share more publicly, leading to continued discussions and concerns about privacy.
Q: Being a first ranker in college for all the years, is a fulfilling achievement. Can you share some very special moments from your college days that still bring a smile on your face when you think of it?

A: I was once asked by our Electronics professor to take a guest lecture on Multivibrators, in the middle of the year. When I started the lecture, I realized that my class wasn’t following me, because they had not understood what had been taught in the earlier months. So I reverted back, asked them if they knew how a transistor worked. By this time, our class got bold enough to be frank and replied in the negative.

So, I eventually ended up starting with basics of how diodes worked, followed by transistors, and then covering multivibrators over a span of 3 lectures. After I was done, my fellow-students suggested that we get rid of our Electronics professor and just use me instead.

Q: ‘Mahendra embodies the ideal Program Manager I would like to be working with’ & ‘He is one of the best Project Manager I’ve worked with’ is what some of your ex-colleagues say about you. You are now an editor at Techmeme. How and Why did this shift happen? Was it because of your keenness to explore new frontiers and realization that communicating well is your forte or was it something else? How did your friends and family react to this move?

A: The Project/Program Manager role in large Indian IT companies is a stressful balancing act dealing with challenges on three fronts – your bosses, your client, and your team. After 18 years of working in this role on several US & European projects, I realized I wanted a change.

I have always been an avid researcher, with a huge appetite for scanning a multitude of information sources and filtering the best from them. My present job goes hand-in-glove with this innate skill, and makes me think I was born to do this kind of work.

I have a hard time explaining what I do to my friends and family. Initially, they were skeptical, but over time, they’ve slowly realized the fulfilling nature of my work and accepted it. The fact that I work from home is an added benefit.

Q: Your current role at Techmeme is ‘Editor working as a human filter for automated algorithm’. Do you think an automated algorithm, no matter how intelligent it could develop into, can replace the intelligence and editor skills of a human? Also, is it better to ‘crowdsource’ and let users decide the relevancy and usefulness of a story, rather than an editor or team of editors doing it?

For a news aggregator, automated algorithms have limitations that can’t be overcomed.
A: For a news aggregator, automated algorithms have limitations that can’t be overcomed. Gabe Rivera, founder of Techmeme said it in 2008 when Techmeme hired its first editor.

Whether one decides to crowdsource or use an internal editorial team depends on one’s target audience – both models have been used online to varying degrees of success.

Q: ‘Relevance is the only solution to the problem of information overload’, according to you. Relevance is subjective. Do you feel the relevance could be influenced with popularity and things that might not have been relevant to someone would appear like one, just because it was shared by his/her friends or popular personalities? This seems like a constant challenge and it’ll be great to hear your views on how do you think this issue can be addressed and your suggestions for an individual to handle the information overload he faces everyday. You can even suggest tools if you like.

You will find both popularity-based and personalization-based relevance models to continue to coexist in the future.
A: Yes. As I described in the article, relevance is very dynamic and difficult to pin down. There are times when what is most popular is most relevant, and there are other times when a personalized approach is more relevant. This is why you will find both popularity-based and personalization-based relevance models to continue to coexist in the future.

My tips for handling information overload are listed on Quora:

Q: In one of your recent post, you opine that Facebook and Quora should be worried about Google+ but have not mentioned about Twitter, where asking questions, sharing links and speed seems to be the key. According to you, will Twitter not get affected by this? What kind of innovations do you want to see happening on Twitter, to counter any threats from other networks?

Twitter’s 140 character limit will remain its USP against Facebook and Google+
A: Twitter’s 140 character limit will remain its USP against Facebook and Google+. This limit makes it more suitable for sharing links & hence its suitability as a news-discovery network. Twitter needs a better on boarding process for new users and a flourishing developer ecosystem – both of which are weak areas today.

_(Please read the full interview at BlogAdda for more. Also check out the recent PuneTech article about Google+ which features the views of Mahendra on why Quora and Twitter should be afraid of Google+.)

5 things that Computer Science Engineering students should focus on

What should students be really focusing on? Somebody asked me this question recently – Imagine students who are in 2nd or 3rd year of their degree course right now. They’ll spend a few years finishing college, and a few years just learning the ropes at their first job. So it will really be about 5 years before their career really starts. What will the software technology world be like at that time, and what are the skills that students can work on acquiring right now to ensure that they are well positioned to thrive?

Of course, 5 years is a long time, and to quote Neils Bohr, prediction is very difficult, especially about the future. Still I think some general trends are clear, and there are some other timeless skills that are worth looking at. Based on that I’m giving my list below.

Click on this icon to see all PuneTech articles related to tech education in Pune
Click on this icon to see all PuneTech articles related to tech education in Pune

But wait!

Let me not bias your thoughts. Before you read my list, skip to the comments section below, and put down your list. Then read my list and critique it again in the comments. Hopefully we can have a good discussion that will benefit students.

So, here’s my list of areas students need to be thinking about:

  • The next billion customers: The IT revolution has probably reached a billion people of the world so far. In the next 5 years, it will reach the next billion. These will be a very different set of people. Many of them will be illiterate – so you need to focus on non-text, non-English interfaces – video, animations, voice recognition. Search for “English Seekho” to get an idea of what I mean. Most won’t have money or electricity for computers, so mobile devices will rule – so you need to start playing with mobile platforms like Android. In general, search for the “the next billion” and you’ll find some interesting material put together by the likes of Nokia, and MIT giving you ideas on what to focus on.
  • Usability: As IT touches the lives of more and more people, less and less of them will be “computer savvy”, and less and less of them will view computing devices as something that needs to be learnt. Consequently, the products that will succeed, will be the ones that are easy to use. And making something easy to use is rather difficult. It is a sub-discipline of computer science, and there is a lot of theory, and a bunch of well-defined algorithms and practices you can use to make things easy to use. The whole area is called HCI (Human Computer Interaction), and UCD (User Centered Design) is a part of it. It’s an area that you must be familiar with
  • Computer Science Fundamentals: This will never go out of fashion, and yes, when I look at students coming out of our colleges, this appears to be a rather neglected area. Far too much emphasis on specific programming languages, and specific “technologies” is a mistake. Whatever the future holds, you will be well served by knowing the basic theory of computer sciences. Learn data-structures and algorithms. If you don’t have a favourite data-structure, and an algorithm that you find beautiful, then your computer science education is incomplete. If, after seeing an algorithm, your first thought is not about the complexity of the algorithm (O(n), O(log n), etc.), then you need to hit your books again. If you’ve only learned Java and C#, and you don’t really understand pointers, heaps, stacks, you will sooner or later be at a disadvantage. Understand the basics. And while you’re at it, also learn mathematics and statistics.
  • Presentation skills: This is not a computer science skill, but this is one of the most important skills that computer science students are missing. You must treat presentation as equally important, or more important than your program, design, and algorithms. And you must spend as much time learning presentation (from books, in classes, and in practice) as you spent on programming languages, and computer science subjects. I’m sure you haven’t done that, hence this item in my list. You should know how to write well. Not just papers and documents, but much more importantly, emails, and blog posts, and facebook wall postings, and tweets. You must think about what the user/reader/client wants to know (instead of what you know and want to tell). And of course, you must know how to speak well. How to tell a story instead of listing some arcane facts about your work. How to leave out stuff that you find extremely interesting, but the listener doesn’t.
  • Economics: Scott Adams, the creator of Dilbert says: “When you have a working knowledge of economics, it’s like having a mild super power.” Basically, if you understand the fundamentals of economics, you can see and understand what drives people and technologies and success and failure a lot better than people who do not understand it. I hated the fact that I was made to study economics in IIT for my computer science course. It seemed like a complete waste of my time. Now, looking back, I think it was probably the most important course.

What do you think students should be focusing on?

(Note: I’m supposed to be participating in a panel discussion in MIT on Monday, 7th Sept, on this topic. Instead of going there and spewing my gyaan, I thought I would take this opportunity to have a larger discussion on this topic, and your comments will help me do a better job (or go there with a better list), so please leave comments. Thanks.)

(Update: Please note: Many comments on this article are by 12th std. students who want to know how to select an engineering college or branch. In response to all of those, I’ve written an article on how 12th std students should select an engineering college/branch. Please read that article, and ask your doubts there. I will be deleting any comments on this post that are related 12th std choices.)

Reblog this post [with Zemanta]

IEEE Seminar: Dr. Harrick Vin, Vice President and Chief Scientist, TRDDC – 25 April

What: Seminar on two topics – “Trends, Opportunities and Challenges in IT Systems Management” and “Academia and Industry Collaboration” by Dr. Harrick Vin, Vice President (R&D) and Chief Scientist, Systems Research Lab, Tata Research Development and Design Center (TRDDC), TCS, Pune – organized by IEEE Pune.
When: Saturday, 25 April, 5pm
Where: Institute of Engineers, Opposite Modern Cafe, J.M. Road, Shivajinagar
Registration and Fees: This seminar is free for all to attend. No registration required

1st Abstract: Trends, Opportunities and Challenges in IT Systems Management

During the past two decades, many enterprises have transformed from “Businesses facilitated by IT” to the paradigm where “Business is IT”. Today, enterprises not only relay on IT systems to obtain and deliver insightful, timely, and accurate information for managing their operations, but also to provide competitive differentiation, to support business agility and growth, and to improve profitability. Unfortunately, the growing complexity of the IT systems operated by the enterprises is becoming a key obstacle in sustaining this vision. We believe that continuous evolution is a key contributor to this complexity. Unlike traditional engineering artifacts that don’t change much over time, IT systems evolve continuously to accommodate new software and hardware technologies, application functionality, user requirements, as well as changes in operating conditions (workload, faults, etc.). Thus, a grand challenge for computing is to conquer this complexity by developing methodology and tools to design simple yet efficient systems and to manage system evolution. In this talk, I will discuss this opportunity and challenge, and describe some of the approaches for realizing this vision.

2nd Abstract: Academia and Industry Collaboration

The nature and complexity of modern computer systems dictate that research and education activities in computing must blend theory and practice. Blind experimentation in the absence of theory is infeasible, and theory that is not grounded in practice is sterile. An effective academia and industry collaboration can enrich both the theory and the practice of computing science. In this discussion, I will raise several opportunities and challenges in fostering academia and industry collaboration.

About the speaker – Dr. Harrick Vin

Dr. Vin is Vice President (R&D) and Chief Scientist, Systems Research Lab at the Tata Research Development and Design Center (TRDDC), Pune, which is a division of Tata Consultancy Services (TCS). He is also a member of the TCS Corporate Technology Board.

Before joining TCS, Dr. Vin was a Professor in the Department of Computer Sciences at the University of Texas at Austin. He was the founding Director of the Distributed Multimedia Computing Laboratory and the co-Director of the Laboratory of Advanced Systems Research (LASR) at UT Austin. His research interests are in the areas of networks, operating systems, distributed systems, and multimedia systems.

He has co-authored more than 100 papers in leading journals and conferences. Harrick has been a recipient of several awards including the Faculty Fellow in Computer Sciences, Dean’s Fellowship, National Science Foundation CAREER award, IBM Faculty Development Award, Fellow of the IBM Austin Center for Advanced Studies, AT&T Foundation Award, National Science Foundation Research Initiation Award, IBM Doctoral Fellowship, NCR Innovation Award, and San Diego Supercomputer Center Creative Computing Award.

For more details, click here.

There are a bunch of other tech events happening in Pune this weekend. Check out the PuneTech calendar for more information.

Reblog this post [with Zemanta]

The 10 industry trends programmers need to understand -Anand Deshpande

Anand Deshpande, CEO of Persistent, gave this keynote address last week during the IndicThreads conference on Java technologies. I’ve already included this in my overall report on the IndicThreads Conference, but thought that it was interesting enough and important enough to warrant a post on its own. The basic thrust of his talk was that often, programmers just think about their programs and disregard what is going on in the industry outside. Having this perspective is important, and keeping track of important industry trends will improve you technically. The top trends he identified are:

  1. Multicore chips, and why programmers need to worry about them
  2. Mobile Telephony: the desktop/laptop is no longer the primary target device for programmers. Think about the mobile users, and how what they want is different from the traditional PC users
  3. Cloud and SaaS: is coming in a big way, and will change the way people use software. Also, it makes life easier for users, but much more difficult for programmers. So need to improve skills in these areas
  4. Web 2.0 and Social Networking: these are exciting new fields with a lot of growth. They require a different kind of programming mindset.
  5. Rich Internet Applications: Similar to above
  6. Large Volumes of Diverse Data (including BI and analytics)
  7. Open source is on the rise. As programmers, you must have a good understanding of various open source licenses
  8. Gaming and Entertainment boom: Too many programmers think of only corporate world & green monitors etc. Think different. E.g. Gaming and entertainment are large markets and require a different mindset to come up with new ideas in these fields.
  9. Green IT: Instead of worrying about speed and efficiency, for the first time, worrying about power consumption has started affecting programmers
  10. Be a part of the community. Give back. Do open source. Join CSI ACM. IEEE. (and I would like to add contribute to PuneTech)

His full presentation is here.