Linked by Eugenia Loli-Queru on Thu 10th Aug 2006 21:56 UTC, submitted by gonzo
General Development With highly expressive syntax that is easy to read, write, and maintain, dynamic programming languages like Python and Ruby are extremely conducive to rapid development. Microsoft and Sun Microsystems have observed growing interest in dynamic programming, and plan to integrate more extensive support for dynamic language features in their respective managed language platforms. Elsewhere, check PHP for .NET.
Thread beginning with comment 151242
To read all comments associated with this story, please click here.
Thumbs down fir virtual machines
by WorknMan on Thu 10th Aug 2006 22:06 UTC
WorknMan
Member since:
2005-11-13

With all these languages being ported to various virtual machines, I guess it won't be too much longer before people stop writing native apps altogether. This is unfortunately for the end user, who will have to put up with apps that are probably never gonna run as fast, or integrate as well as their would-be native counterparts. I don't look forward to a future of running a desktop of of .NET and Java apps, or even worse, Web 2.0 stuff. In fact, I think I'd rather have my balls crushed by a wooden mallot.

I'm sure it's fantastic for developers, who finally have any easy way to port their slow-ass apps across platforms, but certainly the bright minds in the IT industry could come up with a better solution than this.

Edited 2006-08-10 22:07

sappyvcv Member since:
2005-07-06

You can still write apps native to the OS with these. Just not native code.

But lack of native code, while producing a larger and slower app most of the time, is better in the long run for everyone.

Reply Parent Bookmark Score: 2

butters Member since:
2005-07-08

Native code has a big disadvantage that interpreted code doesn't. Even the very best C compilers throw away a lot of semantic information that exists in the source code, simply because there's no way to exploit it in static machine code. Once the code is compiled, that's it. Runtime optimization is relegated to complicated and expensive micro-op decoding and reordering in hardware.

The potential exists for interpreted code to take us to new levels of runtime optimization through the use of dynamic, adaptive runtime optimization. In particular, interpreters can take us to new levels of thread-level parallelism that far eclipse the limitations of hardware multithreading.

Native code need not be left out of the party. Through the use of code-optimizing firmware or hypervisors, one can optimize for a variety of different objectives. This isn't something that hasn't been done before. Transmeta accomplished their impressive power efficiency through the use of a firmware "code morphing" technology that performed just-in-time compilation on x86 machine code to produced highly optimized Very Long Instruction Word (VLIW) native machine code.

In short, native code isn't necessarily faster than interpreted code. The present-day performance delta has more to do with the fact that static compilation has been more extensively studied than has dynamic compilation. The leading C compilers are pushing the limits of the technology, whereas the leading JIT compilers are barely scratching the surface.

If you're at all interested in dynamic JIT compilation, check out Psycho (not my project or anything):

http://psyco.sourceforge.net/introduction.html

Reply Parent Bookmark Score: 5

kaiwai Member since:
2005-07-06

But lack of native code, while producing a larger and slower app most of the time, is better in the long run for everyone.

Pardon? given the deminishing returns on CPU performance, I doubt anyone will notice the difference between a quality written managed application vs. an umanaged one.

Managed code is very immature at this moment, I'll put money on it, when 3Ghz core 2 machines are common place, with dual core considered 'low end', the difference in performance and teh snappiness to the end user won't even be noticeable.

Heck, the latest Lotus Notes 7 is based around Eclipse/SWT - if IBM can get an application as complicated and complex as Notes available on a platform with reasonable performance, I'm sure any company can achieve it.

As a side note; the new Microsoft Office 2007 uses Winforms for its user interface front end; so even now there are applications that are exploiting the power of managed code without any noticeable affect on performance.

Reply Parent Bookmark Score: 1

Sphinx Member since:
2005-07-09

It's the craftmanship I'll miss most.

Reply Parent Bookmark Score: 5

sbenitezb Member since:
2005-07-22

