"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"

ADX for Programmers

Contents

Related pages



Why

A place for those of us who think in Python, C++ et al to let our hair down and discuss things more from a how to process viewpoint.

Requirements

Starting with some candidate points,

OS Deployment Platform

Server-side

Desktop

  • Windows XP
    • utilities for validation & data file conversion

Preferred programming language

No order of merit here but please add votes or comments underneath.

C++

Pros:
  • fast code, seamless integration into existing c++ programs

Cons:
  • no possible browser deployment
  • heaviest language to program
  • C-based tools like Xerces-C falling behind

Votes:
  • AndyDent will use occasionally if have embedded logic in existing c++ program

Java

Pros:
  • highly-portable server-side
  • toolkits in Java space seem best-maintained

Cons:
  • big overhead for browser deployment
  • heavy language to program

Votes:

Python

Pros:
  • seems easiest language to program in especially for non-professionals, and highly-readable which is important if a domain expert is reading your logic
  • can do a lot with simple code using elementtree and particularly its XPath support as in adx2dot.py
  • list comprehensions are a very useful technique for processing compact spreadsheets, as seen in adxFromSheet.py, eg:
    heads = [inSheet.readline().rstrip('\n').split('\t') for i in xrange(0,numHeadingRows)]
    sampleRows = [inSheet.readline().rstrip('\n').split('\t') for i in xrange(0,numSamples)]

Cons:
  • can't easily embed in browser (anyone know if Jython works in applets?)
  • XML-handling is bit of a mess of tools - need to standardise on something like elementree

Votes:

XSLT

Pros:
  • can embed effectively in browser presentations, given XML doc or feed
  • declarative

Cons:
  • mind-numbing syntax
  • recursive, pattern-matching semantics hard to learn (I recommend studying Scheme first)

Votes:

C#,VB.NET and other *.NET

Pros:
  • Relatively fast (somehow sits between java and C++)
  • Good XML/XSLT support both as SAX and DOM
  • note that there's a very fast Python on .NET - IronPython
Cons:
  • No direct browser embedding, but good server side support with ASP.NET
  • Limits us to Windows platforms, unless we ignore Mono risk

Votes:

Embedding factors affecting tools

Schema Change Issues

ADX 2 to 3

Separating Procedure Declarations from Instances

AdX2 muddied things a bit with instances and declarations.

-- AndyDent - 20 Feb 2006

 
Topic revision: r6 - 15 Oct 2010, UnknownUser
 

Current license: All material on this collaboration platform is licensed under a Creative Commons Attribution 3.0 Australia Licence (CC BY 3.0).