What is the programming language of the future?

Page 3 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Sunner

Elite Member
Oct 9, 1999
11,641
0
76
Originally posted by: kamper
Originally posted by: Nothinman
You're going to have to show me an example of a properly coded program that crashes depending on which version of the JVM you're running it on. I've run code from 1.4.0 to 1.5.0 and there's not even a hiccup.

I can't because I'm not a java dev, but I know that some of the software produced by other departments of our company won't run on on all versions of the JRE and most of the developers in that department have to (or at least had to, I haven't been involved with them for a while) have 3 or more versions of the Sun JRE installed for various tools and testing.
Then your programmers are idiots. It's not hard to write decent cross version java (although it's not uncommon to require at least a certain version for certain apis and such, but something written for 1.3 should run no problem on 1.4). Sun works very hard on backwards compatibility.

Well, ours may be, they just hide it real well.
But the thing is, while our core systems are all Java, we still have quiet a bit of C code as well, for things where Java just won't work(for example a TCP to x.25 translator), also in house developed, and we never have any problems with that code.

I thought Java was supposed to be easy and all(ok, easy is the wrong word, programmer-friendly perhaps?).
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Yes, and that's Oracle's fault, not java's

But it still makes Java look bad and makes those who have to manage boxes running Java cringe. It's the same thing on Linux, if people fine Gnome ugly or have it crash on them they blame Linux even though 99% of the software they have installed isn't part of the problem.

And I'm curious, since you're in security: how often do you patch java systems for security vulnerabilities compared to systems in other languages?

Honestly, I can't think of anything we have that would require it. Almost all of the stuff we use that uses Java is internal so any security problems would be handled by our own developers. But I know what you're getting at and I know the virtues of a managed language, but my other bad experiences with Java outweigh the security benefits in my eyes, I would rather run a tool written in assembly than install a jvm on my machine.
 

b4u

Golden Member
Nov 8, 2002
1,380
2
81
I'm currently developping web apps for intranet/web using java technology, through WebSphere. Before websphere, I developed the projects using ultraedit, and running it over Tomcat with java 1.3/1.4 behind.

The change from 1.3 to 1.4 was straight forward with my programs, and the migration of the programs to WebSphere was also straight forward, with some minor changes just to avoid some stupid (but logical) warnings from WebSphere IDE (WSAD 5.1.2). So from my experience with java, I can say I'm pretty happy with it ... I also know that there's a lot of versions around, some better than others, but in my case, I always program using and choosing the instructions that give me best compatibility results. I also avoid third party code whenever I can, because if it can save me time in the near future, it can cause me problems on the long future, in the event of migrating between systems, etc...

I also come from Microsoft technologies, so java was a new and very different experience for me, but overall I rate it a positive one. And I also believe, as someone stated it before, that a good programer is one that knows HOW to program, platform & language independent. I moved from VB & ASP to Java with no programs, and in the past, many many time ago, I've also changed from: GWBasic -> Turbo Basic -> Quick Basic -> Turbo Pascal -> Turbo C -> Visual Basic -> Cobol -> Fortran ... so I changed between many languages, and never felt I couldn't do it.

I've just tasted a bit of .NET (VB.NET and C#), and I'm looking forward to grab a project with that technology, going back to Microsoft tools, grab a good manual and read it all in a week or two.
 

b4u

Golden Member
Nov 8, 2002
1,380
2
81
So let me know ... if I want to go with programming games, using the obviously directx api's to do the graphical magic tricks, which language should I safelly choose?

C++, C#, other (which one)?


Also another thing ... about C++, since I'm a n00b at it, what decent compilers are around to do the above job? Can you name a payable one and a free one for the job? Just point me some ways so I can start taking a look at.


Thanks
 

bofkentucky

Member
Nov 8, 2004
28
0
0
I'm not going to claim it was properly coded, but the management interface for the Sun L20, L40, and L60 tape libraries refuse to work with anything beyond Sun JRE 1.3.x. We have to keep a machine image ready to boot that hasn't been updated since mid 2001 in case we have to use that bastard, and that is sun's own product.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Originally posted by: Nothinman
Yes, and that's Oracle's fault, not java's

But it still makes Java look bad and makes those who have to manage boxes running Java cringe. It's the same thing on Linux, if people fine Gnome ugly or have it crash on them they blame Linux even though 99% of the software they have installed isn't part of the problem.

