Want more...Platforms

Posted by on in Blogs
Platform is one the most overloaded terms in computer technology. When someone talks about supporting a platform they might be referring to an operating system platform, hardware platform, mobile platform, database platform, graphics hardware and software platform, service based platform, application based platform, a framework, or an architecture.  Operating system platforms in use today include Windows (desktop, server, and Mobile), Linux, OS X, iOS, Android, Blackberry OS, Unix (and it's variants), Chrome OS, and WebOS.   Database platforms include Oracle, SQL Server, InterBase, Firebird, MySQL, DB2, Sybase, Informix, Paradox, Access, dBase, PostGreSQL, and SQLite.

Hardware platforms include Intel, AMD, ARM, Cell, and RISC processors.  Application frameworks include Java, .NET, Mono, Spring, and Adobe Air.  Service based and distributed systems include SOAP, REST, CORBA, DCOM, JavaRMI, DCE, Dabo, and other vendor specific services. For Web applications there are also a multitude of platforms and frameworks including IIS, Apache, ASP.NET, RadPHP Component Library (RCPL), Struts, Jave Server Pages(JSP), Java Server Faces (JSF), Google Web Toolkit (GWT), Rich Ajax Platform(RAP), Spring, Ruby on Rails, Flex, Django, Drupal, Dojo, and qooxdoo.

There are several emerging mobile cross platform application frameworks including PhoneGap, Appcelerator Titanium, Rhodes Mobile, Open Mobile, and JQueryMobile. There are even Platform as a Service (PaaS) choices - see the "Ever-Growing List of PaaS Companies and PaaS Projects"

Architectures can include desktop, embedded, client/server, distributed, multi-tier, and cloud.   Graphics hardware platforms include NVidia, AMD, S3 Graphics, Via Technologies, Matrox, and Intel. Graphics, GUI and Windowing software frameworks include (but are not limited to) CUDA, GDI/GDI+, WPF, DirectX, OpenGL, XNA, OpenCL, 3DKit, Cocoa, Quartz, Rich Client Platform(RCP), wxWidgets, MFC, Flash, PixelLight, Silverlight, AWT, Swing, SWT, GTK/GTK+, Juce, XWindows, KDE, Qt, Motif, InterViews, and HTML 5.

With the cornucopia of choices developers have, it's a great time to be a developer.  It is also a challenging time to be a developer.  Which platforms should you use?  Which platforms will be around for the long term. No, I'm not going to define the length of "long term", but suffice it to say, it should at least be until the end of this decade. Is there an Application Platform that will help developers write one program and target several desktop, client/server, server, operating system, graphics, and mobile platforms?  Many cross platform frameworks have tried and have either failed completely or failed to gain a strong following. Some frameworks and platforms are still trying to find their way.

Here are a few articles and blog posts about the challenges, failures, and end of notable operating systems and cross platform frameworks:

What might an application platform include in order to attract the attention of developers who need to build applications for:

  • Multiple operating systems

  • Different graphics systems

  • SQL and NoSQL databases

  • Desktop, client/server, server, multi-tier, and cloud architectures

  • Mobile and tablet devices


For all of the applications that will run on disparate systems, a successful application platform needs to avoid the "lowest common denominator syndrome" and include support for many of the following capabilities:

  • Object-oriented

  • Component based

  • User defined Styles and Templates

  • Native code CPU and GPU support

  • 2D and 3D graphics

  • Database and Cloud storage

  • Data, Application, and Visualization services

  • Graphic Animation and Effects

  • Location, Camera, Notification, Accelerometer, and Gyroscope support

  • Touch, Gesture, Motion, and Physics based interactive UIs

  • Voice and Image recognition


The great thing about programming is that we have so many choices. The bad thing about programming is that we have so many choices.  Just look at the plethora of Google Code APIs and you can understand how wonderful and complicated it is to have choices.  We can also choose from many software and hardware industry and de-facto standards. My bottom line: the use of object oriented application frameworks can insulate us from underlying platform differences and changes.

What platforms and frameworks are you using in your software projects?  What capabilities should an application platform provide?


About
Gold User, Rank: 1, Points: 2466
David Intersimone (known to many as David I.) is a passionate and innovative software industry veteran-often referred to as a developer icon-who extols and educates the world on Embarcadero developer tools. He shares his visions as an active member of the industry speaking circuit and is tapped as an expert source by the media. He is a long-standing champion of architects, developers and database professionals and works to ensure that their needs are folded into Embarcadero's strategic product plans. David holds a bachelor's degree in computer science from California Polytechnic State University at San Luis Obispo, California.

Comments

  • Guest
    Alister Christie Sunday, 31 July 2011

    "Standards are Great, and there are so many to choose from"
    - Unknown

  • Guest
    Connor; Saturday, 24 September 2011

    Appreciate it.

  • Guest
    Steve Saturday, 2 March 2013

    When I work on my project the most important criteria is that the platform and framework is free (as in freedom, defined by Free Software Foundation) and open (as defined by Open Source Initiative for software and in similar ways for other parts). Of course they also have to be cross-platform so that my software isn't traped to one operating system, which is often the case with closed and proprietary software. So currently my favourite platforms/frameworks that I use and that meet these criteria are C++, Qt, KDE Platform, Boost, OpenGL, GCC (and many other GNU tools), CMake, OpenCL. And I do the work mainly on GNU/Linux operating system.

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: