Hello-

I've been lurking for a while now. No better time to start writing than now, I suppose...

I don't find your idea strange at all. It seems that layering software is in the nature of software itself. At one time it was considered ridiculous that you would write software to assemble human readable instructions (assembly language). It was thought that it would never be fast enough, and would cause more problems than it solved. Well, we all know how that argument turned out. Building languages on top of languages in computer science is an interesting history of continual re-evaluation of the problems at hand, and how to solve them.

These advances in programming languages are generally the result of there being a common set of problems which needs to be solved more easily. Can you imagine a new general purpose programming language which didn't do memory management or wasn't multi-threaded? These features are simply so common place that we would consider anything less a step backwards. But there are still problems to solve, and things like Web Services and AOP, and any number of other things are just minor steps forward in solving these problems. And all of these things allow you to execute arbitrary code, which allows you to execute C libraries, which allow you to execute assembly. So even though there are many layers, you can always dig down to the lower layers if required.

In ten years I assure you that there will be some new thing that has all that stuff (or whatever stuff does not die out as a fad) in the core language and it's libraries. It will be the new platform for awhile, and naysayers will claim it's too slow and causes more problems than it solves. Eventually they will come around and given enough time, the next platform will be built on top of that. This is why writing software is fun, and keeps us all up late!

Cheers,
Neil


Ahmed Saad wrote:
Hi all,

Please note that I'm not by any means trying to raise a debate of any kind I'm just trying to brain dump some thoughts about future development platforms.

I thought I'd share a "strange" thought that bubbled up in my mind while i was in the metro (aka the underground or the tube). I think what stimulated this idea are a set of articles i read about interoperability between java and .net. The emphasize here is on code-level interoperability not through any XML-based protocols (web services). Another thing is how each of the two platforms is trying to port in the best of the other. From tools or libraries (Ant -> NAnt, JUnit -> NUnit, etc) to Web development paradigms ( ASP.NET <http://ASP.NET> WebForms -> J2EE JSF). I know the that under the hood WebForms and JSF are totally different but they essentially deliver the same: Web applications based on an event model with Page Controllers and can be visually designed by drag-and-dropping components in a visual editor. The two platforms are heading to the same place: productivity, performance, completeness. Did i miss somthing? oh yeah, being Cross-Platform. Both Java and .NET are built around machines abstraction runtimes. Sun offcially release JREs/JDKs for Windows, Linux and Solaris. Microsoft? .NET only for Windows ( but the shared source CLI (Common Language Infrastructure) can be build on Windows, FreeBSD and Mac OS X [
http://www.microsoft.com/downloads/details.aspx?familyid=3a1c93fa-7462-47d0-8e56-8dd34c6292f0&displaylang=en].
Mono [http://www.go-mono.com] is taking, driven by Novell, .NET development on Unix-likes by a storm. Let's get back to our code-level interoperability talk. I think i only have to mention two projects to get to my point: the .NET-based JVM implementation known as IKVM [http://www.ikvm.net/] (which ships now with Mono) which makes such interoperability a snap, and Mainsoft's Grasshopper [http://www.mainsoft.com/], quoting their site: "Grasshopper is a Visual Studio .NET(r) plug-in, which enables you to use C# or Visual Basic .NET(r) to develop cross-platform ASP.NET
<http://ASP.NET>applications that run on Linux
(r) and any platform running Apache Tomcat."

Now i finally come to the strange idea. What if someday, somehow, somewhere we come to the point where a platform could be developed atop these platforms!! Let's call it PX or Png (sure that would be a "next generation" platform :). So you write applications for PX and using PX Class Library (which is will be engineered to provide unified interface to the underlying Java/.NET class library)

I know it's a totally weird idea but who knows!!! Comments are welcome, for sure, and you all have a nice day.
Regards,
ahmed

Reply via email to