Programming languages are the building blocks of computer science. New programming languages often emerge every few years. Recently I come across a new language called Scala. This new language attempts to unify object-oriented programming and functional programming. Its syntax is similar to Java and C# with some additional features.
This paper gives an overview of Scala.
After reading up on Scala and its recent buzz in the new, I thought about the relationship between new programming languages and software development.
Business requirements will continue to change. For this reason, new programming languages are necessary to help engineers to get their job done faster and better.
Answering Q2. Develop software programs using cutting-edge technologies don't always yield the best result. For example, Twitter was built on Ruby, and it proved to be problematic. If it had developed the system using PHP or Java, I suspect many scalability issues could have been avoided. However, this doesn't mean new technology has no value. Building systems with new languages usually encourage new way of thinking, opening new doors to innovation. For example, Google Maps is successful because its innovative usage of Ajax, and which helped spawning a new generation of "cool" web applications.
Answering Q3. What separates good software engineers from the rest is in the ability applying software design and engineering skills to problems that don't have conventional solutions for. Fluent in new programming languages is not a substitute for programming experience and skills. However, knowing the intricacy of different programming languages and having the will to learn new technologies can certainly help engineers to sharpen their skills.
Technorati Tags: Scala, Programming
This paper gives an overview of Scala.
After reading up on Scala and its recent buzz in the new, I thought about the relationship between new programming languages and software development.
- Q1: Why do we invent new programming languages every few years?
- Q2: What benefits do we gain by developing software with those new languages? Can't we just program with the languages that we are already familiar with?
- Q3: Should all good software engineers be expected to be fluent in cutting-edge languages at all time (i.e., should I go learn Scala today)?
Business requirements will continue to change. For this reason, new programming languages are necessary to help engineers to get their job done faster and better.
Answering Q2. Develop software programs using cutting-edge technologies don't always yield the best result. For example, Twitter was built on Ruby, and it proved to be problematic. If it had developed the system using PHP or Java, I suspect many scalability issues could have been avoided. However, this doesn't mean new technology has no value. Building systems with new languages usually encourage new way of thinking, opening new doors to innovation. For example, Google Maps is successful because its innovative usage of Ajax, and which helped spawning a new generation of "cool" web applications.
Answering Q3. What separates good software engineers from the rest is in the ability applying software design and engineering skills to problems that don't have conventional solutions for. Fluent in new programming languages is not a substitute for programming experience and skills. However, knowing the intricacy of different programming languages and having the will to learn new technologies can certainly help engineers to sharpen their skills.
Technorati Tags: Scala, Programming


1 comments:
Scala is a hybrid Object-Oriented/Functional Programming language on the JVM. When I heard that Twitter was using Scala, I was curious and started collecting all the sites and articles to learn scala programming. If you are interested check the link below for the big list I have gathered (more than 200 sites) for learning scala programming.
http://markthispage.blogspot.com/2009/06/more-than-100-sites-to-study-scala.html
Post a Comment