You have C/C++, Qt/Gtk/WxWidgets. I will keep my responsive and fast KDE desktop with natively compiled applications for most of my tasks. The web is not for applications, is for information. I hope this thing about web 2.0 quickly vanishes as just another atempt to complicate things and reinvent the wheel.

Reply Parent Bookmark Score: 1

SamuraiCrow Member since:
2005-11-19

You have C/C++, Qt/Gtk/WxWidgets. I will keep my responsive and fast KDE desktop with natively compiled applications for most of my tasks.

Last I checked, KDE is built on Qt and its odd dual-licencing scheme that will keep its open-source licence bound to Posix-like OSs for eternity.

Personally I'd rather see a wxWidgets that uses compile-time polymorphism on an LLVM-based packager that will compile the bytecodes natively on the destination platform for maximum optimization and then store the native code on the hard drive at install time.

Reply Parent Bookmark Score: 1

umccullough Member since:
2006-01-26

You're right - and it's amazing how many people are starting to run their "native" software on virtual hardware in order to abstract it from the underlying OS/hardware. At least that way a poorly-written native app doesn't crash the machine right?

Reply Parent Bookmark Score: 2

Sphinx Member since:
2005-07-09

If a virtual server falls in a virtual forest and there is no sound device...

Reply Parent Bookmark Score: 1

Lambda Member since:
2006-07-28

We heard the same thing in the 80s regarding assembly to C. Nowadays, unless you're Michael Abrash you're unlikely to globally out optimize a fast C compiler.

At least C# (far from my favorite language) gives the ability to bypass bounds checking.

Don't worry, we've seen it all before. I think John Harris (from Hackers book fame) has stuck to his guns and is still programming in assembler.

Reply Parent Bookmark Score: 2

ormandj Member since:
2005-10-09

You must never have seen this:

http://produkkt.abraxas-medien.de/kkrieger

It's 96K, give it a shot and tell me what you think about optimization. ;)

That being said, I think virtual machine languages (platform independent applications) are the future. I'm sick of being stuck on "X" OS due to needing a certain application.

Reply Parent Bookmark Score: 3

deepspace Member since:
2006-01-03

Oh boy. VM's are mentioned and people immediately start screaming about how slow they are...

That's just a load of crap! Java nor .NET are truly slow.

If you want an example, just try http://www.map24.com . This stuff is a Java applet, in 3D and with live data from the net. You can hardly say that this is slow!

Integration with the OS gets better every release. Specially .Net does a good job (at least on the windows platform). There really is no difference from running a native or vm application there.

Reply Parent Bookmark Score: 3

cilcoder Member since:
2005-07-06

They don't necessarily make an application easier to power to other operating systems. Having a version of the virtual machine for other OS's is only half of the problem. The developer has to use API's that aren't bound to any particular OS. Example: if a developer uses WinFXm it's not going to work on any other operating system but Windows.

The GREAT thing about virtual machines is that they can make the system more secure by sandboxing the application. They also allow the application to run on other instruction sets as long as there is a virtual machine(and the same libaries). Virtual Machines allow the explotation of instruction set extensions and the use of different architectures altogetger. It would be nice to be able to move away from x86 eventually.

Reply Parent Bookmark Score: 2

JeffS Member since:
2005-07-12

"In fact, I think I'd rather have my balls crushed by a wooden mallot."

I couldn't have possibly put it better. ;-)

Running a bunch of Java, .Net, and Web apps is an exercise in total frustration. Even modern, fast machines with tons and tons of memory can be brought to a crawl by all the VM crap.

Don't get me wrong, I'm quite fond of both Java and .Net (particularily Mono), and I like the dynamic languages like PHP, Ruby, Perl, and Python.

But those mostly bring benefits to the developer (easier to use, faster to develop with). They bring virtually zero benefits to the end user, other than the greatly reduced memory leakes or buffer overruns that can occur more commonly in C/C++ programs.

But the extra time and effor it takes to eliminate memory leaks or buffer overruns is worth it in terms of the much faster end result.

Reply Parent Bookmark Score: 1