And I'm curious, since you're in security: how often do you patch java systems for security vulnerabilities compared to systems in other languages?

Honestly, I can't think of anything we have that would require it. Almost all of the stuff we use that uses Java is internal so any security problems would be handled by our own developers. But I know what you're getting at and I know the virtues of a managed language, but my other bad experiences with Java outweigh the security benefits in my eyes, I would rather run a tool written in assembly than install a jvm on my machine.
Fair enough :)
 
Sep 29, 2004
18,656
68
91
Originally posted by: screw3d
C++ is here to stay. I seriously don't think it's going to get "outdated" or get replaced in the foreseable future

C/C++ is on the way out. There will always be a need in processor intensive areas though. Java will definitely beat C/C++ in the future. Simply becuase of lower development times. Money drives this you know.....

Burt hte future? I am fairly convinced everything is going to end up going towards database driven software and programs like word and excel will simply be interpreted in a web browser or similar.

Kiss the days of worrying about memmory handling good bye. And yes, it sucks. That's all the fun behind software IMO.

And to an extent, XML will be used instead of databases like Oracle.

Games though .... who knows where that tech is going. I honestly think the days of hte PC are limited and eventually, we'll be buying components for $50, just like we buy DVD players today. Microsoft knows this i think.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
So let me know ... if I want to go with programming games, using the obviously directx api's to do the graphical magic tricks, which language should I safelly choose?

If you're worried about speed you'll need to stick with C or C++. Personally, I would rather have people using OpenGL since it's cross-platform and an open standard.

But I'm also sure that since MS is pushing hard for managed code that they'll be fixing any performance problems with .Net dependent apps so high performance games written in C# might not be too far off.

Also another thing ... about C++, since I'm a n00b at it, what decent compilers are around to do the above job? Can you name a payable one and a free one for the job? Just point me some ways so I can start taking a look at.

Depends on what you're comfortable with. There are quite a few compilers available some more free than others. gcc is free in all meanings of the word but it shoots for portability and correctness over speed, Borland has a compiler that's free to use but has no source available and of course there's MS' compiler. I believe the MS compiler by itself is a free download, but if you want VS you have to pay for it. Intel also has a compiler that supposedly produces really fast binaries and I believe it's free for non-commercial use, but I've never tried it on Windows.

C/C++ is on the way out. There will always be a need in processor intensive areas though. Java will definitely beat C/C++ in the future. Simply becuase of lower development times. Money drives this you know.....

If you're convinced that money is what drives the industry, then who can you think that Java will beat out .NEt in the long run? Most users hate using Java apps and while .Net apps have some overhead because of the CLR but it seems like a lot less than Java's overhead. And Mono, GTK#, etc seem to be generating a lot of buzz on the Linux side as well.

Games though .... who knows where that tech is going. I honestly think the days of hte PC are limited and eventually, we'll be buying components for $50, just like we buy DVD players today. Microsoft knows this i think.

MS would love that as long as they get XP Embedded on those devices. But I don't think that'll happen for a very long time. People already tried the Internet Appliance thing and it didn't work out very well, they sold ok but as soon as people got them they wanted to do more with them.
 

Kilrsat

Golden Member
Jul 16, 2001
1,072
0
0
Originally posted by: Nothinman

If you're worried about speed you'll need to stick with C or C++. Personally, I would rather have people using OpenGL since it's cross-platform and an open standard.

But I'm also sure that since MS is pushing hard for managed code that they'll be fixing any performance problems with .Net dependent apps so high performance games written in C# might not be too far off.

There already is a full managed DirectX library. The standard DirectX SDK includes everything needed for C/C++ or C# development. Extra downloads are available for other .Net languages.

 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
There already is a full managed DirectX library. The standard DirectX SDK includes everything needed for C/C++ or C# development. Extra downloads are available for other .Net languages.

I know it's there, but I don't know how much overhead the .Net CLR imposes so right now .Net might not be the best choice for games that need high performance.
 

EagleKeeper

Discussion Club Moderator<br>Elite Member
Staff member
Oct 30, 2000
42,589
5
0
There are 10x more embedded processors that can not use Java and/or .Net than there are desktops or mainframes

