 2007 West |
|
GOLD SPONSORS:
|
Active Endpoints Your SOA Needs BPEL for Orchestration
|
BEA Virtualized SOA: Adaptive Infrastructure for Demanding Applications
|
Nexaweb Overcoming Bandwidth Challenges with Nexaweb
|
TIBCO What is Service Virtualization?
|
|
SILVER SPONSORS:
|
WSO2 Using Web Services Technologies and FOSS Solutions
|
|
Click For 2007 East Event Webcasts
|
|
TOP THREE LINKS YOU MUST CLICK ON
Editorial
JavaOne - The Next Programming Models, RIAs and Composite Applications
I've been around software for 20 years now. Looking back, I have mixed feelings about the progress we've made. The end results have been amazing but the process of building software hasn't fundamentally changed since the 80s. In fact, I see us make some of the same mistakes over and over again. One of the common anti-patterns is over-relying on tools and frameworks instead of inventing new programming models.
Reader Feedback : Page 1 of 1
#18 |
Nice article. I've linked to some articles which you might find interesting. It includes a paper I prepared on creating evolvable programming languages encoded in a binary format called Argot. The language is still in early development, but I strongly believe that solutions similar to it is where future languages need to move. |
#17 |
I won't discount the importance of Ajax and "RIAs" as a deployment model -- even as a kind of domain within in which system architectures could be grouped. But these aren't new programming models. We use the same old programming models to build new kinds of apps. Examples of Programming Models: 0) Hardware based programming (plugboards etc) 1) Stored program (program as data) 2) Assembly programming 3) High level language programming 4) Structured 5) Functional 6) Object oriented 7) Aspect oriented |
#16 |
RIA (Rich Internet Applications) is a marketing term Macromedia (Flash, Cold Fusion) conjured up as a way to get people looking at their development products. Even googling on the term only points you back to one vendor. Not exactly what I would call a model... |
#15 |
boatboy commented on the 11 Aug 2005
Avalon != Ajax. Avalon will be a system for declaratively defining a rich ui. The design will presumably allow for what is called a RIA here, but isn't limited to that. More analogous is Microsoft's 'Atlas' - which will probably be released much sooner, and be more cross-platform. |
#14 |
swamii commented on the 11 Aug 2005
>>> Microsoft will try to catch up to with >>> Avalon in Longhorn (now Windows Vista). Late != unsuccessful. It matters little when Microsoft controls the browser and the operating system. They could start deploying RIAs (Avalon web apps) tomorrow and have broad support for it in the browser and OS if they wanted. One thing's for sure: I have yet to see a web UI framework look as good as Avalon web apps. Aeroglass over the web looks great. I wonder how well it will be accepted by the public. |
#13 |
owlstead commented on the 11 Aug 2005
Better runtime environments and IDE's will be more important than any programming language. The way Java or .NET handle components should be an eye opener. What you want is code you can control, what does what you expect it to do. On the runtime part: - plugins (see Eclipse and OSGi technology) - assemblies/libraries (see .NET framework) - VM support (garbage collection, overflow handling, exception handling, bounds checking etc.) - runtime information (reflection) - supporting components (application servers, message services) On the IDE part: - parsing editors (see Eclipse) - code analyzers (PMD) - semantic links from code to design tools (needs a parsing editor to function best) - unit testing I see a mayor shift towards runtime technologies coming up ahead. I can see more flexibility coming up in how programs are run and objects are used. Compilers are already running in the background to use Java both as script and as compile time language, for instance. Java may be to strict on some issues however. For programs, components, OO and the imperative model will probably be here to stay. Other languages will be used for their respective domains, but the language wars seem to be over for now (as each programming language looks more and more like its siblings). Lets focus on the runtime and supportive technologies. And getting the things running reliably, for crying out loud. I don't think using multiple languages that try to accomplish the same thing is such a good idea (see .NET C++, C#, VB7 and J#). You end up learning all of them (see MSDN). Mixing with languages that use other programming paradigms could be usefull though. |
#12 |
gravyface commented on the 11 Aug 2005
ColdFusion got it right a long time ago. Sure, its a commercial platform, but being able to leverage C/C++, Java, and .NET and of course AJAX and Flash through simple, tag-based markup, really speeds things up. It can run on any major platform too. |
#11 |
Jean-Luc Fontaine commented on the 11 Aug 2005
I am amazed at the complexity level that you are writing about, when there has been thin clients (X Windows, ...) for a long time, and now NX which has the greatest of potentials. Investing in the network instead of redeveloping your applications is so much more efficient and cost effective! |
#10 |
Jeremy Pereira commented on the 10 Aug 2005
Your web site truly sucks. I'm sure the story is great, but the audio multimedia which is on by default just makes me want to hit the back button straight away. All the animated adverts distract from the content too. PS the e-mail address is a real one in spite of the gratuitously insulting user name :) |
#9 |
Colonel Panic commented on the 10 Aug 2005
I guess when I think of 'models of programming' I think about things like Object Oriented or Functional programming categories. This article seems to confuse the idea of 'models of programming' with actual types of applications: desktop vs. Web apps or perhaps a fusion of the two. Now one could program either a desktop or web app (or an RIA) using either an Object-Oriented approach, declarative, functional or even a combination of them. Let's not confuse the application with the programming model (or perhaps programming metaphor would work here?) If the question is what will the next model of programming be (beyond the current reigning Object Oriented model) then the answer could probably lie in the direction of Aspect Oriented Programming. RIA's may be implemented usian an AOP approach, but I don't think it's right to say that RIA's will be the new programming model. RIA's may be the new application model. |
#8 |
The trend towards RIA's/webapps has traditionally been restricted to those in a database centric role, but with the increasing use of AJAX and the like, the webapp is pushing further into the desktop application space. Obviously the centralization and server-side nature of the applications helps deployment and maintainance, but developers are basically trading the platform of an operating system for the platform of a web browser, with all the intricacies and compatibility issues that follow both. Webapps are a good direction to take for data access apps, but where the line becomes less clear cut and extreme amounts of javascript/dhtml are needed to achieve behaviours, the apps can become somewhat clunky and difficult to use. To me, it's essential that the designers of today's webapps realise the limitations of what they're working with and when to use traditional desktop apps. |
#7 |
ThinkTiM commented on the 10 Aug 2005
RIA is not a programming model. RIA is more of a type of architectural pattern...it is definately not a programming model like modular programming, object oriented programming, etc... Although I guess "programming model" could mean just about anything. The author of the article should not have mixed something very specific ("framework") with something very general ("programming model"). |
#6 |
>>> What we need is a parallel programming >>> language that makes it easy and natural >>> to take advantage of multi-core >>> processors. These have been around for ages, but mainly for scientific computing. For example Fortran 90 and later versions, but there are also variants of C++ and others. Usually they take advantage of obvious parallelity in the data, for example matrix multiplication, and make the processors handle the separate bits without bothering the programmer with threads etc. It's also the kind of computation that takes place in graphics cards with their multiple pipelines. I don't see any easy way to do the same for general programming. For example, separate threads for user interface and the actual processing is a good idea, but a very high-level one, not the kind of thing that would be done automatically by a compiler. I hope that the existing parallel programming languages would be more widely used for the computationally intensive parts. It seems so silly that home computers have focused on pushing single processor performance for all this time, while 'real computer science' has been reaping the benefits of parallel processing for years. |
#5 |
lheal commented on the 10 Aug 2005
I'm pretty sure it will never be the rage, but I like Programming Language Oriented Programming for difficult problems that don't seem doable in C/++ or something similar. Most programs can be written practally in most languages, since all you really need is "if", "decrement" and "goto". Some problems aren't a good fit for a given language. That's why there's more than one. Any program that breaks its problem into chunks is in effect creating its own mini-language. Whether you call it Abstact Data Typing or Object Orientation or Functional Programming or even Top Down Design, what it comes down to is dividing the problem into manageable chunks and working with those chunks until done. I wish all CS students were taught from day one, or maybe day fifteen, how to create their own programming language. Usually you have to take a compilers course to get that. Creating a new language is not that hard. It gets a bad rap because people think they have to write a backend for a given architecture, but writing the backend to generate C++ or some other HLL is just as good, since they've already done the heavy lifting and you can automate the compile train with your favorite maker. |
#4 |
an0n commented on the 10 Aug 2005
The best programming models are the ones from the past, as usual. Lisp, Forth, these languages created a community of best-practices that we are all reinventing all over again. Ruby on Rails is great, not because it's something NEW, but because it wraps up all these best practices with a friendly face. Creating simple domain-specific languages is how talented programmers do things already, with powerful languages like Lisp. However languages like PHP, Python, Java, TOOK AWAY this ability because language designers thought it was "unnecessary" or "too complicated" for the average programmer. Along comes Ruby, which gives you back some of that power. And a talented programmer took it and "did the right thing" by creating a tight domain-specific language. Now everybody is so excited. Great, whatever makes programs simpler and more expressive is fine by me. But can we please stop talking about the "next" great thing, when hardly anybody remembers the great things from the past? If there's any problem in this industry, it's that programmers have ZERO knowledge of fundamentals. Instead of standing on the shoulders of giants, they constantly re-invent wheels. |
YOUR FEEDBACK  | Is Sun Looking to Replace
CEO Jonathan Schwartz? By Maureen O'Gara Brigdson Smith wrote:
remember, Eric Schmidt
was Schwartz's first boss
at Sun - something tells
me if he left Sun, it'd
take four minutes for him
to end up to Google. |  | What Does the Future Hold
for the Java Language? By Joe Winchester Tommy wrote: I simply do
not agree on many parts:
- .NET has a lot of
traction
- you can
certainly know well (and
master) more than one
language. If you cannot
master more than one
language, this could
potentially be one of
your limits.
- Java is not a perfect
language
- It is ea... |  | i-Technology Opinion: Why
Use Extreme Programming? By Troy Holmes James Nwaba wrote: This
is a nice article - very
straight froward, easy to
understand.However, there
was no mention of any
organization that have
implemented XP.
The author said, "Many of
the concepts found in
this lightweight method
of development have been
implemented into the ... |  | iPhone Office: 100 Ways
to Turn Your Device into
the Ultimate Productivity
Tool By Jessica Merritt QueZZtion wrote: Can the
iPhone really work as a
multimedia remote for
iTunes or even a desktop? |  | DoJa in NTT DoCoMo Phones By Zev Blut Venkat wrote: Excellent
explanation. It will be
helpful if it was in
pictorial form ie with
the emulator images. Can
u please send me the
I-mode to I appli
communication and a brief
explanatioj about the
architecture.Thanks in
advance. |
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
|
SYS-CON FEATURED WHITEPAPERS  | Saving Your Investment:
Transforming J2EE
applications into Web 2.0
using GWT By RIA News Desk The pressure is on to
keep pace with Web 2.0
entrants into the
marketplace. Rewriting is
expensive; | WSRP Really Works! - Part
2 By Matt Silver A standard from OASIS
called Web Services for
Remote Portlets (WSRP) is
used so portlets can be
deco | Adobe's Kevin Lynch and
Microsoft's Scott Guthrie
to Keynote AJAX World RIA
Conference & Expo By RIA News Desk Two of the biggest
launches in Rich Internet
Application history took
place in 2007/2008 when
Adobe | Sun Expects Q4 Earnings
Above Estimates By Java News Desk On Tuesday evening Sun
issued a fourth-quarter
guidance range largely
above analysts'
estimates. The | Virtualization Conference
Keynote Webcast Live on
SYS-CON.TV By James Hamilton Brian Stevens, the Chief
Technology Officer and
Vice President of
Engineering of Red Hat,
delivered | The Beauty of JavaScript By RIA News Desk JavaScript is one of the
most interesting and
misunderstood programming
languages in common use
toda | JavaScript: The Good
Parts By RIA News Desk JavaScript is a language
with more than its share
of bad parts. It went
from non-existence to
global | Use JavaScript 2 Today
with OpenLaszlo By RIA News Desk JavaScript 2 is becoming
increasingly important.
Learn how to take
advantage of JavaScript 2
while s | Server-Side JavaScript -
All the Cool Kids Are
Doing It! By RIA News Desk In this session that no
developer who uses
JavaScript or
ActionScript will want to
miss, delegates w | AJAX with jQuery By RIA News Desk jQuery is a rapidly
growing, popular
JavaScript library. Its
powerful and modular
architecture, whic | Why the Web Dinosaurs
Died By Jonas Jacobi; John Fallows; Ric Smith; Brian Albers A fast-moving Comet is
about to impact the
Internet. When it hits,
it will wipe away the
architectur | Sun Achieves Land Speed
Record: 1M Messages Per
Second By Java News Desk Algorithmic trading
continues to drive the
quest for greater speed
and lower latency in the
capital | AJAX and RIA Technology
Will Be Free for All: Sun
CEO By Java News 'Java's always been a RIA
platform - before the
world really wanted one,'
claimed Sun's CEO
Jonathan | Quest Software's JProbe
Now Available as Eclipse
Plug-In By Eclipse News Desk Quest Software announced
the latest release of its
Java profiler, JProbe
8.0, which is now offered
a | What Does the Future Hold
for the Java Language? By Joe Winchester Before Java I was a
Smalltalk guy. I remember
switching from one
language to the other and
the tippi | White Paper: "Ensuring
Code Quality in
Multi-Threaded
Applications" By Java News Desk Today, the world of
software development is
presented with a new
challenge. To fully
leverage this n | AccuRev and Rally
Software Partner to Scale
Agile Software
Development Best
Practices By SOA World Magazine News Desk AccuRev and Rally
announced a technology
partnership that will
integrate AccuRev
software change and | MyEclipse 6.5: The Maven
Tipping Point for 1
Million Java Developers By Eclipse News Desk Genuitec announced the
availability of MyEclipse
Enterprise Workbench 6.5;
Java's most compelling ID | AccuRev Leverages Web 2.0
Technology to Extend
Process Management Reach
Across the Organization By Web 2.0 News Desk AccuRev announced a new
AJAX-based Web Interface
and a native integration
with Microsoft Windows
Exp | Voyager Offers Android,
.NET CF, Java Runtime
Support By Wireless News Desk Recursion Software
released a private beta
version of their Voyager
mobile platform, with
powerful i |
SPONSORED BY INFRAGISTICS
|