Sun Hires Two Key Python Developers
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."
Got my hopes up! I thought you meant John Cleese and Terry Gilliam had new work at Sun...
Ask not what you can do for your country. Ask what your country did to you
John Ousterhout used to work for Sun and they had a golden opportunity to push Tcl a bit more and integrate it with Java... but they never did much with Tcl and he eventually left. It's a shame, because I rather liked Tcl with its absurdly minimal syntax.
-- Ed Avis ed@membled.com
The only innovation that I credit to Microsoft in all its decades of existence is that of the CLR (.NET) being focused on language-independence, and also on Microsoft pushing hard for projects like IronPython to run well. There is really no reason to have to write language bindings all the time; a library written in one language should be accessible to all others. In the long run, this is going to make whatever platform allows that capability far more competitive. Therefore Sun has no option but to go in this direction, especially given the popularity of dynamic languages in recent years.
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 this is happening now, with GObject-introspection, which is relevant so far to C, Vala and Python). But this hasn't happened in an extremely useful way thus far.
Note that this is just one reason for having a single VM for all languages. Security, optimization, etc. are others. In summary, kudos to Sun. Better late than never.
I guess we'll see which is better, Python's native, (J)VM or Parrot.
It takes a man to suffer ignorance and smile
Be yourself no matter what they say
Actually, I'd like to see multiple implementations of a class of (J)VMs, in addition to kripkenstein's point about mutiple languages targeting it/them. This would lead to a rapid shake-out of bugs and disfeatures.
--dave
davecb@spamcop.net
In 1995~1996 I was working at a medical imaging company and we were exploring the idea of using Java and its about to be announced graphics interface to be the basis of our new computerized viewers. This was in the time frame of the DEC Shark, a strong ARM based thin client, and Sun's HotJava browser.
Anyway, Sun has been harping about how the "JVM" could support multiple languages. They talked about Basic and fortran, I guess with M$ pushing C# and C++ on the JVM. Java can finally justify the multi-language aspect of their VM.
Tcl with its confused mixture of command line style shell script and C syntax made for a horrid language to both read and code in. IMO the only reason it was ever popular was because Tk was a very advanced GUI toolkit for its day but this isn't 1993 anymore, things have moved on and there are many better solutions
The only reason why Sun would hire them, now, is if they were concerned about parrot splitting the market.
I prefer the "u" in honour as it seems to be missing these days.
Cue music.
Indeed. The craze for virtualising runtime code has got way out of hand. Its fine if you want binaries to run unmodified cross platform , but it makes no sense whatsoever for anything else. These days people use Java because of the language and the libraries itself, not the JVM. In fact most java developers I know would be quite happy never to see the JVM again and just use a standard compiler , never mind JIT. I certainly don't understand the reason for using a runtime VM to run executables when a standard binary would suffice , which means I simply don't see the point of .NET either.
Eh? What OS you using , DOS 3.2? Thats easily implemented using file permissions and access control. Well , on unix anyway, can't vouch for Windows. If you don't believe me try and strace a running process you don't have permissions for.
Well, no, if you check Ted's blog, you'll see that he's going to be working on Python-in-general, not just Jython.
It allows you to specify per-application permissions, without creating a new user for each application. So you can run something as yourself, from your browser, but give it no access to the file system. You could give an application access to the file system, but no access to the network. Running under a VM lets you have a lot more fine-tuned control over what the application can and can't do. It also does it in a way that's completely platform independant. So even if you are using DOS 3.2 (assuming the VM runs on that platform), then the permissions you set, will work.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
You're probably half right. I think it stems from a realization that Java doesn't have to be the only tool on the JVM. And to that end, we're working hard to improve the ecosystem for language development in a number of ways. Heck, some of the most interesting parts of JRuby aren't even written in Java anymore...they're generated programmatically. Java is just one way to create JVM bytecode. We need both better tools for creating bytecode for many languages, and a better way to make the JVM's dynamic underpinnings serve many languages. We're working on both.
Missed the boat is perhaps too harsh - but they're definately late to it. All the same, people have been successfully using jython and jruby for some time now, even though many experience some integration problems. Speaking for myself, 3-4 years of using jython has been mostly a joy, but not completely painless.
This must be some new java of which I am unaware.
Intron: the portion of DNA which expresses nothing useful.
A VM should just be treated as just another Platform! It's a virtual CPU, and instruction set architecture. Taking this further, a language and a set of libraries packaged with a VM should also be considered a Platform just as Windows XP or Ubuntu 7.10 is a Platform. This is precisely why Java version hell exists! You should not update platforms willy-nilly. You should not take a platform and bundle it with an application! If you are smart, you should either make everything supremely backwards compatible (Windows) or supremely upgradeable (Debian based Linux) or make a clean (and well organized) break that provides dramatic benefits (Mac OS X).
Sun didn't get it. Dot-Net got it because they were able to use hindsight to fill in the gaps where Sun didn't. The truth is, VMs and portable languages don't make operating systems irrelevant. They just (partially) virtualize the OS on top of the native one. The sooner VM language people realize this, and all of the pitfalls, the sooner things will get better! (Many already get things right. Python and Ruby seem to get this.)
well, yes, Sun realized that. But I realized a few years ago that I don't really need a JVM anymore. If I want safe code, I write it in Python. if I want speed, I write in Pyrex or C.
jVM+Jython+C just doesn't look compelling to me compared to Python+C, in particular since Jython lacks a lot of important Python libraries. And I don't see Sun catching upwithn two devs.
This seems to overlap/compete with Parrot. Of course Sun are expected to promote their own JVM. I don't see Perl going JVM though.
2bits.com, Inc: Drupal, WordPress, and LAMP performance tuning.
As StCredZero said, a VM is a platform and a target of development environments.
However, it doesn't need to have a single implementation, any more than the i86 platform does, so I encourage people to create multiple implementations of a given VM ABI and target different languages toward it.
This, like building on different hardware, exposes bugs with great enthusiasm, which fairly rapidly yield code quality and stability, visible as a falling bug rate.
In effect, it's a way to trade more bugs now for fewer later (;-)).
--dave
davecb@spamcop.net
This means not only more portable code, but overall faster than compiled execution speeds for programs. So far the VMs have been under performing, but they are improving and at a faster rate than gcc and friends.
I think the VMs are improving towards the speed of static compliation. Sure there are benefits such that we could potentially see faster VM code - but there's also layers and layers of cruft that comes about because of VM abstractions. I think projects like LLVM will eventually produce code faster than any VM, with architecture independence. The project is comparatively young, and I think it will have a bright future.
The JVM, and CLR kinda symbolise the heavy-weight approach of modern software design. A hello-world xaml application uses 40 megs of memory!
With per-core CPU speeds capping, I'd like to see a more cut-down approach to software development. A brand new computer might by 1000 times faster than a similar product 20 years ago, and it seems we write software that's 1000 times slower.
Like all pain, suffering is a signal that something isn't right
IronPython runs on the .NET DLR (Dynamic Language Runtime), which is on top of the CLR. The DLR does dynamic types and dynamic dispatch, unlike the CLR. Apparently the DLR code lives in the IronPython tree for the moment, but when IronPython 2.0 is ready they're going to integrate and release the DLR into .NET along with a couple other dynamic languages.
When I first came here, this was all statically typed. Everyone said I was daft to build a dynamic language on the JVM, but I built in all the same, just to show them.
...It sank into the swamp. So I built a second one. That sank into the swamp. So I built a third. That burned down, fell over, then sank into the swamp. But the fourth one stayed up. And that's what you're going to get, Lad, the strongest castle in all of England.
tomorrow who's gonna fuss
The top two languages, according to a casual Google search, are PHP and ASP, in that order. So Java is at best third, unless we can find some actual statistics to pin it on. The only sites I ever notice a JSP page on are various corporate websites which are basically HTML brochures. The only site I actually use that I know is running Java is Gmail.
That's a deeply flawed methodology, unless what you're after is "The top languages that are used by websites that expose their implementation technology to the end user". ASP and PHP seem to be more discoverable because their programming models encourage the use of .php and .asp/.aspx extensions. It doesn't necessarily mean that the conclusion is wrong, just that you can't use this as a legitimate basis for reaching that conclusion.
Sure, Jython is the nicest way of using the Java platform. That still doesn't answer the question of why I would want to use the Java platform at all. Maybe Jython is good for people with a big Java legacy code problem, but for anybody else, C Python seems better to me.
You know, real stuff...the one corporations really use when they need to pull in a project involving 50 developers that will serve hundreds or thousands of users.
You know, the really laughable thing is that morons like you were arguing against Java with exactly the same bullshit arguments a decade ago. They had to be dragged kicking and screaming into the Java world.
Not some little HelloWorld app with 3 script file that a kid puts together in Notepad and thinks he's a programmer now.
You just show your ignorance with comments like that; there have been many more successful startups using scripting languages than Java.
Yeah, corporations buy lots of Java: that's because they have plenty of money to waste, don't need to innovate, and rely on mediocre developers.
I can hear that you don't like Java very much. Don't really know what you mean by big legacy problems, generally I like working with it (2 last workplaces, 6 years). The biggest reasons are that you have some excellent IDEs, and a huge collection of libraries that take care of the grunt work for just about anything you want to do. The language is also easy to read/write coming from C++ (though of course Python is more pleasing in that regards). My biggest gripe with dry'n'cut Java is the lack of dynamic scripting - which has up to now been manageable with Jython, Groovy and the rest - it should only get better from now on.
I'm interested to know where your dislike for Java comes from?
The biggest reasons are that you have some excellent IDEs
Java IDEs attempt to solve at the IDE level what are really language problems.
and a huge collection of libraries that take care of the grunt work for just about anything you want to do.
Did you read what I said? I do not find Java's libraries useful: a lot of functionality doesn't exist at all, and the libraries that do exist are poor in many ways.
I find existing C/C++ libraries a lot more useful than existing Java libraries, and that makes Python, not Jython, the language of choice.
I'm interested to know where your dislike for Java comes from?
From actually implementing the same kind of system once in Java and once in other languages. From trying to write desktop applications in Java. From using it for more than a decade.
wxWindows (the one used by VLC) which actually use native UI as backend (GTK on linux, native on Windows, etc.) is small and easily packaged along the software (unlike Win32 GTK which requires an additional install).
And has the added benefits to integrate nicely with the OS, unlike Tk which looks like an arse whatever OS you run it on, for lacking a proper theme engine until very recently.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
With two devs, perhaps not. But there's far more than two devs working on Jython, and they've made great progress this past year. Plus I'm going to do what I can to help them reuse work we've done on JRuby, so they can focus more on compatibility and Python features they're missing.
The reason Sun hiring Frank is important is because it provides a full-time developer to help anchor the OSS work that's already happening on Jython. And that's the right way to do things, since it's the community members that make projects like Jython work.
It's unfortunate that you won't be one of those community members, but it sounds like you've got what you need already. I hope you'll consider helping out if the JVM or Jython again become attractive options for you.
Java Version Hell happens because different VMs and libraries can collide within the OS substrate. Having CLASSPATH as an environment variable encourages this. I am not sure what else contributes to this, but I have had more trouble (as a USER, not a programmer) with the installation of one JRE trashing a different Java application than anything else. Perl utilities I use aren't bothered by this. Nothing in Python I've used is. Why is this?
Are you saying that Java is the new cobol?
At the bottom of the
See http://wiki.tcl.tk/1413 and http://phaseit.net/claird/comp.lang.tcl/SunScript_story
Does Java not encourage .jsp extensions?
I do agree that it's a deeply flawed methodology, but I couldn't find a better one -- and I figured it was better than "anonymous coward says so".
As for the rest of the post, looks like it's been modded flamebait, which is probably appropriate.
Don't thank God, thank a doctor!
I worked with Frank Wierzbicki in a previous position. Good guy, smart, and a true pythonista. I'm happy to see him in this new position and hopefully he will be able to provide some guidance to Python in the jvm ... it makes me excited about jython again.
While I agree with absolutely everything you've said, I have one bone to pick with you on the C++ issue. It's not the standards committees' fault that GCC-3.2 will let me increment a pointer inline (against ISO definition of an lvalue) and that same code doesn't compile on GCC-3.4 which does honor the ISO standard. The problem isn't the language, it's the implementation. The same could be said for GNU's JVM, which I had the displeasure of forcefully ripping out of a Linux distro a few weeks ago when it ramped up the CPU to full utilization while I had Eclipse sitting idle.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
"Little does he know, but there is no 'I' in 'Idiot'!"