Those are what will keep the C/C++ types languages around for as long as the Java systems burn up memory, require own OS and have problems with real-time.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Originally posted by: Nothinman
gcc is free in all meanings of the word
gcc is not free in all meanings of the word. I'm not free to improve it privately and then sell it. I know I shouldn't start that argument but I just couldn't help it :eek:
C/C++ is on the way out. There will always be a need in processor intensive areas though. Java will definitely beat C/C++ in the future. Simply becuase of lower development times. Money drives this you know.....
If you're convinced that money is what drives the industry, then who can you think that Java will beat out .NEt in the long run? Most users hate using Java apps and while .Net apps have some overhead because of the CLR but it seems like a lot less than Java's overhead. And Mono, GTK#, etc seem to be generating a lot of buzz on the Linux side as well.
First a comment on IHateMyJob2004's paragraph: That's a complete load of crap. In a few years virtual machine languages will be faster for pure number crunching but by no means are c/c++ on the way out. Obviously they are no longer prevalent in applications development because they are too difficult to work with but they are still by far the best languages that we have for hardware integration. Like I said above, java/.net will eventually be replaced by the next generation of higher level languages but I bet c will sit tightly for low level stuff for a long time after that.

Nothinman, I think you're focusing on the wrong things as far as java applications. Sure desktop performance is sluggish and the jvm hogs memory and doesn't do a very good job at native integration but that's not where java has traditionally been successful anyways. The majority of people using something written in java probably don't have any clue what it's written in. Java is as capable on the server as any language.
 

bersl2

Golden Member
Aug 2, 2004
1,617
0
0
Originally posted by: Nothinman
Games though .... who knows where that tech is going. I honestly think the days of hte PC are limited and eventually, we'll be buying components for $50, just like we buy DVD players today. Microsoft knows this i think.

MS would love that as long as they get XP Embedded on those devices. But I don't think that'll happen for a very long time. People already tried the Internet Appliance thing and it didn't work out very well, they sold ok but as soon as people got them they wanted to do more with them.

My crackpot theory goes as such: slowly but surely, Microsoft, et al. are going to reduce the number of things that are capable on PCs, and simultaneously introduce those capabilities on a blackbox machine. The mechanism by which they will accomplish this is TCPA. Oh, sure, they may have Windows developers' editions, but they will cost an arm and a leg, and the only way to get code to run on other machines is to authorize it with MS. This will lock out the small-time developer (even more).

The point is that as long as the unwashed masses see PCs being used for all sorts of things, they will resist appliances with limited applications. By locking down the PC, they will make the lower cost appliances seem more appealing, since they will eventually be capable of the exact same tasks.

Oh, and the software will be sold by subscription. It is well known that Bill has wet dreams* about having software be sold by subscription.

But that is only a crackpot theory. The lesson is that Internet appliances can be successful if you turn the (consumer-level) PC into one itself. Whether that will happen remains to be seen.

* This is obviously figurative language.
 

mugs

Lifer
Apr 29, 2003
48,920
46
91
Originally posted by: Brian23
Originally posted by: Nothinman
Most Linux software is done in C. The only major project to use C++ is KDE and while that does include a lot of apps most Gnome and CLI tools are C and will most likely remain that way for a while. Technically, if someone wanted to they could create a C or perl or even Java compiler for Mono just like MS has Managed C++ in their .Net implementation. With .Net (and even Java) the language is largely irrelevant, it's the bytecode produced by the compiler that's important.


The language is not irrelivent to the programmer. I've spent a lot of time learning C++, and now that I'm getting good at it, everyone wants to change to C# and Java.

If you know C++, C# is very easy to learn. Microsoft's documentation is freakin' awesome, and google is an amazingly useful tool. Chances are if you're having a problem, someone else has too, and they've written about it on the Internet. Books are good too.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
The majority of people using something written in java probably don't have any clue what it's written in.

Of course they do. Java apps are slow and don't usually look native, they may not know that they're specifically Java but I'd bet they would defiantely tell you that they're not 'normal' apps.. And other than Azureus I can't think of any popular java apps, but I'm obviously biased.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
I'm not talking about desktop apps. Nothing using swing or swt and no software installed on the user's machine. I've never claimed java was very good for that stuff and what a dumb language it would be if that was all people used it for.
 

znaps

