Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programming Languages 2010-01-31, perfSONAR-PS Developers Meeting Aaron Brown, Maxim Grigoriev, Eric Pouyoul.

Similar presentations


Presentation on theme: "Programming Languages 2010-01-31, perfSONAR-PS Developers Meeting Aaron Brown, Maxim Grigoriev, Eric Pouyoul."— Presentation transcript:

1 Programming Languages 2010-01-31, perfSONAR-PS Developers Meeting Aaron Brown, Maxim Grigoriev, Eric Pouyoul

2 Goal – To survey programming languages to see which best meet our needs given existing constraints Constraints – We already have a substantial codebase written in Perl, along with a developer-base that understands it 2 – 10/10/2015, © 2009 Internet2 Programming Language Choice

3 Support For Web Services – Which web services? All WS-*? Other technology? Can/Should we use something else to implement the same functionality? Available Frameworks For Developing Our Services – Most languages have MVC support, but will that meet the needs of all our services? Packaging – What package types should we support? – How do we handle dependencies? 3 – 10/10/2015, © 2009 Internet2 Needs

4 Stability Of Language – Will the language be undergoing major changes in the near term? – How will those changes affect modules we may depend on, or any code that we may write? Performance – How do we define expected performance? – Take advantage of multiple processors/multiple cores. Support For An XML Database – In the short and medium term, some services will depend on XQuery which means an XML Database. 4 – 10/10/2015, © 2009 Internet2 Needs

5 Which languages to look at? – Perl – Java – Python – Ruby – PHP 5 – 10/10/2015, © 2009 Internet2 Languages

6 Support For Web Services Available Frameworks For Developing Our Services – There is Catalyst which provides an MVC framework. The ls registration, service maintenance threads, and scheduled tasks would need to be built using a different framework. Packaging – There are RPM repositories containing most dependencies we have. Longer term, I’m not sure how much we can depend on them. Stability Of Language – Perl6 is slated for a future release. It is not backward compatible to perl5 but contains support for calling perl5 modules. There are ways to call perl6 code from the perl5 scripts. How slow uptake, and how long Perl5 is maintained is somewhat unknown. Performance – Perl seems to perform well enough for our needs now. – Perl6 supposed to perform even better. Support For An XML Database – There are bindings for Oracle Berkeley XML Database, but that database leaves some to be desired. Other benefits – We already have about 30-40k lines of code in Perl and group of core developers Other downsides – Recruiting new perl developers might be hard 6 – 10/10/2015, © 2009 Internet2 Perl

7 Cost Of Transition – Requires a complete re-design. May be able to reuse some of the MDM solution. Support For Web Services – Extensive. OSCARS uses CXF. Available Frameworks For Developing Our Services – Numerous. OSCARS uses CXF/Spring. Packaging – Needed libraries can be included with the software. Stability Of Language – Moving from 1.5 to 1.6 has some configuration file changes, but the code is backwards compatible. Future iterations are likely to remain compatible. – 1.5 is out of the life, CE7 is coming Performance – Adequate for our needs, multithreading supported Support For An XML Database – eXist support and since Sun and Oracle merged one can expect support for XMLDB Other benefits – Can work more closely with the MDM developers and the OSCARS-IDC developers. Other downsides – Increase size of codebase 7 – 10/10/2015, © 2009 Internet2 Java

8 Cost Of Transition – We would need to rewrite our services from scratch. There are some basic modules for providing perfSONAR services already written in Python. Support For Web Services – Python has a variety of web service libraries Available Frameworks For Developing Our Services – Django Packaging – There aren’t RPMs available for many of the python modules which can make packaging dependencies more difficult. Stability Of Language – Python 3000 has been released, and is not backwards compatible with the Python 2 series. This includes both the language syntax and the modules. It’s unknown how this might split the community. Performance – Similar to Perl Support For An XML Database – Sleepycat XML DB library – Sedna library Other benefits – We have a number of developers proficient in python Other downsides 8 – 10/10/2015, © 2009 Internet2 Python

9 Cost Of Transition – We would need to rewrite our services from scratch. Support For Web Services – There’s a strong Ruby framework (WSO2) for developing web services Available Frameworks For Developing Our Services – Ruby on Rails, and WSO2 Packaging – There aren’t RPMs available for many of the Ruby modules which can make packaging dependencies more difficult. Stability Of Language – Ruby 2 is slated for a future release, and isn’t going to be 100% backwards compatible. Performance – Worse than python/perl, but has been improving Support For An XML Database – Sedna library Other benefits – Considered to be a next Web’s “cool thing” Other downsides – We have no developers proficient in Ruby 9 – 10/10/2015, © 2009 Internet2 Ruby

10 Cost Of Transition – We would need to rewrite our services from scratch. Syntax resembles perl somewhat. Support For Web Services – WSF for PHP Available Frameworks For Developing Our Services – There are a number of MVC frameworks. However, things like LS registration and service maintenance would need to be done outside the framework Packaging – There aren’t RPMs available for many of the Ruby modules which can make packaging dependencies more difficult. Stability Of Language – PHP6 is still a “future” release. Looks to be mostly backward compatible. Performance – Similar to perl/python Support For An XML Database – Sedna library – Wrapper for eXist DB – Oracle XML DB Other benefits – Large web development community. Huge variety of APIs. Other downsides – Although some of us have/had some exposure to PHP we don’t have very proficient developers in PHP 10 – 10/10/2015, © 2009 Internet2 PHP

11 Programming Languages 2010-01-31, perfSONAR-PS Developers Meeting Aaron Brown, Maxim Grigoriev, Eric Pouyoul For more information, visit www.internet2.edu 11 – 10/10/2015, © 2009 Internet2


Download ppt "Programming Languages 2010-01-31, perfSONAR-PS Developers Meeting Aaron Brown, Maxim Grigoriev, Eric Pouyoul."

Similar presentations


Ads by Google