You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Ahmed Saad <my...@gmail.com> on 2005/06/14 04:48:53 UTC

[sidenotes] Platform of Platforms

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

Re: [sidenotes] Platform of Platforms

Posted by Steven Gong <st...@gmail.com>.
On 6/14/05, Ahmed Saad <my...@gmail.com> 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> <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>
> <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.


I got the idea of interoperability of java and .NET several years ago when I 
tried to make an avalon like component container to support both java 
components and .NET components. At that time, I was thinking of the solution 
of an xml-like protocol between the components which is quite maintainable 
but may get the poor performance. Your post is quite insteresting and it 
seems feasible to implement it in the VM layer. :)

-- 
Best Regards
Steven Gong

Re: [sidenotes] Platform of Platforms

Posted by Neil Macneale <ma...@theory.org>.
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
>