Sun Hires Two Key Python Developers 173
sspringer writes to let us know about Sun's continuing push to support scripting languages other than Java on its Java virtual machine. Sun just hired two key Python developers: Ted Leung, a long-time Python developer at the Open Source Applications Foundation, and Frank Wierzbicki, who is lead implementer of the Jython project. They will both work on Jython, which enables Python to run on the JVM. Last month Sun's CEO said the company wants to "take the J off the JVM and just make it a VM."
I'm glad he didn't (Score:3, Informative)
Re:What happened to Tcl? (Score:3, Informative)
Re:Let's take off the 'V' as well! (Score:3, Informative)
Re:I'm glad he didn't (Score:3, Informative)
Um, not just Jython (Score:5, Informative)
Re:Inevitable, and very welcome (Score:5, Informative)
Yes, and Microsofts strong focus on multiple languages from the onset also gives the CLR/DLR some clear advantages over the JVM.
The CLR was built around a the notion of a Common Type System (CTS) which means that different languages can share actual objects without having to wrap them. Wrapping cost performance (wrapping and unwrapping when passing between languages). But wrapping is also inherently language-pair oriented, i.e. between 2 pairs of languages such as Java and Jython. Other dynamic language cannot inherently use Jython objects but must also wrap the "canonical" java objects. It is not that it is impossible to achieve on the JVM platform, it's just that Microsoft has a much more mature VM and type system for this kind of job.
Take Java generics. The JVM type system have no notion of "template" or "generics", hence the generics in Java are implemented through the dreaded type erasure. But that means that no other language (e.g. Scala) can share generic types with Java. Contrast that with the CLR where generics are 1st class type citizens, both in their generic form and when all type parameters has been fully bound.
Interestingly, the CLR/CTS seems to have been developed seperately from (but coordinated with) C#. The CLR type system can actually represent types which you cannot describe using C# or VB.NET. The CTS is "bigger" and more generalized if you will. The Java VM was always just aimed at serving the Java bytecode. This is something that is going to haunt the JVM now when they are going all multi-language and dynamic.
Re:Nothing New... 12 years later (Score:5, Informative)
Re:What happened to Tcl? (Score:4, Informative)
Re:Let's take off the 'V' as well! (Score:3, Informative)
Re:Inevitable, and very welcome (Score:5, Informative)
The only problem the JVM has, as far as I can see, is that it's got this whole "Java" thing wrapped around it. The JVM itself is much better suited to all sorts of languages, if only we can punch a hole through the Java exterior. And that's exactly what we're going to do, by adding dynamic invocation support in (hopefully) JDK7 and a host of other features like tail calls, tuples, value objects, continuations, and so on in OpenJDK subprojects like the Multi-Language VM.
If anything, the CLR is a much more difficult platform to develop dynamic languages for due to its strict static-typed nature. You have to do some really unpleasant tricks to get the CLR to run a dynamic language fast, and that costs a lot of development time and hassle. DLR hopes to make some of that happen across all languages, but at the end of the day the CLR is just not as advanced a VM as the JVM.
At any rate, it's going to be an interesting couple of years.
Re:too little too late (Score:5, Informative)
Re:wow; parrot has had an impact. (Score:2, Informative)
Sun is going after the ruby and python developers because they're diversifying. Sun's biggest software competitor is IBM which directly or indirectly controls all of its products and their dependencies.
Re:wow; parrot has had an impact. (Score:5, Informative)
Re:What happened to Tcl? (Score:5, Informative)
Tcl biggest selling point now is the packaging and deployement.
I've written apps in a lot of languages, and deployed them all. Absolutely nothing beats Tcl for cross platform deployments. I got a starkit for ppc405, wrote my app on x86. A simple script packaged it all up in less than 2Mb.
Another few lines, and I had a win32, linux and ppc405 single file executable(for each) ready to go.
We also use java, which requires a separate 20Mb JRE install, whether its in your distro or not, you still need it, and the right version. Oh and Java 1.5 and Java 1.6 jar classes are incompatible, HAHA. And how many of you out there have a JRE for ppc405 (not a Mac, but a older series used in embedded systems)? Tcl is deployed on far more architectures.
The 8.4 and later versions are very fast and lightweight.
Making a gui in Tk is fine and simple, and well, you're gonna make a gui in Tk if you use Perl, Python, Ruby anyway.
All those other tools could learn from the Tcl packaging design.
Re:Nothing New... 12 years later (Score:3, Informative)
Re:Inevitable, and very welcome (Score:-1, Informative)
Re:What happened to Tcl? (Score:1, Informative)
So you must mean
Now please tell me a platform that you take an app written for a new release, and use on an older release without special compiler commands telling it to use the old release, and avoiding all the new stuff. Ohh, wait that is just USING THE FUCKING OLD RELEASE.
No Java 5 shit does not work on Java 1.4. No Windows XP applications don't run on Windows 2000.
But Java 1.4 apps run fine on Java 5, and Java 6. Just like Windows 98 & 2000 apps run on XP. Unless the developer does something fucking retarded like use a private API.
I'm not claiming that TCL does not have advantages over Java, such as its smaller runtime and the fact it has been ported all over the place, but please don't just make shit up when you want to bash Java. I know it is hard to bring out the "Java is slow" line anymore as no one believes it, but making up new shit, well it is just low.
Re:What happened to Tcl? (Score:1, Informative)
No, I moved on to wxWidgets in my Python. I prefer the platform native look and feel and richer widget set it gives though Tk is (has?) starting to improve in that direction.
Re:Inevitable, and very welcome (Score:2, Informative)
Actually FOSS might have done language-interoperation in other ways: given that the source code is available, we might have had automated tools to generate bindings automatically
Actually, you should check out SWIG [swig.org]. It has been around since 1995... open source has had automated tools to generate bindings for a long time now. The main problem with this approach is that C does not give enough information. The biggest problem is memory management. most scripting languages are garbage collected, but there is not enough information in C headers for SWIG to know where memory is allocated, and so on.
Essentially, using SWIG comes down to letting SWIG wrap everything just from the headers, except you need to tell SWIG about memory management.... which functions allocate memory that should be garbage collected, which functions take ownership of memory so the object should be removed from garbage collection, and so on....