Greater Atlanta Software Symposium

September 24 - 26, 2010 - Atlanta, GA


Atlanta Marriott Northwest
200 Interstate North Parkway
Atlanta, GA   30339
Map »

Peter Bell

Senior VP Engineering, General Assembly

Peter is Senior VP Engineering and Senior Fellow at General Assembly, a campus for technology, design, and entrepreneurship. He is responsible for hiring and managing an engineering team and is involved in the development and teaching of the technology curriculum.

Peter is a regular presenter at national and international conferences on ruby, nodejs, NoSQL (especially MongoDB and neo4j), cloud computing, software craftsmanship, java, groovy, javascript, and requirements and estimating. He is on the program committee for Code Generation in Cambridge, England and the Domain Specific Modeling workshop at SPLASH (was ooPSLA) and reviews and shepherds proposals for the BCS SPA conference.

He has presented at a range of conferences including DLD conference, ooPSLA, RubyNation, SpringOne2GX, Code Generation, Practical Product Lines, the British Computer Society Software Practices Advancement conference, DevNexus, cf.Objective(), CF United, Scotch on the Rocks, WebDU, WebManiacs, UberConf, the Rich Web Experience and the No Fluff Just Stuff Enterprise Java tour.

He has been published in IEEE Software, Dr. Dobbs, IBM developerWorks, Information Week, Methods & Tools, Mashed Code, NFJS the Magazine and GroovyMag. He's currently writing a book on managing software development for Pearson.

He is an organizer of the CTO School http://www.ctoschool.org - an organization in NYC devoted to creating the next generation of technical leaders. He also organizes the node.js meetup in New York and co-organizes the Domain Driven Design and Grails meetups.

He is a regular instructor at General Assembly in New York. His presentations cover managing software development, NoSQL, mobile development, Javascript development, Twitter Bootstrap and Javascript frameworks.

He tweets regularly as @peterbell.



Presentations

Engineering your DSLs

The easy part of implementing Domain Specific Languages is coding them. The hard part comes when you have to think about testing, documenting, evolving and providing appropriate editing interfaces for them.

In this session we'll go beyond the syntax and look at the real world engineering concerns for widespread use of a DSL and various proven strategies for building DSLs that will grow with your projects and work for your target users.

Tooling for External DSLs

Eventually if you do a lot of work with DSLs, you'll need to consider using external DSLs to make your languages more flexible and powerful.

In this session we'll look at some of the best tooling available for working with external DSLs and will look at the trade offs between the different approaches and how to choose (or build) the right tooling for your particular needs. We will look at ANTLR, the Eclipse Modeling Framework, JetBrains MPS and MetaEdit+, comparing and contrasting and looking at how you would go about building and sing languages in each.

DSL Evolution

Oh no, your DSL is actually popular. And of course, the feature requests keep come in. But what do you do to evolve your DSLs without breaking the existing models as your understanding of the domain changes radically over time?

This session will take a DSL and show examples of the four key strategies available: "fixing the API", "backwards compatibility", "versioning" and "automated evolution/checking" and the implications of each strategy on the best way to implement DSLs that are likely to change substantially over time.

Options for DSLs on the JVM

What are the various options for building DSLs on the JVM and how can you choose the best one for your next project?

In this fast paced session we'll look at a range of techniques for building DSLs. From Java and Groovy expression builders to Scala metaprogramming, the strengths and weaknesses of XML for external DSLs and fully featured approaches to external DSL development such as XText and ANTLR. We'll also look at practical issues such as DSL evolution, and IDE support and the relative benefits of each approach for different types of problems.