Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Dave Thomas is active.

Publication


Featured researches published by Dave Thomas.


The Journal of Object Technology | 2008

Enabling application agility: software as a service, cloud computing and dynamic languages

Dave Thomas

The good news is that application developers are on the verge of being liberated from the tyranny of middleware. Next Generation IT will leverage a new computing platform which makes the development and deliver of applications significantly easier than it is today. This new platform consists of Cloud Computing, Software As A Service and Dynamic Languages. Cloud Computing [1] offers mainframe or better infrastructure through a small set of services delivered globally over the Internet.


The Journal of Object Technology | 2003

The Impedance Imperative Tuples + Objects + Infosets =Too Much Stuff!

Dave Thomas

The information technology (IT) design patterns were incorporated into application program generators to develop useful robust applications. Fourth generation languages were designed for create, read, update and delete applications operating over complex file structures and databases. Efforts were made to develop end user programming languages, which created and deployed applications across semi-structured information. The XQuery activity have defined a semantic model in order to provide a sound information for XML query and update processing of semi-structured information.


The Journal of Object Technology | 2002

Reflective Software Engineering - From MOPS to AOSD

Dave Thomas

The role of Aspect Oriented Software Development (AOSD) to unravel the complex tangled programs in reflective software engineering was discussed. AOSD can provide the developers with a better ability to deal with the complexities associated with transactions, persistence, security, logging, tracing and exception handling. AOSD tools provide new ways to describe, factor and compose software. AOSD can be used to present the business developer with a much simpler programming model, similar to transaction monitors.


The Journal of Object Technology | 2009

Cloud computing - Benefits and challenges!

Dave Thomas

The most widely touted advantages provided by Amazon EC2 are very similar to those offered by traditional outsourced data centers that offer reduced costs for hardware processing, storage, bandwidth and software. The major difference with EC2-like infrastructure clouds is that they are available to any size firm, from an individual backing up their music collection to a major retailer. Unlike complex data center service agreements, EC2 services are pay by use. Finally, they can be accessed easily through a small number of web services.


The Journal of Object Technology | 2005

Refactoring as Meta Programming

Dave Thomas

The importance of refractoring in the development of object oriented programming and management of the evolution of large software systems is discussed. Refractoring is a process that takes an existing program and improves it by transforming the program into a new program that is an improved version of initial program. A major refractoring is always best done as a pair programming activity to reduce risk and manage the complexity. It is stated that while refractoring tools address programs, they seldom address persistent information associated with the current and transformed program.


The Journal of Object Technology | 2008

Real men do javascript! programming the world in a browser

Dave Thomas

JavaScript is the most widely used dynamic language in the world and is becoming increasingly important as an application programming language. While many hard core developers are still in denial, Web 2.0 application developers from small and large companies are developing increasingly complex applications that run close to the user. Flex is a popular and productive tool for building rich client web applications which are scripted using ActionScript, a dialect of standard ECMAScript. Increasingly RESTful protocols leverage the JavaScript Object Notation (JSON) a simple concise portable object serialization format. Rhino enables JS to be run on the server side for applications compiling JS to the JVM. There is even a version of the popular Rails framework called Jails. For the near term, JS dominance and major applications will be on the client such as GoogleApps and Thinkature. Recent announcements of more robust and significantly higher performance runtimes, including Google V8, Mozilla SpiderMonkey and TraceMonkey, Safari SquirrelFish and MS Jscript for the dynamic language run-time (DLR), are moving JavaScript far from being just a way to spiff up your web page to being both a fun and serious programming language. Google V8 is designed to support large applications such as Gmail. The MS Volta research project compiles the CLR directly to JS to allow MS CLR applications to run in any browser without requiring even the DLR. Competitors are rushing to show that they have the best performing engine. These efforts show how seriously the major players see the language as a platform for the future. In JavaScript The Wrrlds Most Misunderstood Programming Language Doug Crockford articulates the major features of JS. In his recent book [1] he provides a balanced perspective of the good and the bad of JavaScript. JS in many ways


The Journal of Object Technology | 2008

Next generation IT - Computing in the cloud life after jurassic OO middleware

Dave Thomas

It is painfully clear that current middleware cannot provide agility nor provide cost effective scalable commodity infrastructure. Current IT applications programming technology is too complex and too inefficient to leverage next generation infrastructures On top of this we are facing an acute shortage of skilled application developers. Hence we need to consider simpler alternative solutions, of which cloud computing and functional Infrastructure enabled Domain Oriented Programming seem to be the most promising on the horizon. Simple services enable agility and leverage scaleable commodity technology. Functional Services enable rapid application development and enable the service infrastructure to handle concurrency. Domain Oriented Programming enables domain specific service development on top of which Business Programming empowers business teams with embedded developers to deliver applications quickly.


The Journal of Object Technology | 2004

Message Oriented Programming The Case for First Class Messages

Dave Thomas

The hallmark of object-orientation is the use of objects to model a computation. If something is interesting it should be modeled as an object (more properly a class or prototype). Naive models treat exceptions, transactions and bitblt as methods. However, when one designs a real system, these objects are so interesting that they need to be modeled as classes or class collaborations with many methods. In this article we argue that the message-centric view deserves more attention. The


The Journal of Object Technology | 2008

The legacy and liability of object technology: The dark side of OO

Dave Thomas

It took until the mid 80s for the pioneering ideas of object-orientation from Simula 67 to appear in industrial languages such as Objective-C, C++, Smalltalk, Eiffel and until the mid 90s for OO to become mainstream with Java and C#, UML etc. Now, even Cobol and Fortran have modern dialects that are OO. Java has reportedly passed COBOL in terms of usage. Many companies have the majority of their legacy code in C++ or Java. Since COBOL has for many years been the dominant legacy language these companies are now looking at their OO legacy with increasing concerns about their ability to cope with it.


The Journal of Object Technology | 2007

Agile artifacts - documenting, tracking and reporting: trust the source Luke!

Dave Thomas

One of the obstacles to introducing Agile development into large software organizations is providing a means for the developers to work effectively using light weight practices and tools while at the same time ensuring that the management and company have the necessary visibility and documentation to ensure that they can manage and later maintain the software being developed. Unfortunately, many of the commercial tools are very draconian and inflict all sort of extra work and overhead on developers while at the same time not providing the promised benefits. This often results in tension between process and programmer [1] which can give the impression that the developers dont care about documentation or design and that the management cares only about the process artifacts rather than the code. In any large scale Agile process, artifacts include not only source code but also Requirements, often bundled into Features, Use Cases and Stories, and their associated Unit and Acceptance Tests. Complex Features and Stories are composites of smaller ones. Additional supporting artifacts include Models/Prototypes, Teams and their Backlogs. We describe a simple Literate Programming approach for capturing artifacts and associated automated tooling to support tracking, reporting and traceability. Traceability makes it possible to identify and understand the relationships between artifacts. For example, for a given requirement, one can answer questions like: Has the requirement been implemented? If so, by which developer(s)? Where in the code base will I find it? It is important to understand that the mappings between requirements, models, use cases and code are not one-to-one, nor are they always precise. They are a collection of statements about the software that can be used to model it for the purpose of understanding. In this article we describe a simple code-centric approach which we have found useful for many years. It can be implemented quickly using open source tools with

Collaboration


Dive into the Dave Thomas's collaboration.

Researchain Logo
Decentralizing Knowledge