Senior member
Jan 15, 2004
414
0
0
Originally posted by: Nothinman
The majority of people using something written in java probably don't have any clue what it's written in.

Of course they do. Java apps are slow and don't usually look native, they may not know that they're specifically Java but I'd bet they would defiantely tell you that they're not 'normal' apps.. And other than Azureus I can't think of any popular java apps, but I'm obviously biased.

Is Azureus slow? Does it look non-native, say compared to Winamp? Yes this is a trick question.

I'd accept your criticism if you were talking about Swing, but Azureus doesn't even use Swing.
 

randumb

Platinum Member
Mar 27, 2003
2,324
0
0
Originally posted by: Nothinman
The majority of people using something written in java probably don't have any clue what it's written in.

Of course they do. Java apps are slow and don't usually look native, they may not know that they're specifically Java but I'd bet they would defiantely tell you that they're not 'normal' apps.. And other than Azureus I can't think of any popular java apps, but I'm obviously biased.

eclipse?
 

singh

Golden Member
Jul 5, 2001
1,449
0
0
Originally posted by: randumb
Originally posted by: Nothinman
The majority of people using something written in java probably don't have any clue what it's written in.

Of course they do. Java apps are slow and don't usually look native, they may not know that they're specifically Java but I'd bet they would defiantely tell you that they're not 'normal' apps.. And other than Azureus I can't think of any popular java apps, but I'm obviously biased.

eclipse?


Doesn't Eclipse use SWT (which uses native controls) instead of Swing?
 

randumb

Platinum Member
Mar 27, 2003
2,324
0
0
Originally posted by: singh
Originally posted by: randumb
Originally posted by: Nothinman
The majority of people using something written in java probably don't have any clue what it's written in.

Of course they do. Java apps are slow and don't usually look native, they may not know that they're specifically Java but I'd bet they would defiantely tell you that they're not 'normal' apps.. And other than Azureus I can't think of any popular java apps, but I'm obviously biased.

eclipse?


Doesn't Eclipse use SWT (which uses native controls) instead of Swing?

yeah, but its still a popular java app. the ui looks more native because of the standard widget toolkit, but its still sluggish.
 

Red and black

Member
Apr 14, 2005
152
0
0
Originally posted by: kamper
Java is as capable on the server as any language.

This claim is totally wrong.

Servers have limited RAM and CPU resources; writing an app in Java wastes both, particularly RAM. The numbers I've seen (in practice) are typically 10x more RAM required for a Java daemon compared to the equivalent program written in C.

Server-side apps are also limited in terms of the developer time available to work on them. A verbose, underpowered language like Java won't get you the programmer productivity you'd get from a real functional language like a lisp or an ML, or their hairier descendents Perl, Ruby, etc..

Server-side Java is less obviously a bad idea than client-side Java, because it's easier to upgrade the server hardware than it is to upgrade all your clients. :)

But server-side Java is still a bad idea.

Well, it's good for Sun and IBM I guess, since they're selling all that new hardware.

Some people claim that Java is a reasonable tool for having hordes of semi-literate mediocre programmers write buggy business software. That its lack of power and expressiveness is comforting to the unskilled, and makes it harder for them to shoot themselves in the foot. As such, it could be considered as an improvement over VB, I suppose.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0

Technically right, but seeing as how it's a development tool I wasn't counting it. I was thinking more along the lines of end user things.

Is Azureus slow?

Quite. It took nearly 8s to start on my machine (dual 1.2Ghz) and even longer to open the options dialog once it finally started up. Hell even quitting the thing takes longer than I think it should.

Does it look non-native, say compared to Winamp? Yes this is a trick question.

I can't run Winamp on Linux here, but even getting the GTK version of Azureus doesn't make it look like my other Gnome apps because it uses GTK1 which is quite old, everything else I run uses GTK2. And while the main UI of WinAmp may not look like 'normal' Windows apps, it at least uses the same common dialogs so that open, save, etc are standard.

I'd accept your criticism if you were talking about Swing, but Azureus doesn't even use Swing.

No and there's also 8 different downloads on their site for it, I thought Java was write once run anywhere? Not write once per UI toolkit and per OS, hell I could write a more portable app using C and GTK2 on all platforms.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Pretty much. Who knows, I might grow to dislike .Net apps in the future too but so far I haven't had any really good or bad experiences with them.