InfoQ

News

Will Polyglotism and DSLs make Java the Last Big Language?

Posted by Dionysios G. Synodinos on May 23, 2008 04:12 PM

Community
Architecture,
Java
Topics
Domain Specific Languages ,
Scripting ,
Dynamic Languages
Tags
Polyglotism ,
DSLs

Ola Bini has been arguing that the world will not have a new big language again because developers will find value in choosing different languages depending on their problem domain. Similarly Martin Folwer has argued that programmers will choose a language for what it can do in the same way that they choose frameworks now. On the other hand Joe Winchester debates that you can only be master of one language.

Ola Bini, on one of his recent posts elaborates on the different strengths and weaknesses of the type systems of Haskell, Java and Ruby, which make these languages difficult if not impossible to compare:

So, we have three categories of languages here. The strongly statically checked ones, like Haskell. The weakly statically checked ones, like Java. And the dynamically checked ones, like Ruby. The way I look at these, they are good at very different things. They don't even compete in the same leagues. And comparing them is not really a valid point of reasoning.

 

Ola finds hope in polyglotism where:

A good programmer uses his common sense to provide the best value possible. That includes choosing the best language for the job. If Ruby allows you to provide functionality 5 times faster than the equivalent functionality with Java, you need to think about whether this is acceptable or not. On the one hand, Java has IDEs that make maintainability easier, but with the Ruby codebase you will end up maintaining a fifth of the size of the Java code base. Is that trade off acceptable? In some cases yes, in

Finally he advises to:

Be good polyglot programmers. The world will not have a new big language again, and you need to rewire your head to work in this environment.

 

Joe Winchester, describes a very different point of view, in the editorial of Java Developers Journal. He believes that:

It’s possible to be master of only one language- either that or Jack of all languages and master of none.

Joe recalls the attempts of the Smalltalk community to make Java run on their virtual machine (the Universal Virtual Machine - UVM) and why he feels it was a nightmare to code in such an environment.

Finally he proposes that:

… we should be fixing Java, not doing VM hacks and increasing complexity just to embrace other languages that didn’t even exist a few years ago.

 

If we don’t back Java as a language, rather than some kind of nebulus “Java technology” thing, we’re just dooming it to incognizance by diluting it with other languages and increasing the entropy required to build good software

 

On the other hand Martin Folwer, has also suggested that  we may be entering such a period in which:

...will see multiple languages used in projects with people choosing a language for what it can do in the same way that people choose frameworks now.

 

and feels that a lot of things have changed since Smalltalk:

So are we returning to the language cacophony of the late 80's and early 90's? I think we will see multiple languages blathering away, but there will be an important difference. In the late 80's it was hard to get languages to inter-operate closely. These days there's a lot of attention to making environments that allow different language to co-exist closely. Scripting languages have traditionally had an intimate relationship with C. There's much effort to inter-operation on the JVM and CLR platforms. Too much has been invested in libraries for a language to ignore them.

 

There was actually an article on InfoQ last year that debated on if DSLs will bring the end of single language development.

What do you think? Will Polyglotism and DSLs become the dominant paradigm, leaving no room for a new “Next Big Language”?

10 comments

Reply

