
COBOL, C++, Java -- you know, the usuals. Those guys are about to be joined by two dozen or so newcomers thanks to bright minds who have converged in Portland for the first Emerging Languages Camp at the O'Reilly Open Source Convention. Coding languages haven't really seen a revolution for years now, but a determined group of hobbyists and professionals are hoping to push a handful of new ones that could "enable powerful new web applications and mobile devices."
Google's working on Go, Microsoft's toiling away on Kodu and plenty of others are working on alternative languages that are far more sophisticated and advanced than those that are widely used today. If you're interested in geeking out on languages that only CSC majors can speak, give that source link a tap.
Hmmm...I wonder what Java's response to this will be?
@ike760
Nothing. Java isn't going away.
@archkron yeah I know that, java's the most widely used programming language, thats like saying xp will die off soon, even tho it should have died awhile back IMO w the release of Windows 7, but my point is I wonder if theyre code will change to meet the new standards set forth by these new languages.
@ike760 I don't know, but I'm sure it will be slow and inefficient.
@clarinetJWD lol you know what kind of programming language I want?? I want Tony stark status tech where I can pull up screens out of no where w/o projectors >.> give me the programming language that can run that level of tech and Ill be happy...Untill then I'll remain fluent in English,Spanish, and basic java xD
@ike760
Clay seems cool too.
http://tachyon.in/clay/
@seventythree hmmm considering clay is generic it seems to have great porential to be built upon by somebody with a basic understanding of the language...hmmm I'll look into this more ty for the link ^.^
@ike760 Oh, I have to use Java like everyone else, too, but I don't have to like it! Also, I reject your utopian programmer future! (I just switched careers from music and audio production to computer science, because ease of use of modern recording systems is killing off audio jobs).
On a more serious note, I like the looks of "Go". Meant as a competitor to C++, but with extremely fast compile times? I wish I could remember more C++, because of its efficiency, but most of what I've used recently is Java and HTML. If Go can maintain the execution efficiency and flexibility of C++, but nearly eliminate compile times, it has a real future.
@clarinetJWD Hmmm in your opinion whats easier to learn? C++ or Java?
@clarinetJWD
I don't understand what a fast compile time has to do with anything. Sure, I have some monstrous programs here at my job that take ten minutes to compile, but once it's put together it all runs the same. Now a faster run time would be amazing.
@clarinetJWD If compile time is a problem, you're building it wrong.
@ike760 If they'd adopt Groovy as an alternate syntax and Groovy++ to speed it up Java would have a pretty nice buffer against the new languages. Perfect the IDE support and it would be gravy. But for some reason it seems like stuff like Groovy and Scala get overlooked and underutilized.
@PaulMdx So, I'm doing it wrong because I want the same benefits of C++ with less compile time? That doesn't make sense! Just because I want an improvement in a certain area doesn't mean it was a "problem" before.
Faster compile time leads to faster feedback on testing fully compiled code, and more productivity (As Google said in the read link). If I compile something, and find out there was a bug, I can fix the bug, and it's immediately ready, instead of waiting 10 minutes?
darkninja: Runtime improvements are more difficult, and can be achieved by a better compiler, independent language. It doesn't matter what language it starts in, it will end up as a string of 1's and 0's. The idea is to make that as short as possible, while not changing execution. Once in machine code format, it runs at the full speed of the computer (ignoring sharing of resources by other programs), so only by having the machine run fewer instructions can you improve the speed. I'd argue that C++ will probably have an initial advantage there, if only because they've had 20 years to develop the most efficient compiling techniques for that language.
ike760: Java's probably easier to learn. It has garbage collection to take care of memory management for you, and all but does away with pointers. It's also a lot more universal, because it runs in a virtual machine environment. It's also slower because of this. If you don't intend to run programs where performance is paramount (video encoding, rendering, games, etc), Java would be the way to go right now, IMO.
@PaulMdx Not at all. I do embedded programming and we have builds that can take almost 2 hours, this is for a program that fits in 32megs of flash and takes up less than that; but you try compiling a kernel, system drivers, applications, graphics managers and god knows what else and see how fast you can compile.
@clarinetJWD
If you are working on a project that takes a long time to build, you should only be building and testing a small part of it, either through buildable and runnable sub-sections and/or through unit testing. If you are building the entire thing and waiting 10 minutes to figure out you parsed the string wrong you are working extremely slow. You need to change your design not your language.
Also, you mention java shouldnt be used for anything where performance is important. On the contrary, java is almost always executed at 1.1 times the speed of C++ or less (meaning 10% slower or less). In special cases, java actually runs faster than C++. Since java runs in a virtual machine, the HotSpot technology can identify repeated instructions and optimize their speed.
I argue only to strengthen the position of java, not to diminsh C. C++ has its use such as when you want extreme control over memory, etc. but java can be used in extraordinary ways.
@ezelkow1 I would say android OS has a bigger footprint than that and it takes less than 30 minutes to build the whole thing from scratch.
@clarinetJWD
I also want to point out that java essentially has pointers. Here's some detail: http://javadude.com/articles/passbyvalue.htm
@cavillis Just wondering, do you know how much of the android system is runtime java and how much is actual low level C? Only the C sections would need to be compiled which would most likely be a very custom kernel, so if the only thing they need to build is the kernel and small basic set of drivers I could definitely see it only taking 30min. Our builds of just the kernel and a few low level things also only take that long. The android builds however wouldnt include vendor specific drivers that include compiling firmwares for dsp chipsets and other things of that nature which alot of embedded projects do.
@cavillis Figured Id also add that the android builds probably dont include alot of extra libraries since everything you need is in the android sdk by itself. Our builds include alot of OSS libraries and utilities which also add to build time
@cavillis
Java runs "1.1x" as fast in cases where you're not processor-limited. If you're waiting for 10ms for your harddrive to seek something, then yeah, the amount of time Java spends being slow is negligible. If I need to iterate over an array or perform a bunch of double calculations really fast, then I will really notice the fact that Java is doing bounds-checking and double- or triple-indirection instead of pointer arithmetic, and the fact that it's having to compile bytecode and ensure that it's compliant with IEEE754 instead of just compiling that to a SIMD instruction. Also, the Java memory overhead is enormous: the virtual machine requires in excess of 40MB for a simple Hello World! program that does not import any libaries except IO.
@MrDiSante If your JVM still does bounds checks for every loop, you're doing it wrong.
@clarinetJWD
And be unreadable when the applet window crashes.
@ike760
I know about COBOL.
I know about mighty C++.
But... Java -- I do not know yet. What is Java--? :)
@cavillis
Well I have to disagree with you here. Java is nowhere as fast as C++. I've worked on a system where it was coded in Java and the processing time for a request would be of 40 ms during the testing, and it was struggling due to the amount of data needed to be processed. It then was decided to change it to C++ and it got the processing time diminished to 4 ms, that is 10x speedier. (and believe me, there was no more room for optimizing the java code for this application).
"Coding languages haven't really seen a revolution for years now"
I'm on the edge of my seat [/s].
What I want to see is a program I don't have to compile at all like ones written in Python, Ruby, PHP etc that runs as fast as native compiled C. It would just use a JIT compiler.
It would also have comprehensible error messages when debugging saying what the exact problem is with the code. Just saying 'segmentation fault' doesn't help anyone.
I wonder what the problem is with the other languages that they have to keep making new ones. Why not just fix the ones we have? New languages just means trailing through and converting thousands of lines of legacy code.
Duh, should have read up on Google's Go before posting. It seems that's exactly what I want:
"Go attempts to combine the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++. In our experiments with Go to date, typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C. Go is designed to let you move fast."
Go Google Go.
@cavillis
hmmm, unit testing is great, and that is a problem I face in solution and system architecture every day.
it is not enough.
unit testing goes only so fast, and programmers have great difficulties understanding that end to end testing is required.
and that requires you to have the complete application and run your UML case scenarios. (you can automate there)
because that is not done, I constantly rejects new builds at handover time, because I introduce negative testing in the end 2 end tests (fully automated regression test + tailored made negative testing)
a development team should not deliver a build that is only unit tested, as this can impact on the end to end.
if you need examples, I have hundreds of them just for the past year.
I agree with the other commenter, you need to build your app and test it, as well as having passed the unit testing.
@ike760
Java may the most widely "currently used" programming languages, but I hazard a guess that C/C++ LOC out there vastly outnumbers Java (maybe even for languages currently used). I have no solid data, but it wouldn't surprise me if there's one heck of a lot of ABAP and COBOL also in use (including current).
@ike760
c# rules!
@clarinetJWD Wow, Well said.
@ike760
Dude that's an easy question. It's java hand down. You don't have to deal with pointer, more object oriented, and I've heard their concurrency api is very good compare to C++.
@TinWard Agree one thousand percent. I work with C++ and VS2008 on a daily basis and I get so tired of cryptic compiler errors when all I did was miss an ending parenthesis or semicolon.
Why not just say " ')' expected" and place a marker at the exact line?
Sweet! Some new languages, do it up.
Go, what does that mean? Does it mean to say it's going to the future, or that is goes faster or that all other languages should go away? It's a confusing name.
@samiles
I think Google just tried to come up with a name that had a piece of Google in it.
@samiles
Kodu is better? or Java? Seems like the only naming convention is keep it to one syllable.
It will be unnecessarily confusing to mention though, I'm sure.
Hopefully they will be easy to learn.
I still want a programming language with HTML syntax.
@Firehazel Coldfusion perhaps?
@Firehazel
XML is used as a programming language more and more.
@darkninja962 I think you're confused.
@Firehazel
HTML isn't a programing language. It's a mark up language. HTML stands for Hyper Text Mark up Langage for a reason. Like Latex.
@darkninja962
........................................
XML = Markup language dude.
XML = eXtensible Markup Language
@digitalzombie I know what it is, I took a class on it (albeit somewhat useless without CSS...) I like the syntax of HTML, and i would like to see syntax like it in a programing language. I didn't mean HTML IS a programming language. -_-
That is funny. Yes, there are FORTRAN programs still running, and Cobol is still being used, and somewhere, some Camrbidge, Mass brainiac is still programming in LISP.
@Dr Yusuf AlKindi
LISP was a lot of fun. I was just glad when we didn't have to use punch cards for our FORTRAN any more.
@Dr Yusuf AlKindi
We still use lisp regularly for AI.
@Dr Yusuf AlKindi
Lisp is still alive. A new variant of it is up and running name Clojure made in 2007. http://en.wikipedia.org/wiki/Clojure
The more languages the better!
terribly boring news lately.. zero innovation in the tech world