tagged by: programming environments
With the rise of so many mobile platforms, each with a different UI, many people are looking at cross-platform toolkits. These allow you to write a mobile app once and then deploy it to a range of mobile devices. Are these toolkits worth using?
What's the most common programming language in the world?
If I want to teach people object-orientation, which language should I use?
Model Driven Software Development (MDSD) is a style of software development that considers itself as an alternative to the traditional style of programming. The approach centers itself on building models of a software system. These models are typically made manifest through diagrammatic design notations - the UML is one option. The idea is that you use these diagrams, to specify your system to a modeling tool and then you generate code in a conventional programming language.
Should we strive to only have one language in our development efforts?
An acronym for: Plain Old Java Object.
A common question in IT departments is whether to provide a capability by building custom software or by buying a package. For longer than I've been programming the debate has raged about how to make that choice. My base position on this is founded on the UtilityVsStrategicDichotomy. Boiled down this means that if the business process you are supporting is part of your competitive advantage you should build custom software, if not you should buy a package and adjust your business process to fit the way the package works.
Despite the clear excellence of my opinion, not a lot of companies seem to do this. Often they neglect the dichotomy, which is one problem. But the problem I want to focus on here is the common trap when they buy a package.
A way of thinking about programming introduced by James Noble and Robert Biddle. The essence of it (at least for me) is that software development has long had a modernist viewpoint that admirable software systems are composed of uniform components, composed in a uniform and simple way. (Smalltalk and Lisp are good examples of this kind of thinking.) A post-modern view is that software is all sorts of different very different stuff glued together in all sorts of different ways (think Perl and Unix), and this style of software (big bucket of glue) isn't a bad thing.
An alternative to SourceEditing is the idea that the core definition of a system should be held in a model and edited through projections.
Source based programing environments hold the definition of a system in a set of source files which act as both an editable and storage representation of the system definition. These sources are then transformed to an executable representation that actually runs. Source based code is the most familiar form around today in contrast to in contrast to ProjectionalEditing (where I discuss the two in more detail).
XML has been around for a while now, and it's used a lot - indeed a lot more than it should be. Like most tools XML is good for some things and not for others