polyglot programming by Peter Maas Posted May 23, 2008 4:39 PM
Related Vendor Content by David Clarke Posted May 23, 2008 5:30 PM
Re: Related Vendor Content by Floyd Marinescu Posted May 23, 2008 10:51 PM
Sweeeeet..... by Clinton Begin Posted May 23, 2008 5:48 PM
I sure hope Ola is right by Mats Henricson Posted May 23, 2008 5:58 PM
Java a big language? by Roger Voss Posted May 24, 2008 11:06 PM
Re: Java a big language? by George Jiang Posted May 25, 2008 8:21 PM
Re: Java a big language? by George Jiang Posted May 25, 2008 8:57 PM
Re: Java a big language? by Russell Leggett Posted May 26, 2008 9:24 AM
Re: Java a big language? by George Jiang Posted May 27, 2008 6:06 PM
  1. Back to top

    polyglot programming

    May 23, 2008 4:39 PM by Peter Maas

    All the projects I did in the past years contained multiple languages: Java, SQL, Javascription, ActionScript, CSS, XSL... nobody complained about combaining all those languages: they are well suited for the domains they where created for. Adding more languages for specific domains (web developement, batch operations, high concurrency) is the logical next step.

  2. Back to top

    Related Vendor Content

    May 23, 2008 5:30 PM by David Clarke

    Why does the link "Hacking 101 -The Top 10 Attacks in Web Applications" have a pdf icon next to it - it links to a presentation that requires realplayer?

  3. Back to top

    Sweeeeet.....

    May 23, 2008 5:48 PM by Clinton Begin

    So are we returning to the language cacophony of the late 80's and early 90's?


    Yes. This is bound to happen anyway. I think it has more to do with two things:

    • 1) Java's dominance and ubiquity was largely driven by an incredible amount of funding and cooperation among a number of vendors during the dot-com boom. Basically, the "allies against Microsoft". I don't think we'll ever see such a great rallying force behind a single technology again in our lifetime... or at least not in our career lifetime. So as Java's flame slowly fizzles out, it will leave in its wake a growing number of niches for commercial and open source products to fill. Heterogeneity.

    •  

    • 2) While Sun took the approach of one language on multiple platforms, Microsoft took the approach of one platform with multiple languages. They supported 4 officially out of the gate. Now, consider the rapidly growing number of 3rd party languages and even some new ones gaining support from Microsoft internally (Iron Python, F#). Heterogeneity.

    •  

    • It doesn't matter if you're in the Java camp, ex-Java camp, LAMP camp, or Microsoft camp. As far as languages go, there will be many. So you better get good at learning more than one.
    •  

    • Cheers,
    •  

    • Clinton

  4. Back to top

    I sure hope Ola is right

    May 23, 2008 5:58 PM by Mats Henricson

    Because it would mean I, as a consultant, will be able to charge outlandish fees for fixing code in a project where the original authors have left the building, and new ones are hard to find. It will be like in the car mechanic business, where you can't just pick any car mechanic. You'll have to pick a car mechanic that knows your particular car. Good for the car mechanics, since they don't have to compete much, bad for the car owners.

    /Mats

  5. Back to top

    Re: Related Vendor Content

    May 23, 2008 10:51 PM by Floyd Marinescu

    fixed :)

  6. Back to top

    Java a big language?

    May 24, 2008 11:06 PM by Roger Voss

    I take exception to a premise appearing in the title.

    Java is not a big language. PL/1, C++, and C# 3.0 are big languages

    Java is still a rather minimal language that any person worthy of the title of software engineer can readily master.

    I do rather align with the notion of languages oriented to context situations. For instance, ActionScript3/MXML have just the right balance for the purpose of programming the web client tier. Java couple to BlazeDS and Spring Framework then gets reduced to a very straight forward matter of writing Spring POJO beans as services for the Flex clients.

    Groovy and JRuby are getting to where performance is more reasonable. However, Java still offers static typing (as does ActionScript3). So if the SOA layer is going to be a large team affair, Java may remain the better choice, especially as OSGi bundles are used for deployment packaging.

    For rules engines, Groovy and JRuby could be worthwhile - my bias is to Groovy as it is designed to be very close knit to Java.

  7. Back to top

    Re: Java a big language?

    May 25, 2008 8:21 PM by George Jiang

    I totally agree. C# and the only syntactically different VB.NET are huge languages and the tradition started from C# 1.0 and VB.NET 1.0 with that dreaded 'new' and 'new virtual' which makes inheritance and polymorphism daunting for the poor VB6 crowd who migh have been better off starting OOP with Java.

  8. Back to top

    Re: Java a big language?

    May 25, 2008 8:57 PM by George Jiang

    In C# 3.0 / VB 2008, there is LINQ. Java still looks tiny and lean even with 5.0 enhancements.

  9. Back to top

    Re: Java a big language?

    May 26, 2008 9:24 AM by Russell Leggett

    I think the author meant that Java is a big language in terms of its use and adoption, not its number of features. Just like before Java, C++ was the big language to know. He is suggesting that all programmers will have to know and use multiple languages in their projects and because of that, there will no longer be a single predominant language.

  10. Back to top

    Re: Java a big language?

    May 27, 2008 6:06 PM by George Jiang

    Big means big. It does mean using a single language to solve different problems instead of using different languages to solve different problems.

    With LINQ, it looks like Microsoft's direction for C# and VB.NET

Exclusive Content

Diary of a Fence Sitting SOA Geek

In this presentation, Mark Little explains the history of SOAP/WSDL/WS-*-based web services and RESTful HTTP and highlights how the two approaches might converge into a single solution.

Flex for XML and JSON

Platforms need interoperability. In this article Flex interoperability with JSON and XML is explored including direct mapping to chart and grid components.

Measuring Agile in the Enterprise: 5 Success Factors for Large-Scale Agile Adoption

Michael Mah analyzes the development process in 5 companies: 2 Agile (one of them BMC) and 3 classic. He presents the factors which contributed to the success of BMC's Agile adoption.

Tom Preston-Werner on Powerset, GitHub, Ruby and Erlang

In this interview filmed at RubyFringe 2008, Tom Preston-Werner talks about how both Powerset and GitHub use Ruby and Erlang, as well as tools like Fuzed, god, and more.

David Laribee on Alt.NET and its Mission

David Laribee discusses the purpose of ALT.NET, its mission and future.

Discover RailsKits and Stop Writing Redundant Code

Ruby on Rails has become a popular Ruby framework for creating web applications in recent years. An aspect of creating a web application is the need to repeatedly create the same base functionality.

A Formal Performance Tuning Methodology: Wait-Based Tuning

Steven Haines talks about tackling web application performance tuning by proposing a method called wait-based tuning.

Shaw and Fowler About Forging a New Alliance

Shaw and Fowler talk about the need for a new relationship between the business department and the IT department. Studies have shown that projects mostly fail due to miscommunication between the two.